@syncfusion/ej2-pivotview 19.4.40 → 19.4.47

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 (55) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +1 -1
  3. package/dist/ej2-pivotview.umd.min.js +2 -2
  4. package/dist/ej2-pivotview.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-pivotview.es2015.js +167 -71
  6. package/dist/es6/ej2-pivotview.es2015.js.map +1 -1
  7. package/dist/es6/ej2-pivotview.es5.js +167 -71
  8. package/dist/es6/ej2-pivotview.es5.js.map +1 -1
  9. package/dist/global/ej2-pivotview.min.js +2 -2
  10. package/dist/global/ej2-pivotview.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +18 -18
  13. package/src/common/actions/dataSource-update.d.ts +1 -1
  14. package/src/common/actions/dataSource-update.js +5 -0
  15. package/src/common/actions/node-state-modified.js +1 -1
  16. package/src/common/grouping-bar/grouping-bar.js +1 -1
  17. package/src/common/popups/toolbar.js +12 -12
  18. package/src/pivotchart/base/pivotchart.js +1 -1
  19. package/src/pivotfieldlist/base/field-list.d.ts +2 -0
  20. package/src/pivotfieldlist/base/field-list.js +4 -2
  21. package/src/pivotfieldlist/renderer/axis-table-renderer.js +1 -1
  22. package/src/pivotfieldlist/renderer/tree-renderer.js +16 -11
  23. package/src/pivotview/actions/excel-export.js +54 -25
  24. package/src/pivotview/actions/pdf-export.js +45 -9
  25. package/src/pivotview/actions/virtualscroll.d.ts +1 -0
  26. package/src/pivotview/actions/virtualscroll.js +7 -3
  27. package/src/pivotview/base/pivotview.d.ts +2 -0
  28. package/src/pivotview/base/pivotview.js +21 -6
  29. package/styles/bootstrap-dark.css +30 -14
  30. package/styles/bootstrap.css +30 -14
  31. package/styles/bootstrap4.css +30 -14
  32. package/styles/bootstrap5-dark.css +30 -14
  33. package/styles/bootstrap5.css +30 -14
  34. package/styles/fabric-dark.css +30 -14
  35. package/styles/fabric.css +30 -14
  36. package/styles/highcontrast-light.css +30 -14
  37. package/styles/highcontrast.css +30 -14
  38. package/styles/material-dark.css +30 -14
  39. package/styles/material.css +30 -14
  40. package/styles/pivotfieldlist/_theme.scss +28 -12
  41. package/styles/pivotfieldlist/bootstrap-dark.css +30 -14
  42. package/styles/pivotfieldlist/bootstrap.css +30 -14
  43. package/styles/pivotfieldlist/bootstrap4.css +30 -14
  44. package/styles/pivotfieldlist/bootstrap5-dark.css +30 -14
  45. package/styles/pivotfieldlist/bootstrap5.css +30 -14
  46. package/styles/pivotfieldlist/fabric-dark.css +30 -14
  47. package/styles/pivotfieldlist/fabric.css +30 -14
  48. package/styles/pivotfieldlist/highcontrast-light.css +30 -14
  49. package/styles/pivotfieldlist/highcontrast.css +30 -14
  50. package/styles/pivotfieldlist/material-dark.css +30 -14
  51. package/styles/pivotfieldlist/material.css +30 -14
  52. package/styles/pivotfieldlist/tailwind-dark.css +30 -14
  53. package/styles/pivotfieldlist/tailwind.css +30 -14
  54. package/styles/tailwind-dark.css +30 -14
  55. package/styles/tailwind.css +30 -14
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 19.4.40
3
+ * version : 19.4.47
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-pivotview@*",
3
- "_id": "@syncfusion/ej2-pivotview@19.4.38",
3
+ "_id": "@syncfusion/ej2-pivotview@19.4.43",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-+fFwkKf9f7dvy1yimYl177BDSWAFQ5OgMMZQhRr4uzC63qedgNfM4WsA+j3CSXAodlDsH69Wk0RLYrbxYJbo7g==",
5
+ "_integrity": "sha512-EDMViT3DDtBG78Vu8tUBvOo/DCVNS0gNonzwBPKaAvl1mIxDE04V0W8zQnF4+snkIS7OFj35ffNCoRL5Py/UnQ==",
6
6
  "_location": "/@syncfusion/ej2-pivotview",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -23,8 +23,8 @@
23
23
  "/@syncfusion/ej2-react-pivotview",
24
24
  "/@syncfusion/ej2-vue-pivotview"
25
25
  ],
26
- "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-pivotview/-/ej2-pivotview-19.4.38.tgz",
27
- "_shasum": "295cfc89df3f91c8f3f63e12169f1da81d58097b",
26
+ "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-pivotview/-/ej2-pivotview-19.4.43.tgz",
27
+ "_shasum": "201d8229eef37ac997d966855eba1d7b84e7f68b",
28
28
  "_spec": "@syncfusion/ej2-pivotview@*",
29
29
  "_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
30
30
  "author": {
@@ -35,23 +35,23 @@
35
35
  },
36
36
  "bundleDependencies": false,
37
37
  "dependencies": {
38
- "@syncfusion/ej2-base": "~19.4.38",
39
- "@syncfusion/ej2-buttons": "~19.4.38",
40
- "@syncfusion/ej2-calendars": "~19.4.38",
41
- "@syncfusion/ej2-charts": "~19.4.40",
38
+ "@syncfusion/ej2-base": "~19.4.42",
39
+ "@syncfusion/ej2-buttons": "~19.4.42",
40
+ "@syncfusion/ej2-calendars": "~19.4.42",
41
+ "@syncfusion/ej2-charts": "~19.4.47",
42
42
  "@syncfusion/ej2-compression": "~19.4.38",
43
- "@syncfusion/ej2-data": "~19.4.38",
44
- "@syncfusion/ej2-dropdowns": "~19.4.40",
43
+ "@syncfusion/ej2-data": "~19.4.47",
44
+ "@syncfusion/ej2-dropdowns": "~19.4.47",
45
45
  "@syncfusion/ej2-excel-export": "~19.4.38",
46
46
  "@syncfusion/ej2-file-utils": "~19.4.38",
47
- "@syncfusion/ej2-grids": "~19.4.40",
48
- "@syncfusion/ej2-inputs": "~19.4.38",
47
+ "@syncfusion/ej2-grids": "~19.4.47",
48
+ "@syncfusion/ej2-inputs": "~19.4.47",
49
49
  "@syncfusion/ej2-lists": "~19.4.38",
50
- "@syncfusion/ej2-navigations": "~19.4.40",
51
- "@syncfusion/ej2-pdf-export": "~19.4.38",
52
- "@syncfusion/ej2-popups": "~19.4.38",
53
- "@syncfusion/ej2-splitbuttons": "~19.4.40",
54
- "@syncfusion/ej2-svg-base": "~19.4.40"
50
+ "@syncfusion/ej2-navigations": "~19.4.47",
51
+ "@syncfusion/ej2-pdf-export": "~19.4.43",
52
+ "@syncfusion/ej2-popups": "~19.4.47",
53
+ "@syncfusion/ej2-splitbuttons": "~19.4.47",
54
+ "@syncfusion/ej2-svg-base": "~19.4.42"
55
55
  },
56
56
  "deprecated": false,
57
57
  "description": "The pivot grid, or pivot table, is used to visualize large sets of relational data in a cross-tabular format, similar to an Excel pivot table.",
@@ -78,6 +78,6 @@
78
78
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
79
79
  },
80
80
  "typings": "index.d.ts",
81
- "version": "19.4.40",
81
+ "version": "19.4.47",
82
82
  "sideEffects": false
83
83
  }
@@ -28,7 +28,7 @@ export declare class DataSourceUpdate {
28
28
  * @returns {void}
29
29
  * @hidden
30
30
  */
31
- updateDataSource(fieldName: string, droppedClass: string, droppedPosition: number): void;
31
+ updateDataSource(fieldName: string, droppedClass: string, droppedPosition: number): boolean;
32
32
  /**
33
33
  * Updates the dataSource by removing the given field from the dataSource.
34
34
  * @param {string} fieldName - Defines dropped field name to remove dataSource.
@@ -28,6 +28,7 @@ var DataSourceUpdate = /** @class */ (function () {
28
28
  var dataSourceItem;
29
29
  var draggedClass;
30
30
  var draggedPosition = -1;
31
+ var nodeDropped = true;
31
32
  var row = this.parent.dataSourceSettings.rows;
32
33
  var column = this.parent.dataSourceSettings.columns;
33
34
  var value = this.parent.dataSourceSettings.values;
@@ -154,7 +155,11 @@ var DataSourceUpdate = /** @class */ (function () {
154
155
  });
155
156
  }
156
157
  }
158
+ else {
159
+ nodeDropped = false;
160
+ }
157
161
  });
162
+ return nodeDropped;
158
163
  };
159
164
  /**
160
165
  * Updates the dataSource by removing the given field from the dataSource.
@@ -108,7 +108,7 @@ var NodeStateModified = /** @class */ (function () {
108
108
  this.parent.engineModule.updateFieldlistData(fieldName);
109
109
  }
110
110
  }
111
- this.parent.dataSourceUpdate.updateDataSource(fieldName, droppedClass, droppedPosition);
111
+ nodeDropped = this.parent.dataSourceUpdate.updateDataSource(fieldName, droppedClass, droppedPosition);
112
112
  return nodeDropped;
113
113
  };
114
114
  NodeStateModified.prototype.getButtonPosition = function (target, droppedClass) {
@@ -464,7 +464,7 @@ var GroupingBar = /** @class */ (function () {
464
464
  };
465
465
  GroupingBar.prototype.dropIndicatorUpdate = function (e) {
466
466
  if ((this.parent.isDragging && e.target.classList.contains(cls.DROPPABLE_CLASS) && e.type === 'mouseover') ||
467
- e.type === 'mouseleave') {
467
+ (!this.parent.isDragging || (!e.target.classList.contains(cls.DROPPABLE_CLASS) && e.type === 'mouseleave'))) {
468
468
  removeClass([].slice.call(this.parent.element.querySelectorAll('.' + cls.DROP_INDICATOR_CLASS)), cls.INDICATOR_HOVER_CLASS);
469
469
  removeClass([].slice.call(this.parent.element.querySelectorAll('.' + cls.DROP_INDICATOR_CLASS + '-last')), cls.INDICATOR_HOVER_CLASS);
470
470
  }
@@ -338,10 +338,10 @@ var Toolbar = /** @class */ (function () {
338
338
  }
339
339
  };
340
340
  Toolbar.prototype.actionClick = function (args) {
341
- var actionName = (args.item.id == "PivotViewnew") ? events.addNewReport : (args.item.id == "PivotViewsave") ? events.saveCurrentReport : (args.item.id == "PivotViewsaveas") ? events.saveAsCurrentReport
342
- : (args.item.id == "PivotViewrename") ? events.renameCurrentReport : (args.item.id == "PivotViewremove") ? events.removeCurrentReport : (args.item.id == "PivotViewload") ? events.loadReports
343
- : (args.item.id == "PivotViewformatting") ? events.openConditionalFormatting : (args.item.id == "PivotViewnumberFormatting") ? events.openNumberFormatting
344
- : (args.item.id == "PivotViewmdxQuery") ? events.MdxQuery : (args.item.id == "PivotViewfieldlist") ? events.showFieldList : '';
341
+ var actionName = (args.item.id == this.parent.element.id + 'new') ? events.addNewReport : (args.item.id == this.parent.element.id + 'save') ? events.saveCurrentReport : (args.item.id == this.parent.element.id + 'saveas') ? events.saveAsCurrentReport
342
+ : (args.item.id == this.parent.element.id + 'rename') ? events.renameCurrentReport : (args.item.id == this.parent.element.id + 'remove') ? events.removeCurrentReport : (args.item.id == this.parent.element.id + 'load') ? events.loadReports
343
+ : (args.item.id == this.parent.element.id + 'formatting') ? events.openConditionalFormatting : (args.item.id == this.parent.element.id + 'numberFormatting') ? events.openNumberFormatting
344
+ : (args.item.id == this.parent.element.id + 'mdxQuery') ? events.MdxQuery : (args.item.id == this.parent.element.id + 'fieldlist') ? events.showFieldList : '';
345
345
  this.parent.actionObj.actionName = actionName;
346
346
  if (this.parent.actionBeginMethod()) {
347
347
  return;
@@ -1183,14 +1183,14 @@ var Toolbar = /** @class */ (function () {
1183
1183
  var _this_1 = this;
1184
1184
  var exportArgs = {};
1185
1185
  var type;
1186
- var actionName = (args.item.id == "PivotViewgrid") ? events.tableView : (args.item.id == "PivotView_Column") ? events.chartView : (args.item.id == "PivotView_Bar") ? events.chartView : (args.item.id == "PivotView_Line") ? events.chartView
1187
- : (args.item.id == "PivotView_Area") ? events.chartView : (args.item.id == "PivotView_Scatter") ? events.chartView : (args.item.id == "PivotView_Polar") ? events.chartView : (args.item.id == "PivotView_ChartMoreOption") ? events.chartView
1188
- : (args.item.id == "PivotView_multipleAxes") ? events.multipleAxis : (args.item.id == "PivotView_showLegend") ? events.showLegend : (args.item.id == "PivotViewpdf") ? events.pdfExport : (args.item.id == "PivotViewpng") ? events.pngExport
1189
- : (args.item.id == "PivotViewexcel") ? events.excelExport : (args.item.id == "PivotViewcsv") ? events.csvExport : (args.item.id == "PivotViewjpeg") ? events.jpegExport : (args.item.id == "PivotViewsvg") ? events.svgExport
1190
- : (args.item.id == "PivotViewnotsubtotal") ? events.hideSubTotals : (args.item.id == "PivotViewsubtotalrow") ? events.subTotalsRow : (args.item.id == "PivotViewsubtotalcolumn") ? events.subTotalsColumn
1191
- : (args.item.id == "PivotViewsubtotal") ? events.showSubTotals : (args.item.id == "PivotViewnotgrandtotal") ? events.hideGrandTotals : (args.item.id == "PivotViewgrandtotalrow") ? events.grandTotalsRow
1192
- : (args.item.id == "PivotViewgrandtotalcolumn") ? events.grandTotalsColumn : (args.item.id == "PivotViewgrandtotal") ? events.showGrandTotals
1193
- : (args.item.id == "PivotViewnumberFormattingMenu") ? events.numberFormattingMenu : (args.item.id == "PivotViewconditionalFormattingMenu") ? events.conditionalFormattingMenu : '';
1186
+ var actionName = (args.item.id == this.parent.element.id + 'grid') ? events.tableView : (args.item.id == this.parent.element.id + '_' + "Column") ? events.chartView : (args.item.id == this.parent.element.id + '_' + "Bar") ? events.chartView : (args.item.id == this.parent.element.id + '_' + "Line") ? events.chartView
1187
+ : (args.item.id == this.parent.element.id + '_' + "Area") ? events.chartView : (args.item.id == this.parent.element.id + '_' + "Scatter") ? events.chartView : (args.item.id == this.parent.element.id + '_' + "Polar") ? events.chartView : (args.item.id == this.parent.element.id + '_' + "ChartMoreOption") ? events.chartView
1188
+ : (args.item.id == this.parent.element.id + '_' + "multipleAxes") ? events.multipleAxis : (args.item.id == this.parent.element.id + '_' + "showLegend") ? events.showLegend : (args.item.id == this.parent.element.id + "pdf") ? events.pdfExport : (args.item.id == this.parent.element.id + "png") ? events.pngExport
1189
+ : (args.item.id == this.parent.element.id + "excel") ? events.excelExport : (args.item.id == this.parent.element.id + "csv") ? events.csvExport : (args.item.id == this.parent.element.id + "jpeg") ? events.jpegExport : (args.item.id == this.parent.element.id + "svg") ? events.svgExport
1190
+ : (args.item.id == this.parent.element.id + "notsubtotal") ? events.hideSubTotals : (args.item.id == this.parent.element.id + "subtotalrow") ? events.subTotalsRow : (args.item.id == this.parent.element.id + "subtotalcolumn") ? events.subTotalsColumn
1191
+ : (args.item.id == this.parent.element.id + "subtotal") ? events.showSubTotals : (args.item.id == this.parent.element.id + "notgrandtotal") ? events.hideGrandTotals : (args.item.id == this.parent.element.id + "grandtotalrow") ? events.grandTotalsRow
1192
+ : (args.item.id == this.parent.element.id + "grandtotalcolumn") ? events.grandTotalsColumn : (args.item.id == this.parent.element.id + "grandtotal") ? events.showGrandTotals
1193
+ : (args.item.id == this.parent.element.id + "numberFormattingMenu") ? events.numberFormattingMenu : (args.item.id == this.parent.element.id + "conditionalFormattingMenu") ? events.conditionalFormattingMenu : '';
1194
1194
  this.parent.actionObj.actionName = actionName;
1195
1195
  if (this.parent.actionBeginMethod()) {
1196
1196
  return;
@@ -1623,7 +1623,7 @@ var PivotChart = /** @class */ (function () {
1623
1623
  if (this.parent && this.parent.isDestroyed) {
1624
1624
  return;
1625
1625
  }
1626
- if (this.engineModule) {
1626
+ if (this.engineModule && !this.parent.destroyEngine) {
1627
1627
  this.engineModule.fieldList = {};
1628
1628
  this.engineModule = {};
1629
1629
  }
@@ -111,6 +111,8 @@ export declare class PivotFieldList extends Component<HTMLElement> implements IN
111
111
  private remoteData;
112
112
  /** @hidden */
113
113
  actionObj: PivotActionCompleteEventArgs;
114
+ /** @hidden */
115
+ destroyEngine: boolean;
114
116
  /**
115
117
  * Allows the following pivot report information such as rows, columns, values, filters, etc., that are used to render the pivot table and field list.
116
118
  * * `catalog`: Allows to set the database name of SSAS cube as string type that used to retrieve the data from the specified connection string. **Note: It is applicable only for OLAP data source.**
@@ -68,6 +68,8 @@ var PivotFieldList = /** @class */ (function (_super) {
68
68
  _this.remoteData = [];
69
69
  /** @hidden */
70
70
  _this.actionObj = {};
71
+ /** @hidden */
72
+ _this.destroyEngine = false;
71
73
  return _this;
72
74
  }
73
75
  /**
@@ -1158,7 +1160,7 @@ var PivotFieldList = /** @class */ (function (_super) {
1158
1160
  */
1159
1161
  PivotFieldList.prototype.destroy = function () {
1160
1162
  this.unWireEvent();
1161
- if (this.engineModule) {
1163
+ if (this.engineModule && !this.destroyEngine) {
1162
1164
  this.engineModule.fieldList = {};
1163
1165
  this.engineModule.rMembers = null;
1164
1166
  this.engineModule.cMembers = null;
@@ -1166,7 +1168,7 @@ var PivotFieldList = /** @class */ (function (_super) {
1166
1168
  this.engineModule.indexMatrix = null;
1167
1169
  this.engineModule = {};
1168
1170
  }
1169
- if (this.olapEngineModule) {
1171
+ if (this.olapEngineModule && !this.destroyEngine) {
1170
1172
  this.olapEngineModule.fieldList = {};
1171
1173
  this.olapEngineModule = {};
1172
1174
  }
@@ -110,7 +110,7 @@ var AxisTableRenderer = /** @class */ (function () {
110
110
  addClass([element[element.length - 1].querySelector('.' + cls.DROP_INDICATOR_CLASS + '-last')], cls.INDICATOR_HOVER_CLASS);
111
111
  }
112
112
  }
113
- else if (e.type === 'mouseleave') {
113
+ else if (!this.parent.isDragging || (!e.target.classList.contains(cls.DROPPABLE_CLASS) && e.type === 'mouseleave')) {
114
114
  removeClass([].slice.call(parentElement.querySelectorAll('.' + cls.DROP_INDICATOR_CLASS)), cls.INDICATOR_HOVER_CLASS);
115
115
  removeClass([].slice.call(parentElement.querySelectorAll('.' + cls.DROP_INDICATOR_CLASS + '-last')), cls.INDICATOR_HOVER_CLASS);
116
116
  }
@@ -456,6 +456,9 @@ var TreeViewRenderer = /** @class */ (function () {
456
456
  };
457
457
  TreeViewRenderer.prototype.nodeStateChange = function (args) {
458
458
  var _this = this;
459
+ if (!args.isInteracted) {
460
+ return;
461
+ }
459
462
  var node = closest(args.node, '.' + cls.TEXT_CONTENT_CLASS);
460
463
  if (!isNullOrUndefined(node)) {
461
464
  var li_1 = closest(node, 'li');
@@ -487,7 +490,7 @@ var TreeViewRenderer = /** @class */ (function () {
487
490
  _this.updateNodeStateChange(id_1, args, selectedNode_1);
488
491
  }
489
492
  else {
490
- _this.updateCheckState(selectedNode_1);
493
+ _this.updateCheckState(selectedNode_1, args.action);
491
494
  }
492
495
  });
493
496
  }
@@ -514,7 +517,7 @@ var TreeViewRenderer = /** @class */ (function () {
514
517
  _this.updateNodeStateChange(id_1, args, selectedNode_1);
515
518
  }
516
519
  else {
517
- _this.updateCheckState(selectedNode_1);
520
+ _this.updateCheckState(selectedNode_1, args.action);
518
521
  }
519
522
  });
520
523
  }
@@ -571,19 +574,17 @@ var TreeViewRenderer = /** @class */ (function () {
571
574
  break;
572
575
  }
573
576
  };
574
- TreeViewRenderer.prototype.updateCheckState = function (selectedNode) {
577
+ TreeViewRenderer.prototype.updateCheckState = function (selectedNode, action) {
575
578
  var chkState = this.fieldTable.element.querySelectorAll('.e-checkbox-wrapper');
576
579
  var innerText = this.fieldTable.element.querySelectorAll('.e-list-text');
577
580
  var checkClass = this.fieldTable.element.querySelectorAll('.e-frame');
578
581
  for (var i = 0; i < chkState.length; i++) {
579
582
  if (selectedNode.caption === innerText[i].textContent) {
580
- if (chkState[i].getAttribute('aria-checked') === 'false') {
581
- chkState[i].setAttribute('aria-checked', 'false');
582
- checkClass[i].classList.add(cls.NODE_CHECK_CLASS);
583
+ if (action === 'check') {
584
+ this.fieldTable.uncheckAll([selectedNode['id']]);
583
585
  }
584
586
  else {
585
- chkState[i].setAttribute('aria-checked', 'true');
586
- checkClass[i].classList.remove(cls.NODE_CHECK_CLASS);
587
+ this.fieldTable.checkAll([selectedNode['id']]);
587
588
  }
588
589
  }
589
590
  }
@@ -634,6 +635,9 @@ var TreeViewRenderer = /** @class */ (function () {
634
635
  };
635
636
  TreeViewRenderer.prototype.addNode = function (args) {
636
637
  var _this = this;
638
+ if (!args.isInteracted) {
639
+ return;
640
+ }
637
641
  /* eslint-disable */
638
642
  var fieldList = this.parent.pivotFieldList;
639
643
  var selectedNode = fieldList[args.data[0].id.toString()];
@@ -641,17 +645,18 @@ var TreeViewRenderer = /** @class */ (function () {
641
645
  var fieldInfo = PivotUtil.getFieldInfo(selectedNode.id.toString(), this.parent);
642
646
  var control = this.parent.isPopupView ? this.parent.pivotGridModule : this.parent;
643
647
  if (args.action === 'check') {
648
+ var axis = ['filters', 'columns', 'rows', 'values'];
644
649
  var eventdrop = {
645
650
  fieldName: fieldInfo.fieldName, dropField: fieldInfo.fieldItem,
646
651
  dataSourceSettings: PivotUtil.getClonedDataSourceSettings(this.parent.dataSourceSettings),
647
- dropAxis: 'rows', draggedAxis: 'fieldlist', cancel: false
652
+ dropAxis: axis[this.parent.dialogRenderer.adaptiveElement.selectedItem], draggedAxis: 'fieldlist', cancel: false
648
653
  };
649
654
  control.trigger(events.fieldDrop, eventdrop, function (observedArgs) {
650
655
  if (!observedArgs.cancel) {
651
656
  _this.selectedNodes.push(selectedNode.id.toString());
652
657
  }
653
658
  else {
654
- _this.updateCheckState(selectedNode);
659
+ _this.updateCheckState(selectedNode, args.action);
655
660
  }
656
661
  });
657
662
  }
@@ -672,7 +677,7 @@ var TreeViewRenderer = /** @class */ (function () {
672
677
  }
673
678
  }
674
679
  else {
675
- _this.updateCheckState(selectedNode);
680
+ _this.updateCheckState(selectedNode, args.action);
676
681
  }
677
682
  });
678
683
  }
@@ -71,9 +71,6 @@ var ExcelExport = /** @class */ (function () {
71
71
  var clonedValues;
72
72
  var currentPivotValues = PivotExportUtil.getClonedPivotValues(this.engine.pivotValues);
73
73
  var customFileName = isFileNameSet ? exportProperties.fileName : 'default.xlsx';
74
- if (isHeaderSet) {
75
- this.addHeaderAndFooter(exportProperties.header, '', 'header', exportProperties.header.headerRows);
76
- }
77
74
  if (this.parent.exportAllPages && this.parent.enableVirtualization && this.parent.dataType !== 'olap') {
78
75
  var pageSettings = this.engine.pageSettings;
79
76
  this.engine.pageSettings = null;
@@ -87,7 +84,7 @@ var ExcelExport = /** @class */ (function () {
87
84
  clonedValues = currentPivotValues;
88
85
  }
89
86
  var args = {
90
- fileName: customFileName, header: '', footer: '', dataCollections: [clonedValues]
87
+ fileName: customFileName, header: '', footer: '', dataCollections: [clonedValues], excelExportProperties: exportProperties
91
88
  };
92
89
  var fileName;
93
90
  var header;
@@ -121,6 +118,14 @@ var ExcelExport = /** @class */ (function () {
121
118
  for (var cCnt = 0; cCnt < colLen; cCnt++) {
122
119
  if (pivotValues[rCnt][cCnt]) {
123
120
  var pivotCell = pivotValues[rCnt][cCnt];
121
+ var field = (this.parent.dataSourceSettings.valueAxis === 'row' &&
122
+ this.parent.dataType === 'olap' && pivotCell.rowOrdinal &&
123
+ this.engine.tupRowInfo[pivotCell.rowOrdinal]) ?
124
+ this.engine.tupRowInfo[pivotCell.rowOrdinal].measureName :
125
+ pivotCell.actualText;
126
+ var styles = (pivotCell.axis == 'row') ? { hAlign: 'Left', bold: true, wrapText: true } : { numberFormat: formatList[field], bold: false, wrapText: true };
127
+ var pivotCells = currentPivotValues[rCnt][cCnt];
128
+ var headerStyle = { bold: true, vAlign: 'Center', wrapText: true, indent: cCnt === 0 ? pivotCell.level * 10 : 0 };
124
129
  if (!(pivotCell.level === -1 && !pivotCell.rowSpan)) {
125
130
  var cellValue = pivotCell.axis === 'value' ? pivotCell.value : pivotCell.formattedText;
126
131
  var isgetValuesHeader = ((this.parent.dataSourceSettings.rows.length === 0 && this.parent.dataSourceSettings.valueAxis === 'row')
@@ -140,33 +145,21 @@ var ExcelExport = /** @class */ (function () {
140
145
  index: cCnt + 1, value: cellValue,
141
146
  colSpan: pivotCell.colSpan, rowSpan: (pivotCell.rowSpan === -1 ? 1 : pivotCell.rowSpan),
142
147
  });
148
+ var lastCell = cells[cells.length - 1];
143
149
  if (pivotCell.axis === 'value') {
144
150
  if (isNaN(pivotCell.value) || pivotCell.formattedText === '' ||
145
151
  pivotCell.formattedText === undefined || isNullOrUndefined(pivotCell.value)) {
146
- cells[cells.length - 1].value = type === 'Excel' ? null : '';
147
- }
148
- var field = (this.parent.dataSourceSettings.valueAxis === 'row' &&
149
- this.parent.dataType === 'olap' && pivotCell.rowOrdinal &&
150
- this.engine.tupRowInfo[pivotCell.rowOrdinal]) ?
151
- this.engine.tupRowInfo[pivotCell.rowOrdinal].measureName :
152
- pivotCell.actualText;
153
- cells[cells.length - 1].style = !isNullOrUndefined(cells[cells.length - 1].value) ? { numberFormat: formatList[field], bold: false, wrapText: true } : { bold: false, wrapText: true };
154
- if (pivotCell.style) {
155
- cells[cells.length - 1].style.backColor = pivotCell.style.backgroundColor;
156
- cells[cells.length - 1].style.fontColor = pivotCell.style.color;
157
- cells[cells.length - 1].style.fontName = pivotCell.style.fontFamily;
158
- cells[cells.length - 1].style.fontSize = Number(pivotCell.style.fontSize.split('px')[0]);
152
+ lastCell.value = type === 'Excel' ? null : '';
159
153
  }
154
+ lastCell.style = !isNullOrUndefined(lastCell.value) ? styles : { bold: false, wrapText: true };
160
155
  }
161
156
  else {
162
- cells[cells.length - 1].style = {
163
- bold: true, vAlign: 'Center', wrapText: true, indent: cCnt === 0 ? pivotCell.level * 10 : 0
164
- };
157
+ lastCell.style = headerStyle;
165
158
  if (pivotCell.axis === 'row' && cCnt === 0) {
166
- cells[cells.length - 1].style.hAlign = 'Left';
159
+ lastCell.style = styles;
167
160
  if (this.parent.dataType === 'olap') {
168
161
  var indent = this.parent.renderModule.indentCollection[rCnt];
169
- cells[cells.length - 1].style.indent = indent * 2;
162
+ lastCell.style.indent = indent * 2;
170
163
  maxLevel = maxLevel > indent ? maxLevel : indent;
171
164
  }
172
165
  else {
@@ -176,19 +169,55 @@ var ExcelExport = /** @class */ (function () {
176
169
  var levelPosition = levelName.split(this.parent.dataSourceSettings.valueSortSettings.headerDelimiter).length -
177
170
  (memberPos ? memberPos - 1 : memberPos);
178
171
  var level = levelPosition ? (levelPosition - 1) : 0;
179
- cells[cells.length - 1].style.indent = level * 2;
172
+ lastCell.style.indent = level * 2;
180
173
  maxLevel = level > maxLevel ? level : maxLevel;
181
174
  }
182
175
  }
183
176
  }
184
- cells[cells.length - 1].style.borders = { color: '#000000', lineStyle: 'Thin' };
177
+ if (pivotCell.style || lastCell.style.backgroundColor || lastCell.style.fontColor || lastCell.style.fontName || lastCell.style.fontSize) {
178
+ lastCell.style.backgroundColor = lastCell.style.backgroundColor ? lastCell.style.backgroundColor : pivotCell.style.backgroundColor;
179
+ lastCell.style.fontColor = lastCell.style.fontColor ? lastCell.style.fontColor : pivotCell.style.color;
180
+ lastCell.style.fontName = lastCell.style.fontName ? lastCell.style.fontName : pivotCell.style.fontFamily;
181
+ lastCell.style.fontSize = lastCell.style.fontSize ? Number(lastCell.style.fontSize) : Number(pivotCell.style.fontSize.split('px')[0]);
182
+ }
183
+ lastCell.style.borders = { color: '#000000', lineStyle: 'Thin' };
184
+ var excelHeaderQueryCellInfoArgs = void 0;
185
+ var excelQueryCellInfoArgs = void 0;
186
+ if (pivotCell.axis === 'column') {
187
+ excelHeaderQueryCellInfoArgs = {
188
+ style: headerStyle,
189
+ cell: pivotCells,
190
+ };
191
+ this.parent.trigger(events.excelHeaderQueryCellInfo, excelHeaderQueryCellInfoArgs);
192
+ }
193
+ else {
194
+ excelQueryCellInfoArgs = {
195
+ style: styles,
196
+ cell: pivotCells,
197
+ column: undefined,
198
+ data: pivotValues,
199
+ value: cellValue
200
+ };
201
+ this.parent.trigger(events.excelQueryCellInfo, excelQueryCellInfoArgs);
202
+ }
203
+ lastCell.value = (pivotCell.axis == 'column') ? excelHeaderQueryCellInfoArgs.cell.formattedText : excelQueryCellInfoArgs.value;
204
+ lastCell.style = (pivotCell.axis == 'column') ? excelHeaderQueryCellInfoArgs.style : excelQueryCellInfoArgs.style;
185
205
  }
186
206
  }
187
207
  cCnt = cCnt + (pivotCell.colSpan ? (pivotCell.colSpan - 1) : 0);
188
208
  }
189
209
  else {
210
+ var pivotCell = { formattedText: "" };
211
+ var excelHeaderQueryCellInfoArgs = void 0;
212
+ if (pivotCell) {
213
+ excelHeaderQueryCellInfoArgs = {
214
+ style: undefined,
215
+ cell: pivotCell,
216
+ };
217
+ this.parent.trigger(events.excelHeaderQueryCellInfo, excelHeaderQueryCellInfoArgs);
218
+ }
190
219
  cells.push({
191
- index: cCnt + 1, value: '', colSpan: 1, rowSpan: 1,
220
+ index: cCnt + 1, colSpan: 1, rowSpan: 1, value: pivotCell.formattedText, style: excelHeaderQueryCellInfoArgs.style
192
221
  });
193
222
  }
194
223
  }
@@ -31,14 +31,21 @@ var PDFExport = /** @class */ (function () {
31
31
  var footer = (!isNullOrUndefined(pdfExportProperties) && !isNullOrUndefined(pdfExportProperties.footer) && !isNullOrUndefined(pdfExportProperties.footer.contents) && !isNullOrUndefined(pdfExportProperties.footer.contents[0].value)) ?
32
32
  pdfExportProperties.footer.contents[0].value : eventParams.args.footer;
33
33
  var font = new PdfStandardFont(PdfFontFamily.TimesRoman, 15, PdfFontStyle.Regular);
34
- var brush = new PdfSolidBrush(new PdfColor(0, 0, 0));
34
+ var headerCondition = (!isNullOrUndefined(pdfExportProperties) && !isNullOrUndefined(pdfExportProperties.header)
35
+ && !isNullOrUndefined(pdfExportProperties.header.contents) && !isNullOrUndefined(pdfExportProperties.header.contents[0].style));
36
+ var footerCondition = (!isNullOrUndefined(pdfExportProperties) && !isNullOrUndefined(pdfExportProperties.footer)
37
+ && !isNullOrUndefined(pdfExportProperties.footer.contents) && !isNullOrUndefined(pdfExportProperties.footer.contents[0].style));
38
+ var headerColor = (headerCondition) ? this.hexDecToRgb(pdfExportProperties.header.contents[0].style.textBrushColor) : (new PdfColor(0, 0, 0));
39
+ var brushHeader = (headerCondition) ? new PdfSolidBrush(new PdfColor(headerColor.r, headerColor.g, headerColor.b)) : new PdfSolidBrush(new PdfColor(0, 0, 0));
40
+ var footerColor = (footerCondition) ? this.hexDecToRgb(pdfExportProperties.footer.contents[0].style.textBrushColor) : (new PdfColor(0, 0, 0));
41
+ var brushFooter = (footerCondition) ? new PdfSolidBrush(new PdfColor(footerColor.r, footerColor.g, footerColor.b)) : new PdfSolidBrush(new PdfColor(0, 0, 0));
35
42
  var pen = new PdfPen(new PdfColor(0, 0, 0), .5);
36
43
  /** Header and Footer to be set */
37
44
  var headerTemplate = new PdfPageTemplateElement(new RectangleF(0, 0, page.graphics.clientSize.width, 20));
38
- headerTemplate.graphics.drawString(header, font, pen, brush, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
45
+ headerTemplate.graphics.drawString(header, font, pen, brushHeader, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
39
46
  eventParams.document.template.top = headerTemplate;
40
47
  var footerTemplate = new PdfPageTemplateElement(new RectangleF(0, 0, page.graphics.clientSize.width, 20));
41
- footerTemplate.graphics.drawString(footer, font, pen, brush, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
48
+ footerTemplate.graphics.drawString(footer, font, pen, brushFooter, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
42
49
  eventParams.document.template.bottom = footerTemplate;
43
50
  return page;
44
51
  };
@@ -220,12 +227,12 @@ var PDFExport = /** @class */ (function () {
220
227
  var isValueCell = false;
221
228
  if (pivotValues[rCnt][cCnt]) {
222
229
  var pivotCell = pivotValues[rCnt][cCnt];
230
+ var cellValue = pivotCell.formattedText;
231
+ cellValue = (this.parent.dataSourceSettings.rows.length === 0 || this.parent.dataSourceSettings.columns.length === 0) ? this.parent.getValuesHeader(pivotCell, 'value') : cellValue;
232
+ cellValue = pivotCell.type === 'grand sum' ? (this.parent.dataSourceSettings.rows.length === 0 || this.parent.dataSourceSettings.columns.length === 0) ? this.parent.getValuesHeader(pivotCell, 'grandTotal') :
233
+ this.parent.localeObj.getConstant('grandTotal') : (pivotCell.type === 'sum' ?
234
+ cellValue.toString().replace('Total', this.parent.localeObj.getConstant('total')) : cellValue);
223
235
  if (!(pivotCell.level === -1 && !pivotCell.rowSpan)) {
224
- var cellValue = pivotCell.formattedText;
225
- cellValue = (this.parent.dataSourceSettings.rows.length === 0 || this.parent.dataSourceSettings.columns.length === 0) ? this.parent.getValuesHeader(pivotCell, 'value') : cellValue;
226
- cellValue = pivotCell.type === 'grand sum' ? (this.parent.dataSourceSettings.rows.length === 0 || this.parent.dataSourceSettings.columns.length === 0) ? this.parent.getValuesHeader(pivotCell, 'grandTotal') :
227
- this.parent.localeObj.getConstant('grandTotal') : (pivotCell.type === 'sum' ?
228
- cellValue.toString().replace('Total', this.parent.localeObj.getConstant('total')) : cellValue);
229
236
  if (!(pivotCell.level === -1 && !pivotCell.rowSpan)) {
230
237
  pdfGridRow.cells.getCell(localCnt).columnSpan = pivotCell.colSpan ?
231
238
  (pageSize - localCnt < pivotCell.colSpan ? pageSize - localCnt : pivotCell.colSpan) : 1;
@@ -248,11 +255,31 @@ var PDFExport = /** @class */ (function () {
248
255
  pdfGridRow = this.applyStyle(pdfGridRow, pivotCell, localCnt);
249
256
  }
250
257
  var args = {
251
- style: (pivotCell && pivotCell.isSum) ? { bold: true } : undefined,
258
+ style: (pivotCell.axis == "column") ? { bold: false } : ((pivotCell && pivotCell.isSum) || (pivotCell.axis == "row")) ? { bold: true } : undefined,
252
259
  pivotCell: pivotCell,
253
260
  cell: pdfGridRow.cells.getCell(localCnt)
254
261
  };
255
262
  this.parent.trigger(events.onPdfCellRender, args);
263
+ if (pivotCell.axis == "column") {
264
+ args = {
265
+ style: args.style,
266
+ cell: args.cell,
267
+ gridCell: args.pivotCell
268
+ };
269
+ this.parent.trigger(events.pdfHeaderQueryCellInfo, args);
270
+ pdfGridRow.cells.getCell(localCnt).value = args.gridCell.formattedText ? args.gridCell.formattedText : cellValue;
271
+ }
272
+ else {
273
+ args = {
274
+ style: args.style,
275
+ cell: args.cell,
276
+ column: undefined,
277
+ data: args.pivotCell,
278
+ value: cellValue,
279
+ };
280
+ this.parent.trigger(events.pdfQueryCellInfo, args);
281
+ pdfGridRow.cells.getCell(localCnt).value = args.value ? args.value : cellValue;
282
+ }
256
283
  if (args.style) {
257
284
  this.processCellStyle(pdfGridRow.cells.getCell(localCnt), args);
258
285
  }
@@ -264,6 +291,15 @@ var PDFExport = /** @class */ (function () {
264
291
  cell: pdfGridRow.cells.getCell(localCnt)
265
292
  };
266
293
  this.parent.trigger(events.onPdfCellRender, args);
294
+ var pivotCell = { formattedText: "" };
295
+ if (pivotCell.axis == "column") {
296
+ args = {
297
+ style: args.style,
298
+ cell: args.cell,
299
+ gridCell: args.pivotCell
300
+ };
301
+ this.parent.trigger(events.pdfHeaderQueryCellInfo, args);
302
+ }
267
303
  if (args.style) {
268
304
  this.processCellStyle(pdfGridRow.cells.getCell(localCnt), args);
269
305
  }
@@ -9,6 +9,7 @@ export declare class VirtualScroll {
9
9
  private pageXY;
10
10
  private eventType;
11
11
  private engineModule;
12
+ private isFireFox;
12
13
  /** @hidden */
13
14
  direction: string;
14
15
  private keyboardEvents;
@@ -1,4 +1,4 @@
1
- import { EventHandler, setStyleAttribute } from '@syncfusion/ej2-base';
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
4
  /**
@@ -14,6 +14,7 @@ var VirtualScroll = /** @class */ (function () {
14
14
  this.previousValues = { top: 0, left: 0 };
15
15
  this.frozenPreviousValues = { top: 0, left: 0 };
16
16
  this.eventType = '';
17
+ this.isFireFox = Browser.userAgent.toLowerCase().indexOf('firefox') > -1;
17
18
  this.parent = parent;
18
19
  this.engineModule = this.parent.dataType === 'pivot' ? this.parent.engineModule : this.parent.olapEngineModule;
19
20
  this.addInternalEvents();
@@ -37,11 +38,14 @@ var VirtualScroll = /** @class */ (function () {
37
38
  var mScrollBar = mCont.parentElement.parentElement.querySelector('.' + cls.MOVABLESCROLL_DIV);
38
39
  EventHandler.clearEvents(mCont);
39
40
  EventHandler.clearEvents(fCont);
41
+ if (this.isFireFox) {
42
+ EventHandler.clearEvents(mHdr);
43
+ }
40
44
  if (this.engineModule) {
41
45
  var ele = this.parent.isAdaptive ? mCont : mCont.parentElement.parentElement.querySelector('.' + cls.MOVABLESCROLL_DIV);
42
46
  EventHandler.add(ele, 'scroll touchmove pointermove', this.onHorizondalScroll(mHdr, mCont, fCont), this);
43
47
  EventHandler.add(mCont.parentElement, 'scroll wheel touchmove pointermove keyup keydown', this.onVerticalScroll(fCont, mCont), this);
44
- EventHandler.add(mCont.parentElement.parentElement, 'mouseup touchend', this.common(mHdr, mCont, fCont), this);
48
+ EventHandler.add(mCont, 'mouseup touchend scroll', this.common(mHdr, mCont, fCont), this);
45
49
  EventHandler.add(mScrollBar, 'scroll', this.onCustomScrollbarScroll(mCont, mHdr), this);
46
50
  EventHandler.add(mCont, 'scroll', this.onCustomScrollbarScroll(mScrollBar, mHdr), this);
47
51
  EventHandler.add(mHdr, 'scroll', this.onCustomScrollbarScroll(mScrollBar, mCont), this);
@@ -98,7 +102,7 @@ var VirtualScroll = /** @class */ (function () {
98
102
  }
99
103
  var target = e.target;
100
104
  var left = target.scrollLeft;
101
- if (_this.previousValues.left === left) {
105
+ if (_this.previousValues.left === left || (_this.isFireFox && target.classList.contains(cls.MOVABLEHEADER_DIV))) {
102
106
  return;
103
107
  }
104
108
  content.scrollLeft = left;
@@ -1359,6 +1359,8 @@ export declare class PivotView extends Component<HTMLElement> implements INotify
1359
1359
  * @event
1360
1360
  */
1361
1361
  actionFailure: EmitType<PivotActionFailureEventArgs>;
1362
+ /** @hidden */
1363
+ destroyEngine: boolean;
1362
1364
  /**
1363
1365
  * Constructor for creating the widget
1364
1366
  * @param {PivotViewModel} options - options.