@refinitiv-ui/efx-grid 6.0.71 → 6.0.73

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.
Files changed (37) hide show
  1. package/lib/column-selection-dialog/lib/column-selection-dialog.js +9 -7
  2. package/lib/column-selection-dialog/themes/base.less +4 -8
  3. package/lib/column-selection-dialog/themes/elemental/dark/column-selection-dialog.js +1 -1
  4. package/lib/column-selection-dialog/themes/elemental/dark/es5/all-elements.js +1 -1
  5. package/lib/column-selection-dialog/themes/elemental/light/column-selection-dialog.js +1 -1
  6. package/lib/column-selection-dialog/themes/elemental/light/es5/all-elements.js +1 -1
  7. package/lib/column-selection-dialog/themes/halo/column-selection-dialog.less +3 -0
  8. package/lib/column-selection-dialog/themes/halo/dark/column-selection-dialog.js +1 -1
  9. package/lib/column-selection-dialog/themes/halo/dark/es5/all-elements.js +1 -1
  10. package/lib/column-selection-dialog/themes/halo/light/column-selection-dialog.js +1 -1
  11. package/lib/column-selection-dialog/themes/halo/light/es5/all-elements.js +1 -1
  12. package/lib/column-selection-dialog/themes/solar/charcoal/column-selection-dialog.js +1 -1
  13. package/lib/column-selection-dialog/themes/solar/charcoal/es5/all-elements.js +1 -1
  14. package/lib/column-selection-dialog/themes/solar/column-selection-dialog.less +5 -1
  15. package/lib/column-selection-dialog/themes/solar/pearl/column-selection-dialog.js +1 -1
  16. package/lib/column-selection-dialog/themes/solar/pearl/es5/all-elements.js +1 -1
  17. package/lib/core/dist/core.js +2 -2
  18. package/lib/core/dist/core.min.js +1 -1
  19. package/lib/core/es6/grid/Core.js +2 -2
  20. package/lib/filter-dialog/lib/filter-dialog.js +75 -36
  21. package/lib/grid/index.js +1 -1
  22. package/lib/rt-grid/dist/rt-grid.js +33 -14
  23. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  24. package/lib/rt-grid/es6/Grid.d.ts +1 -1
  25. package/lib/rt-grid/es6/Grid.js +24 -12
  26. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +27 -24
  27. package/lib/tr-grid-filter-input/es6/FilterInput.d.ts +2 -0
  28. package/lib/tr-grid-filter-input/es6/FilterInput.js +49 -13
  29. package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +1 -1
  30. package/lib/tr-grid-row-filtering/es6/RowFiltering.js +103 -15
  31. package/lib/tr-grid-util/es6/FilterBuilder.d.ts +3 -1
  32. package/lib/tr-grid-util/es6/FilterBuilder.js +26 -2
  33. package/lib/types/es6/FilterInput.d.ts +2 -0
  34. package/lib/types/es6/RealtimeGrid/Grid.d.ts +1 -1
  35. package/lib/types/es6/RowFiltering.d.ts +1 -1
  36. package/lib/versions.json +6 -6
  37. package/package.json +1 -1
@@ -570,7 +570,7 @@ Core.prototype._firstRendered = false;
570
570
  * @return {string}
571
571
  */
572
572
  Core.getVersion = function () {
573
- return "5.1.80";
573
+ return "5.1.81";
574
574
  };
575
575
  /** {@link ElementWrapper#dispose}
576
576
  * @override
@@ -5441,7 +5441,7 @@ Core.prototype._onRowHeightChanged = function (e) {
5441
5441
  // TODO: Set row height one by one is not good
5442
5442
  for(var j = 0; j < len; ++j) {
5443
5443
  var evt = evts[j];
5444
- var section = /** @type {ILayoutGrid} */(evt["sender"]);
5444
+ var section = /** @type {ILayoutGrid} */(evt["section"]);
5445
5445
  if(!this._containsSection(section)) {
5446
5446
  continue; // The section is no longer contained in this grid
5447
5447
  }
@@ -676,7 +676,7 @@ class FilterDialog extends BasicElement {
676
676
 
677
677
  if(useUTCTime) {
678
678
  ary2D.forEach(function(itm) {
679
- item[3] = true;
679
+ itm[3] = true;
680
680
  });
681
681
  }
682
682
 
@@ -812,41 +812,84 @@ class FilterDialog extends BasicElement {
812
812
  }
813
813
  }
814
814
 
815
- // Params is an array
816
- if (Array.isArray(userConditions)) {
817
- let conditions = /** @type{Array} */ (userConditions);
818
- const con1 = conditions[0] || [];
819
- const con2 = conditions[1] || [];
820
- const con2Complete = con2.length > 1 && con2[0] && con2[1];
821
- const connector = con1[2] || "";
822
- const firstRadioState = connector !== "OR" || !con2Complete;
823
- const isDateTimeField = toDateTimeType(this.fieldDataType) ? true : false;
824
- if (isDateTimeField) {
825
- if (con1[0]) {
826
- this._dateTimeComboBoxes[0].value = con1[0];
827
- this._dateTimePickers[0].value = con1[1] ? this._getDateString(con1[1]) : "";
828
-
829
- if (con2Complete) {
830
- this._dateTimeComboBoxes[1].value = con2[0];
831
- this._dateTimePickers[1].value = con2[1] ? this._getDateString(con2[1]) : "";
832
- }
815
+ if (!Array.isArray(userConditions)) {
816
+ return;
817
+ }
818
+
819
+ const con1 = userConditions[0];
820
+ var validCon1 = false;
821
+ var conOp1 = "";
822
+ var conVal1 = "";
823
+ var connector = "";
824
+ if(Array.isArray(con1)) {
825
+ conOp1 = con1[0];
826
+ if(con1.length && con1[0]) {
827
+ conVal1 = con1[1];
828
+ if(conVal1 || conVal1 === 0 || conVal1 === false) {
829
+ validCon1 = true;
830
+ connector = con1[2] || "";
831
+ } else {
832
+ conVal1 = "";
833
833
  }
834
- this._dateTimeRadioBtns[0].checked = firstRadioState;
835
- this._dateTimeRadioBtns[1].checked = !firstRadioState;
836
- } else {
837
- if (con1[0]) {
838
- this._generalComboBoxes[0].value = con1[0];
839
- this._generalComboBoxes[1].value = con1[1] || "";
834
+ }
835
+ }
840
836
 
841
- if (con2Complete) {
842
- this._generalComboBoxes[2].value = con2[0];
843
- this._generalComboBoxes[3].value = con2[1] || "";
844
- }
837
+ const con2 = userConditions[1];
838
+ var validCon2 = false;
839
+ var conOp2 = "";
840
+ var conVal2 = "";
841
+ if(validCon1 && Array.isArray(con2)) {
842
+ conOp2 = con2[0];
843
+ if(con2.length && conOp2) {
844
+ conVal2 = con2[1];
845
+ if(conVal2 || conVal2 === 0 || conVal2 === false) {
846
+ validCon2 = true;
847
+ } else {
848
+ conVal2 = "";
845
849
  }
846
- this._generalRadioBtns[0].checked = firstRadioState;
847
- this._generalRadioBtns[1].checked = !firstRadioState;
848
850
  }
849
851
  }
852
+
853
+ var firstRadioState = true;
854
+ if(validCon1 && validCon2) {
855
+ firstRadioState = connector !== "OR";
856
+ }
857
+
858
+ if (toDateTimeType(this.fieldDataType)) {
859
+ if (validCon1) {
860
+ this._updateConditionUIs(this._dateTimeComboBoxes[0], this._dateTimePickers[0], conOp1, this._getDateString(conVal1));
861
+ }
862
+ if (validCon2) {
863
+ this._updateConditionUIs(this._dateTimeComboBoxes[1], this._dateTimePickers[1], conOp2, this._getDateString(conVal2));
864
+ }
865
+ this._updateConnectorUIs(this._dateTimeRadioBtns, firstRadioState);
866
+ } else {
867
+ if (validCon1) {
868
+ this._updateConditionUIs(this._generalComboBoxes[0], this._generalComboBoxes[1], conOp1, conVal1);
869
+ }
870
+ if (validCon2) {
871
+ this._updateConditionUIs(this._generalComboBoxes[2], this._generalComboBoxes[3], conOp2, conVal2);
872
+ }
873
+ this._updateConnectorUIs(this._generalRadioBtns, firstRadioState);
874
+ }
875
+ }
876
+ /** @private
877
+ * @param {Element} opCombobox
878
+ * @param {Element} valuePicker
879
+ * @param {string} opValue
880
+ * @param {string} value
881
+ */
882
+ _updateConditionUIs(opCombobox, valuePicker, opValue, value) {
883
+ opCombobox.value = opValue;
884
+ valuePicker.value = value;
885
+ }
886
+ /** @private
887
+ * @param {Array.<Element>} connectors
888
+ * @param {boolean} connectorValue
889
+ */
890
+ _updateConnectorUIs(connectors, connectorValue) {
891
+ connectors[0].checked = connectorValue;
892
+ connectors[1].checked = !connectorValue;
850
893
  }
851
894
  /** @private
852
895
  * @returns {boolean}
@@ -926,14 +969,10 @@ class FilterDialog extends BasicElement {
926
969
  * @return {string}
927
970
  */
928
971
  _getDateString(date) {
929
- var dateString = "";
930
- var dateFormat = "yyyy-MM-dd";
931
972
  if(!(date instanceof Date)){
932
973
  date = new Date(date);
933
974
  }
934
- dateString = DateTime.format(date.getTime(), dateFormat, this.useUTCTime ? "GMT" : "LOCAL");
935
-
936
- return dateString;
975
+ return DateTime.format(date.getTime(), "yyyy-MM-dd", this.useUTCTime ? "GMT" : "LOCAL");
937
976
  }
938
977
 
939
978
  /**
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.71" };
3
+ window.EFX_GRID = { version: "6.0.73" };
@@ -35112,7 +35112,14 @@ VirtualizedLayoutGrid.prototype.getFirstIndexInView = function () {
35112
35112
 
35113
35113
  /** @inheritDoc */
35114
35114
  VirtualizedLayoutGrid.prototype.getLastIndexInView = function () {
35115
- return this._firstIndex + this._getInnerRowCount() - 1;
35115
+ var li = this._firstIndex + this._getInnerRowCount() - 1;
35116
+ var core = this._grid._getContext();
35117
+ var dv = core.getDataSource();
35118
+ var actualLastIndex = dv ? dv.getRowCount() - 1 : -1;
35119
+ if (li > actualLastIndex) { //Avoid incorrect index because the delay of row count synchronization after filtering
35120
+ return actualLastIndex;
35121
+ }
35122
+ return li;
35116
35123
  };
35117
35124
 
35118
35125
  /** @inheritDoc */
@@ -36228,7 +36235,7 @@ Core.prototype._firstRendered = false;
36228
36235
  * @return {string}
36229
36236
  */
36230
36237
  Core.getVersion = function () {
36231
- return "5.1.78";
36238
+ return "5.1.80";
36232
36239
  };
36233
36240
  /** {@link ElementWrapper#dispose}
36234
36241
  * @override
@@ -46686,7 +46693,7 @@ Grid.prototype.addStaticDataRows = function(dataRows, fields) {
46686
46693
  /** Insert, update, remove and reorder data based on the given array of records
46687
46694
  * @public
46688
46695
  * @param {Array.<Object>} records Array of records for insert, remove, update, reorder in one operation
46689
- * @param {string} rowIdentifier Check difference data with the row identifier map property for operate record.
46696
+ * @param {string=} rowIdentifier Check difference data with the row identifier map property for operate record.
46690
46697
  * @example
46691
46698
  * // Grid data set will be updated to 3 records. All rows in the grid will be cleared and new rows will be inserted
46692
46699
  * grid.updateDataSet([
@@ -46738,14 +46745,25 @@ Grid.prototype.updateDataSet = function(records, rowIdentifier) {
46738
46745
  var rowDef, id, record, i;
46739
46746
  var rowDefs = this.getAllRowDefinitions(); // Include the filter/hidden rows
46740
46747
  var rowDefCount = rowDefs.length;
46741
- for (i = 0; i < rowDefCount; i++) {
46742
- rowDef = rowDefs[i];
46743
- if(rowDef) {
46744
- id = rowDef.getRowData()[rowIdentifier];
46745
- if(id || id === 0) {
46746
- oldDataMap[id] = rowDef;
46747
- } else { // Any existing rowDef without row identifier should be removed
46748
- this.removeRow(rowDef); // Slow
46748
+ if(rowIdentifier) {
46749
+ for (i = 0; i < rowDefCount; i++) {
46750
+ rowDef = rowDefs[i];
46751
+ if(rowDef) {
46752
+ id = rowDef.getRowData()[rowIdentifier];
46753
+ if(id || id === 0) {
46754
+ oldDataMap[id] = rowDef;
46755
+ } else { // Any existing rowDef without row identifier should be removed
46756
+ this.removeRow(rowDef); // Slow
46757
+ }
46758
+ }
46759
+ }
46760
+ } else {
46761
+ for (i = 0; i < rowDefCount; i++) {
46762
+ record = records[i];
46763
+ if(record) {
46764
+ oldDataMap[i] = rowDefs[i]; // Use index instead of rowIdentifier
46765
+ } else {
46766
+ this.removeRow(rowDefs[i]); // Need to use rowRef, can't use index in view
46749
46767
  }
46750
46768
  }
46751
46769
  }
@@ -46755,7 +46773,7 @@ Grid.prototype.updateDataSet = function(records, rowIdentifier) {
46755
46773
  var newDataMap = {};
46756
46774
  for (i = recordCount - 1; i >= 0; i--) {
46757
46775
  record = records[i];
46758
- id = record[rowIdentifier];
46776
+ id = rowIdentifier ? record[rowIdentifier] : i;
46759
46777
  rowDef = oldDataMap[id];
46760
46778
  newDataMap[id] = record; // Assign a new data map to compare to the previous data
46761
46779
  record[fieldSorting] = i;
@@ -46777,8 +46795,9 @@ Grid.prototype.updateDataSet = function(records, rowIdentifier) {
46777
46795
  }
46778
46796
  }
46779
46797
 
46780
- // Sorting
46781
- this._dt.sortOnce(ROW_DEF, "a", compareNumber, fieldSorting);
46798
+ if(rowIdentifier) {
46799
+ this._dt.sortOnce(ROW_DEF, "a", compareNumber, fieldSorting);
46800
+ }
46782
46801
  };
46783
46802
  /** @private
46784
46803
  * @param {Array|Object} item