@refinitiv-ui/efx-grid 6.0.33 → 6.0.34
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/core/dist/core.js +112 -36
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataTable.d.ts +1 -1
- package/lib/core/es6/data/DataTable.js +9 -8
- package/lib/core/es6/data/DataView.js +1 -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.js +1 -1
- package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +7 -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 +2 -0
- 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 +425 -153
- 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 +116 -15
- 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-stack/es6/ColumnStack.js +21 -10
- 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 +142 -17
- 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/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/types/es6/ConditionalColoring.d.ts +12 -5
- 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/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 +6 -6
- 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
|
|
@@ -12288,9 +12379,9 @@ DataTable.prototype.addSegmentChild = function(segmentId, rid, dataId) {
|
|
12288
12379
|
if(this._segments) {
|
12289
12380
|
var dirty = this._segments.addSegmentChild(segmentId, rid, dataId);
|
12290
12381
|
if(dirty) {
|
12291
|
-
|
12292
|
-
|
12293
|
-
|
12382
|
+
this._sort(null);
|
12383
|
+
this._dispatchPositionChange(); // Force rerendering, even if there is no position change
|
12384
|
+
|
12294
12385
|
this.requestClassifying();
|
12295
12386
|
return true;
|
12296
12387
|
}
|
@@ -12307,9 +12398,9 @@ DataTable.prototype.addSegmentChildren = function(segmentId, rids, dataIds) {
|
|
12307
12398
|
if(this._segments) {
|
12308
12399
|
var dirty = this._segments.addSegmentChildren(segmentId, rids, dataIds);
|
12309
12400
|
if(dirty) {
|
12310
|
-
|
12311
|
-
|
12312
|
-
|
12401
|
+
this._sort(null);
|
12402
|
+
this._dispatchPositionChange(); // Force rerendering, even if there is no position change
|
12403
|
+
|
12313
12404
|
this.requestClassifying();
|
12314
12405
|
return true;
|
12315
12406
|
}
|
@@ -13062,6 +13153,7 @@ DataTable._proto = DataTable.prototype;
|
|
13062
13153
|
/** @typedef {Object} RowDefinition~Options
|
13063
13154
|
* @description RowDefinition options
|
13064
13155
|
* @property {string=} ric="" RIC for real-time fields. Prefixing 0# to the ric is equivalent to specifying asChain property.
|
13156
|
+
* @property {string=} permId="" Organization PermId to be used instead of ric for private company.
|
13065
13157
|
* @property {(Array|Object)=} values=null Values for static data
|
13066
13158
|
* @property {Array.<string>=} fields=null Field that corresponds to the given static values
|
13067
13159
|
* @property {boolean=} asChain=false The given ric will be treated as a chain
|
@@ -13143,6 +13235,10 @@ RowDefinition.prototype._ric = ""; // Contains no 0#
|
|
13143
13235
|
/** @type {string}
|
13144
13236
|
* @private
|
13145
13237
|
*/
|
13238
|
+
RowDefinition.prototype._permId = "";
|
13239
|
+
/** @type {string}
|
13240
|
+
* @private
|
13241
|
+
*/
|
13146
13242
|
RowDefinition.prototype._displayText = "";
|
13147
13243
|
/** @type {string|null}
|
13148
13244
|
* @private
|
@@ -13268,13 +13364,20 @@ RowDefinition.prototype.initialize = function(rowOptions) {
|
|
13268
13364
|
|
13269
13365
|
var val = rowOptions["ric"];
|
13270
13366
|
if(val != null) {
|
13271
|
-
this.
|
13367
|
+
this._ric = val;
|
13368
|
+
}
|
13369
|
+
val = rowOptions["permId"];
|
13370
|
+
if(val != null) {
|
13371
|
+
this._permId = val;
|
13272
13372
|
}
|
13373
|
+
if(this._ric || this._permId){
|
13374
|
+
this.setContent(this._ric, this._permId); // this._dataId is modified
|
13375
|
+
}
|
13376
|
+
|
13273
13377
|
val = rowOptions["chainRic"];
|
13274
13378
|
if(val != null) {
|
13275
13379
|
this._chainRic = val;
|
13276
13380
|
}
|
13277
|
-
|
13278
13381
|
val = rowOptions["values"];
|
13279
13382
|
// eslint-disable-next-line no-undefined
|
13280
13383
|
if(val !== undefined) {
|
@@ -13328,10 +13431,11 @@ RowDefinition.prototype._initializeAsConstituent = function(rowOptions) {
|
|
13328
13431
|
}
|
13329
13432
|
};
|
13330
13433
|
/** @public
|
13331
|
-
* @param {string} userInput
|
13434
|
+
* @param {string} userInput RIC
|
13435
|
+
* @param {string=} permId=null Organization PermId, which use for getting ADC data for private company
|
13332
13436
|
* @return {boolean} True if there is any change otherwise false
|
13333
13437
|
*/
|
13334
|
-
RowDefinition.prototype.setContent = function(userInput) {
|
13438
|
+
RowDefinition.prototype.setContent = function(userInput, permId) {
|
13335
13439
|
if(this._autoGenerated) { // AutoGenerated RowDefinition cannot be changed by user input
|
13336
13440
|
return false;
|
13337
13441
|
}
|
@@ -13342,7 +13446,15 @@ RowDefinition.prototype.setContent = function(userInput) {
|
|
13342
13446
|
userInput += "";
|
13343
13447
|
}
|
13344
13448
|
|
13345
|
-
|
13449
|
+
var dirty = (this._userInput !== userInput);
|
13450
|
+
if(this._permId !== permId){
|
13451
|
+
this._permId = permId || "";
|
13452
|
+
if(!userInput){
|
13453
|
+
this._displayText = this._permId;
|
13454
|
+
dirty = true;
|
13455
|
+
}
|
13456
|
+
}
|
13457
|
+
if(!dirty) {
|
13346
13458
|
return false;
|
13347
13459
|
}
|
13348
13460
|
|
@@ -13369,7 +13481,7 @@ RowDefinition.prototype.setContent = function(userInput) {
|
|
13369
13481
|
this._displayText = this._ric; // No 0#
|
13370
13482
|
}
|
13371
13483
|
|
13372
|
-
this._dataId = this._rowId + this.
|
13484
|
+
this._dataId = this._rowId + this.getSymbol(); // JET/RTK will generate data id to be rowId (given from this rowDef) + ric;
|
13373
13485
|
|
13374
13486
|
// This will work for runtime ric modification, but not for first initilization.
|
13375
13487
|
if(!this.subscribeForUpdates()) {
|
@@ -13397,6 +13509,11 @@ RowDefinition.prototype.getConfigObject = function(rowOptions) {
|
|
13397
13509
|
obj["ric"] = val;
|
13398
13510
|
}
|
13399
13511
|
|
13512
|
+
val = this._permId;
|
13513
|
+
if(val) {
|
13514
|
+
obj["permId"] = val;
|
13515
|
+
}
|
13516
|
+
|
13400
13517
|
val = this._chainRic;
|
13401
13518
|
if(val) {
|
13402
13519
|
obj["chainRic"] = val;
|
@@ -13642,6 +13759,18 @@ RowDefinition.prototype.getRic = function() {
|
|
13642
13759
|
/** @public
|
13643
13760
|
* @return {string}
|
13644
13761
|
*/
|
13762
|
+
RowDefinition.prototype.getPermId = function() {
|
13763
|
+
return this._permId;
|
13764
|
+
};
|
13765
|
+
/** @public
|
13766
|
+
* @return {string}
|
13767
|
+
*/
|
13768
|
+
RowDefinition.prototype.getSymbol = function() {
|
13769
|
+
return this._ric || this._permId;
|
13770
|
+
};
|
13771
|
+
/** @public
|
13772
|
+
* @return {string}
|
13773
|
+
*/
|
13645
13774
|
RowDefinition.prototype.getDisplayText = function() {
|
13646
13775
|
if(this._label != null) { // Empty string is allowed
|
13647
13776
|
return this._label;
|
@@ -13707,7 +13836,7 @@ RowDefinition.prototype.isAutoGenerated = function() {
|
|
13707
13836
|
* @return {boolean}
|
13708
13837
|
*/
|
13709
13838
|
RowDefinition.prototype.isRealTimeRow = function() {
|
13710
|
-
if(!this.
|
13839
|
+
if(!this.getRic()) { // Empty row
|
13711
13840
|
return false;
|
13712
13841
|
}
|
13713
13842
|
if(this.isRowHeader()) {
|
@@ -13724,7 +13853,7 @@ RowDefinition.prototype.isRealTimeRow = function() {
|
|
13724
13853
|
* @return {boolean} If a subscription is made, return true.
|
13725
13854
|
*/
|
13726
13855
|
RowDefinition.prototype.subscribeForUpdates = function() {
|
13727
|
-
if(!this.isRealTimeRow()) {
|
13856
|
+
if(!this.isRealTimeRow() && !this.getPermId()) {
|
13728
13857
|
return false;
|
13729
13858
|
}
|
13730
13859
|
|
@@ -13738,14 +13867,14 @@ RowDefinition.prototype.subscribeForUpdates = function() {
|
|
13738
13867
|
if(this.isChain()) {
|
13739
13868
|
this._subId = subs["addChain"](this._chainRic || this._ric, this._rowId); // Some chain require 0# symbol to populate its constituents
|
13740
13869
|
// TODO: Handle Dynamic chain such as .PG.PA
|
13741
|
-
} else {
|
13870
|
+
} else if(this._ric) {
|
13742
13871
|
this._subId = subs["addRic"](this._ric, this._rowId);
|
13743
13872
|
}
|
13744
13873
|
|
13745
13874
|
if(prevRowData) {
|
13746
13875
|
this._dc.setRowData(this._dataId, prevRowData); // TODO: We may need to create a new object instead of prevRowData for data correctness
|
13747
13876
|
} else {
|
13748
|
-
this._dc.setRowData(this._dataId, {"X_RIC_NAME": this.
|
13877
|
+
this._dc.setRowData(this._dataId, {"X_RIC_NAME": this.getSymbol(), "ROW_DEF": this}); // Trigger data update immediately
|
13749
13878
|
}
|
13750
13879
|
return true;
|
13751
13880
|
};
|
@@ -15402,7 +15531,7 @@ ColumnDefinition.prototype.getAllFields = function() {
|
|
15402
15531
|
* @return {boolean}
|
15403
15532
|
*/
|
15404
15533
|
ColumnDefinition.prototype.isRealTimeField = function() {
|
15405
|
-
return js_FieldDefinition.isRealTimeField(this.getField());
|
15534
|
+
return js_FieldDefinition.isRealTimeField(this.getField() || this._field);
|
15406
15535
|
};
|
15407
15536
|
/** @public
|
15408
15537
|
* @return {boolean}
|
@@ -15593,8 +15722,9 @@ ColumnDefinition.prototype.getConfigObject = function(colOptions) {
|
|
15593
15722
|
obj["sort"] = this._initialOrder;
|
15594
15723
|
}
|
15595
15724
|
|
15596
|
-
|
15597
|
-
|
15725
|
+
var classes = this._classes;
|
15726
|
+
if(classes && classes.length > 0) {
|
15727
|
+
obj["className"] = classes.join(" ");
|
15598
15728
|
}
|
15599
15729
|
|
15600
15730
|
if(this._textSelect) {
|
@@ -15612,14 +15742,18 @@ ColumnDefinition.prototype.getConfigObject = function(colOptions) {
|
|
15612
15742
|
var core = this._eventArg["core"];
|
15613
15743
|
var grid = this._eventArg["grid"];
|
15614
15744
|
var colIndex = grid.getColumnIndex(this);
|
15615
|
-
value = core.getColumnScalability(colIndex);
|
15616
|
-
obj["scalable"] = value;
|
15617
15745
|
|
15618
|
-
|
15619
|
-
|
15746
|
+
// The scalable, width and minWidth cannot be shifted into core as getConfigObject is accessible from colDef.
|
15747
|
+
var scalable = core.getColumnScalability(colIndex);
|
15748
|
+
var width = core.getColumnCustomLaneSize(colIndex);
|
15749
|
+
|
15750
|
+
if (scalable !== true || width !== 1) {
|
15751
|
+
obj["scalable"] = scalable;
|
15752
|
+
obj["width"] = width;
|
15753
|
+
}
|
15620
15754
|
|
15621
15755
|
value = core.getMinimumColumnWidth(colIndex);
|
15622
|
-
if(value !==
|
15756
|
+
if(value !== 0) {
|
15623
15757
|
obj["minWidth"] = value;
|
15624
15758
|
}
|
15625
15759
|
|
@@ -15976,16 +16110,6 @@ ColumnDefinition.prototype._setCoreColumnDef = function(obj) {
|
|
15976
16110
|
|
15977
16111
|
|
15978
16112
|
|
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
16113
|
|
15990
16114
|
/** This class make requesting ADC field easier by encapsulating JET.Data APIs and mapping data to the row
|
15991
16115
|
* @constructor
|
@@ -16305,7 +16429,7 @@ SnapshotFiller.prototype._onJETSuccess = function (fields, serverResult) {
|
|
16305
16429
|
var updatedData = {};
|
16306
16430
|
for (ric in ricMap) {
|
16307
16431
|
var obj = ricMap[ric];
|
16308
|
-
if (!isEmptyObject(obj)) {
|
16432
|
+
if (!Object(Util["f" /* isEmptyObject */])(obj)) {
|
16309
16433
|
updatedData[ric] = obj;
|
16310
16434
|
}
|
16311
16435
|
}
|
@@ -16378,7 +16502,7 @@ SnapshotFiller.prototype._onRTKSuccess = function (fields, serverResult) {
|
|
16378
16502
|
var updatedData = {};
|
16379
16503
|
for (ric in ricMap) {
|
16380
16504
|
var obj = ricMap[ric];
|
16381
|
-
if (!isEmptyObject(obj)) {
|
16505
|
+
if (!Object(Util["f" /* isEmptyObject */])(obj)) {
|
16382
16506
|
updatedData[ric] = obj;
|
16383
16507
|
}
|
16384
16508
|
}
|
@@ -16448,7 +16572,7 @@ SnapshotFiller.prototype._onRTKTimeSeriesSuccess = function (fields, serverResul
|
|
16448
16572
|
var dataMapping = {};
|
16449
16573
|
for (ric in ricMap) {
|
16450
16574
|
var obj = ricMap[ric];
|
16451
|
-
if (!isEmptyObject(obj)) {
|
16575
|
+
if (!Object(Util["f" /* isEmptyObject */])(obj)) {
|
16452
16576
|
dataMapping[ric] = obj;
|
16453
16577
|
}
|
16454
16578
|
}
|
@@ -31837,7 +31961,7 @@ DataView.prototype._sort = function() {
|
|
31837
31961
|
if(this._dt._getSegmentSeparators() || this.isSorting()) {
|
31838
31962
|
var rids = this._rids;
|
31839
31963
|
var dataRows = this._dt.getMultipleRowData(rids);
|
31840
|
-
var segmentValues = this._dt.getSegmentValues(rids);
|
31964
|
+
var segmentValues = this._dt.getSegmentValues(rids, true); // WARNING: This does not work well for hidden/filtered rows
|
31841
31965
|
var change = data_DataTable._performMultiLevelSorting(dataRows, this._sortingDefs, segmentValues);
|
31842
31966
|
|
31843
31967
|
if(change) {
|
@@ -35591,7 +35715,7 @@ Core.prototype._groupDefs = null;
|
|
35591
35715
|
* @return {string}
|
35592
35716
|
*/
|
35593
35717
|
Core.getVersion = function () {
|
35594
|
-
return "5.1.
|
35718
|
+
return "5.1.44";
|
35595
35719
|
};
|
35596
35720
|
/** {@link ElementWrapper#dispose}
|
35597
35721
|
* @override
|
@@ -35727,10 +35851,10 @@ Core.prototype.getConfigObject = function (gridOptions) {
|
|
35727
35851
|
}
|
35728
35852
|
}
|
35729
35853
|
|
35730
|
-
|
35731
|
-
|
35732
|
-
|
35733
|
-
obj["
|
35854
|
+
// It will be overwrite in rt-grid or atlas-blotter
|
35855
|
+
obj["rowVirtualization"] = this.isRowVirtualizationEnabled();
|
35856
|
+
obj["columnVirtualization"] = this.isColumnVirtualizationEnabled();
|
35857
|
+
obj["rowHighlighting"] = this._rowHighlighting;
|
35734
35858
|
|
35735
35859
|
if(this._fixFrozenTopSections) {
|
35736
35860
|
obj["topFreezingCount"] = this._startVScrollbarIndex >= 0 ? (this._startVScrollbarIndex + 1) : false;
|
@@ -35743,7 +35867,13 @@ Core.prototype.getConfigObject = function (gridOptions) {
|
|
35743
35867
|
if(this._rowScrollingStep) {
|
35744
35868
|
obj["stepScroll"] = (this._rowScrollingStep === 1) ? true : this._rowScrollingStep;
|
35745
35869
|
}
|
35746
|
-
|
35870
|
+
|
35871
|
+
var val = this._vscrollbar.getAutoHide();
|
35872
|
+
if(val !== true) {
|
35873
|
+
// TODO: check this._hscrollbar and this._vscrollbar can be difference config
|
35874
|
+
obj["autoHideScrollbar"] = val; // this._hscrollbar has the same settings
|
35875
|
+
}
|
35876
|
+
|
35747
35877
|
var wheelSpeed = this._vscrollbar.getMouseWheelSpeed();
|
35748
35878
|
if(wheelSpeed) {
|
35749
35879
|
obj["linearWheelScrolling"] = wheelSpeed;
|
@@ -38716,6 +38846,14 @@ Core.prototype.enableRowVirtualization = function (opt_enabled) {
|
|
38716
38846
|
this._rowVirtualizer.deactivate();
|
38717
38847
|
}
|
38718
38848
|
};
|
38849
|
+
|
38850
|
+
/** @public
|
38851
|
+
* @return {boolean}
|
38852
|
+
*/
|
38853
|
+
Core.prototype.isRowVirtualizationEnabled = function () {
|
38854
|
+
return this._rowVirtualizer.isEnabled();
|
38855
|
+
};
|
38856
|
+
|
38719
38857
|
/** No runtime support
|
38720
38858
|
* @public
|
38721
38859
|
* @param {boolean=} opt_enabled
|
@@ -38730,6 +38868,13 @@ Core.prototype.enableColumnVirtualization = function (opt_enabled) {
|
|
38730
38868
|
}
|
38731
38869
|
};
|
38732
38870
|
|
38871
|
+
/** @public
|
38872
|
+
* @return {boolean}
|
38873
|
+
*/
|
38874
|
+
Core.prototype.isColumnVirtualizationEnabled = function () {
|
38875
|
+
return this._colVirtualizer.isEnabled();
|
38876
|
+
};
|
38877
|
+
|
38733
38878
|
/** 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
38879
|
* then the actual scrolling step for vertical scrollbar will be (32 * 2) = 64 pixels
|
38735
38880
|
* @public
|
@@ -40746,7 +40891,7 @@ StyleLoader.chainIcon = '';
|
|
40746
40891
|
/** @type {string}
|
40747
40892
|
* @public
|
40748
40893
|
*/
|
40749
|
-
StyleLoader.styles = Object(Util["
|
40894
|
+
StyleLoader.styles = Object(Util["i" /* prettifyCss */])([
|
40750
40895
|
".tr-grid .chain-icon", [
|
40751
40896
|
"cursor: pointer;"
|
40752
40897
|
],
|
@@ -40769,7 +40914,7 @@ StyleLoader.styles = Object(Util["g" /* prettifyCss */])([
|
|
40769
40914
|
StyleLoader.applyStyle = function (grid) {
|
40770
40915
|
if (grid && !grid._rowGroupingStyles) { // TODO: Support run-time theme loading
|
40771
40916
|
grid._rowGroupingStyles = true; // Prevent loading the same style twice
|
40772
|
-
Object(Util["
|
40917
|
+
Object(Util["e" /* injectCss */])(StyleLoader.styles, grid.getElement());
|
40773
40918
|
}
|
40774
40919
|
};
|
40775
40920
|
|
@@ -41107,7 +41252,7 @@ DataConnector.prototype.getRowDefByRic = function (ric) {
|
|
41107
41252
|
* @return {boolean} True if new reference is added.
|
41108
41253
|
*/
|
41109
41254
|
DataConnector.prototype.addRic = function (rowDef) {
|
41110
|
-
var ric = rowDef ? rowDef.
|
41255
|
+
var ric = rowDef ? rowDef.getSymbol() : "";
|
41111
41256
|
if(!ric) {
|
41112
41257
|
return false;
|
41113
41258
|
}
|
@@ -41135,7 +41280,8 @@ DataConnector.prototype.addRic = function (rowDef) {
|
|
41135
41280
|
*/
|
41136
41281
|
DataConnector.prototype.removeRic = function (rowDef, ric) {
|
41137
41282
|
if(!ric) {
|
41138
|
-
|
41283
|
+
// TODO: RIC or permId maybe change during run-time, need to check before remove RIC/permId
|
41284
|
+
ric = rowDef ? rowDef.getSymbol() : "";
|
41139
41285
|
}
|
41140
41286
|
if(!ric) {
|
41141
41287
|
return;
|
@@ -41442,6 +41588,7 @@ RowDefSorter.prototype._rowDefSorter = function(rowDefA, rowDefB, order) {
|
|
41442
41588
|
|
41443
41589
|
|
41444
41590
|
|
41591
|
+
|
41445
41592
|
/* eslint-enable */
|
41446
41593
|
|
41447
41594
|
/** Fired when user click and before the sorting operation.
|
@@ -41901,7 +42048,10 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
|
|
41901
42048
|
}
|
41902
42049
|
field = opt["field"];
|
41903
42050
|
if (field) {
|
41904
|
-
col["
|
42051
|
+
if(col["field"] !== field) {
|
42052
|
+
col["sortBy"] = field;
|
42053
|
+
} // else The default value is an empty sortBy, which refers to the same column field by default.
|
42054
|
+
|
41905
42055
|
if (this._sortingSequenceMap && this._sortingSequenceMap[field]) {
|
41906
42056
|
col["sortingSequence"] = this._sortingSequenceMap[field];
|
41907
42057
|
}
|
@@ -41914,16 +42064,32 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
|
|
41914
42064
|
extOptions = obj["sorting"] = {};
|
41915
42065
|
}
|
41916
42066
|
|
41917
|
-
|
41918
|
-
|
42067
|
+
var val = this.getSortedColumns();
|
42068
|
+
if(val != null) {
|
42069
|
+
extOptions["initialSort"] = val;
|
42070
|
+
}
|
42071
|
+
|
42072
|
+
val = this._sortableIndicator;
|
42073
|
+
if(val !== false) {
|
42074
|
+
extOptions["sortableIndicator"] = val;
|
42075
|
+
}
|
42076
|
+
|
41919
42077
|
if(this._maxCount !== 1) {
|
41920
42078
|
extOptions["multiColumn"] = this._maxCount === -1 ? true : this._maxCount;
|
41921
42079
|
}
|
41922
42080
|
if(this._dblClickAllowed) {
|
41923
42081
|
extOptions["disableDoubleClickToSort"] = !this._dblClickAllowed;
|
41924
42082
|
}
|
41925
|
-
|
41926
|
-
|
42083
|
+
|
42084
|
+
val = this._sortableColumns;
|
42085
|
+
if(val !== true) {
|
42086
|
+
extOptions["sortableColumns"] = val;
|
42087
|
+
}
|
42088
|
+
|
42089
|
+
val = this._dataSorting;
|
42090
|
+
if(val !== true) {
|
42091
|
+
extOptions["indicatorOnly"] = val;
|
42092
|
+
}
|
41927
42093
|
// extOptions["mode"] = this._mode;
|
41928
42094
|
if(this._disabled) {
|
41929
42095
|
extOptions["disabled"] = true;
|
@@ -41940,6 +42106,10 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
|
|
41940
42106
|
extOptions["sortingSequence"] = sortingSeq.slice();
|
41941
42107
|
}
|
41942
42108
|
|
42109
|
+
if(Object(Util["f" /* isEmptyObject */])(obj["sorting"])) {
|
42110
|
+
delete obj["sorting"];
|
42111
|
+
}
|
42112
|
+
|
41943
42113
|
return obj;
|
41944
42114
|
};
|
41945
42115
|
|
@@ -44220,7 +44390,7 @@ Grid.prototype.initialize = function(gridOption) {
|
|
44220
44390
|
if(rows[n]["values"]) { // merge row's values, values can be object or array
|
44221
44391
|
values = Object(Util["a" /* arrayToObject */])(rows[n]["values"], fields);
|
44222
44392
|
data = Object(Util["a" /* arrayToObject */])(ary[n], fields);
|
44223
|
-
rows[n]["values"] = Object(Util["
|
44393
|
+
rows[n]["values"] = Object(Util["d" /* extendObject */])(values, data);
|
44224
44394
|
} else {
|
44225
44395
|
rows[n]["values"] = ary[n];
|
44226
44396
|
}
|
@@ -44282,6 +44452,28 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
44282
44452
|
grid.getConfigObject(obj);
|
44283
44453
|
}
|
44284
44454
|
|
44455
|
+
// Difference from composite grid in default config
|
44456
|
+
if(obj["columnVirtualization"] === false) {
|
44457
|
+
delete obj["columnVirtualization"];
|
44458
|
+
}
|
44459
|
+
|
44460
|
+
if(obj["rowVirtualization"] === true) {
|
44461
|
+
delete obj["rowVirtualization"];
|
44462
|
+
}
|
44463
|
+
|
44464
|
+
if(obj["rowHighlighting"] === true) {
|
44465
|
+
delete obj["rowHighlighting"];
|
44466
|
+
}
|
44467
|
+
|
44468
|
+
if(obj["contentVerticalLines"] === false) { // the default value change in wrapper (atlas-blotter)
|
44469
|
+
delete obj["contentVerticalLines"];
|
44470
|
+
}
|
44471
|
+
|
44472
|
+
if(obj["borders"] === false) { // the default value change in wrapper (atlas-blotter)
|
44473
|
+
delete obj["borders"];
|
44474
|
+
}
|
44475
|
+
|
44476
|
+
|
44285
44477
|
var i, len;
|
44286
44478
|
len = this.getColumnCount();
|
44287
44479
|
for (i = 0; i < len; ++i) {
|
@@ -44306,12 +44498,12 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
44306
44498
|
}
|
44307
44499
|
|
44308
44500
|
val = grid.getDefaultRowHeight();
|
44309
|
-
if(val !==
|
44501
|
+
if(val !== 28) { // the default value change in wrapper (atlas-blotter)
|
44310
44502
|
obj["rowHeight"] = val;
|
44311
44503
|
}
|
44312
44504
|
|
44313
44505
|
val = grid.getSection("title").getDefaultRowHeight();
|
44314
|
-
if(val !==
|
44506
|
+
if(val !== 28) { // the default value change in wrapper (atlas-blotter)
|
44315
44507
|
obj["headerRowHeight"] = val;
|
44316
44508
|
}
|
44317
44509
|
|
@@ -44319,7 +44511,8 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
44319
44511
|
obj["autoLayoutUpdate"] = true;
|
44320
44512
|
}
|
44321
44513
|
|
44322
|
-
|
44514
|
+
val = Object(Util["f" /* isEmptyObject */])(this._defaultColumnOptions);
|
44515
|
+
if (!val) { // Currently, this variable is the object, we need to check empty array for default value
|
44323
44516
|
obj["defaultColumnOptions"] = this._defaultColumnOptions;
|
44324
44517
|
}
|
44325
44518
|
|
@@ -44378,10 +44571,13 @@ Grid.prototype.getConfigObject = function (gridOptions) {
|
|
44378
44571
|
}
|
44379
44572
|
|
44380
44573
|
// TODO: The following states need to be retrieved
|
44381
|
-
// rowHighlighting
|
44382
|
-
// columnVirtualization
|
44383
44574
|
// topFreezingCount, bottomFreezingCount
|
44384
44575
|
// scrollbarParent
|
44576
|
+
// linearWheelScrolling
|
44577
|
+
// stepScroll
|
44578
|
+
// noColumnDragging
|
44579
|
+
// columnReorder
|
44580
|
+
// topSection
|
44385
44581
|
|
44386
44582
|
// NOTE: no need to export synapseApiKey, ADC and RTK
|
44387
44583
|
|
@@ -44457,7 +44653,7 @@ Grid.prototype._onRicAdded = function(e) {
|
|
44457
44653
|
var jLen = rowDefs ? rowDefs.length : 0;
|
44458
44654
|
for (var j = 0; j < jLen; ++j) {
|
44459
44655
|
var rowDef = rowDefs[j];
|
44460
|
-
if (rowDef.
|
44656
|
+
if (rowDef.getSymbol() === ric) {
|
44461
44657
|
this._snapshot.addRic(ric); // ADC
|
44462
44658
|
}
|
44463
44659
|
}
|
@@ -44482,7 +44678,7 @@ Grid.prototype._onFieldAdded = function(e) {
|
|
44482
44678
|
|
44483
44679
|
// ADC
|
44484
44680
|
for (var i in rowDefs) {
|
44485
|
-
this._snapshot.addRic(rowDefs[i].
|
44681
|
+
this._snapshot.addRic(rowDefs[i].getSymbol());
|
44486
44682
|
}
|
44487
44683
|
this._snapshot.addFields(addedFields);
|
44488
44684
|
|
@@ -44676,7 +44872,7 @@ Grid.prototype.replaceColumn = function (columnOption, colRef) {
|
|
44676
44872
|
colConfig["width"] = value;
|
44677
44873
|
|
44678
44874
|
value = core.getMinimumColumnWidth(colIndex);
|
44679
|
-
if(value
|
44875
|
+
if(value > 0) {
|
44680
44876
|
colConfig["minWidth"] = value;
|
44681
44877
|
}
|
44682
44878
|
|
@@ -44830,6 +45026,79 @@ Grid.prototype.setColumns = function(columns) {
|
|
44830
45026
|
}
|
44831
45027
|
}
|
44832
45028
|
};
|
45029
|
+
|
45030
|
+
|
45031
|
+
/** Remove, add and keep column based on the given column data
|
45032
|
+
* @public
|
45033
|
+
* @param {Array.<Object>} columns Array of column options
|
45034
|
+
*/
|
45035
|
+
Grid.prototype.restoreColumns = function(columns) {
|
45036
|
+
var configObj = this.getConfigObject();
|
45037
|
+
var previousColumns = configObj.columns;
|
45038
|
+
|
45039
|
+
var preColLen = previousColumns.length;
|
45040
|
+
var newColLen = columns.length;
|
45041
|
+
|
45042
|
+
var removingFields = [];
|
45043
|
+
var keepingColumns = [];
|
45044
|
+
var columnOrdering = [];
|
45045
|
+
|
45046
|
+
var i, j, found;
|
45047
|
+
// Slow, time complexity BigO(n ^ 2)
|
45048
|
+
for (i = 0; i < preColLen; i++) {
|
45049
|
+
found = false;
|
45050
|
+
for (j = 0; j < newColLen; j++) {
|
45051
|
+
if (Object(Util["c" /* deepEqual */])(previousColumns[i], columns[j])) {
|
45052
|
+
keepingColumns.push(previousColumns[i]);
|
45053
|
+
found = true;
|
45054
|
+
break;
|
45055
|
+
}
|
45056
|
+
}
|
45057
|
+
if (!found) {
|
45058
|
+
removingFields.push(previousColumns[i].field);
|
45059
|
+
}
|
45060
|
+
}
|
45061
|
+
|
45062
|
+
var sortingStates;
|
45063
|
+
var removeLen = removingFields.length;
|
45064
|
+
if(removeLen > 0 && this._stp) {
|
45065
|
+
sortingStates = this._stp.getSortingStates().slice(); // We need to clone array for avoid object reference in remove column
|
45066
|
+
}
|
45067
|
+
|
45068
|
+
this.removeColumns(removingFields);
|
45069
|
+
|
45070
|
+
var keepingLen = keepingColumns.length;
|
45071
|
+
var prevState = false;
|
45072
|
+
if(newColLen > 1) {
|
45073
|
+
prevState = this._grid.freezeLayout(true); // Insert multiple columns can be a huge time consuming
|
45074
|
+
}
|
45075
|
+
for (i = 0; i < newColLen; i++) {
|
45076
|
+
found = false;
|
45077
|
+
for (j = 0; j < keepingLen; j++) { // loop only keeping column
|
45078
|
+
if (Object(Util["c" /* deepEqual */])(columns[i], keepingColumns[j])) {
|
45079
|
+
found = true;
|
45080
|
+
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.
|
45081
|
+
columnOrdering.push(this.getColumnId(colIndex));
|
45082
|
+
break;
|
45083
|
+
}
|
45084
|
+
}
|
45085
|
+
if (!found) {
|
45086
|
+
this.insertColumn(columns[i], i);
|
45087
|
+
columnOrdering.push(this.getColumnId(i)); // Use new insertion column index
|
45088
|
+
}
|
45089
|
+
}
|
45090
|
+
|
45091
|
+
if(newColLen > 1) {
|
45092
|
+
this._grid.freezeLayout(prevState);
|
45093
|
+
}
|
45094
|
+
|
45095
|
+
if(removeLen > 0 && this._stp) {
|
45096
|
+
this._stp.sortColumns(sortingStates);
|
45097
|
+
}
|
45098
|
+
|
45099
|
+
this._grid.reorderColumns(columnOrdering);
|
45100
|
+
};
|
45101
|
+
|
44833
45102
|
/** Remove all existing columns and add new columns based on the given texts/fields
|
44834
45103
|
* @public
|
44835
45104
|
* @function
|
@@ -44974,10 +45243,11 @@ Grid.prototype.removeColumn = function(colRef) {
|
|
44974
45243
|
this._dc.removeStaticFields([colDef.getField()]);
|
44975
45244
|
}
|
44976
45245
|
}
|
44977
|
-
colDef.dispose();
|
44978
|
-
this._grid.removeColumnAt(colIndex);
|
44979
45246
|
|
45247
|
+
this._grid.removeColumnAt(colIndex);
|
44980
45248
|
this._connector.removeFields(colDef);
|
45249
|
+
|
45250
|
+
colDef.dispose(); // Dispose at the last line to avoid making properties inaccessible
|
44981
45251
|
// TODO: Remove fields that are related to the column (e.g. fields for coloring)
|
44982
45252
|
};
|
44983
45253
|
/** Remove multiple columns through array. To remove all columns, use removeAllColumns() instead of this method
|
@@ -45323,7 +45593,7 @@ Grid.prototype.setColumnSorter = function(colRef, func) {
|
|
45323
45593
|
* @param {RowDefinition} rowDef
|
45324
45594
|
*/
|
45325
45595
|
Grid.prototype._initDuplicateRicData = function(rowDef) {
|
45326
|
-
var ric = rowDef.
|
45596
|
+
var ric = rowDef.getSymbol();
|
45327
45597
|
var rowDefs = this._connector.getRowDefByRic(ric);
|
45328
45598
|
if(rowDefs && rowDefs.length) {
|
45329
45599
|
cloneRowData(rowDefs[0], rowDef);
|
@@ -45740,8 +46010,9 @@ Grid.prototype.setRic = function(rowRef, str, options) {
|
|
45740
46010
|
this.insertRow(options, rowIndex);
|
45741
46011
|
}
|
45742
46012
|
} else {
|
45743
|
-
var oldRic = rowDef.
|
45744
|
-
|
46013
|
+
var oldRic = rowDef.getSymbol();
|
46014
|
+
var permId = options["permId"] || "";
|
46015
|
+
if(rowDef.setContent(str, permId)) { // The given string may not be a RIC
|
45745
46016
|
this._connector.removeRic(rowDef, oldRic);
|
45746
46017
|
this._initDuplicateRicData(rowDef);
|
45747
46018
|
this._connector.addRic(rowDef);
|
@@ -46062,7 +46333,7 @@ Grid.prototype.setRicData = function(ric, values) {
|
|
46062
46333
|
var rowCount = rowDefs ? rowDefs.length : 0;
|
46063
46334
|
for (var i = 0; i < rowCount; ++i) {
|
46064
46335
|
var rowDef = rowDefs[i];
|
46065
|
-
if (rowDef && rowDef.
|
46336
|
+
if (rowDef && rowDef.getSymbol() === ric) {
|
46066
46337
|
rowDef.setRowData(values); // TODO: Need conflator to improve performance
|
46067
46338
|
}
|
46068
46339
|
}
|
@@ -49979,7 +50250,7 @@ CellPainter.themeReady = null;
|
|
49979
50250
|
* var fn = CellPainter.parse("[CF_BID] >= 10 && [CF_BID] <= 100");
|
49980
50251
|
* window.console.log(fn(25));
|
49981
50252
|
*/
|
49982
|
-
CellPainter.parse = Util["
|
50253
|
+
CellPainter.parse = Util["h" /* parseCondition */];
|
49983
50254
|
|
49984
50255
|
|
49985
50256
|
/** @public */
|
@@ -50077,25 +50348,17 @@ CellPainter.prototype.clearHeatMap = function() {
|
|
50077
50348
|
/** @public */
|
50078
50349
|
CellPainter.prototype.applyThemeColor = function() {
|
50079
50350
|
var colors = ElfUtil.getColors();
|
50080
|
-
|
50081
|
-
|
50082
|
-
if(
|
50351
|
+
if(this._coloringType === CellPainter.ColoringTypes.HEATMAP) { // Heatmap uses grid color to blend the result color
|
50352
|
+
var cond = this._conditions[0]; // Heatmap, color text condition must be the first
|
50353
|
+
if(cond) {
|
50083
50354
|
if(cond["textMode"]) {
|
50084
50355
|
cond["baseColor"] = colors["baseText"];
|
50085
50356
|
} else {
|
50086
50357
|
cond["baseColor"] = colors["baseGrid"];
|
50087
50358
|
}
|
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
|
-
}
|
50359
|
+
if(cond["useThemeColor"]) {
|
50360
|
+
var up = colors["up"];
|
50361
|
+
var down = colors["down"];
|
50099
50362
|
var level = (colors["level"] === colors["baseText"]) ? "" : colors["level"];
|
50100
50363
|
CellPainter._setUpDownColors(cond, up, down, level);
|
50101
50364
|
}
|
@@ -50214,34 +50477,36 @@ CellPainter.prototype.addHeatmapWithTheme = function(field, midPoint, opt_textMo
|
|
50214
50477
|
/** @private
|
50215
50478
|
* @param {Function} expression
|
50216
50479
|
* @param {string} field
|
50217
|
-
* @param {string}
|
50218
|
-
* @param {string}
|
50219
|
-
* @param {string}
|
50480
|
+
* @param {string=} upClass CSS class name
|
50481
|
+
* @param {string=} downClass CSS class name
|
50482
|
+
* @param {string=} levelClass CSS class name
|
50220
50483
|
* @return {!Object}
|
50221
50484
|
*/
|
50222
|
-
CellPainter.prototype._addColorText = function(expression, field,
|
50485
|
+
CellPainter.prototype._addColorText = function(expression, field, upClass, downClass, levelClass) {
|
50223
50486
|
this._setColoringType(CellPainter.ColoringTypes.TEXT);
|
50224
50487
|
|
50225
50488
|
var condition = {};
|
50226
50489
|
condition["field"] = field;
|
50227
50490
|
condition["expression"] = expression.bind(null, field);
|
50228
|
-
|
50491
|
+
condition["upClass"] = upClass;
|
50492
|
+
condition["downClass"] = downClass;
|
50493
|
+
condition["levelClass"] = levelClass;
|
50229
50494
|
|
50230
50495
|
this._addCondition(condition);
|
50231
50496
|
return condition;
|
50232
50497
|
};
|
50233
50498
|
/** @public
|
50234
50499
|
* @param {string} field
|
50235
|
-
* @param {string}
|
50236
|
-
* @param {string}
|
50237
|
-
* @param {string}
|
50500
|
+
* @param {string=} upClass CSS class name
|
50501
|
+
* @param {string=} downClass CSS class name
|
50502
|
+
* @param {string=} levelClass CSS class name
|
50238
50503
|
* @return {!Object}
|
50239
50504
|
*/
|
50240
|
-
CellPainter.prototype.addColorText = function(field,
|
50505
|
+
CellPainter.prototype.addColorText = function(field, upClass, downClass, levelClass) {
|
50241
50506
|
return this._addColorText(
|
50242
50507
|
TickFields[field] ? CellPainter._tickColorTextCondition : CellPainter._colorTextCondition,
|
50243
50508
|
field,
|
50244
|
-
|
50509
|
+
upClass, downClass, levelClass
|
50245
50510
|
);
|
50246
50511
|
};
|
50247
50512
|
/** @public
|
@@ -50249,14 +50514,7 @@ CellPainter.prototype.addColorText = function(field, upColor, downColor, levelCo
|
|
50249
50514
|
* @return {!Object}
|
50250
50515
|
*/
|
50251
50516
|
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;
|
50517
|
+
var condition = this.addColorText(field, "positive", "negative", "neutral");
|
50260
50518
|
return condition;
|
50261
50519
|
};
|
50262
50520
|
/** @public
|
@@ -50358,14 +50616,16 @@ CellPainter.prototype.renderForPrinting = function(cell, rowData, min, max) {
|
|
50358
50616
|
return;
|
50359
50617
|
}
|
50360
50618
|
var styles = this._getStyles(rowData, min, max);
|
50361
|
-
var cssClass = styles["cssClass"];
|
50362
|
-
if (cssClass) {
|
50363
|
-
if (
|
50364
|
-
|
50365
|
-
|
50619
|
+
var cssClass = styles["cssClass"]; // Can be an empty string
|
50620
|
+
if (cssClass != null) { // Predefined colors mode
|
50621
|
+
if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
|
50622
|
+
elem.classList.remove(elem._coloringCssClass);
|
50623
|
+
elem._coloringCssClass = null;
|
50624
|
+
}
|
50625
|
+
if (cssClass) {
|
50626
|
+
elem.classList.add(cssClass);
|
50627
|
+
elem._coloringCssClass = cssClass;
|
50366
50628
|
}
|
50367
|
-
cell.classList.add(cssClass);
|
50368
|
-
cell._coloringCssClass = cssClass;
|
50369
50629
|
} else {
|
50370
50630
|
if (cell._coloringCssClass) {
|
50371
50631
|
cell.classList.remove(cell._coloringCssClass);
|
@@ -50498,14 +50758,17 @@ CellPainter._cellRestorer = function(scope) {
|
|
50498
50758
|
}
|
50499
50759
|
|
50500
50760
|
var styles = this._getStyles(rowData, min, max);
|
50501
|
-
var cssClass = styles["cssClass"];
|
50502
|
-
if (cssClass) {
|
50761
|
+
var cssClass = styles["cssClass"]; // Can be an empty string
|
50762
|
+
if (cssClass != null) { // Predefined colors mode
|
50503
50763
|
if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
|
50504
50764
|
elem.classList.remove(elem._coloringCssClass);
|
50505
50765
|
elem._coloringCssClass = null;
|
50506
50766
|
}
|
50507
|
-
|
50508
|
-
|
50767
|
+
if (cssClass) {
|
50768
|
+
elem.classList.add(cssClass);
|
50769
|
+
elem._coloringCssClass = cssClass;
|
50770
|
+
}
|
50771
|
+
// Remove blinking color
|
50509
50772
|
elem.style.backgroundColor = "";
|
50510
50773
|
elem.style.color = "";
|
50511
50774
|
} else {
|
@@ -50560,13 +50823,14 @@ CellPainter.prototype._getStyles = function(rowData, min, max) {
|
|
50560
50823
|
}
|
50561
50824
|
} else if(this._coloringType === CellPainter.ColoringTypes.TEXT) {
|
50562
50825
|
if(ret > 0) {
|
50563
|
-
|
50826
|
+
curCond["cssClass"] = curCond["upClass"];
|
50564
50827
|
} else if(ret < 0) {
|
50565
|
-
|
50828
|
+
curCond["cssClass"] = curCond["downClass"];
|
50566
50829
|
} else {
|
50567
|
-
|
50830
|
+
curCond["cssClass"] = this._levelColorDisabled ? "" : curCond["levelClass"];
|
50568
50831
|
}
|
50569
|
-
|
50832
|
+
curCond["cssClass"] = curCond["cssClass"] || "";
|
50833
|
+
return curCond;
|
50570
50834
|
}
|
50571
50835
|
|
50572
50836
|
// Expected return value is {
|
@@ -50626,7 +50890,7 @@ CellPainter.blackAndWhite = function (triplet) {
|
|
50626
50890
|
* @param {string} rgbCode
|
50627
50891
|
* @return {string} resultColor E.g. "#10FF0D"
|
50628
50892
|
*/
|
50629
|
-
CellPainter.rgb2Hex = Util["
|
50893
|
+
CellPainter.rgb2Hex = Util["j" /* rgb2Hex */]; // For backward compatability
|
50630
50894
|
|
50631
50895
|
/** @public
|
50632
50896
|
* @function
|
@@ -50742,6 +51006,10 @@ CellPainter.clearCellStyle = function(cell, styles) {
|
|
50742
51006
|
// WARNING: Scope is not removed from the this._scopes collection to speed things up
|
50743
51007
|
}
|
50744
51008
|
|
51009
|
+
if(elem._coloringCssClass) {
|
51010
|
+
elem.classList.remove(elem._coloringCssClass);
|
51011
|
+
}
|
51012
|
+
|
50745
51013
|
styles = styles || CellPainter.supportedStyles;
|
50746
51014
|
for(var i = styles.length; --i >= 0;) {
|
50747
51015
|
elem.style[styles[i]] = ""; // WARNING: Very slow
|
@@ -50755,22 +51023,24 @@ CellPainter.clearCellStyle = function(cell, styles) {
|
|
50755
51023
|
* @param {boolean=} withContrast
|
50756
51024
|
*/
|
50757
51025
|
CellPainter._setUpDownColors = function(scp, upColor, downColor, levelColor, withContrast) {
|
51026
|
+
scp["upColor"] = upColor;
|
50758
51027
|
if(upColor != null) {
|
50759
|
-
scp["upColor"] = upColor;
|
50760
51028
|
if(withContrast) {
|
50761
51029
|
scp["contrastUpColor"] = CellPainter.getOppositeColor(upColor);
|
50762
51030
|
}
|
50763
51031
|
//scp["rgbUp"] = CellPainter.hex2Rgb(upColor);
|
50764
51032
|
}
|
51033
|
+
|
51034
|
+
scp["downColor"] = downColor;
|
50765
51035
|
if(downColor != null) {
|
50766
|
-
scp["downColor"] = downColor;
|
50767
51036
|
if(withContrast) {
|
50768
51037
|
scp["contrastDownColor"] = CellPainter.getOppositeColor(downColor);
|
50769
51038
|
}
|
50770
51039
|
//scp["rgbDown"] = CellPainter.hex2Rgb(downColor);
|
50771
51040
|
}
|
51041
|
+
|
51042
|
+
scp["levelColor"] = levelColor;
|
50772
51043
|
if(levelColor != null) {
|
50773
|
-
scp["levelColor"] = levelColor;
|
50774
51044
|
if(withContrast) {
|
50775
51045
|
scp["contrastLevelColor"] = CellPainter.getOppositeColor(levelColor);
|
50776
51046
|
}
|
@@ -50864,14 +51134,16 @@ CellPainter.prototype._paintCell = function(cell, rowData, min, max) {
|
|
50864
51134
|
}
|
50865
51135
|
|
50866
51136
|
var styles = this._getStyles(rowData, min, max);
|
50867
|
-
var cssClass = styles["cssClass"];
|
50868
|
-
if (cssClass) {
|
50869
|
-
if (elem._coloringCssClass !== cssClass) {
|
51137
|
+
var cssClass = styles["cssClass"]; // Can be an empty string
|
51138
|
+
if (cssClass != null) { // Predefined colors mode
|
51139
|
+
if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
|
50870
51140
|
elem.classList.remove(elem._coloringCssClass);
|
50871
51141
|
elem._coloringCssClass = null;
|
50872
51142
|
}
|
50873
|
-
|
50874
|
-
|
51143
|
+
if (cssClass) {
|
51144
|
+
elem.classList.add(cssClass);
|
51145
|
+
elem._coloringCssClass = cssClass;
|
51146
|
+
}
|
50875
51147
|
} else {
|
50876
51148
|
if (elem._coloringCssClass) {
|
50877
51149
|
elem.classList.remove(elem._coloringCssClass);
|