@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
@@ -237,25 +237,17 @@ CellPainter.prototype.clearHeatMap = function() {
|
|
237
237
|
/** @public */
|
238
238
|
CellPainter.prototype.applyThemeColor = function() {
|
239
239
|
var colors = ElfUtil.getColors();
|
240
|
-
|
241
|
-
|
242
|
-
if(
|
240
|
+
if(this._coloringType === CellPainter.ColoringTypes.HEATMAP) { // Heatmap uses grid color to blend the result color
|
241
|
+
var cond = this._conditions[0]; // Heatmap, color text condition must be the first
|
242
|
+
if(cond) {
|
243
243
|
if(cond["textMode"]) {
|
244
244
|
cond["baseColor"] = colors["baseText"];
|
245
245
|
} else {
|
246
246
|
cond["baseColor"] = colors["baseGrid"];
|
247
247
|
}
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
var up, down;
|
252
|
-
if(this._coloringType === CellPainter.ColoringTypes.TEXT && cond["field"] === "CF_TICK") {
|
253
|
-
up = colors["tickUp"];
|
254
|
-
down = colors["tickDown"];
|
255
|
-
} else {
|
256
|
-
up = colors["up"];
|
257
|
-
down = colors["down"];
|
258
|
-
}
|
248
|
+
if(cond["useThemeColor"]) {
|
249
|
+
var up = colors["up"];
|
250
|
+
var down = colors["down"];
|
259
251
|
var level = (colors["level"] === colors["baseText"]) ? "" : colors["level"];
|
260
252
|
CellPainter._setUpDownColors(cond, up, down, level);
|
261
253
|
}
|
@@ -374,34 +366,36 @@ CellPainter.prototype.addHeatmapWithTheme = function(field, midPoint, opt_textMo
|
|
374
366
|
/** @private
|
375
367
|
* @param {Function} expression
|
376
368
|
* @param {string} field
|
377
|
-
* @param {string}
|
378
|
-
* @param {string}
|
379
|
-
* @param {string}
|
369
|
+
* @param {string=} upClass CSS class name
|
370
|
+
* @param {string=} downClass CSS class name
|
371
|
+
* @param {string=} levelClass CSS class name
|
380
372
|
* @return {!Object}
|
381
373
|
*/
|
382
|
-
CellPainter.prototype._addColorText = function(expression, field,
|
374
|
+
CellPainter.prototype._addColorText = function(expression, field, upClass, downClass, levelClass) {
|
383
375
|
this._setColoringType(CellPainter.ColoringTypes.TEXT);
|
384
376
|
|
385
377
|
var condition = {};
|
386
378
|
condition["field"] = field;
|
387
379
|
condition["expression"] = expression.bind(null, field);
|
388
|
-
|
380
|
+
condition["upClass"] = upClass;
|
381
|
+
condition["downClass"] = downClass;
|
382
|
+
condition["levelClass"] = levelClass;
|
389
383
|
|
390
384
|
this._addCondition(condition);
|
391
385
|
return condition;
|
392
386
|
};
|
393
387
|
/** @public
|
394
388
|
* @param {string} field
|
395
|
-
* @param {string}
|
396
|
-
* @param {string}
|
397
|
-
* @param {string}
|
389
|
+
* @param {string=} upClass CSS class name
|
390
|
+
* @param {string=} downClass CSS class name
|
391
|
+
* @param {string=} levelClass CSS class name
|
398
392
|
* @return {!Object}
|
399
393
|
*/
|
400
|
-
CellPainter.prototype.addColorText = function(field,
|
394
|
+
CellPainter.prototype.addColorText = function(field, upClass, downClass, levelClass) {
|
401
395
|
return this._addColorText(
|
402
396
|
TickFields[field] ? CellPainter._tickColorTextCondition : CellPainter._colorTextCondition,
|
403
397
|
field,
|
404
|
-
|
398
|
+
upClass, downClass, levelClass
|
405
399
|
);
|
406
400
|
};
|
407
401
|
/** @public
|
@@ -409,14 +403,7 @@ CellPainter.prototype.addColorText = function(field, upColor, downColor, levelCo
|
|
409
403
|
* @return {!Object}
|
410
404
|
*/
|
411
405
|
CellPainter.prototype.addColorTextWithTheme = function(field) {
|
412
|
-
var
|
413
|
-
var condition = this.addColorText(field,
|
414
|
-
colors["up"],
|
415
|
-
colors["down"],
|
416
|
-
(colors["level"] === colors["baseText"]) ? "" : colors["level"]
|
417
|
-
);
|
418
|
-
|
419
|
-
condition["useThemeColor"] = true;
|
406
|
+
var condition = this.addColorText(field, "positive", "negative", "neutral");
|
420
407
|
return condition;
|
421
408
|
};
|
422
409
|
/** @public
|
@@ -518,14 +505,16 @@ CellPainter.prototype.renderForPrinting = function(cell, rowData, min, max) {
|
|
518
505
|
return;
|
519
506
|
}
|
520
507
|
var styles = this._getStyles(rowData, min, max);
|
521
|
-
var cssClass = styles["cssClass"];
|
522
|
-
if (cssClass) {
|
523
|
-
if (
|
524
|
-
|
525
|
-
|
508
|
+
var cssClass = styles["cssClass"]; // Can be an empty string
|
509
|
+
if (cssClass != null) { // Predefined colors mode
|
510
|
+
if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
|
511
|
+
elem.classList.remove(elem._coloringCssClass);
|
512
|
+
elem._coloringCssClass = null;
|
513
|
+
}
|
514
|
+
if (cssClass) {
|
515
|
+
elem.classList.add(cssClass);
|
516
|
+
elem._coloringCssClass = cssClass;
|
526
517
|
}
|
527
|
-
cell.classList.add(cssClass);
|
528
|
-
cell._coloringCssClass = cssClass;
|
529
518
|
} else {
|
530
519
|
if (cell._coloringCssClass) {
|
531
520
|
cell.classList.remove(cell._coloringCssClass);
|
@@ -658,14 +647,17 @@ CellPainter._cellRestorer = function(scope) {
|
|
658
647
|
}
|
659
648
|
|
660
649
|
var styles = this._getStyles(rowData, min, max);
|
661
|
-
var cssClass = styles["cssClass"];
|
662
|
-
if (cssClass) {
|
650
|
+
var cssClass = styles["cssClass"]; // Can be an empty string
|
651
|
+
if (cssClass != null) { // Predefined colors mode
|
663
652
|
if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
|
664
653
|
elem.classList.remove(elem._coloringCssClass);
|
665
654
|
elem._coloringCssClass = null;
|
666
655
|
}
|
667
|
-
|
668
|
-
|
656
|
+
if (cssClass) {
|
657
|
+
elem.classList.add(cssClass);
|
658
|
+
elem._coloringCssClass = cssClass;
|
659
|
+
}
|
660
|
+
// Remove blinking color
|
669
661
|
elem.style.backgroundColor = "";
|
670
662
|
elem.style.color = "";
|
671
663
|
} else {
|
@@ -720,13 +712,14 @@ CellPainter.prototype._getStyles = function(rowData, min, max) {
|
|
720
712
|
}
|
721
713
|
} else if(this._coloringType === CellPainter.ColoringTypes.TEXT) {
|
722
714
|
if(ret > 0) {
|
723
|
-
|
715
|
+
curCond["cssClass"] = curCond["upClass"];
|
724
716
|
} else if(ret < 0) {
|
725
|
-
|
717
|
+
curCond["cssClass"] = curCond["downClass"];
|
726
718
|
} else {
|
727
|
-
|
719
|
+
curCond["cssClass"] = this._levelColorDisabled ? "" : curCond["levelClass"];
|
728
720
|
}
|
729
|
-
|
721
|
+
curCond["cssClass"] = curCond["cssClass"] || "";
|
722
|
+
return curCond;
|
730
723
|
}
|
731
724
|
|
732
725
|
// Expected return value is {
|
@@ -902,6 +895,10 @@ CellPainter.clearCellStyle = function(cell, styles) {
|
|
902
895
|
// WARNING: Scope is not removed from the this._scopes collection to speed things up
|
903
896
|
}
|
904
897
|
|
898
|
+
if(elem._coloringCssClass) {
|
899
|
+
elem.classList.remove(elem._coloringCssClass);
|
900
|
+
}
|
901
|
+
|
905
902
|
styles = styles || CellPainter.supportedStyles;
|
906
903
|
for(var i = styles.length; --i >= 0;) {
|
907
904
|
elem.style[styles[i]] = ""; // WARNING: Very slow
|
@@ -915,22 +912,24 @@ CellPainter.clearCellStyle = function(cell, styles) {
|
|
915
912
|
* @param {boolean=} withContrast
|
916
913
|
*/
|
917
914
|
CellPainter._setUpDownColors = function(scp, upColor, downColor, levelColor, withContrast) {
|
915
|
+
scp["upColor"] = upColor;
|
918
916
|
if(upColor != null) {
|
919
|
-
scp["upColor"] = upColor;
|
920
917
|
if(withContrast) {
|
921
918
|
scp["contrastUpColor"] = CellPainter.getOppositeColor(upColor);
|
922
919
|
}
|
923
920
|
//scp["rgbUp"] = CellPainter.hex2Rgb(upColor);
|
924
921
|
}
|
922
|
+
|
923
|
+
scp["downColor"] = downColor;
|
925
924
|
if(downColor != null) {
|
926
|
-
scp["downColor"] = downColor;
|
927
925
|
if(withContrast) {
|
928
926
|
scp["contrastDownColor"] = CellPainter.getOppositeColor(downColor);
|
929
927
|
}
|
930
928
|
//scp["rgbDown"] = CellPainter.hex2Rgb(downColor);
|
931
929
|
}
|
930
|
+
|
931
|
+
scp["levelColor"] = levelColor;
|
932
932
|
if(levelColor != null) {
|
933
|
-
scp["levelColor"] = levelColor;
|
934
933
|
if(withContrast) {
|
935
934
|
scp["contrastLevelColor"] = CellPainter.getOppositeColor(levelColor);
|
936
935
|
}
|
@@ -1024,14 +1023,16 @@ CellPainter.prototype._paintCell = function(cell, rowData, min, max) {
|
|
1024
1023
|
}
|
1025
1024
|
|
1026
1025
|
var styles = this._getStyles(rowData, min, max);
|
1027
|
-
var cssClass = styles["cssClass"];
|
1028
|
-
if (cssClass) {
|
1029
|
-
if (elem._coloringCssClass !== cssClass) {
|
1026
|
+
var cssClass = styles["cssClass"]; // Can be an empty string
|
1027
|
+
if (cssClass != null) { // Predefined colors mode
|
1028
|
+
if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
|
1030
1029
|
elem.classList.remove(elem._coloringCssClass);
|
1031
1030
|
elem._coloringCssClass = null;
|
1032
1031
|
}
|
1033
|
-
|
1034
|
-
|
1032
|
+
if (cssClass) {
|
1033
|
+
elem.classList.add(cssClass);
|
1034
|
+
elem._coloringCssClass = cssClass;
|
1035
|
+
}
|
1035
1036
|
} else {
|
1036
1037
|
if (elem._coloringCssClass) {
|
1037
1038
|
elem.classList.remove(elem._coloringCssClass);
|
@@ -62,8 +62,9 @@ DragUI.applyThemeColor = function(grid) {
|
|
62
62
|
*/
|
63
63
|
DragUI.prototype.onThemeLoaded = function(colors) {
|
64
64
|
if(!DragUI._styles) {
|
65
|
+
var ElfVersion = ElfUtil.getElfVersion();
|
65
66
|
var cursor = "grabbing";
|
66
|
-
if (
|
67
|
+
if (ElfVersion < 3) {
|
67
68
|
cursor = "move";
|
68
69
|
}
|
69
70
|
var styles = [ // Main Styles without theme
|
@@ -135,7 +136,8 @@ DragUI.prototype.onThemeLoaded = function(colors) {
|
|
135
136
|
"--grid-insertion-icon-bgcolor: #39c46e;",
|
136
137
|
"--grid-insertion-icon-color: #1A1A1A;",
|
137
138
|
"--grid-void-icon-bgcolor: #F5475B;",
|
138
|
-
"--grid-void-icon-color: #FFFFFF;"
|
139
|
+
"--grid-void-icon-color: #FFFFFF;",
|
140
|
+
"--grid-title-icon-color: var(--grid-guideline-color);" // v3 fallback
|
139
141
|
],
|
140
142
|
".mouse-dragging .cell:hover", [ // for change mouse cursor when hover header while dragging
|
141
143
|
"cursor: " + cursor + " !important;"
|
@@ -149,10 +151,12 @@ DragUI.prototype.onThemeLoaded = function(colors) {
|
|
149
151
|
".tr-dragging, .tr-dragging *", [
|
150
152
|
"-webkit-touch-callout: none;",
|
151
153
|
".user-select(none);"
|
154
|
+
],
|
155
|
+
".tr-dragbox", [
|
156
|
+
"background-color: unset;" // v3 fallback
|
152
157
|
]
|
153
158
|
];
|
154
159
|
var guidelineColor = "#ff9933";
|
155
|
-
var ElfVersion = ElfUtil.getElfVersion();
|
156
160
|
if(colors.primary) {
|
157
161
|
guidelineColor = colors.primary;
|
158
162
|
}
|
@@ -189,8 +189,12 @@ FieldFormatter.prototype.getOptions = function(options) { // serialize
|
|
189
189
|
options["field"] = this._field;
|
190
190
|
options["formatType"] = this._userFormatType ? this._userFormatType : this._formatType; // WARNING: Beware of case sensitivity
|
191
191
|
if(toDateTimeType(options["formatType"]) == DATE_TIME){
|
192
|
-
|
193
|
-
|
192
|
+
if(this._dateTimeFormat !== "") {
|
193
|
+
options["dateTimeFormat"] = this._dateTimeFormat;
|
194
|
+
}
|
195
|
+
if(this._timeZone !== "GMT") {
|
196
|
+
options["useUTCTime"] = false;
|
197
|
+
} // useUTCTime by default, otherwise is use local
|
194
198
|
}
|
195
199
|
return options;
|
196
200
|
};
|
@@ -242,25 +242,37 @@ NumberFormatter.prototype.getOptions = function(options) { // serialize
|
|
242
242
|
|
243
243
|
var formatType = options["formatType"];
|
244
244
|
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
245
|
+
if(this._precisionEnabled !== true) {
|
246
|
+
options["precisionEnabled"] = this._precisionEnabled; // Default in init
|
247
|
+
}
|
248
|
+
|
249
|
+
if(this._precision !== 2) {
|
250
|
+
options["decimalPlaces"] = this._precision;
|
251
|
+
}
|
252
|
+
|
253
|
+
if(this._plusSignEnabled !== false) {
|
254
|
+
options["plusSign"] = this._plusSignEnabled;
|
255
|
+
}
|
256
|
+
|
257
|
+
if(this._separatorEnabled !== false) {
|
258
|
+
options["separator"] = this._separatorEnabled;
|
259
|
+
}
|
249
260
|
|
250
261
|
if(formatType === "scaled" || formatType === "scaledvalue") {
|
251
262
|
var su = "";
|
252
263
|
if(this._scaler == "b") {
|
253
264
|
su = "billion";
|
254
|
-
|
255
|
-
|
256
|
-
}
|
257
|
-
options["scalingUnit"] = su;
|
265
|
+
options["scalingUnit"] = su;
|
266
|
+
} // We didn't return default value (million) for clean up getConfigObject
|
258
267
|
}
|
259
268
|
|
260
269
|
if(formatType === "percent") {
|
261
|
-
|
262
|
-
|
263
|
-
|
270
|
+
if(this._percentSignEnabled !== true) {
|
271
|
+
options["percentSign"] = this._percentSignEnabled;
|
272
|
+
}
|
273
|
+
if(this._multiplyBy100Enabled !== false) {
|
274
|
+
options["multiplyBy100"] = this._multiplyBy100Enabled;
|
275
|
+
}
|
264
276
|
}
|
265
277
|
return options;
|
266
278
|
};
|
@@ -24,6 +24,8 @@ declare function arrayToObject(data?: any[]|null, fields?: (string)[]|null): any
|
|
24
24
|
|
25
25
|
declare function extendProperty(obj: any, extender: any, propName: string): void;
|
26
26
|
|
27
|
+
declare function deepEqual(obj1: any, obj2: any): boolean;
|
28
|
+
|
27
29
|
declare function extendArrayProperty(obj: any, propName: string, ary: any): any[]|null;
|
28
30
|
|
29
31
|
declare function parseCondition(expression: string|((...params: any[]) => any)|null): ((...params: any[]) => any)|null;
|
@@ -52,6 +54,7 @@ export {
|
|
52
54
|
extendObject,
|
53
55
|
cloneObject,
|
54
56
|
isEmptyObject,
|
57
|
+
deepEqual,
|
55
58
|
arrayToObject,
|
56
59
|
extendProperty,
|
57
60
|
extendArrayProperty,
|
@@ -200,6 +200,58 @@ var extendProperty = function (obj, extender, propName) {
|
|
200
200
|
}
|
201
201
|
}
|
202
202
|
};
|
203
|
+
|
204
|
+
|
205
|
+
/** 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.
|
206
|
+
* @public
|
207
|
+
* @param {*} obj1
|
208
|
+
* @param {*} obj2
|
209
|
+
* @return {boolean}
|
210
|
+
*/
|
211
|
+
var deepEqual = function (obj1, obj2) {
|
212
|
+
|
213
|
+
if(obj1 === obj2) {
|
214
|
+
return true;
|
215
|
+
}
|
216
|
+
|
217
|
+
if (typeof obj1 !== typeof obj2) {
|
218
|
+
return false;
|
219
|
+
}
|
220
|
+
|
221
|
+
if (typeof obj1 === "object") {
|
222
|
+
|
223
|
+
// We need to split array and object for performance reason
|
224
|
+
if(Array.isArray(obj1)) {
|
225
|
+
if(obj1.length !== obj2.length) {
|
226
|
+
return false;
|
227
|
+
}
|
228
|
+
|
229
|
+
for (var i = 0; i < obj1.length; i++) {
|
230
|
+
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.
|
231
|
+
return false;
|
232
|
+
}
|
233
|
+
}
|
234
|
+
|
235
|
+
} else {
|
236
|
+
|
237
|
+
if (Object.keys(obj1).length !== Object.keys(obj2).length) {
|
238
|
+
return false;
|
239
|
+
}
|
240
|
+
|
241
|
+
for (var key in obj1) {
|
242
|
+
if (!deepEqual(obj1[key], obj2[key])) {
|
243
|
+
return false;
|
244
|
+
}
|
245
|
+
}
|
246
|
+
}
|
247
|
+
|
248
|
+
|
249
|
+
return true;
|
250
|
+
}
|
251
|
+
|
252
|
+
return false;
|
253
|
+
|
254
|
+
};
|
203
255
|
/** Array.push() is much faster than Array.concat(). The downside is the parameters must be an array, whereas concat() has no such requirement. <br>
|
204
256
|
* This method excels in extending known array property in an object.
|
205
257
|
* @public
|
@@ -527,6 +579,7 @@ export {
|
|
527
579
|
extendObject,
|
528
580
|
cloneObject,
|
529
581
|
isEmptyObject,
|
582
|
+
deepEqual,
|
530
583
|
arrayToObject,
|
531
584
|
extendProperty,
|
532
585
|
extendArrayProperty,
|
@@ -83,7 +83,7 @@ var _fieldInfo = {
|
|
83
83
|
"words2": {type: "string", min: 3, max: 10},
|
84
84
|
"words3": {type: "string", min: 5, max: 15},
|
85
85
|
"sentence": {type: "string", min: 8, max: 20},
|
86
|
-
"id": {type: "function", generate: _generateId},
|
86
|
+
"id": {type: "function", hash: 0, generate: _generateId},
|
87
87
|
"companyName": {type: "set", members: DataSet.companyName },
|
88
88
|
"industry": {type: "set", members: DataSet.industry },
|
89
89
|
"market": {type: "set", members: DataSet.market },
|
@@ -103,14 +103,16 @@ var getFieldInfo = function(field) {
|
|
103
103
|
* @param {Object|Function} options
|
104
104
|
*/
|
105
105
|
var addFieldInfo = function(field, options) {
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
106
|
+
if(field) {
|
107
|
+
var opt = options;
|
108
|
+
if(typeof options === "function") {
|
109
|
+
opt = {
|
110
|
+
type: "function",
|
111
|
+
generate: options
|
112
|
+
};
|
113
|
+
}
|
114
|
+
_fieldInfo[field] = opt; // WARNING: This could replace existing info
|
112
115
|
}
|
113
|
-
_fieldInfo[field] = opt;
|
114
116
|
};
|
115
117
|
|
116
118
|
/** Return pseudo random number in the range of 0 to 1 (exclusive of 1)
|
@@ -452,8 +454,9 @@ var _generate2DArray = function(fields, options, seed) {
|
|
452
454
|
*/
|
453
455
|
var _hash = function(str) {
|
454
456
|
var sum = 0;
|
455
|
-
|
456
|
-
|
457
|
+
var i = str ? str.length : 0;
|
458
|
+
while(--i >= 0) {
|
459
|
+
sum += str.charCodeAt(i) * (i + 0.9879);
|
457
460
|
}
|
458
461
|
return sum;
|
459
462
|
};
|
@@ -465,35 +468,34 @@ var _hash = function(str) {
|
|
465
468
|
*/
|
466
469
|
var _generateFieldData = function(field, options, seed) {
|
467
470
|
var fInfo = getFieldInfo(field);
|
471
|
+
if(!fInfo.type) {
|
472
|
+
fInfo.type = "number";
|
473
|
+
addFieldInfo(field, fInfo);
|
474
|
+
}
|
475
|
+
if(fInfo.fixedValue){
|
476
|
+
fInfo.value = value;
|
477
|
+
return fInfo;
|
478
|
+
}
|
479
|
+
if(seed != null) {
|
480
|
+
if(fInfo.hash == null) {
|
481
|
+
fInfo.hash = _hash(field);
|
482
|
+
}
|
483
|
+
seed += fInfo.hash; // Make each field unique for the same seed
|
484
|
+
}
|
485
|
+
|
468
486
|
var min = fInfo.min != null ? fInfo.min : 100; // WARNING: Default values are non-standard values
|
469
487
|
var max = fInfo.max != null ? fInfo.max : 10000;
|
470
|
-
var prec = fInfo.prec != null ? fInfo.prec : 0;
|
471
488
|
var value;
|
472
489
|
|
473
|
-
if(fInfo.
|
474
|
-
value = fInfo.fixedValue;
|
475
|
-
} else if(!fInfo.type) { // Unknown type
|
476
|
-
if(seed != null) {
|
477
|
-
if(field) {
|
478
|
-
if(!fInfo.hash) {
|
479
|
-
fInfo.hash = _hash(field);
|
480
|
-
addFieldInfo(field, fInfo); // WARNING: modify global state
|
481
|
-
}
|
482
|
-
seed += fInfo.hash;
|
483
|
-
}
|
484
|
-
}
|
485
|
-
value = randNumber(min, max, prec, seed);
|
486
|
-
} else if(fInfo.type === "string") {
|
490
|
+
if(fInfo.type === "string") {
|
487
491
|
if(fInfo.min != null || fInfo.max != null) {
|
488
|
-
if(seed != null) {
|
489
|
-
if(!fInfo.hash) {
|
490
|
-
fInfo.hash = _hash(field);
|
491
|
-
}
|
492
|
-
seed += fInfo.hash;
|
493
|
-
}
|
494
492
|
value = randString(min, max, seed);
|
495
493
|
} else {
|
496
|
-
|
494
|
+
if(options) {
|
495
|
+
value = options.text || "";
|
496
|
+
} else {
|
497
|
+
value = "";
|
498
|
+
}
|
497
499
|
}
|
498
500
|
} else if(fInfo.type === "set") {
|
499
501
|
value = randMember(fInfo.members, seed);
|
@@ -510,7 +512,8 @@ var _generateFieldData = function(field, options, seed) {
|
|
510
512
|
} else if(fInfo.type === "function") {
|
511
513
|
fInfo.field = field;
|
512
514
|
value = fInfo.generate(fInfo, seed);
|
513
|
-
} else { // Default is number
|
515
|
+
} else { // Default is number for all unknown type
|
516
|
+
var prec = fInfo.prec != null ? fInfo.prec : 0;
|
514
517
|
value = randNumber(min, max, prec, seed);
|
515
518
|
}
|
516
519
|
fInfo.value = value;
|
@@ -137,6 +137,8 @@ declare class ColumnStackPlugin extends GridPlugin {
|
|
137
137
|
|
138
138
|
public isStackHidden(stackId: string): boolean|null|null;
|
139
139
|
|
140
|
+
public moveStack(stackId: string, destCol?: (number|string)|null): boolean;
|
141
|
+
|
140
142
|
}
|
141
143
|
|
142
144
|
export default ColumnStackPlugin;
|
@@ -13,16 +13,16 @@ declare namespace ConditionalColoringPlugin {
|
|
13
13
|
|
14
14
|
type ColumnOptions = {
|
15
15
|
conditions?: (ConditionalColoringPlugin.Condition)[]|null,
|
16
|
-
colorText?: (string|boolean)|null,
|
17
|
-
tickColor?: (string|boolean)|null,
|
18
|
-
blinking?: (ConditionalColoringPlugin.Blinking
|
16
|
+
colorText?: (string|boolean|ConditionalColoringPlugin.ColorText)|null,
|
17
|
+
tickColor?: (string|boolean|ConditionalColoringPlugin.ColorText)|null,
|
18
|
+
blinking?: (string|boolean|ConditionalColoringPlugin.Blinking)|null,
|
19
19
|
field?: string|null
|
20
20
|
};
|
21
21
|
|
22
22
|
type ConditionalColoringOptions = {
|
23
23
|
conditions?: (ConditionalColoringPlugin.Condition)[]|null,
|
24
|
-
colorText?: (string|boolean)|null,
|
25
|
-
tickColor?: (string|boolean)|null,
|
24
|
+
colorText?: (string|boolean|ConditionalColoringPlugin.ColorText)|null,
|
25
|
+
tickColor?: (string|boolean|ConditionalColoringPlugin.ColorText)|null,
|
26
26
|
field?: string|null
|
27
27
|
};
|
28
28
|
|
@@ -41,6 +41,13 @@ declare namespace ConditionalColoringPlugin {
|
|
41
41
|
level?: (string|boolean)|null
|
42
42
|
};
|
43
43
|
|
44
|
+
type ColorText = {
|
45
|
+
field?: string|null,
|
46
|
+
upClass?: string|null,
|
47
|
+
downClass?: string|null,
|
48
|
+
levelClass?: string|null
|
49
|
+
};
|
50
|
+
|
44
51
|
}
|
45
52
|
|
46
53
|
declare class ConditionalColoringPlugin extends GridPlugin {
|
@@ -70,6 +70,8 @@ declare class DataTable extends DataCache {
|
|
70
70
|
|
71
71
|
public setColumnSortingLogic(cid: string, func: DataTable.SortLogic|null): void;
|
72
72
|
|
73
|
+
public getColumnSortingLogic(cid?: string|null): DataTable.SortLogic|null;
|
74
|
+
|
73
75
|
public freeze(bool?: boolean|null): boolean;
|
74
76
|
|
75
77
|
public unfreeze(bool?: boolean|null): boolean;
|
@@ -90,7 +92,7 @@ declare class DataTable extends DataCache {
|
|
90
92
|
|
91
93
|
public getSegmentParentRowId(rid: string): string;
|
92
94
|
|
93
|
-
public getSegmentValues(rids?: (string)[]|null): (number)[]|null;
|
95
|
+
public getSegmentValues(rids?: (string)[]|null, partial?: boolean|null): (number)[]|null;
|
94
96
|
|
95
97
|
public fillSegment(segmentId: string): void;
|
96
98
|
|
@@ -80,6 +80,8 @@ declare class DataView extends EventDispatcher {
|
|
80
80
|
|
81
81
|
public setColumnSortingLogic(cid: string, func: DataTable.SortLogic|null): void;
|
82
82
|
|
83
|
+
public getColumnSortingLogic(cid?: string|null): DataTable.SortLogic|null;
|
84
|
+
|
83
85
|
public isSorting(): boolean;
|
84
86
|
|
85
87
|
public hideRow(rId: string|number|null, hidden?: boolean|null): void;
|
@@ -8,7 +8,7 @@ declare class SegmentCollection extends EventDispatcher {
|
|
8
8
|
|
9
9
|
public dispose(): void;
|
10
10
|
|
11
|
-
public addSegment(rid: string): boolean;
|
11
|
+
public addSegment(rid: string, childRids?: (string)[]|null): boolean;
|
12
12
|
|
13
13
|
public addSegments(rids: (string)[]|null): boolean;
|
14
14
|
|
@@ -56,8 +56,6 @@ declare class SegmentCollection extends EventDispatcher {
|
|
56
56
|
|
57
57
|
public calcSegmentOrder(rids: (string)[]|null): void;
|
58
58
|
|
59
|
-
public getSegmentValues(rids: (string)[]): (number)[]|null;
|
60
|
-
|
61
59
|
public logStructure(): string;
|
62
60
|
|
63
61
|
public logRowIdMap(): string;
|
@@ -339,8 +339,12 @@ declare class Core extends ElementWrapper {
|
|
339
339
|
|
340
340
|
public enableRowVirtualization(opt_enabled: boolean): void;
|
341
341
|
|
342
|
+
public isRowVirtualizationEnabled(): boolean;
|
343
|
+
|
342
344
|
public enableColumnVirtualization(opt_enabled?: boolean|null): void;
|
343
345
|
|
346
|
+
public isColumnVirtualizationEnabled(): boolean;
|
347
|
+
|
344
348
|
public setRowScrollingStep(rowCount: number): void;
|
345
349
|
|
346
350
|
public getVMouseWheelHandler(): ((...params: any[]) => any)|null;
|
@@ -4,6 +4,7 @@ import Core from "../Core.js";
|
|
4
4
|
import ILayoutGrid from "../ILayoutGrid.js";
|
5
5
|
import ElementWrapper from "../components/ElementWrapper.js";
|
6
6
|
import DataTable from "../../data/DataTable.js";
|
7
|
+
import { isEmptyObject } from "../../../../../tr-grid-util/es6/Util.js";
|
7
8
|
|
8
9
|
declare namespace SortableTitlePlugin {
|
9
10
|
|
@@ -7,12 +7,12 @@ declare namespace HeatMapPlugin {
|
|
7
7
|
|
8
8
|
type ColumnOptions = {
|
9
9
|
field: string,
|
10
|
-
heatMap?: HeatMapPlugin.Heatmap
|
10
|
+
heatMap?: HeatMapPlugin.Heatmap|null
|
11
11
|
};
|
12
12
|
|
13
13
|
type Heatmap = {
|
14
|
-
midPoint?: number,
|
15
|
-
mode?: string
|
14
|
+
midPoint?: number|null,
|
15
|
+
mode?: string|null
|
16
16
|
};
|
17
17
|
|
18
18
|
}
|