@refinitiv-ui/efx-grid 6.0.44 → 6.0.46
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/column-selection-dialog/lib/column-selection-dialog.d.ts +3 -1
- package/lib/column-selection-dialog/lib/column-selection-dialog.js +24 -3
- package/lib/column-selection-dialog/themes/base.less +23 -12
- package/lib/column-selection-dialog/themes/elemental/dark/column-selection-dialog.js +1 -1
- package/lib/column-selection-dialog/themes/elemental/dark/es5/all-elements.js +1 -1
- package/lib/column-selection-dialog/themes/elemental/light/column-selection-dialog.js +1 -1
- package/lib/column-selection-dialog/themes/elemental/light/es5/all-elements.js +1 -1
- package/lib/column-selection-dialog/themes/halo/dark/column-selection-dialog.js +1 -1
- package/lib/column-selection-dialog/themes/halo/dark/es5/all-elements.js +1 -1
- package/lib/column-selection-dialog/themes/halo/light/column-selection-dialog.js +1 -1
- package/lib/column-selection-dialog/themes/halo/light/es5/all-elements.js +1 -1
- package/lib/column-selection-dialog/themes/solar/charcoal/column-selection-dialog.js +1 -1
- package/lib/column-selection-dialog/themes/solar/charcoal/es5/all-elements.js +1 -1
- package/lib/column-selection-dialog/themes/solar/pearl/column-selection-dialog.js +1 -1
- package/lib/column-selection-dialog/themes/solar/pearl/es5/all-elements.js +1 -1
- package/lib/core/dist/core.js +204 -186
- package/lib/core/dist/core.min.js +1 -1
- package/lib/core/es6/data/DataView.d.ts +2 -0
- package/lib/core/es6/data/DataView.js +170 -81
- package/lib/core/es6/data/Segment.d.ts +2 -0
- package/lib/core/es6/data/Segment.js +6 -0
- package/lib/core/es6/grid/Core.d.ts +0 -4
- package/lib/core/es6/grid/Core.js +28 -105
- package/lib/grid/index.js +1 -1
- package/lib/index.d.ts +0 -4
- package/lib/index.js +0 -4
- package/lib/tr-grid-printer/es6/GridPrinter.js +5 -5
- package/lib/tr-grid-printer/es6/index.js +1 -1
- package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +5 -0
- package/lib/tr-grid-row-filtering/es6/RowFiltering.js +30 -1
- package/lib/tr-grid-util/es6/CoralItems.js +2 -2
- package/lib/tr-grid-util/es6/ElfDate.js +1 -1
- package/lib/tr-grid-util/es6/ElfUtil.js +2 -2
- package/lib/tr-grid-util/es6/ExpanderIcon.js +1 -1
- package/lib/tr-grid-util/es6/GridPlugin.js +1 -1
- package/lib/tr-grid-util/es6/Icon.js +3 -3
- package/lib/tr-grid-util/es6/MultiTableManager.js +3 -3
- package/lib/tr-grid-util/es6/RowPainter.js +6 -2
- package/lib/tr-grid-util/es6/jet/Adc.d.ts +9 -0
- package/lib/tr-grid-util/es6/jet/Adc.js +268 -0
- package/lib/tr-grid-util/es6/jet/MockQuotes2.js +96 -7
- package/lib/tr-grid-util/es6/jet/MockUtil.d.ts +7 -0
- package/lib/tr-grid-util/es6/jet/MockUtil.js +25 -0
- package/lib/tr-grid-util/es6/jet/mockDataAPI.d.ts +2 -3
- package/lib/tr-grid-util/es6/jet/mockDataAPI.js +3 -288
- package/lib/types/es6/Core/data/DataView.d.ts +2 -0
- package/lib/types/es6/Core/data/Segment.d.ts +2 -0
- package/lib/types/es6/Core/grid/Core.d.ts +0 -4
- package/lib/types/es6/RowFiltering.d.ts +5 -0
- package/lib/utils/index.d.ts +5 -3
- package/lib/utils/index.js +5 -3
- package/lib/versions.json +3 -5
- package/lib/window-exporter.js +5 -0
- package/package.json +1 -1
package/lib/core/dist/core.js
CHANGED
@@ -13778,6 +13778,12 @@ Segment.prototype.getChildIds = function() {
|
|
13778
13778
|
return this._childCount ? Object.keys(this._children) : [];
|
13779
13779
|
};
|
13780
13780
|
/** @public
|
13781
|
+
* @return {!Object}
|
13782
|
+
*/
|
13783
|
+
Segment.prototype.getChildren = function() {
|
13784
|
+
return this._children;
|
13785
|
+
};
|
13786
|
+
/** @public
|
13781
13787
|
* @return {number}
|
13782
13788
|
*/
|
13783
13789
|
Segment.prototype.getChildCount = function() {
|
@@ -18797,6 +18803,8 @@ var DataView = function(source) {
|
|
18797
18803
|
t._onRefreshTimeout = t._onRefreshTimeout.bind(t);
|
18798
18804
|
t._updateWrapCount = t._updateWrapCount.bind(t);
|
18799
18805
|
|
18806
|
+
t._byRemovalMap = t._byRemovalMap.bind(t);
|
18807
|
+
|
18800
18808
|
t._rids = [];
|
18801
18809
|
t._sortingDefs = [];
|
18802
18810
|
t._columnStats = {};
|
@@ -18850,6 +18858,15 @@ DataView.prototype._hiddenRids = null;
|
|
18850
18858
|
* @type {Object.<string, boolean>}
|
18851
18859
|
*/
|
18852
18860
|
DataView.prototype._collapsedRids = null; // for segmentation
|
18861
|
+
/** @private
|
18862
|
+
* @type {Object.<string, number>}
|
18863
|
+
*/
|
18864
|
+
DataView.prototype._excludedRids = null;
|
18865
|
+
/** @private
|
18866
|
+
* @type {boolean}
|
18867
|
+
*/
|
18868
|
+
DataView.prototype._emptySegmentFiltering = false;
|
18869
|
+
|
18853
18870
|
/** @private
|
18854
18871
|
* @type {Object.<string, number>}
|
18855
18872
|
*/
|
@@ -19546,8 +19563,6 @@ DataView.prototype.hideRow = function(rId, hidden) {
|
|
19546
19563
|
*/
|
19547
19564
|
DataView.prototype.hideRows = function(rowRefs, hidden) {
|
19548
19565
|
hidden = hidden !== false;
|
19549
|
-
var dirty = false;
|
19550
|
-
var rids = this._toRowIds(rowRefs);
|
19551
19566
|
var hiddenRids = this._hiddenRids;
|
19552
19567
|
|
19553
19568
|
if(hidden){
|
@@ -19558,11 +19573,19 @@ DataView.prototype.hideRows = function(rowRefs, hidden) {
|
|
19558
19573
|
return; // All rows are visible
|
19559
19574
|
}
|
19560
19575
|
|
19576
|
+
var rids = this._toRowIds(rowRefs);
|
19577
|
+
var dirty = false;
|
19578
|
+
|
19561
19579
|
for(var i = rids.length; --i >= 0;) {
|
19562
19580
|
var rid = rids[i];
|
19563
19581
|
if(rid) { // undefined, null, and an empty string value are not a valid row id
|
19564
|
-
if(
|
19565
|
-
hiddenRids[rid]
|
19582
|
+
if(hidden) {
|
19583
|
+
if(!hiddenRids[rid]) {
|
19584
|
+
hiddenRids[rid] = true;
|
19585
|
+
dirty = true;
|
19586
|
+
}
|
19587
|
+
} else if(hiddenRids[rid]) {
|
19588
|
+
delete hiddenRids[rid];
|
19566
19589
|
dirty = true;
|
19567
19590
|
}
|
19568
19591
|
}
|
@@ -19571,11 +19594,9 @@ DataView.prototype.hideRows = function(rowRefs, hidden) {
|
|
19571
19594
|
if(dirty) {
|
19572
19595
|
if(!hidden) {
|
19573
19596
|
var hasHiddenRow = false;
|
19574
|
-
for(var key in hiddenRids) {
|
19575
|
-
|
19576
|
-
|
19577
|
-
break;
|
19578
|
-
}
|
19597
|
+
for(var key in hiddenRids) { // eslint-disable-line
|
19598
|
+
hasHiddenRow = true;
|
19599
|
+
break;
|
19579
19600
|
}
|
19580
19601
|
if(!hasHiddenRow) {
|
19581
19602
|
hiddenRids = this._hiddenRids = null;
|
@@ -19664,23 +19685,14 @@ DataView.prototype.filterOut = function(cid, value) {
|
|
19664
19685
|
*/
|
19665
19686
|
DataView.prototype.filterInOnce = function(cid, value, opt_filteringOut) {
|
19666
19687
|
var checker = this._getFilterLogic(cid, value);
|
19667
|
-
if(!checker) { return; }
|
19668
|
-
|
19669
|
-
var filteringOut = (opt_filteringOut === true);
|
19670
|
-
var rids = this._rids;
|
19671
|
-
var dt = this._dt;
|
19672
19688
|
var removalMap = {};
|
19673
|
-
|
19674
|
-
|
19675
|
-
|
19676
|
-
|
19677
|
-
|
19678
|
-
|
19679
|
-
removalMap[rid] = true;
|
19680
|
-
++totalRem;
|
19681
|
-
}
|
19689
|
+
if(!this._getRemovalMap(
|
19690
|
+
removalMap,
|
19691
|
+
checker,
|
19692
|
+
(opt_filteringOut === true)
|
19693
|
+
)) {
|
19694
|
+
return;
|
19682
19695
|
}
|
19683
|
-
if(totalRem <= 0) { return; }
|
19684
19696
|
|
19685
19697
|
var firstChange = this._removeRowIds(removalMap);
|
19686
19698
|
|
@@ -19703,13 +19715,13 @@ DataView.prototype.filterOutOnce = function(cid, value) {
|
|
19703
19715
|
this.filterInOnce(cid, value, true);
|
19704
19716
|
};
|
19705
19717
|
/** @private
|
19706
|
-
* @param {!Object
|
19718
|
+
* @param {!Object} removalMap
|
19707
19719
|
* @return {number}
|
19708
19720
|
*/
|
19709
19721
|
DataView.prototype._removeRowIds = function(removalMap) {
|
19710
|
-
var firstChange =
|
19722
|
+
var firstChange = DataView._removeArrayItems(this._rids, removalMap);
|
19711
19723
|
if(this._groupView) {
|
19712
|
-
firstChange =
|
19724
|
+
firstChange = DataView._removeArrayItems(this._groupView, removalMap);
|
19713
19725
|
}
|
19714
19726
|
|
19715
19727
|
if(this._groupMembers) {
|
@@ -21278,6 +21290,19 @@ DataView.prototype.getSegmentChildIds = function(segmentRef) {
|
|
21278
21290
|
DataView.prototype.sortSegments = function (compare) {
|
21279
21291
|
this._dt.sortSegments(compare);
|
21280
21292
|
};
|
21293
|
+
/** Automatically hide empty segment when all of its member are filtered out. An empty segment will not be hidden, if there is no active filter. Collapsed segment does not count as filtering.
|
21294
|
+
* @public
|
21295
|
+
* @param {boolean=} enabled
|
21296
|
+
*/
|
21297
|
+
DataView.prototype.enableEmptySegmentFiltering = function (enabled) {
|
21298
|
+
enabled = enabled !== false;
|
21299
|
+
if(this._emptySegmentFiltering !== enabled) {
|
21300
|
+
this._emptySegmentFiltering = enabled;
|
21301
|
+
if(this._userFilter) {
|
21302
|
+
this._refreshAndNotify();
|
21303
|
+
}
|
21304
|
+
}
|
21305
|
+
};
|
21281
21306
|
|
21282
21307
|
/**
|
21283
21308
|
* @public
|
@@ -21438,26 +21463,35 @@ DataView.prototype._updateRowIds = function(opt_rowIds) {
|
|
21438
21463
|
// Perform the following sequences: parent view cloning >> row hiding >> row filtering >> row grouping >> sorting >> paging
|
21439
21464
|
this._rids = opt_rowIds || this._parent.getAllRowIds(); // Get all data ids
|
21440
21465
|
|
21441
|
-
|
21442
|
-
|
21443
|
-
}
|
21466
|
+
this._dispatch("beforeFiltering", {});
|
21467
|
+
|
21468
|
+
this._excludedRids = {};
|
21469
|
+
var exclusionCount = 0;
|
21470
|
+
exclusionCount += DataView._copyObjectKeys(this._excludedRids, this._hiddenRids);
|
21471
|
+
|
21472
|
+
// Segment separators should not be filtered out (hidden)
|
21444
21473
|
var segments = this._dt._getSegmentSeparators();
|
21474
|
+
var filterExceptions = segments ? segments.getSegments() : null;
|
21475
|
+
var userRemoval = this._getRemovalMap(this._excludedRids, this._userFilter, this._filteringOut, filterExceptions);
|
21476
|
+
exclusionCount += userRemoval;
|
21477
|
+
|
21445
21478
|
this._collapsedRids = null;
|
21446
|
-
var filterExceptions = null;
|
21447
21479
|
if(segments) {
|
21448
|
-
|
21449
|
-
|
21450
|
-
if(collapsedRows) {
|
21451
|
-
this._removeArrayItems(this._rids, collapsedRows);
|
21480
|
+
if(userRemoval && this._emptySegmentFiltering) {
|
21481
|
+
exclusionCount += this._getEmptySegments(this._excludedRids, filterExceptions);
|
21452
21482
|
}
|
21483
|
+
this._collapsedRids = segments.getCollapsedRows();
|
21484
|
+
// Children of collapsed segments must be filtered out (hidden)
|
21485
|
+
exclusionCount += DataView._copyObjectKeys(this._excludedRids, this._collapsedRids);
|
21453
21486
|
}
|
21454
21487
|
|
21455
|
-
this.
|
21456
|
-
|
21457
|
-
|
21458
|
-
if(
|
21459
|
-
this.
|
21488
|
+
if(this._groupLevel > 0 && !opt_rowIds) { // WARNING: The line below is quite slow
|
21489
|
+
exclusionCount += this._getRemovalMap(this._excludedRids, this._groupFilterLogic, false); // Filter In
|
21490
|
+
}
|
21491
|
+
if(exclusionCount) {
|
21492
|
+
this._rids = this._rids.filter(this._byRemovalMap);
|
21460
21493
|
}
|
21494
|
+
this._excludedRids = null;
|
21461
21495
|
|
21462
21496
|
if(this._groupMembers) { // Has grouping
|
21463
21497
|
this._populateGroups(); // View will be properly re-populate inside _populateGroups()
|
@@ -21729,9 +21763,9 @@ DataView.prototype._onRowUpdated = function(e) { // onUpdate
|
|
21729
21763
|
|
21730
21764
|
if(this._groupLevel > 0) {
|
21731
21765
|
if(processingFlag === 1) { // The row is moved to the other group
|
21732
|
-
if(
|
21766
|
+
if(DataView._removeArrayItem(this._rids, rid) >= 0) {
|
21733
21767
|
if(this._groupView) {
|
21734
|
-
|
21768
|
+
DataView._removeArrayItem(this._groupView, rid);
|
21735
21769
|
}
|
21736
21770
|
}
|
21737
21771
|
if(this._shared.multiGroupRow) {
|
@@ -21931,34 +21965,31 @@ DataView.prototype._getRowIndex = function(rids, opt_nextRid, opt_fallback) {
|
|
21931
21965
|
* @returns {number}
|
21932
21966
|
*/
|
21933
21967
|
DataView.prototype._removeDataRow = function(rid) {
|
21934
|
-
var at =
|
21968
|
+
var at = DataView._removeArrayItem(this._rids, rid);
|
21935
21969
|
if(this._groupView && at >= 0) {
|
21936
|
-
at =
|
21970
|
+
at = DataView._removeArrayItem(this._groupView, rid);
|
21937
21971
|
}
|
21938
21972
|
return at;
|
21939
21973
|
};
|
21940
21974
|
/** @private
|
21941
|
-
* @param {Array} ary
|
21975
|
+
* @param {!Array} ary
|
21942
21976
|
* @param {*} item
|
21943
21977
|
* @return {number} Index of the removed item
|
21944
21978
|
*/
|
21945
|
-
DataView.
|
21946
|
-
var
|
21947
|
-
|
21948
|
-
|
21949
|
-
ary.splice(i, 1);
|
21950
|
-
return i;
|
21951
|
-
}
|
21979
|
+
DataView._removeArrayItem = function(ary, item) {
|
21980
|
+
var at = ary.indexOf(item);
|
21981
|
+
if(at >= 0) {
|
21982
|
+
ary.splice(at, 1);
|
21952
21983
|
}
|
21953
|
-
return
|
21984
|
+
return at;
|
21954
21985
|
};
|
21955
21986
|
/** Remove multiple array items
|
21956
21987
|
* @private
|
21957
21988
|
* @param {Array.<string>} ary
|
21958
|
-
* @param {Object
|
21989
|
+
* @param {Object} items
|
21959
21990
|
* @return {number} First item index that is being removed. NaN if no item is removed
|
21960
21991
|
*/
|
21961
|
-
DataView.
|
21992
|
+
DataView._removeArrayItems = function(ary, items) {
|
21962
21993
|
var f = NaN;
|
21963
21994
|
var c = 0;
|
21964
21995
|
for(var i = ary.length; --i >= 0;) {
|
@@ -21977,6 +22008,23 @@ DataView.prototype._removeArrayItems = function(ary, items) {
|
|
21977
22008
|
return f;
|
21978
22009
|
};
|
21979
22010
|
/** @private
|
22011
|
+
* @param {Object} baseObj
|
22012
|
+
* @param {Object} masterObj
|
22013
|
+
* @returns {number}
|
22014
|
+
*/
|
22015
|
+
DataView._copyObjectKeys = function(baseObj, masterObj) {
|
22016
|
+
if(masterObj) {
|
22017
|
+
var count = 0;
|
22018
|
+
|
22019
|
+
for(var key in masterObj) {
|
22020
|
+
baseObj[key] = 1;
|
22021
|
+
++count; // WARNING: duplicated key can be counted more than once
|
22022
|
+
}
|
22023
|
+
return count;
|
22024
|
+
}
|
22025
|
+
return 0;
|
22026
|
+
};
|
22027
|
+
/** @private
|
21980
22028
|
* @param {string|null} rid
|
21981
22029
|
* @param {Object} rowData
|
21982
22030
|
* @return {boolean}
|
@@ -22010,9 +22058,6 @@ DataView.prototype.isRowFiltered = function(rid, rowData) {
|
|
22010
22058
|
return true;
|
22011
22059
|
}
|
22012
22060
|
}
|
22013
|
-
if(this.isSegmentSeparator(rid)) {
|
22014
|
-
return false; // Segment separator cannot be filtered
|
22015
|
-
}
|
22016
22061
|
if(this._collapsedRids) {
|
22017
22062
|
if(this._collapsedRids[rid]) {
|
22018
22063
|
return true;
|
@@ -22054,40 +22099,90 @@ DataView.prototype._sort = function() {
|
|
22054
22099
|
};
|
22055
22100
|
|
22056
22101
|
/** @private
|
22102
|
+
* @param {string} rid
|
22103
|
+
* @returns {boolean}
|
22104
|
+
*/
|
22105
|
+
DataView.prototype._byRemovalMap = function(rid) {
|
22106
|
+
return !this._excludedRids[rid];
|
22107
|
+
};
|
22108
|
+
/** @private
|
22109
|
+
* @param {Object} removalMap
|
22057
22110
|
* @param {Function} checker
|
22058
22111
|
* @param {boolean} filteringOut
|
22059
22112
|
* @param {Object=} exceptions
|
22113
|
+
* @returns {number} Number of rids that would be filtered out
|
22060
22114
|
*/
|
22061
|
-
DataView.prototype.
|
22115
|
+
DataView.prototype._getRemovalMap = function(removalMap, checker, filteringOut, exceptions) {
|
22062
22116
|
if(!checker) {
|
22063
|
-
return;
|
22117
|
+
return 0;
|
22064
22118
|
}
|
22065
22119
|
|
22066
22120
|
var rids = this._rids; // Make local variable to speed up the process
|
22067
|
-
var len = rids.length;
|
22068
22121
|
var dt = this._dt;
|
22069
|
-
var
|
22070
|
-
|
22071
|
-
|
22072
|
-
|
22073
|
-
|
22074
|
-
|
22122
|
+
var count = 0;
|
22123
|
+
var rid, i, values;
|
22124
|
+
var len = rids.length;
|
22125
|
+
|
22126
|
+
if(exceptions) {
|
22127
|
+
for(i = len; --i >= 0;) {
|
22128
|
+
rid = rids[i];
|
22129
|
+
if(!exceptions[rid]) {
|
22130
|
+
values = dt.getRowData(rid);
|
22131
|
+
if (values) {
|
22132
|
+
if(checker(rid, values) === filteringOut) {
|
22133
|
+
removalMap[rid] = 1;
|
22134
|
+
++count;
|
22135
|
+
}
|
22136
|
+
} else {
|
22137
|
+
removalMap[rid] = 1;
|
22138
|
+
++count;
|
22139
|
+
}
|
22140
|
+
}
|
22141
|
+
}
|
22142
|
+
} else {
|
22143
|
+
for(i = len; --i >= 0;) {
|
22144
|
+
rid = rids[i];
|
22145
|
+
values = dt.getRowData(rid);
|
22075
22146
|
if (values) {
|
22076
|
-
|
22147
|
+
if(checker(rid, values) === filteringOut) {
|
22148
|
+
removalMap[rid] = 1;
|
22149
|
+
++count;
|
22150
|
+
}
|
22077
22151
|
} else {
|
22078
|
-
|
22152
|
+
removalMap[rid] = 1;
|
22153
|
+
++count;
|
22079
22154
|
}
|
22080
22155
|
}
|
22081
|
-
if(removed) {
|
22082
|
-
++spliceCount;
|
22083
|
-
} else if(spliceCount > 0) {
|
22084
|
-
rids.splice(i + 1, spliceCount);
|
22085
|
-
spliceCount = 0;
|
22086
|
-
}
|
22087
22156
|
}
|
22088
|
-
|
22089
|
-
|
22157
|
+
return count;
|
22158
|
+
};
|
22159
|
+
/** @private
|
22160
|
+
* @param {Object} removalMap
|
22161
|
+
* @param {Object} segmentRids
|
22162
|
+
* @returns {number} Number of rids that would be filtered out
|
22163
|
+
*/
|
22164
|
+
DataView.prototype._getEmptySegments = function(removalMap, segmentRids) {
|
22165
|
+
var segments = this._dt._getSegmentSeparators();
|
22166
|
+
var count = 0;
|
22167
|
+
for(var segmentId in segmentRids) {
|
22168
|
+
var segment = segments.getSegment(segmentId);
|
22169
|
+
if(segment) {
|
22170
|
+
var chdr = segment.getChildren();
|
22171
|
+
var emptySegment = true;
|
22172
|
+
for(var childId in chdr) {
|
22173
|
+
if(!removalMap[childId]) {
|
22174
|
+
emptySegment = false;
|
22175
|
+
break;
|
22176
|
+
}
|
22177
|
+
}
|
22178
|
+
if(emptySegment) {
|
22179
|
+
removalMap[segmentId] = 1;
|
22180
|
+
++count;
|
22181
|
+
}
|
22182
|
+
}
|
22090
22183
|
}
|
22184
|
+
|
22185
|
+
return count;
|
22091
22186
|
};
|
22092
22187
|
/** @private
|
22093
22188
|
* @param {string|Function|undefined} cid
|
@@ -22367,13 +22462,13 @@ DataView.prototype._removeGroupMember = function (groupIndex, groupId) {
|
|
22367
22462
|
};
|
22368
22463
|
/** @private
|
22369
22464
|
* @param {string} cid
|
22370
|
-
* @param {Object
|
22465
|
+
* @param {Object} values
|
22371
22466
|
* @return {Array.<string>}
|
22372
22467
|
*/
|
22373
22468
|
DataView.prototype._defaultGroupCriteria = function(cid, values) {
|
22374
22469
|
var val = values[cid];
|
22375
22470
|
if(Array.isArray(val)) {
|
22376
|
-
return val.map(function(data) {
|
22471
|
+
return val.map(function(data) { // TODO: this is very slow
|
22377
22472
|
return data + "";
|
22378
22473
|
});
|
22379
22474
|
} else {
|
@@ -22382,11 +22477,11 @@ DataView.prototype._defaultGroupCriteria = function(cid, values) {
|
|
22382
22477
|
};
|
22383
22478
|
/** @private
|
22384
22479
|
* @param {string|null} rid
|
22385
|
-
* @param {Object
|
22480
|
+
* @param {Object} values
|
22386
22481
|
* @return {boolean}
|
22387
22482
|
*/
|
22388
22483
|
DataView.prototype._groupFilterLogic = function(rid, values) {
|
22389
|
-
var gids = this._groupCriteria[this._groupLevel - 1](values);
|
22484
|
+
var gids = this._groupCriteria[this._groupLevel - 1](values); // TODO: this is very slow
|
22390
22485
|
return gids.indexOf(this._groupId) >= 0;
|
22391
22486
|
};
|
22392
22487
|
|
@@ -25295,7 +25390,6 @@ VirtualizedLayoutGrid._proto = VirtualizedLayoutGrid.prototype;
|
|
25295
25390
|
* @property {string} rowId
|
25296
25391
|
* @property {number} rowIndex
|
25297
25392
|
*/
|
25298
|
-
/** @event Core#beforeContentBinding */
|
25299
25393
|
/** @event Core#postSectionDataBinding */
|
25300
25394
|
/** @event Core#rowHighlighted */
|
25301
25395
|
|
@@ -25346,7 +25440,6 @@ var Core_Core = function (opt_initializer) {
|
|
25346
25440
|
|
25347
25441
|
_t._onMouseMove = _t._onMouseMove.bind(_t);
|
25348
25442
|
_t._onRowHightlighted = _t._onRowHightlighted.bind(_t);
|
25349
|
-
_t._onGridClicked = _t._onGridClicked.bind(_t);
|
25350
25443
|
|
25351
25444
|
_t._onWindowResize = _t._onWindowResize.bind(_t);
|
25352
25445
|
_t._onSectionDataChanged = _t._onSectionDataChanged.bind(_t);
|
@@ -25432,16 +25525,11 @@ var Core_Core = function (opt_initializer) {
|
|
25432
25525
|
_t._hscrollbar.setOtherScrollbar(_t._vscrollbar);
|
25433
25526
|
_t._vscrollbar.setOtherScrollbar(_t._hscrollbar);
|
25434
25527
|
|
25435
|
-
if (util.isMobile
|
25528
|
+
if (util.isMobile) {
|
25436
25529
|
_t._element.addEventListener("touchmove", this._onMouseMove, false);
|
25437
25530
|
} else {
|
25438
25531
|
_t._element.addEventListener("mousemove", this._onMouseMove, false);
|
25439
25532
|
}
|
25440
|
-
|
25441
|
-
if(util.isSafari){
|
25442
|
-
_t._element.addEventListener("click", this._onGridClicked);
|
25443
|
-
}
|
25444
|
-
|
25445
25533
|
window.addEventListener("resize", _t._onWindowResize, false); // Should be unlistened after destroyed
|
25446
25534
|
_t._rowVirtualizer.listen("indexChanged", _t._onRowInViewChanged);
|
25447
25535
|
_t._colVirtualizer.listen("indexChanged", _t._onColInViewChanged);
|
@@ -25464,7 +25552,6 @@ var Core_Core = function (opt_initializer) {
|
|
25464
25552
|
"postDataSourceChanged",
|
25465
25553
|
"preSectionRender",
|
25466
25554
|
"postSectionRender",
|
25467
|
-
"beforeContentBinding",
|
25468
25555
|
"preSectionDataBinding",
|
25469
25556
|
"postSectionDataBinding",
|
25470
25557
|
"rowExpansionBinding",
|
@@ -25826,7 +25913,7 @@ Core_Core.prototype._batches = null;
|
|
25826
25913
|
* @return {string}
|
25827
25914
|
*/
|
25828
25915
|
Core_Core.getVersion = function () {
|
25829
|
-
return "5.1.
|
25916
|
+
return "5.1.65";
|
25830
25917
|
};
|
25831
25918
|
/** {@link ElementWrapper#dispose}
|
25832
25919
|
* @override
|
@@ -26628,7 +26715,6 @@ Core_Core.prototype.getColumnCount = function () {
|
|
26628
26715
|
* @fires Core#columnAdded
|
26629
26716
|
* @fires Core#preSectionRender
|
26630
26717
|
* @fires Core#columnRender
|
26631
|
-
* @fires Core#beforeContentBinding
|
26632
26718
|
* @fires Core#preSectionDataBinding
|
26633
26719
|
* @fires Core#columnDataBinding
|
26634
26720
|
* @fires Core#postSectionDataBinding
|
@@ -26656,7 +26742,6 @@ Core_Core.prototype.setColumnCount = function(num) {
|
|
26656
26742
|
* @fires Core#columnAdded
|
26657
26743
|
* @fires Core#preSectionRender
|
26658
26744
|
* @fires Core#columnRender
|
26659
|
-
* @fires Core#beforeContentBinding
|
26660
26745
|
* @fires Core#preSectionDataBinding
|
26661
26746
|
* @fires Core#columnDataBinding
|
26662
26747
|
* @fires Core#postSectionDataBinding
|
@@ -26773,12 +26858,16 @@ Core_Core.prototype.removeColumnAt = function (index) {
|
|
26773
26858
|
|
26774
26859
|
if (this._hasListener("columnRemoved")) {
|
26775
26860
|
var e = {};
|
26861
|
+
var batches = this._batches;
|
26862
|
+
if(batches){
|
26863
|
+
e["batches"] = batches;
|
26864
|
+
}
|
26776
26865
|
e["atTheMiddle"] = true;
|
26777
26866
|
e["colIndex"] = index;
|
26778
26867
|
e["columns"] = "deprecated";
|
26779
26868
|
e["columnData"] = colDef["columnData"];
|
26780
26869
|
e["colId"] = colDef["id"] || "";
|
26781
|
-
this.
|
26870
|
+
this._dispatch("columnRemoved", e);
|
26782
26871
|
}
|
26783
26872
|
|
26784
26873
|
// Last index in view here might be different from before moving column if columns have different width.
|
@@ -27031,7 +27120,7 @@ Core_Core.prototype._moveColumn = function (fromCol, destCol) {
|
|
27031
27120
|
e["fromColIndex"] = fromCol;
|
27032
27121
|
e["toColIndex"] = destCol;
|
27033
27122
|
e["colId"] = colId; // TODO: Id may not needed
|
27034
|
-
this.
|
27123
|
+
this._dispatch("columnMoved", e);
|
27035
27124
|
}
|
27036
27125
|
|
27037
27126
|
// Last index in view here might be different from before moving column if columns have different width.
|
@@ -27101,9 +27190,6 @@ Core_Core.prototype.reorderColumns = function (colRefs, destCol) {
|
|
27101
27190
|
destId = destCol;
|
27102
27191
|
}
|
27103
27192
|
|
27104
|
-
this.startBatch("move");
|
27105
|
-
|
27106
|
-
var dirty = 0;
|
27107
27193
|
if(Array.isArray(colRefs)) {
|
27108
27194
|
var srcLen = colRefs.length;
|
27109
27195
|
if(srcLen > 1) {
|
@@ -27146,6 +27232,7 @@ Core_Core.prototype.reorderColumns = function (colRefs, destCol) {
|
|
27146
27232
|
}
|
27147
27233
|
}
|
27148
27234
|
|
27235
|
+
var dirty = 0;
|
27149
27236
|
for(i = srcLen; --i >= 0;) {
|
27150
27237
|
srcId = srcIds[i]; // Only valid source columns are left at this point
|
27151
27238
|
srcIdx = this.getColumnIndex(srcId);
|
@@ -27156,15 +27243,17 @@ Core_Core.prototype.reorderColumns = function (colRefs, destCol) {
|
|
27156
27243
|
dirty |= this._moveColumnByIndex(srcIdx, destIdx);
|
27157
27244
|
destId = srcId;
|
27158
27245
|
}
|
27246
|
+
return dirty ? true : false;
|
27159
27247
|
} else {
|
27160
|
-
|
27248
|
+
return this.moveColumnById(colRefs[0], destId);
|
27161
27249
|
}
|
27162
|
-
}
|
27250
|
+
}
|
27251
|
+
|
27252
|
+
if(colRefs != null) {
|
27163
27253
|
// colRefs will be a number or string
|
27164
|
-
|
27254
|
+
return this.moveColumnById(colRefs, destId);
|
27165
27255
|
}
|
27166
|
-
|
27167
|
-
return dirty ? true : false;
|
27256
|
+
return false;
|
27168
27257
|
};
|
27169
27258
|
|
27170
27259
|
/** @public
|
@@ -27271,7 +27360,6 @@ Core_Core.prototype._deserializeColumn = function (index, jsonObj) {
|
|
27271
27360
|
* @param {number=} opt_num Default is one row
|
27272
27361
|
* @fires Core#preSectionRender
|
27273
27362
|
* @fires Core#columnRender
|
27274
|
-
* @fires Core#beforeContentBinding
|
27275
27363
|
* @fires Core#preSectionDataBinding
|
27276
27364
|
* @fires Core#columnDataBinding
|
27277
27365
|
* @fires Core#postSectionDataBinding
|
@@ -29075,7 +29163,6 @@ Core_Core.prototype.synchronizeHScrollbar = function (subGrid) {
|
|
29075
29163
|
* @param {number=} fromRowIndex INCLUSIVE If the value is undefined, the first row index will be used
|
29076
29164
|
* @param {number=} lastRowIndex INCLUSIVE If the value is undefined, the last row index will be used
|
29077
29165
|
* @param {Object=} userParam Addtional parameters to be fired with the event
|
29078
|
-
* @fires Core#beforeContentBinding
|
29079
29166
|
* @fires Core#preSectionDataBinding
|
29080
29167
|
* @fires Core#columnDataBinding
|
29081
29168
|
* @fires Core#postSectionDataBinding
|
@@ -29681,53 +29768,6 @@ Core_Core.prototype.getColumnGroupChildIds = function (groupId) {
|
|
29681
29768
|
return null;
|
29682
29769
|
};
|
29683
29770
|
|
29684
|
-
/** @public
|
29685
|
-
* @description Get a list of objects with column id and column index in sorted order
|
29686
|
-
* @param {Array.<string>} colIds
|
29687
|
-
* @param {Object=} columnMap
|
29688
|
-
* @return {!Array.<string>} Return column array with corresponding order to UI
|
29689
|
-
* @example
|
29690
|
-
* core.getValidColumnList(["c1","c2","c5"]); // Get list of valid columns
|
29691
|
-
* core.getValidColumnList(["c1","c2","c5"],{ "c2":true, "c5":true }); // Get list of valid columns from specific mapping
|
29692
|
-
*/
|
29693
|
-
Core_Core.prototype.getValidColumnList = function (colIds, columnMap) {
|
29694
|
-
var colList = [];
|
29695
|
-
if(!colIds){
|
29696
|
-
return colList;
|
29697
|
-
}
|
29698
|
-
if(!columnMap){
|
29699
|
-
columnMap = this.createColumnMap(colIds);
|
29700
|
-
}
|
29701
|
-
var colCount = this.getColumnCount();
|
29702
|
-
for(var c = 0; c < colCount; ++c) {
|
29703
|
-
var id = this._getColumnDef(c)["id"];
|
29704
|
-
if(columnMap[id] != null){
|
29705
|
-
colList.push({"index": c, "id": id});
|
29706
|
-
}
|
29707
|
-
}
|
29708
|
-
return colList;
|
29709
|
-
};
|
29710
|
-
|
29711
|
-
/** @public
|
29712
|
-
* @description Create mapping object from an array of strings
|
29713
|
-
* @param {Array.<string>=} colIds
|
29714
|
-
* @return {!Object} Column mapping object
|
29715
|
-
*/
|
29716
|
-
Core_Core.prototype.createColumnMap = function (colIds) {
|
29717
|
-
if(!colIds){
|
29718
|
-
colIds = this.getColumnIds();
|
29719
|
-
}
|
29720
|
-
var mappingObj = {};
|
29721
|
-
var count = colIds.length;
|
29722
|
-
for(var i = 0; i < count; i++){
|
29723
|
-
var colId = colIds[i];
|
29724
|
-
if(colId){
|
29725
|
-
mappingObj[colId] = true;
|
29726
|
-
}
|
29727
|
-
}
|
29728
|
-
return mappingObj;
|
29729
|
-
};
|
29730
|
-
|
29731
29771
|
/** @public
|
29732
29772
|
* @param {string} batchType
|
29733
29773
|
* @return {boolean}
|
@@ -29765,17 +29805,6 @@ Core_Core.prototype.stopBatch = function (batchType) {
|
|
29765
29805
|
|
29766
29806
|
//#region Private Methods
|
29767
29807
|
/** @private
|
29768
|
-
* @param {string} type
|
29769
|
-
* @param {!Object} eventArg
|
29770
|
-
*/
|
29771
|
-
Core_Core.prototype._dispatchColumnEvent = function (type, eventArg) {
|
29772
|
-
var batches = this._batches;
|
29773
|
-
if(batches){
|
29774
|
-
eventArg["batches"] = batches;
|
29775
|
-
}
|
29776
|
-
this._dispatch(type, eventArg);
|
29777
|
-
};
|
29778
|
-
/** @private
|
29779
29808
|
*/
|
29780
29809
|
Core_Core.prototype._dispatchColumnPositionChanged = function () {
|
29781
29810
|
if(this._columnPositionConflator.conflate()) {
|
@@ -30015,16 +30044,20 @@ Core_Core.prototype._dispatchColumnAddedEvent = function (at, count, atTheMiddle
|
|
30015
30044
|
if (this._hasListener("columnAdded")) {
|
30016
30045
|
var e = {};
|
30017
30046
|
e["atTheMiddle"] = atTheMiddle;
|
30047
|
+
var batches = this._batches;
|
30048
|
+
if(batches){
|
30049
|
+
e["batches"] = batches;
|
30050
|
+
}
|
30018
30051
|
if(count === 1) {
|
30019
30052
|
e["colIndex"] = at;
|
30020
30053
|
e["context"] = ctx;
|
30021
|
-
this.
|
30054
|
+
this._dispatch("columnAdded", e);
|
30022
30055
|
} else {
|
30023
30056
|
var ary = Array.isArray(ctx) ? ctx : [];
|
30024
30057
|
for (var i = 0; i < count; ++i) {
|
30025
30058
|
e["colIndex"] = at + i;
|
30026
30059
|
e["context"] = ary[i];
|
30027
|
-
this.
|
30060
|
+
this._dispatch("columnAdded", e);
|
30028
30061
|
}
|
30029
30062
|
}
|
30030
30063
|
}
|
@@ -30166,11 +30199,15 @@ Core_Core.prototype._removeColumn = function (num) { // TODO: change the logic
|
|
30166
30199
|
|
30167
30200
|
if (this._hasListener("columnRemoved")) {
|
30168
30201
|
var e = {};
|
30202
|
+
var batches = this._batches;
|
30203
|
+
if(batches){
|
30204
|
+
e["batches"] = batches;
|
30205
|
+
}
|
30169
30206
|
for (var c = colCount; --c >= newCount; ) {
|
30170
30207
|
var colDef = removedCols[c - newCount];
|
30171
30208
|
e["colIndex"] = c;
|
30172
30209
|
e["columnData"] = colDef ? colDef["columnData"] : null;
|
30173
|
-
this.
|
30210
|
+
this._dispatch("columnRemoved", e);
|
30174
30211
|
}
|
30175
30212
|
}
|
30176
30213
|
};
|
@@ -30203,9 +30240,6 @@ Core_Core.prototype._onSectionDataChanged = function (e) {
|
|
30203
30240
|
rowDataCollection = dataView.getMultipleRowData(rids, fromR, toR);
|
30204
30241
|
e["dataRows"] = rowDataCollection;
|
30205
30242
|
}
|
30206
|
-
if(e["sectionType"] === "content"){
|
30207
|
-
this._dispatch("beforeContentBinding", e);
|
30208
|
-
}
|
30209
30243
|
this._dispatch("preSectionDataBinding", e);
|
30210
30244
|
|
30211
30245
|
var dataMap = this.getDataColumnMap();
|
@@ -30220,13 +30254,9 @@ Core_Core.prototype._onSectionDataChanged = function (e) {
|
|
30220
30254
|
for (var r = fromR; r < toR; ++r) {
|
30221
30255
|
if(hasDataView) {
|
30222
30256
|
var rowData = rowDataCollection[r];
|
30223
|
-
if(!rowData) { // This is a header row
|
30224
|
-
continue;
|
30225
|
-
}
|
30226
|
-
|
30227
30257
|
e["rowData"] = rowData;
|
30228
30258
|
e["rowId"] = rids[r];
|
30229
|
-
e["dataValue"] = rowData[cid];
|
30259
|
+
e["dataValue"] = rowData ? rowData[cid] : null;
|
30230
30260
|
}
|
30231
30261
|
e["rowIndex"] = r;
|
30232
30262
|
e["cell"] = section["getCell"](c, r, false); // Accessing cell by using bracket allows extenal object to mock Section
|
@@ -30567,18 +30597,6 @@ Core_Core.prototype._onMouseMove = function () {
|
|
30567
30597
|
this._vscrollbar.flash();
|
30568
30598
|
this._hscrollbar.flash();
|
30569
30599
|
};
|
30570
|
-
/** @private */
|
30571
|
-
Core_Core.prototype._onGridClicked = function () {
|
30572
|
-
// research for dragging
|
30573
|
-
var selection = window.getSelection();
|
30574
|
-
if(selection.toString()){
|
30575
|
-
return;
|
30576
|
-
}
|
30577
|
-
var activeElem = document.activeElement;
|
30578
|
-
if(!this._element.contains(activeElem)){
|
30579
|
-
this.focus();
|
30580
|
-
}
|
30581
|
-
};
|
30582
30600
|
|
30583
30601
|
/** @private
|
30584
30602
|
* @param {Object} e
|