@refinitiv-ui/efx-grid 6.0.57 → 6.0.59

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