@refinitiv-ui/efx-grid 6.0.78 → 6.0.80

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 (46) hide show
  1. package/lib/column-dragging/es6/ColumnDragging.js +1 -1
  2. package/lib/column-selection-dialog/lib/column-selection-dialog.js +12 -11
  3. package/lib/column-selection-dialog/lib/locale/translation-de.js +2 -1
  4. package/lib/column-selection-dialog/lib/locale/translation-en.js +2 -1
  5. package/lib/column-selection-dialog/lib/locale/translation-ja.js +2 -1
  6. package/lib/column-selection-dialog/lib/locale/translation-zh-hant.js +2 -1
  7. package/lib/column-selection-dialog/lib/locale/translation-zh.js +2 -1
  8. package/lib/column-selection-dialog/themes/base.less +45 -24
  9. package/lib/column-selection-dialog/themes/elemental/dark/column-selection-dialog.js +1 -1
  10. package/lib/column-selection-dialog/themes/elemental/dark/es5/all-elements.js +1 -1
  11. package/lib/column-selection-dialog/themes/elemental/light/column-selection-dialog.js +1 -1
  12. package/lib/column-selection-dialog/themes/elemental/light/es5/all-elements.js +1 -1
  13. package/lib/column-selection-dialog/themes/halo/dark/column-selection-dialog.js +1 -1
  14. package/lib/column-selection-dialog/themes/halo/dark/es5/all-elements.js +1 -1
  15. package/lib/column-selection-dialog/themes/halo/light/column-selection-dialog.js +1 -1
  16. package/lib/column-selection-dialog/themes/halo/light/es5/all-elements.js +1 -1
  17. package/lib/column-selection-dialog/themes/solar/charcoal/column-selection-dialog.js +1 -1
  18. package/lib/column-selection-dialog/themes/solar/charcoal/es5/all-elements.js +1 -1
  19. package/lib/column-selection-dialog/themes/solar/pearl/column-selection-dialog.js +1 -1
  20. package/lib/column-selection-dialog/themes/solar/pearl/es5/all-elements.js +1 -1
  21. package/lib/core/dist/core.js +26 -1
  22. package/lib/core/dist/core.min.js +1 -1
  23. package/lib/core/es6/data/DataView.d.ts +4 -0
  24. package/lib/core/es6/data/DataView.js +25 -0
  25. package/lib/core/es6/grid/Core.js +1 -1
  26. package/lib/filter-dialog/lib/filter-dialog.js +4 -2
  27. package/lib/formatters/es6/TextFormatter.js +6 -1
  28. package/lib/grid/index.js +1 -1
  29. package/lib/tr-grid-checkbox/es6/Checkbox.js +24 -3
  30. package/lib/tr-grid-column-selection/es6/ColumnSelection.d.ts +1 -2
  31. package/lib/tr-grid-column-selection/es6/ColumnSelection.js +12 -42
  32. package/lib/tr-grid-contextmenu/es6/ContextMenu.d.ts +1 -2
  33. package/lib/tr-grid-contextmenu/es6/ContextMenu.js +99 -132
  34. package/lib/tr-grid-row-grouping/es6/RowGrouping.d.ts +4 -0
  35. package/lib/tr-grid-row-grouping/es6/RowGrouping.js +51 -16
  36. package/lib/tr-grid-row-selection/es6/RowSelection.d.ts +1 -2
  37. package/lib/tr-grid-row-selection/es6/RowSelection.js +28 -51
  38. package/lib/tr-grid-util/es6/GridPlugin.d.ts +8 -0
  39. package/lib/tr-grid-util/es6/GridPlugin.js +95 -0
  40. package/lib/types/es6/ColumnSelection.d.ts +1 -2
  41. package/lib/types/es6/ContextMenu.d.ts +1 -2
  42. package/lib/types/es6/Core/data/DataView.d.ts +4 -0
  43. package/lib/types/es6/RowGrouping.d.ts +4 -0
  44. package/lib/types/es6/RowSelection.d.ts +1 -2
  45. package/lib/versions.json +10 -10
  46. package/package.json +1 -1
@@ -3,8 +3,7 @@ import { EventDispatcher } from "../../tr-grid-util/es6/EventDispatcher.js";
3
3
  import { GridPlugin } from "../../tr-grid-util/es6/GridPlugin.js";
4
4
  import { isMac as isMacFn } from "../../tr-grid-util/es6/Util.js";
5
5
  import { isIE, prepareTSVContent } from "../../tr-grid-util/es6/Util.js";
6
- import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
7
- import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
6
+ import { prettifyCss } from "../../tr-grid-util/es6/Util.js";
8
7
  var isMac = isMacFn();
9
8
  /** Fired when selection is changed by mouse down or key press. A change by JavaScript APIs will not trigger this event.
10
9
  * @event RowSelectionPlugin#selectionChanged
@@ -45,7 +44,6 @@ var RowSelectionPlugin = function (options) {
45
44
  t._onBeforeRowRemoved = t._onBeforeRowRemoved.bind(t);
46
45
  t._onReselection = t._onReselection.bind(t);
47
46
  t._onPostSectionDataBinding = t._onPostSectionDataBinding.bind(t);
48
- t._onThemeLoaded = t._onThemeLoaded.bind(t);
49
47
  t._onRowPositionChanged = t._onRowPositionChanged.bind(t);
50
48
  t._updateMenuIcon = t._updateMenuIcon.bind(t);
51
49
 
@@ -131,6 +129,32 @@ RowSelectionPlugin.prototype._timerMenuId = 0;
131
129
  */
132
130
  RowSelectionPlugin.prototype._pendingSelection = null;
133
131
 
132
+ /** @private
133
+ * @return {string}
134
+ */
135
+ RowSelectionPlugin._styleCalculator = function() {
136
+ var styles = [
137
+ ".row-selection-menu", [
138
+ "position: absolute;",
139
+ "background-color: var(--grid-column-menu-icon-bgcolor);",
140
+ "color: var(--grid-column-menu-icon-color);",
141
+ "z-index: 1;",
142
+ "cursor: pointer;",
143
+ "text-align: center;",
144
+ "width: 16px;",
145
+ "height: 16px;",
146
+ "padding: 6px;"
147
+ ],
148
+ ".row-selection-menu:hover", [
149
+ "background-color: var(--grid-column-menu-icon-hover-bgcolor);"
150
+ ],
151
+ ".row-selection-menu-inside", [
152
+ "padding: 4px;"
153
+ ]
154
+ ];
155
+ return prettifyCss(styles);
156
+ };
157
+
134
158
  /** @public
135
159
  * @return {string}
136
160
  */
@@ -172,57 +196,10 @@ RowSelectionPlugin.prototype.initialize = function (host, options) {
172
196
  this.config(options);
173
197
 
174
198
  if(this._onMenuClicked) { // use styles menu icon only when want to use icon menu
175
- if(RowSelectionPlugin._stylePromise) {
176
- RowSelectionPlugin._applyThemeColor(host);
177
- } else {
178
- RowSelectionPlugin._stylePromise = ElfUtil.getThemeColors();
179
- RowSelectionPlugin._stylePromise.then(this._onThemeLoaded).catch(this._onThemeLoaded);
180
- }
199
+ this.applyStaticStyles(RowSelectionPlugin._styleCalculator);
181
200
  }
182
-
183
201
  };
184
202
 
185
- /** @private
186
- */
187
- RowSelectionPlugin.prototype._onThemeLoaded = function() {
188
- if(!RowSelectionPlugin._styles) {
189
- var styles = [
190
- ".row-selection-menu", [
191
- "position: absolute;",
192
- "background-color: var(--grid-column-menu-icon-bgcolor);",
193
- "color: var(--grid-column-menu-icon-color);",
194
- "z-index: 1;",
195
- "cursor: pointer;",
196
- "text-align: center;",
197
- "width: 16px;",
198
- "height: 16px;",
199
- "padding: 6px;"
200
- ],
201
- ".row-selection-menu:hover", [
202
- "background-color: var(--grid-column-menu-icon-hover-bgcolor);"
203
- ],
204
- ".row-selection-menu-inside", [
205
- "padding: 4px;"
206
- ]
207
- ];
208
- RowSelectionPlugin._styles = prettifyCss(styles);
209
- }
210
- for(var i = this._hosts.length; --i >= 0;) {
211
- RowSelectionPlugin._applyThemeColor(this._hosts[i]);
212
- }
213
- };
214
- /** @private
215
- * @param {Object} grid core grid instance
216
- */
217
- RowSelectionPlugin._applyThemeColor = function(grid) {
218
- if(!grid || grid._rowSelectionStyles) {
219
- return;
220
- }
221
- if(RowSelectionPlugin._styles) {
222
- grid._rowSelectionStyles = true; // Prevent loading the same style twice
223
- injectCss(RowSelectionPlugin._styles, grid.getParent());
224
- }
225
- };
226
203
  /** @public
227
204
  * @param {Object=} host core grid instance
228
205
  */
@@ -1,6 +1,8 @@
1
1
  import {Ext} from "./Ext.js";
2
2
  import {EventDispatcher} from "./EventDispatcher.js";
3
3
  import {Deferred} from "./Deferred.js";
4
+ import {injectCss} from "./Util.js";
5
+ import {ElfUtil} from "./ElfUtil.js";
4
6
 
5
7
  declare class GridPlugin extends EventDispatcher {
6
8
 
@@ -44,6 +46,12 @@ declare class GridPlugin extends EventDispatcher {
44
46
 
45
47
  public static requestPlugin(ref: any, pluginRef: any, configObj?: any, compositeGrid?: any, realTimeGrid?: any): Promise<any>|null;
46
48
 
49
+ public applyStaticStyles(styleCalculator: ((...params: any[]) => any)|null): void;
50
+
51
+ public applyStyles(cssString: string, nameSpace?: string|null, replaceable?: boolean|null): void;
52
+
53
+ public revokeStyles(host: any, nameSpace: string): void;
54
+
47
55
  }
48
56
 
49
57
  declare function gridAPI(gridType: string, wrapperInstance: any): void;
@@ -1,6 +1,8 @@
1
1
  import {Ext} from "./Ext.js";
2
2
  import {EventDispatcher} from "./EventDispatcher.js";
3
3
  import {Deferred} from "./Deferred.js";
4
+ import {injectCss} from "./Util.js";
5
+ import {ElfUtil} from "./ElfUtil.js";
4
6
 
5
7
  /** This class is designed to be a base class for other tr.Grid plug-ins. It provide commonly used functionalities by the plug-ins.
6
8
  * @constructor
@@ -816,6 +818,99 @@ GridPlugin.prototype._mockKeyboardEvent = function(keyCode, context) {
816
818
 
817
819
  return evt;
818
820
  };
821
+
822
+ /** @type {Object}
823
+ * @private
824
+ */
825
+ GridPlugin._staticStyles = {};
826
+
827
+ /** @type {Object}
828
+ * @private
829
+ */
830
+ GridPlugin._themeLoaders = {};
831
+
832
+ /** @private
833
+ * @param {Function} styleCalculator
834
+ * @param {Object} colors
835
+ */
836
+ GridPlugin._themeLoadSuccess = function(styleCalculator, colors) {
837
+ var extName = this.getName();
838
+ var styles = GridPlugin._staticStyles[extName] = styleCalculator(colors);
839
+ this.applyStyles(styles, extName);
840
+ };
841
+
842
+ /** @public
843
+ * @param {Function} styleCalculator
844
+ */
845
+ GridPlugin.prototype.applyStaticStyles = function(styleCalculator) {
846
+ var extName = this.getName();
847
+ var styles = GridPlugin._staticStyles[extName];
848
+ if (!styles) {
849
+ if (styleCalculator) {
850
+ if (!GridPlugin._themeLoaders[extName]) {
851
+ GridPlugin._themeLoaders[extName] = ElfUtil.getThemeColors();
852
+ }
853
+ GridPlugin._themeLoaders[extName]
854
+ .then(GridPlugin._themeLoadSuccess.bind(this, styleCalculator));
855
+ }
856
+ } else {
857
+ this.applyStyles(styles, extName);
858
+ }
859
+ };
860
+
861
+ /** @public
862
+ * @param {string} cssString
863
+ * @param {string=} nameSpace
864
+ * @param {boolean=} replaceable
865
+ */
866
+ GridPlugin.prototype.applyStyles = function(cssString, nameSpace, replaceable) {
867
+ if (!nameSpace) {
868
+ nameSpace = this.getName();
869
+ }
870
+
871
+ var intNameSpace = "_style" + nameSpace;
872
+
873
+ var hosts = this._hosts;
874
+ var len = hosts.length;
875
+ if (!len) {
876
+ return;
877
+ }
878
+
879
+ var i, host;
880
+ if (!replaceable) {
881
+ for (i = 0; i < len; i++) {
882
+ host = hosts[i];
883
+ if (!host[intNameSpace]) {
884
+ injectCss(cssString, host.getElement());
885
+ host[intNameSpace] = true;
886
+ }
887
+ }
888
+ } else {
889
+ for (i = 0; i < len; i++) {
890
+ host = hosts[i];
891
+ this.revokeStyles(host, nameSpace);
892
+ host[intNameSpace] = injectCss(cssString, host.getElement());
893
+ }
894
+ }
895
+ };
896
+
897
+ /** @public
898
+ * @param {Object} host
899
+ * @param {string} nameSpace
900
+ */
901
+ GridPlugin.prototype.revokeStyles = function(host, nameSpace) {
902
+ if (!host || !nameSpace) {
903
+ return;
904
+ }
905
+
906
+ nameSpace = "_style" + nameSpace;
907
+ var styleTag = host[nameSpace];
908
+ if (styleTag && styleTag.nodeType === 1) {
909
+ styleTag.parentNode.removeChild(styleTag);
910
+ host[nameSpace] = null;
911
+ }
912
+ };
913
+
819
914
  /** Export the plugin to the given object by attaching it to tr and tr.grid namespaces
820
915
  * @public
821
916
  * @function
@@ -1,8 +1,7 @@
1
1
  import { Ext } from "../../tr-grid-util/es6/Ext.js";
2
2
  import { Dom } from "../../tr-grid-util/es6/Dom.js";
3
3
  import { GridPlugin } from "../../tr-grid-util/es6/GridPlugin.js";
4
- import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
5
- import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
4
+ import { prettifyCss } from "../../tr-grid-util/es6/Util.js";
6
5
 
7
6
  declare namespace ColumnSelectionPlugin {
8
7
 
@@ -2,8 +2,7 @@ import { GridPlugin } from "../../tr-grid-util/es6/GridPlugin.js";
2
2
  import Ext from "../../tr-grid-util/es6/Ext.js";
3
3
  import MenuEventAPI from "./MenuEventAPI.js";
4
4
  import PopupMenu from "./PopupMenu.js";
5
- import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
6
- import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
5
+ import { prettifyCss } from "../../tr-grid-util/es6/Util.js";
7
6
  import CellPainter from "../../tr-grid-util/es6/CellPainter.js";
8
7
 
9
8
  declare namespace ContextMenuPlugin {
@@ -198,6 +198,10 @@ declare class DataView extends EventDispatcher {
198
198
 
199
199
  public disableCollapsing(bool?: boolean|null): void;
200
200
 
201
+ public setGroupColor(groupColor: string): void;
202
+
203
+ public getGroupColor(): string;
204
+
201
205
  public getVisibleRowCount(): number;
202
206
 
203
207
  public isRowDataInGroup(rowData: any, groupID?: string|null): boolean;
@@ -87,6 +87,8 @@ declare class RowGroupingPlugin extends GridPlugin {
87
87
 
88
88
  public setDefaultCollapse(collapse: boolean): void;
89
89
 
90
+ public setGroupColor(groupRef: string, groupColor: string): void;
91
+
90
92
  public getDefaultCollapse(): boolean;
91
93
 
92
94
  public sortGroups(): void;
@@ -111,6 +113,8 @@ declare class RowGroupingPlugin extends GridPlugin {
111
113
 
112
114
  public enableFooterRow(opt_num?: (boolean|number)|null): void;
113
115
 
116
+ public getFooterRowCount(): number;
117
+
114
118
  }
115
119
 
116
120
  declare function isNonFunction(obj: any): boolean;
@@ -3,8 +3,7 @@ import { EventDispatcher } from "../../tr-grid-util/es6/EventDispatcher.js";
3
3
  import { GridPlugin } from "../../tr-grid-util/es6/GridPlugin.js";
4
4
  import { isMac as isMacFn } from "../../tr-grid-util/es6/Util.js";
5
5
  import { isIE, prepareTSVContent } from "../../tr-grid-util/es6/Util.js";
6
- import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
7
- import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
6
+ import { prettifyCss } from "../../tr-grid-util/es6/Util.js";
8
7
 
9
8
  declare namespace RowSelectionPlugin {
10
9
 
package/lib/versions.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
- "tr-grid-util": "1.3.134",
2
+ "tr-grid-util": "1.3.135",
3
3
  "tr-grid-printer": "1.0.17",
4
- "@grid/column-dragging": "1.0.15",
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
9
  "tr-grid-cell-selection": "1.0.34",
10
- "tr-grid-checkbox": "1.0.61",
10
+ "tr-grid-checkbox": "1.0.62",
11
11
  "tr-grid-column-fitter": "1.0.39",
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
- "tr-grid-column-selection": "1.0.31",
15
+ "tr-grid-column-selection": "1.0.32",
16
16
  "tr-grid-column-stack": "1.0.74",
17
17
  "tr-grid-conditional-coloring": "1.0.68",
18
18
  "tr-grid-content-wrap": "1.0.20",
19
- "tr-grid-contextmenu": "1.0.40",
19
+ "tr-grid-contextmenu": "1.0.41",
20
20
  "tr-grid-filter-input": "0.9.37",
21
21
  "tr-grid-heat-map": "1.0.29",
22
22
  "tr-grid-in-cell-editing": "1.0.81",
@@ -25,13 +25,13 @@
25
25
  "tr-grid-range-bar": "2.0.6",
26
26
  "tr-grid-row-dragging": "1.0.31",
27
27
  "tr-grid-row-filtering": "1.0.65",
28
- "tr-grid-row-grouping": "1.0.82",
29
- "tr-grid-row-selection": "1.0.25",
28
+ "tr-grid-row-grouping": "1.0.85",
29
+ "tr-grid-row-selection": "1.0.26",
30
30
  "tr-grid-rowcoloring": "1.0.25",
31
31
  "tr-grid-textformatting": "1.0.46",
32
32
  "tr-grid-titlewrap": "1.0.20",
33
- "@grid/formatters": "1.0.50",
34
- "@grid/column-selection-dialog": "4.0.55",
35
- "@grid/filter-dialog": "4.0.60",
33
+ "@grid/formatters": "1.0.51",
34
+ "@grid/column-selection-dialog": "4.0.56",
35
+ "@grid/filter-dialog": "4.0.61",
36
36
  "@grid/column-format-dialog": "4.0.44"
37
37
  }
package/package.json CHANGED
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "version": "6.0.78"
69
+ "version": "6.0.80"
70
70
  }