@refinitiv-ui/efx-grid 6.0.57 → 6.0.59

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 (31) hide show
  1. package/lib/core/dist/core.js +25 -4
  2. package/lib/core/dist/core.min.js +1 -1
  3. package/lib/core/es6/data/DataTable.js +8 -0
  4. package/lib/core/es6/grid/Core.js +3 -1
  5. package/lib/core/es6/grid/event/EventListeners.js +3 -0
  6. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +3 -3
  7. package/lib/core/es6/grid/util/TrackLayout.d.ts +2 -0
  8. package/lib/core/es6/grid/util/TrackLayout.js +8 -0
  9. package/lib/grid/index.js +1 -1
  10. package/lib/rt-grid/dist/rt-grid.js +48 -16
  11. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  12. package/lib/rt-grid/es6/Grid.d.ts +3 -3
  13. package/lib/rt-grid/es6/Grid.js +16 -8
  14. package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +3 -1
  15. package/lib/tr-grid-column-stack/es6/ColumnStack.js +64 -8
  16. package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +1 -1
  17. package/lib/tr-grid-textformatting/es6/TextFormatting.js +35 -5
  18. package/lib/tr-grid-util/es6/ElementObserver.js +4 -2
  19. package/lib/tr-grid-util/es6/ElementWrapper.js +3 -2
  20. package/lib/tr-grid-util/es6/GridPlugin.js +5 -0
  21. package/lib/tr-grid-util/es6/SubTable.d.ts +4 -2
  22. package/lib/tr-grid-util/es6/SubTable.js +136 -72
  23. package/lib/tr-grid-util/es6/Table.d.ts +25 -10
  24. package/lib/tr-grid-util/es6/Table.js +103 -78
  25. package/lib/tr-grid-util/es6/formula/AdFinSubscription.js +1 -1
  26. package/lib/types/es6/ColumnStack.d.ts +3 -1
  27. package/lib/types/es6/Core/grid/util/TrackLayout.d.ts +2 -0
  28. package/lib/types/es6/RealtimeGrid/Grid.d.ts +3 -3
  29. package/lib/types/es6/TextFormatting.d.ts +1 -1
  30. package/lib/versions.json +3 -3
  31. package/package.json +1 -1
@@ -3,26 +3,43 @@ import { Ext } from "./Ext.js";
3
3
  import { ElementWrapper } from "./ElementWrapper.js";
4
4
  import { SubTable } from "./SubTable.js";
5
5
 
6
+ /** @typedef {Object} Table~Options
7
+ * @description Options for Table initialization
8
+ * @property {number=} colCount=0 Number of columns
9
+ * @property {number=} rowCount=0 Number of rows in content table (tbody)
10
+ * @property {number=} cellWidth Default cell width of each column
11
+ * @property {number=} cellHeight Default cell height of each row
12
+ * @property {number=} width Total width of the table. If it is specified, it will override cellWidth
13
+ * @property {number=} height Total height of the table. If it is specified, it will override cellHeight
14
+ * @property {number=} header=0 Number of header rows
15
+ * @property {number=} footer=0 Number of footer rows
16
+ */
6
17
 
7
18
  /** Table represents table (tag) element which can host multiple tbody, thead, tfoot elements at the same time
8
19
  * @constructor
9
20
  * @extends {ElementWrapper}
10
- * @param {(Element|number)=} elem Element is a place holder element (e.g. div). This should not be a table (tag) element. Column count may be placed here and if so, opt_colCount becomes row count.
11
- * @param {(number|Object)=} opt_colCount options
12
- * @param {number=} opt_rowCount
13
- */
14
- var Table = function(elem, opt_colCount, opt_rowCount) {
21
+ * @param {Element=} elem Element is a place holder element (e.g., div). This should not be a table (tag) element.
22
+ * @param {Table~Options=} options
23
+ * @example
24
+ * var elem = document.getElementById("table_div");
25
+ * // Create a table element with 2 columns and 3 rows inside the given element
26
+ * var tbl = new Table(elem, {colCount: 2, rowCount: 3});
27
+ */
28
+ var Table = function(elem, options) {
15
29
  var t = this;
16
30
 
31
+ var colCount = 0;
32
+ var rowCount = 0;
17
33
  if(elem && elem.nodeType === 1) {
18
34
  t._elem = /** @type{Element} */(elem);
19
35
  } else {
20
36
  t._elem = Dom.create("div", "inline-table");
21
37
  if(typeof elem == "number") {
22
- if(typeof opt_colCount === "number") {
23
- opt_rowCount = opt_colCount;
38
+ if(typeof options === "number") {
39
+ rowCount = options;
40
+ options = null;
24
41
  }
25
- opt_colCount = elem;
42
+ colCount = elem;
26
43
  elem = null;
27
44
  }
28
45
  }
@@ -35,23 +52,26 @@ var Table = function(elem, opt_colCount, opt_rowCount) {
35
52
  t._tbody = new SubTable("tbody");
36
53
  t._subs = [t._tbody]; // tbody will always be the first item
37
54
 
38
- var options = null;
39
- if(opt_colCount && typeof opt_colCount !== "number") {
40
- options = /** @type{Object} */(opt_colCount);
41
- opt_colCount = 0;
55
+ var configObj = null;
56
+ if(options) {
57
+ if(typeof options == "number") {
58
+ colCount = options;
59
+ } else {
60
+ configObj = /** @type{Object} */(options);
61
+ }
42
62
  }
43
- if(opt_colCount > 0) {
44
- t.addColumns(opt_colCount);
63
+ if(colCount > 0) {
64
+ t.addColumns(colCount);
45
65
  }
46
- if(opt_rowCount > 0) {
47
- t.addRows(opt_rowCount);
66
+ if(rowCount > 0) {
67
+ t.addRows(rowCount);
48
68
  }
49
69
  t._table.appendChild(t._colgroup);
50
70
  t._table.appendChild(t._tbody.getElement());
51
71
 
52
72
  t.fixateTableWidth(); // By default, table should be able to overflow its container if it has a fixed size
53
73
 
54
- t.init(options);
74
+ t.init(configObj);
55
75
 
56
76
  t._elem.appendChild(t._table); // Append the entire table last to save some page reflow
57
77
  };
@@ -119,7 +139,7 @@ Table.prototype.setCRWH = function(col, row, width, height) {
119
139
  this.setSize(width, height);
120
140
  };
121
141
  /** @public
122
- * @param {Object} options
142
+ * @param {Table~Options} options
123
143
  */
124
144
  Table.prototype.init = function(options) {
125
145
  if(!options) {
@@ -156,34 +176,60 @@ Table.prototype.init = function(options) {
156
176
  this.setDefaultRowHeight((tableHeight / rowCount) | 0);
157
177
  }
158
178
  }
179
+
180
+ var header = options["header"];
181
+ if(header != null) {
182
+ if(header) {
183
+ rowCount = (typeof header === "number") ? header : 1;
184
+
185
+ this._addHeader();
186
+ this._thead.setRowCount(rowCount);
187
+ } else if(this._thead) {
188
+ Dom.removeParent(this._thead.getElement());
189
+ this._thead = null;
190
+ }
191
+ }
192
+
193
+ var footer = options["footer"];
194
+ if(footer != null) {
195
+ if(footer) {
196
+ rowCount = (typeof footer === "number") ? footer : 1;
197
+
198
+ this._addFooter();
199
+ this._tfoot.setRowCount(rowCount);
200
+ } else if(this._tfoot) {
201
+ Dom.removeParent(this._tfoot.getElement());
202
+ this._tfoot = null;
203
+ }
204
+ }
159
205
  };
160
206
 
161
207
  /** @public
162
- * @param {number=} opt_count
208
+ * @param {number=} count=1
163
209
  * @return {Array.<Element>} Array of col elements (not td or cell)
164
210
  */
165
- Table.prototype.addColumns = function(opt_count) {
166
- if(opt_count == null) { opt_count = 1; }
167
- else if(opt_count <= 0) { return null; }
211
+ Table.prototype.addColumns = function(count) {
212
+ if(count == null) { count = 1; }
213
+ else if(count <= 0) { return null; }
168
214
 
169
215
  var cols = [];
170
216
  var c;
171
- for(c = opt_count; --c >= 0;) {
217
+ for(c = count; --c >= 0;) {
172
218
  var col = document.createElement("col");
173
219
  this._colgroup.appendChild(col);
174
220
  cols[c] = col;
175
221
  }
176
- this._colCount += opt_count;
222
+ this._colCount += count;
177
223
 
178
224
  if(this._defaultColumnWidth != null) {
179
225
  var minWidth = this._defaultColumnWidth + "px";
180
- for(c = opt_count; --c >= 0;) {
226
+ for(c = count; --c >= 0;) {
181
227
  cols[c].style.width = minWidth;
182
228
  }
183
229
  }
184
230
 
185
231
  for(var i = this._subs.length; --i >= 0;) {
186
- this._subs[i].addColumns(opt_count);
232
+ this._subs[i].addColumns(count);
187
233
  }
188
234
  this._updateTableWidth();
189
235
  return cols;
@@ -229,17 +275,17 @@ Table.prototype.setColumnCount = function(val) {
229
275
  };
230
276
 
231
277
  /** @public
232
- * @param {number=} opt_count
278
+ * @param {number=} count=1
233
279
  * @return {!Array.<Element>} Array of tr (HTMLTableRowElement) elements
234
280
  */
235
- Table.prototype.addRows = function(opt_count) {
236
- return this._tbody.addRows(opt_count);
281
+ Table.prototype.addRows = function(count) {
282
+ return this._tbody.addRows(count);
237
283
  };
238
284
  /** @public
239
- * @param {number=} opt_count
285
+ * @param {number=} count Number of rows to be removed. If count is not specified, all rows are removed
240
286
  */
241
- Table.prototype.removeRows = function(opt_count) {
242
- this._tbody.removeRows(opt_count);
287
+ Table.prototype.removeRows = function(count) {
288
+ this._tbody.removeRows(count);
243
289
  };
244
290
  /** @public */
245
291
  Table.prototype.removeAllRows = function() {
@@ -295,10 +341,10 @@ Table.prototype.getRows = Table.prototype.getAllRows;
295
341
  Table.prototype.getRow = function(r) { return this._tbody.getRow(r); };
296
342
 
297
343
  /** @public
298
- * @param {number} c1
299
- * @param {number} c2
300
- * @param {number} r1
301
- * @param {number} r2
344
+ * @param {number} c1 Starting column index
345
+ * @param {number} c2 Destination column index
346
+ * @param {number} r1 Starting row index
347
+ * @param {number} r2 Destination row index
302
348
  * @return {Element} Top left cell element
303
349
  */
304
350
  Table.prototype.spanBlock = function(c1, c2, r1, r2) { return this._tbody.spanBlock(c1, c2, r1, r2); };
@@ -314,37 +360,37 @@ Table.prototype.spanHorizontally = function(r, bool) {
314
360
 
315
361
  /** @public
316
362
  * @param {number|string|Array.<string|number>} val
317
- * @param {number=} opt_at
363
+ * @param {number=} colIndex Column index
318
364
  */
319
- Table.prototype.setColMinWidths = function(val, opt_at) {
320
- this._setColStyle("width", val, opt_at);
365
+ Table.prototype.setColMinWidths = function(val, colIndex) {
366
+ this._setColStyle("width", val, colIndex);
321
367
  this._updateTableWidth();
322
368
  };
323
369
  /** @public
324
370
  * @function
325
371
  * @param {number|string|Array.<string|number>} val
326
- * @param {number=} opt_at
372
+ * @param {number=} colIndex Column index
327
373
  */
328
374
  Table.prototype.setColumnWidths = Table.prototype.setColMinWidths;
329
375
  /** @public
330
376
  * @param {string|Array.<string>} val
331
- * @param {number=} opt_at
377
+ * @param {number=} colIndex Column index
332
378
  */
333
- Table.prototype.setColBackgroundColors = function(val, opt_at) {
334
- this._setColStyle("background-color", val, opt_at);
379
+ Table.prototype.setColBackgroundColors = function(val, colIndex) {
380
+ this._setColStyle("background-color", val, colIndex);
335
381
  };
336
382
  /** @public
337
383
  * @function
338
384
  * @param {string|Array.<string>} val
339
- * @param {number=} opt_at
385
+ * @param {number=} colIndex Column index
340
386
  */
341
387
  Table.prototype.setColBGColors = Table.prototype.setColBackgroundColors; // Alias
342
388
  /** @public
343
389
  * @param {number|string|Array.<number|string>} val
344
- * @param {number=} opt_at
390
+ * @param {number=} colIndex Column index
345
391
  */
346
- Table.prototype.setColBorders = function(val, opt_at) {
347
- this._setColStyle("border", val, opt_at);
392
+ Table.prototype.setColBorders = function(val, colIndex) {
393
+ this._setColStyle("border", val, colIndex);
348
394
  };
349
395
 
350
396
  /** @public
@@ -675,35 +721,35 @@ Table.prototype.getFooter = function() {
675
721
 
676
722
 
677
723
  /** @private
678
- * @param {Element=} opt_elem
724
+ * @param {Element=} elem
679
725
  */
680
- Table.prototype._addHeader = function(opt_elem) {
726
+ Table.prototype._addHeader = function(elem) {
681
727
  var t = this;
682
728
  if(!t._thead) {
683
- t._thead = new SubTable((opt_elem) ? opt_elem : "thead");
729
+ t._thead = new SubTable(elem ? elem : "thead");
684
730
  t._subs.push(t._thead);
685
731
 
686
732
  t._thead.setColumnCount(t._colCount);
687
733
  t._thead.setDefaultRowHeight(t._defaultRowHeight);
688
734
  t._table.insertBefore(t._thead.getElement(), t._tbody.getElement());
689
- } else if(opt_elem) {
690
- t._thead.cloak(opt_elem);
735
+ } else if(elem) {
736
+ t._thead.cloak(elem);
691
737
  }
692
738
  };
693
739
  /** @private
694
- * @param {Element=} opt_elem
740
+ * @param {Element=} elem
695
741
  */
696
- Table.prototype._addFooter = function(opt_elem) {
742
+ Table.prototype._addFooter = function(elem) {
697
743
  var t = this;
698
744
  if(!t._tfoot) {
699
- t._tfoot = new SubTable((opt_elem) ? opt_elem : "tfoot");
745
+ t._tfoot = new SubTable(elem ? elem : "tfoot");
700
746
  t._subs.push(t._tfoot);
701
747
 
702
748
  t._tfoot.setColumnCount(t._colCount);
703
749
  t._tfoot.setDefaultRowHeight(t._defaultRowHeight);
704
750
  t._table.appendChild(t._tfoot.getElement());
705
- } else if(opt_elem) {
706
- t._tfoot.cloak(opt_elem);
751
+ } else if(elem) {
752
+ t._tfoot.cloak(elem);
707
753
  }
708
754
  };
709
755
 
@@ -763,28 +809,7 @@ Table.prototype._updateTableWidth = function() {
763
809
  this._table.style.width = "";
764
810
  }
765
811
  };
766
- /** @private
767
- * @param {Array.<Array>} ary
768
- * @return {number}
769
- */
770
- Table.prototype._adjustColCount = function(ary) {
771
- if(this._colCount > 0) {
772
- return this._colCount;
773
- }
774
-
775
- var colCount = 0;
776
- var rowCount = ary.length;
777
-
778
- for(var r = 0; r < rowCount; ++r) {
779
- var cols = ary[r];
780
- if(cols.length > colCount) {
781
- colCount = cols.length;
782
- }
783
- }
784
812
 
785
- this.setColumnCount(colCount);
786
- return colCount;
787
- };
788
813
 
789
814
  export default Table;
790
815
  export { Table };
@@ -18,7 +18,7 @@ Ext.inherits(AdFinSubscription, EventDispatcher);
18
18
  AdFinSubscription.Request;
19
19
 
20
20
  /** call signature -> value
21
- * @type {Object.<string, {pending:boolean,value:*}
21
+ * @type {Object}
22
22
  * @private
23
23
  */
24
24
  AdFinSubscription.prototype._cache = null;
@@ -14,7 +14,9 @@ declare namespace ColumnStackPlugin {
14
14
  fields: (string)[]|null,
15
15
  stacks: (ColumnStackPlugin.StackDefinition)[]|null,
16
16
  autoStacking?: boolean|null,
17
- clicked?: ((...params: any[]) => any)|null
17
+ clicked?: ((...params: any[]) => any)|null,
18
+ menuElement?: Element|null,
19
+ menuItemClicked?: ((...params: any[]) => any)|null
18
20
  };
19
21
 
20
22
  type ColumnOptions = {
@@ -6,6 +6,8 @@ declare class TrackLayout {
6
6
 
7
7
  public hitTest(val: number): number;
8
8
 
9
+ public dispose(): void;
10
+
9
11
  public isAtDefaultSize(opt_index?: number|null): boolean;
10
12
 
11
13
  public isHomogeneous(): boolean;
@@ -183,9 +183,9 @@ declare class Grid extends EventDispatcher {
183
183
 
184
184
  public _initDuplicateRicData(rowDef: RowDefinition|null): void;
185
185
 
186
- public insertRow(rowOption?: any, rowRef?: Grid.RowReference|null): any;
186
+ public insertRow(rowOption?: (RowDefinition.Options|string)|null, rowRef?: Grid.RowReference|null): RowDefinition|null;
187
187
 
188
- public insertRows(rowOptions: (any)[]|null, rowRef?: Grid.RowReference|null, opt_fields?: (string)[]|null): void;
188
+ public insertRows(rowOptions: (RowDefinition.Options|string)[]|null, rowRef?: Grid.RowReference|null, opt_fields?: (string)[]|null): void;
189
189
 
190
190
  public addStaticDataRows(dataRows: any[]|null, fields?: (string)[]|null): void;
191
191
 
@@ -325,7 +325,7 @@ declare class Grid extends EventDispatcher {
325
325
 
326
326
  public logDV(opt_options?: any): void;
327
327
 
328
- public replaceRow(rowRef: Grid.RowReference|null, rowOption?: any): any;
328
+ public replaceRow(rowRef: Grid.RowReference|null, rowOption?: (RowDefinition.Options|string)|null): RowDefinition|null;
329
329
 
330
330
  public scrollToColumn(colIndex: number, leftOfView?: boolean|null): boolean;
331
331
 
@@ -10,7 +10,7 @@ declare namespace TextFormattingPlugin {
10
10
  formatType?: string|null,
11
11
  type?: string|null,
12
12
  field?: string|null,
13
- decimalPlaces?: number|null,
13
+ decimalPlaces?: (number|boolean)|null,
14
14
  precisionEnabled?: boolean|null,
15
15
  plusSign?: boolean|null,
16
16
  separator?: boolean|null,
package/lib/versions.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "tr-grid-util": "1.3.117",
2
+ "tr-grid-util": "1.3.120",
3
3
  "tr-grid-printer": "1.0.16",
4
4
  "@grid/column-dragging": "1.0.14",
5
5
  "@grid/row-segmenting": "1.0.24",
@@ -13,7 +13,7 @@
13
13
  "tr-grid-column-grouping": "1.0.54",
14
14
  "tr-grid-column-resizing": "1.0.28",
15
15
  "tr-grid-column-selection": "1.0.29",
16
- "tr-grid-column-stack": "1.0.68",
16
+ "tr-grid-column-stack": "1.0.69",
17
17
  "tr-grid-conditional-coloring": "1.0.61",
18
18
  "tr-grid-content-wrap": "1.0.20",
19
19
  "tr-grid-contextmenu": "1.0.39",
@@ -28,7 +28,7 @@
28
28
  "tr-grid-row-grouping": "1.0.81",
29
29
  "tr-grid-row-selection": "1.0.23",
30
30
  "tr-grid-rowcoloring": "1.0.23",
31
- "tr-grid-textformatting": "1.0.45",
31
+ "tr-grid-textformatting": "1.0.46",
32
32
  "tr-grid-titlewrap": "1.0.19",
33
33
  "@grid/formatters": "1.0.50",
34
34
  "@grid/column-selection-dialog": "4.0.52",
package/package.json CHANGED
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "version": "6.0.57"
69
+ "version": "6.0.59"
70
70
  }