@refinitiv-ui/efx-grid 6.0.82 → 6.0.83

Sign up to get free protection for your applications and to get access to all the features.
@@ -570,7 +570,7 @@ Core.prototype._firstRendered = false;
570
570
  * @return {string}
571
571
  */
572
572
  Core.getVersion = function () {
573
- return "5.1.85";
573
+ return "5.1.86";
574
574
  };
575
575
  /** {@link ElementWrapper#dispose}
576
576
  * @override
@@ -1179,6 +1179,10 @@ SortableTitlePlugin.prototype._proceedSorting = function (hitObj) {
1179
1179
  if (state) {
1180
1180
  this._sortColumn([state], { "isUserAction": true });
1181
1181
  }
1182
+ var grid = hitObj["grid"];
1183
+ if(grid && grid["focus"]) {
1184
+ grid["focus"]();
1185
+ }
1182
1186
 
1183
1187
  if (this._hasListener("clicked")) {
1184
1188
  var ce = {};
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.82" };
3
+ window.EFX_GRID = { version: "6.0.83" };
@@ -406,7 +406,6 @@ CellSelectionPlugin.prototype._onMouseDown = function (e) {
406
406
  }
407
407
  this._dirty = true;
408
408
  this.selectSingleCell(newAnchor);
409
- activeGrid.setAttribute("draggable", "true");
410
409
  this._draggable = true;
411
410
  };
412
411
 
@@ -664,7 +663,6 @@ CellSelectionPlugin.prototype._onMouseUp = function (e) {
664
663
  if (this._disabled || !this._dirty) {
665
664
  return;
666
665
  }
667
- this._hosts[0].removeAttribute("draggable");
668
666
  this._draggable = false;
669
667
 
670
668
  // WORKAROUND: FOR IE11
@@ -1649,7 +1649,9 @@ CheckboxPlugin.prototype._onPostSectionDataBinding = function (e) {
1649
1649
  }
1650
1650
  }
1651
1651
 
1652
- this._syncAscendantState(e["sectionSettings"], null, dv);
1652
+ if(e.actualUpdate) {
1653
+ this._syncAscendantState(e["sectionSettings"], null, dv);
1654
+ }
1653
1655
  };
1654
1656
 
1655
1657
 
@@ -4,27 +4,27 @@ import { GridPlugin } from '../../tr-grid-util/es6/GridPlugin.js';
4
4
  declare namespace ColumnFitterPlugin {
5
5
 
6
6
  type Options = {
7
- proportion?: boolean,
8
- constraint?: boolean,
9
- autoAdjust?: (boolean|number),
10
- autoAdjusting?: (boolean|number),
11
- title?: boolean,
12
- paddingSize?: number,
13
- shrinkable?: boolean
7
+ proportion?: boolean|null,
8
+ constraint?: boolean|null,
9
+ autoAdjust?: (boolean|number)|null,
10
+ autoAdjusting?: (boolean|number)|null,
11
+ title?: boolean|null,
12
+ paddingSize?: number|null,
13
+ shrinkable?: boolean|null
14
14
  };
15
15
 
16
16
  type ColumnOptions = {
17
- noFitting?: boolean,
18
- contentFitting?: boolean,
19
- minWidth?: number,
20
- maxWidth?: number
17
+ noFitting?: boolean|null,
18
+ contentFitting?: boolean|null,
19
+ minWidth?: number|null,
20
+ maxWidth?: number|null
21
21
  };
22
22
 
23
23
  }
24
24
 
25
25
  declare class ColumnFitterPlugin extends GridPlugin {
26
26
 
27
- constructor(options?: ColumnFitterPlugin.Options);
27
+ constructor(options?: ColumnFitterPlugin.Options|null);
28
28
 
29
29
  public getName(): string;
30
30
 
@@ -32,15 +32,15 @@ declare class ColumnFitterPlugin extends GridPlugin {
32
32
 
33
33
  public unload(host: any): void;
34
34
 
35
- public config(options?: ColumnFitterPlugin.Options): void;
35
+ public config(options?: ColumnFitterPlugin.Options|null): void;
36
36
 
37
37
  public getConfigObject(gridOptions?: any): any;
38
38
 
39
39
  public getColumnMenu(colIndex: number, config: any): any;
40
40
 
41
- public adjustColumnWidth(colIndex?: (number)[]): boolean;
41
+ public adjustColumnWidth(colIndex?: (number)[]|null): boolean;
42
42
 
43
- public adjustColumns(colIndices?: (number)[], force?: boolean): boolean;
43
+ public adjustColumns(colIndices?: (number)[]|null, force?: boolean|null): boolean;
44
44
 
45
45
  public adjustAllColumns(): boolean;
46
46
 
@@ -757,9 +757,10 @@ ColumnFitterPlugin.prototype._getColumnFitContentWidth = function (colIndex) {
757
757
 
758
758
  for (var s = 0; s < sectionCount; s++) {
759
759
  var section = sections[s];
760
- var rowCount = section.getRowCount();
760
+ var fi = section.getFirstIndexInView();
761
+ var li = section.getLastIndexInView() + 1;
761
762
 
762
- for (var r = 0; r < rowCount; r++) {
763
+ for (var r = fi; r < li; r++) {
763
764
  var cell = section.getCell(colIndex, r, false);
764
765
 
765
766
  if (!cell) {
@@ -827,9 +828,10 @@ ColumnFitterPlugin.prototype._getColumnFitContentText = function (colIndex) {
827
828
 
828
829
  for (var s = 0; s < sectionCount; s++) {
829
830
  var section = sections[s];
830
- var rowCount = section.getRowCount();
831
+ var fi = section.getFirstIndexInView();
832
+ var li = section.getLastIndexInView() + 1;
831
833
 
832
- for (var r = 0; r < rowCount; r++) {
834
+ for (var r = fi; r < li; r++) {
833
835
  var cell = section.getCell(colIndex, r, false); // Ignore cell span
834
836
 
835
837
  if (!cell) {
@@ -1118,6 +1118,9 @@ ConditionalColoringPlugin._fb = null;
1118
1118
 
1119
1119
  /** @private */
1120
1120
  ConditionalColoringPlugin.prototype._requestRowRefresh = function () {
1121
+ if(!this._hasColoring()){
1122
+ return;
1123
+ }
1121
1124
  for(var i = this._hosts.length; --i >= 0;) {
1122
1125
  this._hosts[i].requestRowRefresh();
1123
1126
  }
@@ -1454,6 +1457,21 @@ ConditionalColoringPlugin._stopCleanUpInterval = function() {
1454
1457
  ConditionalColoringPlugin._cleanUpTimer = 0;
1455
1458
  }
1456
1459
  };
1460
+ /** @private
1461
+ * @return {Boolean}
1462
+ */
1463
+ ConditionalColoringPlugin.prototype._hasColoring = function() {
1464
+ var hosts = this._hosts;
1465
+ var grid = hosts[0];
1466
+
1467
+ var colCount = this.getColumnCount();
1468
+ for(var colIndex = 0; colIndex < colCount; colIndex++){
1469
+ if(grid.hasColumnClass(colIndex, "conditionally-colored")){
1470
+ return true;
1471
+ }
1472
+ }
1473
+ return false;
1474
+ };
1457
1475
 
1458
1476
  /** @public
1459
1477
  * @description Deprecated:: Should use reloadThemeColors instead
@@ -591,17 +591,6 @@ RowSelectionPlugin.prototype._onClick = function (e) {
591
591
  }
592
592
  this._dispatchSelectionChanged(e);
593
593
  }
594
- if(this._activeGrid != null){
595
- var selectionText;
596
- if(this._isIE) {
597
- selectionText = document.selection.createRange().htmlText;
598
- } else {
599
- selectionText = window.getSelection().toString();
600
- }
601
- if(!selectionText) { // Doesn't select text, tried to focus
602
- this._activeGrid.focus();
603
- }
604
- }
605
594
  };
606
595
  /** @public
607
596
  * @description Select a specified row as if it were clicked by a mouse. This is for testing purpose.
@@ -678,12 +667,13 @@ RowSelectionPlugin.prototype._onMouseDown = function (e) {
678
667
 
679
668
  var singleSelection = this._singleSelMode || !this._activeGrid || (this._activeGrid !== host); // New grid is clicked
680
669
  var section = ctx["section"];
670
+ var prevSel = section.isSelectedRow(rowIndex);
681
671
 
682
672
  if (!singleSelection) {
683
673
  if (e.shiftKey) { // Shift + Click: selects every rows start from anchor to clicked point. Anchor point doesn't change.
684
674
  this._selectFromAnchorToTarget(section, rowIndex);
685
675
  } else if ((e.ctrlKey && !isMac) || (isMac && !e.ctrlKey && e.metaKey)) { // Ctrl(windows)/Command(macOS) + Click: additionally selects a row without deselect all others.
686
- this._sectionSetSelectedRow(section, rowIndex, !section.isSelectedRow(rowIndex));
676
+ this._sectionSetSelectedRow(section, rowIndex, !prevSel);
687
677
  } else {
688
678
  singleSelection = true;
689
679
  }
@@ -691,7 +681,7 @@ RowSelectionPlugin.prototype._onMouseDown = function (e) {
691
681
 
692
682
  if (singleSelection) { // Click: selects a single row
693
683
  this._anchorSection = section;
694
- if (section.isSelectedRow(rowIndex)) { // Click on the selected row
684
+ if (prevSel) { // Click on the selected row
695
685
  this._setPendingClickIndex(rowIndex, host); // Delay the operation to allow drag and drop operation
696
686
  return;
697
687
  } else { // Perform single click immediately
@@ -707,29 +697,11 @@ RowSelectionPlugin.prototype._onMouseDown = function (e) {
707
697
  }
708
698
  }
709
699
 
710
- // Native copy event will not be triggered, if there's no text selection.
711
- // So we will select text in hiddenInput
712
- // we can only use selection.addRange because it not hijack focus of other element
713
- // EXCEPT IE11 there is no way to select text without changing focus element
714
- var hiddenInput = host.getHiddenInput();
715
- if (hiddenInput) {
716
- // we cannot set start with hidden input
717
- // it will cause error in IE11
718
- // So we use hiddenInput parent instead
719
- this._textRange.setStart(hiddenInput.parentNode, 0);
720
- this._textRange.setEnd(hiddenInput, 0);
721
- var selection = window.getSelection();
722
- selection.removeAllRanges();
723
-
724
- // THIS WILL CAUSE IE11 FIRE BLUR EVENT AND CHANG FOCUS
725
- selection.addRange(this._textRange);
726
-
727
- // Cause in IE11, active element will change when perform text select
728
- // so we will make current grid focus again
729
- if (this._isIE) {
730
- host.getParent().focus();
731
- }
700
+ if(this._activeGrid && !prevSel) {
701
+ e.preventDefault();
702
+ this._activeGrid.focus();
732
703
  }
704
+
733
705
  if(!this._basedOnContent) { // Protect against rowPositionChanged and postBindingSection event
734
706
  this._updateMenuIcon();
735
707
  }
@@ -766,6 +766,30 @@ GridPlugin.prototype._activateColumnRenderer = function(colIndex, id, renderer)
766
766
  }
767
767
  };
768
768
 
769
+ /** @private
770
+ * @function
771
+ */
772
+ var _emptyFunc = function(){};
773
+ /** @private
774
+ * @type {Object.<string, number>}
775
+ * @constant
776
+ */
777
+ var KEY_MAP = {
778
+ "left": 37,
779
+ "right": 39,
780
+ "up": 38,
781
+ "down": 40,
782
+ "backspace": 8,
783
+ "tab": 9,
784
+ "enter": 13,
785
+ "esc": 27,
786
+ "escape": 27,
787
+ "space": 32,
788
+ "pageup": 33,
789
+ "pagedown": 34,
790
+ "del": 46,
791
+ "delete": 46
792
+ };
769
793
  /** @private
770
794
  * @param {number=} colIndex
771
795
  * @param {number=} rowIndex
@@ -782,6 +806,8 @@ GridPlugin.prototype._mockMouseEvent = function(colIndex, rowIndex, context) {
782
806
  }
783
807
 
784
808
  var evt = context ? context : {};
809
+ evt.preventDefault = _emptyFunc;
810
+ evt.stopPropagation = _emptyFunc;
785
811
 
786
812
  if (colIndex >= 0 && rowIndex >= 0) {
787
813
  var grid = this._activeGrid || this._hosts[0];
@@ -791,15 +817,6 @@ GridPlugin.prototype._mockMouseEvent = function(colIndex, rowIndex, context) {
791
817
 
792
818
  return evt;
793
819
  };
794
-
795
- var keyMap = {
796
- "left": 37,
797
- "right": 39,
798
- "up": 38,
799
- "down": 40,
800
- "tab": 9
801
- };
802
-
803
820
  /** @private
804
821
  * @param {number|string} keyCode
805
822
  * @param {Object=} context
@@ -807,12 +824,12 @@ var keyMap = {
807
824
  */
808
825
  GridPlugin.prototype._mockKeyboardEvent = function(keyCode, context) {
809
826
  var evt = context ? context : {};
810
- evt.preventDefault = function(){};
811
- evt.stopPropagation = function(){};
827
+ evt.preventDefault = _emptyFunc;
828
+ evt.stopPropagation = _emptyFunc;
812
829
 
813
830
  if (typeof keyCode === "string") {
814
- keyCode = keyCode.toLowerCase();
815
- keyCode = keyMap[keyCode];
831
+ var predefinedCode = KEY_MAP[keyCode.toLowerCase()] || 0;
832
+ keyCode = predefinedCode ? predefinedCode : keyCode.charCodeAt(0);
816
833
  }
817
834
  evt.keyCode = keyCode;
818
835
 
package/lib/versions.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
- "tr-grid-util": "1.3.135",
2
+ "tr-grid-util": "1.3.136",
3
3
  "tr-grid-printer": "1.0.17",
4
4
  "@grid/column-dragging": "1.0.16",
5
5
  "@grid/row-segmenting": "1.0.30",
6
6
  "@grid/statistics-row": "1.0.16",
7
7
  "@grid/zoom": "1.0.11",
8
8
  "tr-grid-auto-tooltip": "1.1.6",
9
- "tr-grid-cell-selection": "1.0.34",
10
- "tr-grid-checkbox": "1.0.63",
11
- "tr-grid-column-fitter": "1.0.39",
9
+ "tr-grid-cell-selection": "1.0.35",
10
+ "tr-grid-checkbox": "1.0.64",
11
+ "tr-grid-column-fitter": "1.0.40",
12
12
  "tr-grid-column-formatting": "0.9.35",
13
13
  "tr-grid-column-grouping": "1.0.57",
14
14
  "tr-grid-column-resizing": "1.0.28",
15
15
  "tr-grid-column-selection": "1.0.33",
16
16
  "tr-grid-column-stack": "1.0.74",
17
- "tr-grid-conditional-coloring": "1.0.68",
17
+ "tr-grid-conditional-coloring": "1.0.69",
18
18
  "tr-grid-content-wrap": "1.0.20",
19
19
  "tr-grid-contextmenu": "1.0.41",
20
20
  "tr-grid-filter-input": "0.9.37",
@@ -26,10 +26,10 @@
26
26
  "tr-grid-row-dragging": "1.0.31",
27
27
  "tr-grid-row-filtering": "1.0.66",
28
28
  "tr-grid-row-grouping": "1.0.86",
29
- "tr-grid-row-selection": "1.0.26",
29
+ "tr-grid-row-selection": "1.0.27",
30
30
  "tr-grid-rowcoloring": "1.0.25",
31
31
  "tr-grid-textformatting": "1.0.47",
32
- "tr-grid-titlewrap": "1.0.20",
32
+ "tr-grid-titlewrap": "1.0.21",
33
33
  "@grid/formatters": "1.0.51",
34
34
  "@grid/column-selection-dialog": "4.0.56",
35
35
  "@grid/filter-dialog": "4.0.62",
package/package.json CHANGED
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "version": "6.0.82"
69
+ "version": "6.0.83"
70
70
  }