diff --git a/package-lock.json b/package-lock.json index 9a69d8907..1bf086908 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1826,6 +1826,7 @@ "version": "1.4.7", "resolved": "https://registry.npmjs.org/crossfilter2/-/crossfilter2-1.4.7.tgz", "integrity": "sha512-9swxPbMBSO4AjednWnEwlidQQxjYllWmnKkY1hs+QRxbAjsO6QsUYf3GkTDA/KLO1K0FlbWvmMsKxTXZVqp1vw==", + "dev": true, "requires": { "lodash.result": "^4.4.0" } @@ -6349,7 +6350,8 @@ "lodash.result": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/lodash.result/-/lodash.result-4.5.2.tgz", - "integrity": "sha1-y0Wyf7kU6qjY7m8M57KHC4fLcKo=" + "integrity": "sha1-y0Wyf7kU6qjY7m8M57KHC4fLcKo=", + "dev": true }, "lodash.toarray": { "version": "4.4.0", diff --git a/package.json b/package.json index a4e919672..35ee94240 100644 --- a/package.json +++ b/package.json @@ -25,11 +25,11 @@ "url": "https://github.com/dc-js/dc.js.git" }, "dependencies": { - "crossfilter2": "^1.4.7", "d3": "^5.9.7" }, "devDependencies": { "compare-versions": "^3.5.0", + "crossfilter2": "^1.4.7", "file-saver": "^1.3.8", "grunt": "^1.0.4", "grunt-browserify": "^5.2.0", diff --git a/src/base-mixin.js b/src/base-mixin.js index bad356f8c..da8b6127f 100644 --- a/src/base-mixin.js +++ b/src/base-mixin.js @@ -1,11 +1,10 @@ import * as d3 from 'd3'; -import { printers, utils } from './utils'; -import { pluck } from './utils'; -import { deregisterChart, instanceOfChart, renderAll, redrawAll, registerChart } from './core'; -import { constants } from './constants'; -import { events } from './events'; -import { logger } from './logger'; +import {pluck, printers, utils} from './utils'; +import {deregisterChart, instanceOfChart, redrawAll, registerChart, renderAll} from './core'; +import {constants} from './constants'; +import {events} from './events'; +import {logger} from './logger'; import {InvalidStateException} from './invalid-state-exception'; import {BadArgumentException} from './bad-argument-exception'; @@ -51,7 +50,6 @@ export const baseMixin = function (_chart) { var _label = pluck('key'); var _ordering = pluck('key'); - var _orderSort; var _renderLabel = false; @@ -356,23 +354,13 @@ export const baseMixin = function (_chart) { return _ordering; } _ordering = orderFunction; - _orderSort = crossfilter.quicksort.by(_ordering); _chart.expireCache(); return _chart; }; _chart._computeOrderedGroups = function (data) { - var dataCopy = data.slice(0); - - if (dataCopy.length <= 1) { - return dataCopy; - } - - if (!_orderSort) { - _orderSort = crossfilter.quicksort.by(_ordering); - } - - return _orderSort(dataCopy, 0, dataCopy.length); + // clone the array before sorting, otherwise Array.sort sorts in-place + return Array.from(data).sort(function (a, b) { return _ordering(a) - _ordering(b) }); }; /**