@syncfusion/ej2-pivotview 20.1.58 → 20.2.38

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.
Files changed (149) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/ej2-pivotview.umd.min.js +2 -2
  3. package/dist/ej2-pivotview.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-pivotview.es2015.js +530 -235
  5. package/dist/es6/ej2-pivotview.es2015.js.map +1 -1
  6. package/dist/es6/ej2-pivotview.es5.js +544 -246
  7. package/dist/es6/ej2-pivotview.es5.js.map +1 -1
  8. package/dist/global/ej2-pivotview.min.js +2 -2
  9. package/dist/global/ej2-pivotview.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/helpers/e2e/index.js +9 -7
  12. package/helpers/e2e/pivotfieldlist.js +47 -31
  13. package/helpers/e2e/pivotview.js +68 -52
  14. package/package.json +22 -22
  15. package/src/base/engine.d.ts +1 -1
  16. package/src/base/engine.js +129 -82
  17. package/src/base/olap/engine.js +2 -2
  18. package/src/base/olap/mdx-query.js +1 -1
  19. package/src/base/util.js +2 -2
  20. package/src/common/actions/event-base.d.ts +4 -2
  21. package/src/common/actions/event-base.js +45 -10
  22. package/src/common/actions/field-list.js +2 -1
  23. package/src/common/actions/pivot-button.js +4 -4
  24. package/src/common/base/constant.d.ts +8 -0
  25. package/src/common/base/constant.js +8 -0
  26. package/src/common/base/css-constant.d.ts +16 -0
  27. package/src/common/base/css-constant.js +16 -0
  28. package/src/common/calculatedfield/calculated-field.js +24 -15
  29. package/src/common/conditionalformatting/conditional-formatting.js +5 -5
  30. package/src/common/grouping-bar/grouping-bar.js +1 -1
  31. package/src/common/popups/aggregate-menu.js +4 -3
  32. package/src/common/popups/drillthrough-dialog.js +10 -10
  33. package/src/common/popups/error-dialog.js +1 -1
  34. package/src/common/popups/filter-dialog.js +25 -14
  35. package/src/common/popups/formatting-dialog.js +2 -2
  36. package/src/common/popups/grouping.js +14 -7
  37. package/src/common/popups/toolbar.d.ts +1 -0
  38. package/src/common/popups/toolbar.js +26 -16
  39. package/src/pivotchart/base/pivotchart.js +3 -0
  40. package/src/pivotfieldlist/base/field-list-model.d.ts +5 -0
  41. package/src/pivotfieldlist/base/field-list.d.ts +4 -0
  42. package/src/pivotfieldlist/base/field-list.js +11 -6
  43. package/src/pivotfieldlist/renderer/dialog-renderer.js +17 -9
  44. package/src/pivotfieldlist/renderer/tree-renderer.d.ts +4 -0
  45. package/src/pivotfieldlist/renderer/tree-renderer.js +102 -8
  46. package/src/pivotview/actions/drill-through.js +2 -2
  47. package/src/pivotview/actions/virtualscroll.d.ts +1 -0
  48. package/src/pivotview/actions/virtualscroll.js +59 -30
  49. package/src/pivotview/base/pivotview-model.d.ts +7 -0
  50. package/src/pivotview/base/pivotview.d.ts +6 -0
  51. package/src/pivotview/base/pivotview.js +25 -12
  52. package/src/pivotview/model/chartsettings-model.d.ts +2 -2
  53. package/src/pivotview/model/chartsettings.d.ts +2 -2
  54. package/src/pivotview/model/chartsettings.js +2 -2
  55. package/src/pivotview/renderer/render.js +5 -2
  56. package/styles/bootstrap-dark.css +165 -32
  57. package/styles/bootstrap.css +165 -32
  58. package/styles/bootstrap4.css +166 -36
  59. package/styles/bootstrap5-dark.css +209 -45
  60. package/styles/bootstrap5.css +209 -45
  61. package/styles/fabric-dark.css +165 -32
  62. package/styles/fabric.css +165 -32
  63. package/styles/fluent-dark.css +183 -49
  64. package/styles/fluent.css +183 -49
  65. package/styles/highcontrast-light.css +165 -32
  66. package/styles/highcontrast.css +165 -32
  67. package/styles/material-dark.css +165 -32
  68. package/styles/material.css +165 -32
  69. package/styles/pivotfieldlist/_bootstrap-dark-definition.scss +10 -0
  70. package/styles/pivotfieldlist/_bootstrap-definition.scss +10 -0
  71. package/styles/pivotfieldlist/_bootstrap4-definition.scss +11 -1
  72. package/styles/pivotfieldlist/_bootstrap5-definition.scss +15 -6
  73. package/styles/pivotfieldlist/_fabric-dark-definition.scss +10 -1
  74. package/styles/pivotfieldlist/_fabric-definition.scss +10 -0
  75. package/styles/pivotfieldlist/_fluent-definition.scss +18 -8
  76. package/styles/pivotfieldlist/_fusionnew-definition.scss +189 -0
  77. package/styles/pivotfieldlist/_highcontrast-definition.scss +10 -0
  78. package/styles/pivotfieldlist/_highcontrast-light-definition.scss +10 -0
  79. package/styles/pivotfieldlist/_layout.scss +30 -14
  80. package/styles/pivotfieldlist/_material-dark-definition.scss +10 -0
  81. package/styles/pivotfieldlist/_material-definition.scss +10 -0
  82. package/styles/pivotfieldlist/_material3-definition.scss +190 -0
  83. package/styles/pivotfieldlist/_tailwind-definition.scss +19 -10
  84. package/styles/pivotfieldlist/_theme.scss +142 -7
  85. package/styles/pivotfieldlist/bootstrap-dark.css +146 -10
  86. package/styles/pivotfieldlist/bootstrap.css +146 -10
  87. package/styles/pivotfieldlist/bootstrap4.css +147 -11
  88. package/styles/pivotfieldlist/bootstrap5-dark.css +151 -15
  89. package/styles/pivotfieldlist/bootstrap5.css +151 -15
  90. package/styles/pivotfieldlist/fabric-dark.css +146 -10
  91. package/styles/pivotfieldlist/fabric.css +146 -10
  92. package/styles/pivotfieldlist/fluent-dark.css +154 -18
  93. package/styles/pivotfieldlist/fluent.css +154 -18
  94. package/styles/pivotfieldlist/highcontrast-light.css +146 -10
  95. package/styles/pivotfieldlist/highcontrast.css +146 -10
  96. package/styles/pivotfieldlist/icons/_bootstrap-dark.scss +5 -0
  97. package/styles/pivotfieldlist/icons/_bootstrap.scss +5 -0
  98. package/styles/pivotfieldlist/icons/_bootstrap4.scss +5 -0
  99. package/styles/pivotfieldlist/icons/_bootstrap5.scss +5 -0
  100. package/styles/pivotfieldlist/icons/_fabric-dark.scss +5 -0
  101. package/styles/pivotfieldlist/icons/_fabric.scss +5 -0
  102. package/styles/pivotfieldlist/icons/_fluent.scss +5 -0
  103. package/styles/pivotfieldlist/icons/_fusionnew.scss +352 -0
  104. package/styles/pivotfieldlist/icons/_highcontrast-light.scss +5 -0
  105. package/styles/pivotfieldlist/icons/_highcontrast.scss +5 -0
  106. package/styles/pivotfieldlist/icons/_material-dark.scss +5 -0
  107. package/styles/pivotfieldlist/icons/_material.scss +4 -0
  108. package/styles/pivotfieldlist/icons/_material3.scss +352 -0
  109. package/styles/pivotfieldlist/icons/_tailwind-dark.scss +4 -0
  110. package/styles/pivotfieldlist/icons/_tailwind.scss +4 -0
  111. package/styles/pivotfieldlist/material-dark.css +146 -10
  112. package/styles/pivotfieldlist/material.css +146 -10
  113. package/styles/pivotfieldlist/tailwind-dark.css +155 -21
  114. package/styles/pivotfieldlist/tailwind.css +156 -21
  115. package/styles/pivotview/_bootstrap-dark-definition.scss +4 -2
  116. package/styles/pivotview/_bootstrap-definition.scss +4 -2
  117. package/styles/pivotview/_bootstrap4-definition.scss +4 -2
  118. package/styles/pivotview/_bootstrap5-definition.scss +9 -8
  119. package/styles/pivotview/_fabric-dark-definition.scss +4 -1
  120. package/styles/pivotview/_fabric-definition.scss +4 -2
  121. package/styles/pivotview/_fluent-definition.scss +11 -9
  122. package/styles/pivotview/_fusionnew-definition.scss +131 -0
  123. package/styles/pivotview/_highcontrast-definition.scss +4 -2
  124. package/styles/pivotview/_highcontrast-light-definition.scss +4 -2
  125. package/styles/pivotview/_layout.scss +3 -17
  126. package/styles/pivotview/_material-dark-definition.scss +4 -1
  127. package/styles/pivotview/_material-definition.scss +4 -2
  128. package/styles/pivotview/_material3-definition.scss +131 -0
  129. package/styles/pivotview/_tailwind-definition.scss +8 -5
  130. package/styles/pivotview/_theme.scss +47 -27
  131. package/styles/pivotview/bootstrap-dark.css +19 -22
  132. package/styles/pivotview/bootstrap.css +19 -22
  133. package/styles/pivotview/bootstrap4.css +19 -25
  134. package/styles/pivotview/bootstrap5-dark.css +58 -30
  135. package/styles/pivotview/bootstrap5.css +58 -30
  136. package/styles/pivotview/fabric-dark.css +19 -22
  137. package/styles/pivotview/fabric.css +19 -22
  138. package/styles/pivotview/fluent-dark.css +29 -31
  139. package/styles/pivotview/fluent.css +29 -31
  140. package/styles/pivotview/highcontrast-light.css +19 -22
  141. package/styles/pivotview/highcontrast.css +19 -22
  142. package/styles/pivotview/icons/_fusionnew.scss +183 -0
  143. package/styles/pivotview/icons/_material3.scss +183 -0
  144. package/styles/pivotview/material-dark.css +19 -22
  145. package/styles/pivotview/material.css +19 -22
  146. package/styles/pivotview/tailwind-dark.css +27 -31
  147. package/styles/pivotview/tailwind.css +27 -31
  148. package/styles/tailwind-dark.css +182 -52
  149. package/styles/tailwind.css +183 -52
@@ -1,6 +1,8 @@
1
1
  import { EventHandler, setStyleAttribute, Browser } from '@syncfusion/ej2-base';
2
2
  import { contentReady } from '../../common/base/constant';
3
3
  import * as cls from '../../common/base/css-constant';
4
+ import { PivotUtil } from '../../base/util';
5
+ import * as events from '../../common/base/constant';
4
6
  /**
5
7
  * `VirtualScroll` module is used to handle scrolling behavior.
6
8
  */
@@ -145,8 +147,12 @@ var VirtualScroll = /** @class */ (function () {
145
147
  };
146
148
  };
147
149
  VirtualScroll.prototype.update = function (mHdr, mCont, top, left, e) {
150
+ var _this = this;
148
151
  this.parent.isScrolling = true;
149
152
  var engine = this.parent.dataType === 'pivot' ? this.parent.engineModule : this.parent.olapEngineModule;
153
+ var args = {
154
+ dataSourceSettings: PivotUtil.getClonedDataSourceSettings(this.parent.dataSourceSettings)
155
+ };
150
156
  if (this.parent.pageSettings && engine.pageSettings) {
151
157
  if (this.direction === 'vertical') {
152
158
  var rowValues = this.parent.dataType === 'pivot' ?
@@ -158,25 +164,29 @@ var VirtualScroll = /** @class */ (function () {
158
164
  // this.parent.hideWaitingPopup();
159
165
  return;
160
166
  }
167
+ this.parent.actionObj.actionName = events.verticalScroll;
168
+ this.parent.actionBeginMethod();
161
169
  this.parent.showWaitingPopup();
162
170
  this.parent.scrollPosObject.vertical = section;
163
171
  engine.pageSettings.rowCurrentPage = section > 1 ? section : 1;
164
- var rowStartPos = 0;
165
- if (this.parent.dataType === 'pivot') {
166
- if (this.parent.dataSourceSettings.mode === 'Server') {
167
- this.parent.getEngine('onScroll', null, null, null, null, null, null);
172
+ var rowStartPos_1 = 0;
173
+ this.parent.trigger(events.enginePopulating, args, function (observedArgs) {
174
+ if (_this.parent.dataType === 'pivot') {
175
+ if (_this.parent.dataSourceSettings.mode === 'Server') {
176
+ _this.parent.getEngine('onScroll', null, null, null, null, null, null);
177
+ }
178
+ else {
179
+ _this.parent.engineModule.generateGridData(_this.parent.dataSourceSettings, true, _this.parent.engineModule.headerCollection);
180
+ rowStartPos_1 = _this.parent.engineModule.rowStartPos;
181
+ }
168
182
  }
169
183
  else {
170
- this.parent.engineModule.generateGridData(this.parent.dataSourceSettings, true, this.parent.engineModule.headerCollection);
171
- rowStartPos = this.parent.engineModule.rowStartPos;
184
+ _this.parent.olapEngineModule.scrollPage('scroll');
185
+ rowStartPos_1 = _this.parent.olapEngineModule.pageRowStartPos;
172
186
  }
173
- }
174
- else {
175
- this.parent.olapEngineModule.scrollPage('scroll');
176
- rowStartPos = this.parent.olapEngineModule.pageRowStartPos;
177
- }
178
- this.parent.pivotValues = engine.pivotValues;
179
- var exactPage = Math.ceil(rowStartPos / (this.parent.pageSettings.rowSize * rowValues));
187
+ _this.enginePopulatedEventMethod(engine);
188
+ });
189
+ var exactPage = Math.ceil(rowStartPos_1 / (this.parent.pageSettings.rowSize * rowValues));
180
190
  var pos = exactSize * exactPage -
181
191
  (engine.rowFirstLvl * rowValues * this.parent.gridSettings.rowHeight);
182
192
  this.parent.scrollPosObject.verticalSection = pos;
@@ -191,32 +201,51 @@ var VirtualScroll = /** @class */ (function () {
191
201
  // this.parent.hideWaitingPopup();
192
202
  return;
193
203
  }
204
+ this.parent.actionObj.actionName = events.horizontalScroll;
205
+ this.parent.actionBeginMethod();
194
206
  this.parent.showWaitingPopup();
195
- var pivot = this.parent;
196
- pivot.scrollPosObject.horizontal = section;
207
+ var pivot_1 = this.parent;
208
+ pivot_1.scrollPosObject.horizontal = section;
197
209
  engine.pageSettings.columnCurrentPage = section > 1 ? section : 1;
198
- var colStartPos = 0;
199
- if (pivot.dataType === 'pivot') {
200
- if (this.parent.dataSourceSettings.mode === 'Server') {
201
- this.parent.getEngine('onScroll', null, null, null, null, null, null);
210
+ var colStartPos_1 = 0;
211
+ this.parent.trigger(events.enginePopulating, args, function (observedArgs) {
212
+ if (pivot_1.dataType === 'pivot') {
213
+ if (_this.parent.dataSourceSettings.mode === 'Server') {
214
+ _this.parent.getEngine('onScroll', null, null, null, null, null, null);
215
+ }
216
+ else {
217
+ pivot_1.engineModule.generateGridData(pivot_1.dataSourceSettings, true, pivot_1.engineModule.headerCollection);
218
+ colStartPos_1 = pivot_1.engineModule.colStartPos;
219
+ }
202
220
  }
203
221
  else {
204
- pivot.engineModule.generateGridData(pivot.dataSourceSettings, true, pivot.engineModule.headerCollection);
205
- colStartPos = pivot.engineModule.colStartPos;
222
+ pivot_1.olapEngineModule.scrollPage('scroll');
223
+ colStartPos_1 = pivot_1.olapEngineModule.pageColStartPos;
206
224
  }
207
- }
208
- else {
209
- pivot.olapEngineModule.scrollPage('scroll');
210
- colStartPos = pivot.olapEngineModule.pageColStartPos;
211
- }
212
- pivot.pivotValues = engine.pivotValues;
213
- var exactPage = Math.ceil(colStartPos / (pivot.pageSettings.columnSize * colValues));
225
+ _this.enginePopulatedEventMethod(engine);
226
+ });
227
+ var exactPage = Math.ceil(colStartPos_1 / (pivot_1.pageSettings.columnSize * colValues));
214
228
  var pos = exactSize * exactPage - (engine.colFirstLvl *
215
- colValues * pivot.gridSettings.columnWidth);
216
- pivot.scrollPosObject.horizontalSection = pos;
229
+ colValues * pivot_1.gridSettings.columnWidth);
230
+ pivot_1.scrollPosObject.horizontalSection = pos;
231
+ }
232
+ this.parent.actionObj.actionName = this.parent.getActionCompleteName();
233
+ if (this.parent.actionObj.actionName) {
234
+ this.parent.actionCompleteMethod();
217
235
  }
218
236
  }
219
237
  };
238
+ VirtualScroll.prototype.enginePopulatedEventMethod = function (engine, control) {
239
+ var _this = this;
240
+ var pivot = control ? control : this.parent;
241
+ var eventArgs = {
242
+ dataSourceSettings: pivot.dataSourceSettings,
243
+ pivotValues: pivot.pivotValues
244
+ };
245
+ pivot.trigger(events.enginePopulated, eventArgs, function (observedArgs) {
246
+ _this.parent.pivotValues = engine.pivotValues;
247
+ });
248
+ };
220
249
  VirtualScroll.prototype.setPageXY = function () {
221
250
  var _this = this;
222
251
  return function (e) {
@@ -565,6 +565,13 @@ export interface PivotViewModel extends ComponentModel{
565
565
  */
566
566
  allowCalculatedField?: boolean;
567
567
 
568
+ /**
569
+ * It enables the search option in the field list UI, which can be used to search specific fields at runtime.
570
+ * > This option is only available when the pivot table's built-in popup field list is enabled using the `showFieldList` property.
571
+ * @default false
572
+ */
573
+ enableFieldSearching?: boolean;
574
+
568
575
  /**
569
576
  * Allows you to sort individual value field and its aggregated values either in row or column axis to ascending or descending order.
570
577
  * You can sort the values by clicking directly on the value field header positioned either in row or column axis of the pivot table.
@@ -799,6 +799,12 @@ export declare class PivotView extends Component<HTMLElement> implements INotify
799
799
  * @default false
800
800
  */
801
801
  allowCalculatedField: boolean;
802
+ /**
803
+ * It enables the search option in the field list UI, which can be used to search specific fields at runtime.
804
+ * > This option is only available when the pivot table's built-in popup field list is enabled using the `showFieldList` property.
805
+ * @default false
806
+ */
807
+ enableFieldSearching: boolean;
802
808
  /**
803
809
  * Allows you to sort individual value field and its aggregated values either in row or column axis to ascending or descending order.
804
810
  * You can sort the values by clicking directly on the value field header positioned either in row or column axis of the pivot table.
@@ -689,8 +689,8 @@ var PivotView = /** @class */ (function (_super) {
689
689
  if (this.showTooltip) {
690
690
  if (this.tooltipTemplate) {
691
691
  this.tooltip = new Tooltip({
692
- target: 'td.e-valuescontent' + (this.cssClass ? (' ' + this.cssClass) : ''),
693
- cssClass: 'e-pivottooltiptemplate',
692
+ target: 'td.e-valuescontent',
693
+ cssClass: 'e-pivottooltiptemplate' + (this.cssClass ? (' ' + this.cssClass) : ''),
694
694
  showTipPointer: false,
695
695
  position: 'BottomRight',
696
696
  mouseTrail: true,
@@ -702,7 +702,8 @@ var PivotView = /** @class */ (function (_super) {
702
702
  }
703
703
  else {
704
704
  this.tooltip = new Tooltip({
705
- target: 'td.e-valuescontent' + (this.cssClass ? (' ' + this.cssClass) : ''),
705
+ target: 'td.e-valuescontent',
706
+ cssClass: this.cssClass,
706
707
  showTipPointer: false,
707
708
  position: 'BottomRight',
708
709
  mouseTrail: true,
@@ -1216,10 +1217,10 @@ var PivotView = /** @class */ (function (_super) {
1216
1217
  this.cellTemplateFn = this.templateParser(this.cellTemplate);
1217
1218
  this.tooltipTemplateFn = this.templateParser(this.tooltipTemplate);
1218
1219
  if (this.spinnerTemplate) {
1219
- createSpinner({ target: this.element, template: this.spinnerTemplate }, this.createElement);
1220
+ createSpinner({ target: this.element, template: this.spinnerTemplate, cssClass: this.cssClass ? this.cssClass : undefined }, this.createElement);
1220
1221
  }
1221
1222
  else {
1222
- createSpinner({ target: this.element }, this.createElement);
1223
+ createSpinner({ target: this.element, cssClass: this.cssClass ? this.cssClass : undefined }, this.createElement);
1223
1224
  }
1224
1225
  var loadArgs = {
1225
1226
  dataSourceSettings: this.dataSourceSettings,
@@ -1629,6 +1630,8 @@ var PivotView = /** @class */ (function (_super) {
1629
1630
  this.pivotFieldListModule.axisFieldModule.render();
1630
1631
  }
1631
1632
  break;
1633
+ case 'enableFieldSearching':
1634
+ this.pivotFieldListModule.enableFieldSearching = this.enableFieldSearching;
1632
1635
  }
1633
1636
  }
1634
1637
  };
@@ -1887,7 +1890,7 @@ var PivotView = /** @class */ (function (_super) {
1887
1890
  }
1888
1891
  }
1889
1892
  else {
1890
- pivot.olapEngineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.getHeaderSortInfo.bind(pivot));
1893
+ pivot.olapEngineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.onHeadersSort ? pivot.getHeaderSortInfo.bind(pivot) : undefined);
1891
1894
  }
1892
1895
  pivot.allowServerDataBinding = false;
1893
1896
  pivot.setProperties({ pivotValues: pivot.olapEngineModule.pivotValues }, true);
@@ -1928,7 +1931,7 @@ var PivotView = /** @class */ (function (_super) {
1928
1931
  pivot.lastFilterInfo = {};
1929
1932
  }
1930
1933
  else {
1931
- pivot.engineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.getValueCellInfo.bind(pivot), pivot.getHeaderSortInfo.bind(pivot));
1934
+ pivot.engineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.aggregateCellInfo ? pivot.getValueCellInfo.bind(pivot) : undefined, pivot.onHeadersSort ? pivot.getHeaderSortInfo.bind(pivot) : undefined);
1932
1935
  pivot.allowServerDataBinding = false;
1933
1936
  pivot.setProperties({ pivotValues: pivot.engineModule.pivotValues }, true);
1934
1937
  /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
@@ -2771,6 +2774,9 @@ var PivotView = /** @class */ (function (_super) {
2771
2774
  this.lastCellClicked = e.target;
2772
2775
  }
2773
2776
  var target = e.target;
2777
+ if (closest(target, '.' + cls.PIVOT_BUTTON_CLASS)) {
2778
+ return;
2779
+ }
2774
2780
  var ele = null;
2775
2781
  var axis = (target.parentElement.classList.contains(cls.ROWSHEADER) || target.classList.contains(cls.ROWSHEADER)) ? 'row' : 'column';
2776
2782
  ele = axis === 'column' ? closest(target, 'th') : closest(target, 'td');
@@ -3204,6 +3210,9 @@ var PivotView = /** @class */ (function (_super) {
3204
3210
  _this_1.getSelectedCellsPos();
3205
3211
  });
3206
3212
  }
3213
+ else {
3214
+ this.clearSelection(null, e, null, null);
3215
+ }
3207
3216
  };
3208
3217
  PivotView.prototype.rowDeselect = function (ele, e, rowIndex, mode, observedArgs) {
3209
3218
  if (!e.shiftKey && !e.ctrlKey && this.gridSettings.selectionSettings.mode !== 'Both' || this.gridSettings.selectionSettings.type === 'Single') {
@@ -3249,7 +3258,7 @@ var PivotView = /** @class */ (function (_super) {
3249
3258
  PivotView.prototype.clearSelection = function (ele, e, colIndex, rowIndex) {
3250
3259
  if ((!e.shiftKey && !e.ctrlKey) || this.gridSettings.selectionSettings.type === 'Single') {
3251
3260
  if (this.gridSettings.selectionSettings.mode === 'Cell') {
3252
- if (ele.classList.contains(cls.COLUMNSHEADER)) {
3261
+ if (ele && ele.classList.contains(cls.COLUMNSHEADER)) {
3253
3262
  removeClass(this.element.querySelectorAll(('.' + cls.ROW_CELL_CLASS + '.') + cls.CELL_SELECTED_BGCOLOR), cls.CELL_SELECTED_BGCOLOR);
3254
3263
  }
3255
3264
  else {
@@ -3257,7 +3266,7 @@ var PivotView = /** @class */ (function (_super) {
3257
3266
  }
3258
3267
  }
3259
3268
  else if (this.gridSettings.selectionSettings.mode === 'Both') {
3260
- if (ele.classList.contains(cls.ROW_CELL_CLASS)) {
3269
+ if (ele && ele.classList.contains(cls.ROW_CELL_CLASS)) {
3261
3270
  for (var _i = 0, _a = [].slice.call(this.element.querySelectorAll('.' + cls.SELECTED_BGCOLOR + ', .' + cls.CELL_SELECTED_BGCOLOR)); _i < _a.length; _i++) {
3262
3271
  var ele_2 = _a[_i];
3263
3272
  // if (Number((ele as HTMLElement).getAttribute('index')) !== rowIndex) {
@@ -3495,7 +3504,7 @@ var PivotView = /** @class */ (function (_super) {
3495
3504
  _this_1.clonedReport = _this_1.clonedReport ? _this_1.clonedReport : dataSourceSettings;
3496
3505
  }
3497
3506
  if (_this_1.dataSourceSettings.mode !== 'Server') {
3498
- _this_1.engineModule.renderEngine(_this_1.dataSourceSettings, customProperties, _this_1.getValueCellInfo.bind(_this_1), _this_1.getHeaderSortInfo.bind(_this_1));
3507
+ _this_1.engineModule.renderEngine(_this_1.dataSourceSettings, customProperties, _this_1.aggregateCellInfo ? _this_1.getValueCellInfo.bind(_this_1) : undefined, _this_1.onHeadersSort ? _this_1.getHeaderSortInfo.bind(_this_1) : undefined);
3499
3508
  }
3500
3509
  _this_1.allowServerDataBinding = false;
3501
3510
  _this_1.setProperties({ pivotValues: _this_1.engineModule.pivotValues }, true);
@@ -3506,7 +3515,7 @@ var PivotView = /** @class */ (function (_super) {
3506
3515
  else if (_this_1.dataSourceSettings.providerType === 'SSAS' && _this_1.dataType === 'olap') {
3507
3516
  customProperties.savedFieldList = _this_1.olapEngineModule.fieldList;
3508
3517
  customProperties.savedFieldListData = _this_1.olapEngineModule.fieldListData;
3509
- _this_1.olapEngineModule.renderEngine(_this_1.dataSourceSettings, customProperties, _this_1.getHeaderSortInfo.bind(_this_1));
3518
+ _this_1.olapEngineModule.renderEngine(_this_1.dataSourceSettings, customProperties, _this_1.onHeadersSort ? _this_1.getHeaderSortInfo.bind(_this_1) : undefined);
3510
3519
  _this_1.allowServerDataBinding = false;
3511
3520
  _this_1.setProperties({ pivotValues: _this_1.olapEngineModule.pivotValues }, true);
3512
3521
  delete _this_1.bulkChanges.pivotValues;
@@ -3987,7 +3996,8 @@ var PivotView = /** @class */ (function (_super) {
3987
3996
  : this.actionObj.actionName == events.removeRecord ? events.recordRemoved : (this.actionObj.actionName == events.pngExport) ? events.pngExported : (this.actionObj.actionName == events.jpegExport) ? events.jpegExported
3988
3997
  : (this.actionObj.actionName == events.svgExport) ? events.svgExported : (this.actionObj.actionName == events.pdfExport) ? events.pdfExported : (this.actionObj.actionName == events.csvExport) ? events.csvExported : (this.actionObj.actionName == events.excelExport) ? events.excelExported : this.actionObj.actionName == events.windowResize ? events.windowResized
3989
3998
  : this.actionObj.actionName == events.saveCurrentReport ? events.reportSaved : (this.actionObj.actionName == events.addNewReport) ? events.newReportAdded : (this.actionObj.actionName == events.saveAsCurrentReport) ? events.reportReSaved
3990
- : (this.actionObj.actionName == events.renameCurrentReport) ? events.reportRenamed : this.actionObj.actionName;
3999
+ : (this.actionObj.actionName == events.renameCurrentReport) ? events.reportRenamed : (this.actionObj.actionName == events.renameCurrentReport) ? events.reportRenamed : (this.actionObj.actionName == events.horizontalScroll) ? events.horizontalScrolled
4000
+ : (this.actionObj.actionName == events.verticalScroll) ? events.verticalScrolled : this.actionObj.actionName;
3991
4001
  return actionName;
3992
4002
  };
3993
4003
  /* eslint-disable-next-line */
@@ -4226,6 +4236,9 @@ var PivotView = /** @class */ (function (_super) {
4226
4236
  __decorate([
4227
4237
  Property(false)
4228
4238
  ], PivotView.prototype, "allowCalculatedField", void 0);
4239
+ __decorate([
4240
+ Property(false)
4241
+ ], PivotView.prototype, "enableFieldSearching", void 0);
4229
4242
  __decorate([
4230
4243
  Property(false)
4231
4244
  ], PivotView.prototype, "enableValueSorting", void 0);
@@ -786,7 +786,7 @@ export interface EmptyPointSettingsModel {
786
786
 
787
787
  /**
788
788
  * Allows you To customize the mode of empty points.
789
- * @default Gap
789
+ * @default Zero
790
790
  */
791
791
  mode?: EmptyPointMode | AccEmptyPointMode;
792
792
 
@@ -1522,7 +1522,7 @@ export interface PivotChartSeriesEmptyPointSettingsModel {
1522
1522
 
1523
1523
  /**
1524
1524
  * To customize the mode of empty points.
1525
- * @default Gap
1525
+ * @default Zero
1526
1526
  */
1527
1527
  mode?: EmptyPointMode | AccEmptyPointMode;
1528
1528
 
@@ -684,7 +684,7 @@ export declare class EmptyPointSettings extends ChildProperty<EmptyPointSettings
684
684
  border: PivotChartBorderModel;
685
685
  /**
686
686
  * Allows you To customize the mode of empty points.
687
- * @default Gap
687
+ * @default Zero
688
688
  */
689
689
  mode: EmptyPointMode | AccEmptyPointMode;
690
690
  }
@@ -1295,7 +1295,7 @@ export declare class PivotChartSeriesEmptyPointSettings {
1295
1295
  border: PivotChartBorderModel;
1296
1296
  /**
1297
1297
  * To customize the mode of empty points.
1298
- * @default Gap
1298
+ * @default Zero
1299
1299
  */
1300
1300
  mode: EmptyPointMode | AccEmptyPointMode;
1301
1301
  }
@@ -529,7 +529,7 @@ var EmptyPointSettings = /** @class */ (function (_super) {
529
529
  Complex({ color: 'transparent', width: 0 }, Border)
530
530
  ], EmptyPointSettings.prototype, "border", void 0);
531
531
  __decorate([
532
- Property('Gap')
532
+ Property('Zero')
533
533
  ], EmptyPointSettings.prototype, "mode", void 0);
534
534
  return EmptyPointSettings;
535
535
  }(ChildProperty));
@@ -991,7 +991,7 @@ var PivotChartSeriesEmptyPointSettings = /** @class */ (function () {
991
991
  Complex({ color: 'transparent', width: 0 }, Border)
992
992
  ], PivotChartSeriesEmptyPointSettings.prototype, "border", void 0);
993
993
  __decorate([
994
- Property('Gap')
994
+ Property('Zero')
995
995
  ], PivotChartSeriesEmptyPointSettings.prototype, "mode", void 0);
996
996
  return PivotChartSeriesEmptyPointSettings;
997
997
  }());
@@ -350,6 +350,9 @@ var Render = /** @class */ (function () {
350
350
  /* eslint-disable */
351
351
  Render.prototype.contextMenuOpen = function (args) {
352
352
  var _this = this;
353
+ if (args.element && this.parent.cssClass) {
354
+ addClass([args.element.parentElement], this.parent.cssClass);
355
+ }
353
356
  var _loop_1 = function (item) {
354
357
  var cellTarget = this_1.parent.lastCellClicked;
355
358
  var elem = null;
@@ -1925,8 +1928,8 @@ var Render = /** @class */ (function () {
1925
1928
  args.value = this.parent.exportType === 'Excel' ? null : '';
1926
1929
  }
1927
1930
  else {
1928
- var aggMatrix = this.parent.engineModule.aggregatedValueMatrix;
1929
- if (aggMatrix[pivotValue.rowIndex] && aggMatrix[pivotValue.rowIndex][pivotValue.colIndex]) {
1931
+ var aggMatrix = this.parent.dataType === 'pivot' && this.parent.engineModule ? this.parent.engineModule.aggregatedValueMatrix : undefined;
1932
+ if (aggMatrix && aggMatrix[pivotValue.rowIndex] && aggMatrix[pivotValue.rowIndex][pivotValue.colIndex]) {
1930
1933
  args.value = aggMatrix[pivotValue.rowIndex][pivotValue.colIndex];
1931
1934
  }
1932
1935
  else {