mirror of https://github.com/vitalif/dimple
Fixed Performance Issue with Storyboards
parent
52e8810f04
commit
b3edc979ec
|
@ -505,7 +505,9 @@ var dimple = {
|
|||
}
|
||||
|
||||
if (series.categoryFields !== null && series.categoryFields !== undefined && series.categoryFields.length > 0) {
|
||||
rules = series._orderRules;
|
||||
// Concat is used here to break the reference to the parent array, if we don't do this, in a storyboarded chart,
|
||||
// the series rules to grow and grow until the system grinds to a halt trying to deal with them all.
|
||||
rules = [].concat(series._orderRules);
|
||||
seriesCat = series.categoryFields[0];
|
||||
if (series.c !== null && series.c !== undefined && series.c._hasMeasure()) {
|
||||
rules.push({ ordering : series.c.measure, desc : true });
|
||||
|
@ -3463,21 +3465,19 @@ var dimple = {
|
|||
// License: "https://github.com/PMSI-AlignAlytics/dimple/blob/master/MIT-LICENSE.txt"
|
||||
// Source: /src/objects/chart/methods/_getOrderedList.js
|
||||
dimple._getOrderedList = function (data, mainField, levelDefinitions) {
|
||||
// Force the level definitions into an array
|
||||
if (levelDefinitions === null || levelDefinitions === undefined) {
|
||||
levelDefinitions = [];
|
||||
} else {
|
||||
levelDefinitions = [].concat(levelDefinitions);
|
||||
}
|
||||
// Add the base case
|
||||
levelDefinitions = levelDefinitions.concat({ ordering: mainField, desc: false });
|
||||
// Function for recursively sorting
|
||||
var rollupData = [],
|
||||
sortStack = [],
|
||||
finalArray = [],
|
||||
fields = [mainField];
|
||||
fields = [mainField],
|
||||
defs = [];
|
||||
// Force the level definitions into an array
|
||||
if (levelDefinitions !== null && levelDefinitions !== undefined) {
|
||||
defs = defs.concat(levelDefinitions);
|
||||
}
|
||||
// Add the base case
|
||||
defs = defs.concat({ ordering: mainField, desc: false });
|
||||
// Exclude fields if this does not contain a function
|
||||
levelDefinitions.forEach(function (def) {
|
||||
defs.forEach(function (def) {
|
||||
var field;
|
||||
if (typeof def.ordering === "function") {
|
||||
for (field in data[0]) {
|
||||
|
@ -3491,10 +3491,10 @@ var dimple = {
|
|||
}, this);
|
||||
rollupData = dimple._rollUp(data, mainField, fields);
|
||||
// If we go below the leaf stop recursing
|
||||
if (levelDefinitions.length >= 1) {
|
||||
if (defs.length >= 1) {
|
||||
// Build a stack of compare methods
|
||||
// Iterate each level definition
|
||||
levelDefinitions.forEach(function (def) {
|
||||
defs.forEach(function (def) {
|
||||
// Draw ascending by default
|
||||
var desc = (def.desc === null || def.desc === undefined ? false : def.desc),
|
||||
ordering = def.ordering,
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue