
var Chart = require('chart.js');
var Stacked100Plugin = {
  beforeInit: function(chartInstance) {
    if (chartInstance.options.stacked !== '100%') return;

    var xAxes = chartInstance.options.scales.xAxes;
    var yAxes = chartInstance.options.scales.yAxes;

    [xAxes, yAxes].forEach(function(axes) {
      axes.forEach(function(hash) { hash.stacked = true });
    })
    xAxes.forEach(function(hash) { hash.ticks.min = 0; hash.ticks.max = 100 });

    chartInstance.options.tooltips.callbacks.label = function(tooltipItem, data) {
      var datasetIndex = tooltipItem.datasetIndex,
        index = tooltipItem.index,
        xLabel = tooltipItem.xLabel;
      var datasetLabel = data.datasets[datasetIndex].label || '';

      return '' + datasetLabel + ': ' + xLabel + '% (' + data.originalData[datasetIndex][index] + ')';
    };
  },

  beforeUpdate: function(chartInstance) {
    if (chartInstance.options.stacked !== '100%') return;

    var datasets = chartInstance.data.datasets;
    var allData = datasets.map(function(dataset) { return dataset.data });
    chartInstance.data.originalData = allData;

    var totals = Array.apply(null, new Array(allData[0].length)).map(function(el, i) {
      return allData.reduce(function(sum, data) { return sum + data[i] }, 0);
    });
    datasets.forEach(function(dataset) {
      dataset.data = dataset.data.map(function(val, i) {
        return Math.round(val * 1000 / totals[i]) / 10;
      });
    });
  }
};

module.exports = Stacked100Plugin;
Chart.pluginService.register(Stacked100Plugin);

@@ -1,38 +1,26 @@
 %0A
-var Chart = require('chart.js');%0A
+(function(Chart) %7B%0A  
 var 
@@ -40,16 +40,18 @@
 gin = %7B%0A
+  
   before
@@ -78,32 +78,34 @@
 Instance) %7B%0A    
+ 
+ 
 if (chartInstanc
@@ -143,24 +143,26 @@
 eturn;%0A%0A    
+  
 var xAxes = 
@@ -197,16 +197,18 @@
 .xAxes;%0A
+  
     var 
@@ -256,16 +256,18 @@
 s;%0A%0A    
+  
 %5BxAxes, 
@@ -294,24 +294,26 @@
 ion(axes) %7B%0A
+  
       axes.f
@@ -368,11 +368,15 @@
     
+ 
+ 
 %7D)%0A
+  
     
@@ -452,16 +452,18 @@
 00 %7D);%0A%0A
+  
     char
@@ -539,24 +539,26 @@
 ta) %7B%0A      
+  
 var datasetI
@@ -586,24 +586,26 @@
 tasetIndex,%0A
+  
         inde
@@ -635,16 +635,18 @@
         
+  
 xLabel =
@@ -666,16 +666,18 @@
 xLabel;%0A
+  
       va
@@ -737,24 +737,26 @@
  '';%0A%0A      
+ 
+ 
 return '' + 
@@ -848,17 +848,23 @@
     
+  
 %7D;%0A
+  
   %7D,%0A%0A
+  
   be
@@ -897,24 +897,26 @@
 Instance) %7B%0A
+  
     if (char
@@ -962,24 +962,26 @@
 eturn;%0A%0A    
+ 
+ 
 var datasets
@@ -1012,16 +1012,18 @@
 tasets;%0A
+  
     var 
@@ -1089,24 +1089,26 @@
 ata %7D);%0A    
+ 
+ 
 chartInstanc
@@ -1139,16 +1139,18 @@
 lData;%0A%0A
+  
     var 
@@ -1224,24 +1224,26 @@
 on(el, i) %7B%0A
+  
       return
@@ -1308,28 +1308,32 @@
  %7D, 0);%0A    
+  
 %7D);%0A
+  
     datasets
@@ -1363,24 +1363,26 @@
 et) %7B%0A      
+ 
+ 
 dataset.data
@@ -1424,24 +1424,26 @@
 ) %7B%0A        
+  
 return Math.
@@ -1478,16 +1478,18 @@
 ) / 10;%0A
+  
       %7D)
@@ -1498,55 +1498,28 @@
     
+  
 %7D);%0A
+  
   %7D%0A
+  
 %7D;%0A%0A
-module.exports = Stacked100Plugin;%0A
+  
 Char
@@ -1562,8 +1562,30 @@
 lugin);%0A
+%7D).call(this, Chart);%0A

Change load type