@refinitiv-ui/efx-grid 6.0.101 → 6.0.103

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.
@@ -7666,6 +7666,179 @@ HScrollbar._proto = HScrollbar.prototype;
7666
7666
  /* harmony default export */ const components_HScrollbar = (HScrollbar);
7667
7667
 
7668
7668
 
7669
+ ;// CONCATENATED MODULE: ./src/js/grid/util/CellBoundPainter.js
7670
+ /** @private
7671
+ * @function
7672
+ * @param {number} idx
7673
+ * @param {number} limit
7674
+ * @return {number}
7675
+ */
7676
+ let _validateIndex = function(idx, limit) {
7677
+ if(idx > limit) {
7678
+ return limit;
7679
+ } else if(idx < 0) {
7680
+ return 0;
7681
+ }
7682
+ return idx;
7683
+ };
7684
+
7685
+ /** @constructor
7686
+ * @param {Object} ctx
7687
+ */
7688
+ let CellBoundPainter = function (ctx) {
7689
+ this._boundLayer = ctx.boundLayer;
7690
+ this._layoutX = ctx.layoutX;
7691
+ this._layoutY = ctx.layoutY;
7692
+ this._hscrollbar = ctx.hscrollbar;
7693
+ this._calculateColumnBounds = ctx.calculateColumnBounds;
7694
+ };
7695
+
7696
+ /** @type {Element}
7697
+ * @private
7698
+ */
7699
+ CellBoundPainter.prototype._boundLayer = null;
7700
+ /** @type {!TrackLayout}
7701
+ * @private
7702
+ */
7703
+ CellBoundPainter.prototype._layoutX;
7704
+ /** @type {!TrackLayout}
7705
+ * @private
7706
+ */
7707
+ CellBoundPainter.prototype._layoutY;
7708
+ /** @type {HScrollbar}
7709
+ * @private
7710
+ */
7711
+ CellBoundPainter.prototype._hscrollbar;
7712
+ /** @type {Function}
7713
+ * @private
7714
+ */
7715
+ CellBoundPainter.prototype._calculateColumnBounds;
7716
+ /** @type {Element}
7717
+ * @private
7718
+ */
7719
+ CellBoundPainter.prototype._cellBound = null;
7720
+ /** @type {number}
7721
+ * @private
7722
+ */
7723
+ CellBoundPainter.prototype._cbLftIdx = 0;
7724
+ /** @type {number}
7725
+ * @private
7726
+ */
7727
+ CellBoundPainter.prototype._cbRgtIdx = 0;
7728
+ /** @type {number}
7729
+ * @private
7730
+ */
7731
+ CellBoundPainter.prototype._cbTopIdx = 0;
7732
+ /** @type {number}
7733
+ * @private
7734
+ */
7735
+ CellBoundPainter.prototype._cbBtmIdx = 0;
7736
+
7737
+ /** @public
7738
+ */
7739
+ CellBoundPainter.prototype.dispose = function () {
7740
+ let cellBound = this._cellBound;
7741
+ if(cellBound) {
7742
+ let pn = cellBound.parentNode;
7743
+ if(pn) {
7744
+ pn.removeChild(cellBound);
7745
+ }
7746
+ this._cellBound = null;
7747
+ }
7748
+ this._boundLayer = null;
7749
+ this._layoutX = null;
7750
+ this._layoutY = null;
7751
+ this._hscrollbar = null;
7752
+ this._calculateColumnBounds = null;
7753
+ };
7754
+
7755
+ /** @public
7756
+ * @param {number} colIndex
7757
+ * @param {number} rowIndex
7758
+ * @param {number} width
7759
+ * @param {number} height
7760
+ * @param {number} colCount
7761
+ */
7762
+ CellBoundPainter.prototype.setCellBounds = function (colIndex, rowIndex, width, height, colCount) {
7763
+ let cellBound = this._cellBound;
7764
+ if(!cellBound) {
7765
+ cellBound = this._cellBound = document.createElement("div");
7766
+ cellBound.className = "selection-bound";
7767
+ }
7768
+
7769
+ // Validate inputs
7770
+ let rgtIndex = colIndex + width; // Exclusive
7771
+ let btmIndex = rowIndex + height; // Exclusive
7772
+
7773
+ let rowCount = this._layoutY.getLaneCount();
7774
+
7775
+ this._cbLftIdx = _validateIndex(colIndex, colCount);
7776
+ this._cbRgtIdx = _validateIndex(rgtIndex, colCount);
7777
+ this._cbTopIdx = _validateIndex(rowIndex, rowCount);
7778
+ this._cbBtmIdx = _validateIndex(btmIndex, rowCount);
7779
+
7780
+ this.updateCellBounds();
7781
+ };
7782
+
7783
+ /** @public
7784
+ */
7785
+ CellBoundPainter.prototype.updateCellBounds = function() {
7786
+ let cellBound = this._cellBound;
7787
+ if(!cellBound) {
7788
+ return;
7789
+ }
7790
+
7791
+ let layoutX = this._layoutX;
7792
+ let layoutY = this._layoutY;
7793
+ let lftIdx = this._cbLftIdx;
7794
+ let rgtIdx = this._cbRgtIdx; // Exclusive
7795
+ let topIdx = this._cbTopIdx;
7796
+ let btmIdx = this._cbBtmIdx; // Exclusive
7797
+ let lftPx, rgtPx, topPx, btmPx;
7798
+ lftPx = rgtPx = topPx = btmPx = 0;
7799
+ if(lftIdx < rgtIdx && topIdx < btmIdx) {
7800
+ lftPx = layoutX.getLaneStart(lftIdx);
7801
+ rgtPx = layoutX.getLaneEnd(rgtIdx - 1);
7802
+ topPx = layoutY.getLaneStart(topIdx);
7803
+ btmPx = layoutY.getLaneEnd(btmIdx - 1);
7804
+ }
7805
+
7806
+ let width = rgtPx - lftPx;
7807
+ let height = btmPx - topPx;
7808
+ let noBorders = [false, false];
7809
+ if(width > 0 && height > 0 && this._hscrollbar) {
7810
+ let positions = [0, 0];
7811
+ this._calculateColumnBounds(lftIdx, rgtIdx - 1, positions, noBorders);
7812
+ lftPx = positions[0];
7813
+ rgtPx = positions[1];
7814
+ width = rgtPx - lftPx;
7815
+ }
7816
+
7817
+ if(width > 0) {
7818
+ cellBound.style.left = lftPx + "px";
7819
+ cellBound.style.top = topPx + "px";
7820
+ cellBound.style.width = width + "px";
7821
+ cellBound.style.height = height + "px";
7822
+
7823
+ cellBound.classList.toggle("no-left-bound", noBorders[0]);
7824
+ cellBound.classList.toggle("no-right-bound", noBorders[1]);
7825
+
7826
+ if(this._boundLayer) {
7827
+ this._boundLayer.appendChild(cellBound);
7828
+ }
7829
+ } else {
7830
+ let pn = cellBound.parentNode;
7831
+ if(pn) {
7832
+ pn.removeChild(cellBound);
7833
+ }
7834
+ }
7835
+ };
7836
+
7837
+ CellBoundPainter._proto = CellBoundPainter.prototype;
7838
+
7839
+ /* harmony default export */ const util_CellBoundPainter = (CellBoundPainter);
7840
+
7841
+
7669
7842
  ;// CONCATENATED MODULE: ./src/js/grid/LayoutGrid.js
7670
7843
  /* eslint-disable */
7671
7844
 
@@ -7681,6 +7854,7 @@ HScrollbar._proto = HScrollbar.prototype;
7681
7854
 
7682
7855
 
7683
7856
 
7857
+
7684
7858
  /* eslint-enable */
7685
7859
 
7686
7860
  //#region Events
@@ -7946,7 +8120,10 @@ LayoutGrid.prototype._leftColumnSeparator = null;
7946
8120
  * @private
7947
8121
  */
7948
8122
  LayoutGrid.prototype._rightColumnSeparator = null;
7949
-
8123
+ /** @type {Element}
8124
+ * @private
8125
+ */
8126
+ LayoutGrid.prototype._cellBoundPainter = null;
7950
8127
  /**
7951
8128
  * {@link ElementWrapper#dispose}
7952
8129
  * @override
@@ -7971,6 +8148,10 @@ LayoutGrid.prototype.dispose = function () {
7971
8148
  this._ctx = null;
7972
8149
  this._hscrollbar = null;
7973
8150
 
8151
+ if(this._cellBoundPainter) {
8152
+ this._cellBoundPainter.dispose();
8153
+ }
8154
+
7974
8155
  this._dispose();
7975
8156
  };
7976
8157
  /**
@@ -9941,7 +10122,22 @@ LayoutGrid.prototype.selectCell = function (colIndex, rowIndex, selected) {
9941
10122
  * @param {number} width
9942
10123
  * @param {number} height
9943
10124
  */
9944
- LayoutGrid.prototype.setCellBounds = function (colIndex, rowIndex, width, height) {};
10125
+ LayoutGrid.prototype.setCellBounds = function (colIndex, rowIndex, width, height) {
10126
+ let boundLayer = this._initBoundLayer();
10127
+ let cellBoundPainter = this._cellBoundPainter;
10128
+ if(!cellBoundPainter) {
10129
+ cellBoundPainter = this._cellBoundPainter = new util_CellBoundPainter({
10130
+ boundLayer: boundLayer,
10131
+ layoutX: this._trackX,
10132
+ layoutY: this._trackY,
10133
+ hscrollbar: this._hscrollbar,
10134
+ calculateColumnBounds: this.calculateColumnBounds.bind(this)
10135
+ });
10136
+ }
10137
+
10138
+ let colCount = this.getColumnCount();
10139
+ cellBoundPainter.setCellBounds(colIndex, rowIndex, width, height, colCount);
10140
+ };
9945
10141
  /** @public
9946
10142
  * @ignore
9947
10143
  * @return {!TrackLayout}
@@ -11811,7 +12007,7 @@ GroupDefinitions.prototype.setGroupName = function (groupId, groupName) {
11811
12007
  * @constructor
11812
12008
  * @extends {EventDispatcher}
11813
12009
  */
11814
- let DataCache_DataCache = function () {
12010
+ let DataCache = function () {
11815
12011
  let _t = this;
11816
12012
 
11817
12013
  _t._rows = {};
@@ -11820,9 +12016,6 @@ let DataCache_DataCache = function () {
11820
12016
  _t._onInsert = _t._onInsert.bind(_t);
11821
12017
  _t._onUpdate = _t._onUpdate.bind(_t);
11822
12018
  _t._onDelete = _t._onDelete.bind(_t);
11823
- _t._onBatchRequestADCData = _t._onBatchRequestADCData.bind(_t);
11824
- _t._onADCUpdate = _t._onADCUpdate.bind(_t);
11825
- _t._onADCError = _t._onADCError.bind(_t);
11826
12019
  _t._onQ2DataChanged = _t._onQ2DataChanged.bind(_t);
11827
12020
  _t._onQ2SubAdded = _t._onQ2SubAdded.bind(_t);
11828
12021
  _t._onQ2SubRemoved = _t._onQ2SubRemoved.bind(_t);
@@ -11830,13 +12023,13 @@ let DataCache_DataCache = function () {
11830
12023
  _t._addEvent("dataComposed");
11831
12024
  _t._addEvent("dataChanged");
11832
12025
  };
11833
- es6_Ext.inherits(DataCache_DataCache, event_EventDispatcher);
12026
+ es6_Ext.inherits(DataCache, event_EventDispatcher);
11834
12027
 
11835
12028
  //#region Public
11836
12029
  /**
11837
12030
  * @public
11838
12031
  */
11839
- DataCache_DataCache.prototype.dispose = function () {
12032
+ DataCache.prototype.dispose = function () {
11840
12033
  this.unlistenAll();
11841
12034
  this.clearAllData(true);
11842
12035
  this._quotes2 = null;
@@ -11847,7 +12040,7 @@ DataCache_DataCache.prototype.dispose = function () {
11847
12040
  * @public
11848
12041
  * @param {Object} subs Subscriptions object from JET.Quotes2
11849
12042
  */
11850
- DataCache_DataCache.prototype.setSubscriptions = function (subs) {
12043
+ DataCache.prototype.setSubscriptions = function (subs) {
11851
12044
  if (this._quotes2) {
11852
12045
  this._quotes2["removeEventListener"]("dataChanged", this._onQ2DataChanged);
11853
12046
  this._quotes2["removeEventListener"]("subscriptionAdded", this._onQ2SubAdded);
@@ -11869,7 +12062,7 @@ DataCache_DataCache.prototype.setSubscriptions = function (subs) {
11869
12062
  * @public
11870
12063
  * @return {Object} subs Subscriptions object from JET.Quotes2
11871
12064
  */
11872
- DataCache_DataCache.prototype.getSubscriptions = function () {
12065
+ DataCache.prototype.getSubscriptions = function () {
11873
12066
  return this._quotes2;
11874
12067
  };
11875
12068
 
@@ -11881,7 +12074,7 @@ DataCache_DataCache.prototype.getSubscriptions = function () {
11881
12074
  * object does not provide a way to access its data
11882
12075
  * @param {Object=} opt_values Initial values
11883
12076
  */
11884
- DataCache_DataCache.prototype.addSubscription = function (sub, opt_primaryRic, opt_values) {
12077
+ DataCache.prototype.addSubscription = function (sub, opt_primaryRic, opt_values) {
11885
12078
  if (this.getSubscription(sub["id"])) {
11886
12079
  return;
11887
12080
  }
@@ -11912,7 +12105,7 @@ DataCache_DataCache.prototype.addSubscription = function (sub, opt_primaryRic, o
11912
12105
  * @public
11913
12106
  * @param {Object} sub Subscription object from JET.Quote
11914
12107
  */
11915
- DataCache_DataCache.prototype.removeSubscription = function (sub) { // All RICs associated to the subscription are removed
12108
+ DataCache.prototype.removeSubscription = function (sub) { // All RICs associated to the subscription are removed
11916
12109
  let subId = sub["id"];
11917
12110
 
11918
12111
  if (!sub || !this._subs[subId]) {
@@ -11936,7 +12129,7 @@ DataCache_DataCache.prototype.removeSubscription = function (sub) { // All RICs
11936
12129
  * Deprecated. Built-in Data Service is deprecated due to the lack of flexibility.
11937
12130
  * @public
11938
12131
  */
11939
- DataCache_DataCache.prototype.startAllSubscriptions = function () {
12132
+ DataCache.prototype.startAllSubscriptions = function () {
11940
12133
  if (this._quotes2) {
11941
12134
  this._quotes2["start"]();
11942
12135
  } else {
@@ -11950,7 +12143,7 @@ DataCache_DataCache.prototype.startAllSubscriptions = function () {
11950
12143
  * Deprecated. Built-in Data Service is deprecated due to the lack of flexibility.
11951
12144
  * @public
11952
12145
  */
11953
- DataCache_DataCache.prototype.stopAllSubscriptions = function () {
12146
+ DataCache.prototype.stopAllSubscriptions = function () {
11954
12147
  if (this._quotes2) {
11955
12148
  this._quotes2["stop"]();
11956
12149
  } else {
@@ -11965,7 +12158,7 @@ DataCache_DataCache.prototype.stopAllSubscriptions = function () {
11965
12158
  * @param {string} sub_id
11966
12159
  * @return {Object} Subscription object from JET.Quote
11967
12160
  */
11968
- DataCache_DataCache.prototype.getSubscription = function (sub_id) {
12161
+ DataCache.prototype.getSubscription = function (sub_id) {
11969
12162
  return (this._subs[sub_id]) ? this._subs[sub_id]["s"] : null;
11970
12163
  };
11971
12164
 
@@ -11974,7 +12167,7 @@ DataCache_DataCache.prototype.getSubscription = function (sub_id) {
11974
12167
  * @param {string} sub_id
11975
12168
  * @return {string} ric that has been input when calling addSubscription
11976
12169
  */
11977
- DataCache_DataCache.prototype.getPrimaryRic = function (sub_id) {
12170
+ DataCache.prototype.getPrimaryRic = function (sub_id) {
11978
12171
  let subDef = this._subs[sub_id];
11979
12172
  if (subDef) {
11980
12173
  return subDef["primary"];
@@ -11987,7 +12180,7 @@ DataCache_DataCache.prototype.getPrimaryRic = function (sub_id) {
11987
12180
  * @param {boolean=} opt_suppressEvent
11988
12181
  * @fires DataCache#dataChanged
11989
12182
  */
11990
- DataCache_DataCache.prototype.clearAllData = function (opt_suppressEvent) { // All subscriptions are also removed
12183
+ DataCache.prototype.clearAllData = function (opt_suppressEvent) { // All subscriptions are also removed
11991
12184
  if (this._quotes2) {
11992
12185
  this._quotes2["removeAllSubscriptions"]();
11993
12186
  } else {
@@ -11997,13 +12190,6 @@ DataCache_DataCache.prototype.clearAllData = function (opt_suppressEvent) { // A
11997
12190
  this._subs = {};
11998
12191
  this._rows = {};
11999
12192
 
12000
- if (this._adcTimerId >= 0) {
12001
- clearTimeout(this._adcTimerId);
12002
- this._adcTimerId = -1;
12003
- }
12004
-
12005
- this._adcRicMap = null;
12006
-
12007
12193
  if (!opt_suppressEvent) {
12008
12194
  this._dispatchDataChange({"globalChange": true});
12009
12195
  }
@@ -12015,7 +12201,7 @@ DataCache_DataCache.prototype.clearAllData = function (opt_suppressEvent) { // A
12015
12201
  * @param {boolean=} opt_suppressEvent
12016
12202
  * @fires DataCache#dataChanged
12017
12203
  */
12018
- DataCache_DataCache.prototype.clearColumnData = function (colId, opt_suppressEvent) {
12204
+ DataCache.prototype.clearColumnData = function (colId, opt_suppressEvent) {
12019
12205
  let cids = (typeof colId === "string") ? [/** @type {string} */(colId)] : /** @type {Array.<string>} */(colId);
12020
12206
 
12021
12207
  for (let i = cids.length; --i >= 0;) {
@@ -12039,7 +12225,7 @@ DataCache_DataCache.prototype.clearColumnData = function (colId, opt_suppressEve
12039
12225
  * @param {string} cid
12040
12226
  * @return {*}
12041
12227
  */
12042
- DataCache_DataCache.prototype.getData = function (rid, cid) {
12228
+ DataCache.prototype.getData = function (rid, cid) {
12043
12229
  let row = this.getRowData(rid);
12044
12230
 
12045
12231
  return (row) ? row[cid] : null;
@@ -12050,7 +12236,7 @@ DataCache_DataCache.prototype.getData = function (rid, cid) {
12050
12236
  * @public
12051
12237
  * @return {Object.<string, Array.<string>>} Map of Array of subscription object
12052
12238
  */
12053
- DataCache_DataCache.prototype.getAllRics = function () { // Slow
12239
+ DataCache.prototype.getAllRics = function () { // Slow
12054
12240
  let ricMap = {};
12055
12241
 
12056
12242
  for (let subId in this._subs) {
@@ -12072,7 +12258,7 @@ DataCache_DataCache.prototype.getAllRics = function () { // Slow
12072
12258
  * @public
12073
12259
  * @return {Array.<string>}
12074
12260
  */
12075
- DataCache_DataCache.prototype.getAllRowIds = function () {
12261
+ DataCache.prototype.getAllRowIds = function () {
12076
12262
  let rids = [];
12077
12263
 
12078
12264
  for (let rid in this._rows) {
@@ -12087,7 +12273,7 @@ DataCache_DataCache.prototype.getAllRowIds = function () {
12087
12273
  * @param {string} rid ID of a row to be checked for its presence.
12088
12274
  * @return {boolean} `true` if row was found, `false` if row was not found.
12089
12275
  */
12090
- DataCache_DataCache.prototype.hasRowId = function (rid) {
12276
+ DataCache.prototype.hasRowId = function (rid) {
12091
12277
  return !!this._rows[rid];
12092
12278
  };
12093
12279
 
@@ -12096,7 +12282,7 @@ DataCache_DataCache.prototype.hasRowId = function (rid) {
12096
12282
  * @param {string} cid
12097
12283
  * @return {!Array.<*>}
12098
12284
  */
12099
- DataCache_DataCache.prototype.getColumnData = function (cid) {
12285
+ DataCache.prototype.getColumnData = function (cid) {
12100
12286
  let fieldRows = [];
12101
12287
 
12102
12288
  for (let rid in this._rows) {
@@ -12111,7 +12297,7 @@ DataCache_DataCache.prototype.getColumnData = function (cid) {
12111
12297
  * @param {string} rid
12112
12298
  * @return {Object.<string, *>}
12113
12299
  */
12114
- DataCache_DataCache.prototype.getRowData = function (rid) {
12300
+ DataCache.prototype.getRowData = function (rid) {
12115
12301
  return this._rows[rid] || null;
12116
12302
  };
12117
12303
 
@@ -12122,7 +12308,7 @@ DataCache_DataCache.prototype.getRowData = function (rid) {
12122
12308
  * @param {number=} opt_to EXCLUSIVE
12123
12309
  * @return {!Array.<Object>}
12124
12310
  */
12125
- DataCache_DataCache.prototype.getMultipleRowData = function (rids, opt_from, opt_to) {
12311
+ DataCache.prototype.getMultipleRowData = function (rids, opt_from, opt_to) {
12126
12312
  let len = rids.length;
12127
12313
 
12128
12314
  if (opt_to == null) {
@@ -12151,7 +12337,7 @@ DataCache_DataCache.prototype.getMultipleRowData = function (rids, opt_from, opt
12151
12337
  * @public
12152
12338
  * @return {!Array.<Object.<string, *>>}
12153
12339
  */
12154
- DataCache_DataCache.prototype.getAllRowData = function () {
12340
+ DataCache.prototype.getAllRowData = function () {
12155
12341
  let rows = [];
12156
12342
  let rowMap = this._rows;
12157
12343
 
@@ -12170,7 +12356,7 @@ DataCache_DataCache.prototype.getAllRowData = function () {
12170
12356
  * @return {boolean} Return true if there is any change, and false otherwise
12171
12357
  * @fires DataCache#dataChanged
12172
12358
  */
12173
- DataCache_DataCache.prototype.setData = function (rid, cid, value) { // Data changed event is always dispatched
12359
+ DataCache.prototype.setData = function (rid, cid, value) { // Data changed event is always dispatched
12174
12360
  let values = {};
12175
12361
 
12176
12362
  values[cid] = value;
@@ -12180,30 +12366,10 @@ DataCache_DataCache.prototype.setData = function (rid, cid, value) { // Data cha
12180
12366
 
12181
12367
  /**
12182
12368
  * @public
12369
+ * @ignore
12183
12370
  * @param {string} rid
12184
- * @return {boolean}
12185
12371
  */
12186
- DataCache_DataCache.prototype.hasDataCloudData = function (rid) {
12187
- if (!this._adcFields) {
12188
- return false;
12189
- }
12190
-
12191
- let row = this.getRowData(rid);
12192
-
12193
- if (!row) {
12194
- return false;
12195
- }
12196
-
12197
- for (let i = this._adcFields.length; --i >= 0;) {
12198
- let data = row[this._adcFields[i]];
12199
-
12200
- if (data != null) {
12201
- return true;
12202
- }
12203
- }
12204
-
12205
- return false;
12206
- };
12372
+ DataCache.prototype.hasDataCloudData = function (rid) {};
12207
12373
 
12208
12374
  /**
12209
12375
  * @public
@@ -12213,7 +12379,7 @@ DataCache_DataCache.prototype.hasDataCloudData = function (rid) {
12213
12379
  * @return {boolean} Return true if there is any change, and false otherwise
12214
12380
  * @fires DataCache#dataChanged
12215
12381
  */
12216
- DataCache_DataCache.prototype.setRowData = function (rid, values, opt_eventArg) { // Data changed event is always dispatched
12382
+ DataCache.prototype.setRowData = function (rid, values, opt_eventArg) { // Data changed event is always dispatched
12217
12383
  let row = this.getRowData(rid);
12218
12384
  let dirty = false;
12219
12385
  let changes = null;
@@ -12262,7 +12428,7 @@ DataCache_DataCache.prototype.setRowData = function (rid, values, opt_eventArg)
12262
12428
  * @param {string} rid
12263
12429
  * @return {Object}
12264
12430
  */
12265
- DataCache_DataCache.prototype.cloneRowData = function (rid) {
12431
+ DataCache.prototype.cloneRowData = function (rid) {
12266
12432
  let fields = this._rows[rid];
12267
12433
 
12268
12434
  if (!fields) {
@@ -12288,7 +12454,7 @@ DataCache_DataCache.prototype.cloneRowData = function (rid) {
12288
12454
  * @param {Array.<string>} fields
12289
12455
  * @suppress {checkTypes}
12290
12456
  */
12291
- DataCache_DataCache.prototype.addStaticFields = function (fields) {
12457
+ DataCache.prototype.addStaticFields = function (fields) {
12292
12458
  if (!Array.isArray(fields)) {
12293
12459
  return;
12294
12460
  }
@@ -12308,7 +12474,7 @@ DataCache_DataCache.prototype.addStaticFields = function (fields) {
12308
12474
  * @param {Array.<string>} fields
12309
12475
  * @suppress {checkTypes}
12310
12476
  */
12311
- DataCache_DataCache.prototype.removeStaticFields = function (fields) {
12477
+ DataCache.prototype.removeStaticFields = function (fields) {
12312
12478
  if (!Array.isArray(fields)) {
12313
12479
  return;
12314
12480
  }
@@ -12328,7 +12494,7 @@ DataCache_DataCache.prototype.removeStaticFields = function (fields) {
12328
12494
  * Deprecated. Built-in Data Service is deprecated due to the lack of flexibility.
12329
12495
  * @public
12330
12496
  */
12331
- DataCache_DataCache.prototype.resetStaticFields = function () {
12497
+ DataCache.prototype.resetStaticFields = function () {
12332
12498
  this._staticFields = {};
12333
12499
  };
12334
12500
 
@@ -12337,7 +12503,7 @@ DataCache_DataCache.prototype.resetStaticFields = function () {
12337
12503
  * @public
12338
12504
  * @return {Object.<string, number>}
12339
12505
  */
12340
- DataCache_DataCache.prototype.getStaticFields = function () {
12506
+ DataCache.prototype.getStaticFields = function () {
12341
12507
  return this._staticFields;
12342
12508
  };
12343
12509
 
@@ -12355,8 +12521,8 @@ DataCache_DataCache.prototype.getStaticFields = function () {
12355
12521
  * "withRowIds": boolean
12356
12522
  * };
12357
12523
  */
12358
- DataCache_DataCache.prototype.dump = function (options) {
12359
- return DataCache_DataCache.constructTable(this.getAllRowData(), options, Object.keys(this._rows));
12524
+ DataCache.prototype.dump = function (options) {
12525
+ return DataCache.constructTable(this.getAllRowData(), options, Object.keys(this._rows));
12360
12526
  };
12361
12527
 
12362
12528
  /**
@@ -12372,104 +12538,43 @@ DataCache_DataCache.prototype.dump = function (options) {
12372
12538
  * "withRowIds": boolean
12373
12539
  * };
12374
12540
  */
12375
- DataCache_DataCache.prototype.log = function (opt_options) {
12541
+ DataCache.prototype.log = function (opt_options) {
12376
12542
  console.table(this.dump(opt_options));
12377
12543
  };
12378
12544
 
12379
12545
  //#region ADC
12380
12546
  /** Deprecated. Built-in Data Service is deprecated due to the lack of flexibility.
12381
12547
  * @public
12548
+ * @ignore
12382
12549
  * @param {string} userId
12383
12550
  * @param {string} productId
12384
12551
  * @param {string} url
12385
12552
  * @param {string=} opt_lang
12386
12553
  */
12387
- DataCache_DataCache.prototype.setDataCloudSettings = function (userId, productId, url, opt_lang) {
12388
- if (userId != null) {
12389
- this._userId = userId;
12390
- }
12391
-
12392
- if (productId != null) {
12393
- this._productId = productId;
12394
- }
12395
-
12396
- if (url != null) {
12397
- this._adcUrl = url;
12398
- }
12399
-
12400
- if (opt_lang) {
12401
- this._lang = opt_lang;
12402
- }
12403
- };
12554
+ DataCache.prototype.setDataCloudSettings = function (userId, productId, url, opt_lang) {};
12404
12555
 
12405
12556
  /**
12406
12557
  * Deprecated. Built-in Data Service is deprecated due to the lack of flexibility.
12407
12558
  * @public
12408
- * @return {Array.<string>}
12559
+ * @ignore
12409
12560
  */
12410
- DataCache_DataCache.prototype.getDataCloudFields = function () {
12411
- return this._adcFields; // Return private members
12412
- };
12561
+ DataCache.prototype.getDataCloudFields = function () {};
12413
12562
 
12414
12563
  /**
12415
12564
  * Deprecated. Built-in Data Service is deprecated due to the lack of flexibility.
12416
12565
  * @public
12566
+ * @ignore
12417
12567
  * @param {Array.<string>|string} fields
12418
- * @return {boolean} Return true if success, and false otherwise
12419
12568
  */
12420
- DataCache_DataCache.prototype.addDataCloudFields = function (fields) {
12421
- if (!this._adcFields) {
12422
- this._adcFields = [];
12423
- this._adcRefMap = {};
12424
- }
12425
-
12426
- let newFields = [];
12427
-
12428
- if (fields instanceof Array) {
12429
- for (let i = fields.length; --i >= 0;) {
12430
- this._addDataCloudField(fields[i], newFields);
12431
- }
12432
- } else {
12433
- this._addDataCloudField(/** @type {string} */(fields), newFields);
12434
- }
12435
-
12436
- if (newFields.length <= 0) {
12437
- return false;
12438
- }
12439
-
12440
- let ricMap = this.getAllRics();
12441
-
12442
- this._batchRequestDataCloud(ricMap, newFields);
12443
-
12444
- return true;
12445
- };
12569
+ DataCache.prototype.addDataCloudFields = function (fields) {};
12446
12570
 
12447
12571
  /**
12448
12572
  * Deprecated. Built-in Data Service is deprecated due to the lack of flexibility.
12449
12573
  * @public
12574
+ * @ignore
12450
12575
  * @param {string} field
12451
- * @return {boolean} Return true if success, and false otherwise
12452
12576
  */
12453
- DataCache_DataCache.prototype.removeDataCloudField = function (field) {
12454
- if (!this._adcFields) {
12455
- return false;
12456
- }
12457
-
12458
- if (!this._adcRefMap[field]) {
12459
- return false;
12460
- }
12461
-
12462
- --this._adcRefMap[field];
12463
-
12464
- if (!this._adcRefMap[field]) {
12465
- let foundAt = this._adcFields.indexOf(field);
12466
-
12467
- this._adcFields.splice(foundAt, 1);
12468
- this.clearColumnData(field);
12469
- }
12470
-
12471
- return true;
12472
- };
12577
+ DataCache.prototype.removeDataCloudField = function (field) {};
12473
12578
  //#endregion ADC
12474
12579
  //#endregion Public
12475
12580
 
@@ -12480,7 +12585,7 @@ DataCache_DataCache.prototype.removeDataCloudField = function (field) {
12480
12585
  * @fires DataTable#dataComposed
12481
12586
  * @fires DataTable#dataChanged
12482
12587
  */
12483
- DataCache_DataCache.prototype._dispatchDataChange = function (e) {
12588
+ DataCache.prototype._dispatchDataChange = function (e) {
12484
12589
  if (this._composing) {
12485
12590
  return;
12486
12591
  }
@@ -12498,7 +12603,7 @@ DataCache_DataCache.prototype._dispatchDataChange = function (e) {
12498
12603
  * @param {string} colName
12499
12604
  * @return {*}
12500
12605
  */
12501
- DataCache_DataCache._defaultPropertyGetter = function (propertyName, rowData, colName) {
12606
+ DataCache._defaultPropertyGetter = function (propertyName, rowData, colName) {
12502
12607
  let d = rowData[colName];
12503
12608
 
12504
12609
  return d ? d[propertyName] : null;
@@ -12510,7 +12615,7 @@ DataCache_DataCache._defaultPropertyGetter = function (propertyName, rowData, co
12510
12615
  * @param {string} colName
12511
12616
  * @return {*}
12512
12617
  */
12513
- DataCache_DataCache._defaultGetter = function (rowData, colName) {
12618
+ DataCache._defaultGetter = function (rowData, colName) {
12514
12619
  return rowData[colName];
12515
12620
  };
12516
12621
 
@@ -12523,13 +12628,13 @@ DataCache_DataCache._defaultGetter = function (rowData, colName) {
12523
12628
  * @param {Array.<string>=} opt_rowIds Optional row ids corresponding to the given dataset
12524
12629
  * @return {!Array.<Object>} Return a JSON object that is compatible with console.table()
12525
12630
  */
12526
- DataCache_DataCache.constructTable = function (dataset, opt_options, opt_rowIds) {
12631
+ DataCache.constructTable = function (dataset, opt_options, opt_rowIds) {
12527
12632
  let startIndex = 0;
12528
12633
  let rLen = dataset.length;
12529
12634
  let rowLim = rLen;
12530
12635
  let colMap = null;
12531
12636
  let rids = opt_rowIds || null;
12532
- let getter = DataCache_DataCache._defaultGetter;
12637
+ let getter = DataCache._defaultGetter;
12533
12638
  let transformation = false;
12534
12639
 
12535
12640
  if (opt_options) {
@@ -12552,7 +12657,7 @@ DataCache_DataCache.constructTable = function (dataset, opt_options, opt_rowIds)
12552
12657
 
12553
12658
  if (opt_options["getter"]) {
12554
12659
  if (typeof opt_options["getter"] == "string") {
12555
- getter = DataCache_DataCache._defaultPropertyGetter.bind(null, opt_options["getter"]);
12660
+ getter = DataCache._defaultPropertyGetter.bind(null, opt_options["getter"]);
12556
12661
  } else { // Function
12557
12662
  getter = opt_options["getter"];
12558
12663
  }
@@ -12615,15 +12720,12 @@ DataCache_DataCache.constructTable = function (dataset, opt_options, opt_rowIds)
12615
12720
  * @param {string} ric
12616
12721
  * @param {Object.<string, *>} values
12617
12722
  */
12618
- DataCache_DataCache.prototype._insertRic = function (subId, ric, values) {
12723
+ DataCache.prototype._insertRic = function (subId, ric, values) {
12619
12724
  // HACK: Some chain may have 0# symbol in there chain index (e.g. 0#CL:)
12620
12725
  ric = ric.replace("0#", "");
12621
12726
 
12622
12727
  let rid = subId + ric;
12623
12728
 
12624
- // We cannot cache event arguments because user may want to collect all the updates
12625
- this._onADCForNewRic(subId, ric);
12626
-
12627
12729
  let rowData = this.getRowData(rid);
12628
12730
  if (!rowData) { // Ensure that we have subscription id and ric from Quotes2
12629
12731
  let tmp = values;
@@ -12650,7 +12752,7 @@ DataCache_DataCache.prototype._insertRic = function (subId, ric, values) {
12650
12752
  * @private
12651
12753
  * @param {Object} e
12652
12754
  */
12653
- DataCache_DataCache.prototype._onQ2DataChanged = function (e) {
12755
+ DataCache.prototype._onQ2DataChanged = function (e) {
12654
12756
  let subId = e["subId"];
12655
12757
  let ric = e["ric"];
12656
12758
  let values = /** @type{Object.<string, *>} */(e["values"]);
@@ -12668,7 +12770,7 @@ DataCache_DataCache.prototype._onQ2DataChanged = function (e) {
12668
12770
  * @private
12669
12771
  * @param {Object} e
12670
12772
  */
12671
- DataCache_DataCache.prototype._onQ2SubAdded = function (e) {
12773
+ DataCache.prototype._onQ2SubAdded = function (e) {
12672
12774
  let subs = e["subs"];
12673
12775
  let duplicateSubIds = e["duplicateSubIds"];
12674
12776
  let len = subs.length;
@@ -12701,7 +12803,7 @@ DataCache_DataCache.prototype._onQ2SubAdded = function (e) {
12701
12803
  * @private
12702
12804
  * @param {Object} e
12703
12805
  */
12704
- DataCache_DataCache.prototype._onQ2SubRemoved = function (e) {
12806
+ DataCache.prototype._onQ2SubRemoved = function (e) {
12705
12807
  let subs = e["subs"];
12706
12808
  let len = subs.length;
12707
12809
 
@@ -12718,42 +12820,12 @@ DataCache_DataCache.prototype._onQ2SubRemoved = function (e) {
12718
12820
  }
12719
12821
  };
12720
12822
 
12721
- /**
12722
- * @private
12723
- * @param {string} subId Subscription id
12724
- * @param {string} ric
12725
- */
12726
- DataCache_DataCache.prototype._onADCForNewRic = function (subId, ric) {
12727
- let sub = this._subs[subId];
12728
-
12729
- if (!sub) {
12730
- return;
12731
- }
12732
-
12733
- if (this._adcFields) {
12734
- if (!sub["rics"][ric]) { // First time insertion
12735
- if (this._adcTimerId < 0) {
12736
- this._adcRicMap = {};
12737
- this._adcTimerId = setTimeout(this._onBatchRequestADCData, 100);
12738
- }
12739
-
12740
- if (!this._adcRicMap[ric]) {
12741
- this._adcRicMap[ric] = [];
12742
- }
12743
-
12744
- this._adcRicMap[ric].push(subId);
12745
- }
12746
- }
12747
-
12748
- sub["rics"][ric] = true;
12749
- };
12750
-
12751
12823
  /**
12752
12824
  * @private
12753
12825
  * @param {string} subId
12754
12826
  * @param {Object.<string, *>} dupData
12755
12827
  */
12756
- DataCache_DataCache.prototype._onDuplicateRic = function (subId, dupData) {
12828
+ DataCache.prototype._onDuplicateRic = function (subId, dupData) {
12757
12829
  let sub = this._subs[subId];
12758
12830
 
12759
12831
  if (!sub) {
@@ -12781,7 +12853,7 @@ DataCache_DataCache.prototype._onDuplicateRic = function (subId, dupData) {
12781
12853
  ric = children[i];
12782
12854
  values = this._cloneRowData(dupSubId, ric, subId);
12783
12855
 
12784
- this._onInsert(sub, ric, values); // TODO: This makes a lot of ADC request
12856
+ this._onInsert(sub, ric, values);
12785
12857
  }
12786
12858
  }
12787
12859
  };
@@ -12792,13 +12864,12 @@ DataCache_DataCache.prototype._onDuplicateRic = function (subId, dupData) {
12792
12864
  * @param {string} ric
12793
12865
  * @param {Object.<string, *>} values
12794
12866
  */
12795
- DataCache_DataCache.prototype._onInsert = function (sub, ric, values/*, rowN*/) {
12867
+ DataCache.prototype._onInsert = function (sub, ric, values/*, rowN*/) {
12796
12868
  let subId = sub["id"];
12797
12869
 
12798
12870
  if (this._quotes2) {
12799
12871
  this._insertRic(subId, ric, values);
12800
12872
  } else {
12801
- this._onADCForNewRic(subId, ric);
12802
12873
  this.setRowData(subId + ric, values, {"subscription": sub, "ric": ric});
12803
12874
  }
12804
12875
  };
@@ -12807,7 +12878,7 @@ DataCache_DataCache.prototype._onInsert = function (sub, ric, values/*, rowN*/)
12807
12878
  * @private
12808
12879
  * @function
12809
12880
  */
12810
- DataCache_DataCache.prototype._onUpdate = DataCache_DataCache.prototype._onInsert;
12881
+ DataCache.prototype._onUpdate = DataCache.prototype._onInsert;
12811
12882
 
12812
12883
  /**
12813
12884
  * This is a legacy code and should be deprecated
@@ -12816,198 +12887,13 @@ DataCache_DataCache.prototype._onUpdate = DataCache_DataCache.prototype._onInser
12816
12887
  * @param {string} ric
12817
12888
  * @param {Array.<string, *>} values
12818
12889
  */
12819
- DataCache_DataCache.prototype._onDelete = function (sub, ric, values/*, rowN*/) {
12890
+ DataCache.prototype._onDelete = function (sub, ric, values/*, rowN*/) {
12820
12891
  delete this._subs[sub["id"]]["rics"][ric];
12821
12892
 
12822
12893
  // We cannot cache event arguments because user may want to collect all the updates
12823
12894
  this.setRowData(sub["id"] + ric, null, {"subscription": sub, "ric": ric});
12824
12895
  };
12825
12896
 
12826
- /**
12827
- * @private
12828
- * @param {string} field
12829
- * @param {Array.<string>} ary_out
12830
- */
12831
- DataCache_DataCache.prototype._addDataCloudField = function (field, ary_out) {
12832
- if (!this._adcRefMap[field]) {
12833
- this._adcFields.push(field);
12834
-
12835
- ary_out.push(field);
12836
-
12837
- this._adcRefMap[field] = 1;
12838
- } else {
12839
- ++this._adcRefMap[field];
12840
- }
12841
- };
12842
-
12843
- /**
12844
- * @private
12845
- * @param {Object} e
12846
- * @suppress {missingProperties}
12847
- */
12848
- DataCache_DataCache.prototype._onADCUpdate = function (e) {
12849
- let xhr = e["currentTarget"]; // XMLHttpRequest
12850
- let resp = null;
12851
-
12852
- try {
12853
- resp = JSON.parse(xhr.responseText);
12854
- // window.console.log("Successfully parse: " + resp.rows);
12855
- } catch (err) {
12856
- return;
12857
- }
12858
-
12859
- if (resp["status"] !== "Ok") {
12860
- return;
12861
- }
12862
-
12863
- let colCount = resp["cols"];
12864
- let rows = resp["rows"];
12865
- let colDefs = rows[0]; // The first row is always the column definition
12866
- let ricIndex = -1;
12867
- let fieldIndices = {};
12868
-
12869
- for (let i = 0; i < colCount; ++i) {
12870
- let colDef = colDefs[i];
12871
-
12872
- if (colDef["i"] === "instrument") {
12873
- ricIndex = i;
12874
- } else if (colDef["r"]) {
12875
- fieldIndices[colDef["r"]] = i;
12876
- }
12877
- }
12878
-
12879
- let rowCount = rows.length;
12880
-
12881
- for (let j = 1; j < rowCount; ++j) { // Start from 1
12882
- let row = rows[j];
12883
- let ric = row[ricIndex];
12884
- let values = {};
12885
-
12886
- for (let field in fieldIndices) {
12887
- let value = row[fieldIndices[field]];
12888
-
12889
- if (value != null) {
12890
- // Data should be merged from the backend.
12891
- // Don't override data with null value.
12892
- // TODO: Merge all the row into one single row
12893
- if (value !== null && value["f"] == null) {
12894
- if (this._quotes2) {
12895
- values[field] = value;
12896
- values[field + "_FORMATTED"] = value;
12897
- } else {
12898
- values[field] = {"formatted": value + "", "raw": value};
12899
- }
12900
- }
12901
- }
12902
- }
12903
-
12904
- let subIds = xhr.ricMap[ric];
12905
-
12906
- if (subIds) { // Only ric within the subscription can be updated
12907
- for (i = subIds.length; --i >= 0;) {
12908
- let subId = subIds[i];
12909
-
12910
- if (this._subs[subId]) { // Only update the existing subscription
12911
- // window.console.log("ADC update " + subId + ric + " with " + JSON.stringify(values));
12912
- this.setRowData(subId + ric, values); // Event is fired
12913
- }
12914
- }
12915
- }
12916
- }
12917
- };
12918
-
12919
- /**
12920
- * @private
12921
- * @param {Object} e
12922
- */
12923
- DataCache_DataCache.prototype._onADCError = function (e) {
12924
- window.console.log(e);
12925
- };
12926
-
12927
- /**
12928
- * @private
12929
- * @param {Object} e
12930
- */
12931
- DataCache_DataCache.prototype._onBatchRequestADCData = function (e) {
12932
- if (this._adcTimerId <= 0) {
12933
- return;
12934
- }
12935
-
12936
- this._adcTimerId = -1;
12937
- this._batchRequestDataCloud(this._adcRicMap, this._adcFields);
12938
- this._adcRicMap = null;
12939
- };
12940
-
12941
- /**
12942
- * @private
12943
- * @param {Object.<string, Array.<string>>} ricMap of Array of subscription object
12944
- * @param {Array.<string>} fields
12945
- * @return {XMLHttpRequest}
12946
- */
12947
- DataCache_DataCache.prototype._batchRequestDataCloud = function (ricMap, fields) {
12948
- if (!this._adcUrl) {
12949
- return null;
12950
- }
12951
-
12952
- let rics = [];
12953
-
12954
- for (let ric in ricMap) {
12955
- rics.push(ric);
12956
- }
12957
-
12958
- // Request data cloud in small multiple batches because the service cannot handle a long request
12959
- while (rics.length > 30) {
12960
- this._requestDataCloud(ricMap, fields, rics.splice(0, 30));
12961
- }
12962
-
12963
- return this._requestDataCloud(ricMap, fields, rics);
12964
- };
12965
-
12966
- /**
12967
- * @private
12968
- * @param {Object.<string, Array.<string>>} ricMap of Array of subscription object
12969
- * @param {Array.<string>} fields
12970
- * @param {Array.<string>} rics
12971
- * @return {XMLHttpRequest}
12972
- */
12973
- DataCache_DataCache.prototype._requestDataCloud = function (ricMap, fields, rics) { // Small batch
12974
- if (!rics || rics.length <= 0) {
12975
- return null;
12976
- }
12977
-
12978
- if (!fields || fields.length <= 0) {
12979
- return null;
12980
- }
12981
-
12982
- let xhr = new XMLHttpRequest();
12983
-
12984
- xhr.onload = this._onADCUpdate;
12985
- xhr.onerror = this._onADCError;
12986
- xhr.ricMap = ricMap;
12987
-
12988
- xhr.open("POST", this._adcUrl, true);
12989
- xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
12990
-
12991
- let body = 'formula=' + fields + '&identifiers=' + rics;
12992
-
12993
- // window.console.log("ADC is requested with " + body);
12994
- if (this._productId) {
12995
- body += '&productid=' + this._productId;
12996
- }
12997
-
12998
- if (this._userId) {
12999
- body += '&uuid=' + this._userId;
13000
- }
13001
-
13002
- if (this._lang) {
13003
- body += '&lang=' + this._lang;
13004
- }
13005
-
13006
- xhr.send(body);
13007
-
13008
- return xhr;
13009
- };
13010
-
13011
12897
  /**
13012
12898
  * @private
13013
12899
  * @param {string|Object.<string, *>} obj
@@ -13015,7 +12901,7 @@ DataCache_DataCache.prototype._requestDataCloud = function (ricMap, fields, rics
13015
12901
  * @param {string} newSubId
13016
12902
  * @return {Object}
13017
12903
  */
13018
- DataCache_DataCache.prototype._cloneRowData = function (obj, ric, newSubId) {
12904
+ DataCache.prototype._cloneRowData = function (obj, ric, newSubId) {
13019
12905
  let subId = (typeof obj === "string") ? obj : obj["SUB_ID"];
13020
12906
  let fields = this._rows[subId + ric];
13021
12907
 
@@ -13044,87 +12930,37 @@ DataCache_DataCache.prototype._cloneRowData = function (obj, ric, newSubId) {
13044
12930
  * @ignore
13045
12931
  * @type {!Object.<string, Object>}
13046
12932
  */
13047
- DataCache_DataCache.prototype._rows;
12933
+ DataCache.prototype._rows;
13048
12934
 
13049
12935
  /**
13050
12936
  * @private
13051
12937
  * @type {!Object.<string, Object>}
13052
12938
  */
13053
- DataCache_DataCache.prototype._subs;
12939
+ DataCache.prototype._subs;
13054
12940
 
13055
12941
  /**
13056
12942
  * @private
13057
12943
  * @type {Object}
13058
12944
  */
13059
- DataCache_DataCache.prototype._quotes2 = null;
12945
+ DataCache.prototype._quotes2 = null;
13060
12946
 
13061
12947
  /**
13062
12948
  * @private
13063
12949
  * @type {Object.<string, number>}
13064
12950
  */
13065
- DataCache_DataCache.prototype._staticFields = null;
13066
-
13067
- //#region ADC
13068
- /**
13069
- * @private
13070
- * @type {Array.<string>}
13071
- */
13072
- DataCache_DataCache.prototype._adcFields = null;
13073
-
13074
- /**
13075
- * @private
13076
- * @type {Object.<string, number>}
13077
- */
13078
- DataCache_DataCache.prototype._adcRefMap = null;
13079
-
13080
- /**
13081
- * @private
13082
- * @type {number}
13083
- */
13084
- DataCache_DataCache.prototype._adcTimerId = -1;
13085
-
13086
- /**
13087
- * @private
13088
- * @description ricMap of Array of subscription object
13089
- * @type {Object.<string, Array.<string>>}
13090
- */
13091
- DataCache_DataCache.prototype._adcRicMap = null;
13092
-
13093
- /**
13094
- * @private
13095
- * @type {string}
13096
- */
13097
- DataCache_DataCache.prototype._adcUrl = "/datacloud/rest/select";
13098
-
13099
- /**
13100
- * @private
13101
- * @type {string}
13102
- */
13103
- DataCache_DataCache.prototype._userId = "";
13104
-
13105
- /**
13106
- * @private
13107
- * @type {string}
13108
- */
13109
- DataCache_DataCache.prototype._productId = "";
12951
+ DataCache.prototype._staticFields = null;
13110
12952
 
13111
12953
  /** @protected
13112
12954
  * @ignore
13113
12955
  * @type {boolean}
13114
12956
  */
13115
- DataCache_DataCache.prototype._composing = false;
12957
+ DataCache.prototype._composing = false;
13116
12958
 
13117
- /** @protected
13118
- * @ignore
13119
- * @type {string}
13120
- */
13121
- DataCache_DataCache.prototype._lang = "";
13122
- //#endregion ADC
13123
12959
  //#endregion Private
13124
12960
 
13125
- DataCache_DataCache._proto = DataCache_DataCache.prototype;
12961
+ DataCache._proto = DataCache.prototype;
13126
12962
 
13127
- /* harmony default export */ const data_DataCache = (DataCache_DataCache);
12963
+ /* harmony default export */ const data_DataCache = (DataCache);
13128
12964
 
13129
12965
 
13130
12966
  ;// CONCATENATED MODULE: ./node_modules/tr-grid-util/es6/EventDispatcher.js
@@ -17175,6 +17011,7 @@ ColumnStats.prototype._refs;
17175
17011
  // eslint-disable-line
17176
17012
  // eslint-disable-line
17177
17013
  // eslint-disable-line
17014
+ // eslint-disable-line
17178
17015
 
17179
17016
  /** @event WrappedView#dataChanged
17180
17017
  * @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.
@@ -18452,7 +18289,7 @@ WrappedView.prototype.wrapView = function (wrapSize) {
18452
18289
  * @see {@link DataCache#dump}
18453
18290
  */
18454
18291
  WrappedView.prototype.dump = function(opt_options) {
18455
- return DataCache.constructTable(this.getMultipleRowData(this._rids), opt_options, this._rids);
18292
+ return data_DataCache.constructTable(this.getMultipleRowData(this._rids), opt_options, this._rids);
18456
18293
  };
18457
18294
  /** Print current data and structure to console panel
18458
18295
  * @public
@@ -24133,24 +23970,10 @@ VScrollbar._proto = VScrollbar.prototype;
24133
23970
 
24134
23971
 
24135
23972
 
23973
+
24136
23974
  /* eslint-enable */
24137
23975
 
24138
23976
 
24139
- /** @private
24140
- * @function
24141
- * @param {number} idx
24142
- * @param {number} limit
24143
- * @return {number}
24144
- */
24145
- let _validateIndex = function(idx, limit) {
24146
- if(idx > limit) {
24147
- return limit;
24148
- } else if(idx < 0) {
24149
- return 0;
24150
- }
24151
- return idx;
24152
- };
24153
-
24154
23977
  /** @constructor
24155
23978
  * @ignore
24156
23979
  * @param {Object=} options
@@ -24235,26 +24058,10 @@ VirtualizedLayoutGrid.prototype._rowBoundCache = null;
24235
24058
  * @private
24236
24059
  */
24237
24060
  VirtualizedLayoutGrid.prototype._rowSelDirty = false;
24238
- /** @type {Element}
24239
- * @private
24240
- */
24241
- VirtualizedLayoutGrid.prototype._cellBound = null;
24242
- /** @type {number}
24243
- * @private
24244
- */
24245
- VirtualizedLayoutGrid.prototype._cbLftIdx = 0;
24246
- /** @type {number}
24247
- * @private
24248
- */
24249
- VirtualizedLayoutGrid.prototype._cbRgtIdx = 0;
24250
- /** @type {number}
24251
- * @private
24252
- */
24253
- VirtualizedLayoutGrid.prototype._cbTopIdx = 0;
24254
- /** @type {number}
24061
+ /** @type {Object}
24255
24062
  * @private
24256
24063
  */
24257
- VirtualizedLayoutGrid.prototype._cbBtmIdx = 0;
24064
+ VirtualizedLayoutGrid.prototype._cellBoundPainter = null;
24258
24065
  /** @type {number}
24259
24066
  * @private
24260
24067
  */
@@ -24307,6 +24114,9 @@ VirtualizedLayoutGrid.prototype.dispose = function () {
24307
24114
  clearTimeout(this._rowBoundTimer);
24308
24115
  this._rowBoundTimer = 0;
24309
24116
  }
24117
+ if(this._cellBoundPainter) {
24118
+ this._cellBoundPainter.dispose();
24119
+ }
24310
24120
  };
24311
24121
  /** @override */
24312
24122
  VirtualizedLayoutGrid.prototype.setWidth = function (px) {
@@ -25134,26 +24944,20 @@ VirtualizedLayoutGrid.prototype.selectCell = function (colIndex, rowIndex, selec
25134
24944
  * @param {number} height
25135
24945
  */
25136
24946
  VirtualizedLayoutGrid.prototype.setCellBounds = function (colIndex, rowIndex, width, height) {
25137
- let cellBound = this._cellBound;
25138
- if(!cellBound) {
25139
- cellBound = this._cellBound = document.createElement("div");
25140
- cellBound.className = "selection-bound";
24947
+ let boundLayer = this._initBoundLayer();
24948
+ let cellBoundPainter = this._cellBoundPainter;
24949
+ if(!cellBoundPainter) {
24950
+ cellBoundPainter = this._cellBoundPainter = new util_CellBoundPainter({
24951
+ boundLayer: boundLayer,
24952
+ layoutX: this.getHorizontalLayout(),
24953
+ layoutY: this._layoutY,
24954
+ hscrollbar: this._hscrollbar,
24955
+ calculateColumnBounds: this.calculateColumnBounds.bind(this)
24956
+ });
25141
24957
  }
25142
- this._initBoundLayer();
25143
-
25144
- // Validate inputs
25145
- let rgtIndex = colIndex + width; // Exclusive
25146
- let btmIndex = rowIndex + height; // Exclusive
25147
24958
 
25148
24959
  let colCount = this.getColumnCount();
25149
- let rowCount = this._layoutY.getLaneCount();
25150
-
25151
- this._cbLftIdx = _validateIndex(colIndex, colCount);
25152
- this._cbRgtIdx = _validateIndex(rgtIndex, colCount);
25153
- this._cbTopIdx = _validateIndex(rowIndex, rowCount);
25154
- this._cbBtmIdx = _validateIndex(btmIndex, rowCount);
25155
-
25156
- this._updateCellBounds();
24960
+ cellBoundPainter.setCellBounds(colIndex, rowIndex, width, height, colCount);
25157
24961
  };
25158
24962
  /** @public
25159
24963
  * @ignore
@@ -25172,59 +24976,6 @@ VirtualizedLayoutGrid.prototype.getHorizontalLayout = function () {
25172
24976
  VirtualizedLayoutGrid.prototype.calculateColumnBounds = function (lftIdx, rgtIdx, outPositions, outNoBorders) {
25173
24977
  this._grid.calculateColumnBounds(lftIdx, rgtIdx, outPositions, outNoBorders);
25174
24978
  };
25175
- /** @private
25176
- */
25177
- VirtualizedLayoutGrid.prototype._updateCellBounds = function () {
25178
- let cellBound = this._cellBound;
25179
- if(!cellBound) {
25180
- return;
25181
- }
25182
-
25183
- let layoutX = this.getHorizontalLayout();
25184
- let layoutY = this._layoutY;
25185
- let lftIdx = this._cbLftIdx;
25186
- let rgtIdx = this._cbRgtIdx; // Exclusive
25187
- let topIdx = this._cbTopIdx;
25188
- let btmIdx = this._cbBtmIdx; // Exclusive
25189
- let lftPx, rgtPx, topPx, btmPx;
25190
- lftPx = rgtPx = topPx = btmPx = 0;
25191
- if(lftIdx < rgtIdx && topIdx < btmIdx) {
25192
- lftPx = layoutX.getLaneStart(lftIdx);
25193
- rgtPx = layoutX.getLaneEnd(rgtIdx - 1);
25194
- topPx = layoutY.getLaneStart(topIdx);
25195
- btmPx = layoutY.getLaneEnd(btmIdx - 1);
25196
- }
25197
-
25198
- let width = rgtPx - lftPx;
25199
- let height = btmPx - topPx;
25200
- let noBorders = [false, false];
25201
- if(width > 0 && height > 0 && this._hscrollbar) {
25202
- let positions = [0, 0];
25203
- this.calculateColumnBounds(lftIdx, rgtIdx - 1, positions, noBorders);
25204
- lftPx = positions[0];
25205
- rgtPx = positions[1];
25206
- width = rgtPx - lftPx;
25207
- }
25208
-
25209
- if(width > 0) {
25210
- cellBound.style.left = lftPx + "px";
25211
- cellBound.style.top = topPx + "px";
25212
- cellBound.style.width = width + "px";
25213
- cellBound.style.height = height + "px";
25214
-
25215
- cellBound.classList.toggle("no-left-bound", noBorders[0]);
25216
- cellBound.classList.toggle("no-right-bound", noBorders[1]);
25217
-
25218
- if(this._boundLayer) {
25219
- this._boundLayer.appendChild(cellBound);
25220
- }
25221
- } else {
25222
- let pn = cellBound.parentNode;
25223
- if(pn) {
25224
- pn.removeChild(cellBound);
25225
- }
25226
- }
25227
- };
25228
24979
  /** @public
25229
24980
  * @ignore
25230
24981
  * @param {!Array.<Array>} posAry Left and right bound positions in pixel
@@ -25242,6 +24993,7 @@ VirtualizedLayoutGrid.prototype.updateColumnSeparators = function () {
25242
24993
  this._grid.updateColumnSeparators();
25243
24994
  };
25244
24995
  /** @private
24996
+ * @return {Element}
25245
24997
  */
25246
24998
  VirtualizedLayoutGrid.prototype._initBoundLayer = function () {
25247
24999
  let boundLayer = this._boundLayer;
@@ -25250,6 +25002,7 @@ VirtualizedLayoutGrid.prototype._initBoundLayer = function () {
25250
25002
  boundLayer.className = "cover-layer";
25251
25003
  this._element.appendChild(boundLayer);
25252
25004
  }
25005
+ return boundLayer;
25253
25006
  };
25254
25007
  /** @private
25255
25008
  */
@@ -25262,7 +25015,11 @@ VirtualizedLayoutGrid.prototype._requestUpdatingRowBounds = function () {
25262
25015
  */
25263
25016
  VirtualizedLayoutGrid.prototype._updateRowBounds = function () {
25264
25017
  this._rowBoundTimer = 0;
25265
- this._updateCellBounds();
25018
+
25019
+ let cellBoundPainter = this._cellBoundPainter;
25020
+ if(cellBoundPainter) {
25021
+ cellBoundPainter.updateCellBounds();
25022
+ }
25266
25023
 
25267
25024
  if(!this._rowSelDirty) {
25268
25025
  return;
@@ -26028,7 +25785,7 @@ Core_Core.prototype._hasPendingRowChange = false;
26028
25785
  * @return {string}
26029
25786
  */
26030
25787
  Core_Core.getVersion = function () {
26031
- return "5.1.103";
25788
+ return "5.1.105";
26032
25789
  };
26033
25790
  /** {@link ElementWrapper#dispose}
26034
25791
  * @override