@refinitiv-ui/efx-grid 6.0.78 → 6.0.80

Sign up to get free protection for your applications and to get access to all the features.
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
  }