@refinitiv-ui/efx-grid 6.0.111 → 6.0.113

Sign up to get free protection for your applications and to get access to all the features.
@@ -74,6 +74,7 @@ let _createHiddenInput = function () {
74
74
  styleObj.position = "absolute";
75
75
  styleObj.width = styleObj.height = styleObj.padding = styleObj.border = "0";
76
76
  hiddenInput.value = "0";
77
+ hiddenInput.role = "grid";
77
78
  return hiddenInput;
78
79
  };
79
80
  /** @private
@@ -620,7 +621,7 @@ Core.prototype._hasPendingRowChange = false;
620
621
  * @return {string}
621
622
  */
622
623
  Core.getVersion = function () {
623
- return "5.1.113";
624
+ return "5.1.115";
624
625
  };
625
626
  /** {@link ElementWrapper#dispose}
626
627
  * @override
@@ -3740,9 +3741,16 @@ Core.prototype.getVerticalViewInfo = function() {
3740
3741
  let viewTop = this._vscrollbar.getScrollTop() + heightOffset;
3741
3742
  let viewBottom = viewTop + viewHeight;
3742
3743
 
3744
+ let topRowIndex = this._layoutY.hitTest(viewTop) - rowIndexOffset;
3745
+ let bottomRowIndex = this._layoutY.hitTest(viewBottom - 0.1) - rowIndexOffset;
3746
+ let laneTop = this._layoutY.getLaneStart(topRowIndex + rowIndexOffset);
3747
+ let laneBottom = this._layoutY.getLaneEnd(bottomRowIndex + rowIndexOffset);
3748
+
3743
3749
  return {
3744
- topRowIndex: this._layoutY.hitTest(viewTop) - rowIndexOffset,
3745
- bottomRowIndex: this._layoutY.hitTest(viewBottom - 0.1) - rowIndexOffset
3750
+ topRowIndex: topRowIndex,
3751
+ firstFullRow: (laneTop < viewTop) ? topRowIndex + 1 : topRowIndex,
3752
+ lastFullRow: (laneBottom > viewBottom) ? bottomRowIndex - 1 : bottomRowIndex,
3753
+ bottomRowIndex: bottomRowIndex
3746
3754
  };
3747
3755
  };
3748
3756
  /** @public
@@ -3764,8 +3772,8 @@ Core.prototype.getVScrollView = function () {
3764
3772
  let topRowIndex = this._layoutY.hitTest(viewTop);
3765
3773
  let bottomRowIndex = this._layoutY.hitTest(viewBottom - 0.1);
3766
3774
 
3767
- let laneTop = this._layoutY.getLaneStart(topRowIndex);
3768
- let laneBottom = this._layoutY.getLaneEnd(bottomRowIndex);
3775
+ let laneTop = this._layoutY.getLaneStart(topRowIndex + rowIndexOffset);
3776
+ let laneBottom = this._layoutY.getLaneEnd(bottomRowIndex + rowIndexOffset);
3769
3777
 
3770
3778
  let prevAnchor = viewTop - viewHeight;
3771
3779
  let prevPage = (prevAnchor <= heightOffset) ? rowIndexOffset : this._layoutY.hitTest(prevAnchor) + 1;
@@ -358,6 +358,7 @@ Cell.prototype.initialize = function () {
358
358
  this._aligner = document.createElement("button");
359
359
  }
360
360
  this._aligner.className = "valigner";
361
+ this._aligner.role = "gridcell";
361
362
  if(this._frontIcon) {
362
363
  this._element.appendChild(this._frontIcon.getElement());
363
364
  }
@@ -6,6 +6,19 @@ import "@refinitiv-ui/elements/item";
6
6
  import "@refinitiv-ui/elements/checkbox";
7
7
  import translation from "./locale/translation.js";
8
8
 
9
+ declare namespace CheckboxList {
10
+
11
+ type itemState = {
12
+ type?: string|null,
13
+ label?: string|null,
14
+ checked?: boolean|null,
15
+ index?: number|null,
16
+ elem?: Element|null,
17
+ value?: (string|boolean)|null
18
+ };
19
+
20
+ }
21
+
9
22
  declare class CheckboxList extends BasicElement {
10
23
 
11
24
  constructor();
@@ -5,6 +5,15 @@ import "@refinitiv-ui/elements/item";
5
5
  import "@refinitiv-ui/elements/checkbox";
6
6
  import translation from "./locale/translation.js";
7
7
 
8
+ /**
9
+ * @typedef {Object} CheckboxList~itemState
10
+ * @property {string=} type
11
+ * @property {string=} label
12
+ * @property {boolean=} checked
13
+ * @property {number=} index
14
+ * @property {Element=} elem
15
+ * @property {(string|boolean)=} value
16
+ */
8
17
  /** @type {number}
9
18
  * @private
10
19
  * @constant
@@ -28,15 +37,18 @@ const _toLabelText = function(val) {
28
37
  * @function
29
38
  * @param {*} val
30
39
  * @param {number} idx
31
- * @return {!Object}
40
+ * @return {CheckboxList~itemState}
32
41
  */
33
42
  const _toItemStates = function(val, idx) {
43
+ let textLabel = _toLabelText(val);
34
44
  return {
35
- label: _toLabelText(val),
45
+ type: val.type,
46
+ label: textLabel,
47
+ title: textLabel,
36
48
  checked: (val && val.checked) ? true : false,
37
49
  index: idx,
38
50
  elem: null,
39
- value: val.value
51
+ value: val.value || textLabel
40
52
  };
41
53
  };
42
54
  /** @private
@@ -77,9 +89,13 @@ const _updateElement = function(elem, txt, checked) {
77
89
  * @param {string} str
78
90
  * @param {number} idx
79
91
  * @param {string} ctx
92
+ * @param {string} type
80
93
  * @returns {boolean}
81
94
  */
82
- const _caseInsensitiveFilter = function(str, idx, ctx) {
95
+ const _caseInsensitiveFilter = function(str, idx, ctx, type) {
96
+ if(type === "header" || type === "divider") {
97
+ return true;
98
+ }
83
99
  return str.toLowerCase().indexOf(ctx) >= 0;
84
100
  };
85
101
 
@@ -108,6 +124,7 @@ class CheckboxList extends BasicElement {
108
124
  this._states = []; // Item states before filtering
109
125
  this._cachedItems = []; // To avoid repeatedly creating the same item element
110
126
  this._items = []; // Actual existing elements (filtered items)
127
+ this._filterStates = []; // Existing item (after filtered)
111
128
  this._inputFilter = null;
112
129
  }
113
130
 
@@ -131,8 +148,8 @@ class CheckboxList extends BasicElement {
131
148
  }
132
149
 
133
150
  render() {
134
- var lang = this._translation[this.lang] ? this.lang : "en";
135
- var t = this._translation[lang];
151
+ let lang = this._translation[this.lang] ? this.lang : "en";
152
+ let t = this._translation[lang];
136
153
  return html`
137
154
  <div class='root'>
138
155
  <div>
@@ -146,10 +163,10 @@ class CheckboxList extends BasicElement {
146
163
 
147
164
  firstUpdated(changedProps) {
148
165
  // Prepare list item template. TODO: This should be static variable
149
- var checkBox = document.createElement("ef-checkbox");
150
- var label = document.createElement("div");
166
+ let checkBox = document.createElement("ef-checkbox");
167
+ let label = document.createElement("div");
151
168
  label.classList.add("item-label");
152
- var itemContainer = document.createElement("div");
169
+ let itemContainer = document.createElement("div");
153
170
  itemContainer.classList.add("item-container");
154
171
  itemContainer.appendChild(checkBox);
155
172
  itemContainer.appendChild(label);
@@ -157,7 +174,7 @@ class CheckboxList extends BasicElement {
157
174
  this._templateItemEl.appendChild(itemContainer);
158
175
 
159
176
  // Elements has been rendered. Cache element references for better performance
160
- var root = this.shadowRoot;
177
+ let root = this.shadowRoot;
161
178
  this._containerEl = root.getElementById("container");
162
179
 
163
180
  this._selectAllBtn = root.getElementById("select_all");
@@ -169,8 +186,8 @@ class CheckboxList extends BasicElement {
169
186
 
170
187
  updated(changedProps) {
171
188
  if (changedProps.has("data")) {
172
- var dataList = this.data;
173
- var len = dataList ? dataList.length : 0;
189
+ let dataList = this.data;
190
+ let len = dataList ? dataList.length : 0;
174
191
  if (this._cachedItems.length < len) {
175
192
  this._cachedItems.length = len;
176
193
  }
@@ -186,15 +203,15 @@ class CheckboxList extends BasicElement {
186
203
  * @return {!Element}
187
204
  */
188
205
  _toItemElement(state) {
189
- var elem = state.elem;
206
+ let elem = state.elem;
190
207
  if(!elem) {
191
- var idx = state.index;
208
+ let idx = state.index;
192
209
  elem = this._cachedItems[idx];
193
210
  if(!elem) {
194
211
  elem = this._cachedItems[idx] = this._templateItemEl.cloneNode(true);
195
212
  elem.addEventListener("click", this._onItemClicked);
196
213
 
197
- var itemContainer = elem.firstChild; // div.item-container
214
+ let itemContainer = elem.firstChild; // div.item-container
198
215
  elem._checkbox = itemContainer.firstChild; // ef-checkbox
199
216
  elem._label = itemContainer.lastChild; // label
200
217
  }
@@ -213,15 +230,30 @@ class CheckboxList extends BasicElement {
213
230
  }
214
231
 
215
232
  // TODO: Optimize appending and removing items by finding appropriate item number
216
- var container = this._containerEl;
233
+ let container = this._containerEl;
217
234
  while(container.lastChild) {
218
235
  container.removeChild(container.lastChild);
219
236
  }
220
237
 
221
- var ary = this._items;
222
- var len = ary.length;
223
- for(var i = 0; i < len; ++i) {
224
- container.appendChild(ary[i]);
238
+ let ary = this._items;
239
+ let filterStates = this._filterStates;
240
+ let len = ary.length;
241
+ for(let i = 0; i < len; ++i) {
242
+ let item = ary[i];
243
+ let state = filterStates[i];
244
+ item.type = "";
245
+ let itemContainer = item.firstChild;
246
+ if(!itemContainer.contains(item._checkbox)){
247
+ itemContainer.insertBefore(item._checkbox, item._label);
248
+ }
249
+ let type = state.type;
250
+ if(type) {
251
+ if(type === "header") {
252
+ itemContainer.removeChild(item._checkbox);
253
+ }
254
+ item.type = type;
255
+ }
256
+ container.appendChild(item);
225
257
  }
226
258
  this._updateSelectAllState();
227
259
  }
@@ -249,9 +281,9 @@ class CheckboxList extends BasicElement {
249
281
  return;
250
282
  }
251
283
 
252
- var states = this._states;
253
- var len = states.length;
254
- for(var i = 0; i < len; ++i) {
284
+ let states = this._states;
285
+ let len = states.length;
286
+ for(let i = 0; i < len; ++i) {
255
287
  _assignItemState(states[i], this.data[i]);
256
288
  }
257
289
 
@@ -263,14 +295,15 @@ class CheckboxList extends BasicElement {
263
295
  * @return {!Array<object>}
264
296
  */
265
297
  getSelectedItems() {
266
- var items = [];
267
- var states = this._states;
268
- var len = states.length;
269
- for(var i = 0; i < len; ++i) {
270
- var state = states[i];
298
+ let items = [];
299
+ let states = this._states;
300
+ let len = states.length;
301
+ for(let i = 0; i < len; ++i) {
302
+ let state = states[i];
271
303
  if(_getCheckedState(state)) {
272
304
  items.push({
273
305
  title: state.label,
306
+ label: state.label,
274
307
  index: i,
275
308
  value: state.value
276
309
  });
@@ -285,9 +318,9 @@ class CheckboxList extends BasicElement {
285
318
  */
286
319
  selectAll(selected) {
287
320
  selected = selected !== false;
288
- var ary = this._items;
289
- var len = ary.length;
290
- for(var i = 0; i < len; ++i) {
321
+ let ary = this._items;
322
+ let len = ary.length;
323
+ for(let i = 0; i < len; ++i) {
291
324
  ary[i]._checkbox.checked = selected;
292
325
  }
293
326
  this._updateSelectAllState(selected);
@@ -308,7 +341,7 @@ class CheckboxList extends BasicElement {
308
341
  if(!inputFilter) {
309
342
  inputFilter = null;
310
343
  }
311
- var dirty = (typeof inputFilter === "function");
344
+ let dirty = (typeof inputFilter === "function");
312
345
  if(this._inputFilter !== inputFilter) {
313
346
  this._inputFilter = inputFilter || null;
314
347
  dirty = true;
@@ -323,14 +356,14 @@ class CheckboxList extends BasicElement {
323
356
  * @private
324
357
  */
325
358
  _filterItems() {
326
- var states = this._states;
327
- var len = states ? states.length : 0;
359
+ let states = this._states;
360
+ let len = states ? states.length : 0;
328
361
  if(!len) {
329
362
  this._items.length = 0;
330
363
  return; // No new copy is generated
331
364
  }
332
365
 
333
- var inputFilter = this._inputFilter;
366
+ let inputFilter = this._inputFilter;
334
367
  if(inputFilter) {
335
368
  if(typeof inputFilter === "function") {
336
369
  this._filterMethod = inputFilter;
@@ -349,6 +382,7 @@ class CheckboxList extends BasicElement {
349
382
  states = states.slice(0, ITEM_LIMIT);
350
383
  }
351
384
 
385
+ this._filterStates = states;
352
386
  this._items = states.map(this._toItemElement);
353
387
  }
354
388
  /**
@@ -358,7 +392,7 @@ class CheckboxList extends BasicElement {
358
392
  * @return {boolean}
359
393
  */
360
394
  _byLabelText(state, idx) {
361
- return this._filterMethod(state.label, idx, this._filterCtx);
395
+ return this._filterMethod(state.label, idx, this._filterCtx, state.type);
362
396
  }
363
397
 
364
398
  /**
@@ -367,7 +401,7 @@ class CheckboxList extends BasicElement {
367
401
  */
368
402
  _onItemClicked(e) {
369
403
  if(e.target.tagName !== "EF-CHECKBOX") { // checkbox may already toggle its state
370
- var itemEl = e.currentTarget;
404
+ let itemEl = e.currentTarget;
371
405
  itemEl._checkbox.checked = !itemEl._checkbox.checked;
372
406
  }
373
407
  this._updateSelectAllState();
@@ -383,10 +417,10 @@ class CheckboxList extends BasicElement {
383
417
  }
384
418
 
385
419
  if(selected == null) {
386
- var ary = this._items;
387
- var len = ary.length;
420
+ let ary = this._items;
421
+ let len = ary.length;
388
422
  selected = len ? false : true;
389
- for (var i = 0; i < len; i++) {
423
+ for (let i = 0; i < len; i++) {
390
424
  if (ary[i]._checkbox.checked) {
391
425
  selected = true;
392
426
  break;
@@ -36,6 +36,11 @@ declare namespace FilterDialog {
36
36
  sortChanged?: ((...params: any[]) => any)|null
37
37
  };
38
38
 
39
+ type ComboBoxItem = {
40
+ label: string,
41
+ value: string
42
+ };
43
+
39
44
  }
40
45
 
41
46
  declare class FilterDialog extends BasicElement {
@@ -34,6 +34,11 @@ import "./checkbox-list.js";
34
34
  * @property {Function=} sortChanged Sort changed handler
35
35
  */
36
36
 
37
+ /**
38
+ * @typedef {Object} FilterDialog~ComboBoxItem
39
+ * @property {string} label text of item
40
+ * @property {string} value value of item when item is selected
41
+ */
37
42
 
38
43
  /** @type {string}
39
44
  * @private
@@ -111,9 +116,9 @@ const NUMBER_FILTERS = [
111
116
  /** @private
112
117
  * @function
113
118
  * @param {Array.<String>} options
114
- * @returns {Object}
119
+ * @returns {FilterDialog~ComboBoxItem}
115
120
  */
116
- var arrayToComboBoxItem = function(options) {
121
+ let arrayToComboBoxItem = function(options) {
117
122
  return {
118
123
  label: options[1],
119
124
  value: options[0]
@@ -124,7 +129,7 @@ var arrayToComboBoxItem = function(options) {
124
129
  * @param {Array.<Array>} conditions
125
130
  * @returns {Array.<Object>}
126
131
  */
127
- var createComboBoxData = function(conditions) {
132
+ let createComboBoxData = function(conditions) {
128
133
  return conditions.map(arrayToComboBoxItem);
129
134
  };
130
135
 
@@ -199,7 +204,7 @@ class FilterDialog extends BasicElement {
199
204
  }
200
205
 
201
206
  if(changedProperties.has("config")) {
202
- var options = this.config;
207
+ let options = this.config;
203
208
  if(options) {
204
209
  if (options.data) {
205
210
  this.data = options.data;
@@ -287,8 +292,8 @@ class FilterDialog extends BasicElement {
287
292
  * @return {*}
288
293
  */
289
294
  render() {
290
- var lang = this._translation[this._lang] ? this._lang : "en";
291
- var t = this._translation[lang];
295
+ let lang = this._translation[this._lang] ? this._lang : "en";
296
+ let t = this._translation[lang];
292
297
  return html`
293
298
  <ef-panel id="root_panel" spacing with-shadow with-border>
294
299
  <div id="filterDialogContent" class="filter-dialog dialog-theme-wrapper">
@@ -420,9 +425,9 @@ class FilterDialog extends BasicElement {
420
425
  */
421
426
  updated(changedProps) {
422
427
  // Update Sort UI
423
- var isHiddenSortUIChanged = changedProps.has("hiddenSortUI");
424
- var isHiddenFilterUIChanged = changedProps.has("hiddenFilterUI");
425
- var isHiddenAdvancedFilterChanged = changedProps.has("hiddenAdvancedFilter");
428
+ let isHiddenSortUIChanged = changedProps.has("hiddenSortUI");
429
+ let isHiddenFilterUIChanged = changedProps.has("hiddenFilterUI");
430
+ let isHiddenAdvancedFilterChanged = changedProps.has("hiddenAdvancedFilter");
426
431
  if (isHiddenSortUIChanged) {
427
432
  let pn = this._sortUI.parentNode;
428
433
  if (this.hiddenSortUI) {
@@ -458,7 +463,7 @@ class FilterDialog extends BasicElement {
458
463
  }
459
464
 
460
465
  if (isHiddenSortUIChanged || isHiddenFilterUIChanged) {
461
- var isHide = this.hiddenSortUI || this.hiddenFilterUI;
466
+ let isHide = this.hiddenSortUI || this.hiddenFilterUI;
462
467
  this._separator.classList.toggle("hide", isHide);
463
468
  }
464
469
  if(isHiddenAdvancedFilterChanged) {
@@ -490,7 +495,7 @@ class FilterDialog extends BasicElement {
490
495
  this._cancelBtn.focus(); // Keep focus on cancel button when open dialog
491
496
  this._updateDialogHeight(); // position of the popup element will always be updated
492
497
 
493
- var popupElem = this._popup.getElement();
498
+ let popupElem = this._popup.getElement();
494
499
  if(popupElem) {// After all changes, ensure that visibility is reset back
495
500
  popupElem.style.visibility = "";
496
501
  }
@@ -508,7 +513,7 @@ class FilterDialog extends BasicElement {
508
513
  * @public
509
514
  */
510
515
  show() {
511
- var popupElem = this._popup.getElement();
516
+ let popupElem = this._popup.getElement();
512
517
  if(popupElem) {// To prevent blinking due to size and position change
513
518
  popupElem.style.visibility = "hidden";
514
519
  }
@@ -664,9 +669,9 @@ class FilterDialog extends BasicElement {
664
669
  if (this._isAdvancedFilterMode()) {
665
670
  // Retrieve filter conditions from UI;
666
671
  let oper1, oper2, val1, val2, connector;
667
- var dateTimeType = toDateTimeType(this.fieldDataType);
668
- var fdt = dateTimeType ? dateTimeType : this.fieldDataType.toLowerCase();
669
- var useUTCTime = false;
672
+ let dateTimeType = toDateTimeType(this.fieldDataType);
673
+ let fdt = dateTimeType ? dateTimeType : this.fieldDataType.toLowerCase();
674
+ let useUTCTime = false;
670
675
  if (fdt === DATE_TIME) {
671
676
  useUTCTime = this.useUTCTime;
672
677
  oper1 = this._dateTimeComboBoxes[0].value;
@@ -699,7 +704,7 @@ class FilterDialog extends BasicElement {
699
704
 
700
705
  // Perform automatic data type conversion for only number field data type
701
706
  if (fdt === "number") {
702
- var num = NaN;
707
+ let num = NaN;
703
708
  if (val1) {
704
709
  num = Number(val1);
705
710
  if(num === num) { // Convert to number only when number is valid
@@ -715,7 +720,7 @@ class FilterDialog extends BasicElement {
715
720
  }
716
721
  }
717
722
  }
718
- var ary2D = [];
723
+ let ary2D = [];
719
724
 
720
725
  if(this._isValidCondition(oper1, val1)) {
721
726
  ary2D.push([oper1, val1]);
@@ -757,9 +762,9 @@ class FilterDialog extends BasicElement {
757
762
  * @private
758
763
  */
759
764
  _clearAdvanceFilterUI() {
760
- var defaultVal = "";
761
- var dateTimeType = toDateTimeType(this.fieldDataType);
762
- var fdt = dateTimeType ? dateTimeType : this.fieldDataType.toLowerCase();
765
+ let defaultVal = "";
766
+ let dateTimeType = toDateTimeType(this.fieldDataType);
767
+ let fdt = dateTimeType ? dateTimeType : this.fieldDataType.toLowerCase();
763
768
  if (fdt === DATE_TIME) {
764
769
  defaultVal = "DT";
765
770
  this._clearValue(this._dateTimeComboBoxes[0], defaultVal);
@@ -785,9 +790,9 @@ class FilterDialog extends BasicElement {
785
790
  */
786
791
  _updateGeneralComboBoxes() {
787
792
  if(this._initialized) {
788
- var filterItems;
789
- var dateTimeType = toDateTimeType(this.fieldDataType);
790
- var fdt = dateTimeType ? dateTimeType : this.fieldDataType.toLowerCase();
793
+ let filterItems;
794
+ let dateTimeType = toDateTimeType(this.fieldDataType);
795
+ let fdt = dateTimeType ? dateTimeType : this.fieldDataType.toLowerCase();
791
796
  if(fdt === "number") {
792
797
  filterItems = NUMBER_FILTERS;
793
798
  } else if(fdt === "string" || fdt === "text") {
@@ -798,7 +803,7 @@ class FilterDialog extends BasicElement {
798
803
  if(this._blankValues) {
799
804
  filterItems = filterItems.concat(BLANK_FILTERS);
800
805
  }
801
- var translated = this._translateFilters(filterItems);
806
+ let translated = this._translateFilters(filterItems);
802
807
  this._generalComboBoxes[0].data = createComboBoxData(translated);
803
808
  this._generalComboBoxes[2].data = createComboBoxData(translated);
804
809
  }
@@ -828,7 +833,7 @@ class FilterDialog extends BasicElement {
828
833
  // So wee need to remove free-text and re-set again
829
834
  // to track bug https://jira.refinitiv.com/browse/ELF-1694
830
835
  // TODO:: need to remove WORKAROUND after ELF-1694 fixed
831
- var hasFreeTextMode = elem.getAttribute("free-text") != null;
836
+ let hasFreeTextMode = elem.getAttribute("free-text") != null;
832
837
  if (hasFreeTextMode) {
833
838
  elem.removeAttribute("free-text");
834
839
  }
@@ -874,10 +879,10 @@ class FilterDialog extends BasicElement {
874
879
  }
875
880
 
876
881
  const con1 = userConditions[0];
877
- var validCon1 = false;
878
- var conOp1 = "";
879
- var conVal1 = "";
880
- var connector = "";
882
+ let validCon1 = false;
883
+ let conOp1 = "";
884
+ let conVal1 = "";
885
+ let connector = "";
881
886
  if(Array.isArray(con1)) {
882
887
  conOp1 = con1[0];
883
888
  if(con1.length && con1[0]) {
@@ -892,9 +897,9 @@ class FilterDialog extends BasicElement {
892
897
  }
893
898
 
894
899
  const con2 = userConditions[1];
895
- var validCon2 = false;
896
- var conOp2 = "";
897
- var conVal2 = "";
900
+ let validCon2 = false;
901
+ let conOp2 = "";
902
+ let conVal2 = "";
898
903
  if(validCon1 && Array.isArray(con2)) {
899
904
  conOp2 = con2[0];
900
905
  if(con2.length && conOp2) {
@@ -907,7 +912,7 @@ class FilterDialog extends BasicElement {
907
912
  }
908
913
  }
909
914
 
910
- var firstRadioState = true;
915
+ let firstRadioState = true;
911
916
  if(validCon1 && validCon2) {
912
917
  firstRadioState = connector !== "OR";
913
918
  }
@@ -966,7 +971,7 @@ class FilterDialog extends BasicElement {
966
971
  const dialogCoverage = position.y + dialogHeight;
967
972
  const heightDiff = dialogCoverage - windowHeight;
968
973
 
969
- var heightChange = false;
974
+ let heightChange = false;
970
975
  if(heightDiff > 0) {
971
976
  heightChange = true;
972
977
  const isAdvancedFilter = this._isAdvancedFilterMode();
@@ -1007,7 +1012,7 @@ class FilterDialog extends BasicElement {
1007
1012
  * @private
1008
1013
  */
1009
1014
  _addBlankItem() {
1010
- var ary = this._dataToArray(this.data);
1015
+ let ary = this._dataToArray(this.data);
1011
1016
  if(this._blankValues) {
1012
1017
  let blankItem = {
1013
1018
  id: "_blank",
@@ -1026,16 +1031,22 @@ class FilterDialog extends BasicElement {
1026
1031
  * @private
1027
1032
  */
1028
1033
  _updateValueSelector() {
1029
- var ary = this._dataToArray(this.data);
1034
+ let ary = this._dataToArray(this.data);
1030
1035
  this._dataSelector.data = ary; // Preserve original referencing
1031
1036
  // Value selector for Filter by Condition
1032
1037
  if(ary.length > ITEM_LIMIT) {
1033
1038
  ary = ary.slice(0, ITEM_LIMIT); // Prevent combo box from over population
1034
1039
  }
1035
1040
  // Advance items
1036
- var advanceItems = ary.map(this._toComboBoxItem);
1041
+ let advanceItems = [];
1042
+ for (let i = 0; i < ary.length; i++) {
1043
+ let item = ary[i];
1044
+ if(!item.type) {
1045
+ advanceItems.push(this._toComboBoxItem(item));
1046
+ }
1047
+ }
1037
1048
  if(this._blankValues) {
1038
- var basicItems = advanceItems.slice(1);
1049
+ let basicItems = advanceItems.slice(1);
1039
1050
  this._generalComboBoxes[1].data = basicItems;
1040
1051
  this._generalComboBoxes[3].data = basicItems;
1041
1052
  } else {
@@ -1046,10 +1057,10 @@ class FilterDialog extends BasicElement {
1046
1057
  /**
1047
1058
  * @private
1048
1059
  * @param {*} obj
1049
- * @returns {Object}
1060
+ * @returns {FilterDialog~ComboBoxItem}
1050
1061
  */
1051
1062
  _toComboBoxItem(obj) {
1052
- let itemVal = (typeof obj === "string") ? obj : obj.title || "";
1063
+ let itemVal = (typeof obj === "string") ? obj : (obj.label || obj.title) || "";
1053
1064
  return {
1054
1065
  "label": itemVal,
1055
1066
  "value": itemVal
@@ -1076,7 +1087,7 @@ class FilterDialog extends BasicElement {
1076
1087
  * @return {Date}
1077
1088
  */
1078
1089
  _getDateObject(dateString) {
1079
- var date = new Date(dateString);
1090
+ let date = new Date(dateString);
1080
1091
  if(date && this.useUTCTime == false){
1081
1092
  date.setTime(date.getTime() + (date.getTimezoneOffset() * 60000)); // convert to local time
1082
1093
  }
@@ -1088,7 +1099,7 @@ class FilterDialog extends BasicElement {
1088
1099
  * @return {Object}
1089
1100
  */
1090
1101
  _getTranslation() {
1091
- var lang = this._translation[this._lang] ? this._lang : "en";
1102
+ let lang = this._translation[this._lang] ? this._lang : "en";
1092
1103
  return this._translation[lang];
1093
1104
  }
1094
1105
 
@@ -1099,10 +1110,10 @@ class FilterDialog extends BasicElement {
1099
1110
  */
1100
1111
  _translateFilters(filters) {
1101
1112
  let trans = this._getTranslation();
1102
- var len = filters.length;
1103
- var items = [];
1104
- var item;
1105
- for (var i = 0; i < len; i++) {
1113
+ let len = filters.length;
1114
+ let items = [];
1115
+ let item;
1116
+ for (let i = 0; i < len; i++) {
1106
1117
  item = filters[i];
1107
1118
  items.push([item[0], trans[item[1]]]);
1108
1119
  }
package/lib/grid/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import {Grid} from "./lib/efx-grid.js";
2
2
  export {Grid}
3
- window.EFX_GRID = { version: "6.0.111" };
3
+ window.EFX_GRID = { version: "6.0.113" };