@refinitiv-ui/efx-grid 6.0.105 → 6.0.107
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/core/dist/core.js +12 -11
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/grid/Core.js +7 -8
- package/lib/core/es6/grid/ILayoutGrid.js +1 -1
- package/lib/core/es6/grid/components/Scrollbar.js +4 -2
- package/lib/filter-dialog/lib/filter-dialog.d.ts +2 -0
- package/lib/filter-dialog/lib/filter-dialog.js +23 -1
- package/lib/filter-dialog/themes/base-checkbox.less +1 -2
- package/lib/filter-dialog/themes/elemental/dark/checkbox-list.js +1 -1
- package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +1 -1
- package/lib/filter-dialog/themes/elemental/light/checkbox-list.js +1 -1
- package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +1 -1
- package/lib/filter-dialog/themes/halo/dark/checkbox-list.js +1 -1
- package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +1 -1
- package/lib/filter-dialog/themes/halo/light/checkbox-list.js +1 -1
- package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +1 -1
- package/lib/filter-dialog/themes/solar/charcoal/checkbox-list.js +1 -1
- package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +1 -1
- package/lib/filter-dialog/themes/solar/pearl/checkbox-list.js +1 -1
- package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +1 -1
- package/lib/formatters/es6/FormatterBuilder.js +10 -1
- package/lib/formatters/es6/SimpleTickerFormatter.d.ts +0 -2
- package/lib/formatters/es6/SimpleTickerFormatter.js +1 -0
- package/lib/grid/index.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +32 -15
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/FieldDefinition.d.ts +2 -0
- package/lib/rt-grid/es6/FieldDefinition.js +20 -4
- package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +128 -89
- package/lib/tr-grid-printer/es6/CellWriter.d.ts +6 -5
- package/lib/tr-grid-printer/es6/CellWriter.js +57 -49
- package/lib/tr-grid-printer/es6/ColumnWriter.d.ts +1 -0
- package/lib/tr-grid-printer/es6/ColumnWriter.js +3 -1
- package/lib/tr-grid-printer/es6/GridPrinter.js +117 -99
- package/lib/tr-grid-printer/es6/PrintTrait.d.ts +1 -0
- package/lib/tr-grid-printer/es6/PrintTrait.js +60 -47
- package/lib/tr-grid-printer/es6/SectionWriter.d.ts +4 -1
- package/lib/tr-grid-printer/es6/SectionWriter.js +40 -15
- package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +2 -0
- package/lib/tr-grid-row-filtering/es6/RowFiltering.js +14 -0
- package/lib/tr-grid-row-grouping/es6/RowGrouping.js +6 -0
- package/lib/tr-grid-util/es6/MultiTableManager.js +1 -0
- package/lib/types/es6/RealtimeGrid/FieldDefinition.d.ts +2 -0
- package/lib/types/es6/SimpleTickerFormatter.d.ts +0 -2
- package/lib/versions.json +7 -7
- package/package.json +1 -1
@@ -26,8 +26,8 @@ import { EventDispatcher } from "../../tr-grid-util/es6/EventDispatcher.js";
|
|
26
26
|
* @extends{EventDispatcher}
|
27
27
|
* @suppress {checkTypes}
|
28
28
|
*/
|
29
|
-
|
30
|
-
|
29
|
+
let PrintTrait = function() {
|
30
|
+
let t = this;
|
31
31
|
t._onKeyDown = t._onKeyDown.bind(t);
|
32
32
|
t._onMediaQuery = t._onMediaQuery.bind(t);
|
33
33
|
t._onBeforePrint = t._onBeforePrint.bind(t);
|
@@ -44,19 +44,19 @@ Ext.inherits(PrintTrait, EventDispatcher);
|
|
44
44
|
/** @type {number}
|
45
45
|
* @private
|
46
46
|
*/
|
47
|
-
|
47
|
+
const IDLE = 0;
|
48
48
|
/** @type {number}
|
49
49
|
* @private
|
50
50
|
*/
|
51
|
-
|
51
|
+
const COUNTING = 1;
|
52
52
|
/** @type {number}
|
53
53
|
* @private
|
54
54
|
*/
|
55
|
-
|
55
|
+
const BEFORE_PRINT = 2;
|
56
56
|
/** @type {number}
|
57
57
|
* @private
|
58
58
|
*/
|
59
|
-
|
59
|
+
const AFTER_PRINT = 3;
|
60
60
|
|
61
61
|
/** @type {number}
|
62
62
|
* @private
|
@@ -97,7 +97,11 @@ PrintTrait.prototype._state = IDLE;
|
|
97
97
|
/** @type {number}
|
98
98
|
* @private
|
99
99
|
*/
|
100
|
-
PrintTrait.prototype.
|
100
|
+
PrintTrait.prototype._beforePrintTimer = 0;
|
101
|
+
/** @type {number}
|
102
|
+
* @private
|
103
|
+
*/
|
104
|
+
PrintTrait.prototype._afterPrintTimer = 0;
|
101
105
|
/** @type {boolean}
|
102
106
|
* @public
|
103
107
|
*/
|
@@ -117,10 +121,10 @@ PrintTrait._env = {};
|
|
117
121
|
* @return {Object}
|
118
122
|
*/
|
119
123
|
PrintTrait.calculateEnvironment = function() {
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
+
let env = PrintTrait._env;
|
125
|
+
let ua = navigator.userAgent;
|
126
|
+
let jet = window["JET"];
|
127
|
+
let cd = jet ? jet["ContainerDescription"] : "";
|
124
128
|
|
125
129
|
env.isMac = /Mac/.test(navigator.platform);
|
126
130
|
env.isIE = (ua.indexOf("MSIE ") > 0) || (ua.indexOf("Trident/") > 0) || (ua.indexOf("Edge/") > 0);
|
@@ -138,7 +142,7 @@ PrintTrait.prototype.observe = function(iframeElement) {
|
|
138
142
|
return;
|
139
143
|
}
|
140
144
|
|
141
|
-
|
145
|
+
let winObj = null;
|
142
146
|
|
143
147
|
if(iframeElement) {
|
144
148
|
if(iframeElement.contentWindow) {
|
@@ -199,10 +203,15 @@ PrintTrait.prototype.isObserving = function() {
|
|
199
203
|
* @suppress {checkTypes}
|
200
204
|
*/
|
201
205
|
PrintTrait.prototype.dispose = function() {
|
202
|
-
this.
|
206
|
+
this.removeAllEventListeners();
|
203
207
|
|
204
|
-
if(this.
|
205
|
-
clearTimeout(this.
|
208
|
+
if(this._beforePrintTimer) {
|
209
|
+
clearTimeout(this._beforePrintTimer);
|
210
|
+
this._beforePrintTimer = 0;
|
211
|
+
}
|
212
|
+
if(this._afterPrintTimer) {
|
213
|
+
clearTimeout(this._afterPrintTimer);
|
214
|
+
this._afterPrintTimer = 0;
|
206
215
|
}
|
207
216
|
|
208
217
|
this._onPrintEnd(); // Force ending the process
|
@@ -213,7 +222,7 @@ PrintTrait.prototype.dispose = function() {
|
|
213
222
|
*/
|
214
223
|
PrintTrait.prototype.print = function() {
|
215
224
|
if(!this._window) {
|
216
|
-
console.
|
225
|
+
console.warn("Cannot perform printing. Window object must be specified by using observe() method.");
|
217
226
|
return;
|
218
227
|
}
|
219
228
|
if(this._state !== IDLE) {
|
@@ -233,10 +242,9 @@ PrintTrait.prototype.print = function() {
|
|
233
242
|
this._eventArg["documentElement"] = this.getDocumentElement();
|
234
243
|
this._eventArg["bodyElement"] = this.getBodyElement();
|
235
244
|
this.getDocumentElement().classList.add("tr-printing-mode");
|
236
|
-
this._dispatch("pageCounting", this._eventArg);
|
237
245
|
|
238
246
|
if(PrintTrait.DEBUG) {
|
239
|
-
|
247
|
+
let debugBtn = PrintTrait._debugBtn = document.createElement("button");
|
240
248
|
debugBtn.addEventListener("click", this._onBeforePrint);
|
241
249
|
debugBtn.textContent = "BeforePrint";
|
242
250
|
debugBtn.style.display = "unset";
|
@@ -246,30 +254,35 @@ PrintTrait.prototype.print = function() {
|
|
246
254
|
debugBtn.style.transform = "translateX(-50%)";
|
247
255
|
debugBtn.style.top = "20px";
|
248
256
|
document.body.appendChild(debugBtn);
|
249
|
-
}
|
257
|
+
}
|
258
|
+
this._dispatch("pageCounting", this._eventArg);
|
259
|
+
|
260
|
+
if(!PrintTrait.DEBUG) {
|
250
261
|
/**
|
251
262
|
* _onBeforePrint() was originally execute by window 'beforeprint' event.
|
252
263
|
* Due to Custom Elements can't be create during 'beforeprint', _onBeforePrint() needs to be executed manually.
|
253
264
|
* And window.print() need to be executed after some delay to make sure Custom Elements are created and rendered.
|
254
265
|
* See here: https://html.spec.whatwg.org/multipage/custom-elements.html#custom-element-reactions
|
255
266
|
*/
|
267
|
+
this._beforePrintTimer = setTimeout(this._print, 500);
|
256
268
|
this._onBeforePrint();
|
257
|
-
setTimeout(this._print, 500);
|
258
269
|
}
|
259
270
|
};
|
260
271
|
/** @public
|
261
272
|
*/
|
262
273
|
PrintTrait.prototype._print = function() {
|
274
|
+
this._beforePrintTimer = 0;
|
263
275
|
this._defaultPrint.call(this._window);
|
276
|
+
this._dispatch("printed", this._eventArg);
|
264
277
|
};
|
265
278
|
/** @public
|
266
279
|
* @param {number} pageCount
|
267
280
|
* @return {!Element}
|
268
281
|
*/
|
269
282
|
PrintTrait.createBlankPages = function(pageCount) {
|
270
|
-
|
271
|
-
for(
|
272
|
-
|
283
|
+
let rootElem = document.createElement("div");
|
284
|
+
for(let i = 0; i < pageCount; ++i) {
|
285
|
+
let bp = document.createElement("div");
|
273
286
|
if(PrintTrait.DEBUG) {
|
274
287
|
bp.textContent = "Page " + (i + 1);
|
275
288
|
} else {
|
@@ -286,8 +299,8 @@ PrintTrait.createBlankPages = function(pageCount) {
|
|
286
299
|
* @return {!Element}
|
287
300
|
*/
|
288
301
|
PrintTrait.prototype.createClientBox = function(pw, ph) {
|
289
|
-
|
290
|
-
|
302
|
+
let rootElem = document.createElement("div");
|
303
|
+
let styObj = rootElem.style;
|
291
304
|
styObj.width = pw + "px";
|
292
305
|
styObj.height = ph + "px";
|
293
306
|
|
@@ -329,9 +342,7 @@ PrintTrait.prototype.getBodyElement = function() {
|
|
329
342
|
* @param {KeyboardEvent} e
|
330
343
|
*/
|
331
344
|
PrintTrait.prototype._onKeyDown = function(e) {
|
332
|
-
|
333
|
-
|
334
|
-
if(ctrlCmdKey) {
|
345
|
+
if(e.metaKey || e.ctrlKey) {
|
335
346
|
if(!e.altKey) {
|
336
347
|
if(e.keyCode === 80) { // P
|
337
348
|
e.preventDefault();
|
@@ -359,18 +370,18 @@ PrintTrait.prototype._onBeforePrint = function(e) {
|
|
359
370
|
this._state = BEFORE_PRINT;
|
360
371
|
this._calculatePageSize(this._correction, this._fixedSize);
|
361
372
|
|
362
|
-
|
363
373
|
this._eventArg["documentElement"] = this.getDocumentElement();
|
364
374
|
this._eventArg["bodyElement"] = this.getBodyElement();
|
365
375
|
this.getDocumentElement().classList.add("tr-printing-mode");
|
366
|
-
this._dispatch("beforeprint", this._eventArg);
|
367
376
|
|
368
377
|
if(PrintTrait.DEBUG) {
|
369
|
-
|
378
|
+
let debugBtn = PrintTrait._debugBtn;
|
370
379
|
debugBtn.removeEventListener("click", this._onBeforePrint);
|
371
380
|
debugBtn.addEventListener("click", this._onAfterPrint);
|
372
381
|
debugBtn.textContent = "AfterPrint";
|
373
382
|
}
|
383
|
+
|
384
|
+
this._dispatch("beforeprint", this._eventArg);
|
374
385
|
}
|
375
386
|
};
|
376
387
|
/** @private
|
@@ -382,22 +393,22 @@ PrintTrait.prototype._onAfterPrint = function(e) {
|
|
382
393
|
this._calculatePageSize();
|
383
394
|
|
384
395
|
this.getDocumentElement().classList.remove("tr-printing-mode");
|
385
|
-
this._dispatch("afterprint", this._eventArg);
|
386
|
-
this._timerId = setTimeout(this._onPrintEnd, 0);
|
387
|
-
|
388
396
|
if (PrintTrait._debugBtn) { // For debugging
|
389
|
-
|
397
|
+
let pn = PrintTrait._debugBtn.parentNode;
|
390
398
|
if(pn) {
|
391
399
|
pn.removeChild(PrintTrait._debugBtn);
|
392
400
|
}
|
393
401
|
PrintTrait._debugBtn = null;
|
394
402
|
}
|
403
|
+
|
404
|
+
this._afterPrintTimer = setTimeout(this._onPrintEnd, 0);
|
405
|
+
this._dispatch("afterprint", this._eventArg);
|
395
406
|
}
|
396
407
|
};
|
397
408
|
/** @private
|
398
409
|
*/
|
399
410
|
PrintTrait.prototype._onPrintEnd = function() {
|
400
|
-
this.
|
411
|
+
this._afterPrintTimer = 0;
|
401
412
|
this._state = IDLE;
|
402
413
|
};
|
403
414
|
/** @private
|
@@ -409,13 +420,13 @@ PrintTrait.prototype._calculatePageSize = function(sizeCorrection, fixedSize) {
|
|
409
420
|
if(PrintTrait._env.isIE) {
|
410
421
|
return false; // Cannot calculate paper size in IE
|
411
422
|
}
|
412
|
-
|
413
|
-
|
423
|
+
let documentElement = this.getDocumentElement();
|
424
|
+
let cw = documentElement.clientWidth;
|
414
425
|
var iw = this._window.innerWidth || 0;
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
426
|
+
let ch = documentElement.clientHeight;
|
427
|
+
let ih = this._window.innerHeight || 0;
|
428
|
+
let nw = (cw >= iw) ? cw : iw;
|
429
|
+
let nh = (ch >= ih) ? ch : ih;
|
419
430
|
|
420
431
|
if(fixedSize) {
|
421
432
|
if(nw > nh) {
|
@@ -426,9 +437,9 @@ PrintTrait.prototype._calculatePageSize = function(sizeCorrection, fixedSize) {
|
|
426
437
|
nh = this._defaultHeight;
|
427
438
|
}
|
428
439
|
} else if(sizeCorrection) {
|
429
|
-
|
430
|
-
|
431
|
-
|
440
|
+
let portrait = nh >= nw;
|
441
|
+
let ar = this._calculateAspectRatio(nw, nh);
|
442
|
+
let paperSize = PrintTrait._paperSizes[ar];
|
432
443
|
if(!paperSize) {
|
433
444
|
paperSize = PrintTrait._paperSizes[ar - 1] || PrintTrait._paperSizes[ar + 1];
|
434
445
|
}
|
@@ -457,8 +468,8 @@ PrintTrait.prototype._calculatePageSize = function(sizeCorrection, fixedSize) {
|
|
457
468
|
* @return {number}
|
458
469
|
*/
|
459
470
|
PrintTrait.prototype._calculateAspectRatio = function(w, h) {
|
460
|
-
|
461
|
-
|
471
|
+
let portrait = h >= w;
|
472
|
+
let ratio = (portrait) ? w / h : h / w;
|
462
473
|
return Math.floor(ratio * 1000); // Return 3 digit precision
|
463
474
|
};
|
464
475
|
|
@@ -478,4 +489,6 @@ PrintTrait._paperSizes = {
|
|
478
489
|
};
|
479
490
|
|
480
491
|
|
492
|
+
|
493
|
+
export default PrintTrait;
|
481
494
|
export { PrintTrait };
|
@@ -29,10 +29,12 @@ declare class SectionWriter extends ElementWrapper {
|
|
29
29
|
|
30
30
|
public enableRowClass(rowIndex: number, className: string, enabled: boolean): void;
|
31
31
|
|
32
|
-
public stretchCell(
|
32
|
+
public stretchCell(cellRef: any, rowIndex?: number|null, stretching?: boolean|null, onlyToTheRight?: boolean|null): any;
|
33
33
|
|
34
34
|
public hasCellSpan(): boolean;
|
35
35
|
|
36
|
+
public getStretchedCell(cellRef: any, rowIndex?: number|null): any;
|
37
|
+
|
36
38
|
public getCellRowSpan(colIndex: number, rowIndex: number): number;
|
37
39
|
|
38
40
|
public setCellRowSpan(colIndex: number, rowIndex: number, rowSpan: number): void;
|
@@ -51,4 +53,5 @@ declare class SectionWriter extends ElementWrapper {
|
|
51
53
|
|
52
54
|
}
|
53
55
|
|
56
|
+
export default SectionWriter;
|
54
57
|
export { SectionWriter };
|
@@ -7,7 +7,7 @@ import { CellWriter } from "./CellWriter.js";
|
|
7
7
|
* @constructor
|
8
8
|
* @extends {ElementWrapper}
|
9
9
|
*/
|
10
|
-
|
10
|
+
let SectionWriter = function () {
|
11
11
|
this._cellWriter = new CellWriter();
|
12
12
|
this._table = new Table();
|
13
13
|
this._columns = [];
|
@@ -34,7 +34,7 @@ SectionWriter.prototype.getFirstIndexInView = function () {
|
|
34
34
|
* @return {number}
|
35
35
|
*/
|
36
36
|
SectionWriter.prototype.getLastIndexInView = function () {
|
37
|
-
return this._table.getRowCount();
|
37
|
+
return this._table.getRowCount() - 1; // WARNING: This is inclusive
|
38
38
|
};
|
39
39
|
|
40
40
|
/** @public
|
@@ -48,7 +48,7 @@ SectionWriter.prototype.getColumnCount = function () {
|
|
48
48
|
* @return {*}
|
49
49
|
*/
|
50
50
|
SectionWriter.prototype.getColumn = function (colIndex) {
|
51
|
-
|
51
|
+
let col = this._columns[colIndex];
|
52
52
|
if (!col) {
|
53
53
|
col = this._columns[colIndex] = {};
|
54
54
|
}
|
@@ -81,7 +81,7 @@ SectionWriter.prototype.setRowCount = function (val) {
|
|
81
81
|
* @return {CellWriter}
|
82
82
|
*/
|
83
83
|
SectionWriter.prototype.getCell = function (colIndex, rowIndex) {
|
84
|
-
|
84
|
+
let cell = this._table.getCell(colIndex, rowIndex);
|
85
85
|
if(cell) {
|
86
86
|
this._cellWriter.cloak(cell);
|
87
87
|
return this._cellWriter;
|
@@ -94,7 +94,7 @@ SectionWriter.prototype.getCell = function (colIndex, rowIndex) {
|
|
94
94
|
* @return {Element|Node|NodeList}
|
95
95
|
*/
|
96
96
|
SectionWriter.prototype.getCellContent = function (colIndex, rowIndex) {
|
97
|
-
|
97
|
+
let cell = this.getCell(colIndex, rowIndex);
|
98
98
|
return cell ? cell.getContent() : null;
|
99
99
|
};
|
100
100
|
/** Set data to the specified cell
|
@@ -104,7 +104,7 @@ SectionWriter.prototype.getCellContent = function (colIndex, rowIndex) {
|
|
104
104
|
* @param {string|Element|tr.IElementControl|*} data this can be HTML element, string, number, date, image
|
105
105
|
*/
|
106
106
|
SectionWriter.prototype.setCellContent = function (colIndex, rowIndex, data) {
|
107
|
-
|
107
|
+
let cell = this.getCell(colIndex, rowIndex);
|
108
108
|
if(cell) {
|
109
109
|
cell.setContent(data);
|
110
110
|
}
|
@@ -119,17 +119,24 @@ SectionWriter.prototype.setCellContent = function (colIndex, rowIndex, data) {
|
|
119
119
|
SectionWriter.prototype.enableRowClass = function (rowIndex, className, enabled) { };
|
120
120
|
|
121
121
|
/** This will make the specified cell horizontally span to fit entire row regardless of position of the cell -- cell will shift to the left most of the section.<br>
|
122
|
-
* If
|
122
|
+
* If onlyToTheRight is true, the cell will not extend to the left most position<br>
|
123
123
|
* This is different from cell colSpan, which the cell remain in the same position. tr-stretched class will also be added to the cell
|
124
124
|
* @public
|
125
|
-
* @param {
|
126
|
-
* @param {number} rowIndex
|
127
|
-
* @param {boolean=}
|
128
|
-
* @param {boolean=}
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
125
|
+
* @param {*} cellRef Either column index or cell reference is acceptable
|
126
|
+
* @param {number=} rowIndex If the cell instance is given as the first parameter, this parameter will be ignored.
|
127
|
+
* @param {boolean=} stretching Default is true
|
128
|
+
* @param {boolean=} onlyToTheRight=false By default, cell will be stretched to both left and right directions, covering entire row. Set to true to expand only to the right
|
129
|
+
* @return {*} The cell being stretched
|
130
|
+
* @example
|
131
|
+
* grid.stretchCell(1, 0); // The second cell on the first row will be stretched covering the entire row
|
132
|
+
* grid.stretchCell(cellInstance, 0, true); // The given cell will be stretched covering the entire row
|
133
|
+
*/
|
134
|
+
SectionWriter.prototype.stretchCell = function (cellRef, rowIndex, stretching, onlyToTheRight) {
|
135
|
+
let cell = this._table.getCell(cellRef, rowIndex);
|
136
|
+
if(stretching !== false) {
|
137
|
+
cell.setAttribute("colspan", this._table.getColumnCount());
|
138
|
+
}
|
139
|
+
return cell;
|
133
140
|
};
|
134
141
|
/** {@link SectionWriter#stretchCell}
|
135
142
|
* @public
|
@@ -143,6 +150,22 @@ SectionWriter.prototype.unstretchCell = function (colIndex, rowIndex) {};
|
|
143
150
|
* @return {boolean}
|
144
151
|
*/
|
145
152
|
SectionWriter.prototype.hasCellSpan = function () { return false; };
|
153
|
+
/**
|
154
|
+
* @public
|
155
|
+
* @param {*} cellRef
|
156
|
+
* @param {number=} rowIndex
|
157
|
+
* @return {*}
|
158
|
+
*/
|
159
|
+
SectionWriter.prototype.getStretchedCell = function (cellRef, rowIndex) {
|
160
|
+
if(typeof rowIndex === "number") {
|
161
|
+
let cell = this._table.getCell(cellRef, rowIndex);
|
162
|
+
let colSpan = +cell.getAttribute("colspan");
|
163
|
+
if(colSpan > 1) {
|
164
|
+
return cell;
|
165
|
+
}
|
166
|
+
}
|
167
|
+
return null;
|
168
|
+
};
|
146
169
|
/** @description Returns zero or negative value, if the cell is spanned over (i.e. occupied by the spanning cell). <br>
|
147
170
|
* Negative value is distance from the spanning cell (i.e. -1 means one cell from the spanning cell and -2 means two cells from the spanning cell) <br>
|
148
171
|
* Return one, if the cell has no span (normal cell). <br>
|
@@ -210,4 +233,6 @@ SectionWriter.prototype._startBindingSession = function (enabled) {
|
|
210
233
|
};
|
211
234
|
|
212
235
|
|
236
|
+
|
237
|
+
export default SectionWriter;
|
213
238
|
export { SectionWriter };
|
@@ -26,6 +26,7 @@ declare namespace RowFilteringPlugin {
|
|
26
26
|
type FilterDialogOptions = {
|
27
27
|
sortUI?: boolean|null,
|
28
28
|
filterUI?: boolean|null,
|
29
|
+
advancedFilter?: boolean|null,
|
29
30
|
fieldDataType?: string|null,
|
30
31
|
lang?: string|null,
|
31
32
|
rawDataAccessor?: ((...params: any[]) => any)|null,
|
@@ -33,6 +34,7 @@ declare namespace RowFilteringPlugin {
|
|
33
34
|
sortLogic?: ((...params: any[]) => any)|null,
|
34
35
|
itemList?: any[]|null,
|
35
36
|
additionalItems?: any[]|null,
|
37
|
+
compactMode?: boolean|null,
|
36
38
|
blankValues?: (boolean|string)|null
|
37
39
|
};
|
38
40
|
|
@@ -80,6 +80,7 @@ The expression can take various forms:<br>
|
|
80
80
|
* @description Options that specify UIs of filter dialog
|
81
81
|
* @property {boolean=} sortUI=true show/hide sort UI
|
82
82
|
* @property {boolean=} filterUI=true show/hide filter UI
|
83
|
+
* @property {boolean=} advancedFilter=true show advaced filter tab
|
83
84
|
* @property {string=} fieldDataType data type of column
|
84
85
|
* @property {string=} lang dialog language
|
85
86
|
* @property {Function=} rawDataAccessor In case you have custom data type for the specified field, data getter is needed to retrieve raw value for filtering
|
@@ -87,6 +88,7 @@ The expression can take various forms:<br>
|
|
87
88
|
* @property {Function=} sortLogic This function for sorting filter item list in the dialog. The comparison will perform on raw values, and not formatted values
|
88
89
|
* @property {Array=} itemList Item list to be shown in the dialog. If this is not specified, the list will be collected from existing data on the grid
|
89
90
|
* @property {Array=} additionalItems Additional items to be put on the itemList
|
91
|
+
* @property {boolean=} compactMode=false force compact mode in dialog
|
90
92
|
* @property {(boolean|string)=} blankValues Display a "(Blanks)" item in the filter dialog to represent an empty value. If a string is passed, it will be used as the label for the blank item
|
91
93
|
*/
|
92
94
|
|
@@ -1813,6 +1815,8 @@ RowFilteringPlugin.prototype.openDialog = function(colIndex, runtimeDialogOption
|
|
1813
1815
|
let dialogConfig = { // default config
|
1814
1816
|
sortUI: true,
|
1815
1817
|
filterUI: true,
|
1818
|
+
advancedFilter: true,
|
1819
|
+
compactMode: false,
|
1816
1820
|
fieldDataType: "",
|
1817
1821
|
lang: "",
|
1818
1822
|
rawDataAccessor: null,
|
@@ -1974,6 +1978,16 @@ RowFilteringPlugin._overrideConfig = function(config, userConfig) {
|
|
1974
1978
|
config.filterUI = filterUI;
|
1975
1979
|
}
|
1976
1980
|
|
1981
|
+
let advancedFilter = userConfig["advancedFilter"];
|
1982
|
+
if (advancedFilter != null) {
|
1983
|
+
config.advancedFilter = advancedFilter;
|
1984
|
+
}
|
1985
|
+
|
1986
|
+
let compactMode = userConfig["compactMode"];
|
1987
|
+
if (compactMode != null) {
|
1988
|
+
config.compactMode = compactMode;
|
1989
|
+
}
|
1990
|
+
|
1977
1991
|
let fieldDataType = userConfig["fieldDataType"];
|
1978
1992
|
if(fieldDataType != null) {
|
1979
1993
|
config.fieldDataType = fieldDataType;
|
@@ -396,6 +396,12 @@ RowGroupingPlugin.prototype.initialize = function (host, options) {
|
|
396
396
|
return;
|
397
397
|
}
|
398
398
|
|
399
|
+
if(options && !options.multitable) {
|
400
|
+
while (this._hosts.length) {
|
401
|
+
this.unload(this._hosts[0]);
|
402
|
+
}
|
403
|
+
}
|
404
|
+
|
399
405
|
this._hosts.push(host);
|
400
406
|
|
401
407
|
ExpanderIcon.loadExpanderStyles();
|
@@ -341,6 +341,7 @@ MultiTableManager.prototype._addTable = function(tableIndex) {
|
|
341
341
|
|
342
342
|
let configObj = this._cloneConfig();
|
343
343
|
configObj.extensions = this._generateExtensions();
|
344
|
+
configObj.multitable = true;
|
344
345
|
|
345
346
|
delete configObj.staticDataRows;
|
346
347
|
delete configObj.rows;
|
package/lib/versions.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
|
-
"tr-grid-util": "1.3.
|
3
|
-
"tr-grid-printer": "1.0.
|
2
|
+
"tr-grid-util": "1.3.152",
|
3
|
+
"tr-grid-printer": "1.0.18",
|
4
4
|
"@grid/column-dragging": "1.0.20",
|
5
5
|
"@grid/row-segmenting": "1.0.31",
|
6
6
|
"@grid/statistics-row": "1.0.17",
|
@@ -19,19 +19,19 @@
|
|
19
19
|
"tr-grid-contextmenu": "1.0.41",
|
20
20
|
"tr-grid-filter-input": "0.9.39",
|
21
21
|
"tr-grid-heat-map": "1.0.29",
|
22
|
-
"tr-grid-in-cell-editing": "1.0.
|
22
|
+
"tr-grid-in-cell-editing": "1.0.87",
|
23
23
|
"tr-grid-pagination": "1.0.24",
|
24
24
|
"tr-grid-percent-bar": "1.0.24",
|
25
25
|
"tr-grid-range-bar": "2.0.8",
|
26
26
|
"tr-grid-row-dragging": "1.0.35",
|
27
|
-
"tr-grid-row-filtering": "1.0.
|
28
|
-
"tr-grid-row-grouping": "1.0.
|
27
|
+
"tr-grid-row-filtering": "1.0.77",
|
28
|
+
"tr-grid-row-grouping": "1.0.88",
|
29
29
|
"tr-grid-row-selection": "1.0.30",
|
30
30
|
"tr-grid-rowcoloring": "1.0.25",
|
31
31
|
"tr-grid-textformatting": "1.0.48",
|
32
32
|
"tr-grid-titlewrap": "1.0.22",
|
33
|
-
"@grid/formatters": "1.0.
|
33
|
+
"@grid/formatters": "1.0.53",
|
34
34
|
"@grid/column-selection-dialog": "4.0.57",
|
35
|
-
"@grid/filter-dialog": "4.0.
|
35
|
+
"@grid/filter-dialog": "4.0.65",
|
36
36
|
"@grid/column-format-dialog": "4.0.45"
|
37
37
|
}
|
package/package.json
CHANGED