@syncfusion/ej2-pivotview 20.2.36 → 20.2.43

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 (73) hide show
  1. package/CHANGELOG.md +32 -1
  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 +383 -294
  5. package/dist/es6/ej2-pivotview.es2015.js.map +1 -1
  6. package/dist/es6/ej2-pivotview.es5.js +397 -306
  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/package.json +22 -22
  12. package/src/base/engine.js +11 -9
  13. package/src/base/olap/engine.js +2 -2
  14. package/src/common/base/constant.d.ts +10 -0
  15. package/src/common/base/constant.js +10 -0
  16. package/src/common/base/css-constant.d.ts +2 -4
  17. package/src/common/base/css-constant.js +3 -5
  18. package/src/common/base/interface.d.ts +11 -0
  19. package/src/common/calculatedfield/calculated-field.d.ts +3 -1
  20. package/src/common/calculatedfield/calculated-field.js +163 -168
  21. package/src/common/conditionalformatting/conditional-formatting.js +4 -3
  22. package/src/common/popups/grouping.js +2 -2
  23. package/src/common/popups/toolbar.js +6 -6
  24. package/src/pivotchart/base/pivotchart.js +32 -18
  25. package/src/pivotfieldlist/base/field-list.js +6 -6
  26. package/src/pivotview/actions/drill-through.js +1 -1
  27. package/src/pivotview/actions/excel-export.d.ts +1 -1
  28. package/src/pivotview/actions/excel-export.js +13 -4
  29. package/src/pivotview/actions/keyboard.js +6 -6
  30. package/src/pivotview/actions/pdf-export.d.ts +1 -1
  31. package/src/pivotview/actions/pdf-export.js +13 -2
  32. package/src/pivotview/actions/virtualscroll.d.ts +1 -0
  33. package/src/pivotview/actions/virtualscroll.js +61 -32
  34. package/src/pivotview/base/pivotview-model.d.ts +7 -2
  35. package/src/pivotview/base/pivotview.d.ts +6 -2
  36. package/src/pivotview/base/pivotview.js +41 -27
  37. package/src/pivotview/renderer/render.js +25 -15
  38. package/styles/bootstrap-dark.css +23 -21
  39. package/styles/bootstrap.css +23 -21
  40. package/styles/bootstrap4.css +23 -21
  41. package/styles/bootstrap5-dark.css +23 -21
  42. package/styles/bootstrap5.css +23 -21
  43. package/styles/fabric-dark.css +23 -21
  44. package/styles/fabric.css +23 -21
  45. package/styles/fluent-dark.css +24 -22
  46. package/styles/fluent.css +24 -22
  47. package/styles/highcontrast-light.css +23 -21
  48. package/styles/highcontrast.css +23 -21
  49. package/styles/material-dark.css +23 -21
  50. package/styles/material.css +23 -21
  51. package/styles/pivotfieldlist/_fluent-definition.scss +1 -1
  52. package/styles/pivotfieldlist/_fusionnew-definition.scss +1 -1
  53. package/styles/pivotfieldlist/_layout.scss +14 -10
  54. package/styles/pivotfieldlist/_material3-definition.scss +2 -1
  55. package/styles/pivotfieldlist/_tailwind-definition.scss +1 -1
  56. package/styles/pivotfieldlist/_theme.scss +1 -2
  57. package/styles/pivotfieldlist/bootstrap-dark.css +23 -21
  58. package/styles/pivotfieldlist/bootstrap.css +23 -21
  59. package/styles/pivotfieldlist/bootstrap4.css +23 -21
  60. package/styles/pivotfieldlist/bootstrap5-dark.css +23 -21
  61. package/styles/pivotfieldlist/bootstrap5.css +23 -21
  62. package/styles/pivotfieldlist/fabric-dark.css +23 -21
  63. package/styles/pivotfieldlist/fabric.css +23 -21
  64. package/styles/pivotfieldlist/fluent-dark.css +24 -22
  65. package/styles/pivotfieldlist/fluent.css +24 -22
  66. package/styles/pivotfieldlist/highcontrast-light.css +23 -21
  67. package/styles/pivotfieldlist/highcontrast.css +23 -21
  68. package/styles/pivotfieldlist/material-dark.css +23 -21
  69. package/styles/pivotfieldlist/material.css +23 -21
  70. package/styles/pivotfieldlist/tailwind-dark.css +24 -22
  71. package/styles/pivotfieldlist/tailwind.css +24 -22
  72. package/styles/tailwind-dark.css +24 -22
  73. package/styles/tailwind.css +24 -22
@@ -1088,12 +1088,12 @@ var Toolbar = /** @class */ (function () {
1088
1088
  });
1089
1089
  args.element.innerText = '';
1090
1090
  checkbox.appendTo('#' + this.parent.element.id + '_' + 'checkBox');
1091
- if ((['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(this.parent.chartSettings.chartSeries.type) > -1) &&
1091
+ if ((['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) > -1) &&
1092
1092
  !args.element.classList.contains(cls.MENU_DISABLE)) {
1093
1093
  args.element.classList.add(cls.MENU_DISABLE);
1094
1094
  checkbox.disabled = true;
1095
1095
  }
1096
- else if ((['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(this.parent.chartSettings.chartSeries.type) < 0) &&
1096
+ else if ((['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) < 0) &&
1097
1097
  args.element.classList.contains(cls.MENU_DISABLE)) {
1098
1098
  args.element.classList.remove(cls.MENU_DISABLE);
1099
1099
  checkbox.disabled = false;
@@ -1129,7 +1129,7 @@ var Toolbar = /** @class */ (function () {
1129
1129
  this.showLableState = chartSettings.legendSettings.visible;
1130
1130
  }
1131
1131
  else {
1132
- this.showLableState = ['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(this.parent.chartSettings.chartSeries.type) > -1 ?
1132
+ this.showLableState = ['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) > -1 ?
1133
1133
  false : true;
1134
1134
  }
1135
1135
  return this.showLableState;
@@ -1612,11 +1612,11 @@ var Toolbar = /** @class */ (function () {
1612
1612
  Toolbar.prototype.changeDropDown = function (args) {
1613
1613
  var chartSettings = JSON.parse(this.parent.getPersistData()).chartSettings;
1614
1614
  if (!(chartSettings && chartSettings.legendSettings && chartSettings.legendSettings.visible !== undefined)) {
1615
- var checked = ['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(args.value.toString()) > -1 ?
1615
+ var checked = ['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(args.value.toString()) > -1 ?
1616
1616
  false : true;
1617
1617
  getInstance(select('#' + this.parent.element.id + '_DialogShowLabel'), CheckBox).checked = checked;
1618
1618
  }
1619
- if (['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(args.value.toString()) > -1) {
1619
+ if (['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(args.value.toString()) > -1) {
1620
1620
  getInstance(select('#' + this.parent.element.id + '_DialogMultipleAxis'), CheckBox).disabled = true;
1621
1621
  getInstance(select('#' + this.parent.element.id + '_AxisModeOption'), DropDownList).enabled = false;
1622
1622
  }
@@ -1648,7 +1648,7 @@ var Toolbar = /** @class */ (function () {
1648
1648
  });
1649
1649
  checkbox1.appendTo(select('#' + this.parent.element.id + '_DialogShowLabel', this.chartTypesDialog.element));
1650
1650
  checkbox.appendTo(select('#' + this.parent.element.id + '_DialogMultipleAxis', this.chartTypesDialog.element));
1651
- if (['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(this.parent.chartSettings.chartSeries.type) > -1) {
1651
+ if (['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) > -1) {
1652
1652
  checkbox.disabled = true;
1653
1653
  getInstance(select('#' + this.parent.element.id + '_AxisModeOption'), DropDownList).enabled = false;
1654
1654
  }
@@ -47,7 +47,7 @@ var PivotChart = /** @class */ (function () {
47
47
  if (!this.parent.chart && (this.parent.element.querySelector('.e-chart') || this.parent.element.querySelector('.e-accumulationchart'))) {
48
48
  remove(select('#' + this.parent.element.id + '_chart', this.parent.element));
49
49
  }
50
- if (this.chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0) {
50
+ if (this.chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') {
51
51
  this.measureList = this.dataSourceSettings.values.map(function (item) { return item.name; });
52
52
  }
53
53
  else {
@@ -127,7 +127,7 @@ var PivotChart = /** @class */ (function () {
127
127
  this.columnGroupObject = {};
128
128
  this.accEmptyPoint = false;
129
129
  var pivotValues = this.engineModule.pivotValues;
130
- this.currentMeasure = (chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0) ? this.measureList[0] :
130
+ this.currentMeasure = (chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') ? this.measureList[0] :
131
131
  (((chartSettings.value === '' || this.dataSourceSettings.values.filter(function (item) {
132
132
  return item.name === chartSettings.value;
133
133
  }).length === 0) && this.dataSourceSettings.values.length > 0) ? this.dataSourceSettings.values[0].name : chartSettings.value);
@@ -171,7 +171,7 @@ var PivotChart = /** @class */ (function () {
171
171
  header.valueSort.levelName.toString().split(this.parent.dataSourceSettings.valueSortSettings.headerDelimiter) : undefined;
172
172
  isValidHeader = false;
173
173
  if (valueSort && valueSort[0] !== 'Grand Total') {
174
- if ((chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0) ||
174
+ if ((chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') ||
175
175
  valueSort.indexOf(measureNames[this.currentMeasure]) > -1) {
176
176
  isValidHeader = true;
177
177
  }
@@ -297,7 +297,7 @@ var PivotChart = /** @class */ (function () {
297
297
  var actualText = (this.parent.dataType === 'olap' && tupInfo && tupInfo.measureName) ?
298
298
  tupInfo.measureName : cell.actualText;
299
299
  if (!(this.parent.dataType === 'olap' && cell.isGrandSum) && !totColIndex[cell.colIndex] && cell.axis === 'value' && firstRowCell.type !== 'header' &&
300
- actualText !== '' && ((chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0) ? true : actualText === this.currentMeasure)) {
300
+ actualText !== '' && ((chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') ? true : actualText === this.currentMeasure)) {
301
301
  if (isNullOrUndefined(firstRowCell.members)) {
302
302
  firstRowCell.members = [];
303
303
  }
@@ -497,7 +497,7 @@ var PivotChart = /** @class */ (function () {
497
497
  className: cls.PIVOTCHART, id: this.parent.element.id + '_chart'
498
498
  }));
499
499
  }
500
- if (!this.chartElement && this.parent.chartSettings.enableScrollOnMultiAxis && this.parent.chartSettings.enableMultipleAxis) {
500
+ if (!this.chartElement && this.parent.chartSettings.enableScrollOnMultiAxis && this.parent.chartSettings.enableMultipleAxis && this.chartSettings.chartSeries.type !== 'Pareto') {
501
501
  this.parent.element.querySelector('.' + cls.PIVOTCHART).innerHTML = '';
502
502
  this.chartElement = this.parent.element.querySelector('.' + cls.PIVOTCHART).appendChild(createElement('div', {
503
503
  className: cls.PIVOTCHART_INNER, id: this.parent.element.id + '_chartInner',
@@ -518,7 +518,7 @@ var PivotChart = /** @class */ (function () {
518
518
  }
519
519
  var height = this.getChartHeight();
520
520
  if (this.parent.chartSettings.enableScrollOnMultiAxis && this.parent.chartSettings.enableMultipleAxis &&
521
- this.accumulationType.indexOf(type) < 0) {
521
+ this.accumulationType.indexOf(type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') {
522
522
  this.parent.element.querySelector('.' + cls.PIVOTCHART).style.height =
523
523
  (height === 'auto' ? this.getChartAutoHeight() : height) + 'px';
524
524
  this.parent.element.querySelector('.' + cls.PIVOTCHART).style.width = width + 'px';
@@ -529,7 +529,7 @@ var PivotChart = /** @class */ (function () {
529
529
  }
530
530
  if (this.parent.chart && ((this.parent.chart.getModuleName() === 'accumulationchart' &&
531
531
  this.accumulationType.indexOf(type) < 0) || (this.parent.chart.getModuleName() === 'chart' &&
532
- this.accumulationType.indexOf(type) > -1))) {
532
+ this.accumulationType.indexOf(type) > -1 && this.chartSettings.chartSeries.type !== 'Pareto'))) {
533
533
  this.parent.chart.destroy();
534
534
  if (select('#' + this.parent.element.id + '_chart', this.parent.element)) {
535
535
  select('#' + this.parent.element.id + '_chart', this.parent.element).innerHTML = '';
@@ -608,7 +608,7 @@ var PivotChart = /** @class */ (function () {
608
608
  zoomSettings: currentZoomSettings,
609
609
  axes: (type === 'Polar' || type === 'Radar') ? [] : axesWithRows.axes,
610
610
  rows: (type === 'Polar' || type === 'Radar') ? [{}] :
611
- (type === 'Bar' || type === 'StackingBar' || type === 'StackingBar100' &&
611
+ (type === 'Bar' || type === 'StackingBar' || type === 'StackingBar100' || type === 'Pareto' &&
612
612
  this.chartSettings.enableMultipleAxis) ? [{ height: '100%' }] : axesWithRows.rows,
613
613
  columns: (type === 'Polar' || type === 'Radar') ? [{}] :
614
614
  (type === 'Bar' || type === 'StackingBar' || type === 'StackingBar100' &&
@@ -618,7 +618,7 @@ var PivotChart = /** @class */ (function () {
618
618
  width: width,
619
619
  height: (this.parent.chartSettings.chartSeries.type !== 'Polar' &&
620
620
  this.parent.chartSettings.chartSeries.type !== 'Radar' && this.parent.chartSettings.enableScrollOnMultiAxis &&
621
- this.parent.chartSettings.enableMultipleAxis && this.parent.dataSourceSettings.values.length > 0) ?
621
+ this.parent.chartSettings.enableMultipleAxis && this.parent.chartSettings.chartSeries.type !== 'Pareto' && this.parent.dataSourceSettings.values.length > 0) ?
622
622
  Number(height) > (this.parent.dataSourceSettings.values.length * 235) + 100 ? isNaN(Number(height)) ?
623
623
  height.toString() : (Number(height) - 5).toString() :
624
624
  (!isNaN(Number(height)) || this.parent.dataSourceSettings.values.length > 1) ?
@@ -719,6 +719,10 @@ var PivotChart = /** @class */ (function () {
719
719
  this.parent.chart.rows = [{ height: '100%' }];
720
720
  this.parent.chart.columns = axesWithRows.columns;
721
721
  }
722
+ else if (type === 'Pareto' && this.chartSettings.enableMultipleAxis) {
723
+ this.parent.chart.rows = [{ height: '100%' }];
724
+ this.parent.chart.columns = [{ width: '100%' }];
725
+ }
722
726
  else {
723
727
  this.parent.chart.rows = axesWithRows.rows;
724
728
  this.parent.chart.columns = [{ width: '100%' }];
@@ -1122,7 +1126,7 @@ var PivotChart = /** @class */ (function () {
1122
1126
  };
1123
1127
  PivotChart.prototype.tooltipRender = function (args) {
1124
1128
  var measure = args.series.yAxisName ? (args.series.yAxisName.split('_CumulativeAxis')[0]) :
1125
- ((this.chartSettings.enableMultipleAxis && this.accumulationType.indexOf(this.chartSettings.chartSeries.type) < 0) ?
1129
+ ((this.chartSettings.enableMultipleAxis && this.accumulationType.indexOf(this.chartSettings.chartSeries.type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') ?
1126
1130
  args.series.name ? args.series.name.split(' | ')[1] : args.data.seriesName ?
1127
1131
  args.data.seriesName.split(' | ')[1] : this.currentMeasure : this.measuresNames[this.currentMeasure] ?
1128
1132
  this.measuresNames[this.currentMeasure] : this.currentMeasure);
@@ -1134,14 +1138,14 @@ var PivotChart = /** @class */ (function () {
1134
1138
  var aggregateType = this.parent.dataType === 'olap' ? '' : this.parent.localeObj.getConstant(measureField.aggregateType);
1135
1139
  var measureAggregatedName = (this.parent.dataType === 'olap' ? '' : aggregateType + ' ' +
1136
1140
  this.parent.localeObj.getConstant('of') + ' ') + measureField.caption;
1137
- var formattedText = this.accumulationType.indexOf(this.parent.chartSettings.chartSeries.type) < 0 ?
1138
- args.text.split('<b>')[1].split('</b>')[0] : this.engineModule.pivotValues[rowIndex][colIndex].formattedText;
1141
+ var formattedText = this.engineModule.pivotValues[rowIndex][colIndex].formattedText;
1139
1142
  var formatField = this.engineModule.formatFields[measureField.id];
1140
- var formattedValue = ((formatField && formatField.format && formatField.format.toLowerCase().match(/n|p|c/) !== null &&
1143
+ var valueFormat = this.engineModule.getFormattedValue(args.point.y, measureField.id, formattedText);
1144
+ var formattedValue = (formatField && formatField.format && formatField.format.toLowerCase().match(/n|p|c/) !== null &&
1141
1145
  this.chartSettings.useGroupingSeparator) ? this.parent.dataType === 'olap' ?
1142
- this.engineModule.getFormattedValue(args.point.y, measureField.id, formattedText) :
1143
- this.parent.engineModule.getFormattedValue(args.point.y, measureField.id).formattedText :
1144
- formattedText);
1146
+ valueFormat.toString() :
1147
+ valueFormat.formattedText :
1148
+ formattedText;
1145
1149
  var columnText = (args.series.name ? args.series.name.split(' | ')[0] : args.data.seriesName.split(' | ')[0]);
1146
1150
  var rowText = args.point.x;
1147
1151
  if (this.parent.tooltipTemplate && this.parent.getTooltipTemplate() !== undefined || this.chartSettings.tooltip.template) {
@@ -1194,7 +1198,7 @@ var PivotChart = /** @class */ (function () {
1194
1198
  }
1195
1199
  }
1196
1200
  if (this.parent.chartSettings.enableScrollOnMultiAxis && this.parent.chartSettings.enableMultipleAxis) {
1197
- if (['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Radar', 'Polar'].indexOf(this.parent.chartSettings.chartSeries.type) >= 0) {
1201
+ if (['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Radar', 'Polar', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) >= 0) {
1198
1202
  this.parent.element.querySelector('.' + cls.PIVOTCHART).style.overflow = 'visible';
1199
1203
  }
1200
1204
  else {
@@ -1470,6 +1474,16 @@ var PivotChart = /** @class */ (function () {
1470
1474
  args.text = '';
1471
1475
  }
1472
1476
  }
1477
+ if (args.axis.name !== 'primaryXAxis') {
1478
+ var formatField = this.engineModule.formatFields[args.axis.name];
1479
+ var valueFormat = this.engineModule.getFormattedValue(args.value, args.axis.name, args.text);
1480
+ var formattedValue = ((formatField && formatField.format && formatField.format.toLowerCase().match(/n|p|c/) !== null &&
1481
+ this.chartSettings.useGroupingSeparator) ? this.parent.dataType === 'olap' ?
1482
+ valueFormat.toString() :
1483
+ valueFormat.formattedText :
1484
+ args.value.toString());
1485
+ args.text = formattedValue;
1486
+ }
1473
1487
  this.parent.trigger(events.chartAxisLabelRender, args);
1474
1488
  };
1475
1489
  PivotChart.prototype.multiLevelLabelClick = function (args) {
@@ -1616,7 +1630,7 @@ var PivotChart = /** @class */ (function () {
1616
1630
  /* eslint-disable */
1617
1631
  /** @hidden */
1618
1632
  PivotChart.prototype.getResizedChartHeight = function () {
1619
- var height = ['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Radar', 'Polar'].indexOf(this.parent.chartSettings.chartSeries.type) < 0 &&
1633
+ var height = ['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Radar', 'Polar', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) < 0 &&
1620
1634
  this.parent.chartSettings.enableScrollOnMultiAxis && this.parent.chartSettings.enableMultipleAxis &&
1621
1635
  this.parent.dataSourceSettings.values.length > 0 ? Number(this.parent.chart.height) > (this.parent.dataSourceSettings.values.length * 235) + 100 ? /* eslint-disable-line */
1622
1636
  isNaN(Number(this.getChartHeight())) ? this.getChartHeight().toString() : (Number(this.getChartHeight()) - 5).toString() :
@@ -680,7 +680,7 @@ var PivotFieldList = /** @class */ (function (_super) {
680
680
  customProperties.enableValueSorting = _this.staticPivotGridModule ?
681
681
  _this.staticPivotGridModule.enableValueSorting : _this.enableValueSorting;
682
682
  if (_this.dataSourceSettings.mode !== 'Server') {
683
- _this.engineModule.renderEngine(_this.dataSourceSettings, customProperties, _this.getValueCellInfo.bind(_this), _this.getHeaderSortInfo.bind(_this));
683
+ _this.engineModule.renderEngine(_this.dataSourceSettings, customProperties, _this.aggregateCellInfo ? _this.getValueCellInfo.bind(_this) : undefined, _this.onHeadersSort ? _this.getHeaderSortInfo.bind(_this) : undefined);
684
684
  }
685
685
  _this.pivotFieldList = _this.engineModule.fieldList;
686
686
  var eventArgs = {
@@ -696,7 +696,7 @@ var PivotFieldList = /** @class */ (function (_super) {
696
696
  });
697
697
  }
698
698
  else if (_this.dataType === 'olap') {
699
- _this.olapEngineModule.renderEngine(_this.dataSourceSettings, _this.frameCustomProperties(_this.olapEngineModule.fieldListData, _this.olapEngineModule.fieldList), _this.getHeaderSortInfo.bind(_this));
699
+ _this.olapEngineModule.renderEngine(_this.dataSourceSettings, _this.frameCustomProperties(_this.olapEngineModule.fieldListData, _this.olapEngineModule.fieldList), _this.onHeadersSort ? _this.getHeaderSortInfo.bind(_this) : undefined);
700
700
  _this.pivotFieldList = _this.olapEngineModule.fieldList;
701
701
  var eventArgs = {
702
702
  pivotFieldList: _this.pivotFieldList,
@@ -774,10 +774,10 @@ var PivotFieldList = /** @class */ (function (_super) {
774
774
  this.fieldListSpinnerElement = this.element.querySelector('.e-pivotfieldlist-container');
775
775
  }
776
776
  if (this.spinnerTemplate) {
777
- createSpinner({ target: this.fieldListSpinnerElement, template: this.spinnerTemplate }, this.createElement);
777
+ createSpinner({ target: this.fieldListSpinnerElement, template: this.spinnerTemplate, cssClass: this.cssClass ? this.cssClass : undefined }, this.createElement);
778
778
  }
779
779
  else {
780
- createSpinner({ target: this.fieldListSpinnerElement }, this.createElement);
780
+ createSpinner({ target: this.fieldListSpinnerElement, cssClass: this.cssClass ? this.cssClass : undefined }, this.createElement);
781
781
  }
782
782
  var args;
783
783
  args = {
@@ -937,7 +937,7 @@ var PivotFieldList = /** @class */ (function (_super) {
937
937
  pivot.lastFilterInfo = {};
938
938
  }
939
939
  else {
940
- pivot.engineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.getValueCellInfo.bind(pivot), pivot.getHeaderSortInfo.bind(pivot));
940
+ pivot.engineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.aggregateCellInfo ? pivot.getValueCellInfo.bind(pivot) : undefined, pivot.onHeadersSort ? pivot.getHeaderSortInfo.bind(pivot) : undefined);
941
941
  }
942
942
  }
943
943
  }
@@ -1035,7 +1035,7 @@ var PivotFieldList = /** @class */ (function (_super) {
1035
1035
  }
1036
1036
  }
1037
1037
  else {
1038
- pivot.olapEngineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.getHeaderSortInfo.bind(pivot));
1038
+ pivot.olapEngineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.onHeadersSort ? pivot.getHeaderSortInfo.bind(pivot) : undefined);
1039
1039
  }
1040
1040
  pivot.lastSortInfo = {};
1041
1041
  pivot.lastAggregationInfo = {};
@@ -52,7 +52,7 @@ var DrillThrough = /** @class */ (function () {
52
52
  }
53
53
  if (ele) {
54
54
  if (this.parent.allowDrillThrough && ele.classList.contains('e-valuescontent') || this.parent.editSettings.allowEditing) {
55
- var colIndex = Number(ele.getAttribute('aria-colindex'));
55
+ var colIndex = Number(ele.getAttribute('data-colindex'));
56
56
  var rowIndex = Number(ele.getAttribute('index'));
57
57
  this.executeDrillThrough(this.parent.pivotValues[rowIndex][colIndex], rowIndex, colIndex, ele);
58
58
  }
@@ -26,7 +26,7 @@ export declare class ExcelExport {
26
26
  * Method to perform excel export.
27
27
  * @hidden
28
28
  */
29
- exportToExcel(type: string, exportProperties?: ExcelExportProperties): void;
29
+ exportToExcel(type: string, exportProperties?: ExcelExportProperties, isBlob?: Boolean): void;
30
30
  /**
31
31
  * To destroy the excel export module
32
32
  * @returns {void}
@@ -60,7 +60,7 @@ var ExcelExport = /** @class */ (function () {
60
60
  * Method to perform excel export.
61
61
  * @hidden
62
62
  */
63
- ExcelExport.prototype.exportToExcel = function (type, exportProperties) {
63
+ ExcelExport.prototype.exportToExcel = function (type, exportProperties, isBlob) {
64
64
  this.rows = [];
65
65
  this.actualrCnt = 0;
66
66
  var isHeaderSet = !isNullOrUndefined(exportProperties) && !isNullOrUndefined(exportProperties.header);
@@ -247,12 +247,21 @@ var ExcelExport = /** @class */ (function () {
247
247
  workSheets.push({ columns: columns, rows: this.rows });
248
248
  }
249
249
  var book = new Workbook({ worksheets: workSheets }, type === 'Excel' ? 'xlsx' : 'csv', undefined, this.parent.currencyCode);
250
- if ('.xlsx' === fileName.substring(fileName.length - 5, fileName.length) || '.csv' === fileName.substring(fileName.length - 4, fileName.length)) {
251
- book.save(fileName);
250
+ var fileExtension = fileName.split(".").pop();
251
+ var blobData;
252
+ if (!isBlob) {
253
+ book.save(fileExtension === "xlsx" || fileExtension === "csv" ?
254
+ fileName : (fileName + (type === 'Excel' ? '.xlsx' : '.csv')));
252
255
  }
253
256
  else {
254
- book.save(fileName + (type === 'Excel' ? '.xlsx' : '.csv'));
257
+ blobData = book.saveAsBlob(fileExtension === "xlsx" || type === 'Excel' ?
258
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' : 'text/csv');
255
259
  }
260
+ var exportCompleteEventArgs = {
261
+ type: type,
262
+ promise: isBlob ? blobData : null
263
+ };
264
+ this.parent.trigger(events.exportComplete, exportCompleteEventArgs);
256
265
  };
257
266
  /**
258
267
  * To destroy the excel export module
@@ -346,7 +346,7 @@ var KeyboardInteraction = /** @class */ (function () {
346
346
  if (this.parent.grid && this.parent.gridSettings.allowSelection && this.parent.gridSettings.selectionSettings.mode !== 'Row' &&
347
347
  !target.classList.contains('e-numerictextbox')) {
348
348
  var control_1 = this.parent;
349
- var colIndex_1 = Number(e.target.getAttribute('aria-colIndex'));
349
+ var colIndex_1 = Number(e.target.getAttribute('data-colindex'));
350
350
  var rowIndex_1 = Number(e.target.getAttribute('index'));
351
351
  var ele_1;
352
352
  /* eslint-disable */
@@ -356,7 +356,7 @@ var KeyboardInteraction = /** @class */ (function () {
356
356
  control_1.renderModule.rowStartPos !== rowIndex_1)) ? null : this.getParentElement(control_1, ele_1, colIndex_1, rowIndex_1 - 1);
357
357
  }
358
358
  else if (e.action === 'shiftDown' || e.action === 'downArrow') {
359
- ele_1 = control_1.element.querySelector('th[aria-colindex="' + colIndex_1 + '"][index="' + (rowIndex_1 + 1) + '"]');
359
+ ele_1 = control_1.element.querySelector('th[data-colindex="' + colIndex_1 + '"][index="' + (rowIndex_1 + 1) + '"]');
360
360
  }
361
361
  else if (e.action === 'shiftLeft' || e.action === 'leftArrow') {
362
362
  ele_1 = e.target.previousSibling;
@@ -367,7 +367,7 @@ var KeyboardInteraction = /** @class */ (function () {
367
367
  }
368
368
  if (!isNullOrUndefined(ele_1)) {
369
369
  if (control_1.gridSettings.selectionSettings.mode === 'Both' ? !ele_1.classList.contains(cls.ROW_CELL_CLASS) : true) {
370
- colIndex_1 = Number(ele_1.getAttribute('aria-colindex'));
370
+ colIndex_1 = Number(ele_1.getAttribute('data-colindex'));
371
371
  rowIndex_1 = Number(ele_1.getAttribute('index'));
372
372
  var colSpan_1 = Number(ele_1.getAttribute('aria-colspan'));
373
373
  control_1.clearSelection(ele_1, e, colIndex_1, rowIndex_1);
@@ -389,11 +389,11 @@ var KeyboardInteraction = /** @class */ (function () {
389
389
  }
390
390
  else {
391
391
  if (e.action === 'upArrow') {
392
- ele_1 = control_1.element.querySelector('[aria-colindex="' + colIndex_1 + '"][index="' + (rowIndex_1 - 1) + '"]');
392
+ ele_1 = control_1.element.querySelector('[data-colindex="' + colIndex_1 + '"][index="' + (rowIndex_1 - 1) + '"]');
393
393
  rowIndex_1--;
394
394
  }
395
395
  else if (e.action === 'downArrow') {
396
- ele_1 = control_1.element.querySelector('[aria-colindex="' + colIndex_1 + '"][index="' + (rowIndex_1 + 1) + '"]');
396
+ ele_1 = control_1.element.querySelector('[data-colindex="' + colIndex_1 + '"][index="' + (rowIndex_1 + 1) + '"]');
397
397
  rowIndex_1++;
398
398
  }
399
399
  if (!isNullOrUndefined(ele_1)) {
@@ -423,7 +423,7 @@ var KeyboardInteraction = /** @class */ (function () {
423
423
  };
424
424
  KeyboardInteraction.prototype.getParentElement = function (control, ele, colIndex, rowIndex) {
425
425
  while (!ele) {
426
- ele = control.element.querySelector('[aria-colindex="' + colIndex + '"][index="' + rowIndex + '"]');
426
+ ele = control.element.querySelector('[data-colindex="' + colIndex + '"][index="' + rowIndex + '"]');
427
427
  colIndex--;
428
428
  }
429
429
  return ele;
@@ -31,7 +31,7 @@ export declare class PDFExport {
31
31
  * Method to perform pdf export.
32
32
  * @hidden
33
33
  */
34
- exportToPDF(pdfExportProperties?: PdfExportProperties): void;
34
+ exportToPDF(pdfExportProperties?: PdfExportProperties, isBlob?: Boolean): void;
35
35
  private applyStyle;
36
36
  private getFontFamily;
37
37
  private getFont;
@@ -170,7 +170,7 @@ var PDFExport = /** @class */ (function () {
170
170
  * @hidden
171
171
  */
172
172
  /* eslint-disable */
173
- PDFExport.prototype.exportToPDF = function (pdfExportProperties) {
173
+ PDFExport.prototype.exportToPDF = function (pdfExportProperties, isBlob) {
174
174
  this.engine = this.parent.dataType === 'olap' ? this.parent.olapEngineModule : this.parent.engineModule;
175
175
  var eventParams = this.applyEvent();
176
176
  var headerStyle = this.getStyle();
@@ -361,7 +361,18 @@ var PDFExport = /** @class */ (function () {
361
361
  integratedCnt = 0;
362
362
  }
363
363
  } while (integratedCnt < colLength);
364
- eventParams.document.save(eventParams.args.fileName + '.pdf');
364
+ var blobData;
365
+ if (!isBlob) {
366
+ eventParams.document.save(eventParams.args.fileName + '.pdf');
367
+ }
368
+ else {
369
+ blobData = eventParams.document.save();
370
+ }
371
+ var exportCompleteEventArgs = {
372
+ type: 'PDF',
373
+ promise: isBlob ? blobData : null
374
+ };
375
+ this.parent.trigger(events.exportComplete, exportCompleteEventArgs);
365
376
  eventParams.document.destroy();
366
377
  };
367
378
  PDFExport.prototype.applyStyle = function (pdfGridRow, pivotCell, localCnt) {
@@ -32,6 +32,7 @@ export declare class VirtualScroll {
32
32
  private onCustomScrollbarScroll;
33
33
  private onTouchScroll;
34
34
  private update;
35
+ private enginePopulatedEventMethod;
35
36
  private setPageXY;
36
37
  private common;
37
38
  private onHorizondalScroll;
@@ -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
- 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);
171
+ this.parent.pageSettings.rowCurrentPage = engine.pageSettings.rowCurrentPage = section > 1 ? section : 1;
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;
197
- 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);
207
+ var pivot_1 = this.parent;
208
+ pivot_1.scrollPosObject.horizontal = section;
209
+ this.parent.pageSettings.columnCurrentPage = engine.pageSettings.columnCurrentPage = section > 1 ? section : 1;
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) {
@@ -1,4 +1,4 @@
1
- import { Property, Browser, Component, ModuleDeclaration, createElement, setStyleAttribute } from '@syncfusion/ej2-base';import { EmitType, EventHandler, Complex, extend, ChildProperty, Collection, isNullOrUndefined, remove } from '@syncfusion/ej2-base';import { Internationalization, L10n, NotifyPropertyChanges, INotifyPropertyChanged, compile, formatUnit } from '@syncfusion/ej2-base';import { removeClass, addClass, Event, KeyboardEventArgs, setValue, closest, select } from '@syncfusion/ej2-base';import { MouseEventArgs } from '@syncfusion/ej2-base';import { PivotEngine, IPivotValues, IAxisSet, IDataOptions, IDataSet, FieldItemInfo } from '../../base/engine';import { IPageSettings, IGroupSettings, IGridValues, IFieldListOptions, IValueSortSettings } from '../../base/engine';import { IDrilledItem, ICustomProperties, ISort, IFilter, IFieldOptions, ICalculatedFields, IDrillOptions } from '../../base/engine';import { IConditionalFormatSettings, IStringIndex, IField, IFormatSettings } from '../../base/engine';import { Tooltip, TooltipEventArgs, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';import * as events from '../../common/base/constant';import * as cls from '../../common/base/css-constant';import { AxisFields } from '../../common/grouping-bar/axis-field-renderer';import { LoadEventArgs, EnginePopulatingEventArgs, DrillThroughEventArgs, PivotColumn, ChartLabelInfo, EditCompletedEventArgs, MultiLevelLabelClickEventArgs, BeforeServiceInvokeEventArgs, FetchRawDataArgs, UpdateRawDataArgs, PivotActionBeginEventArgs, PivotActionCompleteEventArgs, PivotActionFailureEventArgs, PivotActionInfo } from '../../common/base/interface';import { FetchReportArgs, LoadReportArgs, RenameReportArgs, RemoveReportArgs, ToolbarArgs } from '../../common/base/interface';import { PdfCellRenderArgs, NewReportArgs, ChartSeriesCreatedEventArgs, AggregateEventArgs } from '../../common/base/interface';import { ResizeInfo, ScrollInfo, ColumnRenderEventArgs, PivotCellSelectedEventArgs, SaveReportArgs } from '../../common/base/interface';import { CellClickEventArgs, FieldDroppedEventArgs, HyperCellClickEventArgs, CellTemplateArgs } from '../../common/base/interface';import { BeforeExportEventArgs, EnginePopulatedEventArgs, BeginDrillThroughEventArgs, DrillArgs } from '../../common/base/interface';import { FieldListRefreshedEventArgs, MemberFilteringEventArgs, FieldDropEventArgs } from '../../common/base/interface';import { MemberEditorOpenEventArgs, FieldRemoveEventArgs, AggregateMenuOpenEventArgs } from '../../common/base/interface';import { CalculatedFieldCreateEventArgs, NumberFormattingEventArgs, FieldDragStartEventArgs, HeadersSortEventArgs } from '../../common/base/interface';import { Render } from '../renderer/render';import { PivotCommon } from '../../common/base/pivot-common';import { Common } from '../../common/actions/common';import { GroupingBar } from '../../common/grouping-bar/grouping-bar';import { DataSourceSettingsModel, DrillOptionsModel, FieldOptionsModel, FormatSettingsModel } from '../model/datasourcesettings-model';import { DataSourceSettings } from '../model/datasourcesettings';import { GridSettings } from '../model/gridsettings';import { GridSettingsModel } from '../model/gridsettings-model';import { PivotButton } from '../../common/actions/pivot-button';import { PivotFieldList } from '../../pivotfieldlist/base/field-list';import { Grid, QueryCellInfoEventArgs, ColumnModel, Reorder, Resize, getObject } from '@syncfusion/ej2-grids';import { SelectionType, ContextMenuItemModel } from '@syncfusion/ej2-grids';import { CellSelectEventArgs, RowSelectEventArgs, ResizeArgs } from '@syncfusion/ej2-grids';import { RowDeselectEventArgs, ContextMenuClickEventArgs } from '@syncfusion/ej2-grids';import { EditSettingsModel, HeaderCellInfoEventArgs, CellDeselectEventArgs } from '@syncfusion/ej2-grids';import { PdfExportProperties, ExcelExportProperties, ExcelQueryCellInfoEventArgs, ColumnDragEventArgs } from '@syncfusion/ej2-grids';import { ExcelHeaderQueryCellInfoEventArgs, PdfQueryCellInfoEventArgs, PdfHeaderQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { ExcelExport } from '../actions/excel-export';import { PDFExport } from '../actions/pdf-export';import { CalculatedField } from '../../common/calculatedfield/calculated-field';import { KeyboardInteraction } from '../actions/keyboard';import { PivotContextMenu } from '../../common/popups/context-menu';import { DataManager, ReturnOption, Query } from '@syncfusion/ej2-data';import { ConditionalFormatting } from '../../common/conditionalformatting/conditional-formatting';import { VirtualScroll } from '../actions/virtualscroll';import { DrillThrough } from '../actions/drill-through';import { Condition, GroupType } from '../../base/types';import { EditMode, ToolbarItems, View, Primary, AggregateTypes, ChartSeriesType, PivotTableContextMenuItem } from '../../common';import { PivotUtil } from '../../base/util';import { Toolbar } from '../../common/popups/toolbar';import { PivotChart } from '../../pivotchart/index';import { ChartSettings } from '../model/chartsettings';import { ChartSettingsModel } from '../model/chartsettings-model';import { Chart, ITooltipRenderEventArgs, ILoadedEventArgs, IPointEventArgs, AccumulationChart } from '@syncfusion/ej2-charts';import { IResizeEventArgs, IAxisLabelRenderEventArgs, ExportType } from '@syncfusion/ej2-charts';import { PdfPageOrientation } from '@syncfusion/ej2-pdf-export';import { ClickEventArgs, BeforeOpenCloseMenuEventArgs, ItemModel } from '@syncfusion/ej2-navigations';import { OlapEngine, IOlapCustomProperties, ITupInfo, IDrillInfo, IOlapField } from '../../base/olap/engine';import { NumberFormatting } from '../../common/popups/formatting-dialog';import { Grouping } from '../../common/popups/grouping';
1
+ import { Property, Browser, Component, ModuleDeclaration, createElement, setStyleAttribute } from '@syncfusion/ej2-base';import { EmitType, EventHandler, Complex, extend, ChildProperty, Collection, isNullOrUndefined, remove } from '@syncfusion/ej2-base';import { Internationalization, L10n, NotifyPropertyChanges, INotifyPropertyChanged, compile, formatUnit } from '@syncfusion/ej2-base';import { removeClass, addClass, Event, KeyboardEventArgs, setValue, closest, select } from '@syncfusion/ej2-base';import { MouseEventArgs } from '@syncfusion/ej2-base';import { PivotEngine, IPivotValues, IAxisSet, IDataOptions, IDataSet, FieldItemInfo } from '../../base/engine';import { IPageSettings, IGroupSettings, IGridValues, IFieldListOptions, IValueSortSettings } from '../../base/engine';import { IDrilledItem, ICustomProperties, ISort, IFilter, IFieldOptions, ICalculatedFields, IDrillOptions } from '../../base/engine';import { IConditionalFormatSettings, IStringIndex, IField, IFormatSettings } from '../../base/engine';import { Tooltip, TooltipEventArgs, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';import * as events from '../../common/base/constant';import * as cls from '../../common/base/css-constant';import { AxisFields } from '../../common/grouping-bar/axis-field-renderer';import { LoadEventArgs, EnginePopulatingEventArgs, DrillThroughEventArgs, PivotColumn, ChartLabelInfo, EditCompletedEventArgs, MultiLevelLabelClickEventArgs, BeforeServiceInvokeEventArgs, FetchRawDataArgs, UpdateRawDataArgs, PivotActionBeginEventArgs, PivotActionCompleteEventArgs, PivotActionFailureEventArgs, PivotActionInfo } from '../../common/base/interface';import { FetchReportArgs, LoadReportArgs, RenameReportArgs, RemoveReportArgs, ToolbarArgs } from '../../common/base/interface';import { PdfCellRenderArgs, NewReportArgs, ChartSeriesCreatedEventArgs, AggregateEventArgs } from '../../common/base/interface';import { ResizeInfo, ScrollInfo, ColumnRenderEventArgs, PivotCellSelectedEventArgs, SaveReportArgs, ExportCompleteEventArgs } from '../../common/base/interface';import { CellClickEventArgs, FieldDroppedEventArgs, HyperCellClickEventArgs, CellTemplateArgs } from '../../common/base/interface';import { BeforeExportEventArgs, EnginePopulatedEventArgs, BeginDrillThroughEventArgs, DrillArgs } from '../../common/base/interface';import { FieldListRefreshedEventArgs, MemberFilteringEventArgs, FieldDropEventArgs } from '../../common/base/interface';import { MemberEditorOpenEventArgs, FieldRemoveEventArgs, AggregateMenuOpenEventArgs } from '../../common/base/interface';import { CalculatedFieldCreateEventArgs, NumberFormattingEventArgs, FieldDragStartEventArgs, HeadersSortEventArgs } from '../../common/base/interface';import { Render } from '../renderer/render';import { PivotCommon } from '../../common/base/pivot-common';import { Common } from '../../common/actions/common';import { GroupingBar } from '../../common/grouping-bar/grouping-bar';import { DataSourceSettingsModel, DrillOptionsModel, FieldOptionsModel, FormatSettingsModel } from '../model/datasourcesettings-model';import { DataSourceSettings } from '../model/datasourcesettings';import { GridSettings } from '../model/gridsettings';import { GridSettingsModel } from '../model/gridsettings-model';import { PivotButton } from '../../common/actions/pivot-button';import { PivotFieldList } from '../../pivotfieldlist/base/field-list';import { Grid, QueryCellInfoEventArgs, ColumnModel, Reorder, Resize, getObject } from '@syncfusion/ej2-grids';import { SelectionType, ContextMenuItemModel } from '@syncfusion/ej2-grids';import { CellSelectEventArgs, RowSelectEventArgs, ResizeArgs } from '@syncfusion/ej2-grids';import { RowDeselectEventArgs, ContextMenuClickEventArgs } from '@syncfusion/ej2-grids';import { EditSettingsModel, HeaderCellInfoEventArgs, CellDeselectEventArgs } from '@syncfusion/ej2-grids';import { PdfExportProperties, ExcelExportProperties, ExcelQueryCellInfoEventArgs, ColumnDragEventArgs } from '@syncfusion/ej2-grids';import { ExcelHeaderQueryCellInfoEventArgs, PdfQueryCellInfoEventArgs, PdfHeaderQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { ExcelExport } from '../actions/excel-export';import { PDFExport } from '../actions/pdf-export';import { CalculatedField } from '../../common/calculatedfield/calculated-field';import { KeyboardInteraction } from '../actions/keyboard';import { PivotContextMenu } from '../../common/popups/context-menu';import { DataManager, ReturnOption, Query } from '@syncfusion/ej2-data';import { ConditionalFormatting } from '../../common/conditionalformatting/conditional-formatting';import { VirtualScroll } from '../actions/virtualscroll';import { DrillThrough } from '../actions/drill-through';import { Condition, GroupType } from '../../base/types';import { EditMode, ToolbarItems, View, Primary, AggregateTypes, ChartSeriesType, PivotTableContextMenuItem } from '../../common';import { PivotUtil } from '../../base/util';import { Toolbar } from '../../common/popups/toolbar';import { PivotChart } from '../../pivotchart/index';import { ChartSettings } from '../model/chartsettings';import { ChartSettingsModel } from '../model/chartsettings-model';import { Chart, ITooltipRenderEventArgs, ILoadedEventArgs, IPointEventArgs, AccumulationChart } from '@syncfusion/ej2-charts';import { IResizeEventArgs, IAxisLabelRenderEventArgs, ExportType } from '@syncfusion/ej2-charts';import { PdfPageOrientation } from '@syncfusion/ej2-pdf-export';import { ClickEventArgs, BeforeOpenCloseMenuEventArgs, ItemModel } from '@syncfusion/ej2-navigations';import { OlapEngine, IOlapCustomProperties, ITupInfo, IDrillInfo, IOlapField } from '../../base/olap/engine';import { NumberFormatting } from '../../common/popups/formatting-dialog';import { Grouping } from '../../common/popups/grouping';
2
2
  import {ComponentModel} from '@syncfusion/ej2-base';
3
3
 
4
4
  /**
@@ -1068,10 +1068,15 @@ export interface PivotViewModel extends ComponentModel{
1068
1068
  /**
1069
1069
  * It allows to set properties for exporting.
1070
1070
  * @event
1071
-
1072
1071
  */
1073
1072
  beforeExport?: EmitType<BeforeExportEventArgs>;
1074
1073
 
1074
+ /**
1075
+ * It triggers when exporting to PDF, Excel, or CSV is complete
1076
+ * @event
1077
+ */
1078
+ exportComplete?: EmitType<ExportCompleteEventArgs>
1079
+
1075
1080
  /**
1076
1081
  * It allows to do changes before applying the conditional formatting.
1077
1082
  * @event
@@ -14,7 +14,7 @@ import { AxisFields } from '../../common/grouping-bar/axis-field-renderer';
14
14
  import { LoadEventArgs, EnginePopulatingEventArgs, DrillThroughEventArgs, PivotColumn, ChartLabelInfo, EditCompletedEventArgs, MultiLevelLabelClickEventArgs, BeforeServiceInvokeEventArgs, FetchRawDataArgs, UpdateRawDataArgs, PivotActionBeginEventArgs, PivotActionCompleteEventArgs, PivotActionFailureEventArgs } from '../../common/base/interface';
15
15
  import { FetchReportArgs, LoadReportArgs, RenameReportArgs, RemoveReportArgs, ToolbarArgs } from '../../common/base/interface';
16
16
  import { PdfCellRenderArgs, NewReportArgs, ChartSeriesCreatedEventArgs, AggregateEventArgs } from '../../common/base/interface';
17
- import { ResizeInfo, ScrollInfo, ColumnRenderEventArgs, PivotCellSelectedEventArgs, SaveReportArgs } from '../../common/base/interface';
17
+ import { ResizeInfo, ScrollInfo, ColumnRenderEventArgs, PivotCellSelectedEventArgs, SaveReportArgs, ExportCompleteEventArgs } from '../../common/base/interface';
18
18
  import { CellClickEventArgs, FieldDroppedEventArgs, HyperCellClickEventArgs, CellTemplateArgs } from '../../common/base/interface';
19
19
  import { BeforeExportEventArgs, EnginePopulatedEventArgs, BeginDrillThroughEventArgs, DrillArgs } from '../../common/base/interface';
20
20
  import { FieldListRefreshedEventArgs, MemberFilteringEventArgs, FieldDropEventArgs } from '../../common/base/interface';
@@ -1232,9 +1232,13 @@ export declare class PivotView extends Component<HTMLElement> implements INotify
1232
1232
  /**
1233
1233
  * It allows to set properties for exporting.
1234
1234
  * @event
1235
-
1236
1235
  */
1237
1236
  beforeExport: EmitType<BeforeExportEventArgs>;
1237
+ /**
1238
+ * It triggers when exporting to PDF, Excel, or CSV is complete
1239
+ * @event
1240
+ */
1241
+ exportComplete: EmitType<ExportCompleteEventArgs>;
1238
1242
  /**
1239
1243
  * It allows to do changes before applying the conditional formatting.
1240
1244
  * @event