Diff
checker
Texto
Texto
Imagens
Documentos
Excel
Pastas
Legal
Enterprise
Aplicativo para desktop
Preços
Fazer login
Baixar o Diffchecker Desktop
Comparar texto
Encontre a diferença entre dois arquivos de texto
Ferramentas
Histórico
Editor live
Recolher inalteradas
Sem quebra de linha
Layout
Dividido
Unificado
Nível de detalhe
Inteligente
Palavra
Caractere
Realce de sintaxe
Escolher sintaxe
Ignorar
Transformar texto
Ir à primeira mudança
Editar entrada
Diffchecker Desktop
A maneira mais segura de usar o Diffchecker. Obtenha o aplicativo Diffchecker Desktop: seus diffs nunca saem do seu computador!
Obter Desktop
Untitled diff
Criado
há 9 anos
O diff nunca expira
Limpar
Exportar
Compartilhar
Explicar
2 remoções
Linhas
Total
Removido
Caracteres
Total
Removido
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
103 linhas
Copiar tudo
19 adições
Linhas
Total
Adicionado
Caracteres
Total
Adicionado
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
109 linhas
Copiar tudo
(function(Chart) {
(function(Chart) {
var cloneArray = function(srcAry) {
var cloneArray = function(srcAry) {
var dstAry = [];
var dstAry = [];
var length = srcAry.length;
var length = srcAry.length;
for (var i = 0; i < length; i++) {
for (var i = 0; i < length; i++) {
dstAry.push(srcAry[i]);
dstAry.push(srcAry[i]);
}
}
return dstAry;
return dstAry;
};
};
var setOriginalData = function(data) {
var setOriginalData = function(data) {
data.originalData = data.datasets.map(function(dataset) {
data.originalData = data.datasets.map(function(dataset) {
return cloneArray(dataset.data);
return cloneArray(dataset.data);
});
});
};
};
// set calculated rate (xx%) to data.calculatedData
// set calculated rate (xx%) to data.calculatedData
var calculateRate = function(data) {
var calculateRate = function(data) {
var visibles = data.datasets.map(function(dataset) {
var visibles = data.datasets.map(function(dataset) {
if (!dataset._meta) return true;
if (!dataset._meta) return true;
for (var i in dataset._meta) {
for (var i in dataset._meta) {
return !dataset._meta[i].hidden;
return !dataset._meta[i].hidden;
}
}
});
});
Copiar
Copiado
Copiar
Copiado
var totals = Array.apply(null, new Array(data.datasets[0].data.length)).map(function(el, i) {
var totals = Array.apply(null, new Array(data.datasets[0].data.length)).map(function(el, i) {
return data.datasets.reduce(function(sum, dataset, j) {
return data.datasets.reduce(function(sum, dataset, j) {
var key = dataset.stack;
var key = dataset.stack;
if (!sum[key]) sum[key] = 0;
if (!sum[key]) sum[key] = 0;
sum[key] +=
dataset.data[i]
* visibles[j];
sum[key] +=
(dataset.type === "line" ? 0 :
dataset.data[i]
)
* visibles[j];
Copiar
Copiado
Copiar
Copiado
return sum;
return sum;
}, {});
}, {});
});
});
data.calculatedData = data.datasets.map(function(dataset, i) {
data.calculatedData = data.datasets.map(function(dataset, i) {
return dataset.data.map(function(val, i) {
return dataset.data.map(function(val, i) {
Copiar
Copiado
Copiar
Copiado
var total = totals[i][dataset.stack];
if(dataset.type === "line") {
return val && total ? Math.round(val * 1000 / total) / 10 : 0;
return val;
} else {
var total = totals[i][dataset.stack];
return val && total ? Math.round(val * 1000 / total) / 10 : 0;
}
});
});
});
});
};
};
var tooltipLabel = function(tooltipItem, data) {
var tooltipLabel = function(tooltipItem, data) {
var datasetIndex = tooltipItem.datasetIndex;
var datasetIndex = tooltipItem.datasetIndex;
var index = tooltipItem.index;
var index = tooltipItem.index;
var datasetLabel = data.datasets[datasetIndex].label || "";
var datasetLabel = data.datasets[datasetIndex].label || "";
var originalValue = data.originalData[datasetIndex][index];
var originalValue = data.originalData[datasetIndex][index];
var rateValue = data.calculatedData[datasetIndex][index];
var rateValue = data.calculatedData[datasetIndex][index];
return "" + datasetLabel + ": " + rateValue + "% (" + originalValue + ")";
return "" + datasetLabel + ": " + rateValue + "% (" + originalValue + ")";
};
};
var reflectData = function(srcData, datasets) {
var reflectData = function(srcData, datasets) {
if (!srcData) return;
if (!srcData) return;
srcData.forEach(function(data, i) {
srcData.forEach(function(data, i) {
datasets[i].data = data;
datasets[i].data = data;
});
});
};
};
var Stacked100Plugin = {
var Stacked100Plugin = {
id: "stacked100",
id: "stacked100",
beforeInit: function(chartInstance, pluginOptions) {
beforeInit: function(chartInstance, pluginOptions) {
if (!pluginOptions.enable) return;
if (!pluginOptions.enable) return;
var xAxes = chartInstance.options.scales.xAxes;
var xAxes = chartInstance.options.scales.xAxes;
var yAxes = chartInstance.options.scales.yAxes;
var yAxes = chartInstance.options.scales.yAxes;
var isVertical = chartInstance.config.type === "bar" || chartInstance.config.type === "line";
var isVertical = chartInstance.config.type === "bar" || chartInstance.config.type === "line";
[xAxes, yAxes].forEach(function(axes) {
[xAxes, yAxes].forEach(function(axes) {
axes.forEach(function(hash) {
axes.forEach(function(hash) {
Copiar
Copiado
Copiar
Copiado
hash.stacked = true;
if(hash.stacked === false) return;
hash.stacked = true;
});
});
});
});
(isVertical ? yAxes : xAxes).forEach(function(hash) {
(isVertical ? yAxes : xAxes).forEach(function(hash) {
Copiar
Copiado
Copiar
Copiado
if(hash.stacked === false) return;
hash.ticks.min = 0;
hash.ticks.min = 0;
hash.ticks.max = 100;
hash.ticks.max = 100;
});
});
chartInstance.options.tooltips.callbacks.label = tooltipLabel;
chartInstance.options.tooltips.callbacks.label = tooltipLabel;
},
},
beforeDatasetsUpdate: function(chartInstance, pluginOptions) {
beforeDatasetsUpdate: function(chartInstance, pluginOptions) {
if (!pluginOptions.enable) return;
if (!pluginOptions.enable) return;
setOriginalData(chartInstance.data);
setOriginalData(chartInstance.data);
calculateRate(chartInstance.data);
calculateRate(chartInstance.data);
reflectData(chartInstance.data.calculatedData, chartInstance.data.datasets);
reflectData(chartInstance.data.calculatedData, chartInstance.data.datasets);
},
},
afterDatasetsUpdate: function(chartInstance, pluginOptions) {
afterDatasetsUpdate: function(chartInstance, pluginOptions) {
if (!pluginOptions.enable) return;
if (!pluginOptions.enable) return;
reflectData(chartInstance.data.originalData, chartInstance.data.datasets);
reflectData(chartInstance.data.originalData, chartInstance.data.datasets);
}
}
};
};
Chart.pluginService.register(Stacked100Plugin);
Chart.pluginService.register(Stacked100Plugin);
}.call(this, Chart));
}.call(this, Chart));
Diferenças salvas
Texto original
Abrir arquivo
(function(Chart) { var cloneArray = function(srcAry) { var dstAry = []; var length = srcAry.length; for (var i = 0; i < length; i++) { dstAry.push(srcAry[i]); } return dstAry; }; var setOriginalData = function(data) { data.originalData = data.datasets.map(function(dataset) { return cloneArray(dataset.data); }); }; // set calculated rate (xx%) to data.calculatedData var calculateRate = function(data) { var visibles = data.datasets.map(function(dataset) { if (!dataset._meta) return true; for (var i in dataset._meta) { return !dataset._meta[i].hidden; } }); var totals = Array.apply(null, new Array(data.datasets[0].data.length)).map(function(el, i) { return data.datasets.reduce(function(sum, dataset, j) { var key = dataset.stack; if (!sum[key]) sum[key] = 0; sum[key] += dataset.data[i] * visibles[j]; return sum; }, {}); }); data.calculatedData = data.datasets.map(function(dataset, i) { return dataset.data.map(function(val, i) { var total = totals[i][dataset.stack]; return val && total ? Math.round(val * 1000 / total) / 10 : 0; }); }); }; var tooltipLabel = function(tooltipItem, data) { var datasetIndex = tooltipItem.datasetIndex; var index = tooltipItem.index; var datasetLabel = data.datasets[datasetIndex].label || ""; var originalValue = data.originalData[datasetIndex][index]; var rateValue = data.calculatedData[datasetIndex][index]; return "" + datasetLabel + ": " + rateValue + "% (" + originalValue + ")"; }; var reflectData = function(srcData, datasets) { if (!srcData) return; srcData.forEach(function(data, i) { datasets[i].data = data; }); }; var Stacked100Plugin = { id: "stacked100", beforeInit: function(chartInstance, pluginOptions) { if (!pluginOptions.enable) return; var xAxes = chartInstance.options.scales.xAxes; var yAxes = chartInstance.options.scales.yAxes; var isVertical = chartInstance.config.type === "bar" || chartInstance.config.type === "line"; [xAxes, yAxes].forEach(function(axes) { axes.forEach(function(hash) { hash.stacked = true; }); }); (isVertical ? yAxes : xAxes).forEach(function(hash) { hash.ticks.min = 0; hash.ticks.max = 100; }); chartInstance.options.tooltips.callbacks.label = tooltipLabel; }, beforeDatasetsUpdate: function(chartInstance, pluginOptions) { if (!pluginOptions.enable) return; setOriginalData(chartInstance.data); calculateRate(chartInstance.data); reflectData(chartInstance.data.calculatedData, chartInstance.data.datasets); }, afterDatasetsUpdate: function(chartInstance, pluginOptions) { if (!pluginOptions.enable) return; reflectData(chartInstance.data.originalData, chartInstance.data.datasets); } }; Chart.pluginService.register(Stacked100Plugin); }.call(this, Chart));
Texto alterado
Abrir arquivo
(function(Chart) { var cloneArray = function(srcAry) { var dstAry = []; var length = srcAry.length; for (var i = 0; i < length; i++) { dstAry.push(srcAry[i]); } return dstAry; }; var setOriginalData = function(data) { data.originalData = data.datasets.map(function(dataset) { return cloneArray(dataset.data); }); }; // set calculated rate (xx%) to data.calculatedData var calculateRate = function(data) { var visibles = data.datasets.map(function(dataset) { if (!dataset._meta) return true; for (var i in dataset._meta) { return !dataset._meta[i].hidden; } }); var totals = Array.apply(null, new Array(data.datasets[0].data.length)).map(function(el, i) { return data.datasets.reduce(function(sum, dataset, j) { var key = dataset.stack; if (!sum[key]) sum[key] = 0; sum[key] += (dataset.type === "line" ? 0 : dataset.data[i]) * visibles[j]; return sum; }, {}); }); data.calculatedData = data.datasets.map(function(dataset, i) { return dataset.data.map(function(val, i) { if(dataset.type === "line") { return val; } else { var total = totals[i][dataset.stack]; return val && total ? Math.round(val * 1000 / total) / 10 : 0; } }); }); }; var tooltipLabel = function(tooltipItem, data) { var datasetIndex = tooltipItem.datasetIndex; var index = tooltipItem.index; var datasetLabel = data.datasets[datasetIndex].label || ""; var originalValue = data.originalData[datasetIndex][index]; var rateValue = data.calculatedData[datasetIndex][index]; return "" + datasetLabel + ": " + rateValue + "% (" + originalValue + ")"; }; var reflectData = function(srcData, datasets) { if (!srcData) return; srcData.forEach(function(data, i) { datasets[i].data = data; }); }; var Stacked100Plugin = { id: "stacked100", beforeInit: function(chartInstance, pluginOptions) { if (!pluginOptions.enable) return; var xAxes = chartInstance.options.scales.xAxes; var yAxes = chartInstance.options.scales.yAxes; var isVertical = chartInstance.config.type === "bar" || chartInstance.config.type === "line"; [xAxes, yAxes].forEach(function(axes) { axes.forEach(function(hash) { if(hash.stacked === false) return; hash.stacked = true; }); }); (isVertical ? yAxes : xAxes).forEach(function(hash) { if(hash.stacked === false) return; hash.ticks.min = 0; hash.ticks.max = 100; }); chartInstance.options.tooltips.callbacks.label = tooltipLabel; }, beforeDatasetsUpdate: function(chartInstance, pluginOptions) { if (!pluginOptions.enable) return; setOriginalData(chartInstance.data); calculateRate(chartInstance.data); reflectData(chartInstance.data.calculatedData, chartInstance.data.datasets); }, afterDatasetsUpdate: function(chartInstance, pluginOptions) { if (!pluginOptions.enable) return; reflectData(chartInstance.data.originalData, chartInstance.data.datasets); } }; Chart.pluginService.register(Stacked100Plugin); }.call(this, Chart));
Encontrar Diferença