@refinitiv-ui/efx-grid 6.0.24 → 6.0.26
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/core/dist/core.css +1 -1
- package/lib/core/dist/core.js +1331 -145
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/grid/Core.d.ts +11 -0
- package/lib/core/es6/grid/Core.js +81 -10
- package/lib/core/es6/grid/util/ElementFrameWork.js +1 -1
- package/lib/core/es6/tr-grid-theme.js +1 -1
- package/lib/grid/index.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +768 -53
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/ColumnDefinition.js +1 -1
- package/lib/rt-grid/es6/FieldDefinition.d.ts +2 -0
- package/lib/rt-grid/es6/FieldDefinition.js +13 -2
- package/lib/rt-grid/es6/Grid.d.ts +3 -1
- package/lib/rt-grid/es6/Grid.js +83 -39
- package/lib/rt-grid/es6/RowDefinition.d.ts +14 -1
- package/lib/rt-grid/es6/RowDefinition.js +54 -2
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +3 -2
- package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +314 -566
- package/lib/tr-grid-column-selection/es6/ColumnSelection.d.ts +13 -11
- package/lib/tr-grid-column-selection/es6/ColumnSelection.js +233 -81
- package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +3 -3
- package/lib/tr-grid-column-stack/es6/ColumnStack.js +50 -56
- package/lib/tr-grid-in-cell-editing/es6/InCellEditing.js +21 -9
- package/lib/tr-grid-range-bar/es6/RangeBar.d.ts +18 -9
- package/lib/tr-grid-range-bar/es6/RangeBar.js +318 -139
- package/lib/tr-grid-util/es6/GridPlugin.d.ts +1 -1
- package/lib/tr-grid-util/es6/GridPlugin.js +13 -15
- package/lib/tr-grid-util/es6/GroupDefinitions.d.ts +58 -0
- package/lib/tr-grid-util/es6/GroupDefinitions.js +538 -0
- package/lib/tr-grid-util/es6/Popup.js +1 -1
- package/lib/tr-grid-util/es6/index.d.ts +2 -0
- package/lib/tr-grid-util/es6/index.js +3 -0
- package/lib/types/es6/ColumnGrouping.d.ts +3 -2
- package/lib/types/es6/ColumnSelection.d.ts +13 -11
- package/lib/types/es6/ColumnStack.d.ts +3 -3
- package/lib/types/es6/Core/grid/Core.d.ts +11 -0
- package/lib/types/es6/RealtimeGrid/FieldDefinition.d.ts +2 -0
- package/lib/types/es6/RealtimeGrid/Grid.d.ts +3 -1
- package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +14 -1
- package/lib/types/es6/index.d.ts +1 -1
- package/lib/versions.json +6 -6
- package/package.json +1 -1
@@ -13060,12 +13060,34 @@ DataTable._proto = DataTable.prototype;
|
|
13060
13060
|
* @property {boolean=} hidden=true When this row is hidden
|
13061
13061
|
*/
|
13062
13062
|
|
13063
|
+
/** @typedef {Object} RowDefinition~RowTypes
|
13064
|
+
* @property {string} CONTENT="CONTENT"
|
13065
|
+
* @property {string} CHAIN="CHAIN"
|
13066
|
+
* @property {string} CONSTITUENT="CONSTITUENT"
|
13067
|
+
* @property {string} GROUP_HEADER="GROUP_HEADER"
|
13068
|
+
* @property {string} SUBGROUP_HEADER="SUBGROUP_HEADER"
|
13069
|
+
* @property {string} GROUP_MEMBER="GROUP_MEMBER"
|
13070
|
+
*/
|
13071
|
+
|
13063
13072
|
/** @type {string}
|
13064
13073
|
* @public
|
13065
13074
|
* @const
|
13066
13075
|
*/
|
13067
13076
|
var ROW_DEF = "ROW_DEF";
|
13068
13077
|
|
13078
|
+
/** @type {RowDefinition~RowTypes}
|
13079
|
+
* @public
|
13080
|
+
* @const
|
13081
|
+
*/
|
13082
|
+
var ROW_TYPES = {
|
13083
|
+
CONTENT: "CONTENT",
|
13084
|
+
CHAIN: "CHAIN",
|
13085
|
+
CONSTITUENT: "CONSTITUENT",
|
13086
|
+
GROUP_HEADER: "GROUP_HEADER",
|
13087
|
+
SUBGROUP_HEADER: "SUBGROUP_HEADER",
|
13088
|
+
GROUP_MEMBER: "GROUP_MEMBER"
|
13089
|
+
};
|
13090
|
+
|
13069
13091
|
/** @constructor
|
13070
13092
|
* @param {RowDefinition~Options=} rowOptions
|
13071
13093
|
*/
|
@@ -13438,7 +13460,37 @@ RowDefinition.prototype.getConfigObject = function(rowOptions) {
|
|
13438
13460
|
RowDefinition.prototype.getDataId = function() {
|
13439
13461
|
return this._dataId;
|
13440
13462
|
};
|
13441
|
-
|
13463
|
+
/** @public
|
13464
|
+
* @return {string}
|
13465
|
+
*/
|
13466
|
+
RowDefinition.prototype.getType = function() {
|
13467
|
+
if(this._isChain) {
|
13468
|
+
return ROW_TYPES.CHAIN;
|
13469
|
+
} else if(this._parent) {
|
13470
|
+
return ROW_TYPES.CONSTITUENT;
|
13471
|
+
} else {
|
13472
|
+
var dv = this._view;
|
13473
|
+
if(dv) {
|
13474
|
+
var rid = this.getRowId();
|
13475
|
+
var separator = dv.isSegmentSeparator(rid);
|
13476
|
+
var level = dv.getSegmentLevel(rid);
|
13477
|
+
if(separator) {
|
13478
|
+
if(level === 1) {
|
13479
|
+
return ROW_TYPES.GROUP_HEADER;
|
13480
|
+
} else {
|
13481
|
+
return ROW_TYPES.SUBGROUP_HEADER;
|
13482
|
+
}
|
13483
|
+
} else {
|
13484
|
+
if(dv.getSegmentParentRowId(rid)) {
|
13485
|
+
return ROW_TYPES.GROUP_MEMBER;
|
13486
|
+
}
|
13487
|
+
}
|
13488
|
+
} else {
|
13489
|
+
return "";
|
13490
|
+
}
|
13491
|
+
}
|
13492
|
+
return ROW_TYPES.CONTENT;
|
13493
|
+
};
|
13442
13494
|
/** This method should always be called right after the initialization
|
13443
13495
|
* @public
|
13444
13496
|
* @param {DataCache} dataSource
|
@@ -14343,6 +14395,17 @@ FieldDefinition.get = function(field) {
|
|
14343
14395
|
}
|
14344
14396
|
return null;
|
14345
14397
|
};
|
14398
|
+
|
14399
|
+
/** @public
|
14400
|
+
* @function
|
14401
|
+
* @param {string} field
|
14402
|
+
* @return {boolean}
|
14403
|
+
*/
|
14404
|
+
FieldDefinition.hasFieldInfo = function(field) {
|
14405
|
+
var val = FieldDefinition.get(field);
|
14406
|
+
return val && val.field; // Already preventing an error caused by accessing a property on a null value
|
14407
|
+
};
|
14408
|
+
|
14346
14409
|
/** @public
|
14347
14410
|
* @function
|
14348
14411
|
* @param {string} field
|
@@ -14505,8 +14568,8 @@ FieldDefinition.loadFieldInfo = function (field) {
|
|
14505
14568
|
defer.resolve(null);
|
14506
14569
|
}
|
14507
14570
|
// already have field definition then return
|
14508
|
-
else if (FieldDefinition.
|
14509
|
-
defer.resolve(FieldDefinition.
|
14571
|
+
else if (FieldDefinition.hasFieldInfo(field)) {
|
14572
|
+
defer.resolve(FieldDefinition.get(field));
|
14510
14573
|
}
|
14511
14574
|
// in debug using mock data instead
|
14512
14575
|
else if (synapse.debug) {
|
@@ -14765,7 +14828,7 @@ PredefinedFormula.remove = function(field) {
|
|
14765
14828
|
* @property {string=} headerAlignment="" Text alignment for column header. This will override `textAlign` option for column header.
|
14766
14829
|
* @property {string=} titleAlignment="" Alias to `headerAlignment`
|
14767
14830
|
* @property {boolean=} hidden=false
|
14768
|
-
* @property {string=} id
|
14831
|
+
* @property {string=} id A unique identifier for the column
|
14769
14832
|
* @property {boolean=} textSelect=false If enabled, user can select text in this column
|
14770
14833
|
* @property {boolean=} keepModel If enabled, initial column's options will be kept
|
14771
14834
|
* @property {boolean=} stationary=false If enabled, the column order cannot be changed (i.e., this column and any column to its left cannot be moved)
|
@@ -16353,6 +16416,546 @@ SnapshotFiller.prototype._onRTKTimeSeriesSuccess = function (fields, serverResul
|
|
16353
16416
|
|
16354
16417
|
/* harmony default export */ var js_SnapshotFiller = (SnapshotFiller);
|
16355
16418
|
|
16419
|
+
// CONCATENATED MODULE: ./node_modules/tr-grid-util/es6/GroupDefinitions.js
|
16420
|
+
|
16421
|
+
|
16422
|
+
/** @constructor
|
16423
|
+
*/
|
16424
|
+
var GroupDefinitions = function () {
|
16425
|
+
this._groupMap = {};
|
16426
|
+
this._childToParent = {};
|
16427
|
+
};
|
16428
|
+
|
16429
|
+
/** @type {!Object.<string, Object>}
|
16430
|
+
* @description A map of group id to group defintion
|
16431
|
+
* @private
|
16432
|
+
*/
|
16433
|
+
GroupDefinitions.prototype._groupMap;
|
16434
|
+
/** @type {!Object.<string, string>}
|
16435
|
+
* @description A map of child id to parent id
|
16436
|
+
* @private
|
16437
|
+
*/
|
16438
|
+
GroupDefinitions.prototype._childToParent;
|
16439
|
+
|
16440
|
+
|
16441
|
+
/** @public
|
16442
|
+
* @function
|
16443
|
+
* @param {Object} groupDef
|
16444
|
+
* @return {string}
|
16445
|
+
*/
|
16446
|
+
GroupDefinitions.getGroupId = function(groupDef) {
|
16447
|
+
if(groupDef) {
|
16448
|
+
return groupDef.id || "";
|
16449
|
+
}
|
16450
|
+
return "";
|
16451
|
+
};
|
16452
|
+
/** @public
|
16453
|
+
* @param {Object.<string, Object>} groupMap
|
16454
|
+
* @param {Object} groupDef
|
16455
|
+
* @return {number} Return total number of parents. Return 0 if there is no parent.
|
16456
|
+
*/
|
16457
|
+
GroupDefinitions.calcTreeDepth = function (groupMap, groupDef) {
|
16458
|
+
var curDepth = -1;
|
16459
|
+
var curNode = groupDef;
|
16460
|
+
while(curNode) { // WARNING: infinite loop could occured, if parentId is cycle back to one of the child group
|
16461
|
+
if(++curDepth > 15) {
|
16462
|
+
console.log("WARNING: Infinite loop detected during column group creation");
|
16463
|
+
break;
|
16464
|
+
}
|
16465
|
+
var parentId = curNode.parentId;
|
16466
|
+
curNode = groupMap[parentId];
|
16467
|
+
}
|
16468
|
+
return curDepth;
|
16469
|
+
};
|
16470
|
+
/** @public
|
16471
|
+
* @param {Object.<string, Object>} groupMap
|
16472
|
+
* @param {string} groupId
|
16473
|
+
* @return {Array.<string>}
|
16474
|
+
*/
|
16475
|
+
GroupDefinitions.getLeafDescendants = function (groupMap, groupId) {
|
16476
|
+
var groupDef = groupMap[groupId];
|
16477
|
+
if(!groupDef) {
|
16478
|
+
return null;
|
16479
|
+
}
|
16480
|
+
|
16481
|
+
var leaves = [];
|
16482
|
+
var unvisitedGroups = [groupDef];
|
16483
|
+
var visitedCount = 0;
|
16484
|
+
var visitedMap = {};
|
16485
|
+
while(visitedCount < unvisitedGroups.length) {
|
16486
|
+
groupDef = unvisitedGroups[visitedCount++];
|
16487
|
+
visitedMap[groupDef.id] = true;
|
16488
|
+
var chdr = groupDef.children;
|
16489
|
+
var len = chdr.length;
|
16490
|
+
for(var i = 0; i < len; ++i) {
|
16491
|
+
var childId = chdr[i];
|
16492
|
+
groupDef = groupMap[childId];
|
16493
|
+
if(groupDef) {
|
16494
|
+
if(!visitedMap[groupDef.id]) { // Prevent infinite loop
|
16495
|
+
unvisitedGroups.push(groupDef);
|
16496
|
+
}
|
16497
|
+
} else {
|
16498
|
+
leaves.push(childId);
|
16499
|
+
}
|
16500
|
+
}
|
16501
|
+
}
|
16502
|
+
return leaves;
|
16503
|
+
};
|
16504
|
+
|
16505
|
+
|
16506
|
+
/** @private
|
16507
|
+
* @function
|
16508
|
+
* @param {Object} obj
|
16509
|
+
* @return {Object}
|
16510
|
+
*/
|
16511
|
+
GroupDefinitions._cloneObject = function(obj) {
|
16512
|
+
var newObj = Object(Util["b" /* cloneObject */])(obj);
|
16513
|
+
if(Array.isArray(newObj.children)) {
|
16514
|
+
newObj.children = newObj.children;
|
16515
|
+
} else {
|
16516
|
+
newObj.children = [];
|
16517
|
+
}
|
16518
|
+
return newObj;
|
16519
|
+
};
|
16520
|
+
/** @private
|
16521
|
+
* @param {Object} groupMap
|
16522
|
+
* @return {!Object}
|
16523
|
+
*/
|
16524
|
+
GroupDefinitions._cloneGroupMap = function (groupMap) {
|
16525
|
+
var outMap = {};
|
16526
|
+
for(var groupId in groupMap) {
|
16527
|
+
var groupDef = groupMap[groupId];
|
16528
|
+
var obj = GroupDefinitions._cloneObject(groupDef);
|
16529
|
+
obj.children = groupDef.children.slice();
|
16530
|
+
outMap[groupId] = obj;
|
16531
|
+
}
|
16532
|
+
return outMap;
|
16533
|
+
};
|
16534
|
+
|
16535
|
+
/** @private
|
16536
|
+
* @function
|
16537
|
+
* @param {Array.<string>|Object} obj
|
16538
|
+
* @param {string=} groupId
|
16539
|
+
* @return {Object}
|
16540
|
+
*/
|
16541
|
+
GroupDefinitions._toGroupDefinition = function(obj, groupId) {
|
16542
|
+
var groupDef = null;
|
16543
|
+
if(obj) {
|
16544
|
+
if(Array.isArray(obj)) {
|
16545
|
+
groupDef = {
|
16546
|
+
children: obj
|
16547
|
+
};
|
16548
|
+
} else {
|
16549
|
+
groupDef = GroupDefinitions._cloneObject(obj);
|
16550
|
+
}
|
16551
|
+
if(groupId) {
|
16552
|
+
if(!groupDef.id) {
|
16553
|
+
groupDef.name = groupId;
|
16554
|
+
}
|
16555
|
+
groupDef.id = groupId;
|
16556
|
+
}
|
16557
|
+
}
|
16558
|
+
return groupDef;
|
16559
|
+
};
|
16560
|
+
|
16561
|
+
/** @public
|
16562
|
+
* @return {string}
|
16563
|
+
*/
|
16564
|
+
GroupDefinitions.prototype.toString = function() {
|
16565
|
+
var groupMap = this._groupMap;
|
16566
|
+
var lines = [];
|
16567
|
+
lines.push("=== groupDefs ===");
|
16568
|
+
for(var key in groupMap) {
|
16569
|
+
var group = groupMap[key];
|
16570
|
+
lines.push(key + ": " + JSON.stringify(group, ["id", "parentId", "children"]));
|
16571
|
+
}
|
16572
|
+
|
16573
|
+
lines.push("=== childToParent ===");
|
16574
|
+
lines.push(JSON.stringify(this._childToParent, null, 2));
|
16575
|
+
lines.push("");
|
16576
|
+
|
16577
|
+
return lines.join("\n");
|
16578
|
+
};
|
16579
|
+
|
16580
|
+
/** Get group definition object. This method can be used to check whether the given id is a group id or not (i.e., isGroupId).
|
16581
|
+
* @public
|
16582
|
+
* @param {string} groupId
|
16583
|
+
* @return {Object}
|
16584
|
+
*/
|
16585
|
+
GroupDefinitions.prototype.getGroup = function (groupId) {
|
16586
|
+
if(groupId) {
|
16587
|
+
return this._groupMap[groupId] || null;
|
16588
|
+
}
|
16589
|
+
return null;
|
16590
|
+
};
|
16591
|
+
/** @public
|
16592
|
+
* @function
|
16593
|
+
* @param {string} groupId
|
16594
|
+
* @return {Object}
|
16595
|
+
*/
|
16596
|
+
GroupDefinitions.prototype.getDefinition = GroupDefinitions.prototype.getGroup;
|
16597
|
+
/** Get array of all existing group definitions
|
16598
|
+
* @public
|
16599
|
+
* @return {!Array.<Object>}
|
16600
|
+
*/
|
16601
|
+
GroupDefinitions.prototype.getGroups = function () {
|
16602
|
+
var groupDefs = [];
|
16603
|
+
var groupMap = this._groupMap;
|
16604
|
+
for(var key in groupMap) {
|
16605
|
+
groupDefs.push(groupMap[key]);
|
16606
|
+
}
|
16607
|
+
return groupDefs;
|
16608
|
+
};
|
16609
|
+
/** @public
|
16610
|
+
* @return {!Object.<string, Object>}
|
16611
|
+
*/
|
16612
|
+
GroupDefinitions.prototype.getGroupMap = function () {
|
16613
|
+
return this._groupMap; // WARNING: Allow access to private member
|
16614
|
+
};
|
16615
|
+
/** @public
|
16616
|
+
* @return {!Object.<string, Object>}
|
16617
|
+
*/
|
16618
|
+
GroupDefinitions.prototype.cloneGroupMap = function () {
|
16619
|
+
return GroupDefinitions._cloneGroupMap(this._groupMap);
|
16620
|
+
};
|
16621
|
+
|
16622
|
+
/** Get immediate child ids of the specified group. The returned array can contain both child ids and group ids
|
16623
|
+
* @public
|
16624
|
+
* @param {string} groupId
|
16625
|
+
* @return {Array.<string>}
|
16626
|
+
*/
|
16627
|
+
GroupDefinitions.prototype.getGroupChildren = function (groupId) {
|
16628
|
+
var groupDef = this._groupMap[groupId];
|
16629
|
+
return groupDef ? groupDef.children : null;
|
16630
|
+
};
|
16631
|
+
/** Get all non-group descendants of the given group id.
|
16632
|
+
* @public
|
16633
|
+
* @param {string} groupId
|
16634
|
+
* @return {Array.<string>}
|
16635
|
+
*/
|
16636
|
+
GroupDefinitions.prototype.getLeafDescendants = function (groupId) {
|
16637
|
+
return GroupDefinitions.getLeafDescendants(this._groupMap, groupId);
|
16638
|
+
};
|
16639
|
+
/** @public
|
16640
|
+
* @param {string} groupId
|
16641
|
+
* @return {number} Return -1 if the given groupDef is null. Return 0 if there is no parent. Return 1 or more if it has a parent
|
16642
|
+
*/
|
16643
|
+
GroupDefinitions.prototype.getGroupLevel = function (groupId) {
|
16644
|
+
return GroupDefinitions.calcTreeDepth(this._groupMap, this._groupMap[groupId]);
|
16645
|
+
};
|
16646
|
+
/** @public
|
16647
|
+
* @param {string} groupId
|
16648
|
+
* @return {Object}
|
16649
|
+
*/
|
16650
|
+
GroupDefinitions.prototype.getRootGroup = function (groupId) {
|
16651
|
+
if (!groupId) {
|
16652
|
+
return null;
|
16653
|
+
}
|
16654
|
+
var groupMap = this._groupMap;
|
16655
|
+
var groupDef = groupMap[groupId] || null;
|
16656
|
+
// TODO: Support column id
|
16657
|
+
if(groupDef) {
|
16658
|
+
while (groupDef.parentId) {
|
16659
|
+
var parentDef = groupMap[groupDef.parentId];
|
16660
|
+
if(parentDef) {
|
16661
|
+
groupDef = parentDef;
|
16662
|
+
} else {
|
16663
|
+
break;
|
16664
|
+
}
|
16665
|
+
}
|
16666
|
+
}
|
16667
|
+
return groupDef;
|
16668
|
+
};
|
16669
|
+
/** @public
|
16670
|
+
* @param {string} childId
|
16671
|
+
* @return {Object}
|
16672
|
+
*/
|
16673
|
+
GroupDefinitions.prototype.getParentGroup = function (childId) {
|
16674
|
+
return this.getGroup(this._childToParent[childId]);
|
16675
|
+
};
|
16676
|
+
/** @public
|
16677
|
+
* @param {string} childId
|
16678
|
+
* @return {Array.<string>}
|
16679
|
+
*/
|
16680
|
+
GroupDefinitions.prototype.getParentIds = function(childId) {
|
16681
|
+
if (childId && typeof childId === "string") {
|
16682
|
+
var groupId = this._childToParent[childId];
|
16683
|
+
if (groupId) {
|
16684
|
+
var groupIds = [groupId];
|
16685
|
+
var group = this._groupMap[groupId];
|
16686
|
+
while (group && group.parentId) {
|
16687
|
+
group = this._groupMap[group.parentId];
|
16688
|
+
if (group) {
|
16689
|
+
groupIds.push(group.id);
|
16690
|
+
}
|
16691
|
+
}
|
16692
|
+
return groupIds;
|
16693
|
+
}
|
16694
|
+
}
|
16695
|
+
return null;
|
16696
|
+
};
|
16697
|
+
/** @public
|
16698
|
+
* @param {string} childId
|
16699
|
+
* @param {number=} groupLevel
|
16700
|
+
* @return {string}
|
16701
|
+
*/
|
16702
|
+
GroupDefinitions.prototype.getParentId = function (childId, groupLevel) {
|
16703
|
+
var parentId = this._childToParent[childId];
|
16704
|
+
if(groupLevel != null) {
|
16705
|
+
var currentLevel = this.getGroupLevel(parentId);
|
16706
|
+
while(currentLevel > groupLevel && parentId){
|
16707
|
+
parentId = this._childToParent[parentId];
|
16708
|
+
currentLevel--;
|
16709
|
+
}
|
16710
|
+
}
|
16711
|
+
|
16712
|
+
return parentId || "";
|
16713
|
+
};
|
16714
|
+
|
16715
|
+
|
16716
|
+
/** Remove all existing group definitions and replace them with the given definitions.
|
16717
|
+
* @public
|
16718
|
+
* @param {Array.<Object>=} groupDefs Use null or empty array to remove all existing groups
|
16719
|
+
*/
|
16720
|
+
GroupDefinitions.prototype.setGroups = function (groupDefs) {
|
16721
|
+
// Clear existing group structure
|
16722
|
+
var groupMap = this._groupMap = {};
|
16723
|
+
var childToParent = this._childToParent = {};
|
16724
|
+
|
16725
|
+
// Create group map
|
16726
|
+
var i;
|
16727
|
+
var grpCount = groupDefs ? groupDefs.length : 0;
|
16728
|
+
var groupId = "";
|
16729
|
+
for (i = 0; i < grpCount; i++) {
|
16730
|
+
var groupDef = groupDefs[i];
|
16731
|
+
groupId = groupDef.id;
|
16732
|
+
if(groupId) {
|
16733
|
+
groupMap[groupId] = groupDef;
|
16734
|
+
}
|
16735
|
+
}
|
16736
|
+
|
16737
|
+
// Create child to parent map
|
16738
|
+
var groupIds = Object.keys(groupMap);
|
16739
|
+
grpCount = groupIds.length;
|
16740
|
+
for(i = 0; i < grpCount; ++i) {
|
16741
|
+
groupId = groupIds[i];
|
16742
|
+
var children = groupMap[groupId].children;
|
16743
|
+
var childCount = children.length;
|
16744
|
+
for (var j = 0; j < childCount; j++) {
|
16745
|
+
childToParent[children[j]] = groupId;
|
16746
|
+
}
|
16747
|
+
}
|
16748
|
+
|
16749
|
+
// Apply a parent id to group definition to make it easier to find depth
|
16750
|
+
for(i = 0; i < grpCount; ++i) {
|
16751
|
+
groupId = groupIds[i];
|
16752
|
+
var parentId = childToParent[groupId];
|
16753
|
+
if(parentId) {
|
16754
|
+
groupMap[groupId].parentId = parentId;
|
16755
|
+
}
|
16756
|
+
}
|
16757
|
+
};
|
16758
|
+
/** Add new group definition to existing group structure. Existing group with the same id will be replaced.
|
16759
|
+
* @public
|
16760
|
+
* @param {Object} groupDef Group definition object
|
16761
|
+
* @return {string} Return group ID
|
16762
|
+
*/
|
16763
|
+
GroupDefinitions.prototype.addGroup = function (groupDef) {
|
16764
|
+
var groupId = GroupDefinitions.getGroupId(groupDef);
|
16765
|
+
if(groupId) {
|
16766
|
+
return this.setGroup(groupId, groupDef);
|
16767
|
+
}
|
16768
|
+
return groupId;
|
16769
|
+
};
|
16770
|
+
/** @public
|
16771
|
+
* @param {string} groupId
|
16772
|
+
* @return {boolean}
|
16773
|
+
*/
|
16774
|
+
GroupDefinitions.prototype.removeGroup = function (groupId) {
|
16775
|
+
var curDef = this._groupMap[groupId];
|
16776
|
+
if(curDef) {
|
16777
|
+
this.removeAllChildren(groupId);
|
16778
|
+
this.removeGroupChild(groupId);
|
16779
|
+
delete this._groupMap[groupId];
|
16780
|
+
|
16781
|
+
return true;
|
16782
|
+
}
|
16783
|
+
return false;
|
16784
|
+
};
|
16785
|
+
/** Replace and update existing group definition. New group is added if the given id has no match. Existing group will be removed of no new definition is given.
|
16786
|
+
* @public
|
16787
|
+
* @param {string} groupId
|
16788
|
+
* @param {Array.<string>|Object=} groupDef
|
16789
|
+
* @return {string} Return group Id. Return empty string if nothing has been changed.
|
16790
|
+
*/
|
16791
|
+
GroupDefinitions.prototype.setGroup = function (groupId, groupDef) {
|
16792
|
+
if(!groupId) {
|
16793
|
+
return "";
|
16794
|
+
}
|
16795
|
+
|
16796
|
+
if(groupDef) {
|
16797
|
+
var newDef = GroupDefinitions._toGroupDefinition(groupDef, groupId);
|
16798
|
+
this._ungroupChildren(newDef.children);
|
16799
|
+
|
16800
|
+
var curDef = this._groupMap[groupId];
|
16801
|
+
if(curDef) { // Replace
|
16802
|
+
this.removeAllChildren(groupId);
|
16803
|
+
}
|
16804
|
+
var parentDef = this._childToParent[groupId];
|
16805
|
+
if(parentDef) {
|
16806
|
+
newDef.parentId = parentDef.id;
|
16807
|
+
}
|
16808
|
+
this._groupMap[groupId] = newDef;
|
16809
|
+
|
16810
|
+
var chdr = newDef.children;
|
16811
|
+
var len = chdr.length;
|
16812
|
+
for(var i = 0; i < len; ++i) {
|
16813
|
+
var childId = chdr[i];
|
16814
|
+
this._childToParent[childId] = groupId;
|
16815
|
+
var childDef = this._groupMap[childId];
|
16816
|
+
if(childDef) {
|
16817
|
+
childDef.parentId = groupId;
|
16818
|
+
}
|
16819
|
+
}
|
16820
|
+
} else { // Remove
|
16821
|
+
if(!this.removeGroup(groupId)) {
|
16822
|
+
return "";
|
16823
|
+
}
|
16824
|
+
}
|
16825
|
+
|
16826
|
+
return groupId;
|
16827
|
+
};
|
16828
|
+
|
16829
|
+
/** Remove each child from any group
|
16830
|
+
* @private
|
16831
|
+
* @param {Array.<string>} children
|
16832
|
+
*/
|
16833
|
+
GroupDefinitions.prototype._ungroupChildren = function(children) {
|
16834
|
+
if (Array.isArray(children)) {
|
16835
|
+
var len = children.length;
|
16836
|
+
for(var i = 0; i < len; ++i) {
|
16837
|
+
this.removeGroupChild(children[i]);
|
16838
|
+
}
|
16839
|
+
}
|
16840
|
+
};
|
16841
|
+
|
16842
|
+
|
16843
|
+
/** @public
|
16844
|
+
* @param {string} parentId Group id
|
16845
|
+
* @param {string} childId
|
16846
|
+
* @return {boolean}
|
16847
|
+
*/
|
16848
|
+
GroupDefinitions.prototype.addGroupChild = function (parentId, childId) {
|
16849
|
+
var groupDef = this._groupMap[parentId];
|
16850
|
+
|
16851
|
+
if(childId && groupDef) {
|
16852
|
+
var chdr = groupDef.children;
|
16853
|
+
if(chdr && chdr.indexOf(childId) < 0) {
|
16854
|
+
this.removeGroupChild(childId); // Remove previous parent
|
16855
|
+
// Add new child to group structures
|
16856
|
+
this._childToParent[childId] = parentId;
|
16857
|
+
var childDef = this._groupMap[childId];
|
16858
|
+
if(childDef) {
|
16859
|
+
childDef.parentId = parentId;
|
16860
|
+
}
|
16861
|
+
chdr.push(childId);
|
16862
|
+
return true;
|
16863
|
+
}
|
16864
|
+
}
|
16865
|
+
return false;
|
16866
|
+
};
|
16867
|
+
/** Remove the given child from its own parent (i.e., unset Parent of the given child).
|
16868
|
+
* @public
|
16869
|
+
* @param {string} childId
|
16870
|
+
* @return {boolean}
|
16871
|
+
*/
|
16872
|
+
GroupDefinitions.prototype.removeGroupChild = function (childId) {
|
16873
|
+
var parentId = this._childToParent[childId];
|
16874
|
+
if(!parentId) {
|
16875
|
+
return false;
|
16876
|
+
}
|
16877
|
+
this._childToParent[childId] = "";
|
16878
|
+
var childDef = this._groupMap[childId];
|
16879
|
+
if(childDef) {
|
16880
|
+
childDef.parentId = "";
|
16881
|
+
}
|
16882
|
+
var parentDef = this._groupMap[parentId];
|
16883
|
+
if(parentDef) {
|
16884
|
+
var chdr = parentDef.children;
|
16885
|
+
if(chdr.length) {
|
16886
|
+
var at = chdr.indexOf(childId);
|
16887
|
+
if (at >= 0) {
|
16888
|
+
chdr.splice(at, 1); // splice is slow
|
16889
|
+
}
|
16890
|
+
}
|
16891
|
+
}
|
16892
|
+
return true;
|
16893
|
+
};
|
16894
|
+
/** Remove all children from the specified group
|
16895
|
+
* @public
|
16896
|
+
* @param {string} groupId
|
16897
|
+
* @return {boolean}
|
16898
|
+
*/
|
16899
|
+
GroupDefinitions.prototype.removeAllChildren = function(groupId) {
|
16900
|
+
var grpDef = this._groupMap[groupId];
|
16901
|
+
if(grpDef) {
|
16902
|
+
var chdr = grpDef.children;
|
16903
|
+
var len = chdr.length;
|
16904
|
+
if(len) {
|
16905
|
+
grpDef.children = [];
|
16906
|
+
for(var i = 0; i < len; ++i) {
|
16907
|
+
var childId = chdr[i];
|
16908
|
+
if(this._childToParent[childId]) {
|
16909
|
+
this._childToParent[childId] = "";
|
16910
|
+
}
|
16911
|
+
var childDef = this._groupMap[childId];
|
16912
|
+
if(childDef) {
|
16913
|
+
childDef.parentId = "";
|
16914
|
+
}
|
16915
|
+
}
|
16916
|
+
return true;
|
16917
|
+
}
|
16918
|
+
}
|
16919
|
+
return false;
|
16920
|
+
};
|
16921
|
+
/** Replace and update existing group definition.
|
16922
|
+
* @public
|
16923
|
+
* @param {string} groupId
|
16924
|
+
* @param {Array.<string>} newChildList If null is given, all existing children in the group will be removed
|
16925
|
+
* @return {boolean}
|
16926
|
+
*/
|
16927
|
+
GroupDefinitions.prototype.setGroupChildren = function (groupId, newChildList) {
|
16928
|
+
var groupDef = this._groupMap[groupId];
|
16929
|
+
if(groupDef) {
|
16930
|
+
if(Array.isArray(newChildList)) {
|
16931
|
+
var chdr = newChildList.slice();
|
16932
|
+
this._ungroupChildren(chdr);
|
16933
|
+
this.removeAllChildren(groupId);
|
16934
|
+
groupDef.children = chdr;
|
16935
|
+
|
16936
|
+
var parentId = groupDef.id;
|
16937
|
+
var len = chdr.length;
|
16938
|
+
for(var i = 0; i < len; ++i) {
|
16939
|
+
var childId = chdr[i];
|
16940
|
+
this._childToParent[childId] = parentId;
|
16941
|
+
var childDef = this._groupMap[childId];
|
16942
|
+
if(childDef) {
|
16943
|
+
childDef.parentId = parentId;
|
16944
|
+
}
|
16945
|
+
}
|
16946
|
+
|
16947
|
+
return true;
|
16948
|
+
} else if(!newChildList && groupDef.children.length) {
|
16949
|
+
this.removeAllChildren(groupId);
|
16950
|
+
return true;
|
16951
|
+
}
|
16952
|
+
}
|
16953
|
+
return false;
|
16954
|
+
};
|
16955
|
+
|
16956
|
+
/* harmony default export */ var es6_GroupDefinitions = (GroupDefinitions);
|
16957
|
+
|
16958
|
+
|
16356
16959
|
// CONCATENATED MODULE: ./node_modules/@grid/core/es6/grid/components/ElementWrapper.js
|
16357
16960
|
|
16358
16961
|
|
@@ -34184,6 +34787,7 @@ VirtualizedLayoutGrid._proto = VirtualizedLayoutGrid.prototype;
|
|
34184
34787
|
|
34185
34788
|
// CONCATENATED MODULE: ./node_modules/@grid/core/es6/grid/Core.js
|
34186
34789
|
|
34790
|
+
// eslint-disable-line
|
34187
34791
|
|
34188
34792
|
// eslint-disable-line
|
34189
34793
|
|
@@ -34706,6 +35310,10 @@ Core.prototype._preserveGridSize = false;
|
|
34706
35310
|
* @private
|
34707
35311
|
*/
|
34708
35312
|
Core.prototype._rowHeightTimerId = 0;
|
35313
|
+
/** @type {GroupDefinitions}
|
35314
|
+
* @private
|
35315
|
+
*/
|
35316
|
+
Core.prototype._groupDefs = null;
|
34709
35317
|
//#region Public Methods
|
34710
35318
|
|
34711
35319
|
/**
|
@@ -34713,7 +35321,7 @@ Core.prototype._rowHeightTimerId = 0;
|
|
34713
35321
|
* @return {string}
|
34714
35322
|
*/
|
34715
35323
|
Core.getVersion = function () {
|
34716
|
-
return "5.1.
|
35324
|
+
return "5.1.33";
|
34717
35325
|
};
|
34718
35326
|
/** {@link ElementWrapper#dispose}
|
34719
35327
|
* @override
|
@@ -35841,7 +36449,7 @@ Core.prototype._moveColumn = function (fromCol, destCol) {
|
|
35841
36449
|
vEnd = this._colVirtualizer.getLastIndexInView();
|
35842
36450
|
}
|
35843
36451
|
|
35844
|
-
var colId = this.
|
36452
|
+
var colId = this.getColumnId(fromCol);
|
35845
36453
|
this._layoutX.moveLane(fromCol, destCol);
|
35846
36454
|
var sectionCount = this._settings.length;
|
35847
36455
|
for (var i = 0; i < sectionCount; ++i) {
|
@@ -35961,6 +36569,11 @@ Core.prototype._deserializeColumn = function (index, jsonObj) {
|
|
35961
36569
|
// TODO: Load specific styles for each column type (e.g. "content", "title", "header")
|
35962
36570
|
|
35963
36571
|
var colDef = this._getColumnDef(index);
|
36572
|
+
var colId = jsonObj["id"];
|
36573
|
+
if(colId && typeof colId === "string") {
|
36574
|
+
colDef["id"] = colId; // WARNING: We do not guarantee uniqueness of user id
|
36575
|
+
}
|
36576
|
+
|
35964
36577
|
var value = jsonObj["dataColumnName"];
|
35965
36578
|
if (value != null) {
|
35966
36579
|
colDef["dataColumnName"] = value;
|
@@ -37404,14 +38017,19 @@ Core.prototype.getRelativePosition = function (obj, context) {
|
|
37404
38017
|
return ret_obj;
|
37405
38018
|
};
|
37406
38019
|
|
37407
|
-
/**
|
37408
|
-
* @
|
37409
|
-
* @
|
38020
|
+
/** Find column index by column id or data column name
|
38021
|
+
* @public
|
38022
|
+
* @param {string} str Column id or data column name
|
38023
|
+
* @return {number} Return negative value if there is no match
|
37410
38024
|
*/
|
37411
38025
|
Core.prototype.getColumnIndex = function (str) {
|
37412
|
-
|
37413
|
-
|
37414
|
-
|
38026
|
+
if(str) {
|
38027
|
+
var colCount = this.getColumnCount();
|
38028
|
+
for(var c = 0; c < colCount; ++c) {
|
38029
|
+
var colDef = this._getColumnDef(c);
|
38030
|
+
if(str === colDef["id"] || str === colDef["dataColumnName"]) {
|
38031
|
+
return c;
|
38032
|
+
}
|
37415
38033
|
}
|
37416
38034
|
}
|
37417
38035
|
return -1;
|
@@ -38296,6 +38914,37 @@ Core.prototype.normalizeConfig = function (configObj) {
|
|
38296
38914
|
|
38297
38915
|
return configObj;
|
38298
38916
|
};
|
38917
|
+
/** @public
|
38918
|
+
* @param {GroupDefinitions} groupDefs
|
38919
|
+
*/
|
38920
|
+
Core.prototype.setColumnGrouping = function (groupDefs) {
|
38921
|
+
this._groupDefs = groupDefs || null;
|
38922
|
+
};
|
38923
|
+
/** @public
|
38924
|
+
* @param {string|number} colRef
|
38925
|
+
* @return {string} Return group id of immediate group parent. Return empty string, if no parent is found.
|
38926
|
+
*/
|
38927
|
+
Core.prototype.getColumnGroupParentId = function (colRef) {
|
38928
|
+
if(this._groupDefs) {
|
38929
|
+
var colId = (typeof colRef === "number") ? this.getColumnId(colRef) : colRef;
|
38930
|
+
return this._groupDef.getParentId(colId);
|
38931
|
+
}
|
38932
|
+
return "";
|
38933
|
+
};
|
38934
|
+
|
38935
|
+
/** @public
|
38936
|
+
* @param {string} groupId
|
38937
|
+
* @return {Array.<string>} Return array of column id. Return null if the specified group has no child
|
38938
|
+
*/
|
38939
|
+
Core.prototype.getColumnGroupChildIds = function (groupId) {
|
38940
|
+
if(this._groupDefs) {
|
38941
|
+
var ary = this._groupDef.getLeafDescendants(colId);
|
38942
|
+
if(ary && ary.length > 0) {
|
38943
|
+
return ary;
|
38944
|
+
}
|
38945
|
+
}
|
38946
|
+
return null;
|
38947
|
+
};
|
38299
38948
|
//#endregion Public Methods
|
38300
38949
|
|
38301
38950
|
//#region Private Methods
|
@@ -38953,13 +39602,35 @@ Core.prototype._getNestedColumnDef = function (colIndex, firstLvl, secondLvl) {
|
|
38953
39602
|
}
|
38954
39603
|
return def;
|
38955
39604
|
};
|
39605
|
+
|
38956
39606
|
/** @public
|
39607
|
+
* @param {number} colIndex
|
39608
|
+
* @return {string} Return empty string if the specified column does not exist
|
39609
|
+
*/
|
39610
|
+
Core.prototype.getColumnId = function (colIndex) {
|
39611
|
+
if(colIndex >= 0 && colIndex < this.getColumnCount()) {
|
39612
|
+
return this._getColumnDef(colIndex)["id"] || "";
|
39613
|
+
}
|
39614
|
+
return "";
|
39615
|
+
};
|
39616
|
+
/** @deprecated
|
39617
|
+
* @public
|
39618
|
+
* @function
|
38957
39619
|
* @ignore
|
38958
39620
|
* @param {number} colIndex
|
38959
39621
|
* @return {string}
|
38960
39622
|
*/
|
38961
|
-
Core.prototype._getColumnId =
|
38962
|
-
|
39623
|
+
Core.prototype._getColumnId = Core.prototype.getColumnId;
|
39624
|
+
/** @public
|
39625
|
+
* @return {!Array.<string>} Return all column ids from existing column
|
39626
|
+
*/
|
39627
|
+
Core.prototype.getColumnIds = function () {
|
39628
|
+
var colCount = this.getColumnCount();
|
39629
|
+
var ary = new Array(colCount);
|
39630
|
+
for(var c = 0; c < colCount; ++c) {
|
39631
|
+
ary[c] = this._getColumnDef(c)["id"] || "";
|
39632
|
+
}
|
39633
|
+
return ary;
|
38963
39634
|
};
|
38964
39635
|
|
38965
39636
|
|
@@ -43312,7 +43983,9 @@ Grid.prototype._onFieldAdded = function(e) {
|
|
43312
43983
|
// JET
|
43313
43984
|
if (this._subs) {
|
43314
43985
|
var realtimeFields = addedFields.filter(js_FieldDefinition.isRealTimeField);
|
43315
|
-
|
43986
|
+
if(realtimeFields.length > 0) {
|
43987
|
+
this._subs["addFields"](realtimeFields);
|
43988
|
+
}
|
43316
43989
|
}
|
43317
43990
|
|
43318
43991
|
this._dispatch(e.type, e);
|
@@ -43604,19 +44277,31 @@ Grid.prototype._setScrollbarParent = function (host) {
|
|
43604
44277
|
/**
|
43605
44278
|
* @private
|
43606
44279
|
* @param {string} field
|
43607
|
-
* @param {boolean} isRealTime
|
43608
44280
|
* @returns {boolean}
|
43609
44281
|
*/
|
43610
|
-
Grid.prototype._shouldLoadFieldInfo = function (field
|
43611
|
-
|
43612
|
-
|
43613
|
-
|
43614
|
-
|
43615
|
-
(this._RTK || window["JET"]) // have rtk instance or window jet sub
|
43616
|
-
) {
|
43617
|
-
return true;
|
44282
|
+
Grid.prototype._shouldLoadFieldInfo = function (field) {
|
44283
|
+
|
44284
|
+
var val = this._RTK || window["JET"]; // Fastest checking can be performed by checking the first condition.
|
44285
|
+
if(!val) {
|
44286
|
+
return false;
|
43618
44287
|
}
|
43619
|
-
|
44288
|
+
|
44289
|
+
// WARNING: If field caching is disabled, it shouldn't load field info
|
44290
|
+
if(!this._fieldCaching) {
|
44291
|
+
return false;
|
44292
|
+
}
|
44293
|
+
|
44294
|
+
val = js_FieldDefinition.hasFieldInfo(field);
|
44295
|
+
if(val) {
|
44296
|
+
return false;
|
44297
|
+
}
|
44298
|
+
|
44299
|
+
val = js_FieldDefinition.isAdc(field) || js_FieldDefinition.isRealTimeField(field);
|
44300
|
+
if(!val) {
|
44301
|
+
return false;
|
44302
|
+
}
|
44303
|
+
|
44304
|
+
return true;
|
43620
44305
|
};
|
43621
44306
|
/** Remove all existing columns and add new columns based on the given objects
|
43622
44307
|
* @public
|
@@ -43718,11 +44403,10 @@ Grid.prototype._onColumnAdded = function(e) {
|
|
43718
44403
|
var fields = colDef.getAllFields();
|
43719
44404
|
var referrer = colDef.getId();
|
43720
44405
|
var len = fields.length;
|
43721
|
-
var field, dataType, prom,
|
44406
|
+
var field, dataType, prom, onLoaded;
|
43722
44407
|
for(i = 0; i < len; i++) {
|
43723
44408
|
field = fields[i];
|
43724
|
-
|
43725
|
-
if(this._shouldLoadFieldInfo(field, isRealTimeField)) {
|
44409
|
+
if(this._shouldLoadFieldInfo(field)) {
|
43726
44410
|
if(field === colField) {
|
43727
44411
|
dataType = colDef.getDataType(); // Data-type from user's column options
|
43728
44412
|
} else { // Other required fields
|
@@ -43891,6 +44575,15 @@ Grid.prototype.moveColumnById = function (srcCol, destCol) {
|
|
43891
44575
|
if(destIndex < 0) {
|
43892
44576
|
destIndex = colCount;
|
43893
44577
|
}
|
44578
|
+
return this._moveColumnByIndex(srcIndex, destIndex);
|
44579
|
+
};
|
44580
|
+
/** Move column without verification for better performance
|
44581
|
+
* @private
|
44582
|
+
* @param {number} srcIndex Column index
|
44583
|
+
* @param {number} destIndex Column index of the destination
|
44584
|
+
* @return {boolean} Return true if there is any change, and false otherwise
|
44585
|
+
*/
|
44586
|
+
Grid.prototype._moveColumnByIndex = function (srcIndex, destIndex) {
|
43894
44587
|
if(srcIndex < destIndex) { // Ensure that the source column is put in front of the destination index
|
43895
44588
|
--destIndex;
|
43896
44589
|
}
|
@@ -43912,23 +44605,31 @@ Grid.prototype.reorderColumns = function (colRefs, destCol) {
|
|
43912
44605
|
var srcLen = colRefs.length;
|
43913
44606
|
if(srcLen > 1) {
|
43914
44607
|
var colIds = this.getColumnIds();
|
44608
|
+
var colCount = colIds.length;
|
43915
44609
|
var srcIds = [];
|
43916
44610
|
var invalidDest = false;
|
43917
|
-
var i;
|
44611
|
+
var i, srcId, srcIdx;
|
43918
44612
|
for(i = 0; i < srcLen; ++i) {
|
43919
44613
|
var colRef = colRefs[i];
|
43920
|
-
|
43921
|
-
|
44614
|
+
if(typeof colRef === "number") {
|
44615
|
+
srcIdx = colRef;
|
44616
|
+
srcId = colIds[colRef] || "";
|
44617
|
+
} else {
|
44618
|
+
srcId = colRef;
|
44619
|
+
srcIdx = colIds.indexOf(srcId);
|
44620
|
+
}
|
44621
|
+
if(srcId && srcIdx >= 0) {
|
43922
44622
|
srcIds.push(srcId);
|
43923
44623
|
if(destId === srcId) {
|
43924
44624
|
invalidDest = true; // Destination must not exist in source columns
|
43925
44625
|
}
|
43926
44626
|
}
|
43927
44627
|
}
|
44628
|
+
|
44629
|
+
var destIdx;
|
43928
44630
|
srcLen = srcIds.length;
|
43929
44631
|
if(invalidDest) { // Find the next valid destination where it is not contained in the source columns
|
43930
|
-
|
43931
|
-
var destIdx = this.getColumnIndex(destId);
|
44632
|
+
destIdx = this.getColumnIndex(destId);
|
43932
44633
|
if(destIdx >= 0) {
|
43933
44634
|
while(++destIdx < colCount) {
|
43934
44635
|
destId = colIds[destIdx];
|
@@ -43943,10 +44644,16 @@ Grid.prototype.reorderColumns = function (colRefs, destCol) {
|
|
43943
44644
|
}
|
43944
44645
|
|
43945
44646
|
var dirty = 0;
|
43946
|
-
for(i =
|
43947
|
-
|
44647
|
+
for(i = srcLen; --i >= 0;) {
|
44648
|
+
srcId = srcIds[i]; // Only valid source columns are left at this point
|
44649
|
+
srcIdx = this.getColumnIndex(srcId);
|
44650
|
+
destIdx = this.getColumnIndex(destId);
|
44651
|
+
if(destIdx < 0) { // Insert to the back when id is not found
|
44652
|
+
destIdx = colCount;
|
44653
|
+
}
|
44654
|
+
dirty |= this._moveColumnByIndex(srcIdx, destIdx);
|
44655
|
+
destId = srcId;
|
43948
44656
|
}
|
43949
|
-
// TODO: Handle the case where all columns stay in the same place
|
43950
44657
|
return dirty ? true : false;
|
43951
44658
|
} else {
|
43952
44659
|
return this.moveColumnById(colRefs[0], destId);
|
@@ -44023,11 +44730,10 @@ Grid.prototype.addDataFields = function(fieldRef, referrer) {
|
|
44023
44730
|
|
44024
44731
|
var fields = Array.isArray(fieldRef) ? fieldRef : [fieldRef];
|
44025
44732
|
var len = fields.length;
|
44026
|
-
var i, field, dataType, prom,
|
44733
|
+
var i, field, dataType, prom, onLoaded;
|
44027
44734
|
for(i = 0; i < len; i++) {
|
44028
44735
|
field = fields[i];
|
44029
|
-
|
44030
|
-
if(this._shouldLoadFieldInfo(field, isRealTimeField)) {
|
44736
|
+
if(this._shouldLoadFieldInfo(field)) {
|
44031
44737
|
dataType = ColumnDefinition.getDataType(field);
|
44032
44738
|
prom = js_FieldDefinition.loadFieldInfo(field)
|
44033
44739
|
.catch(this._onFieldLoadedError);
|
@@ -44801,7 +45507,14 @@ Grid.prototype._getColumnDefinition = function(colRef) {
|
|
44801
45507
|
}
|
44802
45508
|
return null;
|
44803
45509
|
};
|
44804
|
-
|
45510
|
+
/** @public
|
45511
|
+
* @param {number|string} rowRef Row index as shown in the view or row id (string)
|
45512
|
+
* @return {string}
|
45513
|
+
*/
|
45514
|
+
Grid.prototype.getRowType = function(rowRef) {
|
45515
|
+
var rowDef = this.getRowDefinition(rowRef);
|
45516
|
+
return rowDef ? rowDef.getType() : "";
|
45517
|
+
};
|
44805
45518
|
/** @public
|
44806
45519
|
* @param {number|string} rowRef Row index as shown in the view or row id (string)
|
44807
45520
|
* @return {RowDefinition}
|
@@ -44991,20 +45704,22 @@ Grid.prototype.getColumnIndex = function(colRef) {
|
|
44991
45704
|
return colRef;
|
44992
45705
|
}
|
44993
45706
|
|
44994
|
-
|
44995
|
-
|
44996
|
-
|
44997
|
-
|
44998
|
-
|
44999
|
-
|
45000
|
-
|
45707
|
+
if(colRef) {
|
45708
|
+
var colCount = this.getColumnCount();
|
45709
|
+
var i, colDef;
|
45710
|
+
if(colRef instanceof ColumnDefinition) {
|
45711
|
+
for(i = 0; i < colCount; ++i) {
|
45712
|
+
colDef = this.getColumnDefinition(i);
|
45713
|
+
if(colDef === colRef) {
|
45714
|
+
return i;
|
45715
|
+
}
|
45001
45716
|
}
|
45002
|
-
}
|
45003
|
-
|
45004
|
-
|
45005
|
-
|
45006
|
-
|
45007
|
-
|
45717
|
+
} else if(typeof colRef === "string") {
|
45718
|
+
for(i = 0; i < colCount; ++i) {
|
45719
|
+
colDef = this.getColumnDefinition(i);
|
45720
|
+
if(_hasFieldOrId(colDef, colRef)) {
|
45721
|
+
return i; // Return the first found field
|
45722
|
+
}
|
45008
45723
|
}
|
45009
45724
|
}
|
45010
45725
|
}
|