@refinitiv-ui/efx-grid 6.0.33 → 6.0.35
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.js +210 -38
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataTable.d.ts +3 -1
- package/lib/core/es6/data/DataTable.js +27 -9
- package/lib/core/es6/data/DataView.d.ts +2 -0
- package/lib/core/es6/data/DataView.js +12 -1
- package/lib/core/es6/data/Segment.d.ts +2 -0
- package/lib/core/es6/data/Segment.js +16 -0
- package/lib/core/es6/data/SegmentCollection.d.ts +1 -3
- package/lib/core/es6/data/SegmentCollection.js +25 -18
- package/lib/core/es6/grid/Core.d.ts +12 -0
- package/lib/core/es6/grid/Core.js +64 -2
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +13 -7
- 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 +3 -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 +766 -293
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/ColumnDefinition.js +13 -8
- package/lib/rt-grid/es6/DataConnector.js +3 -2
- package/lib/rt-grid/es6/Grid.d.ts +3 -1
- package/lib/rt-grid/es6/Grid.js +148 -40
- package/lib/rt-grid/es6/RowDefSorter.d.ts +5 -5
- package/lib/rt-grid/es6/RowDefSorter.js +165 -71
- package/lib/rt-grid/es6/RowDefinition.d.ts +7 -2
- package/lib/rt-grid/es6/RowDefinition.js +48 -10
- package/lib/rt-grid/es6/SnapshotFiller.d.ts +1 -0
- package/lib/rt-grid/es6/SnapshotFiller.js +1 -11
- package/lib/tr-grid-column-selection/es6/ColumnSelection.js +66 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +2 -0
- package/lib/tr-grid-column-stack/es6/ColumnStack.js +38 -13
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +12 -5
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +128 -42
- package/lib/tr-grid-heat-map/es6/HeatMap.d.ts +3 -3
- package/lib/tr-grid-heat-map/es6/HeatMap.js +13 -2
- package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +2 -1
- package/lib/tr-grid-row-dragging/es6/RowDragging.js +153 -17
- package/lib/tr-grid-rowcoloring/es6/RowColoring.js +3 -2
- package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +20 -20
- package/lib/tr-grid-textformatting/es6/TextFormatting.js +37 -138
- package/lib/tr-grid-util/es6/CellPainter.d.ts +1 -1
- package/lib/tr-grid-util/es6/CellPainter.js +56 -55
- package/lib/tr-grid-util/es6/DragUI.js +7 -3
- package/lib/tr-grid-util/es6/FieldFormatter.js +6 -2
- package/lib/tr-grid-util/es6/NumberFormatter.js +23 -11
- package/lib/tr-grid-util/es6/Util.d.ts +3 -0
- package/lib/tr-grid-util/es6/Util.js +53 -0
- package/lib/tr-grid-util/es6/jet/DataGenerator.js +36 -33
- package/lib/types/es6/ColumnStack.d.ts +2 -0
- package/lib/types/es6/ConditionalColoring.d.ts +12 -5
- 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/data/Segment.d.ts +2 -0
- package/lib/types/es6/Core/data/SegmentCollection.d.ts +1 -3
- package/lib/types/es6/Core/grid/Core.d.ts +4 -0
- package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +1 -0
- package/lib/types/es6/HeatMap.d.ts +3 -3
- package/lib/types/es6/RealtimeGrid/Grid.d.ts +3 -1
- package/lib/types/es6/RealtimeGrid/RowDefSorter.d.ts +5 -5
- package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +7 -2
- package/lib/types/es6/RealtimeGrid/SnapshotFiller.d.ts +1 -0
- package/lib/types/es6/RowDragging.d.ts +2 -1
- package/lib/types/es6/TextFormatting.d.ts +20 -20
- package/lib/versions.json +9 -9
- package/package.json +1 -1
@@ -150,20 +150,22 @@ Ext.inherits = function (childCtor, parentCtor) {
|
|
150
150
|
|
151
151
|
"use strict";
|
152
152
|
/* unused harmony export Util */
|
153
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "
|
153
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return extendObject; });
|
154
154
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return cloneObject; });
|
155
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return isEmptyObject; });
|
156
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return deepEqual; });
|
155
157
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return arrayToObject; });
|
156
158
|
/* unused harmony export extendProperty */
|
157
159
|
/* unused harmony export extendArrayProperty */
|
158
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "
|
159
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "
|
160
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return parseCondition; });
|
161
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return prettifyCss; });
|
160
162
|
/* unused harmony export getShadowRoot */
|
161
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "
|
163
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return injectCss; });
|
162
164
|
/* unused harmony export isIE */
|
163
165
|
/* unused harmony export isMac */
|
164
166
|
/* unused harmony export isTouchDevice */
|
165
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "
|
166
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "
|
167
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return nestedObjectToArray; });
|
168
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return rgb2Hex; });
|
167
169
|
/* unused harmony export prepareTSVContent */
|
168
170
|
/** @namespace */
|
169
171
|
var Util = {};
|
@@ -305,6 +307,20 @@ var extendObject = function (obj, extender, limiters) {
|
|
305
307
|
var cloneObject = function (obj, limiters) {
|
306
308
|
return extendObject({}, obj, limiters);
|
307
309
|
};
|
310
|
+
|
311
|
+
/** Check empty object
|
312
|
+
* @public
|
313
|
+
* @function
|
314
|
+
* @param {Object} obj
|
315
|
+
* @return {boolean}=true, if the obj is empty
|
316
|
+
*/
|
317
|
+
var isEmptyObject = function (obj) {
|
318
|
+
for (var key in obj) {
|
319
|
+
return false;
|
320
|
+
}
|
321
|
+
return true;
|
322
|
+
};
|
323
|
+
|
308
324
|
/** @public
|
309
325
|
* @param {Array=} data
|
310
326
|
* @param {Array.<string>=} fields In case of the given data is an array, this param will be used for mapping index to field
|
@@ -353,6 +369,58 @@ var extendProperty = function (obj, extender, propName) {
|
|
353
369
|
}
|
354
370
|
}
|
355
371
|
};
|
372
|
+
|
373
|
+
|
374
|
+
/** Compare the values of obj1 and obj2. if they are the same object or have the same value, the result will be true. Otherwise, it will return false.
|
375
|
+
* @public
|
376
|
+
* @param {*} obj1
|
377
|
+
* @param {*} obj2
|
378
|
+
* @return {boolean}
|
379
|
+
*/
|
380
|
+
var deepEqual = function (obj1, obj2) {
|
381
|
+
|
382
|
+
if(obj1 === obj2) {
|
383
|
+
return true;
|
384
|
+
}
|
385
|
+
|
386
|
+
if (typeof obj1 !== typeof obj2) {
|
387
|
+
return false;
|
388
|
+
}
|
389
|
+
|
390
|
+
if (typeof obj1 === "object") {
|
391
|
+
|
392
|
+
// We need to split array and object for performance reason
|
393
|
+
if(Array.isArray(obj1)) {
|
394
|
+
if(obj1.length !== obj2.length) {
|
395
|
+
return false;
|
396
|
+
}
|
397
|
+
|
398
|
+
for (var i = 0; i < obj1.length; i++) {
|
399
|
+
if (!deepEqual(obj1[i], obj2[i])) { // The array may not be a match if the elements are not sorted, so it will not be considered equal if there is a mismatch.
|
400
|
+
return false;
|
401
|
+
}
|
402
|
+
}
|
403
|
+
|
404
|
+
} else {
|
405
|
+
|
406
|
+
if (Object.keys(obj1).length !== Object.keys(obj2).length) {
|
407
|
+
return false;
|
408
|
+
}
|
409
|
+
|
410
|
+
for (var key in obj1) {
|
411
|
+
if (!deepEqual(obj1[key], obj2[key])) {
|
412
|
+
return false;
|
413
|
+
}
|
414
|
+
}
|
415
|
+
}
|
416
|
+
|
417
|
+
|
418
|
+
return true;
|
419
|
+
}
|
420
|
+
|
421
|
+
return false;
|
422
|
+
|
423
|
+
};
|
356
424
|
/** Array.push() is much faster than Array.concat(). The downside is the parameters must be an array, whereas concat() has no such requirement. <br>
|
357
425
|
* This method excels in extending known array property in an object.
|
358
426
|
* @public
|
@@ -3475,7 +3543,7 @@ ElfUtil.injectIcons = function (configObj, optElem) {
|
|
3475
3543
|
*/
|
3476
3544
|
ElfUtil.getIconList = function () {
|
3477
3545
|
var iconStruct = ElfUtil._icons[ElfUtil.getThemeName()];
|
3478
|
-
return iconStruct ? Object(Util["
|
3546
|
+
return iconStruct ? Object(Util["g" /* nestedObjectToArray */])(iconStruct) : [];
|
3479
3547
|
};
|
3480
3548
|
|
3481
3549
|
/** @private
|
@@ -3767,9 +3835,9 @@ ElfUtil._retrieveThemeColors = function(profileName) {
|
|
3767
3835
|
}
|
3768
3836
|
}
|
3769
3837
|
// WARNING: Computed styles return rgb/rgba color format instead of hex format
|
3770
|
-
colors["tableBg"] = Object(Util["
|
3771
|
-
colors["tableText"] = Object(Util["
|
3772
|
-
colors["tableBorder"] = Object(Util["
|
3838
|
+
colors["tableBg"] = Object(Util["j" /* rgb2Hex */])(colors["tableBg"]);
|
3839
|
+
colors["tableText"] = Object(Util["j" /* rgb2Hex */])(colors["tableText"]);
|
3840
|
+
colors["tableBorder"] = Object(Util["j" /* rgb2Hex */])(colors["tableBorder"]);
|
3773
3841
|
document.body.removeChild(tableElem);
|
3774
3842
|
|
3775
3843
|
// For CellPainter backward compatability
|
@@ -10497,6 +10565,22 @@ Segment.prototype.getOrder = function() {
|
|
10497
10565
|
}
|
10498
10566
|
return this._order * 10000;
|
10499
10567
|
};
|
10568
|
+
/** Get the last (highest) order from the entire tree regardless of the current position segment in the hierachy
|
10569
|
+
* @public
|
10570
|
+
* @return {number}
|
10571
|
+
*/
|
10572
|
+
Segment.prototype.getLastOrder = function() {
|
10573
|
+
if(this._subSegDef) {
|
10574
|
+
var subSegments = this._subSegDef.subSegments;
|
10575
|
+
if(subSegments) {
|
10576
|
+
var lastSegment = subSegments[subSegments.length - 1];
|
10577
|
+
if(lastSegment) {
|
10578
|
+
return lastSegment.getOrder();
|
10579
|
+
}
|
10580
|
+
}
|
10581
|
+
}
|
10582
|
+
return this.getOrder();
|
10583
|
+
};
|
10500
10584
|
/** @public
|
10501
10585
|
* @param {number} val
|
10502
10586
|
*/
|
@@ -10618,9 +10702,10 @@ SegmentCollection.prototype.dispose = function() {
|
|
10618
10702
|
};
|
10619
10703
|
/** @public
|
10620
10704
|
* @param {string} rid
|
10705
|
+
* @param {Array.<string>=} childRids Children of the newly added segment. This is a shorthand to addSegmentChildren method
|
10621
10706
|
* @return {boolean} Returns true if there is any change. Otherwise, returns false
|
10622
10707
|
*/
|
10623
|
-
SegmentCollection.prototype.addSegment = function(rid) {
|
10708
|
+
SegmentCollection.prototype.addSegment = function(rid, childRids) {
|
10624
10709
|
if(rid && !this._segments[rid]) {
|
10625
10710
|
if(this.getParentRowId(rid)) {
|
10626
10711
|
console.log("child of a segment cannot be set as a segment separator");
|
@@ -10631,6 +10716,10 @@ SegmentCollection.prototype.addSegment = function(rid) {
|
|
10631
10716
|
segment.addEventListener("subSegmentRemoved", this._onSubSegmentRemoved);
|
10632
10717
|
++this._segmentCount;
|
10633
10718
|
this._segmentList = null; // order could be changed
|
10719
|
+
|
10720
|
+
if(childRids && childRids.length) {
|
10721
|
+
segment.addChildren(childRids);
|
10722
|
+
}
|
10634
10723
|
return true;
|
10635
10724
|
}
|
10636
10725
|
return false;
|
@@ -10978,9 +11067,10 @@ SegmentCollection.prototype.calcSegmentOrder = function(rids) {
|
|
10978
11067
|
};
|
10979
11068
|
/** @public
|
10980
11069
|
* @param {!Array.<string>} rids Array of row ids
|
11070
|
+
* @param {boolean=} partial Indicating that the given ids are not the whole list
|
10981
11071
|
* @return {Array.<number>} Returns Array of segment values, if there are at least one segment, otherwise returns null
|
10982
|
-
*/
|
10983
|
-
SegmentCollection.prototype.getSegmentValues = function(rids) {
|
11072
|
+
*/ //
|
11073
|
+
SegmentCollection.prototype.getSegmentValues = function(rids, partial) {
|
10984
11074
|
var rowCount = rids ? rids.length : 0;
|
10985
11075
|
if(!rowCount) {
|
10986
11076
|
return null;
|
@@ -10997,29 +11087,30 @@ SegmentCollection.prototype.getSegmentValues = function(rids) {
|
|
10997
11087
|
var rid = rids[r];
|
10998
11088
|
curSegment = segmentSeparators[rid];
|
10999
11089
|
if(curSegment) { // segment separator
|
11000
|
-
|
11001
|
-
|
11002
|
-
|
11003
|
-
if(
|
11004
|
-
|
11090
|
+
segmentVal = curSegment.getOrder() * 100;
|
11091
|
+
offset = 0;
|
11092
|
+
if(!curSegment.isSubSegment()) {
|
11093
|
+
if(prevSegment !== curSegment) {
|
11094
|
+
prevSegment = curSegment;
|
11095
|
+
highestVal = curSegment.getLastOrder() * 100;
|
11005
11096
|
}
|
11006
11097
|
}
|
11007
|
-
offset = 0;
|
11008
11098
|
} else {
|
11009
11099
|
var parentId = childToSegmentId[rid];
|
11010
11100
|
if(parentId) { // segment member
|
11011
11101
|
curSegment = segmentSeparators[parentId];
|
11012
|
-
|
11013
|
-
prevSegment = curSegment;
|
11014
|
-
segmentVal = curSegment.getOrder() * 100;
|
11015
|
-
if(segmentVal > highestVal) {
|
11016
|
-
highestVal = segmentVal;
|
11017
|
-
}
|
11018
|
-
}
|
11102
|
+
segmentVal = curSegment.getOrder() * 100;
|
11019
11103
|
offset = 1;
|
11104
|
+
if(partial) {
|
11105
|
+
highestVal = curSegment.getLastOrder() * 100;
|
11106
|
+
}
|
11020
11107
|
} else { // row outside of segments
|
11021
|
-
|
11022
|
-
|
11108
|
+
if(highestVal) {
|
11109
|
+
segmentVal = highestVal;
|
11110
|
+
offset = 10;
|
11111
|
+
} else {
|
11112
|
+
segmentVal = offset = 0;
|
11113
|
+
}
|
11023
11114
|
}
|
11024
11115
|
}
|
11025
11116
|
|
@@ -12038,7 +12129,24 @@ DataTable.prototype.setSortingLogic = function(func) {
|
|
12038
12129
|
* @param {DataTable.SortLogic} func Use null to remove current sorting logic
|
12039
12130
|
*/
|
12040
12131
|
DataTable.prototype.setColumnSortingLogic = function(cid, func) {
|
12041
|
-
|
12132
|
+
if(cid) {
|
12133
|
+
this._compMap[cid] = func;
|
12134
|
+
}
|
12135
|
+
};
|
12136
|
+
/** Get sorting logic for the specified field. Default logic is returned, if no logic is specified for the column
|
12137
|
+
* @public
|
12138
|
+
* @param {string=} cid
|
12139
|
+
* @return {DataTable.SortLogic}
|
12140
|
+
*/
|
12141
|
+
DataTable.prototype.getColumnSortingLogic = function(cid) {
|
12142
|
+
if(cid) {
|
12143
|
+
var logic = this._compMap[cid];
|
12144
|
+
if(logic) {
|
12145
|
+
return logic;
|
12146
|
+
}
|
12147
|
+
}
|
12148
|
+
|
12149
|
+
return this._compMap["_default"] || null;
|
12042
12150
|
};
|
12043
12151
|
|
12044
12152
|
/** Freeze data table so that no event is fired for data processing until executing {@link DataTable#unfreeze} method
|
@@ -12201,11 +12309,12 @@ DataTable.prototype.getSegmentParentRowId = function(rid) {
|
|
12201
12309
|
/**
|
12202
12310
|
* @public
|
12203
12311
|
* @param {Array.<string>=} rids If no row id is given, row ids of this data table is used instead
|
12312
|
+
* @param {boolean=} partial Indicating that the given ids are not the whole list
|
12204
12313
|
* @return {Array.<number>} Return null if there is no segmentation
|
12205
12314
|
*/
|
12206
|
-
DataTable.prototype.getSegmentValues = function(rids) {
|
12315
|
+
DataTable.prototype.getSegmentValues = function(rids, partial) {
|
12207
12316
|
if(this._segments) {
|
12208
|
-
return this._segments.getSegmentValues(rids || this._rids);
|
12317
|
+
return this._segments.getSegmentValues(rids || this._rids, partial);
|
12209
12318
|
}
|
12210
12319
|
return null;
|
12211
12320
|
};
|
@@ -12288,9 +12397,9 @@ DataTable.prototype.addSegmentChild = function(segmentId, rid, dataId) {
|
|
12288
12397
|
if(this._segments) {
|
12289
12398
|
var dirty = this._segments.addSegmentChild(segmentId, rid, dataId);
|
12290
12399
|
if(dirty) {
|
12291
|
-
|
12292
|
-
|
12293
|
-
|
12400
|
+
this._sort(null);
|
12401
|
+
this._dispatchPositionChange(); // Force rerendering, even if there is no position change
|
12402
|
+
|
12294
12403
|
this.requestClassifying();
|
12295
12404
|
return true;
|
12296
12405
|
}
|
@@ -12307,9 +12416,9 @@ DataTable.prototype.addSegmentChildren = function(segmentId, rids, dataIds) {
|
|
12307
12416
|
if(this._segments) {
|
12308
12417
|
var dirty = this._segments.addSegmentChildren(segmentId, rids, dataIds);
|
12309
12418
|
if(dirty) {
|
12310
|
-
|
12311
|
-
|
12312
|
-
|
12419
|
+
this._sort(null);
|
12420
|
+
this._dispatchPositionChange(); // Force rerendering, even if there is no position change
|
12421
|
+
|
12313
12422
|
this.requestClassifying();
|
12314
12423
|
return true;
|
12315
12424
|
}
|
@@ -13062,6 +13171,7 @@ DataTable._proto = DataTable.prototype;
|
|
13062
13171
|
/** @typedef {Object} RowDefinition~Options
|
13063
13172
|
* @description RowDefinition options
|
13064
13173
|
* @property {string=} ric="" RIC for real-time fields. Prefixing 0# to the ric is equivalent to specifying asChain property.
|
13174
|
+
* @property {string=} permId="" Organization PermId to be used instead of ric for private company.
|
13065
13175
|
* @property {(Array|Object)=} values=null Values for static data
|
13066
13176
|
* @property {Array.<string>=} fields=null Field that corresponds to the given static values
|
13067
13177
|
* @property {boolean=} asChain=false The given ric will be treated as a chain
|
@@ -13143,6 +13253,10 @@ RowDefinition.prototype._ric = ""; // Contains no 0#
|
|
13143
13253
|
/** @type {string}
|
13144
13254
|
* @private
|
13145
13255
|
*/
|
13256
|
+
RowDefinition.prototype._permId = "";
|
13257
|
+
/** @type {string}
|
13258
|
+
* @private
|
13259
|
+
*/
|
13146
13260
|
RowDefinition.prototype._displayText = "";
|
13147
13261
|
/** @type {string|null}
|
13148
13262
|
* @private
|
@@ -13268,13 +13382,20 @@ RowDefinition.prototype.initialize = function(rowOptions) {
|
|
13268
13382
|
|
13269
13383
|
var val = rowOptions["ric"];
|
13270
13384
|
if(val != null) {
|
13271
|
-
this.
|
13385
|
+
this._ric = val;
|
13386
|
+
}
|
13387
|
+
val = rowOptions["permId"];
|
13388
|
+
if(val != null) {
|
13389
|
+
this._permId = val;
|
13272
13390
|
}
|
13391
|
+
if(this._ric || this._permId){
|
13392
|
+
this.setContent(this._ric, this._permId); // this._dataId is modified
|
13393
|
+
}
|
13394
|
+
|
13273
13395
|
val = rowOptions["chainRic"];
|
13274
13396
|
if(val != null) {
|
13275
13397
|
this._chainRic = val;
|
13276
13398
|
}
|
13277
|
-
|
13278
13399
|
val = rowOptions["values"];
|
13279
13400
|
// eslint-disable-next-line no-undefined
|
13280
13401
|
if(val !== undefined) {
|
@@ -13328,10 +13449,11 @@ RowDefinition.prototype._initializeAsConstituent = function(rowOptions) {
|
|
13328
13449
|
}
|
13329
13450
|
};
|
13330
13451
|
/** @public
|
13331
|
-
* @param {string} userInput
|
13452
|
+
* @param {string} userInput RIC
|
13453
|
+
* @param {string=} permId=null Organization PermId, which use for getting ADC data for private company
|
13332
13454
|
* @return {boolean} True if there is any change otherwise false
|
13333
13455
|
*/
|
13334
|
-
RowDefinition.prototype.setContent = function(userInput) {
|
13456
|
+
RowDefinition.prototype.setContent = function(userInput, permId) {
|
13335
13457
|
if(this._autoGenerated) { // AutoGenerated RowDefinition cannot be changed by user input
|
13336
13458
|
return false;
|
13337
13459
|
}
|
@@ -13342,7 +13464,15 @@ RowDefinition.prototype.setContent = function(userInput) {
|
|
13342
13464
|
userInput += "";
|
13343
13465
|
}
|
13344
13466
|
|
13345
|
-
|
13467
|
+
var dirty = (this._userInput !== userInput);
|
13468
|
+
if(this._permId !== permId){
|
13469
|
+
this._permId = permId || "";
|
13470
|
+
if(!userInput){
|
13471
|
+
this._displayText = this._permId;
|
13472
|
+
dirty = true;
|
13473
|
+
}
|
13474
|
+
}
|
13475
|
+
if(!dirty) {
|
13346
13476
|
return false;
|
13347
13477
|
}
|
13348
13478
|
|
@@ -13369,7 +13499,7 @@ RowDefinition.prototype.setContent = function(userInput) {
|
|
13369
13499
|
this._displayText = this._ric; // No 0#
|
13370
13500
|
}
|
13371
13501
|
|
13372
|
-
this._dataId = this._rowId + this.
|
13502
|
+
this._dataId = this._rowId + this.getSymbol(); // JET/RTK will generate data id to be rowId (given from this rowDef) + ric;
|
13373
13503
|
|
13374
13504
|
// This will work for runtime ric modification, but not for first initilization.
|
13375
13505
|
if(!this.subscribeForUpdates()) {
|
@@ -13397,6 +13527,11 @@ RowDefinition.prototype.getConfigObject = function(rowOptions) {
|
|
13397
13527
|
obj["ric"] = val;
|
13398
13528
|
}
|
13399
13529
|
|
13530
|
+
val = this._permId;
|
13531
|
+
if(val) {
|
13532
|
+
obj["permId"] = val;
|
13533
|
+
}
|
13534
|
+
|
13400
13535
|
val = this._chainRic;
|
13401
13536
|
if(val) {
|
13402
13537
|
obj["chainRic"] = val;
|
@@ -13642,6 +13777,18 @@ RowDefinition.prototype.getRic = function() {
|
|
13642
13777
|
/** @public
|
13643
13778
|
* @return {string}
|
13644
13779
|
*/
|
13780
|
+
RowDefinition.prototype.getPermId = function() {
|
13781
|
+
return this._permId;
|
13782
|
+
};
|
13783
|
+
/** @public
|
13784
|
+
* @return {string}
|
13785
|
+
*/
|
13786
|
+
RowDefinition.prototype.getSymbol = function() {
|
13787
|
+
return this._ric || this._permId;
|
13788
|
+
};
|
13789
|
+
/** @public
|
13790
|
+
* @return {string}
|
13791
|
+
*/
|
13645
13792
|
RowDefinition.prototype.getDisplayText = function() {
|
13646
13793
|
if(this._label != null) { // Empty string is allowed
|
13647
13794
|
return this._label;
|
@@ -13707,7 +13854,7 @@ RowDefinition.prototype.isAutoGenerated = function() {
|
|
13707
13854
|
* @return {boolean}
|
13708
13855
|
*/
|
13709
13856
|
RowDefinition.prototype.isRealTimeRow = function() {
|
13710
|
-
if(!this.
|
13857
|
+
if(!this.getRic()) { // Empty row
|
13711
13858
|
return false;
|
13712
13859
|
}
|
13713
13860
|
if(this.isRowHeader()) {
|
@@ -13724,7 +13871,7 @@ RowDefinition.prototype.isRealTimeRow = function() {
|
|
13724
13871
|
* @return {boolean} If a subscription is made, return true.
|
13725
13872
|
*/
|
13726
13873
|
RowDefinition.prototype.subscribeForUpdates = function() {
|
13727
|
-
if(!this.isRealTimeRow()) {
|
13874
|
+
if(!this.isRealTimeRow() && !this.getPermId()) {
|
13728
13875
|
return false;
|
13729
13876
|
}
|
13730
13877
|
|
@@ -13738,14 +13885,14 @@ RowDefinition.prototype.subscribeForUpdates = function() {
|
|
13738
13885
|
if(this.isChain()) {
|
13739
13886
|
this._subId = subs["addChain"](this._chainRic || this._ric, this._rowId); // Some chain require 0# symbol to populate its constituents
|
13740
13887
|
// TODO: Handle Dynamic chain such as .PG.PA
|
13741
|
-
} else {
|
13888
|
+
} else if(this._ric) {
|
13742
13889
|
this._subId = subs["addRic"](this._ric, this._rowId);
|
13743
13890
|
}
|
13744
13891
|
|
13745
13892
|
if(prevRowData) {
|
13746
13893
|
this._dc.setRowData(this._dataId, prevRowData); // TODO: We may need to create a new object instead of prevRowData for data correctness
|
13747
13894
|
} else {
|
13748
|
-
this._dc.setRowData(this._dataId, {"X_RIC_NAME": this.
|
13895
|
+
this._dc.setRowData(this._dataId, {"X_RIC_NAME": this.getSymbol(), "ROW_DEF": this}); // Trigger data update immediately
|
13749
13896
|
}
|
13750
13897
|
return true;
|
13751
13898
|
};
|
@@ -15402,7 +15549,7 @@ ColumnDefinition.prototype.getAllFields = function() {
|
|
15402
15549
|
* @return {boolean}
|
15403
15550
|
*/
|
15404
15551
|
ColumnDefinition.prototype.isRealTimeField = function() {
|
15405
|
-
return js_FieldDefinition.isRealTimeField(this.getField());
|
15552
|
+
return js_FieldDefinition.isRealTimeField(this.getField() || this._field);
|
15406
15553
|
};
|
15407
15554
|
/** @public
|
15408
15555
|
* @return {boolean}
|
@@ -15593,8 +15740,9 @@ ColumnDefinition.prototype.getConfigObject = function(colOptions) {
|
|
15593
15740
|
obj["sort"] = this._initialOrder;
|
15594
15741
|
}
|
15595
15742
|
|
15596
|
-
|
15597
|
-
|
15743
|
+
var classes = this._classes;
|
15744
|
+
if(classes && classes.length > 0) {
|
15745
|
+
obj["className"] = classes.join(" ");
|
15598
15746
|
}
|
15599
15747
|
|
15600
15748
|
if(this._textSelect) {
|
@@ -15612,14 +15760,18 @@ ColumnDefinition.prototype.getConfigObject = function(colOptions) {
|
|
15612
15760
|
var core = this._eventArg["core"];
|
15613
15761
|
var grid = this._eventArg["grid"];
|
15614
15762
|
var colIndex = grid.getColumnIndex(this);
|
15615
|
-
value = core.getColumnScalability(colIndex);
|
15616
|
-
obj["scalable"] = value;
|
15617
15763
|
|
15618
|
-
|
15619
|
-
|
15764
|
+
// The scalable, width and minWidth cannot be shifted into core as getConfigObject is accessible from colDef.
|
15765
|
+
var scalable = core.getColumnScalability(colIndex);
|
15766
|
+
var width = core.getColumnCustomLaneSize(colIndex);
|
15767
|
+
|
15768
|
+
if (scalable !== true || width !== 1) {
|
15769
|
+
obj["scalable"] = scalable;
|
15770
|
+
obj["width"] = width;
|
15771
|
+
}
|
15620
15772
|
|
15621
15773
|
value = core.getMinimumColumnWidth(colIndex);
|
15622
|
-
if(value !==
|
15774
|
+
if(value !== 0) {
|
15623
15775
|
obj["minWidth"] = value;
|
15624
15776
|
}
|
15625
15777
|
|
@@ -15976,16 +16128,6 @@ ColumnDefinition.prototype._setCoreColumnDef = function(obj) {
|
|
15976
16128
|
|
15977
16129
|
|
15978
16130
|
|
15979
|
-
/** @private
|
15980
|
-
* @param {Object} obj
|
15981
|
-
* @return {boolean}
|
15982
|
-
*/
|
15983
|
-
var isEmptyObject = function (obj) {
|
15984
|
-
for (var key in obj) {
|
15985
|
-
return false;
|
15986
|
-
}
|
15987
|
-
return true;
|
15988
|
-
};
|
15989
16131
|
|
15990
16132
|
/** This class make requesting ADC field easier by encapsulating JET.Data APIs and mapping data to the row
|
15991
16133
|
* @constructor
|
@@ -16305,7 +16447,7 @@ SnapshotFiller.prototype._onJETSuccess = function (fields, serverResult) {
|
|
16305
16447
|
var updatedData = {};
|
16306
16448
|
for (ric in ricMap) {
|
16307
16449
|
var obj = ricMap[ric];
|
16308
|
-
if (!isEmptyObject(obj)) {
|
16450
|
+
if (!Object(Util["f" /* isEmptyObject */])(obj)) {
|
16309
16451
|
updatedData[ric] = obj;
|
16310
16452
|
}
|
16311
16453
|
}
|
@@ -16378,7 +16520,7 @@ SnapshotFiller.prototype._onRTKSuccess = function (fields, serverResult) {
|
|
16378
16520
|
var updatedData = {};
|
16379
16521
|
for (ric in ricMap) {
|
16380
16522
|
var obj = ricMap[ric];
|
16381
|
-
if (!isEmptyObject(obj)) {
|
16523
|
+
if (!Object(Util["f" /* isEmptyObject */])(obj)) {
|
16382
16524
|
updatedData[ric] = obj;
|
16383
16525
|
}
|
16384
16526
|
}
|
@@ -16448,7 +16590,7 @@ SnapshotFiller.prototype._onRTKTimeSeriesSuccess = function (fields, serverResul
|
|
16448
16590
|
var dataMapping = {};
|
16449
16591
|
for (ric in ricMap) {
|
16450
16592
|
var obj = ricMap[ric];
|
16451
|
-
if (!isEmptyObject(obj)) {
|
16593
|
+
if (!Object(Util["f" /* isEmptyObject */])(obj)) {
|
16452
16594
|
dataMapping[ric] = obj;
|
16453
16595
|
}
|
16454
16596
|
}
|
@@ -29320,6 +29462,17 @@ DataView.prototype.setColumnSortingLogic = function(cid, func) {
|
|
29320
29462
|
this._dt.setColumnSortingLogic(cid, func);
|
29321
29463
|
}
|
29322
29464
|
};
|
29465
|
+
/** Get sorting logic for the specified field. Default logic is returned, if no logic is specified for the column
|
29466
|
+
* @public
|
29467
|
+
* @param {string=} cid
|
29468
|
+
* @return {DataTable.SortLogic}
|
29469
|
+
*/
|
29470
|
+
DataView.prototype.getColumnSortingLogic = function(cid) {
|
29471
|
+
if(this._dt) {
|
29472
|
+
return this._dt.getColumnSortingLogic(cid);
|
29473
|
+
}
|
29474
|
+
return null;
|
29475
|
+
};
|
29323
29476
|
/** Check if this view is in sorting mode
|
29324
29477
|
* @public
|
29325
29478
|
* @return {boolean}
|
@@ -31837,7 +31990,7 @@ DataView.prototype._sort = function() {
|
|
31837
31990
|
if(this._dt._getSegmentSeparators() || this.isSorting()) {
|
31838
31991
|
var rids = this._rids;
|
31839
31992
|
var dataRows = this._dt.getMultipleRowData(rids);
|
31840
|
-
var segmentValues = this._dt.getSegmentValues(rids);
|
31993
|
+
var segmentValues = this._dt.getSegmentValues(rids, true); // WARNING: This does not work well for hidden/filtered rows
|
31841
31994
|
var change = data_DataTable._performMultiLevelSorting(dataRows, this._sortingDefs, segmentValues);
|
31842
31995
|
|
31843
31996
|
if(change) {
|
@@ -35056,6 +35209,7 @@ VirtualizedLayoutGrid._proto = VirtualizedLayoutGrid.prototype;
|
|
35056
35209
|
|
35057
35210
|
// eslint-disable-line
|
35058
35211
|
|
35212
|
+
|
35059
35213
|
// eslint-disable-line
|
35060
35214
|
|
35061
35215
|
|
@@ -35255,7 +35409,9 @@ var Core = function (opt_initializer) {
|
|
35255
35409
|
"rowRemoved",
|
35256
35410
|
"columnPositionChanged",
|
35257
35411
|
"rowPositionChanged",
|
35258
|
-
"beforeColumnBoundUpdate"
|
35412
|
+
"beforeColumnBoundUpdate",
|
35413
|
+
"beforeBatchOperation",
|
35414
|
+
"afterBatchOperation"
|
35259
35415
|
);
|
35260
35416
|
|
35261
35417
|
// For debugging in advanced optimization mode
|
@@ -35330,6 +35486,15 @@ Core.SectionReference;
|
|
35330
35486
|
*/
|
35331
35487
|
Core.MouseInfo;
|
35332
35488
|
|
35489
|
+
/** @typedef {Object} Core~BatchInfo
|
35490
|
+
* @private
|
35491
|
+
* @property {string=} reset //set columns
|
35492
|
+
* @property {string=} insertion //add cols
|
35493
|
+
* @property {string=} removal //remove cols
|
35494
|
+
* @property {string=} moving //reorder
|
35495
|
+
*/
|
35496
|
+
Core.BatchInfo;
|
35497
|
+
|
35333
35498
|
/** @typedef {Core.MouseInfo|ElementWrapper|Element} Core~CellReference
|
35334
35499
|
* @description A section in core grid can be refered by the following object <br>
|
35335
35500
|
* `{Core.MouseInfo}` : Object with valid x, y coordinates and section index <br>
|
@@ -35584,6 +35749,10 @@ Core.prototype._rowHeightTimerId = 0;
|
|
35584
35749
|
* @private
|
35585
35750
|
*/
|
35586
35751
|
Core.prototype._groupDefs = null;
|
35752
|
+
/** @type {BatchInfo}
|
35753
|
+
* @private
|
35754
|
+
*/
|
35755
|
+
Core.prototype._batches = null;
|
35587
35756
|
//#region Public Methods
|
35588
35757
|
|
35589
35758
|
/**
|
@@ -35591,7 +35760,7 @@ Core.prototype._groupDefs = null;
|
|
35591
35760
|
* @return {string}
|
35592
35761
|
*/
|
35593
35762
|
Core.getVersion = function () {
|
35594
|
-
return "5.1.
|
35763
|
+
return "5.1.48";
|
35595
35764
|
};
|
35596
35765
|
/** {@link ElementWrapper#dispose}
|
35597
35766
|
* @override
|
@@ -35727,10 +35896,10 @@ Core.prototype.getConfigObject = function (gridOptions) {
|
|
35727
35896
|
}
|
35728
35897
|
}
|
35729
35898
|
|
35730
|
-
|
35731
|
-
|
35732
|
-
|
35733
|
-
obj["
|
35899
|
+
// It will be overwrite in rt-grid or atlas-blotter
|
35900
|
+
obj["rowVirtualization"] = this.isRowVirtualizationEnabled();
|
35901
|
+
obj["columnVirtualization"] = this.isColumnVirtualizationEnabled();
|
35902
|
+
obj["rowHighlighting"] = this._rowHighlighting;
|
35734
35903
|
|
35735
35904
|
if(this._fixFrozenTopSections) {
|
35736
35905
|
obj["topFreezingCount"] = this._startVScrollbarIndex >= 0 ? (this._startVScrollbarIndex + 1) : false;
|
@@ -35743,7 +35912,13 @@ Core.prototype.getConfigObject = function (gridOptions) {
|
|
35743
35912
|
if(this._rowScrollingStep) {
|
35744
35913
|
obj["stepScroll"] = (this._rowScrollingStep === 1) ? true : this._rowScrollingStep;
|
35745
35914
|
}
|
35746
|
-
|
35915
|
+
|
35916
|
+
var val = this._vscrollbar.getAutoHide();
|
35917
|
+
if(val !== true) {
|
35918
|
+
// TODO: check this._hscrollbar and this._vscrollbar can be difference config
|
35919
|
+
obj["autoHideScrollbar"] = val; // this._hscrollbar has the same settings
|
35920
|
+
}
|
35921
|
+
|
35747
35922
|
var wheelSpeed = this._vscrollbar.getMouseWheelSpeed();
|
35748
35923
|
if(wheelSpeed) {
|
35749
35924
|
obj["linearWheelScrolling"] = wheelSpeed;
|
@@ -36524,6 +36699,10 @@ Core.prototype.removeColumnAt = function (index) {
|
|
36524
36699
|
|
36525
36700
|
if (this._hasListener("columnRemoved")) {
|
36526
36701
|
var e = {};
|
36702
|
+
var batches = this._batches;
|
36703
|
+
if(batches){
|
36704
|
+
e["batches"] = batches;
|
36705
|
+
}
|
36527
36706
|
e["atTheMiddle"] = true;
|
36528
36707
|
e["colIndex"] = index;
|
36529
36708
|
e["columns"] = "deprecated";
|
@@ -38716,6 +38895,14 @@ Core.prototype.enableRowVirtualization = function (opt_enabled) {
|
|
38716
38895
|
this._rowVirtualizer.deactivate();
|
38717
38896
|
}
|
38718
38897
|
};
|
38898
|
+
|
38899
|
+
/** @public
|
38900
|
+
* @return {boolean}
|
38901
|
+
*/
|
38902
|
+
Core.prototype.isRowVirtualizationEnabled = function () {
|
38903
|
+
return this._rowVirtualizer.isEnabled();
|
38904
|
+
};
|
38905
|
+
|
38719
38906
|
/** No runtime support
|
38720
38907
|
* @public
|
38721
38908
|
* @param {boolean=} opt_enabled
|
@@ -38730,6 +38917,13 @@ Core.prototype.enableColumnVirtualization = function (opt_enabled) {
|
|
38730
38917
|
}
|
38731
38918
|
};
|
38732
38919
|
|
38920
|
+
/** @public
|
38921
|
+
* @return {boolean}
|
38922
|
+
*/
|
38923
|
+
Core.prototype.isColumnVirtualizationEnabled = function () {
|
38924
|
+
return this._colVirtualizer.isEnabled();
|
38925
|
+
};
|
38926
|
+
|
38733
38927
|
/** Scrolling step will be multiple of the default row height in pixels. For example, if default row height is 32 pixel and row scrolling step is 2, <br>
|
38734
38928
|
* then the actual scrolling step for vertical scrollbar will be (32 * 2) = 64 pixels
|
38735
38929
|
* @public
|
@@ -39353,6 +39547,40 @@ Core.prototype.getColumnGroupChildIds = function (groupId) {
|
|
39353
39547
|
}
|
39354
39548
|
return null;
|
39355
39549
|
};
|
39550
|
+
|
39551
|
+
/** @public
|
39552
|
+
* @param {string} batchType
|
39553
|
+
* @return {boolean}
|
39554
|
+
* @fires Core#beforeBatchOperation
|
39555
|
+
*/
|
39556
|
+
Core.prototype.startBatch = function (batchType) {
|
39557
|
+
if(!batchType){
|
39558
|
+
return false;
|
39559
|
+
}
|
39560
|
+
if(!this._batches){
|
39561
|
+
this._batches = {};
|
39562
|
+
}
|
39563
|
+
this._batches[batchType] = batchType;
|
39564
|
+
this._dispatch("beforeBatchOperation", { batches: this._batches, batchType: batchType });
|
39565
|
+
return true;
|
39566
|
+
};
|
39567
|
+
/** @public
|
39568
|
+
* @param {string} batchType
|
39569
|
+
* @return {boolean}
|
39570
|
+
* @fires Core#afterBatchOperation
|
39571
|
+
*/
|
39572
|
+
Core.prototype.stopBatch = function (batchType) {
|
39573
|
+
if(!batchType){
|
39574
|
+
return false;
|
39575
|
+
}
|
39576
|
+
this._dispatch("afterBatchOperation", { batches: this._batches, batchType: batchType });
|
39577
|
+
|
39578
|
+
delete this._batches[batchType];
|
39579
|
+
if(Object(Util["f" /* isEmptyObject */])(this._batches)){
|
39580
|
+
this._batches = null;
|
39581
|
+
}
|
39582
|
+
return true;
|
39583
|
+
};
|
39356
39584
|
//#endregion Public Methods
|
39357
39585
|
|
39358
39586
|
//#region Private Methods
|
@@ -39596,6 +39824,10 @@ Core.prototype._dispatchColumnAddedEvent = function (at, count, atTheMiddle, ctx
|
|
39596
39824
|
if (this._hasListener("columnAdded")) {
|
39597
39825
|
var e = {};
|
39598
39826
|
e["atTheMiddle"] = atTheMiddle;
|
39827
|
+
var batches = this._batches;
|
39828
|
+
if(batches){
|
39829
|
+
e["batches"] = batches;
|
39830
|
+
}
|
39599
39831
|
if(count === 1) {
|
39600
39832
|
e["colIndex"] = at;
|
39601
39833
|
e["context"] = ctx;
|
@@ -39747,6 +39979,10 @@ Core.prototype._removeColumn = function (num) { // TODO: change the logic to us
|
|
39747
39979
|
|
39748
39980
|
if (this._hasListener("columnRemoved")) {
|
39749
39981
|
var e = {};
|
39982
|
+
var batches = this._batches;
|
39983
|
+
if(batches){
|
39984
|
+
e["batches"] = batches;
|
39985
|
+
}
|
39750
39986
|
for (var c = colCount; --c >= newCount; ) {
|
39751
39987
|
var colDef = removedCols[c - newCount];
|
39752
39988
|
e["colIndex"] = c;
|
@@ -40746,7 +40982,7 @@ StyleLoader.chainIcon = '';
|
|
40746
40982
|
/** @type {string}
|
40747
40983
|
* @public
|
40748
40984
|
*/
|
40749
|
-
StyleLoader.styles = Object(Util["
|
40985
|
+
StyleLoader.styles = Object(Util["i" /* prettifyCss */])([
|
40750
40986
|
".tr-grid .chain-icon", [
|
40751
40987
|
"cursor: pointer;"
|
40752
40988
|
],
|
@@ -40769,7 +41005,7 @@ StyleLoader.styles = Object(Util["g" /* prettifyCss */])([
|
|
40769
41005
|
StyleLoader.applyStyle = function (grid) {
|
40770
41006
|
if (grid && !grid._rowGroupingStyles) { // TODO: Support run-time theme loading
|
40771
41007
|
grid._rowGroupingStyles = true; // Prevent loading the same style twice
|
40772
|
-
Object(Util["
|
41008
|
+
Object(Util["e" /* injectCss */])(StyleLoader.styles, grid.getElement());
|
40773
41009
|
}
|
40774
41010
|
};
|
40775
41011
|
|
@@ -41107,7 +41343,7 @@ DataConnector.prototype.getRowDefByRic = function (ric) {
|
|
41107
41343
|
* @return {boolean} True if new reference is added.
|
41108
41344
|
*/
|
41109
41345
|
DataConnector.prototype.addRic = function (rowDef) {
|
41110
|
-
var ric = rowDef ? rowDef.
|
41346
|
+
var ric = rowDef ? rowDef.getSymbol() : "";
|
41111
41347
|
if(!ric) {
|
41112
41348
|
return false;
|
41113
41349
|
}
|
@@ -41135,7 +41371,8 @@ DataConnector.prototype.addRic = function (rowDef) {
|
|
41135
41371
|
*/
|
41136
41372
|
DataConnector.prototype.removeRic = function (rowDef, ric) {
|
41137
41373
|
if(!ric) {
|
41138
|
-
|
41374
|
+
// TODO: RIC or permId maybe change during run-time, need to check before remove RIC/permId
|
41375
|
+
ric = rowDef ? rowDef.getSymbol() : "";
|
41139
41376
|
}
|
41140
41377
|
if(!ric) {
|
41141
41378
|
return;
|
@@ -41296,73 +41533,150 @@ DataConnector.prototype.reset = function () {
|
|
41296
41533
|
/* harmony default export */ var js_DataConnector = (DataConnector);
|
41297
41534
|
|
41298
41535
|
// CONCATENATED MODULE: ./src/js/RowDefSorter.js
|
41536
|
+
|
41537
|
+
|
41538
|
+
/** @private
|
41539
|
+
* @param {*} a
|
41540
|
+
* @param {*} b
|
41541
|
+
* @param {number} order
|
41542
|
+
* @return {number}
|
41543
|
+
*/
|
41544
|
+
var _defaultCompare = function(a, b, order) {
|
41545
|
+
if(a == null || a !== a) {
|
41546
|
+
if(b == null || b !== b) {
|
41547
|
+
return 0;
|
41548
|
+
}
|
41549
|
+
return 1;
|
41550
|
+
}
|
41551
|
+
if(b == null || b !== b) {
|
41552
|
+
return -1;
|
41553
|
+
}
|
41554
|
+
|
41555
|
+
if(a < b) {
|
41556
|
+
return -order;
|
41557
|
+
}
|
41558
|
+
if(b < a) {
|
41559
|
+
return order;
|
41560
|
+
}
|
41561
|
+
return 0;
|
41562
|
+
};
|
41563
|
+
|
41299
41564
|
/** @constructor
|
41300
41565
|
*/
|
41301
41566
|
var RowDefSorter = function() {
|
41302
41567
|
this._defaultSorter = this._defaultSorter.bind(this);
|
41303
41568
|
this._dataSorter = this._dataSorter.bind(this);
|
41304
41569
|
this._rowDefSorter = this._rowDefSorter.bind(this);
|
41570
|
+
this._multiColumnsSorter = this._multiColumnsSorter.bind(this);
|
41305
41571
|
|
41306
|
-
this.
|
41572
|
+
this._globalContext = {};
|
41573
|
+
this._sortParams = [];
|
41574
|
+
this._ctxCaches = [];
|
41307
41575
|
};
|
41308
41576
|
|
41309
|
-
|
41310
|
-
/** @type {string}
|
41577
|
+
/** @type {!Object}
|
41311
41578
|
* @private
|
41312
41579
|
*/
|
41313
|
-
RowDefSorter.prototype.
|
41314
|
-
/** @type {!
|
41580
|
+
RowDefSorter.prototype._globalContext;
|
41581
|
+
/** @type {!Array.<Array>}
|
41315
41582
|
* @private
|
41316
41583
|
*/
|
41317
|
-
RowDefSorter.prototype.
|
41318
|
-
/** @type {
|
41584
|
+
RowDefSorter.prototype._sortParams;
|
41585
|
+
/** @type {!Array.<Object>}
|
41586
|
+
* @private
|
41587
|
+
*/
|
41588
|
+
RowDefSorter.prototype._ctxCaches;
|
41589
|
+
/** @type {Array}
|
41319
41590
|
* @private
|
41320
41591
|
*/
|
41321
|
-
RowDefSorter.prototype.
|
41592
|
+
RowDefSorter.prototype._primaryParams;
|
41322
41593
|
|
41323
41594
|
|
41324
41595
|
/** @public
|
41325
41596
|
*/
|
41326
41597
|
RowDefSorter.prototype.dispose = function() {
|
41327
|
-
this.
|
41328
|
-
this.
|
41598
|
+
this._globalContext = {}; // Clear any existing reference
|
41599
|
+
this._sortParams.length = 0;
|
41600
|
+
this._ctxCaches.length = 0;
|
41601
|
+
this._primaryParams = null;
|
41329
41602
|
};
|
41330
41603
|
|
41331
41604
|
/** @public
|
41332
|
-
* @param {boolean=} rowSorting=false
|
41333
41605
|
* @return {Function}
|
41334
41606
|
*/
|
41335
|
-
RowDefSorter.prototype.getSorter = function(
|
41336
|
-
|
41337
|
-
|
41338
|
-
|
41339
|
-
|
41607
|
+
RowDefSorter.prototype.getSorter = function() {
|
41608
|
+
this._primaryParams = null;
|
41609
|
+
var sortCount = this._sortParams.length;
|
41610
|
+
if(sortCount === 1) {
|
41611
|
+
var params = this._primaryParams = this._sortParams[0];
|
41612
|
+
var sortLogic = params[1];
|
41613
|
+
if(sortLogic) {
|
41614
|
+
var rowSorting = params[3];
|
41615
|
+
return rowSorting ? this._rowDefSorter : this._dataSorter;
|
41616
|
+
} else {
|
41617
|
+
return this._defaultSorter;
|
41618
|
+
}
|
41619
|
+
} else if(sortCount > 1) {
|
41620
|
+
return this._multiColumnsSorter;
|
41340
41621
|
}
|
41341
|
-
};
|
41342
|
-
/** @public
|
41343
|
-
* @param {Function=} func
|
41344
|
-
*/
|
41345
|
-
RowDefSorter.prototype.setSortLogic = function(func) {
|
41346
|
-
this._sortLogic = (typeof func === "function") ? func : null;
|
41347
|
-
};
|
41348
41622
|
|
41623
|
+
return RowDefSorter._noSorting;
|
41624
|
+
};
|
41349
41625
|
|
41350
41626
|
/** @public
|
41351
|
-
* @param {string}
|
41627
|
+
* @param {string} key
|
41628
|
+
* @param {*} value
|
41352
41629
|
*/
|
41353
|
-
RowDefSorter.prototype.
|
41354
|
-
if(
|
41355
|
-
|
41630
|
+
RowDefSorter.prototype.reset = function() {
|
41631
|
+
if(this._sortParams.length) {
|
41632
|
+
this._sortParams.length = 0;
|
41356
41633
|
}
|
41357
|
-
this._sortContext["field"] = this._field = field;
|
41358
|
-
this._sortContext["formattedField"] = field + "_FORMATTED";
|
41359
41634
|
};
|
41360
41635
|
/** @public
|
41361
41636
|
* @param {string} key
|
41362
41637
|
* @param {*} value
|
41363
41638
|
*/
|
41364
41639
|
RowDefSorter.prototype.setContext = function(key, value) {
|
41365
|
-
this.
|
41640
|
+
this._globalContext[key] = value;
|
41641
|
+
};
|
41642
|
+
/** @public
|
41643
|
+
* @param {string} field
|
41644
|
+
* @param {Function} logic
|
41645
|
+
* @param {boolean} rowSorting
|
41646
|
+
* @param {string} order
|
41647
|
+
* @param {number} colIndex
|
41648
|
+
* @param {*} colDef
|
41649
|
+
*/
|
41650
|
+
RowDefSorter.prototype.addColumnContext = function(field, logic, rowSorting, order, colIndex, colDef) {
|
41651
|
+
if(!field) {
|
41652
|
+
field = "";
|
41653
|
+
}
|
41654
|
+
var sortPriority = this._sortParams.length;
|
41655
|
+
var ctx = this._ctxCaches[sortPriority];
|
41656
|
+
if(!ctx) {
|
41657
|
+
ctx = this._ctxCaches[sortPriority] = Object(Util["b" /* cloneObject */])(this._globalContext);
|
41658
|
+
}
|
41659
|
+
var orderNum = 0;
|
41660
|
+
if(order === "a") {
|
41661
|
+
orderNum = 1;
|
41662
|
+
} else if(order === "d") {
|
41663
|
+
orderNum = -1;
|
41664
|
+
}
|
41665
|
+
|
41666
|
+
var params = [
|
41667
|
+
field, // 0
|
41668
|
+
(typeof logic === "function") ? logic : null, // 1
|
41669
|
+
ctx, // 2
|
41670
|
+
rowSorting, // 3
|
41671
|
+
orderNum // 4
|
41672
|
+
];
|
41673
|
+
|
41674
|
+
ctx["colIndex"] = colIndex;
|
41675
|
+
ctx["field"] = field;
|
41676
|
+
ctx["formattedField"] = field + "_FORMATTED";
|
41677
|
+
ctx["colDef"] = colDef;
|
41678
|
+
|
41679
|
+
this._sortParams.push(params);
|
41366
41680
|
};
|
41367
41681
|
|
41368
41682
|
/** @private
|
@@ -41371,32 +41685,7 @@ RowDefSorter.prototype.setContext = function(key, value) {
|
|
41371
41685
|
* @param {number} order
|
41372
41686
|
* @return {number}
|
41373
41687
|
*/
|
41374
|
-
RowDefSorter.
|
41375
|
-
var orderA = rowDefA.getGroupOrder();
|
41376
|
-
var orderB = rowDefB.getGroupOrder();
|
41377
|
-
if(orderA !== orderB) {
|
41378
|
-
return orderA - orderB; // Regardless of sort order
|
41379
|
-
}
|
41380
|
-
|
41381
|
-
var a = rowDefA.getData(this._field);
|
41382
|
-
var b = rowDefB.getData(this._field);
|
41383
|
-
|
41384
|
-
if(a == null || a !== a) {
|
41385
|
-
if(b == null || b !== b) {
|
41386
|
-
return 0;
|
41387
|
-
}
|
41388
|
-
return 1;
|
41389
|
-
}
|
41390
|
-
if(b == null || b !== b) {
|
41391
|
-
return -1;
|
41392
|
-
}
|
41393
|
-
|
41394
|
-
if(a < b) {
|
41395
|
-
return -order;
|
41396
|
-
}
|
41397
|
-
if(b < a) {
|
41398
|
-
return order;
|
41399
|
-
}
|
41688
|
+
RowDefSorter._noSorting = function(rowDefA, rowDefB, order) {
|
41400
41689
|
return 0;
|
41401
41690
|
};
|
41402
41691
|
/** @private
|
@@ -41405,16 +41694,30 @@ RowDefSorter.prototype._defaultSorter = function(rowDefA, rowDefB, order) {
|
|
41405
41694
|
* @param {number} order
|
41406
41695
|
* @return {number}
|
41407
41696
|
*/
|
41697
|
+
RowDefSorter.prototype._defaultSorter = function(rowDefA, rowDefB, order) {
|
41698
|
+
var field = this._primaryParams[0];
|
41699
|
+
return _defaultCompare(
|
41700
|
+
rowDefA.getData(field),
|
41701
|
+
rowDefB.getData(field),
|
41702
|
+
order
|
41703
|
+
);
|
41704
|
+
};
|
41705
|
+
/** @private
|
41706
|
+
* @param {RowDefinition} rowDefA
|
41707
|
+
* @param {RowDefinition} rowDefB
|
41708
|
+
* @param {number} order
|
41709
|
+
* @return {number}
|
41710
|
+
*/
|
41408
41711
|
RowDefSorter.prototype._dataSorter = function(rowDefA, rowDefB, order) {
|
41409
|
-
var
|
41410
|
-
var
|
41411
|
-
|
41412
|
-
|
41413
|
-
|
41414
|
-
|
41415
|
-
|
41416
|
-
|
41417
|
-
|
41712
|
+
var params = this._primaryParams;
|
41713
|
+
var field = params[0];
|
41714
|
+
var sortLogic = params[1];
|
41715
|
+
return sortLogic(
|
41716
|
+
rowDefA.getData(field),
|
41717
|
+
rowDefB.getData(field),
|
41718
|
+
order,
|
41719
|
+
params[2]
|
41720
|
+
);
|
41418
41721
|
};
|
41419
41722
|
/** @private
|
41420
41723
|
* @param {RowDefinition} rowDefA
|
@@ -41423,13 +41726,41 @@ RowDefSorter.prototype._dataSorter = function(rowDefA, rowDefB, order) {
|
|
41423
41726
|
* @return {number}
|
41424
41727
|
*/
|
41425
41728
|
RowDefSorter.prototype._rowDefSorter = function(rowDefA, rowDefB, order) {
|
41426
|
-
var
|
41427
|
-
var
|
41428
|
-
|
41429
|
-
|
41729
|
+
var params = this._primaryParams;
|
41730
|
+
var sortLogic = params[1];
|
41731
|
+
return sortLogic(rowDefA, rowDefB, order, params[2]);
|
41732
|
+
};
|
41733
|
+
/** @private
|
41734
|
+
* @param {RowDefinition} rowDefA
|
41735
|
+
* @param {RowDefinition} rowDefB
|
41736
|
+
* @param {number} primaryOrder
|
41737
|
+
* @return {number}
|
41738
|
+
*/
|
41739
|
+
RowDefSorter.prototype._multiColumnsSorter = function(rowDefA, rowDefB, primaryOrder) {
|
41740
|
+
var sortParams = this._sortParams;
|
41741
|
+
var sortCount = sortParams.length;
|
41742
|
+
for(var i = 0; i < sortCount; ++i) {
|
41743
|
+
var params = sortParams[i];
|
41744
|
+
var field = params[0];
|
41745
|
+
var sortLogic = params[1];
|
41746
|
+
var ctx = params[2];
|
41747
|
+
var rowSorting = params[3];
|
41748
|
+
var orderNum = params[4];
|
41749
|
+
var ret = 0;
|
41750
|
+
if(sortLogic) {
|
41751
|
+
if(rowSorting) {
|
41752
|
+
ret = sortLogic(rowDefA, rowDefB, orderNum, ctx);
|
41753
|
+
} else {
|
41754
|
+
ret = sortLogic(rowDefA.getData(field), rowDefB.getData(field), orderNum, ctx);
|
41755
|
+
}
|
41756
|
+
} else {
|
41757
|
+
ret = _defaultCompare(rowDefA.getData(field), rowDefB.getData(field), orderNum);
|
41758
|
+
}
|
41759
|
+
if(ret) {
|
41760
|
+
return ret;
|
41761
|
+
}
|
41430
41762
|
}
|
41431
|
-
|
41432
|
-
return this._sortLogic(rowDefA, rowDefB, order, this._sortContext);
|
41763
|
+
return 0;
|
41433
41764
|
};
|
41434
41765
|
|
41435
41766
|
/* harmony default export */ var js_RowDefSorter = (RowDefSorter);
|
@@ -41442,6 +41773,7 @@ RowDefSorter.prototype._rowDefSorter = function(rowDefA, rowDefB, order) {
|
|
41442
41773
|
|
41443
41774
|
|
41444
41775
|
|
41776
|
+
|
41445
41777
|
/* eslint-enable */
|
41446
41778
|
|
41447
41779
|
/** Fired when user click and before the sorting operation.
|
@@ -41901,7 +42233,10 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
|
|
41901
42233
|
}
|
41902
42234
|
field = opt["field"];
|
41903
42235
|
if (field) {
|
41904
|
-
col["
|
42236
|
+
if(col["field"] !== field) {
|
42237
|
+
col["sortBy"] = field;
|
42238
|
+
} // else The default value is an empty sortBy, which refers to the same column field by default.
|
42239
|
+
|
41905
42240
|
if (this._sortingSequenceMap && this._sortingSequenceMap[field]) {
|
41906
42241
|
col["sortingSequence"] = this._sortingSequenceMap[field];
|
41907
42242
|
}
|
@@ -41914,16 +42249,32 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
|
|
41914
42249
|
extOptions = obj["sorting"] = {};
|
41915
42250
|
}
|
41916
42251
|
|
41917
|
-
|
41918
|
-
|
42252
|
+
var val = this.getSortedColumns();
|
42253
|
+
if(val != null) {
|
42254
|
+
extOptions["initialSort"] = val;
|
42255
|
+
}
|
42256
|
+
|
42257
|
+
val = this._sortableIndicator;
|
42258
|
+
if(val !== false) {
|
42259
|
+
extOptions["sortableIndicator"] = val;
|
42260
|
+
}
|
42261
|
+
|
41919
42262
|
if(this._maxCount !== 1) {
|
41920
42263
|
extOptions["multiColumn"] = this._maxCount === -1 ? true : this._maxCount;
|
41921
42264
|
}
|
41922
42265
|
if(this._dblClickAllowed) {
|
41923
42266
|
extOptions["disableDoubleClickToSort"] = !this._dblClickAllowed;
|
41924
42267
|
}
|
41925
|
-
|
41926
|
-
|
42268
|
+
|
42269
|
+
val = this._sortableColumns;
|
42270
|
+
if(val !== true) {
|
42271
|
+
extOptions["sortableColumns"] = val;
|
42272
|
+
}
|
42273
|
+
|
42274
|
+
val = this._dataSorting;
|
42275
|
+
if(val !== true) {
|
42276
|
+
extOptions["indicatorOnly"] = val;
|
42277
|
+
}
|
41927
42278
|
// extOptions["mode"] = this._mode;
|
41928
42279
|
if(this._disabled) {
|
41929
42280
|
extOptions["disabled"] = true;
|
@@ -41940,6 +42291,10 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
|
|
41940
42291
|
extOptions["sortingSequence"] = sortingSeq.slice();
|
41941
42292
|
}
|
41942
42293
|
|
42294
|
+
if(Object(Util["f" /* isEmptyObject */])(obj["sorting"])) {
|
42295
|
+
delete obj["sorting"];
|
42296
|
+
}
|
42297
|
+
|
41943
42298
|
return obj;
|
41944
42299
|
};
|
41945
42300
|
|
@@ -42954,6 +43309,9 @@ SortableTitlePlugin.prototype._sortDataView = function (opt_action) {
|
|
42954
43309
|
if (!this._dataSorting) { return; }
|
42955
43310
|
|
42956
43311
|
var sortCount = this._sortStates.length;
|
43312
|
+
if(this._userManagedLogic && sortCount > 1) { // The logic is managed by the user. There is no point in using multi-column sorting
|
43313
|
+
sortCount = 1;
|
43314
|
+
}
|
42957
43315
|
var orders = null;
|
42958
43316
|
var sortLogics = null;
|
42959
43317
|
var c_ref = null;
|
@@ -42969,6 +43327,9 @@ SortableTitlePlugin.prototype._sortDataView = function (opt_action) {
|
|
42969
43327
|
} else {
|
42970
43328
|
c_ref = this.getColumnSortingFields();
|
42971
43329
|
}
|
43330
|
+
if(this._userManagedLogic && c_ref.length > 1) {
|
43331
|
+
c_ref = c_ref.slice(0, 1);
|
43332
|
+
}
|
42972
43333
|
}
|
42973
43334
|
|
42974
43335
|
// Perform sorting even if there is no sort state
|
@@ -43077,16 +43438,16 @@ SortableTitlePlugin.prototype._updateSortableIndicator = function (hostIndex) {
|
|
43077
43438
|
symbol = t._createIconElem(icon, textContent);
|
43078
43439
|
symbol.className = "sort-symbol";
|
43079
43440
|
cell["insertFloatingIcon"](symbol, 0);
|
43080
|
-
|
43081
|
-
if (t._sortStates.length > 1) {
|
43082
|
-
symbol = document.createElement("span");
|
43083
|
-
symbol.className = "priority-symbol";
|
43084
|
-
symbol.textContent = priority + 1;
|
43085
|
-
cell["insertFloatingIcon"](symbol, 1);
|
43086
|
-
}
|
43087
43441
|
} else {
|
43088
43442
|
cell["addClass"]("edge-indicator");
|
43089
43443
|
}
|
43444
|
+
|
43445
|
+
if (t._sortStates.length > 1) {
|
43446
|
+
symbol = document.createElement("span");
|
43447
|
+
symbol.className = "priority-symbol";
|
43448
|
+
symbol.textContent = priority + 1;
|
43449
|
+
cell["insertFloatingIcon"](symbol, 1);
|
43450
|
+
}
|
43090
43451
|
} else if (t._sortableIndicator) { // Can sort but currently not sorting
|
43091
43452
|
icon = SortableTitlePlugin._icons["sortable"];
|
43092
43453
|
symbol = t._createIconElem(icon, CODE_DIAMOND);
|
@@ -44220,7 +44581,7 @@ Grid.prototype.initialize = function(gridOption) {
|
|
44220
44581
|
if(rows[n]["values"]) { // merge row's values, values can be object or array
|
44221
44582
|
values = Object(Util["a" /* arrayToObject */])(rows[n]["values"], fields);
|
44222
44583
|
data = Object(Util["a" /* arrayToObject */])(ary[n], fields);
|
44223
|
-
rows[n]["values"] = Object(Util["
|
44584
|
+
rows[n]["values"] = Object(Util["d" /* extendObject */])(values, data);
|
44224
44585
|
} else {
|
44225
44586
|
rows[n]["values"] = ary[n];
|
44226
44587
|
}
|
@@ -44282,6 +44643,28 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
44282
44643
|
grid.getConfigObject(obj);
|
44283
44644
|
}
|
44284
44645
|
|
44646
|
+
// Difference from composite grid in default config
|
44647
|
+
if(obj["columnVirtualization"] === false) {
|
44648
|
+
delete obj["columnVirtualization"];
|
44649
|
+
}
|
44650
|
+
|
44651
|
+
if(obj["rowVirtualization"] === true) {
|
44652
|
+
delete obj["rowVirtualization"];
|
44653
|
+
}
|
44654
|
+
|
44655
|
+
if(obj["rowHighlighting"] === true) {
|
44656
|
+
delete obj["rowHighlighting"];
|
44657
|
+
}
|
44658
|
+
|
44659
|
+
if(obj["contentVerticalLines"] === false) { // the default value change in wrapper (atlas-blotter)
|
44660
|
+
delete obj["contentVerticalLines"];
|
44661
|
+
}
|
44662
|
+
|
44663
|
+
if(obj["borders"] === false) { // the default value change in wrapper (atlas-blotter)
|
44664
|
+
delete obj["borders"];
|
44665
|
+
}
|
44666
|
+
|
44667
|
+
|
44285
44668
|
var i, len;
|
44286
44669
|
len = this.getColumnCount();
|
44287
44670
|
for (i = 0; i < len; ++i) {
|
@@ -44306,12 +44689,12 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
44306
44689
|
}
|
44307
44690
|
|
44308
44691
|
val = grid.getDefaultRowHeight();
|
44309
|
-
if(val !==
|
44692
|
+
if(val !== 28) { // the default value change in wrapper (atlas-blotter)
|
44310
44693
|
obj["rowHeight"] = val;
|
44311
44694
|
}
|
44312
44695
|
|
44313
44696
|
val = grid.getSection("title").getDefaultRowHeight();
|
44314
|
-
if(val !==
|
44697
|
+
if(val !== 28) { // the default value change in wrapper (atlas-blotter)
|
44315
44698
|
obj["headerRowHeight"] = val;
|
44316
44699
|
}
|
44317
44700
|
|
@@ -44319,7 +44702,8 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
44319
44702
|
obj["autoLayoutUpdate"] = true;
|
44320
44703
|
}
|
44321
44704
|
|
44322
|
-
|
44705
|
+
val = Object(Util["f" /* isEmptyObject */])(this._defaultColumnOptions);
|
44706
|
+
if (!val) { // Currently, this variable is the object, we need to check empty array for default value
|
44323
44707
|
obj["defaultColumnOptions"] = this._defaultColumnOptions;
|
44324
44708
|
}
|
44325
44709
|
|
@@ -44378,10 +44762,13 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
44378
44762
|
}
|
44379
44763
|
|
44380
44764
|
// TODO: The following states need to be retrieved
|
44381
|
-
// rowHighlighting
|
44382
|
-
// columnVirtualization
|
44383
44765
|
// topFreezingCount, bottomFreezingCount
|
44384
44766
|
// scrollbarParent
|
44767
|
+
// linearWheelScrolling
|
44768
|
+
// stepScroll
|
44769
|
+
// noColumnDragging
|
44770
|
+
// columnReorder
|
44771
|
+
// topSection
|
44385
44772
|
|
44386
44773
|
// NOTE: no need to export synapseApiKey, ADC and RTK
|
44387
44774
|
|
@@ -44457,7 +44844,7 @@ Grid.prototype._onRicAdded = function(e) {
|
|
44457
44844
|
var jLen = rowDefs ? rowDefs.length : 0;
|
44458
44845
|
for (var j = 0; j < jLen; ++j) {
|
44459
44846
|
var rowDef = rowDefs[j];
|
44460
|
-
if (rowDef.
|
44847
|
+
if (rowDef.getSymbol() === ric) {
|
44461
44848
|
this._snapshot.addRic(ric); // ADC
|
44462
44849
|
}
|
44463
44850
|
}
|
@@ -44482,7 +44869,7 @@ Grid.prototype._onFieldAdded = function(e) {
|
|
44482
44869
|
|
44483
44870
|
// ADC
|
44484
44871
|
for (var i in rowDefs) {
|
44485
|
-
this._snapshot.addRic(rowDefs[i].
|
44872
|
+
this._snapshot.addRic(rowDefs[i].getSymbol());
|
44486
44873
|
}
|
44487
44874
|
this._snapshot.addFields(addedFields);
|
44488
44875
|
|
@@ -44676,7 +45063,7 @@ Grid.prototype.replaceColumn = function (columnOption, colRef) {
|
|
44676
45063
|
colConfig["width"] = value;
|
44677
45064
|
|
44678
45065
|
value = core.getMinimumColumnWidth(colIndex);
|
44679
|
-
if(value
|
45066
|
+
if(value > 0) {
|
44680
45067
|
colConfig["minWidth"] = value;
|
44681
45068
|
}
|
44682
45069
|
|
@@ -44814,22 +45201,101 @@ Grid.prototype._shouldLoadFieldInfo = function (field) {
|
|
44814
45201
|
* @param {Array.<Object>} columns Array of column options
|
44815
45202
|
*/
|
44816
45203
|
Grid.prototype.setColumns = function(columns) {
|
45204
|
+
var grid = this._grid;
|
44817
45205
|
var colCount = (columns) ? columns.length : 0;
|
44818
45206
|
|
45207
|
+
grid.startBatch("reset");
|
44819
45208
|
this.removeAllColumns();
|
44820
45209
|
if(colCount > 0) {
|
44821
45210
|
var prevState = false;
|
44822
45211
|
if(colCount > 1) {
|
44823
|
-
prevState =
|
45212
|
+
prevState = grid.freezeLayout(true); // Insert multiple columns can be a huge time consuming
|
44824
45213
|
}
|
44825
45214
|
for(var i = 0; i < colCount; ++i) {
|
44826
45215
|
this.insertColumn(columns[i], i);
|
44827
45216
|
}
|
44828
45217
|
if(colCount > 1) {
|
44829
|
-
|
45218
|
+
grid.freezeLayout(prevState);
|
45219
|
+
}
|
45220
|
+
}
|
45221
|
+
grid.stopBatch("reset");
|
45222
|
+
};
|
45223
|
+
|
45224
|
+
|
45225
|
+
/** Remove, add and keep column based on the given column data
|
45226
|
+
* @public
|
45227
|
+
* @param {Array.<Object>} columns Array of column options
|
45228
|
+
*/
|
45229
|
+
Grid.prototype.restoreColumns = function(columns) {
|
45230
|
+
var grid = this._grid;
|
45231
|
+
grid.startBatch("reset");
|
45232
|
+
var configObj = this.getConfigObject();
|
45233
|
+
var previousColumns = configObj.columns;
|
45234
|
+
|
45235
|
+
var preColLen = previousColumns.length;
|
45236
|
+
var newColLen = columns.length;
|
45237
|
+
|
45238
|
+
var removingFields = [];
|
45239
|
+
var keepingColumns = [];
|
45240
|
+
var columnOrdering = [];
|
45241
|
+
|
45242
|
+
var i, j, found;
|
45243
|
+
// Slow, time complexity BigO(n ^ 2)
|
45244
|
+
for (i = 0; i < preColLen; i++) {
|
45245
|
+
found = false;
|
45246
|
+
for (j = 0; j < newColLen; j++) {
|
45247
|
+
if (Object(Util["c" /* deepEqual */])(previousColumns[i], columns[j])) {
|
45248
|
+
keepingColumns.push(previousColumns[i]);
|
45249
|
+
found = true;
|
45250
|
+
break;
|
45251
|
+
}
|
45252
|
+
}
|
45253
|
+
if (!found) {
|
45254
|
+
removingFields.push(previousColumns[i].field);
|
45255
|
+
}
|
45256
|
+
}
|
45257
|
+
|
45258
|
+
var sortingStates;
|
45259
|
+
var removeLen = removingFields.length;
|
45260
|
+
if(removeLen > 0 && this._stp) {
|
45261
|
+
sortingStates = this._stp.getSortingStates().slice(); // We need to clone array for avoid object reference in remove column
|
45262
|
+
}
|
45263
|
+
|
45264
|
+
this.removeColumns(removingFields);
|
45265
|
+
|
45266
|
+
var keepingLen = keepingColumns.length;
|
45267
|
+
var prevState = false;
|
45268
|
+
if(newColLen > 1) {
|
45269
|
+
prevState = this._grid.freezeLayout(true); // Insert multiple columns can be a huge time consuming
|
45270
|
+
}
|
45271
|
+
for (i = 0; i < newColLen; i++) {
|
45272
|
+
found = false;
|
45273
|
+
for (j = 0; j < keepingLen; j++) { // loop only keeping column
|
45274
|
+
if (Object(Util["c" /* deepEqual */])(columns[i], keepingColumns[j])) {
|
45275
|
+
found = true;
|
45276
|
+
var colIndex = this.getColumnIndex(columns[i].field); // We cannot use 'i' (colIndex) in this case, as it will sort the columns. Instead, we need to obtain a new column index from the field.
|
45277
|
+
columnOrdering.push(this.getColumnId(colIndex));
|
45278
|
+
break;
|
45279
|
+
}
|
45280
|
+
}
|
45281
|
+
if (!found) {
|
45282
|
+
this.insertColumn(columns[i], i);
|
45283
|
+
columnOrdering.push(this.getColumnId(i)); // Use new insertion column index
|
44830
45284
|
}
|
44831
45285
|
}
|
45286
|
+
|
45287
|
+
if(newColLen > 1) {
|
45288
|
+
this._grid.freezeLayout(prevState);
|
45289
|
+
}
|
45290
|
+
|
45291
|
+
if(removeLen > 0 && this._stp) {
|
45292
|
+
this._stp.sortColumns(sortingStates);
|
45293
|
+
}
|
45294
|
+
|
45295
|
+
grid.reorderColumns(columnOrdering);
|
45296
|
+
grid.stopBatch("reset");
|
44832
45297
|
};
|
45298
|
+
|
44833
45299
|
/** Remove all existing columns and add new columns based on the given texts/fields
|
44834
45300
|
* @public
|
44835
45301
|
* @function
|
@@ -44974,10 +45440,11 @@ Grid.prototype.removeColumn = function(colRef) {
|
|
44974
45440
|
this._dc.removeStaticFields([colDef.getField()]);
|
44975
45441
|
}
|
44976
45442
|
}
|
44977
|
-
colDef.dispose();
|
44978
|
-
this._grid.removeColumnAt(colIndex);
|
44979
45443
|
|
45444
|
+
this._grid.removeColumnAt(colIndex);
|
44980
45445
|
this._connector.removeFields(colDef);
|
45446
|
+
|
45447
|
+
colDef.dispose(); // Dispose at the last line to avoid making properties inaccessible
|
44981
45448
|
// TODO: Remove fields that are related to the column (e.g. fields for coloring)
|
44982
45449
|
};
|
44983
45450
|
/** Remove multiple columns through array. To remove all columns, use removeAllColumns() instead of this method
|
@@ -45323,7 +45790,7 @@ Grid.prototype.setColumnSorter = function(colRef, func) {
|
|
45323
45790
|
* @param {RowDefinition} rowDef
|
45324
45791
|
*/
|
45325
45792
|
Grid.prototype._initDuplicateRicData = function(rowDef) {
|
45326
|
-
var ric = rowDef.
|
45793
|
+
var ric = rowDef.getSymbol();
|
45327
45794
|
var rowDefs = this._connector.getRowDefByRic(ric);
|
45328
45795
|
if(rowDefs && rowDefs.length) {
|
45329
45796
|
cloneRowData(rowDefs[0], rowDef);
|
@@ -45740,8 +46207,9 @@ Grid.prototype.setRic = function(rowRef, str, options) {
|
|
45740
46207
|
this.insertRow(options, rowIndex);
|
45741
46208
|
}
|
45742
46209
|
} else {
|
45743
|
-
var oldRic = rowDef.
|
45744
|
-
|
46210
|
+
var oldRic = rowDef.getSymbol();
|
46211
|
+
var permId = options["permId"] || "";
|
46212
|
+
if(rowDef.setContent(str, permId)) { // The given string may not be a RIC
|
45745
46213
|
this._connector.removeRic(rowDef, oldRic);
|
45746
46214
|
this._initDuplicateRicData(rowDef);
|
45747
46215
|
this._connector.addRic(rowDef);
|
@@ -46062,7 +46530,7 @@ Grid.prototype.setRicData = function(ric, values) {
|
|
46062
46530
|
var rowCount = rowDefs ? rowDefs.length : 0;
|
46063
46531
|
for (var i = 0; i < rowCount; ++i) {
|
46064
46532
|
var rowDef = rowDefs[i];
|
46065
|
-
if (rowDef && rowDef.
|
46533
|
+
if (rowDef && rowDef.getSymbol() === ric) {
|
46066
46534
|
rowDef.setRowData(values); // TODO: Need conflator to improve performance
|
46067
46535
|
}
|
46068
46536
|
}
|
@@ -46518,33 +46986,34 @@ Grid.prototype._updateStreamingData = function() {
|
|
46518
46986
|
* @param {Object} e
|
46519
46987
|
*/
|
46520
46988
|
Grid.prototype._onPreDataSorting = function (e) {
|
46521
|
-
var
|
46522
|
-
|
46523
|
-
|
46524
|
-
|
46525
|
-
|
46526
|
-
|
46527
|
-
|
46528
|
-
|
46529
|
-
|
46530
|
-
|
46531
|
-
|
46532
|
-
|
46533
|
-
|
46989
|
+
var objs = this._stp.getSortedColumns();
|
46990
|
+
|
46991
|
+
this._sorter.reset();
|
46992
|
+
if(Array.isArray(objs)) {
|
46993
|
+
var sortCount = objs.length;
|
46994
|
+
for(var i = 0; i < sortCount; ++i) {
|
46995
|
+
var obj = objs[i];
|
46996
|
+
var field = obj["field"] || "";
|
46997
|
+
var colIndex = obj["colIndex"];
|
46998
|
+
var colDef = (colIndex >= 0) ? this.getColumnDefinition(colIndex) : null;
|
46999
|
+
|
47000
|
+
var rowSorting = false;
|
47001
|
+
var sortLogic = null;
|
47002
|
+
if(colDef) {
|
47003
|
+
field = colDef.getField(); // WARNING: Field and logic could be out of sync
|
47004
|
+
rowSorting = colDef.isRowSorting();
|
47005
|
+
sortLogic = colDef.getSorter();
|
47006
|
+
}
|
47007
|
+
// TODO: get sortLogic from DataView
|
47008
|
+
// if(!sortLogic && field) {
|
47009
|
+
// sortLogic = state["sortLogic"];
|
47010
|
+
// }
|
46534
47011
|
|
46535
|
-
|
46536
|
-
field = colDef.getField(); // WARNING: Field and logic could be out of sync
|
46537
|
-
sortLogic = colDef.getSorter();
|
46538
|
-
rowSorting = colDef.isRowSorting();
|
47012
|
+
this._sorter.addColumnContext(field, sortLogic, rowSorting, obj["sortOrder"], colIndex, colDef);
|
46539
47013
|
}
|
46540
47014
|
}
|
46541
|
-
if(!sortLogic && field) {
|
46542
|
-
sortLogic = state["sortLogic"];
|
46543
|
-
}
|
46544
47015
|
|
46545
|
-
this._sorter.
|
46546
|
-
this._sorter.setSortLogic(sortLogic);
|
46547
|
-
this._columnSorter = this._sorter.getSorter(rowSorting);
|
47016
|
+
this._columnSorter = this._sorter.getSorter();
|
46548
47017
|
};
|
46549
47018
|
/** @private
|
46550
47019
|
* @param {RowDefinition} rowDefA
|
@@ -47445,7 +47914,7 @@ var _fieldInfo = {
|
|
47445
47914
|
"words2": {type: "string", min: 3, max: 10},
|
47446
47915
|
"words3": {type: "string", min: 5, max: 15},
|
47447
47916
|
"sentence": {type: "string", min: 8, max: 20},
|
47448
|
-
"id": {type: "function", generate: _generateId},
|
47917
|
+
"id": {type: "function", hash: 0, generate: _generateId},
|
47449
47918
|
"companyName": {type: "set", members: jet_DataSet.companyName },
|
47450
47919
|
"industry": {type: "set", members: jet_DataSet.industry },
|
47451
47920
|
"market": {type: "set", members: jet_DataSet.market },
|
@@ -47465,14 +47934,16 @@ var getFieldInfo = function(field) {
|
|
47465
47934
|
* @param {Object|Function} options
|
47466
47935
|
*/
|
47467
47936
|
var addFieldInfo = function(field, options) {
|
47468
|
-
|
47469
|
-
|
47470
|
-
|
47471
|
-
|
47472
|
-
|
47473
|
-
|
47937
|
+
if(field) {
|
47938
|
+
var opt = options;
|
47939
|
+
if(typeof options === "function") {
|
47940
|
+
opt = {
|
47941
|
+
type: "function",
|
47942
|
+
generate: options
|
47943
|
+
};
|
47944
|
+
}
|
47945
|
+
_fieldInfo[field] = opt; // WARNING: This could replace existing info
|
47474
47946
|
}
|
47475
|
-
_fieldInfo[field] = opt;
|
47476
47947
|
};
|
47477
47948
|
|
47478
47949
|
/** Return pseudo random number in the range of 0 to 1 (exclusive of 1)
|
@@ -47814,8 +48285,9 @@ var _generate2DArray = function(fields, options, seed) {
|
|
47814
48285
|
*/
|
47815
48286
|
var _hash = function(str) {
|
47816
48287
|
var sum = 0;
|
47817
|
-
|
47818
|
-
|
48288
|
+
var i = str ? str.length : 0;
|
48289
|
+
while(--i >= 0) {
|
48290
|
+
sum += str.charCodeAt(i) * (i + 0.9879);
|
47819
48291
|
}
|
47820
48292
|
return sum;
|
47821
48293
|
};
|
@@ -47827,35 +48299,34 @@ var _hash = function(str) {
|
|
47827
48299
|
*/
|
47828
48300
|
var _generateFieldData = function(field, options, seed) {
|
47829
48301
|
var fInfo = getFieldInfo(field);
|
48302
|
+
if(!fInfo.type) {
|
48303
|
+
fInfo.type = "number";
|
48304
|
+
addFieldInfo(field, fInfo);
|
48305
|
+
}
|
48306
|
+
if(fInfo.fixedValue){
|
48307
|
+
fInfo.value = value;
|
48308
|
+
return fInfo;
|
48309
|
+
}
|
48310
|
+
if(seed != null) {
|
48311
|
+
if(fInfo.hash == null) {
|
48312
|
+
fInfo.hash = _hash(field);
|
48313
|
+
}
|
48314
|
+
seed += fInfo.hash; // Make each field unique for the same seed
|
48315
|
+
}
|
48316
|
+
|
47830
48317
|
var min = fInfo.min != null ? fInfo.min : 100; // WARNING: Default values are non-standard values
|
47831
48318
|
var max = fInfo.max != null ? fInfo.max : 10000;
|
47832
|
-
var prec = fInfo.prec != null ? fInfo.prec : 0;
|
47833
48319
|
var value;
|
47834
48320
|
|
47835
|
-
if(fInfo.
|
47836
|
-
value = fInfo.fixedValue;
|
47837
|
-
} else if(!fInfo.type) { // Unknown type
|
47838
|
-
if(seed != null) {
|
47839
|
-
if(field) {
|
47840
|
-
if(!fInfo.hash) {
|
47841
|
-
fInfo.hash = _hash(field);
|
47842
|
-
addFieldInfo(field, fInfo); // WARNING: modify global state
|
47843
|
-
}
|
47844
|
-
seed += fInfo.hash;
|
47845
|
-
}
|
47846
|
-
}
|
47847
|
-
value = randNumber(min, max, prec, seed);
|
47848
|
-
} else if(fInfo.type === "string") {
|
48321
|
+
if(fInfo.type === "string") {
|
47849
48322
|
if(fInfo.min != null || fInfo.max != null) {
|
47850
|
-
if(seed != null) {
|
47851
|
-
if(!fInfo.hash) {
|
47852
|
-
fInfo.hash = _hash(field);
|
47853
|
-
}
|
47854
|
-
seed += fInfo.hash;
|
47855
|
-
}
|
47856
48323
|
value = randString(min, max, seed);
|
47857
48324
|
} else {
|
47858
|
-
|
48325
|
+
if(options) {
|
48326
|
+
value = options.text || "";
|
48327
|
+
} else {
|
48328
|
+
value = "";
|
48329
|
+
}
|
47859
48330
|
}
|
47860
48331
|
} else if(fInfo.type === "set") {
|
47861
48332
|
value = randMember(fInfo.members, seed);
|
@@ -47872,7 +48343,8 @@ var _generateFieldData = function(field, options, seed) {
|
|
47872
48343
|
} else if(fInfo.type === "function") {
|
47873
48344
|
fInfo.field = field;
|
47874
48345
|
value = fInfo.generate(fInfo, seed);
|
47875
|
-
} else { // Default is number
|
48346
|
+
} else { // Default is number for all unknown type
|
48347
|
+
var prec = fInfo.prec != null ? fInfo.prec : 0;
|
47876
48348
|
value = randNumber(min, max, prec, seed);
|
47877
48349
|
}
|
47878
48350
|
fInfo.value = value;
|
@@ -49979,7 +50451,7 @@ CellPainter.themeReady = null;
|
|
49979
50451
|
* var fn = CellPainter.parse("[CF_BID] >= 10 && [CF_BID] <= 100");
|
49980
50452
|
* window.console.log(fn(25));
|
49981
50453
|
*/
|
49982
|
-
CellPainter.parse = Util["
|
50454
|
+
CellPainter.parse = Util["h" /* parseCondition */];
|
49983
50455
|
|
49984
50456
|
|
49985
50457
|
/** @public */
|
@@ -50077,25 +50549,17 @@ CellPainter.prototype.clearHeatMap = function() {
|
|
50077
50549
|
/** @public */
|
50078
50550
|
CellPainter.prototype.applyThemeColor = function() {
|
50079
50551
|
var colors = ElfUtil.getColors();
|
50080
|
-
|
50081
|
-
|
50082
|
-
if(
|
50552
|
+
if(this._coloringType === CellPainter.ColoringTypes.HEATMAP) { // Heatmap uses grid color to blend the result color
|
50553
|
+
var cond = this._conditions[0]; // Heatmap, color text condition must be the first
|
50554
|
+
if(cond) {
|
50083
50555
|
if(cond["textMode"]) {
|
50084
50556
|
cond["baseColor"] = colors["baseText"];
|
50085
50557
|
} else {
|
50086
50558
|
cond["baseColor"] = colors["baseGrid"];
|
50087
50559
|
}
|
50088
|
-
|
50089
|
-
|
50090
|
-
|
50091
|
-
var up, down;
|
50092
|
-
if(this._coloringType === CellPainter.ColoringTypes.TEXT && cond["field"] === "CF_TICK") {
|
50093
|
-
up = colors["tickUp"];
|
50094
|
-
down = colors["tickDown"];
|
50095
|
-
} else {
|
50096
|
-
up = colors["up"];
|
50097
|
-
down = colors["down"];
|
50098
|
-
}
|
50560
|
+
if(cond["useThemeColor"]) {
|
50561
|
+
var up = colors["up"];
|
50562
|
+
var down = colors["down"];
|
50099
50563
|
var level = (colors["level"] === colors["baseText"]) ? "" : colors["level"];
|
50100
50564
|
CellPainter._setUpDownColors(cond, up, down, level);
|
50101
50565
|
}
|
@@ -50214,34 +50678,36 @@ CellPainter.prototype.addHeatmapWithTheme = function(field, midPoint, opt_textMo
|
|
50214
50678
|
/** @private
|
50215
50679
|
* @param {Function} expression
|
50216
50680
|
* @param {string} field
|
50217
|
-
* @param {string}
|
50218
|
-
* @param {string}
|
50219
|
-
* @param {string}
|
50681
|
+
* @param {string=} upClass CSS class name
|
50682
|
+
* @param {string=} downClass CSS class name
|
50683
|
+
* @param {string=} levelClass CSS class name
|
50220
50684
|
* @return {!Object}
|
50221
50685
|
*/
|
50222
|
-
CellPainter.prototype._addColorText = function(expression, field,
|
50686
|
+
CellPainter.prototype._addColorText = function(expression, field, upClass, downClass, levelClass) {
|
50223
50687
|
this._setColoringType(CellPainter.ColoringTypes.TEXT);
|
50224
50688
|
|
50225
50689
|
var condition = {};
|
50226
50690
|
condition["field"] = field;
|
50227
50691
|
condition["expression"] = expression.bind(null, field);
|
50228
|
-
|
50692
|
+
condition["upClass"] = upClass;
|
50693
|
+
condition["downClass"] = downClass;
|
50694
|
+
condition["levelClass"] = levelClass;
|
50229
50695
|
|
50230
50696
|
this._addCondition(condition);
|
50231
50697
|
return condition;
|
50232
50698
|
};
|
50233
50699
|
/** @public
|
50234
50700
|
* @param {string} field
|
50235
|
-
* @param {string}
|
50236
|
-
* @param {string}
|
50237
|
-
* @param {string}
|
50701
|
+
* @param {string=} upClass CSS class name
|
50702
|
+
* @param {string=} downClass CSS class name
|
50703
|
+
* @param {string=} levelClass CSS class name
|
50238
50704
|
* @return {!Object}
|
50239
50705
|
*/
|
50240
|
-
CellPainter.prototype.addColorText = function(field,
|
50706
|
+
CellPainter.prototype.addColorText = function(field, upClass, downClass, levelClass) {
|
50241
50707
|
return this._addColorText(
|
50242
50708
|
TickFields[field] ? CellPainter._tickColorTextCondition : CellPainter._colorTextCondition,
|
50243
50709
|
field,
|
50244
|
-
|
50710
|
+
upClass, downClass, levelClass
|
50245
50711
|
);
|
50246
50712
|
};
|
50247
50713
|
/** @public
|
@@ -50249,14 +50715,7 @@ CellPainter.prototype.addColorText = function(field, upColor, downColor, levelCo
|
|
50249
50715
|
* @return {!Object}
|
50250
50716
|
*/
|
50251
50717
|
CellPainter.prototype.addColorTextWithTheme = function(field) {
|
50252
|
-
var
|
50253
|
-
var condition = this.addColorText(field,
|
50254
|
-
colors["up"],
|
50255
|
-
colors["down"],
|
50256
|
-
(colors["level"] === colors["baseText"]) ? "" : colors["level"]
|
50257
|
-
);
|
50258
|
-
|
50259
|
-
condition["useThemeColor"] = true;
|
50718
|
+
var condition = this.addColorText(field, "positive", "negative", "neutral");
|
50260
50719
|
return condition;
|
50261
50720
|
};
|
50262
50721
|
/** @public
|
@@ -50358,14 +50817,16 @@ CellPainter.prototype.renderForPrinting = function(cell, rowData, min, max) {
|
|
50358
50817
|
return;
|
50359
50818
|
}
|
50360
50819
|
var styles = this._getStyles(rowData, min, max);
|
50361
|
-
var cssClass = styles["cssClass"];
|
50362
|
-
if (cssClass) {
|
50363
|
-
if (
|
50364
|
-
|
50365
|
-
|
50820
|
+
var cssClass = styles["cssClass"]; // Can be an empty string
|
50821
|
+
if (cssClass != null) { // Predefined colors mode
|
50822
|
+
if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
|
50823
|
+
elem.classList.remove(elem._coloringCssClass);
|
50824
|
+
elem._coloringCssClass = null;
|
50825
|
+
}
|
50826
|
+
if (cssClass) {
|
50827
|
+
elem.classList.add(cssClass);
|
50828
|
+
elem._coloringCssClass = cssClass;
|
50366
50829
|
}
|
50367
|
-
cell.classList.add(cssClass);
|
50368
|
-
cell._coloringCssClass = cssClass;
|
50369
50830
|
} else {
|
50370
50831
|
if (cell._coloringCssClass) {
|
50371
50832
|
cell.classList.remove(cell._coloringCssClass);
|
@@ -50498,14 +50959,17 @@ CellPainter._cellRestorer = function(scope) {
|
|
50498
50959
|
}
|
50499
50960
|
|
50500
50961
|
var styles = this._getStyles(rowData, min, max);
|
50501
|
-
var cssClass = styles["cssClass"];
|
50502
|
-
if (cssClass) {
|
50962
|
+
var cssClass = styles["cssClass"]; // Can be an empty string
|
50963
|
+
if (cssClass != null) { // Predefined colors mode
|
50503
50964
|
if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
|
50504
50965
|
elem.classList.remove(elem._coloringCssClass);
|
50505
50966
|
elem._coloringCssClass = null;
|
50506
50967
|
}
|
50507
|
-
|
50508
|
-
|
50968
|
+
if (cssClass) {
|
50969
|
+
elem.classList.add(cssClass);
|
50970
|
+
elem._coloringCssClass = cssClass;
|
50971
|
+
}
|
50972
|
+
// Remove blinking color
|
50509
50973
|
elem.style.backgroundColor = "";
|
50510
50974
|
elem.style.color = "";
|
50511
50975
|
} else {
|
@@ -50560,13 +51024,14 @@ CellPainter.prototype._getStyles = function(rowData, min, max) {
|
|
50560
51024
|
}
|
50561
51025
|
} else if(this._coloringType === CellPainter.ColoringTypes.TEXT) {
|
50562
51026
|
if(ret > 0) {
|
50563
|
-
|
51027
|
+
curCond["cssClass"] = curCond["upClass"];
|
50564
51028
|
} else if(ret < 0) {
|
50565
|
-
|
51029
|
+
curCond["cssClass"] = curCond["downClass"];
|
50566
51030
|
} else {
|
50567
|
-
|
51031
|
+
curCond["cssClass"] = this._levelColorDisabled ? "" : curCond["levelClass"];
|
50568
51032
|
}
|
50569
|
-
|
51033
|
+
curCond["cssClass"] = curCond["cssClass"] || "";
|
51034
|
+
return curCond;
|
50570
51035
|
}
|
50571
51036
|
|
50572
51037
|
// Expected return value is {
|
@@ -50626,7 +51091,7 @@ CellPainter.blackAndWhite = function (triplet) {
|
|
50626
51091
|
* @param {string} rgbCode
|
50627
51092
|
* @return {string} resultColor E.g. "#10FF0D"
|
50628
51093
|
*/
|
50629
|
-
CellPainter.rgb2Hex = Util["
|
51094
|
+
CellPainter.rgb2Hex = Util["j" /* rgb2Hex */]; // For backward compatability
|
50630
51095
|
|
50631
51096
|
/** @public
|
50632
51097
|
* @function
|
@@ -50742,6 +51207,10 @@ CellPainter.clearCellStyle = function(cell, styles) {
|
|
50742
51207
|
// WARNING: Scope is not removed from the this._scopes collection to speed things up
|
50743
51208
|
}
|
50744
51209
|
|
51210
|
+
if(elem._coloringCssClass) {
|
51211
|
+
elem.classList.remove(elem._coloringCssClass);
|
51212
|
+
}
|
51213
|
+
|
50745
51214
|
styles = styles || CellPainter.supportedStyles;
|
50746
51215
|
for(var i = styles.length; --i >= 0;) {
|
50747
51216
|
elem.style[styles[i]] = ""; // WARNING: Very slow
|
@@ -50755,22 +51224,24 @@ CellPainter.clearCellStyle = function(cell, styles) {
|
|
50755
51224
|
* @param {boolean=} withContrast
|
50756
51225
|
*/
|
50757
51226
|
CellPainter._setUpDownColors = function(scp, upColor, downColor, levelColor, withContrast) {
|
51227
|
+
scp["upColor"] = upColor;
|
50758
51228
|
if(upColor != null) {
|
50759
|
-
scp["upColor"] = upColor;
|
50760
51229
|
if(withContrast) {
|
50761
51230
|
scp["contrastUpColor"] = CellPainter.getOppositeColor(upColor);
|
50762
51231
|
}
|
50763
51232
|
//scp["rgbUp"] = CellPainter.hex2Rgb(upColor);
|
50764
51233
|
}
|
51234
|
+
|
51235
|
+
scp["downColor"] = downColor;
|
50765
51236
|
if(downColor != null) {
|
50766
|
-
scp["downColor"] = downColor;
|
50767
51237
|
if(withContrast) {
|
50768
51238
|
scp["contrastDownColor"] = CellPainter.getOppositeColor(downColor);
|
50769
51239
|
}
|
50770
51240
|
//scp["rgbDown"] = CellPainter.hex2Rgb(downColor);
|
50771
51241
|
}
|
51242
|
+
|
51243
|
+
scp["levelColor"] = levelColor;
|
50772
51244
|
if(levelColor != null) {
|
50773
|
-
scp["levelColor"] = levelColor;
|
50774
51245
|
if(withContrast) {
|
50775
51246
|
scp["contrastLevelColor"] = CellPainter.getOppositeColor(levelColor);
|
50776
51247
|
}
|
@@ -50864,14 +51335,16 @@ CellPainter.prototype._paintCell = function(cell, rowData, min, max) {
|
|
50864
51335
|
}
|
50865
51336
|
|
50866
51337
|
var styles = this._getStyles(rowData, min, max);
|
50867
|
-
var cssClass = styles["cssClass"];
|
50868
|
-
if (cssClass) {
|
50869
|
-
if (elem._coloringCssClass !== cssClass) {
|
51338
|
+
var cssClass = styles["cssClass"]; // Can be an empty string
|
51339
|
+
if (cssClass != null) { // Predefined colors mode
|
51340
|
+
if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
|
50870
51341
|
elem.classList.remove(elem._coloringCssClass);
|
50871
51342
|
elem._coloringCssClass = null;
|
50872
51343
|
}
|
50873
|
-
|
50874
|
-
|
51344
|
+
if (cssClass) {
|
51345
|
+
elem.classList.add(cssClass);
|
51346
|
+
elem._coloringCssClass = cssClass;
|
51347
|
+
}
|
50875
51348
|
} else {
|
50876
51349
|
if (elem._coloringCssClass) {
|
50877
51350
|
elem.classList.remove(elem._coloringCssClass);
|