@refinitiv-ui/efx-grid 6.0.2 → 6.0.3
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.
- package/lib/column-format-dialog/lib/column-format-dialog.d.ts +13 -1
- package/lib/column-selection-dialog/lib/column-selection-dialog.d.ts +15 -2
- package/lib/column-selection-dialog/lib/column-selection-dialog.js +146 -5
- package/lib/core/dist/core.js +65 -27
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataTable.js +32 -10
- package/lib/core/es6/data/DataView.d.ts +0 -6
- package/lib/core/es6/data/DataView.js +0 -4
- package/lib/core/es6/data/Segment.d.ts +2 -0
- package/lib/core/es6/data/Segment.js +7 -0
- package/lib/core/es6/data/WrappedView.js +6 -6
- package/lib/core/es6/grid/Core.js +15 -7
- package/lib/core/es6/grid/VirtualizedLayoutGrid.js +5 -0
- package/lib/filter-dialog/lib/checkbox-list.d.ts +13 -1
- package/lib/filter-dialog/lib/filter-dialog.d.ts +13 -1
- package/lib/filter-dialog/lib/filter-dialog.js +16 -3
- package/lib/grid/lib/efx-grid.d.ts +22 -10
- package/lib/grid/lib/efx-grid.js +8 -8
- package/lib/grid/themes/base.less +1 -1
- package/lib/grid/themes/halo/dark/efx-grid.js +1 -1
- package/lib/grid/themes/halo/dark/es5/all-elements.js +1 -1
- package/lib/grid/themes/halo/light/efx-grid.js +1 -1
- package/lib/grid/themes/halo/light/es5/all-elements.js +1 -1
- package/lib/grid/themes/solar/charcoal/efx-grid.js +1 -1
- package/lib/grid/themes/solar/charcoal/es5/all-elements.js +1 -1
- package/lib/grid/themes/solar/pearl/efx-grid.js +1 -1
- package/lib/grid/themes/solar/pearl/es5/all-elements.js +1 -1
- package/lib/row-segmenting/es6/RowSegmenting.js +4 -2
- package/lib/rt-grid/dist/rt-grid.js +3 -1
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/Grid.js +3 -1
- package/lib/tr-grid-checkbox/es6/Checkbox.d.ts +2 -1
- package/lib/tr-grid-checkbox/es6/Checkbox.js +13 -1
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +5 -1
- package/lib/tr-grid-in-cell-editing/es6/InCellEditing.d.ts +1 -1
- package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +13 -1
- package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +1 -3
- package/lib/tr-grid-row-dragging/es6/RowDragging.js +65 -60
- package/lib/tr-grid-row-selection/es6/RowSelection.d.ts +8 -8
- package/lib/tr-grid-row-selection/es6/RowSelection.js +32 -22
- package/lib/tr-grid-util/es6/ExpanderIcon.js +2 -2
- package/lib/tr-grid-util/es6/MultiTableManager.d.ts +8 -0
- package/lib/tr-grid-util/es6/MultiTableManager.js +164 -57
- package/lib/tr-grid-util/es6/RowPainter.js +16 -8
- package/lib/tr-grid-util/es6/jsx.d.ts +223 -0
- package/lib/types/es6/Checkbox.d.ts +2 -1
- package/lib/types/es6/Core/data/DataView.d.ts +0 -6
- package/lib/types/es6/Core/data/Segment.d.ts +2 -0
- package/lib/types/es6/InCellEditing.d.ts +1 -1
- package/lib/types/es6/RowDragging.d.ts +1 -3
- package/lib/types/es6/RowSelection.d.ts +8 -8
- package/lib/types/es6/index.d.ts +1 -0
- package/lib/versions.json +10 -10
- package/package.json +1 -1
@@ -1,4 +1,5 @@
|
|
1
1
|
import { customElement } from "@refinitiv-ui/core/decorators/custom-element.js";
|
2
|
+
import { JSXInterface } from "../../tr-grid-util/es6/jsx";
|
2
3
|
import {
|
3
4
|
BasicElement,
|
4
5
|
html
|
@@ -60,5 +61,16 @@ declare class ColumnFormatDialog extends BasicElement {
|
|
60
61
|
|
61
62
|
}
|
62
63
|
|
64
|
+
declare global {
|
65
|
+
interface HTMLElementTagNameMap {
|
66
|
+
"column-format-dialog": ColumnFormatDialog;
|
67
|
+
}
|
68
|
+
namespace JSX {
|
69
|
+
interface IntrinsicElements {
|
70
|
+
"column-format-dialog": ColumnFormatDialog | JSXInterface.HTMLAttributes;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
63
75
|
export { ColumnFormatDialog };
|
64
|
-
export default ColumnFormatDialog;
|
76
|
+
export default ColumnFormatDialog;
|
@@ -1,12 +1,14 @@
|
|
1
1
|
import { customElement } from "@refinitiv-ui/core/decorators/custom-element.js";
|
2
|
+
import { JSXInterface } from "../../tr-grid-util/es6/jsx";
|
2
3
|
import { BasicElement, html } from "@refinitiv-ui/core";
|
3
4
|
import "@refinitiv-ui/elements/button";
|
4
|
-
import "@refinitiv-ui/elements/tree";
|
5
|
+
import { DefaultRenderer } from "@refinitiv-ui/elements/tree";
|
5
6
|
import "@refinitiv-ui/elements/dialog";
|
6
7
|
import "@refinitiv-ui/elements/search-field";
|
7
8
|
import translation from "./locale/translation.js";
|
8
9
|
import ElementObserver from "../../tr-grid-util/es6/ElementObserver.js";
|
9
10
|
import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
|
11
|
+
import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
|
10
12
|
|
11
13
|
declare namespace ColumnSelectionDialog {
|
12
14
|
|
@@ -37,5 +39,16 @@ declare class ColumnSelectionDialog extends BasicElement {
|
|
37
39
|
|
38
40
|
}
|
39
41
|
|
42
|
+
declare global {
|
43
|
+
interface HTMLElementTagNameMap {
|
44
|
+
"column-selection-dialog": ColumnSelectionDialog;
|
45
|
+
}
|
46
|
+
namespace JSX {
|
47
|
+
interface IntrinsicElements {
|
48
|
+
"column-selection-dialog": ColumnSelectionDialog | JSXInterface.HTMLAttributes;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
40
53
|
export { ColumnSelectionDialog };
|
41
|
-
export default ColumnSelectionDialog;
|
54
|
+
export default ColumnSelectionDialog;
|
@@ -1,12 +1,13 @@
|
|
1
1
|
import { customElement } from "@refinitiv-ui/core/decorators/custom-element.js";
|
2
2
|
import { BasicElement, html } from "@refinitiv-ui/core";
|
3
3
|
import "@refinitiv-ui/elements/button";
|
4
|
-
import "@refinitiv-ui/elements/tree";
|
4
|
+
import { DefaultRenderer } from "@refinitiv-ui/elements/tree";
|
5
5
|
import "@refinitiv-ui/elements/dialog";
|
6
6
|
import "@refinitiv-ui/elements/search-field";
|
7
7
|
import translation from "./locale/translation.js";
|
8
8
|
import ElementObserver from "../../tr-grid-util/es6/ElementObserver.js";
|
9
9
|
import { ElfUtil } from "../../tr-grid-util/es6/ElfUtil.js";
|
10
|
+
import { injectCss, prettifyCss } from "../../tr-grid-util/es6/Util.js";
|
10
11
|
|
11
12
|
/**
|
12
13
|
* @typedef {Object} ColumnSelectionDialog~Config
|
@@ -499,6 +500,7 @@ class ColumnSelectionDialog extends BasicElement {
|
|
499
500
|
this._excludedLeftVisibleColumnList = []; // Visible left columns that is currently excluded from UI (eg. auto-generated column)
|
500
501
|
this._excludedRightVisibleColumnList = []; // Visible right columns that is currently excluded from UI
|
501
502
|
this._selectAllStatus = "";
|
503
|
+
this._treeDefualtRenderer = {};
|
502
504
|
|
503
505
|
this._isMovable = this._isMovable.bind(this);
|
504
506
|
this._treeValueChanged = this._treeValueChanged.bind(this);
|
@@ -515,7 +517,11 @@ class ColumnSelectionDialog extends BasicElement {
|
|
515
517
|
this._handleMouseover = this._handleMouseover.bind(this);
|
516
518
|
this._handleMouseout = this._handleMouseout.bind(this);
|
517
519
|
this._handleSelectAllHeaderClick = this._handleSelectAllHeaderClick.bind(this);
|
520
|
+
this._handleInfoIconClicked = this._handleInfoIconClicked.bind(this);
|
521
|
+
this._handleInfoIconMouseover = this._handleInfoIconMouseover.bind(this);
|
522
|
+
this._handleInfoIconMouseout = this._handleInfoIconMouseout.bind(this);
|
518
523
|
this._handleClick = this._handleClick.bind(this);
|
524
|
+
this._createTreeCustomRender = this._createTreeCustomRender.bind(this);
|
519
525
|
this._selectAllCheckedChanged = this._selectAllCheckedChanged.bind(this);
|
520
526
|
ElementObserver.addLanguageListener(this);
|
521
527
|
}
|
@@ -683,6 +689,52 @@ class ColumnSelectionDialog extends BasicElement {
|
|
683
689
|
this._visibleColumnsContainer.addEventListener('mouseout', this._handleMouseout);
|
684
690
|
this._visibleColumnsContainer.addEventListener('click', this._handleClick);
|
685
691
|
this._visibleColumnsContainer.addEventListener('dblclick', this._removeBtnClicked);
|
692
|
+
|
693
|
+
// icon custom renderer
|
694
|
+
if(this._descriptionBox) {
|
695
|
+
this._treeDefualtRenderer = new DefaultRenderer(this._tree);
|
696
|
+
this._tree.renderer = this._createTreeCustomRender;
|
697
|
+
}
|
698
|
+
|
699
|
+
// apply style for info icon
|
700
|
+
if(!this._styles) {
|
701
|
+
var styles = [
|
702
|
+
"ef-tree-item", [
|
703
|
+
"position: relative;"
|
704
|
+
],
|
705
|
+
".item", [
|
706
|
+
"display: flex;",
|
707
|
+
"justify-content: space-between;"
|
708
|
+
],
|
709
|
+
".div-icon", [
|
710
|
+
"position: absolute;",
|
711
|
+
"right: 0;",
|
712
|
+
"top: 0;",
|
713
|
+
"width: 24px;",
|
714
|
+
"height: 100%;",
|
715
|
+
"text-align: center;"
|
716
|
+
],
|
717
|
+
".info-icon", [
|
718
|
+
"display: block;",
|
719
|
+
"font-size: 18px;",
|
720
|
+
"height: 100%;",
|
721
|
+
"display: none"
|
722
|
+
],
|
723
|
+
"ef-tree-item:hover .item .info-icon", [ // hover item will show icon
|
724
|
+
"display: inline-block;",
|
725
|
+
"color: #ffffff;" // icon-color white both dark and light theme
|
726
|
+
],
|
727
|
+
"ef-tree-item .item .div-icon:hover", [ // hover icon will change icon background
|
728
|
+
"background-color: var(--color-scheme-primary);"
|
729
|
+
],
|
730
|
+
".bg-highligted", [ // effect ef-tree-item, when _handleInfoIconMouseover icon (disable highlighted background color)
|
731
|
+
"background-color: var(--color-scheme-tertiary);",
|
732
|
+
"color: var(--color-scheme-complementary);" // font text
|
733
|
+
]
|
734
|
+
];
|
735
|
+
this._styles = prettifyCss(styles);
|
736
|
+
injectCss(this._styles, this); // inject in column selection dialog dialog
|
737
|
+
}
|
686
738
|
}
|
687
739
|
|
688
740
|
/**
|
@@ -1188,10 +1240,7 @@ class ColumnSelectionDialog extends BasicElement {
|
|
1188
1240
|
_handleClick(e) {
|
1189
1241
|
var selectedElement = e.target; // Target should be ef-item
|
1190
1242
|
|
1191
|
-
|
1192
|
-
if (this._descriptionBox && this._initialColumnMap[selectedElement.value]) {
|
1193
|
-
this._descriptionContainer.textContent = this._initialColumnMap[selectedElement.value].description;
|
1194
|
-
}
|
1243
|
+
this._showDescription(selectedElement.value);
|
1195
1244
|
|
1196
1245
|
if (!selectedElement.highlightable) {
|
1197
1246
|
return;
|
@@ -1219,6 +1268,98 @@ class ColumnSelectionDialog extends BasicElement {
|
|
1219
1268
|
this.requestUpdate();
|
1220
1269
|
}
|
1221
1270
|
|
1271
|
+
/**
|
1272
|
+
* @private
|
1273
|
+
* @param {object} e - event object
|
1274
|
+
*/
|
1275
|
+
_handleInfoIconClicked(e) {
|
1276
|
+
var targetElem = e.currentTarget;
|
1277
|
+
var divItem = targetElem.parentNode;
|
1278
|
+
var treeItem = divItem.parentNode;
|
1279
|
+
var value = treeItem.item.value;
|
1280
|
+
this._showDescription(value);
|
1281
|
+
e.stopPropagation();
|
1282
|
+
}
|
1283
|
+
|
1284
|
+
/**
|
1285
|
+
* @private
|
1286
|
+
* @param {object} e - event object
|
1287
|
+
*/
|
1288
|
+
_handleInfoIconMouseover(e) {
|
1289
|
+
var targetElem = e.currentTarget;
|
1290
|
+
var divItem = targetElem.parentNode;
|
1291
|
+
var treeItem = divItem.parentNode;
|
1292
|
+
if(treeItem.highlighted) {
|
1293
|
+
treeItem.classList.add("bg-highligted");
|
1294
|
+
}
|
1295
|
+
}
|
1296
|
+
|
1297
|
+
/**
|
1298
|
+
* @private
|
1299
|
+
* @param {object} e - event object
|
1300
|
+
*/
|
1301
|
+
_handleInfoIconMouseout(e) {
|
1302
|
+
var targetElem = e.currentTarget;
|
1303
|
+
var divItem = targetElem.parentNode;
|
1304
|
+
var treeItem = divItem.parentNode;
|
1305
|
+
if(treeItem.highlighted) {
|
1306
|
+
treeItem.classList.remove("bg-highligted");
|
1307
|
+
}
|
1308
|
+
}
|
1309
|
+
|
1310
|
+
/**
|
1311
|
+
* @private
|
1312
|
+
* @param {string} value of mapping item for show description
|
1313
|
+
*/
|
1314
|
+
_showDescription(value) {
|
1315
|
+
if(!value) {
|
1316
|
+
return;
|
1317
|
+
}
|
1318
|
+
var rawValue = this._allItemMapping[value].rawValue; // restore rawValue for access initial value
|
1319
|
+
if (this._descriptionBox && this._initialColumnMap[rawValue]) {
|
1320
|
+
this._descriptionContainer.textContent = this._initialColumnMap[rawValue].description;
|
1321
|
+
}
|
1322
|
+
}
|
1323
|
+
|
1324
|
+
/**
|
1325
|
+
* @private
|
1326
|
+
* @param {object} item ef-tree-item element
|
1327
|
+
* @param {object} composer data collection composer for elf API wrapper
|
1328
|
+
* @param {object} element
|
1329
|
+
* @return {Object} custom renderer element
|
1330
|
+
*/
|
1331
|
+
_createTreeCustomRender(item, composer, element) {
|
1332
|
+
// Use default renderer to create/recycle element
|
1333
|
+
element = this._treeDefualtRenderer(item, composer, element);
|
1334
|
+
var isParent = composer.isItemParent(item);
|
1335
|
+
var rawValue = item.rawValue;
|
1336
|
+
if (!isParent && this._initialColumnMap[rawValue].description) {
|
1337
|
+
var treeLabel = element._treeLabel;
|
1338
|
+
if (!treeLabel) {
|
1339
|
+
var div = document.createElement("div");
|
1340
|
+
treeLabel = document.createElement("div");
|
1341
|
+
element._treeLabel = treeLabel;
|
1342
|
+
var iconEl = document.createElement("ef-icon");
|
1343
|
+
var divIcon = document.createElement("div");
|
1344
|
+
div.classList.add("item");
|
1345
|
+
treeLabel.classList.add("tree-label");
|
1346
|
+
iconEl.classList.add("info-icon");
|
1347
|
+
iconEl.icon = "info";
|
1348
|
+
divIcon.classList.add("div-icon");
|
1349
|
+
divIcon.appendChild(iconEl);
|
1350
|
+
divIcon.addEventListener("tap", this._handleInfoIconClicked );
|
1351
|
+
divIcon.addEventListener("mouseover", this._handleInfoIconMouseover);
|
1352
|
+
divIcon.addEventListener("mouseout", this._handleInfoIconMouseout);
|
1353
|
+
div.appendChild(treeLabel);
|
1354
|
+
div.appendChild(divIcon);
|
1355
|
+
element.appendChild(div);
|
1356
|
+
} else {
|
1357
|
+
treeLabel = element.querySelector(".tree-label");
|
1358
|
+
}
|
1359
|
+
treeLabel.textContent = item.label;
|
1360
|
+
}
|
1361
|
+
return element;
|
1362
|
+
}
|
1222
1363
|
|
1223
1364
|
/**
|
1224
1365
|
* update up and down button
|
package/lib/core/dist/core.js
CHANGED
@@ -11981,6 +11981,13 @@ Segment.prototype.removeAllChildren = function(objMap) {
|
|
11981
11981
|
Segment.prototype.getChildIds = function() {
|
11982
11982
|
return this._childCount ? Object.keys(this._children) : [];
|
11983
11983
|
};
|
11984
|
+
/** @public
|
11985
|
+
* @return {number}
|
11986
|
+
*/
|
11987
|
+
Segment.prototype.getChildCount = function() {
|
11988
|
+
return this._childCount;
|
11989
|
+
};
|
11990
|
+
|
11984
11991
|
|
11985
11992
|
|
11986
11993
|
/** @public
|
@@ -13356,6 +13363,7 @@ DataTable.prototype.isFrozen = function() {
|
|
13356
13363
|
*/
|
13357
13364
|
DataTable.prototype.setSegmentSeparator = function(rid, enabled) {
|
13358
13365
|
var change = false;
|
13366
|
+
var memberCount = 0;
|
13359
13367
|
if(typeof rid === "string") {
|
13360
13368
|
if(enabled !== false) {
|
13361
13369
|
if(!this._segments) {
|
@@ -13365,16 +13373,20 @@ DataTable.prototype.setSegmentSeparator = function(rid, enabled) {
|
|
13365
13373
|
change = true;
|
13366
13374
|
}
|
13367
13375
|
} else if(this._segments) {
|
13368
|
-
|
13369
|
-
|
13370
|
-
|
13371
|
-
|
13376
|
+
var segment = this._segments.getSegment(rid);
|
13377
|
+
if(segment) {
|
13378
|
+
memberCount = segment.getChildCount();
|
13379
|
+
if(this._segments.removeSegment(rid)) {
|
13380
|
+
change = true;
|
13381
|
+
if(!this._segments.getSegmentCount()) {
|
13382
|
+
this._segments = null;
|
13383
|
+
}
|
13372
13384
|
}
|
13373
13385
|
}
|
13374
13386
|
}
|
13375
13387
|
}
|
13376
13388
|
if(change && this._needFiring()) {
|
13377
|
-
if(this._autoFillSegments()) {
|
13389
|
+
if(this._autoFillSegments() || memberCount) {
|
13378
13390
|
this.dispatchGlobalChange();
|
13379
13391
|
} else {
|
13380
13392
|
var rowData = this._rows[rid] || null;
|
@@ -13486,13 +13498,14 @@ DataTable.prototype._autoFillSegments = function() {
|
|
13486
13498
|
}
|
13487
13499
|
return false;
|
13488
13500
|
};
|
13489
|
-
/** Remove existing segment children and fill the segments with all
|
13501
|
+
/** Remove existing segment children and fill the segments with all content rows before the next segment separator
|
13490
13502
|
* @public
|
13491
13503
|
* @param {string} segmentId Row id
|
13492
13504
|
*/
|
13493
13505
|
DataTable.prototype.fillSegment = function(segmentId) {
|
13494
13506
|
if(this._segments) {
|
13495
13507
|
this._segments.fillSegment(segmentId, this._rids);
|
13508
|
+
this.dispatchGlobalChange();
|
13496
13509
|
}
|
13497
13510
|
};
|
13498
13511
|
/** Remove all existing segment children in each segment and fill the segments with all contnet rows before the next segment separator
|
@@ -13501,7 +13514,11 @@ DataTable.prototype.fillSegment = function(segmentId) {
|
|
13501
13514
|
*/
|
13502
13515
|
DataTable.prototype.fillSegments = function() {
|
13503
13516
|
if(this._segments) {
|
13504
|
-
|
13517
|
+
var dirty = this._segments.fillSegments(this._rids);
|
13518
|
+
if(dirty) {
|
13519
|
+
this.dispatchGlobalChange();
|
13520
|
+
}
|
13521
|
+
return dirty;
|
13505
13522
|
}
|
13506
13523
|
return false;
|
13507
13524
|
};
|
@@ -13546,7 +13563,11 @@ DataTable.prototype.addSegmentChildren = function(segmentId, rids) {
|
|
13546
13563
|
*/
|
13547
13564
|
DataTable.prototype.removeSegmentChild = function(segmentId, rid) {
|
13548
13565
|
if(this._segments) {
|
13549
|
-
|
13566
|
+
var dirty = this._segments.removeSegmentChild(segmentId, rid);
|
13567
|
+
if(dirty) {
|
13568
|
+
this.dispatchGlobalChange();
|
13569
|
+
}
|
13570
|
+
return dirty;
|
13550
13571
|
}
|
13551
13572
|
return false;
|
13552
13573
|
};
|
@@ -13557,7 +13578,11 @@ DataTable.prototype.removeSegmentChild = function(segmentId, rid) {
|
|
13557
13578
|
*/
|
13558
13579
|
DataTable.prototype.removeSegmentChildren = function(segmentId, rids) {
|
13559
13580
|
if(this._segments) {
|
13560
|
-
|
13581
|
+
var dirty = this._segments.removeSegmentChildren(segmentId, rids);
|
13582
|
+
if(dirty) {
|
13583
|
+
this.dispatchGlobalChange();
|
13584
|
+
}
|
13585
|
+
return dirty;
|
13561
13586
|
}
|
13562
13587
|
return false;
|
13563
13588
|
};
|
@@ -13566,7 +13591,11 @@ DataTable.prototype.removeSegmentChildren = function(segmentId, rids) {
|
|
13566
13591
|
*/
|
13567
13592
|
DataTable.prototype.removeAllSegmentChildren = function() {
|
13568
13593
|
if(this._segments) {
|
13569
|
-
|
13594
|
+
var dirty = this._segments.removeAllSegmentChildren();
|
13595
|
+
if (dirty) {
|
13596
|
+
this.dispatchGlobalChange();
|
13597
|
+
}
|
13598
|
+
return dirty;
|
13570
13599
|
}
|
13571
13600
|
return false;
|
13572
13601
|
};
|
@@ -15523,7 +15552,7 @@ WrappedView.prototype.addRowExpansion = function(rid, count) {
|
|
15523
15552
|
* @param {string} rid Row Id
|
15524
15553
|
*/
|
15525
15554
|
WrappedView.prototype.removeRowExpansion = function(rid) {
|
15526
|
-
this._dv.removeRowExpansion(rid
|
15555
|
+
this._dv.removeRowExpansion(rid);
|
15527
15556
|
};
|
15528
15557
|
/**
|
15529
15558
|
* @public
|
@@ -15730,7 +15759,7 @@ WrappedView.prototype.setSegmentCollapsingLogic = function() {};
|
|
15730
15759
|
*/
|
15731
15760
|
WrappedView.prototype.isSegmentCollapsed = function(rowRef) {
|
15732
15761
|
var rid = this._toRowId(rowRef);
|
15733
|
-
return this._dv.isSegmentCollapsed(rid
|
15762
|
+
return this._dv.isSegmentCollapsed(rid);
|
15734
15763
|
};
|
15735
15764
|
/** Remove existing segment children and fill the segments with all contnet rows before the next segment separator
|
15736
15765
|
* @public
|
@@ -15763,8 +15792,8 @@ WrappedView.prototype.addSegmentChild = function(segmentRef, rowRef) {
|
|
15763
15792
|
*/
|
15764
15793
|
WrappedView.prototype.addSegmentChildren = function(segmentRef, rowRefs) {
|
15765
15794
|
var segmentId = this._toRowId(segmentRef);
|
15766
|
-
var
|
15767
|
-
return this._dv.addSegmentChildren(segmentId,
|
15795
|
+
var rowIds = this._toRowIds(rowRefs);
|
15796
|
+
return this._dv.addSegmentChildren(segmentId, rowIds);
|
15768
15797
|
};
|
15769
15798
|
/** @public
|
15770
15799
|
* @param {string|number} segmentRef Row id or row index
|
@@ -15783,8 +15812,8 @@ WrappedView.prototype.removeSegmentChild = function(segmentRef, rowRef) {
|
|
15783
15812
|
*/
|
15784
15813
|
WrappedView.prototype.removeSegmentChildren = function(segmentRef, rowRefs) {
|
15785
15814
|
var segmentId = this._toRowId(segmentRef);
|
15786
|
-
var
|
15787
|
-
return this._dv.removeSegmentChildren(segmentId,
|
15815
|
+
var rowIds = this._toRowIds(rowRefs);
|
15816
|
+
return this._dv.removeSegmentChildren(segmentId, rowIds);
|
15788
15817
|
};
|
15789
15818
|
/** @public
|
15790
15819
|
* @return {boolean} Return true if there is any change
|
@@ -16088,10 +16117,6 @@ Conflator.prototype.enable = function (opt_enabled) {
|
|
16088
16117
|
|
16089
16118
|
|
16090
16119
|
|
16091
|
-
/** @typedef {DataTable|WrappedView|DataView} DataView~IDataView
|
16092
|
-
* @description DataView like classes
|
16093
|
-
*/
|
16094
|
-
|
16095
16120
|
/** @event DataView#dataChanged
|
16096
16121
|
* @description Trigger when data within the data view has been changed. Not only actual change in data, but also position change will trigger this event.
|
16097
16122
|
* @property {boolean} globalChange Indicates a big change. User should expect all data has been change. With active sorting or filtering, this flag will always be true due to multiple changes in row position.
|
@@ -21283,6 +21308,11 @@ es6_Ext.inherits(VirtualizedLayoutGrid, components_ElementWrapper);
|
|
21283
21308
|
*/
|
21284
21309
|
VirtualizedLayoutGrid.prototype._index = -1;
|
21285
21310
|
|
21311
|
+
/** Number of rows offsetting from the first section
|
21312
|
+
* @private
|
21313
|
+
* @type {number}
|
21314
|
+
*/
|
21315
|
+
VirtualizedLayoutGrid.prototype._rowOffset = 0;
|
21286
21316
|
/** For virtualization in Y-Axis
|
21287
21317
|
* @private
|
21288
21318
|
* @type {number}
|
@@ -22927,7 +22957,7 @@ Core_Core.prototype._preserveGridSize = false;
|
|
22927
22957
|
* @return {string}
|
22928
22958
|
*/
|
22929
22959
|
Core_Core.getVersion = function () {
|
22930
|
-
return "5.0.
|
22960
|
+
return "5.0.53";
|
22931
22961
|
};
|
22932
22962
|
/** {@link ElementWrapper#dispose}
|
22933
22963
|
* @override
|
@@ -23246,6 +23276,10 @@ Core_Core.prototype.addSectionAt = function (at, opt_type, opt_sectionName) {
|
|
23246
23276
|
}
|
23247
23277
|
|
23248
23278
|
this._updateSectionIndices(at);
|
23279
|
+
if (this._autoSetDataSource) {
|
23280
|
+
// This could trigger data binding and column virtualization
|
23281
|
+
sectionSettings.setDataSource(this._dataSource);
|
23282
|
+
}
|
23249
23283
|
|
23250
23284
|
sectType = sectionSettings.getType();
|
23251
23285
|
if (sectType === "footer") {
|
@@ -26468,9 +26502,6 @@ Core_Core.prototype._newSection = function (opt_type, sectionName) {
|
|
26468
26502
|
section.listen("rowCountChanged", this._onRowCountChanged);
|
26469
26503
|
section.listen("rowHeightChanged", this._onRowHeightChanged);
|
26470
26504
|
|
26471
|
-
if (this._autoSetDataSource) {
|
26472
|
-
sectionSettings.setDataSource(this._dataSource);
|
26473
|
-
}
|
26474
26505
|
return sectionSettings;
|
26475
26506
|
};
|
26476
26507
|
|
@@ -26761,7 +26792,12 @@ Core_Core.prototype._removeColumn = function (num) { // TODO: change the logic
|
|
26761
26792
|
*/
|
26762
26793
|
Core_Core.prototype._onSectionDataChanged = function (e) {
|
26763
26794
|
if(this._dispatchingDataChanged) { return; } // Prevent infinite loop
|
26764
|
-
|
26795
|
+
|
26796
|
+
var colCount = this._layoutX.getLaneCount();
|
26797
|
+
this._dispatchingDataChanged = colCount ? true : false;
|
26798
|
+
if(!colCount) {
|
26799
|
+
return;
|
26800
|
+
}
|
26765
26801
|
|
26766
26802
|
var fromR = /** @type{number} */(e["fromRowIndex"]);
|
26767
26803
|
var toR = /** @type{number} */(e["toRowIndex"]);
|
@@ -26776,7 +26812,6 @@ Core_Core.prototype._onSectionDataChanged = function (e) {
|
|
26776
26812
|
}
|
26777
26813
|
this._dispatch("preSectionDataBinding", e);
|
26778
26814
|
|
26779
|
-
var colCount = this._layoutX.getLaneCount();
|
26780
26815
|
var dataMap = this.getDataColumnMap();
|
26781
26816
|
for (var c = 0; c < colCount; ++c) {
|
26782
26817
|
if(section["isColumnActive"](c) && (this.isColumnVisible(c) || this._isAlwaysRenderColumn(c))) {
|
@@ -26882,6 +26917,9 @@ Core_Core.prototype._onRowInViewChanged = function (e) { // Triggered from virtu
|
|
26882
26917
|
* @param {Object} e
|
26883
26918
|
*/
|
26884
26919
|
Core_Core.prototype._onColInViewChanged = function (e) {
|
26920
|
+
if(!this.getColumnCount()) {
|
26921
|
+
return; // No column for activation and no cell to be rendered
|
26922
|
+
}
|
26885
26923
|
var pfi = e["prevFirstIndex"];
|
26886
26924
|
var pli = e["prevLastIndex"]; // INCLUSIVE
|
26887
26925
|
var fi = e["firstIndex"];
|
@@ -27197,7 +27235,7 @@ Core_Core.prototype._onColumnCountChanged = function () {
|
|
27197
27235
|
// TODO: Optimize these methods during initialization
|
27198
27236
|
var pinnedLeft = this._countPinnedLeftColumns();
|
27199
27237
|
var pinnedRight = this._countPinnedRightColumns();
|
27200
|
-
|
27238
|
+
|
27201
27239
|
this._updateColumnBounds();
|
27202
27240
|
|
27203
27241
|
if (this._hScrollbarEnabled && pinnedLeft + pinnedRight < this.getColumnCount()) {
|