@refinitiv-ui/efx-grid 6.0.136 → 6.0.138
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/column-selection-dialog/lib/column-selection-dialog.js +67 -62
- package/lib/core/dist/core.js +18 -16
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/grid/Core.js +2 -2
- package/lib/core/es6/grid/LayoutGrid.js +16 -14
- package/lib/filter-dialog/lib/filter-dialog.d.ts +1 -0
- package/lib/filter-dialog/lib/filter-dialog.js +74 -80
- package/lib/grid/index.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +11 -18
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/RowDefinition.js +11 -18
- package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +2 -1
- package/lib/tr-grid-row-filtering/es6/RowFiltering.js +14 -4
- package/lib/types/es6/RowFiltering.d.ts +2 -1
- package/lib/types/es6/Zoom.d.ts +14 -14
- package/lib/versions.json +4 -4
- package/lib/zoom/es6/Zoom.d.ts +14 -14
- package/lib/zoom/es6/Zoom.js +43 -31
- package/package.json +1 -1
@@ -621,7 +621,7 @@ Core.prototype._hasPendingRowChange = false;
|
|
621
621
|
* @return {string}
|
622
622
|
*/
|
623
623
|
Core.getVersion = function () {
|
624
|
-
return "5.1.
|
624
|
+
return "5.1.133";
|
625
625
|
};
|
626
626
|
/** {@link ElementWrapper#dispose}
|
627
627
|
* @override
|
@@ -2068,7 +2068,7 @@ Core.prototype._deserializeColumn = function (index, jsonObj) {
|
|
2068
2068
|
this.setColumnData(index, value);
|
2069
2069
|
}
|
2070
2070
|
|
2071
|
-
let formatter = jsonObj["
|
2071
|
+
let formatter = jsonObj["binding"] || jsonObj["formatter"]; // support both composite and real-time grid, binding have piority first
|
2072
2072
|
if(Array.isArray(formatter)) {
|
2073
2073
|
formatter = formatter[0]; // Support only one formatter in the array
|
2074
2074
|
}
|
@@ -262,10 +262,6 @@ LayoutGrid.prototype._colBounds = null;
|
|
262
262
|
* @private
|
263
263
|
*/
|
264
264
|
LayoutGrid.prototype._colBoundCache = null;
|
265
|
-
/** @type {boolean}
|
266
|
-
* @private
|
267
|
-
*/
|
268
|
-
LayoutGrid.prototype._colSelDirty = false;
|
269
265
|
/** @type {HScrollbar}
|
270
266
|
* @private
|
271
267
|
*/
|
@@ -300,7 +296,6 @@ LayoutGrid.prototype.dispose = function () {
|
|
300
296
|
|
301
297
|
this._colCount = this._rowCount = this._activeRowEnd = this._availableRowCount = 0;
|
302
298
|
this._colBounds = this._colBoundCache = null;
|
303
|
-
this._colSelDirty = false;
|
304
299
|
|
305
300
|
this._highlightedCells.length = 0;
|
306
301
|
this._ctx = null;
|
@@ -2011,7 +2006,7 @@ LayoutGrid.prototype._calculateViewSize = function (forceRecal) {
|
|
2011
2006
|
if(!stretchSize && ctx) {
|
2012
2007
|
if(ctx["getWidth"]) {
|
2013
2008
|
let contentWidth = this.getContentWidth();
|
2014
|
-
stretchSize = ctx["getWidth"]();
|
2009
|
+
stretchSize = ctx["getWidth"]() - this._rightSpaceSize;
|
2015
2010
|
if(stretchSize) { // Grid may not be in the document
|
2016
2011
|
if(contentWidth < stretchSize) { // If view width is larger than actual content
|
2017
2012
|
stretchSize = contentWidth;
|
@@ -2247,8 +2242,6 @@ LayoutGrid.prototype.selectColumn = function (colIndex, selected) {
|
|
2247
2242
|
this.enableColumnClass(colIndex, "selected-column", selected);
|
2248
2243
|
|
2249
2244
|
if(selected) {
|
2250
|
-
this._colSelDirty = true;
|
2251
|
-
|
2252
2245
|
let boundLayer = this._boundLayer;
|
2253
2246
|
if(!boundLayer) {
|
2254
2247
|
this._initBoundLayer();
|
@@ -2376,10 +2369,6 @@ LayoutGrid.prototype.calculateColumnBounds = function (lftIdx, rgtIdx, outPositi
|
|
2376
2369
|
* @param {number=} topPx Top position of bound
|
2377
2370
|
*/
|
2378
2371
|
LayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx) {
|
2379
|
-
if(!this._colSelDirty) {
|
2380
|
-
return;
|
2381
|
-
}
|
2382
|
-
|
2383
2372
|
let cbs = this._colBounds;
|
2384
2373
|
let cbc = this._colBoundCache;
|
2385
2374
|
if(!cbs) {
|
@@ -2406,7 +2395,6 @@ LayoutGrid.prototype.updateColumnBounds = function (posAry, noBorderAry, topPx)
|
|
2406
2395
|
cbs.length = activeCount = rangeCount;
|
2407
2396
|
|
2408
2397
|
if(!rangeCount) {
|
2409
|
-
this._colSelDirty = false;
|
2410
2398
|
return;
|
2411
2399
|
}
|
2412
2400
|
|
@@ -2493,7 +2481,7 @@ LayoutGrid.prototype.updateColumnSeparators = function () {
|
|
2493
2481
|
let colWidth = this._trackX.getLaneEnd(colCount - 1) - this._trackX.getLaneStart(colCount - pinnedRightCount);
|
2494
2482
|
let viewSize = this._getViewSize();
|
2495
2483
|
|
2496
|
-
colSeparator.style.left = (viewSize - colWidth
|
2484
|
+
colSeparator.style.left = (viewSize - colWidth) + "px";
|
2497
2485
|
colSeparator.style.height = this._trackY.getTrackSize() + "px";
|
2498
2486
|
} else {
|
2499
2487
|
if (colSeparator && colSeparator.parentNode) {
|
@@ -2891,6 +2879,20 @@ LayoutGrid.prototype._onMouseOut = function (e) {
|
|
2891
2879
|
this.setRowHighlight(-1);
|
2892
2880
|
};
|
2893
2881
|
|
2882
|
+
|
2883
|
+
/** @public
|
2884
|
+
* @ignore
|
2885
|
+
* @return {!Object}
|
2886
|
+
*/
|
2887
|
+
LayoutGrid.prototype._getEventHandlers = function () {
|
2888
|
+
return {
|
2889
|
+
"mouseout": this._onMouseOut,
|
2890
|
+
"mousemove": this._onMouseMove
|
2891
|
+
};
|
2892
|
+
};
|
2893
|
+
|
2894
|
+
|
2895
|
+
|
2894
2896
|
/**
|
2895
2897
|
* @private
|
2896
2898
|
* @param {number} rowIndex
|
@@ -29,6 +29,7 @@ declare namespace FilterDialog {
|
|
29
29
|
filterUI?: boolean|null,
|
30
30
|
advancedFilter?: boolean|null,
|
31
31
|
compactMode?: boolean|null,
|
32
|
+
dateTimeFormat?: string|null,
|
32
33
|
blankValues?: (string|boolean)|null,
|
33
34
|
filterChanged?: ((...params: any[]) => any)|null,
|
34
35
|
confirm?: ((...params: any[]) => any)|null,
|
@@ -23,11 +23,12 @@ import "./checkbox-list.js";
|
|
23
23
|
* @typedef {Object} FilterDialog~Config
|
24
24
|
* @property {Object} data Column data
|
25
25
|
* @property {string=} sortState "a" for ascending or "d" for descending
|
26
|
-
* @property {boolean=} sortUI Show Sort area
|
27
|
-
* @property {boolean=} filterUI Show Filter area
|
28
|
-
* @property {boolean=} advancedFilter Show advanced tab
|
29
|
-
* @property {boolean=} compactMode Force compact mode in dialog
|
30
|
-
* @property {
|
26
|
+
* @property {boolean=} sortUI=true Show Sort area
|
27
|
+
* @property {boolean=} filterUI=true Show Filter area
|
28
|
+
* @property {boolean=} advancedFilter=true Show advanced tab
|
29
|
+
* @property {boolean=} compactMode=false Force compact mode in dialog
|
30
|
+
* @property {string=} dateTimeFormat="dd-MM-yy" Specifies the string format for the date time picker in the filter dialog based on date-fns format, follow https://date-fns.org/v3.6.0/docs/format.
|
31
|
+
* @property {(string|boolean)=} blankValues=false Display a Blanks item in the filter dialog to represent an empty value. If a string is passed, it will be used as the label for the blank item
|
31
32
|
* @property {Function=} filterChanged Filter changed handler
|
32
33
|
* @property {Function=} confirm Alias of filterChanged
|
33
34
|
* @property {Function=} cancel Alias of dialog cancel
|
@@ -77,6 +78,14 @@ const BLANK_FILTERS = [
|
|
77
78
|
["EQ_BLANK", "Equal To Blank Value"],
|
78
79
|
["NEQ_BLANK", "Does Not Equal To Blank Value"]
|
79
80
|
];
|
81
|
+
/** @type {Object.<string, boolean>}
|
82
|
+
* @private
|
83
|
+
* @constant
|
84
|
+
*/
|
85
|
+
const BLANK_VALUES = {
|
86
|
+
"EQ_BLANK": true,
|
87
|
+
"NEQ_BLANK": true
|
88
|
+
};
|
80
89
|
/** @type {Array.<Array>}
|
81
90
|
* @private
|
82
91
|
* @constant
|
@@ -179,6 +188,7 @@ class FilterDialog extends BasicElement {
|
|
179
188
|
this._blankValuesChecked = false;
|
180
189
|
this._compactMode = false;
|
181
190
|
this.useUTCTime = true;
|
191
|
+
this._dateTimeFormat = "dd-MM-yy";
|
182
192
|
this._popup = new Popup({
|
183
193
|
"shown": this._onPopupShown.bind(this),
|
184
194
|
"hidden": this._onPopupHidden.bind(this),
|
@@ -222,6 +232,10 @@ class FilterDialog extends BasicElement {
|
|
222
232
|
this.hiddenFilterUI = options.filterUI === false;
|
223
233
|
}
|
224
234
|
|
235
|
+
if (options.dateTimeFormat != null) {
|
236
|
+
this._dateTimeFormat = options.dateTimeFormat;
|
237
|
+
}
|
238
|
+
|
225
239
|
if(options.advancedFilter != null) {
|
226
240
|
this.hiddenAdvancedFilter = options.advancedFilter === false;
|
227
241
|
}
|
@@ -294,6 +308,7 @@ class FilterDialog extends BasicElement {
|
|
294
308
|
render() {
|
295
309
|
let lang = this._translation[this._lang] ? this._lang : "en";
|
296
310
|
let t = this._translation[lang];
|
311
|
+
let dateTimeFormat = this._dateTimeFormat;
|
297
312
|
return html`
|
298
313
|
<ef-panel id="root_panel" spacing with-shadow with-border>
|
299
314
|
<div id="filterDialogContent" class="filter-dialog dialog-theme-wrapper">
|
@@ -336,14 +351,14 @@ class FilterDialog extends BasicElement {
|
|
336
351
|
</div>
|
337
352
|
<div class="input-group hide" id="datetime_conditon">
|
338
353
|
<ef-combo-box placeholder="${t["Show rows where"]}:" lang="${lang}"></ef-combo-box>
|
339
|
-
<ef-datetime-picker placeholder="
|
354
|
+
<ef-datetime-picker placeholder="${dateTimeFormat}" format="${dateTimeFormat}" lang="${lang}"></ef-datetime-picker>
|
340
355
|
|
341
356
|
<div class="radio-group">
|
342
357
|
<ef-radio-button name="filterRadio" value="AND" checked>${t["And"]}</ef-radio-button>
|
343
358
|
<ef-radio-button name="filterRadio" value="OR" >${t["Or"]}</ef-radio-button>
|
344
359
|
</div>
|
345
360
|
<ef-combo-box placeholder="${t["Show rows where"]}:" lang="${lang}"></ef-combo-box>
|
346
|
-
<ef-datetime-picker placeholder="
|
361
|
+
<ef-datetime-picker placeholder="${dateTimeFormat}" format="${dateTimeFormat}" lang="${lang}"></ef-datetime-picker>
|
347
362
|
</div>
|
348
363
|
</div>
|
349
364
|
</div>
|
@@ -871,7 +886,6 @@ class FilterDialog extends BasicElement {
|
|
871
886
|
* @private
|
872
887
|
*/
|
873
888
|
_updateAdvanceFilterUI() {
|
874
|
-
// Reset Advance Filter UIs
|
875
889
|
this._clearAdvanceFilterUI();
|
876
890
|
|
877
891
|
let userConditions = this.conditions || null;
|
@@ -883,66 +897,66 @@ class FilterDialog extends BasicElement {
|
|
883
897
|
}
|
884
898
|
}
|
885
899
|
|
886
|
-
if (!Array.isArray(userConditions)) {
|
900
|
+
if (!Array.isArray(userConditions)) { // Expect 2D array
|
887
901
|
return;
|
888
902
|
}
|
889
903
|
|
890
|
-
const
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
let
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
904
|
+
const isDateType = toDateTimeType(this.fieldDataType);
|
905
|
+
const con1 = this._toConditionObject(userConditions[0], isDateType);
|
906
|
+
const con2 = con1 ? this._toConditionObject(userConditions[1], isDateType) : null;
|
907
|
+
|
908
|
+
let conSel1 = this._generalComboBoxes[0];
|
909
|
+
let valInput1 = this._generalComboBoxes[1];
|
910
|
+
let conSel2 = this._generalComboBoxes[2];
|
911
|
+
let valInput2 = this._generalComboBoxes[3];
|
912
|
+
let connectors = this._generalRadioBtns;
|
913
|
+
|
914
|
+
if (isDateType) {
|
915
|
+
conSel1 = this._dateTimeComboBoxes[0];
|
916
|
+
valInput1 = this._dateTimePickers[0];
|
917
|
+
conSel2 = this._dateTimeComboBoxes[1];
|
918
|
+
valInput2 = this._dateTimePickers[1];
|
919
|
+
connectors = this._dateTimeRadioBtns;
|
906
920
|
}
|
907
|
-
|
908
|
-
|
909
|
-
let validCon2 = false;
|
910
|
-
let conOp2 = "";
|
911
|
-
let conVal2 = "";
|
912
|
-
if(validCon1 && Array.isArray(con2)) {
|
913
|
-
conOp2 = con2[0];
|
914
|
-
if(con2.length && conOp2) {
|
915
|
-
conVal2 = con2[1];
|
916
|
-
if(conVal2 || conVal2 === 0 || conVal2 === false || conOp2 === BLANK_FILTERS[0][0] || conOp2 === BLANK_FILTERS[1][0]) {
|
917
|
-
validCon2 = true;
|
918
|
-
} else {
|
919
|
-
conVal2 = "";
|
920
|
-
}
|
921
|
-
}
|
921
|
+
if (con1) {
|
922
|
+
this._updateConditionUIs(conSel1, valInput1, con1.operator, con1.value);
|
922
923
|
}
|
923
|
-
|
924
|
-
|
925
|
-
if(validCon1 && validCon2) {
|
926
|
-
firstRadioState = connector !== "OR";
|
924
|
+
if (con2) {
|
925
|
+
this._updateConditionUIs(conSel2, valInput2, con2.operator, con2.value);
|
927
926
|
}
|
928
927
|
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
928
|
+
let andRadioBtn = (con1 && con2) ? (con1.connector !== "OR") : true;
|
929
|
+
connectors[0].checked = andRadioBtn; // AND radio button
|
930
|
+
connectors[1].checked = !andRadioBtn; // OR radio button
|
931
|
+
}
|
932
|
+
/**
|
933
|
+
* @private
|
934
|
+
* @param {Array} ary Condition in array format with length of three (e.g., ["LT", 5, "OR"])
|
935
|
+
* @param {boolean} isDateType
|
936
|
+
* @return {string}
|
937
|
+
*/
|
938
|
+
_toConditionObject(ary, isDateType) {
|
939
|
+
if(Array.isArray(ary) && ary.length) {
|
940
|
+
let op = ary[0];
|
941
|
+
if(op) {
|
942
|
+
let val = ary[1];
|
943
|
+
if(val || val === 0 || val === false || BLANK_VALUES[op]) {
|
944
|
+
if(isDateType) {
|
945
|
+
let date = (ary.rawValue != null) ? ary.rawValue : val;
|
946
|
+
if(!(date instanceof Date)){
|
947
|
+
date = new Date(date);
|
948
|
+
}
|
949
|
+
val = DateTime.format(date.getTime(), "yyyy-MM-dd", this.useUTCTime ? "GMT" : "LOCAL");
|
950
|
+
}
|
951
|
+
return {
|
952
|
+
operator: op,
|
953
|
+
value: val,
|
954
|
+
connector: ary[2] || ""
|
955
|
+
};
|
956
|
+
}
|
943
957
|
}
|
944
|
-
this._updateConnectorUIs(this._generalRadioBtns, firstRadioState);
|
945
958
|
}
|
959
|
+
return null;
|
946
960
|
}
|
947
961
|
/** @private
|
948
962
|
* @param {Element} opCombobox
|
@@ -954,14 +968,7 @@ class FilterDialog extends BasicElement {
|
|
954
968
|
opCombobox.value = opValue;
|
955
969
|
valuePicker.value = value;
|
956
970
|
}
|
957
|
-
|
958
|
-
* @param {Array.<Element>} connectors
|
959
|
-
* @param {boolean} connectorValue
|
960
|
-
*/
|
961
|
-
_updateConnectorUIs(connectors, connectorValue) {
|
962
|
-
connectors[0].checked = connectorValue;
|
963
|
-
connectors[1].checked = !connectorValue;
|
964
|
-
}
|
971
|
+
|
965
972
|
/** @private
|
966
973
|
* @returns {boolean}
|
967
974
|
*/
|
@@ -1076,19 +1083,6 @@ class FilterDialog extends BasicElement {
|
|
1076
1083
|
};
|
1077
1084
|
}
|
1078
1085
|
|
1079
|
-
/**
|
1080
|
-
* Return date string in format yyyy-MM-dd
|
1081
|
-
* @private
|
1082
|
-
* @param {Object|string} date
|
1083
|
-
* @return {string}
|
1084
|
-
*/
|
1085
|
-
_getDateString(date) {
|
1086
|
-
if(!(date instanceof Date)){
|
1087
|
-
date = new Date(date);
|
1088
|
-
}
|
1089
|
-
return DateTime.format(date.getTime(), "yyyy-MM-dd", this.useUTCTime ? "GMT" : "LOCAL");
|
1090
|
-
}
|
1091
|
-
|
1092
1086
|
/**
|
1093
1087
|
* Return date object
|
1094
1088
|
* @private
|
package/lib/grid/index.js
CHANGED
@@ -13320,8 +13320,7 @@ RowDefinition.prototype.getConfigObject = function(rowOptions) {
|
|
13320
13320
|
obj["collapsed"] = val;
|
13321
13321
|
}
|
13322
13322
|
|
13323
|
-
|
13324
|
-
val = this._view.isHiddenRow(this._rowId);
|
13323
|
+
val = this._view ? this._view.isHiddenRow(this._rowId) : false;
|
13325
13324
|
if(val) {
|
13326
13325
|
obj["hidden"] = val;
|
13327
13326
|
}
|
@@ -13895,19 +13894,6 @@ RowDefinition.deregisterFromView = function(rowIds, rowDef) {
|
|
13895
13894
|
rowDef._deregisterFromView(rowIds);
|
13896
13895
|
return rowIds;
|
13897
13896
|
};
|
13898
|
-
/** @private
|
13899
|
-
* @param {string} ric
|
13900
|
-
* @return {Object}
|
13901
|
-
*/
|
13902
|
-
RowDefinition.prototype._getChildStaticRowData = function(ric) {
|
13903
|
-
if(this._staticValues) {
|
13904
|
-
let childValues = this._staticValues[RowDefinition._childDataField];
|
13905
|
-
if(childValues) {
|
13906
|
-
return childValues[ric] || null;
|
13907
|
-
}
|
13908
|
-
}
|
13909
|
-
return null;
|
13910
|
-
};
|
13911
13897
|
|
13912
13898
|
/** @public
|
13913
13899
|
* @ignore
|
@@ -13962,9 +13948,16 @@ RowDefinition.prototype.addConstituent = function(ric) {
|
|
13962
13948
|
"parent": this
|
13963
13949
|
};
|
13964
13950
|
|
13965
|
-
|
13966
|
-
if(
|
13967
|
-
|
13951
|
+
// Get child static values stored in this row
|
13952
|
+
if(this._staticValues) {
|
13953
|
+
let children = this._staticValues[RowDefinition._childDataField];
|
13954
|
+
if(children) {
|
13955
|
+
let childValues = children[ric];
|
13956
|
+
if(childValues) {
|
13957
|
+
rowOptions["values"] = childValues;
|
13958
|
+
children[ric] = null;
|
13959
|
+
}
|
13960
|
+
}
|
13968
13961
|
}
|
13969
13962
|
|
13970
13963
|
return new RowDefinition(rowOptions); // childDef is added to this._children in the constructor
|