@refinitiv-ui/efx-grid 6.0.34 → 6.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/column-dragging/es6/ColumnDragging.js +50 -40
- package/lib/core/dist/core.css +1 -1
- package/lib/core/dist/core.js +248 -8
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataCache.js +20 -1
- package/lib/core/es6/data/DataTable.d.ts +2 -0
- package/lib/core/es6/data/DataTable.js +18 -1
- package/lib/core/es6/data/DataView.d.ts +2 -0
- package/lib/core/es6/data/DataView.js +11 -0
- package/lib/core/es6/grid/Core.d.ts +12 -0
- package/lib/core/es6/grid/Core.js +88 -3
- package/lib/core/es6/grid/ILayoutGrid.js +4 -0
- package/lib/core/es6/grid/LayoutGrid.d.ts +4 -0
- package/lib/core/es6/grid/LayoutGrid.js +95 -3
- package/lib/core/es6/grid/VirtualizedLayoutGrid.js +6 -0
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +6 -0
- package/lib/core/es6/tr-grid-theme.js +1 -1
- package/lib/grid/index.js +1 -1
- package/lib/grid/themes/halo/dark/efx-grid.js +1 -1
- package/lib/grid/themes/halo/dark/es5/all-elements.js +1 -1
- package/lib/grid/themes/halo/efx-grid.less +1 -1
- package/lib/grid/themes/halo/light/efx-grid.js +1 -1
- package/lib/grid/themes/halo/light/es5/all-elements.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +367 -148
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/Grid.js +37 -31
- package/lib/rt-grid/es6/RowDefSorter.d.ts +5 -5
- package/lib/rt-grid/es6/RowDefSorter.js +165 -71
- package/lib/tr-grid-column-selection/es6/ColumnSelection.js +66 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +3 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.js +566 -607
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +1 -1
- package/lib/tr-grid-range-bar/es6/RangeBar.d.ts +4 -1
- package/lib/tr-grid-range-bar/es6/RangeBar.js +99 -39
- package/lib/tr-grid-row-dragging/es6/RowDragging.js +14 -3
- package/lib/tr-grid-rowcoloring/es6/RowColoring.js +3 -2
- package/lib/tr-grid-util/es6/DragUI.js +7 -3
- package/lib/tr-grid-util/es6/GroupDefinitions.d.ts +7 -1
- package/lib/tr-grid-util/es6/GroupDefinitions.js +39 -3
- package/lib/tr-grid-util/es6/jet/DataGenerator.js +36 -33
- package/lib/types/es6/ColumnStack.d.ts +2 -0
- package/lib/types/es6/Core/data/DataTable.d.ts +3 -1
- package/lib/types/es6/Core/data/DataView.d.ts +2 -0
- package/lib/types/es6/Core/grid/Core.d.ts +12 -0
- package/lib/types/es6/RealtimeGrid/RowDefSorter.d.ts +5 -5
- package/lib/versions.json +8 -8
- package/package.json +1 -1
@@ -9380,7 +9380,8 @@ DataCache_DataCache.prototype._insertRic = function (subId, ric, values) {
|
|
9380
9380
|
// We cannot cache event arguments because user may want to collect all the updates
|
9381
9381
|
this._onADCForNewRic(subId, ric);
|
9382
9382
|
|
9383
|
-
|
9383
|
+
var rowData = this.getRowData(rid);
|
9384
|
+
if (!rowData) { // Ensure that we have subscription id and ric from Quotes2
|
9384
9385
|
var tmp = values;
|
9385
9386
|
|
9386
9387
|
values = {}; // Clone a new object for duplicated ric
|
@@ -9391,6 +9392,11 @@ DataCache_DataCache.prototype._insertRic = function (subId, ric, values) {
|
|
9391
9392
|
|
9392
9393
|
values["SUB_ID"] = subId;
|
9393
9394
|
values["RIC"] = ric;
|
9395
|
+
} else {
|
9396
|
+
var rowDef = rowData["ROW_DEF"];
|
9397
|
+
if(rowDef && rowDef.isChain()){
|
9398
|
+
values["SUB_ID"] = subId;
|
9399
|
+
}
|
9394
9400
|
}
|
9395
9401
|
|
9396
9402
|
this.setRowData(rid, values);
|
@@ -9427,6 +9433,12 @@ DataCache_DataCache.prototype._onQ2SubAdded = function (e) {
|
|
9427
9433
|
var sub = subs[i];
|
9428
9434
|
var ric = sub["ric"];
|
9429
9435
|
|
9436
|
+
// chain subId fires twice, one with "_ci_" and one without "_ci_"
|
9437
|
+
// the subId with "_ci_" should be ignore
|
9438
|
+
if(sub["id"].indexOf("_ci_") >= 0){
|
9439
|
+
continue;
|
9440
|
+
}
|
9441
|
+
|
9430
9442
|
this.addSubscription(sub, ric);
|
9431
9443
|
|
9432
9444
|
if (duplicateSubIds) { // There will be no network request for duplicate subs, and hence we need to update the data from our cache
|
@@ -9451,6 +9463,13 @@ DataCache_DataCache.prototype._onQ2SubRemoved = function (e) {
|
|
9451
9463
|
|
9452
9464
|
for (var i = 0; i < len; ++i) {
|
9453
9465
|
var sub = subs[i];
|
9466
|
+
|
9467
|
+
// chain subId fires twice, one with "_ci_" and one without "_ci_"
|
9468
|
+
// the subId with "_ci_" should be ignore
|
9469
|
+
if(sub["id"].indexOf("_ci_") >= 0){
|
9470
|
+
continue;
|
9471
|
+
}
|
9472
|
+
|
9454
9473
|
this.removeSubscription(sub);
|
9455
9474
|
}
|
9456
9475
|
};
|
@@ -12129,7 +12148,24 @@ DataTable.prototype.setSortingLogic = function(func) {
|
|
12129
12148
|
* @param {DataTable.SortLogic} func Use null to remove current sorting logic
|
12130
12149
|
*/
|
12131
12150
|
DataTable.prototype.setColumnSortingLogic = function(cid, func) {
|
12132
|
-
|
12151
|
+
if(cid) {
|
12152
|
+
this._compMap[cid] = func;
|
12153
|
+
}
|
12154
|
+
};
|
12155
|
+
/** Get sorting logic for the specified field. Default logic is returned, if no logic is specified for the column
|
12156
|
+
* @public
|
12157
|
+
* @param {string=} cid
|
12158
|
+
* @return {DataTable.SortLogic}
|
12159
|
+
*/
|
12160
|
+
DataTable.prototype.getColumnSortingLogic = function(cid) {
|
12161
|
+
if(cid) {
|
12162
|
+
var logic = this._compMap[cid];
|
12163
|
+
if(logic) {
|
12164
|
+
return logic;
|
12165
|
+
}
|
12166
|
+
}
|
12167
|
+
|
12168
|
+
return this._compMap["_default"] || null;
|
12133
12169
|
};
|
12134
12170
|
|
12135
12171
|
/** Freeze data table so that no event is fired for data processing until executing {@link DataTable#unfreeze} method
|
@@ -12292,11 +12328,12 @@ DataTable.prototype.getSegmentParentRowId = function(rid) {
|
|
12292
12328
|
/**
|
12293
12329
|
* @public
|
12294
12330
|
* @param {Array.<string>=} rids If no row id is given, row ids of this data table is used instead
|
12331
|
+
* @param {boolean=} partial Indicating that the given ids are not the whole list
|
12295
12332
|
* @return {Array.<number>} Return null if there is no segmentation
|
12296
12333
|
*/
|
12297
|
-
DataTable.prototype.getSegmentValues = function(rids) {
|
12334
|
+
DataTable.prototype.getSegmentValues = function(rids, partial) {
|
12298
12335
|
if(this._segments) {
|
12299
|
-
return this._segments.getSegmentValues(rids || this._rids);
|
12336
|
+
return this._segments.getSegmentValues(rids || this._rids, partial);
|
12300
12337
|
}
|
12301
12338
|
return null;
|
12302
12339
|
};
|
@@ -29444,6 +29481,17 @@ DataView.prototype.setColumnSortingLogic = function(cid, func) {
|
|
29444
29481
|
this._dt.setColumnSortingLogic(cid, func);
|
29445
29482
|
}
|
29446
29483
|
};
|
29484
|
+
/** Get sorting logic for the specified field. Default logic is returned, if no logic is specified for the column
|
29485
|
+
* @public
|
29486
|
+
* @param {string=} cid
|
29487
|
+
* @return {DataTable.SortLogic}
|
29488
|
+
*/
|
29489
|
+
DataView.prototype.getColumnSortingLogic = function(cid) {
|
29490
|
+
if(this._dt) {
|
29491
|
+
return this._dt.getColumnSortingLogic(cid);
|
29492
|
+
}
|
29493
|
+
return null;
|
29494
|
+
};
|
29447
29495
|
/** Check if this view is in sorting mode
|
29448
29496
|
* @public
|
29449
29497
|
* @return {boolean}
|
@@ -35180,6 +35228,7 @@ VirtualizedLayoutGrid._proto = VirtualizedLayoutGrid.prototype;
|
|
35180
35228
|
|
35181
35229
|
// eslint-disable-line
|
35182
35230
|
|
35231
|
+
|
35183
35232
|
// eslint-disable-line
|
35184
35233
|
|
35185
35234
|
|
@@ -35379,7 +35428,9 @@ var Core = function (opt_initializer) {
|
|
35379
35428
|
"rowRemoved",
|
35380
35429
|
"columnPositionChanged",
|
35381
35430
|
"rowPositionChanged",
|
35382
|
-
"beforeColumnBoundUpdate"
|
35431
|
+
"beforeColumnBoundUpdate",
|
35432
|
+
"beforeBatchOperation",
|
35433
|
+
"afterBatchOperation"
|
35383
35434
|
);
|
35384
35435
|
|
35385
35436
|
// For debugging in advanced optimization mode
|
@@ -35454,6 +35505,15 @@ Core.SectionReference;
|
|
35454
35505
|
*/
|
35455
35506
|
Core.MouseInfo;
|
35456
35507
|
|
35508
|
+
/** @typedef {Object} Core~BatchInfo
|
35509
|
+
* @private
|
35510
|
+
* @property {string=} reset //set columns
|
35511
|
+
* @property {string=} insertion //add cols
|
35512
|
+
* @property {string=} removal //remove cols
|
35513
|
+
* @property {string=} moving //reorder
|
35514
|
+
*/
|
35515
|
+
Core.BatchInfo;
|
35516
|
+
|
35457
35517
|
/** @typedef {Core.MouseInfo|ElementWrapper|Element} Core~CellReference
|
35458
35518
|
* @description A section in core grid can be refered by the following object <br>
|
35459
35519
|
* `{Core.MouseInfo}` : Object with valid x, y coordinates and section index <br>
|
@@ -35708,6 +35768,10 @@ Core.prototype._rowHeightTimerId = 0;
|
|
35708
35768
|
* @private
|
35709
35769
|
*/
|
35710
35770
|
Core.prototype._groupDefs = null;
|
35771
|
+
/** @type {BatchInfo}
|
35772
|
+
* @private
|
35773
|
+
*/
|
35774
|
+
Core.prototype._batches = null;
|
35711
35775
|
//#region Public Methods
|
35712
35776
|
|
35713
35777
|
/**
|
@@ -35715,7 +35779,7 @@ Core.prototype._groupDefs = null;
|
|
35715
35779
|
* @return {string}
|
35716
35780
|
*/
|
35717
35781
|
Core.getVersion = function () {
|
35718
|
-
return "5.1.
|
35782
|
+
return "5.1.49";
|
35719
35783
|
};
|
35720
35784
|
/** {@link ElementWrapper#dispose}
|
35721
35785
|
* @override
|
@@ -36654,6 +36718,10 @@ Core.prototype.removeColumnAt = function (index) {
|
|
36654
36718
|
|
36655
36719
|
if (this._hasListener("columnRemoved")) {
|
36656
36720
|
var e = {};
|
36721
|
+
var batches = this._batches;
|
36722
|
+
if(batches){
|
36723
|
+
e["batches"] = batches;
|
36724
|
+
}
|
36657
36725
|
e["atTheMiddle"] = true;
|
36658
36726
|
e["colIndex"] = index;
|
36659
36727
|
e["columns"] = "deprecated";
|
@@ -39498,6 +39566,40 @@ Core.prototype.getColumnGroupChildIds = function (groupId) {
|
|
39498
39566
|
}
|
39499
39567
|
return null;
|
39500
39568
|
};
|
39569
|
+
|
39570
|
+
/** @public
|
39571
|
+
* @param {string} batchType
|
39572
|
+
* @return {boolean}
|
39573
|
+
* @fires Core#beforeBatchOperation
|
39574
|
+
*/
|
39575
|
+
Core.prototype.startBatch = function (batchType) {
|
39576
|
+
if(!batchType){
|
39577
|
+
return false;
|
39578
|
+
}
|
39579
|
+
if(!this._batches){
|
39580
|
+
this._batches = {};
|
39581
|
+
}
|
39582
|
+
this._batches[batchType] = batchType;
|
39583
|
+
this._dispatch("beforeBatchOperation", { batches: this._batches, batchType: batchType });
|
39584
|
+
return true;
|
39585
|
+
};
|
39586
|
+
/** @public
|
39587
|
+
* @param {string} batchType
|
39588
|
+
* @return {boolean}
|
39589
|
+
* @fires Core#afterBatchOperation
|
39590
|
+
*/
|
39591
|
+
Core.prototype.stopBatch = function (batchType) {
|
39592
|
+
if(!batchType){
|
39593
|
+
return false;
|
39594
|
+
}
|
39595
|
+
this._dispatch("afterBatchOperation", { batches: this._batches, batchType: batchType });
|
39596
|
+
|
39597
|
+
delete this._batches[batchType];
|
39598
|
+
if(Object(Util["f" /* isEmptyObject */])(this._batches)){
|
39599
|
+
this._batches = null;
|
39600
|
+
}
|
39601
|
+
return true;
|
39602
|
+
};
|
39501
39603
|
//#endregion Public Methods
|
39502
39604
|
|
39503
39605
|
//#region Private Methods
|
@@ -39741,6 +39843,10 @@ Core.prototype._dispatchColumnAddedEvent = function (at, count, atTheMiddle, ctx
|
|
39741
39843
|
if (this._hasListener("columnAdded")) {
|
39742
39844
|
var e = {};
|
39743
39845
|
e["atTheMiddle"] = atTheMiddle;
|
39846
|
+
var batches = this._batches;
|
39847
|
+
if(batches){
|
39848
|
+
e["batches"] = batches;
|
39849
|
+
}
|
39744
39850
|
if(count === 1) {
|
39745
39851
|
e["colIndex"] = at;
|
39746
39852
|
e["context"] = ctx;
|
@@ -39892,6 +39998,10 @@ Core.prototype._removeColumn = function (num) { // TODO: change the logic to us
|
|
39892
39998
|
|
39893
39999
|
if (this._hasListener("columnRemoved")) {
|
39894
40000
|
var e = {};
|
40001
|
+
var batches = this._batches;
|
40002
|
+
if(batches){
|
40003
|
+
e["batches"] = batches;
|
40004
|
+
}
|
39895
40005
|
for (var c = colCount; --c >= newCount; ) {
|
39896
40006
|
var colDef = removedCols[c - newCount];
|
39897
40007
|
e["colIndex"] = c;
|
@@ -41442,73 +41552,150 @@ DataConnector.prototype.reset = function () {
|
|
41442
41552
|
/* harmony default export */ var js_DataConnector = (DataConnector);
|
41443
41553
|
|
41444
41554
|
// CONCATENATED MODULE: ./src/js/RowDefSorter.js
|
41555
|
+
|
41556
|
+
|
41557
|
+
/** @private
|
41558
|
+
* @param {*} a
|
41559
|
+
* @param {*} b
|
41560
|
+
* @param {number} order
|
41561
|
+
* @return {number}
|
41562
|
+
*/
|
41563
|
+
var _defaultCompare = function(a, b, order) {
|
41564
|
+
if(a == null || a !== a) {
|
41565
|
+
if(b == null || b !== b) {
|
41566
|
+
return 0;
|
41567
|
+
}
|
41568
|
+
return 1;
|
41569
|
+
}
|
41570
|
+
if(b == null || b !== b) {
|
41571
|
+
return -1;
|
41572
|
+
}
|
41573
|
+
|
41574
|
+
if(a < b) {
|
41575
|
+
return -order;
|
41576
|
+
}
|
41577
|
+
if(b < a) {
|
41578
|
+
return order;
|
41579
|
+
}
|
41580
|
+
return 0;
|
41581
|
+
};
|
41582
|
+
|
41445
41583
|
/** @constructor
|
41446
41584
|
*/
|
41447
41585
|
var RowDefSorter = function() {
|
41448
41586
|
this._defaultSorter = this._defaultSorter.bind(this);
|
41449
41587
|
this._dataSorter = this._dataSorter.bind(this);
|
41450
41588
|
this._rowDefSorter = this._rowDefSorter.bind(this);
|
41589
|
+
this._multiColumnsSorter = this._multiColumnsSorter.bind(this);
|
41451
41590
|
|
41452
|
-
this.
|
41591
|
+
this._globalContext = {};
|
41592
|
+
this._sortParams = [];
|
41593
|
+
this._ctxCaches = [];
|
41453
41594
|
};
|
41454
41595
|
|
41455
|
-
|
41456
|
-
/** @type {string}
|
41596
|
+
/** @type {!Object}
|
41457
41597
|
* @private
|
41458
41598
|
*/
|
41459
|
-
RowDefSorter.prototype.
|
41460
|
-
/** @type {!
|
41599
|
+
RowDefSorter.prototype._globalContext;
|
41600
|
+
/** @type {!Array.<Array>}
|
41461
41601
|
* @private
|
41462
41602
|
*/
|
41463
|
-
RowDefSorter.prototype.
|
41464
|
-
/** @type {
|
41603
|
+
RowDefSorter.prototype._sortParams;
|
41604
|
+
/** @type {!Array.<Object>}
|
41605
|
+
* @private
|
41606
|
+
*/
|
41607
|
+
RowDefSorter.prototype._ctxCaches;
|
41608
|
+
/** @type {Array}
|
41465
41609
|
* @private
|
41466
41610
|
*/
|
41467
|
-
RowDefSorter.prototype.
|
41611
|
+
RowDefSorter.prototype._primaryParams;
|
41468
41612
|
|
41469
41613
|
|
41470
41614
|
/** @public
|
41471
41615
|
*/
|
41472
41616
|
RowDefSorter.prototype.dispose = function() {
|
41473
|
-
this.
|
41474
|
-
this.
|
41617
|
+
this._globalContext = {}; // Clear any existing reference
|
41618
|
+
this._sortParams.length = 0;
|
41619
|
+
this._ctxCaches.length = 0;
|
41620
|
+
this._primaryParams = null;
|
41475
41621
|
};
|
41476
41622
|
|
41477
41623
|
/** @public
|
41478
|
-
* @param {boolean=} rowSorting=false
|
41479
41624
|
* @return {Function}
|
41480
41625
|
*/
|
41481
|
-
RowDefSorter.prototype.getSorter = function(
|
41482
|
-
|
41483
|
-
|
41484
|
-
|
41485
|
-
|
41626
|
+
RowDefSorter.prototype.getSorter = function() {
|
41627
|
+
this._primaryParams = null;
|
41628
|
+
var sortCount = this._sortParams.length;
|
41629
|
+
if(sortCount === 1) {
|
41630
|
+
var params = this._primaryParams = this._sortParams[0];
|
41631
|
+
var sortLogic = params[1];
|
41632
|
+
if(sortLogic) {
|
41633
|
+
var rowSorting = params[3];
|
41634
|
+
return rowSorting ? this._rowDefSorter : this._dataSorter;
|
41635
|
+
} else {
|
41636
|
+
return this._defaultSorter;
|
41637
|
+
}
|
41638
|
+
} else if(sortCount > 1) {
|
41639
|
+
return this._multiColumnsSorter;
|
41486
41640
|
}
|
41487
|
-
};
|
41488
|
-
/** @public
|
41489
|
-
* @param {Function=} func
|
41490
|
-
*/
|
41491
|
-
RowDefSorter.prototype.setSortLogic = function(func) {
|
41492
|
-
this._sortLogic = (typeof func === "function") ? func : null;
|
41493
|
-
};
|
41494
41641
|
|
41642
|
+
return RowDefSorter._noSorting;
|
41643
|
+
};
|
41495
41644
|
|
41496
41645
|
/** @public
|
41497
|
-
* @param {string}
|
41646
|
+
* @param {string} key
|
41647
|
+
* @param {*} value
|
41498
41648
|
*/
|
41499
|
-
RowDefSorter.prototype.
|
41500
|
-
if(
|
41501
|
-
|
41649
|
+
RowDefSorter.prototype.reset = function() {
|
41650
|
+
if(this._sortParams.length) {
|
41651
|
+
this._sortParams.length = 0;
|
41502
41652
|
}
|
41503
|
-
this._sortContext["field"] = this._field = field;
|
41504
|
-
this._sortContext["formattedField"] = field + "_FORMATTED";
|
41505
41653
|
};
|
41506
41654
|
/** @public
|
41507
41655
|
* @param {string} key
|
41508
41656
|
* @param {*} value
|
41509
41657
|
*/
|
41510
41658
|
RowDefSorter.prototype.setContext = function(key, value) {
|
41511
|
-
this.
|
41659
|
+
this._globalContext[key] = value;
|
41660
|
+
};
|
41661
|
+
/** @public
|
41662
|
+
* @param {string} field
|
41663
|
+
* @param {Function} logic
|
41664
|
+
* @param {boolean} rowSorting
|
41665
|
+
* @param {string} order
|
41666
|
+
* @param {number} colIndex
|
41667
|
+
* @param {*} colDef
|
41668
|
+
*/
|
41669
|
+
RowDefSorter.prototype.addColumnContext = function(field, logic, rowSorting, order, colIndex, colDef) {
|
41670
|
+
if(!field) {
|
41671
|
+
field = "";
|
41672
|
+
}
|
41673
|
+
var sortPriority = this._sortParams.length;
|
41674
|
+
var ctx = this._ctxCaches[sortPriority];
|
41675
|
+
if(!ctx) {
|
41676
|
+
ctx = this._ctxCaches[sortPriority] = Object(Util["b" /* cloneObject */])(this._globalContext);
|
41677
|
+
}
|
41678
|
+
var orderNum = 0;
|
41679
|
+
if(order === "a") {
|
41680
|
+
orderNum = 1;
|
41681
|
+
} else if(order === "d") {
|
41682
|
+
orderNum = -1;
|
41683
|
+
}
|
41684
|
+
|
41685
|
+
var params = [
|
41686
|
+
field, // 0
|
41687
|
+
(typeof logic === "function") ? logic : null, // 1
|
41688
|
+
ctx, // 2
|
41689
|
+
rowSorting, // 3
|
41690
|
+
orderNum // 4
|
41691
|
+
];
|
41692
|
+
|
41693
|
+
ctx["colIndex"] = colIndex;
|
41694
|
+
ctx["field"] = field;
|
41695
|
+
ctx["formattedField"] = field + "_FORMATTED";
|
41696
|
+
ctx["colDef"] = colDef;
|
41697
|
+
|
41698
|
+
this._sortParams.push(params);
|
41512
41699
|
};
|
41513
41700
|
|
41514
41701
|
/** @private
|
@@ -41517,32 +41704,7 @@ RowDefSorter.prototype.setContext = function(key, value) {
|
|
41517
41704
|
* @param {number} order
|
41518
41705
|
* @return {number}
|
41519
41706
|
*/
|
41520
|
-
RowDefSorter.
|
41521
|
-
var orderA = rowDefA.getGroupOrder();
|
41522
|
-
var orderB = rowDefB.getGroupOrder();
|
41523
|
-
if(orderA !== orderB) {
|
41524
|
-
return orderA - orderB; // Regardless of sort order
|
41525
|
-
}
|
41526
|
-
|
41527
|
-
var a = rowDefA.getData(this._field);
|
41528
|
-
var b = rowDefB.getData(this._field);
|
41529
|
-
|
41530
|
-
if(a == null || a !== a) {
|
41531
|
-
if(b == null || b !== b) {
|
41532
|
-
return 0;
|
41533
|
-
}
|
41534
|
-
return 1;
|
41535
|
-
}
|
41536
|
-
if(b == null || b !== b) {
|
41537
|
-
return -1;
|
41538
|
-
}
|
41539
|
-
|
41540
|
-
if(a < b) {
|
41541
|
-
return -order;
|
41542
|
-
}
|
41543
|
-
if(b < a) {
|
41544
|
-
return order;
|
41545
|
-
}
|
41707
|
+
RowDefSorter._noSorting = function(rowDefA, rowDefB, order) {
|
41546
41708
|
return 0;
|
41547
41709
|
};
|
41548
41710
|
/** @private
|
@@ -41551,16 +41713,30 @@ RowDefSorter.prototype._defaultSorter = function(rowDefA, rowDefB, order) {
|
|
41551
41713
|
* @param {number} order
|
41552
41714
|
* @return {number}
|
41553
41715
|
*/
|
41716
|
+
RowDefSorter.prototype._defaultSorter = function(rowDefA, rowDefB, order) {
|
41717
|
+
var field = this._primaryParams[0];
|
41718
|
+
return _defaultCompare(
|
41719
|
+
rowDefA.getData(field),
|
41720
|
+
rowDefB.getData(field),
|
41721
|
+
order
|
41722
|
+
);
|
41723
|
+
};
|
41724
|
+
/** @private
|
41725
|
+
* @param {RowDefinition} rowDefA
|
41726
|
+
* @param {RowDefinition} rowDefB
|
41727
|
+
* @param {number} order
|
41728
|
+
* @return {number}
|
41729
|
+
*/
|
41554
41730
|
RowDefSorter.prototype._dataSorter = function(rowDefA, rowDefB, order) {
|
41555
|
-
var
|
41556
|
-
var
|
41557
|
-
|
41558
|
-
|
41559
|
-
|
41560
|
-
|
41561
|
-
|
41562
|
-
|
41563
|
-
|
41731
|
+
var params = this._primaryParams;
|
41732
|
+
var field = params[0];
|
41733
|
+
var sortLogic = params[1];
|
41734
|
+
return sortLogic(
|
41735
|
+
rowDefA.getData(field),
|
41736
|
+
rowDefB.getData(field),
|
41737
|
+
order,
|
41738
|
+
params[2]
|
41739
|
+
);
|
41564
41740
|
};
|
41565
41741
|
/** @private
|
41566
41742
|
* @param {RowDefinition} rowDefA
|
@@ -41569,13 +41745,41 @@ RowDefSorter.prototype._dataSorter = function(rowDefA, rowDefB, order) {
|
|
41569
41745
|
* @return {number}
|
41570
41746
|
*/
|
41571
41747
|
RowDefSorter.prototype._rowDefSorter = function(rowDefA, rowDefB, order) {
|
41572
|
-
var
|
41573
|
-
var
|
41574
|
-
|
41575
|
-
|
41748
|
+
var params = this._primaryParams;
|
41749
|
+
var sortLogic = params[1];
|
41750
|
+
return sortLogic(rowDefA, rowDefB, order, params[2]);
|
41751
|
+
};
|
41752
|
+
/** @private
|
41753
|
+
* @param {RowDefinition} rowDefA
|
41754
|
+
* @param {RowDefinition} rowDefB
|
41755
|
+
* @param {number} primaryOrder
|
41756
|
+
* @return {number}
|
41757
|
+
*/
|
41758
|
+
RowDefSorter.prototype._multiColumnsSorter = function(rowDefA, rowDefB, primaryOrder) {
|
41759
|
+
var sortParams = this._sortParams;
|
41760
|
+
var sortCount = sortParams.length;
|
41761
|
+
for(var i = 0; i < sortCount; ++i) {
|
41762
|
+
var params = sortParams[i];
|
41763
|
+
var field = params[0];
|
41764
|
+
var sortLogic = params[1];
|
41765
|
+
var ctx = params[2];
|
41766
|
+
var rowSorting = params[3];
|
41767
|
+
var orderNum = params[4];
|
41768
|
+
var ret = 0;
|
41769
|
+
if(sortLogic) {
|
41770
|
+
if(rowSorting) {
|
41771
|
+
ret = sortLogic(rowDefA, rowDefB, orderNum, ctx);
|
41772
|
+
} else {
|
41773
|
+
ret = sortLogic(rowDefA.getData(field), rowDefB.getData(field), orderNum, ctx);
|
41774
|
+
}
|
41775
|
+
} else {
|
41776
|
+
ret = _defaultCompare(rowDefA.getData(field), rowDefB.getData(field), orderNum);
|
41777
|
+
}
|
41778
|
+
if(ret) {
|
41779
|
+
return ret;
|
41780
|
+
}
|
41576
41781
|
}
|
41577
|
-
|
41578
|
-
return this._sortLogic(rowDefA, rowDefB, order, this._sortContext);
|
41782
|
+
return 0;
|
41579
41783
|
};
|
41580
41784
|
|
41581
41785
|
/* harmony default export */ var js_RowDefSorter = (RowDefSorter);
|
@@ -43124,6 +43328,9 @@ SortableTitlePlugin.prototype._sortDataView = function (opt_action) {
|
|
43124
43328
|
if (!this._dataSorting) { return; }
|
43125
43329
|
|
43126
43330
|
var sortCount = this._sortStates.length;
|
43331
|
+
if(this._userManagedLogic && sortCount > 1) { // The logic is managed by the user. There is no point in using multi-column sorting
|
43332
|
+
sortCount = 1;
|
43333
|
+
}
|
43127
43334
|
var orders = null;
|
43128
43335
|
var sortLogics = null;
|
43129
43336
|
var c_ref = null;
|
@@ -43139,6 +43346,9 @@ SortableTitlePlugin.prototype._sortDataView = function (opt_action) {
|
|
43139
43346
|
} else {
|
43140
43347
|
c_ref = this.getColumnSortingFields();
|
43141
43348
|
}
|
43349
|
+
if(this._userManagedLogic && c_ref.length > 1) {
|
43350
|
+
c_ref = c_ref.slice(0, 1);
|
43351
|
+
}
|
43142
43352
|
}
|
43143
43353
|
|
43144
43354
|
// Perform sorting even if there is no sort state
|
@@ -43247,16 +43457,16 @@ SortableTitlePlugin.prototype._updateSortableIndicator = function (hostIndex) {
|
|
43247
43457
|
symbol = t._createIconElem(icon, textContent);
|
43248
43458
|
symbol.className = "sort-symbol";
|
43249
43459
|
cell["insertFloatingIcon"](symbol, 0);
|
43250
|
-
|
43251
|
-
if (t._sortStates.length > 1) {
|
43252
|
-
symbol = document.createElement("span");
|
43253
|
-
symbol.className = "priority-symbol";
|
43254
|
-
symbol.textContent = priority + 1;
|
43255
|
-
cell["insertFloatingIcon"](symbol, 1);
|
43256
|
-
}
|
43257
43460
|
} else {
|
43258
43461
|
cell["addClass"]("edge-indicator");
|
43259
43462
|
}
|
43463
|
+
|
43464
|
+
if (t._sortStates.length > 1) {
|
43465
|
+
symbol = document.createElement("span");
|
43466
|
+
symbol.className = "priority-symbol";
|
43467
|
+
symbol.textContent = priority + 1;
|
43468
|
+
cell["insertFloatingIcon"](symbol, 1);
|
43469
|
+
}
|
43260
43470
|
} else if (t._sortableIndicator) { // Can sort but currently not sorting
|
43261
43471
|
icon = SortableTitlePlugin._icons["sortable"];
|
43262
43472
|
symbol = t._createIconElem(icon, CODE_DIAMOND);
|
@@ -43716,6 +43926,7 @@ var Grid = function(placeholder, config) {
|
|
43716
43926
|
t._dc = new DataCache_DataCache();
|
43717
43927
|
t._dc.listen("dataChanged", t._onDataChanged);
|
43718
43928
|
t._dc.listen("dataComposed", t._onDataComposed);
|
43929
|
+
t._dc.addStaticFields([ROW_DEF, SUB_ID]); // Static fields are deprecated, set fields to be ignore during clone in DataCache
|
43719
43930
|
|
43720
43931
|
t._dt = new DataTable();
|
43721
43932
|
t._dt.setSortingLogic(/** @type{Function} */(t._mainSorter));
|
@@ -44916,8 +45127,11 @@ Grid.prototype.replaceColumn = function (columnOption, colRef) {
|
|
44916
45127
|
if(colDef.getChildren()) { // Parent time series field doesn't provide hidden property
|
44917
45128
|
colConfig["hidden"] = false;
|
44918
45129
|
}
|
45130
|
+
|
45131
|
+
this._grid.startBatch("reset");
|
44919
45132
|
this.insertColumn(colConfig, colIndex);
|
44920
45133
|
this.removeColumn(colIndex + 1); // remove existing column after insert
|
45134
|
+
this._grid.stopBatch("reset");
|
44921
45135
|
};
|
44922
45136
|
|
44923
45137
|
/** to update column name when field info is loaded
|
@@ -45010,21 +45224,24 @@ Grid.prototype._shouldLoadFieldInfo = function (field) {
|
|
45010
45224
|
* @param {Array.<Object>} columns Array of column options
|
45011
45225
|
*/
|
45012
45226
|
Grid.prototype.setColumns = function(columns) {
|
45227
|
+
var grid = this._grid;
|
45013
45228
|
var colCount = (columns) ? columns.length : 0;
|
45014
45229
|
|
45230
|
+
grid.startBatch("reset");
|
45015
45231
|
this.removeAllColumns();
|
45016
45232
|
if(colCount > 0) {
|
45017
45233
|
var prevState = false;
|
45018
45234
|
if(colCount > 1) {
|
45019
|
-
prevState =
|
45235
|
+
prevState = grid.freezeLayout(true); // Insert multiple columns can be a huge time consuming
|
45020
45236
|
}
|
45021
45237
|
for(var i = 0; i < colCount; ++i) {
|
45022
45238
|
this.insertColumn(columns[i], i);
|
45023
45239
|
}
|
45024
45240
|
if(colCount > 1) {
|
45025
|
-
|
45241
|
+
grid.freezeLayout(prevState);
|
45026
45242
|
}
|
45027
45243
|
}
|
45244
|
+
grid.stopBatch("reset");
|
45028
45245
|
};
|
45029
45246
|
|
45030
45247
|
|
@@ -45033,6 +45250,8 @@ Grid.prototype.setColumns = function(columns) {
|
|
45033
45250
|
* @param {Array.<Object>} columns Array of column options
|
45034
45251
|
*/
|
45035
45252
|
Grid.prototype.restoreColumns = function(columns) {
|
45253
|
+
var grid = this._grid;
|
45254
|
+
grid.startBatch("reset");
|
45036
45255
|
var configObj = this.getConfigObject();
|
45037
45256
|
var previousColumns = configObj.columns;
|
45038
45257
|
|
@@ -45096,7 +45315,8 @@ Grid.prototype.restoreColumns = function(columns) {
|
|
45096
45315
|
this._stp.sortColumns(sortingStates);
|
45097
45316
|
}
|
45098
45317
|
|
45099
|
-
|
45318
|
+
grid.reorderColumns(columnOrdering);
|
45319
|
+
grid.stopBatch("reset");
|
45100
45320
|
};
|
45101
45321
|
|
45102
45322
|
/** Remove all existing columns and add new columns based on the given texts/fields
|
@@ -45172,11 +45392,6 @@ Grid.prototype._onColumnAdded = function(e) {
|
|
45172
45392
|
this._grid.enableColumnClass(idx, classes[i]);
|
45173
45393
|
}
|
45174
45394
|
var colField = colDef.getField();
|
45175
|
-
if (!colDef.isRealTimeField()) {
|
45176
|
-
if(this._dc) {
|
45177
|
-
this._dc.addStaticFields([colField]);
|
45178
|
-
}
|
45179
|
-
}
|
45180
45395
|
this._grid.setDataColumnName(idx, ROW_DEF); // This make ColumnDefinition renderer work
|
45181
45396
|
var fields = colDef.getAllFields();
|
45182
45397
|
var referrer = colDef.getId();
|
@@ -46789,33 +47004,34 @@ Grid.prototype._updateStreamingData = function() {
|
|
46789
47004
|
* @param {Object} e
|
46790
47005
|
*/
|
46791
47006
|
Grid.prototype._onPreDataSorting = function (e) {
|
46792
|
-
var
|
46793
|
-
|
46794
|
-
|
46795
|
-
|
46796
|
-
|
46797
|
-
|
46798
|
-
|
46799
|
-
|
46800
|
-
|
46801
|
-
|
46802
|
-
|
46803
|
-
|
46804
|
-
|
47007
|
+
var objs = this._stp.getSortedColumns();
|
47008
|
+
|
47009
|
+
this._sorter.reset();
|
47010
|
+
if(Array.isArray(objs)) {
|
47011
|
+
var sortCount = objs.length;
|
47012
|
+
for(var i = 0; i < sortCount; ++i) {
|
47013
|
+
var obj = objs[i];
|
47014
|
+
var field = obj["field"] || "";
|
47015
|
+
var colIndex = obj["colIndex"];
|
47016
|
+
var colDef = (colIndex >= 0) ? this.getColumnDefinition(colIndex) : null;
|
47017
|
+
|
47018
|
+
var rowSorting = false;
|
47019
|
+
var sortLogic = null;
|
47020
|
+
if(colDef) {
|
47021
|
+
field = colDef.getField(); // WARNING: Field and logic could be out of sync
|
47022
|
+
rowSorting = colDef.isRowSorting();
|
47023
|
+
sortLogic = colDef.getSorter();
|
47024
|
+
}
|
47025
|
+
// TODO: get sortLogic from DataView
|
47026
|
+
// if(!sortLogic && field) {
|
47027
|
+
// sortLogic = state["sortLogic"];
|
47028
|
+
// }
|
46805
47029
|
|
46806
|
-
|
46807
|
-
field = colDef.getField(); // WARNING: Field and logic could be out of sync
|
46808
|
-
sortLogic = colDef.getSorter();
|
46809
|
-
rowSorting = colDef.isRowSorting();
|
47030
|
+
this._sorter.addColumnContext(field, sortLogic, rowSorting, obj["sortOrder"], colIndex, colDef);
|
46810
47031
|
}
|
46811
47032
|
}
|
46812
|
-
if(!sortLogic && field) {
|
46813
|
-
sortLogic = state["sortLogic"];
|
46814
|
-
}
|
46815
47033
|
|
46816
|
-
this._sorter.
|
46817
|
-
this._sorter.setSortLogic(sortLogic);
|
46818
|
-
this._columnSorter = this._sorter.getSorter(rowSorting);
|
47034
|
+
this._columnSorter = this._sorter.getSorter();
|
46819
47035
|
};
|
46820
47036
|
/** @private
|
46821
47037
|
* @param {RowDefinition} rowDefA
|
@@ -47716,7 +47932,7 @@ var _fieldInfo = {
|
|
47716
47932
|
"words2": {type: "string", min: 3, max: 10},
|
47717
47933
|
"words3": {type: "string", min: 5, max: 15},
|
47718
47934
|
"sentence": {type: "string", min: 8, max: 20},
|
47719
|
-
"id": {type: "function", generate: _generateId},
|
47935
|
+
"id": {type: "function", hash: 0, generate: _generateId},
|
47720
47936
|
"companyName": {type: "set", members: jet_DataSet.companyName },
|
47721
47937
|
"industry": {type: "set", members: jet_DataSet.industry },
|
47722
47938
|
"market": {type: "set", members: jet_DataSet.market },
|
@@ -47736,14 +47952,16 @@ var getFieldInfo = function(field) {
|
|
47736
47952
|
* @param {Object|Function} options
|
47737
47953
|
*/
|
47738
47954
|
var addFieldInfo = function(field, options) {
|
47739
|
-
|
47740
|
-
|
47741
|
-
|
47742
|
-
|
47743
|
-
|
47744
|
-
|
47955
|
+
if(field) {
|
47956
|
+
var opt = options;
|
47957
|
+
if(typeof options === "function") {
|
47958
|
+
opt = {
|
47959
|
+
type: "function",
|
47960
|
+
generate: options
|
47961
|
+
};
|
47962
|
+
}
|
47963
|
+
_fieldInfo[field] = opt; // WARNING: This could replace existing info
|
47745
47964
|
}
|
47746
|
-
_fieldInfo[field] = opt;
|
47747
47965
|
};
|
47748
47966
|
|
47749
47967
|
/** Return pseudo random number in the range of 0 to 1 (exclusive of 1)
|
@@ -48085,8 +48303,9 @@ var _generate2DArray = function(fields, options, seed) {
|
|
48085
48303
|
*/
|
48086
48304
|
var _hash = function(str) {
|
48087
48305
|
var sum = 0;
|
48088
|
-
|
48089
|
-
|
48306
|
+
var i = str ? str.length : 0;
|
48307
|
+
while(--i >= 0) {
|
48308
|
+
sum += str.charCodeAt(i) * (i + 0.9879);
|
48090
48309
|
}
|
48091
48310
|
return sum;
|
48092
48311
|
};
|
@@ -48098,35 +48317,34 @@ var _hash = function(str) {
|
|
48098
48317
|
*/
|
48099
48318
|
var _generateFieldData = function(field, options, seed) {
|
48100
48319
|
var fInfo = getFieldInfo(field);
|
48320
|
+
if(!fInfo.type) {
|
48321
|
+
fInfo.type = "number";
|
48322
|
+
addFieldInfo(field, fInfo);
|
48323
|
+
}
|
48324
|
+
if(fInfo.fixedValue){
|
48325
|
+
fInfo.value = value;
|
48326
|
+
return fInfo;
|
48327
|
+
}
|
48328
|
+
if(seed != null) {
|
48329
|
+
if(fInfo.hash == null) {
|
48330
|
+
fInfo.hash = _hash(field);
|
48331
|
+
}
|
48332
|
+
seed += fInfo.hash; // Make each field unique for the same seed
|
48333
|
+
}
|
48334
|
+
|
48101
48335
|
var min = fInfo.min != null ? fInfo.min : 100; // WARNING: Default values are non-standard values
|
48102
48336
|
var max = fInfo.max != null ? fInfo.max : 10000;
|
48103
|
-
var prec = fInfo.prec != null ? fInfo.prec : 0;
|
48104
48337
|
var value;
|
48105
48338
|
|
48106
|
-
if(fInfo.
|
48107
|
-
value = fInfo.fixedValue;
|
48108
|
-
} else if(!fInfo.type) { // Unknown type
|
48109
|
-
if(seed != null) {
|
48110
|
-
if(field) {
|
48111
|
-
if(!fInfo.hash) {
|
48112
|
-
fInfo.hash = _hash(field);
|
48113
|
-
addFieldInfo(field, fInfo); // WARNING: modify global state
|
48114
|
-
}
|
48115
|
-
seed += fInfo.hash;
|
48116
|
-
}
|
48117
|
-
}
|
48118
|
-
value = randNumber(min, max, prec, seed);
|
48119
|
-
} else if(fInfo.type === "string") {
|
48339
|
+
if(fInfo.type === "string") {
|
48120
48340
|
if(fInfo.min != null || fInfo.max != null) {
|
48121
|
-
if(seed != null) {
|
48122
|
-
if(!fInfo.hash) {
|
48123
|
-
fInfo.hash = _hash(field);
|
48124
|
-
}
|
48125
|
-
seed += fInfo.hash;
|
48126
|
-
}
|
48127
48341
|
value = randString(min, max, seed);
|
48128
48342
|
} else {
|
48129
|
-
|
48343
|
+
if(options) {
|
48344
|
+
value = options.text || "";
|
48345
|
+
} else {
|
48346
|
+
value = "";
|
48347
|
+
}
|
48130
48348
|
}
|
48131
48349
|
} else if(fInfo.type === "set") {
|
48132
48350
|
value = randMember(fInfo.members, seed);
|
@@ -48143,7 +48361,8 @@ var _generateFieldData = function(field, options, seed) {
|
|
48143
48361
|
} else if(fInfo.type === "function") {
|
48144
48362
|
fInfo.field = field;
|
48145
48363
|
value = fInfo.generate(fInfo, seed);
|
48146
|
-
} else { // Default is number
|
48364
|
+
} else { // Default is number for all unknown type
|
48365
|
+
var prec = fInfo.prec != null ? fInfo.prec : 0;
|
48147
48366
|
value = randNumber(min, max, prec, seed);
|
48148
48367
|
}
|
48149
48368
|
fInfo.value = value;
|