@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
@@ -1326,7 +1326,7 @@ class PivotEngine {
1326
1326
  if (this.fields.indexOf(newFieldName) === -1) {
1327
1327
  this.fields.push(newFieldName);
1328
1328
  }
1329
- item[this.fieldKeys[newFieldName]] = (isInRangeAvail ? undefined : new Date(newDate.setMonth(date.getMonth(), newDate.getDate())).toString());
1329
+ item[this.fieldKeys[newFieldName]] = (isInRangeAvail ? undefined : new Date(newDate.setMonth(date.getMonth(), 1)).toString());
1330
1330
  }
1331
1331
  break;
1332
1332
  case 'Days':
@@ -2543,7 +2543,7 @@ class PivotEngine {
2543
2543
  row: rows[i],
2544
2544
  column: columns,
2545
2545
  value: value,
2546
- cellSets: this.getCellSet(this.rawIndexObject),
2546
+ cellSets: this.getValueCellInfo ? this.getCellSet(this.rawIndexObject) : [],
2547
2547
  rowCellType: (rows[i].hasChild && rows[i].isDrilled ? 'subTotal' : rows[i].type === 'grand sum' ? 'grandTotal' : 'value'),
2548
2548
  columnCellType: (columns.hasChild && columns.isDrilled ? 'subTotal' : columns.type === 'grand sum' ? 'grandTotal' : 'value'),
2549
2549
  aggregateType: aggregate,
@@ -3443,7 +3443,7 @@ class PivotEngine {
3443
3443
  PivotUtil.applyHeadersSort(sortMembersOrder, sortOrder, type);
3444
3444
  isHeaderSortByDefault = true;
3445
3445
  }
3446
- if (isHeaderSortByDefault) {
3446
+ if (isHeaderSortByDefault && this.getHeaderSortInfo) {
3447
3447
  let copyOrder = [];
3448
3448
  for (let m = 0, n = 0; m < sortMembersOrder.length; m++) {
3449
3449
  let member = sortMembersOrder[m];
@@ -3577,7 +3577,7 @@ class PivotEngine {
3577
3577
  row: header,
3578
3578
  column: member,
3579
3579
  value: value,
3580
- cellSets: this.getCellSet(this.rawIndexObject),
3580
+ cellSets: this.getValueCellInfo ? this.getCellSet(this.rawIndexObject) : [],
3581
3581
  rowCellType: (header.hasChild && header.isDrilled ? 'subTotal' : header.type === 'grand sum' ? 'grandTotal' : 'value'),
3582
3582
  columnCellType: (member.hasChild && member.isDrilled ? 'subTotal' : member.type === 'grand sum' ? 'grandTotal' : 'value'),
3583
3583
  aggregateType: mType,
@@ -4784,8 +4784,9 @@ class PivotEngine {
4784
4784
  }
4785
4785
  for (let index of indexCollection) {
4786
4786
  let currentSet = data[index[0]][index[1]];
4787
+ let actualValue = isNullOrUndefined(selectedRowValues[index[1]].actualValue) ? 0 : selectedRowValues[index[1]].actualValue;
4787
4788
  // let cVal: number = currentSet.value - (selectedRowValues[index[1]] as IAxisSet).value;
4788
- let cVal = currentSet.actualValue - selectedRowValues[index[1]].actualValue;
4789
+ let cVal = (isNullOrUndefined(currentSet.actualValue) ? 0 : currentSet.actualValue) - actualValue;
4789
4790
  cVal = isNaN(cVal) ? 0 : (currentSet.value === 0 && selectedRowValues[index[1]].value === 0) ? 0 : cVal;
4790
4791
  if (!this.aggregatedValueMatrix[index[0]]) {
4791
4792
  this.aggregatedValueMatrix[index[0]] = [];
@@ -4797,8 +4798,7 @@ class PivotEngine {
4797
4798
  else {
4798
4799
  // cVal = ((selectedRowValues[index[1]] as IAxisSet).value === 0 ?
4799
4800
  // 0 : (cVal / (selectedRowValues[index[1]] as IAxisSet).value));
4800
- cVal = (selectedRowValues[index[1]].actualValue === 0 ?
4801
- 0 : (cVal / selectedRowValues[index[1]].actualValue));
4801
+ cVal = (actualValue === 0 ? 0 : (cVal / actualValue));
4802
4802
  this.aggregatedValueMatrix[index[0]][index[1]] = cVal;
4803
4803
  currentSet.formattedText = currentSet.showSubTotals ? (cVal !== 0 ? this.globalize.formatNumber(cVal, { format: 'P', maximumFractionDigits: this.getPercentFormat(this.formatFields, currentSet.actualText) }) : this.emptyCellTextContent) : currentSet.formattedText;
4804
4804
  }
@@ -5021,7 +5021,9 @@ class PivotEngine {
5021
5021
  activeColumn[cln].valueSort[item.valueSort.levelName] &&
5022
5022
  currentSet.axis === 'value' && currentSet.actualText === name) {
5023
5023
  if (activeColumn[cln].type !== 'grand sum') {
5024
- cVal += currentSet.value;
5024
+ if (!isNullOrUndefined(currentSet.value)) {
5025
+ cVal += currentSet.value;
5026
+ }
5025
5027
  currentSet.formattedText = subTotal ? '' : this.getFormattedValue(cVal, name).formattedText;
5026
5028
  if (!this.aggregatedValueMatrix[rln]) {
5027
5029
  this.aggregatedValueMatrix[rln] = [];
@@ -5133,7 +5135,7 @@ class PivotEngine {
5133
5135
  row: rows[rln],
5134
5136
  column: columns[cln],
5135
5137
  value: value,
5136
- cellSets: this.getCellSet(this.rawIndexObject),
5138
+ cellSets: this.getValueCellInfo ? this.getCellSet(this.rawIndexObject) : [],
5137
5139
  rowCellType: (rows[rln].hasChild && rows[rln].isDrilled ? 'subTotal' : rows[rln].type === 'grand sum' ? 'grandTotal' : 'value'),
5138
5140
  columnCellType: (columns[cln].hasChild && columns[cln].isDrilled ? 'subTotal' : columns[cln].type === 'grand sum' ? 'grandTotal' : 'value'),
5139
5141
  aggregateType: aggregate,
@@ -5843,6 +5845,8 @@ const afterPivotTableRender = 'afterPivotTableRender';
5843
5845
  /** @hidden */
5844
5846
  const beforeExport = 'beforeExport';
5845
5847
  /** @hidden */
5848
+ const exportComplete = 'exportComplete';
5849
+ /** @hidden */
5846
5850
  const excelHeaderQueryCellInfo = 'excelHeaderQueryCellInfo';
5847
5851
  /** @hidden */
5848
5852
  const pdfHeaderQueryCellInfo = 'pdfHeaderQueryCellInfo';
@@ -5968,6 +5972,10 @@ const uiUpdate = 'ui-update';
5968
5972
  /** @hidden */
5969
5973
  const scroll = 'scroll';
5970
5974
  /** @hidden */
5975
+ const verticalScroll = 'vertical-scroll';
5976
+ /** @hidden */
5977
+ const horizontalScroll = 'horizontal-scroll';
5978
+ /** @hidden */
5971
5979
  const contentReady = 'content-ready';
5972
5980
  /** @hidden */
5973
5981
  const dataReady = 'data-ready';
@@ -6167,6 +6175,10 @@ const windowResized = 'Window resized';
6167
6175
  const recordUpdated = 'Records updated';
6168
6176
  /** @hidden */
6169
6177
  const drillThroughClosed = 'Drill-through closed';
6178
+ /** @hidden */
6179
+ const verticalScrolled = 'Vertically scrolled';
6180
+ /** @hidden */
6181
+ const horizontalScrolled = 'Horizontally scrolled';
6170
6182
 
6171
6183
  /**
6172
6184
  * CSS Constants
@@ -6511,13 +6523,11 @@ const CALC_FORMAT_INPUT = 'e-custom-format-input';
6511
6523
  /** @hidden */
6512
6524
  const CALCINPUTDIV = 'e-pivot-calc-input-div';
6513
6525
  /** @hidden */
6514
- const CALC_CUSTOM_FORMAT_INPUTDIV = 'e-pivot-calc-custom-format-div';
6515
- /** @hidden */
6516
- const OLAP_CALC_CUSTOM_FORMAT_INPUTDIV = 'e-olap-calc-custom-format-div';
6526
+ const PIVOT_CALC_CUSTOM_FORMAT_INPUTDIV = 'e-pivot-calc-custom-format-div';
6517
6527
  /** @hidden */
6518
6528
  const CALC_HIERARCHY_LIST_DIV = 'e-olap-calc-hierarchy-list-div';
6519
6529
  /** @hidden */
6520
- const CALC_FORMAT_TYPE_DIV = 'e-olap-calc-format-type-div';
6530
+ const CALC_FORMAT_TYPE_DIV = 'e-pivot-calc-format-type-div';
6521
6531
  /** @hidden */
6522
6532
  const CALC_MEMBER_TYPE_DIV = 'e-olap-calc-member-type-div';
6523
6533
  /** @hidden */
@@ -6587,7 +6597,7 @@ const PIVOT_FORMULA_TITLE_CLASS = 'e-pivot-formula-title';
6587
6597
  /** @hidden */
6588
6598
  const OLAP_HIERARCHY_TITLE_CLASS = 'e-olap-hierarchy-title';
6589
6599
  /** @hidden */
6590
- const OLAP_FORMAT_TITLE_CLASS = 'e-olap-format-title';
6600
+ const PIVOT_FORMAT_TITLE_CLASS = 'e-pivot-format-title';
6591
6601
  /** @hidden */
6592
6602
  const OLAP_MEMBER_TITLE_CLASS = 'e-olap-member-title';
6593
6603
  /** @hidden */
@@ -7597,12 +7607,22 @@ class Render {
7597
7607
  this.parent.lastColumn.width = 'auto';
7598
7608
  this.parent.lastColumn = undefined;
7599
7609
  }
7610
+ let exportCompleteEventArgs = {
7611
+ type: 'PDF',
7612
+ promise: args.promise
7613
+ };
7614
+ this.parent.trigger(exportComplete, exportCompleteEventArgs);
7600
7615
  }
7601
7616
  excelExportComplete(args) {
7602
7617
  if (this.parent.lastColumn !== undefined && this.parent.lastColumn.width !== 'auto') {
7603
7618
  this.parent.lastColumn.width = 'auto';
7604
7619
  this.parent.lastColumn = undefined;
7605
7620
  }
7621
+ let exportCompleteEventArgs = {
7622
+ type: 'Excel/CSV',
7623
+ promise: args.promise
7624
+ };
7625
+ this.parent.trigger(exportComplete, exportCompleteEventArgs);
7606
7626
  }
7607
7627
  /* eslint-enable */
7608
7628
  dataBound(args) {
@@ -7692,7 +7712,7 @@ class Render {
7692
7712
  isGroupElement = true;
7693
7713
  }
7694
7714
  let rowIndex = Number(elem.getAttribute('index'));
7695
- let colIndex = Number(elem.getAttribute('aria-colindex'));
7715
+ let colIndex = Number(elem.getAttribute('data-colindex'));
7696
7716
  let pivotValue1 = this.parent.pivotValues[rowIndex][colIndex];
7697
7717
  let selectedID = item.id;
7698
7718
  switch (selectedID) {
@@ -7764,7 +7784,7 @@ class Render {
7764
7784
  if (groupField && groupField.type === 'Custom' || (this.parent.engineModule.fieldList[fieldName].isCustomField && fieldName.indexOf('_custom_group') > -1)) {
7765
7785
  groupField = PivotUtil.getFieldByName(fieldName.replace('_custom_group', ''), this.parent.dataSourceSettings.groupSettings);
7766
7786
  if (groupField) {
7767
- let cell = this.parent.engineModule.pivotValues[Number(elem.getAttribute('index'))][Number(elem.getAttribute('aria-colindex'))];
7787
+ let cell = this.parent.engineModule.pivotValues[Number(elem.getAttribute('index'))][Number(elem.getAttribute('data-colindex'))];
7768
7788
  let selectedCellsInfo = this.parent.groupingModule.getSelectedCells(cell.axis, fieldName, cell.actualText.toString());
7769
7789
  selectedCellsInfo.push({ axis: cell.axis, fieldName: fieldName, name: cell.actualText.toString(), cellInfo: cell });
7770
7790
  let selectedOptions = this.parent.groupingModule.getSelectedOptions(selectedCellsInfo);
@@ -7964,7 +7984,7 @@ class Render {
7964
7984
  ele = target.parentElement.parentElement;
7965
7985
  }
7966
7986
  let rowIndx = Number(ele.getAttribute('index'));
7967
- let colIndx = Number(ele.getAttribute('aria-colindex'));
7987
+ let colIndx = Number(ele.getAttribute('data-colindex'));
7968
7988
  let pivotValue = this.parent.pivotValues[rowIndx][colIndx];
7969
7989
  let aggregateType;
7970
7990
  if (args.item.id.indexOf(this.parent.element.id + '_Agg') > -1) {
@@ -8108,7 +8128,7 @@ class Render {
8108
8128
  let fieldName = target.getAttribute('fieldName');
8109
8129
  if (!fieldName || fieldName == '') {
8110
8130
  let rowIndx = Number(target.getAttribute('index'));
8111
- let colIndx = Number(target.getAttribute('aria-colindex'));
8131
+ let colIndx = Number(target.getAttribute('data-colindex'));
8112
8132
  fieldName = this.engine.pivotValues[rowIndx][colIndx].actualText;
8113
8133
  }
8114
8134
  let valuefields = this.parent.dataSourceSettings.values;
@@ -8295,7 +8315,7 @@ class Render {
8295
8315
  /* eslint-disable-next-line */
8296
8316
  let selectedElements = this.parent.element.querySelectorAll('.' + CELL_SELECTED_BGCOLOR + ',.' + SELECTED_BGCOLOR);
8297
8317
  for (let element of selectedElements) {
8298
- let colIndex = Number(element.getAttribute('aria-colindex'));
8318
+ let colIndex = Number(element.getAttribute('data-colindex'));
8299
8319
  let rowIndex = Number(element.getAttribute('index'));
8300
8320
  let cell = this.engine.pivotValues[rowIndex][colIndex];
8301
8321
  if (cell) {
@@ -8338,7 +8358,7 @@ class Render {
8338
8358
  let isRowFieldsAvail = cell.valueSort && cell.valueSort.levelName === (this.parent.dataSourceSettings.rows.length === 0 && this.parent.dataSourceSettings.valueAxis === 'row' &&
8339
8359
  this.parent.localeObj.getConstant('grandTotal') + (this.parent.dataSourceSettings.valueSortSettings.headerDelimiter) + (cell.formattedText));
8340
8360
  tCell.setAttribute('index', cell.rowIndex ? cell.rowIndex.toString() : '0');
8341
- if (tCell.getAttribute('aria-colindex') === '0') {
8361
+ if (tCell.getAttribute('data-colindex') === '0') {
8342
8362
  if (this.parent.dataType === 'pivot') {
8343
8363
  let isValueCell = cell.type && cell.type === 'value';
8344
8364
  tCell.innerText = '';
@@ -8441,18 +8461,18 @@ class Render {
8441
8461
  let innerText = tCell.innerText;
8442
8462
  tCell.innerText = '';
8443
8463
  tCell.classList.add(VALUESCONTENT);
8444
- cell = args.data[Number(tCell.getAttribute('aria-colindex'))];
8464
+ cell = args.data[Number(tCell.getAttribute('data-colindex'))];
8445
8465
  cell = isNullOrUndefined(cell) ? args.column.customAttributes.cell : cell;
8446
8466
  cell.isGrandSum = isRowFieldsAvail ? true : cell.isGrandSum;
8447
8467
  if (cell.isSum) {
8448
8468
  tCell.classList.add(SUMMARY);
8449
8469
  }
8450
8470
  let isGrandSum = (isNullOrUndefined(cell.isGrandSum) && (!isNullOrUndefined(this.parent.olapEngineModule) && this.parent.olapEngineModule.olapValueAxis === 'column') && this.parent.dataType === 'olap' &&
8451
- ((this.colGrandPos - this.parent.dataSourceSettings.values.length) < Number(tCell.getAttribute('aria-colindex'))));
8452
- if (cell.isGrandSum || (isGrandSum || this.colGrandPos === Number(tCell.getAttribute('aria-colindex'))) || this.rowGrandPos === Number(tCell.getAttribute('index'))) {
8471
+ ((this.colGrandPos - this.parent.dataSourceSettings.values.length) < Number(tCell.getAttribute('data-colindex'))));
8472
+ if (cell.isGrandSum || (isGrandSum || this.colGrandPos === Number(tCell.getAttribute('data-colindex'))) || this.rowGrandPos === Number(tCell.getAttribute('index'))) {
8453
8473
  tCell.classList.add('e-gtot');
8454
8474
  }
8455
- else if (this.parent.dataType === 'olap' ? cell.isSum : this.validateColumnTotalcell(!isNullOrUndefined(cell.value) ? cell.colIndex : cell.colIndex - 1)) {
8475
+ else if (this.parent.dataType === 'olap' ? cell.isSum : this.validateColumnTotalcell(cell.colIndex)) {
8456
8476
  tCell.classList.add('e-colstot');
8457
8477
  }
8458
8478
  if (cell.cssClass) {
@@ -8465,12 +8485,12 @@ class Render {
8465
8485
  '<a data-url="' + innerText + '" class="e-hyperlinkcell ' + customClass + '">' + innerText + '</a>' : innerText)
8466
8486
  }));
8467
8487
  if (this.parent.gridSettings.allowReordering && !this.parent.showGroupingBar) {
8468
- tCell.setAttribute('aria-colindex', args.column.customAttributes.cell.colIndex.toString());
8488
+ tCell.setAttribute('data-colindex', args.column.customAttributes.cell.colIndex.toString());
8469
8489
  }
8470
8490
  }
8471
8491
  if (this.parent.cellTemplate) {
8472
8492
  let index = tCell.getAttribute('index');
8473
- let colindex = tCell.getAttribute('aria-colindex');
8493
+ let colindex = tCell.getAttribute('data-colindex');
8474
8494
  let element = this.parent.getCellTemplate()({ targetCell: tCell, cellInfo: cell }, this.parent, 'cellTemplate', this.parent.element.id + '_cellTemplate', null, null, tCell);
8475
8495
  if (element && element !== '' && element.length > 0) {
8476
8496
  if (this.parent.enableHtmlSanitizer) {
@@ -8638,7 +8658,7 @@ class Render {
8638
8658
  args.node.style.borderBottomWidth = '0px';
8639
8659
  }
8640
8660
  }
8641
- args.node.setAttribute('aria-colindex', cell.colIndex.toString());
8661
+ args.node.setAttribute('data-colindex', cell.colIndex.toString());
8642
8662
  args.node.setAttribute('index', cell.rowIndex.toString());
8643
8663
  let fieldName;
8644
8664
  if (this.parent.dataType === 'pivot') {
@@ -8729,7 +8749,7 @@ class Render {
8729
8749
  tCell = this.appendValueSortIcon(cell, tCell, cell.rowIndex, cell.colIndex);
8730
8750
  if (this.parent.cellTemplate) {
8731
8751
  let index = tCell.getAttribute('index');
8732
- let colindex = tCell.getAttribute('aria-colindex');
8752
+ let colindex = tCell.getAttribute('data-colindex');
8733
8753
  this.parent.gridHeaderCellInfo.push({ targetCell: tCell });
8734
8754
  }
8735
8755
  let len = this.parent.dataSourceSettings.values.length;
@@ -8812,7 +8832,7 @@ class Render {
8812
8832
  cell = (cell.className.indexOf('e-headercelldiv') > -1 ? cell.parentElement : cell);
8813
8833
  let args = {
8814
8834
  currentCell: cell,
8815
- data: this.engine.pivotValues[Number(cell.getAttribute('index'))][Number(cell.getAttribute('aria-colindex'))],
8835
+ data: this.engine.pivotValues[Number(cell.getAttribute('index'))][Number(cell.getAttribute('data-colindex'))],
8816
8836
  cancel: true,
8817
8837
  nativeEvent: e
8818
8838
  };
@@ -13082,7 +13102,7 @@ class KeyboardInteraction {
13082
13102
  if (this.parent.grid && this.parent.gridSettings.allowSelection && this.parent.gridSettings.selectionSettings.mode !== 'Row' &&
13083
13103
  !target.classList.contains('e-numerictextbox')) {
13084
13104
  let control = this.parent;
13085
- let colIndex = Number(e.target.getAttribute('aria-colIndex'));
13105
+ let colIndex = Number(e.target.getAttribute('data-colindex'));
13086
13106
  let rowIndex = Number(e.target.getAttribute('index'));
13087
13107
  let ele;
13088
13108
  /* eslint-disable */
@@ -13092,7 +13112,7 @@ class KeyboardInteraction {
13092
13112
  control.renderModule.rowStartPos !== rowIndex)) ? null : this.getParentElement(control, ele, colIndex, rowIndex - 1);
13093
13113
  }
13094
13114
  else if (e.action === 'shiftDown' || e.action === 'downArrow') {
13095
- ele = control.element.querySelector('th[aria-colindex="' + colIndex + '"][index="' + (rowIndex + 1) + '"]');
13115
+ ele = control.element.querySelector('th[data-colindex="' + colIndex + '"][index="' + (rowIndex + 1) + '"]');
13096
13116
  }
13097
13117
  else if (e.action === 'shiftLeft' || e.action === 'leftArrow') {
13098
13118
  ele = e.target.previousSibling;
@@ -13103,7 +13123,7 @@ class KeyboardInteraction {
13103
13123
  }
13104
13124
  if (!isNullOrUndefined(ele)) {
13105
13125
  if (control.gridSettings.selectionSettings.mode === 'Both' ? !ele.classList.contains(ROW_CELL_CLASS) : true) {
13106
- colIndex = Number(ele.getAttribute('aria-colindex'));
13126
+ colIndex = Number(ele.getAttribute('data-colindex'));
13107
13127
  rowIndex = Number(ele.getAttribute('index'));
13108
13128
  let colSpan = Number(ele.getAttribute('aria-colspan'));
13109
13129
  control.clearSelection(ele, e, colIndex, rowIndex);
@@ -13125,11 +13145,11 @@ class KeyboardInteraction {
13125
13145
  }
13126
13146
  else {
13127
13147
  if (e.action === 'upArrow') {
13128
- ele = control.element.querySelector('[aria-colindex="' + colIndex + '"][index="' + (rowIndex - 1) + '"]');
13148
+ ele = control.element.querySelector('[data-colindex="' + colIndex + '"][index="' + (rowIndex - 1) + '"]');
13129
13149
  rowIndex--;
13130
13150
  }
13131
13151
  else if (e.action === 'downArrow') {
13132
- ele = control.element.querySelector('[aria-colindex="' + colIndex + '"][index="' + (rowIndex + 1) + '"]');
13152
+ ele = control.element.querySelector('[data-colindex="' + colIndex + '"][index="' + (rowIndex + 1) + '"]');
13133
13153
  rowIndex++;
13134
13154
  }
13135
13155
  if (!isNullOrUndefined(ele)) {
@@ -13159,7 +13179,7 @@ class KeyboardInteraction {
13159
13179
  }
13160
13180
  getParentElement(control, ele, colIndex, rowIndex) {
13161
13181
  while (!ele) {
13162
- ele = control.element.querySelector('[aria-colindex="' + colIndex + '"][index="' + rowIndex + '"]');
13182
+ ele = control.element.querySelector('[data-colindex="' + colIndex + '"][index="' + rowIndex + '"]');
13163
13183
  colIndex--;
13164
13184
  }
13165
13185
  return ele;
@@ -13443,6 +13463,9 @@ class VirtualScroll$1 {
13443
13463
  update(mHdr, mCont, top, left, e) {
13444
13464
  this.parent.isScrolling = true;
13445
13465
  let engine = this.parent.dataType === 'pivot' ? this.parent.engineModule : this.parent.olapEngineModule;
13466
+ let args = {
13467
+ dataSourceSettings: PivotUtil.getClonedDataSourceSettings(this.parent.dataSourceSettings)
13468
+ };
13446
13469
  if (this.parent.pageSettings && engine.pageSettings) {
13447
13470
  if (this.direction === 'vertical') {
13448
13471
  let rowValues = this.parent.dataType === 'pivot' ?
@@ -13454,24 +13477,28 @@ class VirtualScroll$1 {
13454
13477
  // this.parent.hideWaitingPopup();
13455
13478
  return;
13456
13479
  }
13480
+ this.parent.actionObj.actionName = verticalScroll;
13481
+ this.parent.actionBeginMethod();
13457
13482
  this.parent.showWaitingPopup();
13458
13483
  this.parent.scrollPosObject.vertical = section;
13459
- engine.pageSettings.rowCurrentPage = section > 1 ? section : 1;
13484
+ this.parent.pageSettings.rowCurrentPage = engine.pageSettings.rowCurrentPage = section > 1 ? section : 1;
13460
13485
  let rowStartPos = 0;
13461
- if (this.parent.dataType === 'pivot') {
13462
- if (this.parent.dataSourceSettings.mode === 'Server') {
13463
- this.parent.getEngine('onScroll', null, null, null, null, null, null);
13486
+ this.parent.trigger(enginePopulating, args, (observedArgs) => {
13487
+ if (this.parent.dataType === 'pivot') {
13488
+ if (this.parent.dataSourceSettings.mode === 'Server') {
13489
+ this.parent.getEngine('onScroll', null, null, null, null, null, null);
13490
+ }
13491
+ else {
13492
+ this.parent.engineModule.generateGridData(this.parent.dataSourceSettings, true, this.parent.engineModule.headerCollection);
13493
+ rowStartPos = this.parent.engineModule.rowStartPos;
13494
+ }
13464
13495
  }
13465
13496
  else {
13466
- this.parent.engineModule.generateGridData(this.parent.dataSourceSettings, true, this.parent.engineModule.headerCollection);
13467
- rowStartPos = this.parent.engineModule.rowStartPos;
13497
+ this.parent.olapEngineModule.scrollPage('scroll');
13498
+ rowStartPos = this.parent.olapEngineModule.pageRowStartPos;
13468
13499
  }
13469
- }
13470
- else {
13471
- this.parent.olapEngineModule.scrollPage('scroll');
13472
- rowStartPos = this.parent.olapEngineModule.pageRowStartPos;
13473
- }
13474
- this.parent.pivotValues = engine.pivotValues;
13500
+ this.enginePopulatedEventMethod(engine);
13501
+ });
13475
13502
  let exactPage = Math.ceil(rowStartPos / (this.parent.pageSettings.rowSize * rowValues));
13476
13503
  let pos = exactSize * exactPage -
13477
13504
  (engine.rowFirstLvl * rowValues * this.parent.gridSettings.rowHeight);
@@ -13487,32 +13514,50 @@ class VirtualScroll$1 {
13487
13514
  // this.parent.hideWaitingPopup();
13488
13515
  return;
13489
13516
  }
13517
+ this.parent.actionObj.actionName = horizontalScroll;
13518
+ this.parent.actionBeginMethod();
13490
13519
  this.parent.showWaitingPopup();
13491
13520
  let pivot = this.parent;
13492
13521
  pivot.scrollPosObject.horizontal = section;
13493
- engine.pageSettings.columnCurrentPage = section > 1 ? section : 1;
13522
+ this.parent.pageSettings.columnCurrentPage = engine.pageSettings.columnCurrentPage = section > 1 ? section : 1;
13494
13523
  let colStartPos = 0;
13495
- if (pivot.dataType === 'pivot') {
13496
- if (this.parent.dataSourceSettings.mode === 'Server') {
13497
- this.parent.getEngine('onScroll', null, null, null, null, null, null);
13524
+ this.parent.trigger(enginePopulating, args, (observedArgs) => {
13525
+ if (pivot.dataType === 'pivot') {
13526
+ if (this.parent.dataSourceSettings.mode === 'Server') {
13527
+ this.parent.getEngine('onScroll', null, null, null, null, null, null);
13528
+ }
13529
+ else {
13530
+ pivot.engineModule.generateGridData(pivot.dataSourceSettings, true, pivot.engineModule.headerCollection);
13531
+ colStartPos = pivot.engineModule.colStartPos;
13532
+ }
13498
13533
  }
13499
13534
  else {
13500
- pivot.engineModule.generateGridData(pivot.dataSourceSettings, true, pivot.engineModule.headerCollection);
13501
- colStartPos = pivot.engineModule.colStartPos;
13535
+ pivot.olapEngineModule.scrollPage('scroll');
13536
+ colStartPos = pivot.olapEngineModule.pageColStartPos;
13502
13537
  }
13503
- }
13504
- else {
13505
- pivot.olapEngineModule.scrollPage('scroll');
13506
- colStartPos = pivot.olapEngineModule.pageColStartPos;
13507
- }
13508
- pivot.pivotValues = engine.pivotValues;
13538
+ this.enginePopulatedEventMethod(engine);
13539
+ });
13509
13540
  let exactPage = Math.ceil(colStartPos / (pivot.pageSettings.columnSize * colValues));
13510
13541
  let pos = exactSize * exactPage - (engine.colFirstLvl *
13511
13542
  colValues * pivot.gridSettings.columnWidth);
13512
13543
  pivot.scrollPosObject.horizontalSection = pos;
13513
13544
  }
13545
+ this.parent.actionObj.actionName = this.parent.getActionCompleteName();
13546
+ if (this.parent.actionObj.actionName) {
13547
+ this.parent.actionCompleteMethod();
13548
+ }
13514
13549
  }
13515
13550
  }
13551
+ enginePopulatedEventMethod(engine, control) {
13552
+ let pivot = control ? control : this.parent;
13553
+ let eventArgs = {
13554
+ dataSourceSettings: pivot.dataSourceSettings,
13555
+ pivotValues: pivot.pivotValues
13556
+ };
13557
+ pivot.trigger(enginePopulated, eventArgs, (observedArgs) => {
13558
+ this.parent.pivotValues = engine.pivotValues;
13559
+ });
13560
+ }
13516
13561
  setPageXY() {
13517
13562
  return (e) => {
13518
13563
  if (e.pointerType === 'mouse') {
@@ -14345,7 +14390,7 @@ class DrillThrough {
14345
14390
  }
14346
14391
  if (ele) {
14347
14392
  if (this.parent.allowDrillThrough && ele.classList.contains('e-valuescontent') || this.parent.editSettings.allowEditing) {
14348
- let colIndex = Number(ele.getAttribute('aria-colindex'));
14393
+ let colIndex = Number(ele.getAttribute('data-colindex'));
14349
14394
  let rowIndex = Number(ele.getAttribute('index'));
14350
14395
  this.executeDrillThrough(this.parent.pivotValues[rowIndex][colIndex], rowIndex, colIndex, ele);
14351
14396
  }
@@ -14536,7 +14581,7 @@ class PivotChart {
14536
14581
  if (!this.parent.chart && (this.parent.element.querySelector('.e-chart') || this.parent.element.querySelector('.e-accumulationchart'))) {
14537
14582
  remove(select('#' + this.parent.element.id + '_chart', this.parent.element));
14538
14583
  }
14539
- if (this.chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0) {
14584
+ if (this.chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') {
14540
14585
  this.measureList = this.dataSourceSettings.values.map((item) => { return item.name; });
14541
14586
  }
14542
14587
  else {
@@ -14615,7 +14660,7 @@ class PivotChart {
14615
14660
  this.columnGroupObject = {};
14616
14661
  this.accEmptyPoint = false;
14617
14662
  let pivotValues = this.engineModule.pivotValues;
14618
- this.currentMeasure = (chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0) ? this.measureList[0] :
14663
+ this.currentMeasure = (chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') ? this.measureList[0] :
14619
14664
  (((chartSettings.value === '' || this.dataSourceSettings.values.filter((item) => {
14620
14665
  return item.name === chartSettings.value;
14621
14666
  }).length === 0) && this.dataSourceSettings.values.length > 0) ? this.dataSourceSettings.values[0].name : chartSettings.value);
@@ -14657,7 +14702,7 @@ class PivotChart {
14657
14702
  header.valueSort.levelName.toString().split(this.parent.dataSourceSettings.valueSortSettings.headerDelimiter) : undefined;
14658
14703
  isValidHeader = false;
14659
14704
  if (valueSort && valueSort[0] !== 'Grand Total') {
14660
- if ((chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0) ||
14705
+ if ((chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') ||
14661
14706
  valueSort.indexOf(measureNames[this.currentMeasure]) > -1) {
14662
14707
  isValidHeader = true;
14663
14708
  }
@@ -14781,7 +14826,7 @@ class PivotChart {
14781
14826
  let actualText = (this.parent.dataType === 'olap' && tupInfo && tupInfo.measureName) ?
14782
14827
  tupInfo.measureName : cell.actualText;
14783
14828
  if (!(this.parent.dataType === 'olap' && cell.isGrandSum) && !totColIndex[cell.colIndex] && cell.axis === 'value' && firstRowCell.type !== 'header' &&
14784
- actualText !== '' && ((chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0) ? true : actualText === this.currentMeasure)) {
14829
+ actualText !== '' && ((chartSettings.enableMultipleAxis && this.accumulationType.indexOf(chartSettings.chartSeries.type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') ? true : actualText === this.currentMeasure)) {
14785
14830
  if (isNullOrUndefined(firstRowCell.members)) {
14786
14831
  firstRowCell.members = [];
14787
14832
  }
@@ -14980,7 +15025,7 @@ class PivotChart {
14980
15025
  className: PIVOTCHART, id: this.parent.element.id + '_chart'
14981
15026
  }));
14982
15027
  }
14983
- if (!this.chartElement && this.parent.chartSettings.enableScrollOnMultiAxis && this.parent.chartSettings.enableMultipleAxis) {
15028
+ if (!this.chartElement && this.parent.chartSettings.enableScrollOnMultiAxis && this.parent.chartSettings.enableMultipleAxis && this.chartSettings.chartSeries.type !== 'Pareto') {
14984
15029
  this.parent.element.querySelector('.' + PIVOTCHART).innerHTML = '';
14985
15030
  this.chartElement = this.parent.element.querySelector('.' + PIVOTCHART).appendChild(createElement('div', {
14986
15031
  className: PIVOTCHART_INNER, id: this.parent.element.id + '_chartInner',
@@ -15001,7 +15046,7 @@ class PivotChart {
15001
15046
  }
15002
15047
  let height = this.getChartHeight();
15003
15048
  if (this.parent.chartSettings.enableScrollOnMultiAxis && this.parent.chartSettings.enableMultipleAxis &&
15004
- this.accumulationType.indexOf(type) < 0) {
15049
+ this.accumulationType.indexOf(type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') {
15005
15050
  this.parent.element.querySelector('.' + PIVOTCHART).style.height =
15006
15051
  (height === 'auto' ? this.getChartAutoHeight() : height) + 'px';
15007
15052
  this.parent.element.querySelector('.' + PIVOTCHART).style.width = width + 'px';
@@ -15012,7 +15057,7 @@ class PivotChart {
15012
15057
  }
15013
15058
  if (this.parent.chart && ((this.parent.chart.getModuleName() === 'accumulationchart' &&
15014
15059
  this.accumulationType.indexOf(type) < 0) || (this.parent.chart.getModuleName() === 'chart' &&
15015
- this.accumulationType.indexOf(type) > -1))) {
15060
+ this.accumulationType.indexOf(type) > -1 && this.chartSettings.chartSeries.type !== 'Pareto'))) {
15016
15061
  this.parent.chart.destroy();
15017
15062
  if (select('#' + this.parent.element.id + '_chart', this.parent.element)) {
15018
15063
  select('#' + this.parent.element.id + '_chart', this.parent.element).innerHTML = '';
@@ -15091,7 +15136,7 @@ class PivotChart {
15091
15136
  zoomSettings: currentZoomSettings,
15092
15137
  axes: (type === 'Polar' || type === 'Radar') ? [] : axesWithRows.axes,
15093
15138
  rows: (type === 'Polar' || type === 'Radar') ? [{}] :
15094
- (type === 'Bar' || type === 'StackingBar' || type === 'StackingBar100' &&
15139
+ (type === 'Bar' || type === 'StackingBar' || type === 'StackingBar100' || type === 'Pareto' &&
15095
15140
  this.chartSettings.enableMultipleAxis) ? [{ height: '100%' }] : axesWithRows.rows,
15096
15141
  columns: (type === 'Polar' || type === 'Radar') ? [{}] :
15097
15142
  (type === 'Bar' || type === 'StackingBar' || type === 'StackingBar100' &&
@@ -15101,7 +15146,7 @@ class PivotChart {
15101
15146
  width: width,
15102
15147
  height: (this.parent.chartSettings.chartSeries.type !== 'Polar' &&
15103
15148
  this.parent.chartSettings.chartSeries.type !== 'Radar' && this.parent.chartSettings.enableScrollOnMultiAxis &&
15104
- this.parent.chartSettings.enableMultipleAxis && this.parent.dataSourceSettings.values.length > 0) ?
15149
+ this.parent.chartSettings.enableMultipleAxis && this.parent.chartSettings.chartSeries.type !== 'Pareto' && this.parent.dataSourceSettings.values.length > 0) ?
15105
15150
  Number(height) > (this.parent.dataSourceSettings.values.length * 235) + 100 ? isNaN(Number(height)) ?
15106
15151
  height.toString() : (Number(height) - 5).toString() :
15107
15152
  (!isNaN(Number(height)) || this.parent.dataSourceSettings.values.length > 1) ?
@@ -15202,6 +15247,10 @@ class PivotChart {
15202
15247
  this.parent.chart.rows = [{ height: '100%' }];
15203
15248
  this.parent.chart.columns = axesWithRows.columns;
15204
15249
  }
15250
+ else if (type === 'Pareto' && this.chartSettings.enableMultipleAxis) {
15251
+ this.parent.chart.rows = [{ height: '100%' }];
15252
+ this.parent.chart.columns = [{ width: '100%' }];
15253
+ }
15205
15254
  else {
15206
15255
  this.parent.chart.rows = axesWithRows.rows;
15207
15256
  this.parent.chart.columns = [{ width: '100%' }];
@@ -15596,7 +15645,7 @@ class PivotChart {
15596
15645
  }
15597
15646
  tooltipRender(args) {
15598
15647
  let measure = args.series.yAxisName ? (args.series.yAxisName.split('_CumulativeAxis')[0]) :
15599
- ((this.chartSettings.enableMultipleAxis && this.accumulationType.indexOf(this.chartSettings.chartSeries.type) < 0) ?
15648
+ ((this.chartSettings.enableMultipleAxis && this.accumulationType.indexOf(this.chartSettings.chartSeries.type) < 0 && this.chartSettings.chartSeries.type !== 'Pareto') ?
15600
15649
  args.series.name ? args.series.name.split(' | ')[1] : args.data.seriesName ?
15601
15650
  args.data.seriesName.split(' | ')[1] : this.currentMeasure : this.measuresNames[this.currentMeasure] ?
15602
15651
  this.measuresNames[this.currentMeasure] : this.currentMeasure);
@@ -15608,14 +15657,14 @@ class PivotChart {
15608
15657
  let aggregateType = this.parent.dataType === 'olap' ? '' : this.parent.localeObj.getConstant(measureField.aggregateType);
15609
15658
  let measureAggregatedName = (this.parent.dataType === 'olap' ? '' : aggregateType + ' ' +
15610
15659
  this.parent.localeObj.getConstant('of') + ' ') + measureField.caption;
15611
- let formattedText = this.accumulationType.indexOf(this.parent.chartSettings.chartSeries.type) < 0 ?
15612
- args.text.split('<b>')[1].split('</b>')[0] : this.engineModule.pivotValues[rowIndex][colIndex].formattedText;
15660
+ let formattedText = this.engineModule.pivotValues[rowIndex][colIndex].formattedText;
15613
15661
  let formatField = this.engineModule.formatFields[measureField.id];
15614
- let formattedValue = ((formatField && formatField.format && formatField.format.toLowerCase().match(/n|p|c/) !== null &&
15662
+ let valueFormat = this.engineModule.getFormattedValue(args.point.y, measureField.id, formattedText);
15663
+ let formattedValue = (formatField && formatField.format && formatField.format.toLowerCase().match(/n|p|c/) !== null &&
15615
15664
  this.chartSettings.useGroupingSeparator) ? this.parent.dataType === 'olap' ?
15616
- this.engineModule.getFormattedValue(args.point.y, measureField.id, formattedText) :
15617
- this.parent.engineModule.getFormattedValue(args.point.y, measureField.id).formattedText :
15618
- formattedText);
15665
+ valueFormat.toString() :
15666
+ valueFormat.formattedText :
15667
+ formattedText;
15619
15668
  let columnText = (args.series.name ? args.series.name.split(' | ')[0] : args.data.seriesName.split(' | ')[0]);
15620
15669
  let rowText = args.point.x;
15621
15670
  if (this.parent.tooltipTemplate && this.parent.getTooltipTemplate() !== undefined || this.chartSettings.tooltip.template) {
@@ -15668,7 +15717,7 @@ class PivotChart {
15668
15717
  }
15669
15718
  }
15670
15719
  if (this.parent.chartSettings.enableScrollOnMultiAxis && this.parent.chartSettings.enableMultipleAxis) {
15671
- if (['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Radar', 'Polar'].indexOf(this.parent.chartSettings.chartSeries.type) >= 0) {
15720
+ if (['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Radar', 'Polar', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) >= 0) {
15672
15721
  this.parent.element.querySelector('.' + PIVOTCHART).style.overflow = 'visible';
15673
15722
  }
15674
15723
  else {
@@ -15944,6 +15993,16 @@ class PivotChart {
15944
15993
  args.text = '';
15945
15994
  }
15946
15995
  }
15996
+ if (args.axis.name !== 'primaryXAxis') {
15997
+ let formatField = this.engineModule.formatFields[args.axis.name];
15998
+ let valueFormat = this.engineModule.getFormattedValue(args.value, args.axis.name, args.text);
15999
+ let formattedValue = ((formatField && formatField.format && formatField.format.toLowerCase().match(/n|p|c/) !== null &&
16000
+ this.chartSettings.useGroupingSeparator) ? this.parent.dataType === 'olap' ?
16001
+ valueFormat.toString() :
16002
+ valueFormat.formattedText :
16003
+ args.value.toString());
16004
+ args.text = formattedValue;
16005
+ }
15947
16006
  this.parent.trigger(chartAxisLabelRender, args);
15948
16007
  }
15949
16008
  multiLevelLabelClick(args) {
@@ -16090,7 +16149,7 @@ class PivotChart {
16090
16149
  /* eslint-disable */
16091
16150
  /** @hidden */
16092
16151
  getResizedChartHeight() {
16093
- let height = ['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Radar', 'Polar'].indexOf(this.parent.chartSettings.chartSeries.type) < 0 &&
16152
+ let height = ['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Radar', 'Polar', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) < 0 &&
16094
16153
  this.parent.chartSettings.enableScrollOnMultiAxis && this.parent.chartSettings.enableMultipleAxis &&
16095
16154
  this.parent.dataSourceSettings.values.length > 0 ? Number(this.parent.chart.height) > (this.parent.dataSourceSettings.values.length * 235) + 100 ? /* eslint-disable-line */
16096
16155
  isNaN(Number(this.getChartHeight())) ? this.getChartHeight().toString() : (Number(this.getChartHeight()) - 5).toString() :
@@ -20319,7 +20378,7 @@ class OlapEngine {
20319
20378
  }
20320
20379
  isHeaderSortByDefault = true;
20321
20380
  }
20322
- if (isHeaderSortByDefault) {
20381
+ if (isHeaderSortByDefault && this.getHeaderSortInfo) {
20323
20382
  let copyOrder = [];
20324
20383
  for (let m = 0, n = 0; m < headers.length; m++) {
20325
20384
  if (headers[m].actualText !== 'Grand Total') {
@@ -20360,7 +20419,7 @@ class OlapEngine {
20360
20419
  }
20361
20420
  isHeaderSortByDefault = true;
20362
20421
  }
20363
- if (isHeaderSortByDefault) {
20422
+ if (isHeaderSortByDefault && this.getHeaderSortInfo) {
20364
20423
  let copyOrder = [];
20365
20424
  for (let m = 0, n = 0; m < keys.length; m++) {
20366
20425
  if (keys[m] !== 'Grand Total') {
@@ -23376,10 +23435,10 @@ let PivotView = class PivotView extends Component {
23376
23435
  this.cellTemplateFn = this.templateParser(this.cellTemplate);
23377
23436
  this.tooltipTemplateFn = this.templateParser(this.tooltipTemplate);
23378
23437
  if (this.spinnerTemplate) {
23379
- createSpinner({ target: this.element, template: this.spinnerTemplate }, this.createElement);
23438
+ createSpinner({ target: this.element, template: this.spinnerTemplate, cssClass: this.cssClass ? this.cssClass : undefined }, this.createElement);
23380
23439
  }
23381
23440
  else {
23382
- createSpinner({ target: this.element }, this.createElement);
23441
+ createSpinner({ target: this.element, cssClass: this.cssClass ? this.cssClass : undefined }, this.createElement);
23383
23442
  }
23384
23443
  let loadArgs = {
23385
23444
  dataSourceSettings: this.dataSourceSettings,
@@ -24046,7 +24105,7 @@ let PivotView = class PivotView extends Component {
24046
24105
  }
24047
24106
  }
24048
24107
  else {
24049
- pivot.olapEngineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.getHeaderSortInfo.bind(pivot));
24108
+ pivot.olapEngineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.onHeadersSort ? pivot.getHeaderSortInfo.bind(pivot) : undefined);
24050
24109
  }
24051
24110
  pivot.allowServerDataBinding = false;
24052
24111
  pivot.setProperties({ pivotValues: pivot.olapEngineModule.pivotValues }, true);
@@ -24087,7 +24146,7 @@ let PivotView = class PivotView extends Component {
24087
24146
  pivot.lastFilterInfo = {};
24088
24147
  }
24089
24148
  else {
24090
- pivot.engineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.getValueCellInfo.bind(pivot), pivot.getHeaderSortInfo.bind(pivot));
24149
+ pivot.engineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.aggregateCellInfo ? pivot.getValueCellInfo.bind(pivot) : undefined, pivot.onHeadersSort ? pivot.getHeaderSortInfo.bind(pivot) : undefined);
24091
24150
  pivot.allowServerDataBinding = false;
24092
24151
  pivot.setProperties({ pivotValues: pivot.engineModule.pivotValues }, true);
24093
24152
  /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
@@ -24110,7 +24169,7 @@ let PivotView = class PivotView extends Component {
24110
24169
  */
24111
24170
  excelExport(excelExportProperties, isMultipleExport, workbook, isBlob) {
24112
24171
  if (this.enableVirtualization && this.dataSourceSettings.mode !== 'Server') {
24113
- this.excelExportModule.exportToExcel('Excel', excelExportProperties);
24172
+ this.excelExportModule.exportToExcel('Excel', excelExportProperties, isBlob);
24114
24173
  }
24115
24174
  else {
24116
24175
  this.exportType = 'Excel';
@@ -24135,7 +24194,7 @@ let PivotView = class PivotView extends Component {
24135
24194
  */
24136
24195
  csvExport(excelExportProperties, isMultipleExport, workbook, isBlob) {
24137
24196
  if (this.enableVirtualization && this.dataSourceSettings.mode !== 'Server') {
24138
- this.excelExportModule.exportToExcel('CSV', excelExportProperties);
24197
+ this.excelExportModule.exportToExcel('CSV', excelExportProperties, isBlob);
24139
24198
  }
24140
24199
  else {
24141
24200
  this.exportType = 'CSV';
@@ -24160,7 +24219,7 @@ let PivotView = class PivotView extends Component {
24160
24219
  */
24161
24220
  pdfExport(pdfExportProperties, isMultipleExport, pdfDoc, isBlob) {
24162
24221
  if (this.enableVirtualization && this.dataSourceSettings.mode !== 'Server') {
24163
- this.pdfExportModule.exportToPDF(pdfExportProperties);
24222
+ this.pdfExportModule.exportToPDF(pdfExportProperties, isBlob);
24164
24223
  }
24165
24224
  else {
24166
24225
  this.grid.pdfExport(pdfExportProperties, isMultipleExport, pdfDoc, isBlob);
@@ -24225,7 +24284,7 @@ let PivotView = class PivotView extends Component {
24225
24284
  }
24226
24285
  if (this.dataType === 'pivot') {
24227
24286
  let clonedDrillMembers = PivotUtil.cloneDrillMemberSettings(this.dataSourceSettings.drilledMembers);
24228
- let colIndex = axis === 'row' ? Number(closest(target, 'td').getAttribute('aria-colindex')) : Number(closest(target, 'th').getAttribute('aria-colindex'));
24287
+ let colIndex = axis === 'row' ? Number(closest(target, 'td').getAttribute('data-colindex')) : Number(closest(target, 'th').getAttribute('data-colindex'));
24229
24288
  let rowIndex = axis === 'row' ? Number(closest(target, 'td').getAttribute('index')) : Number(closest(target, 'th').getAttribute('index'));
24230
24289
  let currentCell = chartDrillInfo ? chartDrillInfo.cell :
24231
24290
  this.engineModule.pivotValues[rowIndex][colIndex];
@@ -24332,7 +24391,7 @@ let PivotView = class PivotView extends Component {
24332
24391
  currentCell = chartDrillInfo.cell;
24333
24392
  }
24334
24393
  else {
24335
- let colIndex = axis === 'row' ? Number(closest(target, 'td').getAttribute('aria-colindex')) : Number(closest(target, 'th').getAttribute('aria-colindex'));
24394
+ let colIndex = axis === 'row' ? Number(closest(target, 'td').getAttribute('data-colindex')) : Number(closest(target, 'th').getAttribute('data-colindex'));
24336
24395
  let rowIndex = axis === 'row' ? Number(closest(target, 'td').getAttribute('index')) : Number(closest(target, 'th').getAttribute('index'));
24337
24396
  currentCell = this.olapEngineModule.pivotValues[rowIndex][colIndex];
24338
24397
  }
@@ -24631,6 +24690,10 @@ let PivotView = class PivotView extends Component {
24631
24690
  (mCntVScrollPos === mCntScrollPos ? (mCntScrollPos - hScrollPos) :
24632
24691
  (mCntScrollPos < mCntVScrollPos && (hScrollPos === mCntVScrollPos || hScrollPos > mCntScrollPos) ?
24633
24692
  -(mCntVScrollPos - mCntScrollPos) : 0)));
24693
+ if (this.actionObj.actionName === 'Sort value' || this.actionObj.actionName === 'Sort field') {
24694
+ let excessMove = -this.scrollPosObject.horizontalSection;
24695
+ this.scrollPosObject.horizontalSection = this.scrollPosObject.horizontalSection + excessMove;
24696
+ }
24634
24697
  horiOffset = (ele.scrollLeft > this.scrollerBrowserLimit) ?
24635
24698
  (mCnt.querySelector('.' + TABLE).style.transform.split(',')[0].trim() + ',') :
24636
24699
  'translate(' + -(((ele.scrollLeft * this.horizontalScrollScale) -
@@ -24673,7 +24736,7 @@ let PivotView = class PivotView extends Component {
24673
24736
  }
24674
24737
  }
24675
24738
  setToolTip(args) {
24676
- let colIndex = Number(args.target.getAttribute('aria-colindex'));
24739
+ let colIndex = Number(args.target.getAttribute('data-colindex'));
24677
24740
  let rowIndex = Number(args.target.getAttribute('index'));
24678
24741
  let cell = (this.dataSourceSettings.values.length > 0 && this.pivotValues &&
24679
24742
  this.pivotValues[rowIndex] && this.pivotValues[rowIndex][colIndex]) ?
@@ -24869,7 +24932,7 @@ let PivotView = class PivotView extends Component {
24869
24932
  let ele = e.target;
24870
24933
  let axis = (ele.parentElement.classList.contains(ROWSHEADER) || ele.classList.contains(ROWSHEADER)) ? 'row' : 'column';
24871
24934
  ele = axis === 'column' ? closest(ele, 'th') : closest(ele, 'td');
24872
- let colIndex = Number(ele.getAttribute('aria-colindex'));
24935
+ let colIndex = Number(ele.getAttribute('data-colindex'));
24873
24936
  let rowIndex = Number(ele.getAttribute('index'));
24874
24937
  let selectArgs = {
24875
24938
  cancel: false,
@@ -24923,6 +24986,9 @@ let PivotView = class PivotView extends Component {
24923
24986
  this.lastCellClicked = e.target;
24924
24987
  }
24925
24988
  let target = e.target;
24989
+ if (closest(target, '.' + PIVOT_BUTTON_CLASS)) {
24990
+ return;
24991
+ }
24926
24992
  let ele = null;
24927
24993
  let axis = (target.parentElement.classList.contains(ROWSHEADER) || target.classList.contains(ROWSHEADER)) ? 'row' : 'column';
24928
24994
  ele = axis === 'column' ? closest(target, 'th') : closest(target, 'td');
@@ -24943,7 +25009,7 @@ let PivotView = class PivotView extends Component {
24943
25009
  if (this.actionBeginMethod()) {
24944
25010
  return;
24945
25011
  }
24946
- let colIndex = Number(ele.getAttribute('aria-colindex'));
25012
+ let colIndex = Number(ele.getAttribute('data-colindex'));
24947
25013
  let rowIndex = Number(ele.getAttribute('index'));
24948
25014
  if (this.dataSourceSettings.valueAxis === 'row' && (this.dataSourceSettings.values.length > 1 || this.dataSourceSettings.alwaysShowValueHeader)) {
24949
25015
  let header = this.pivotValues[rowIndex][colIndex];
@@ -24957,13 +25023,13 @@ let PivotView = class PivotView extends Component {
24957
25023
  }
24958
25024
  }
24959
25025
  else if (this.dataSourceSettings.valueAxis === 'column' && (this.dataSourceSettings.values.length > 1 || this.dataSourceSettings.alwaysShowValueHeader)) {
24960
- colIndex = (Number(ele.getAttribute('aria-colindex')) + Number(ele.getAttribute('aria-colspan')) - 1);
25026
+ colIndex = (Number(ele.getAttribute('data-colindex')) + Number(ele.getAttribute('aria-colspan')) - 1);
24961
25027
  rowIndex = this.engineModule.headerContent.length - 1;
24962
25028
  }
24963
25029
  this.setProperties({
24964
25030
  dataSourceSettings: {
24965
25031
  valueSortSettings: {
24966
- columnIndex: (Number(ele.getAttribute('aria-colindex')) +
25032
+ columnIndex: (Number(ele.getAttribute('data-colindex')) +
24967
25033
  Number(ele.getAttribute('aria-colspan')) - 1),
24968
25034
  sortOrder: this.dataSourceSettings.valueSortSettings.sortOrder === 'Descending' ? 'Ascending' : 'Descending',
24969
25035
  headerText: this.pivotValues[rowIndex][colIndex].valueSort.levelName,
@@ -25305,7 +25371,7 @@ let PivotView = class PivotView extends Component {
25305
25371
  }
25306
25372
  /* eslint-disable */
25307
25373
  if (ele && !isNullOrUndefined(this.pivotValues) && this.pivotValues.length > 0) {
25308
- let colIndex = Number(ele.getAttribute('aria-colindex'));
25374
+ let colIndex = Number(ele.getAttribute('data-colindex'));
25309
25375
  let rowIndex = Number(ele.getAttribute('index'));
25310
25376
  let colSpan = Number(ele.getAttribute('aria-colspan'));
25311
25377
  let selectArgs = {
@@ -25349,6 +25415,9 @@ let PivotView = class PivotView extends Component {
25349
25415
  this.getSelectedCellsPos();
25350
25416
  });
25351
25417
  }
25418
+ else {
25419
+ this.clearSelection(null, e, null, null);
25420
+ }
25352
25421
  }
25353
25422
  rowDeselect(ele, e, rowIndex, mode, observedArgs) {
25354
25423
  if (!e.shiftKey && !e.ctrlKey && this.gridSettings.selectionSettings.mode !== 'Both' || this.gridSettings.selectionSettings.type === 'Single') {
@@ -25394,7 +25463,7 @@ let PivotView = class PivotView extends Component {
25394
25463
  clearSelection(ele, e, colIndex, rowIndex) {
25395
25464
  if ((!e.shiftKey && !e.ctrlKey) || this.gridSettings.selectionSettings.type === 'Single') {
25396
25465
  if (this.gridSettings.selectionSettings.mode === 'Cell') {
25397
- if (ele.classList.contains(COLUMNSHEADER)) {
25466
+ if (ele && ele.classList.contains(COLUMNSHEADER)) {
25398
25467
  removeClass(this.element.querySelectorAll(('.' + ROW_CELL_CLASS + '.') + CELL_SELECTED_BGCOLOR), CELL_SELECTED_BGCOLOR);
25399
25468
  }
25400
25469
  else {
@@ -25402,7 +25471,7 @@ let PivotView = class PivotView extends Component {
25402
25471
  }
25403
25472
  }
25404
25473
  else if (this.gridSettings.selectionSettings.mode === 'Both') {
25405
- if (ele.classList.contains(ROW_CELL_CLASS)) {
25474
+ if (ele && ele.classList.contains(ROW_CELL_CLASS)) {
25406
25475
  for (let ele of [].slice.call(this.element.querySelectorAll('.' + SELECTED_BGCOLOR + ', .' + CELL_SELECTED_BGCOLOR))) {
25407
25476
  // if (Number((ele as HTMLElement).getAttribute('index')) !== rowIndex) {
25408
25477
  removeClass([ele], [CELL_ACTIVE_BGCOLOR, SELECTED_BGCOLOR, CELL_SELECTED_BGCOLOR]);
@@ -25470,10 +25539,10 @@ let PivotView = class PivotView extends Component {
25470
25539
  if (!isCtrl || type === 'Single') {
25471
25540
  for (let ele of [].slice.call(this.element.querySelectorAll('.' + CELL_ACTIVE_BGCOLOR))) {
25472
25541
  removeClass([ele], [CELL_ACTIVE_BGCOLOR, SELECTED_BGCOLOR]);
25473
- if (activeColumns.indexOf(ele.getAttribute('aria-colindex')) === -1) {
25542
+ if (activeColumns.indexOf(ele.getAttribute('data-colindex')) === -1) {
25474
25543
  isToggle = false;
25475
25544
  }
25476
- let colIndex = Number(ele.getAttribute('aria-colindex'));
25545
+ let colIndex = Number(ele.getAttribute('data-colindex'));
25477
25546
  actColPos[colIndex] = colIndex;
25478
25547
  }
25479
25548
  activeColumns = Object.keys(actColPos).length > 0 ? Object.keys(actColPos).sort(function (a, b) {
@@ -25504,7 +25573,7 @@ let PivotView = class PivotView extends Component {
25504
25573
  }
25505
25574
  let count = colStart;
25506
25575
  while (count <= colEnd) {
25507
- queryStringArray.push('[aria-colindex="' + count + '"]' + (this.gridSettings.selectionSettings.mode === 'Cell' ?
25576
+ queryStringArray.push('[data-colindex="' + count + '"]' + (this.gridSettings.selectionSettings.mode === 'Cell' ?
25508
25577
  '[index="' + rowStart + '"]' : "") + '');
25509
25578
  count++;
25510
25579
  }
@@ -25530,20 +25599,20 @@ let PivotView = class PivotView extends Component {
25530
25599
  control.savedSelectedCellsPos = [];
25531
25600
  control.cellSelectionPos = [];
25532
25601
  for (let ele of [].slice.call(this.element.querySelectorAll('.' + SELECTED_BGCOLOR))) {
25533
- control.savedSelectedCellsPos.push({ rowIndex: ele.getAttribute('index'), colIndex: ele.getAttribute('aria-colindex') });
25602
+ control.savedSelectedCellsPos.push({ rowIndex: ele.getAttribute('index'), colIndex: ele.getAttribute('data-colindex') });
25534
25603
  }
25535
25604
  for (let ele of [].slice.call(this.element.querySelectorAll('.' + CELL_SELECTED_BGCOLOR))) {
25536
- control.cellSelectionPos.push({ rowIndex: ele.getAttribute('index'), colIndex: ele.getAttribute('aria-colindex') });
25605
+ control.cellSelectionPos.push({ rowIndex: ele.getAttribute('index'), colIndex: ele.getAttribute('data-colindex') });
25537
25606
  }
25538
25607
  }
25539
25608
  setSavedSelectedCells() {
25540
25609
  let control = this;
25541
25610
  for (let item of [].slice.call(this.savedSelectedCellsPos)) {
25542
- let query = '[aria-colindex="' + item.colIndex + '"][index="' + item.rowIndex + '"]';
25611
+ let query = '[data-colindex="' + item.colIndex + '"][index="' + item.rowIndex + '"]';
25543
25612
  addClass([control.element.querySelector(query)], [CELL_ACTIVE_BGCOLOR, SELECTED_BGCOLOR]);
25544
25613
  }
25545
25614
  for (let item of [].slice.call(this.cellSelectionPos)) {
25546
- let query = '[aria-colindex="' + item.colIndex + '"][index="' + item.rowIndex + '"]';
25615
+ let query = '[data-colindex="' + item.colIndex + '"][index="' + item.rowIndex + '"]';
25547
25616
  addClass([control.element.querySelector(query)], [CELL_SELECTED_BGCOLOR]);
25548
25617
  }
25549
25618
  }
@@ -25630,7 +25699,7 @@ let PivotView = class PivotView extends Component {
25630
25699
  this.clonedReport = this.clonedReport ? this.clonedReport : dataSourceSettings;
25631
25700
  }
25632
25701
  if (this.dataSourceSettings.mode !== 'Server') {
25633
- this.engineModule.renderEngine(this.dataSourceSettings, customProperties, this.getValueCellInfo.bind(this), this.getHeaderSortInfo.bind(this));
25702
+ this.engineModule.renderEngine(this.dataSourceSettings, customProperties, this.aggregateCellInfo ? this.getValueCellInfo.bind(this) : undefined, this.onHeadersSort ? this.getHeaderSortInfo.bind(this) : undefined);
25634
25703
  }
25635
25704
  this.allowServerDataBinding = false;
25636
25705
  this.setProperties({ pivotValues: this.engineModule.pivotValues }, true);
@@ -25641,7 +25710,7 @@ let PivotView = class PivotView extends Component {
25641
25710
  else if (this.dataSourceSettings.providerType === 'SSAS' && this.dataType === 'olap') {
25642
25711
  customProperties.savedFieldList = this.olapEngineModule.fieldList;
25643
25712
  customProperties.savedFieldListData = this.olapEngineModule.fieldListData;
25644
- this.olapEngineModule.renderEngine(this.dataSourceSettings, customProperties, this.getHeaderSortInfo.bind(this));
25713
+ this.olapEngineModule.renderEngine(this.dataSourceSettings, customProperties, this.onHeadersSort ? this.getHeaderSortInfo.bind(this) : undefined);
25645
25714
  this.allowServerDataBinding = false;
25646
25715
  this.setProperties({ pivotValues: this.olapEngineModule.pivotValues }, true);
25647
25716
  delete this.bulkChanges.pivotValues;
@@ -26121,7 +26190,8 @@ let PivotView = class PivotView extends Component {
26121
26190
  : this.actionObj.actionName == removeRecord ? recordRemoved : (this.actionObj.actionName == pngExport) ? pngExported : (this.actionObj.actionName == jpegExport) ? jpegExported
26122
26191
  : (this.actionObj.actionName == svgExport) ? svgExported : (this.actionObj.actionName == pdfExport) ? pdfExported : (this.actionObj.actionName == csvExport) ? csvExported : (this.actionObj.actionName == excelExport) ? excelExported : this.actionObj.actionName == windowResize ? windowResized
26123
26192
  : this.actionObj.actionName == saveCurrentReport ? reportSaved : (this.actionObj.actionName == addNewReport) ? newReportAdded : (this.actionObj.actionName == saveAsCurrentReport) ? reportReSaved
26124
- : (this.actionObj.actionName == renameCurrentReport) ? reportRenamed : this.actionObj.actionName;
26193
+ : (this.actionObj.actionName == renameCurrentReport) ? reportRenamed : (this.actionObj.actionName == renameCurrentReport) ? reportRenamed : (this.actionObj.actionName == horizontalScroll) ? horizontalScrolled
26194
+ : (this.actionObj.actionName == verticalScroll) ? verticalScrolled : this.actionObj.actionName;
26125
26195
  return actionName;
26126
26196
  }
26127
26197
  /* eslint-disable-next-line */
@@ -26573,6 +26643,9 @@ __decorate([
26573
26643
  __decorate([
26574
26644
  Event()
26575
26645
  ], PivotView.prototype, "beforeExport", void 0);
26646
+ __decorate([
26647
+ Event()
26648
+ ], PivotView.prototype, "exportComplete", void 0);
26576
26649
  __decorate([
26577
26650
  Event()
26578
26651
  ], PivotView.prototype, "conditionalFormatting", void 0);
@@ -26953,7 +27026,7 @@ class ExcelExport$1 {
26953
27026
  * Method to perform excel export.
26954
27027
  * @hidden
26955
27028
  */
26956
- exportToExcel(type, exportProperties) {
27029
+ exportToExcel(type, exportProperties, isBlob) {
26957
27030
  this.rows = [];
26958
27031
  this.actualrCnt = 0;
26959
27032
  let isHeaderSet = !isNullOrUndefined(exportProperties) && !isNullOrUndefined(exportProperties.header);
@@ -27140,12 +27213,21 @@ class ExcelExport$1 {
27140
27213
  workSheets.push({ columns: columns, rows: this.rows });
27141
27214
  }
27142
27215
  let book = new Workbook({ worksheets: workSheets }, type === 'Excel' ? 'xlsx' : 'csv', undefined, this.parent.currencyCode);
27143
- if ('.xlsx' === fileName.substring(fileName.length - 5, fileName.length) || '.csv' === fileName.substring(fileName.length - 4, fileName.length)) {
27144
- book.save(fileName);
27216
+ let fileExtension = fileName.split(".").pop();
27217
+ let blobData;
27218
+ if (!isBlob) {
27219
+ book.save(fileExtension === "xlsx" || fileExtension === "csv" ?
27220
+ fileName : (fileName + (type === 'Excel' ? '.xlsx' : '.csv')));
27145
27221
  }
27146
27222
  else {
27147
- book.save(fileName + (type === 'Excel' ? '.xlsx' : '.csv'));
27223
+ blobData = book.saveAsBlob(fileExtension === "xlsx" || type === 'Excel' ?
27224
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' : 'text/csv');
27148
27225
  }
27226
+ let exportCompleteEventArgs = {
27227
+ type: type,
27228
+ promise: isBlob ? blobData : null
27229
+ };
27230
+ this.parent.trigger(exportComplete, exportCompleteEventArgs);
27149
27231
  }
27150
27232
  /**
27151
27233
  * To destroy the excel export module
@@ -27324,7 +27406,7 @@ class PDFExport {
27324
27406
  * @hidden
27325
27407
  */
27326
27408
  /* eslint-disable */
27327
- exportToPDF(pdfExportProperties) {
27409
+ exportToPDF(pdfExportProperties, isBlob) {
27328
27410
  this.engine = this.parent.dataType === 'olap' ? this.parent.olapEngineModule : this.parent.engineModule;
27329
27411
  let eventParams = this.applyEvent();
27330
27412
  let headerStyle = this.getStyle();
@@ -27515,7 +27597,18 @@ class PDFExport {
27515
27597
  integratedCnt = 0;
27516
27598
  }
27517
27599
  } while (integratedCnt < colLength);
27518
- eventParams.document.save(eventParams.args.fileName + '.pdf');
27600
+ let blobData;
27601
+ if (!isBlob) {
27602
+ eventParams.document.save(eventParams.args.fileName + '.pdf');
27603
+ }
27604
+ else {
27605
+ blobData = eventParams.document.save();
27606
+ }
27607
+ let exportCompleteEventArgs = {
27608
+ type: 'PDF',
27609
+ promise: isBlob ? blobData : null
27610
+ };
27611
+ this.parent.trigger(exportComplete, exportCompleteEventArgs);
27519
27612
  eventParams.document.destroy();
27520
27613
  }
27521
27614
  applyStyle(pdfGridRow, pivotCell, localCnt) {
@@ -31687,7 +31780,7 @@ let PivotFieldList = class PivotFieldList extends Component {
31687
31780
  customProperties.enableValueSorting = this.staticPivotGridModule ?
31688
31781
  this.staticPivotGridModule.enableValueSorting : this.enableValueSorting;
31689
31782
  if (this.dataSourceSettings.mode !== 'Server') {
31690
- this.engineModule.renderEngine(this.dataSourceSettings, customProperties, this.getValueCellInfo.bind(this), this.getHeaderSortInfo.bind(this));
31783
+ this.engineModule.renderEngine(this.dataSourceSettings, customProperties, this.aggregateCellInfo ? this.getValueCellInfo.bind(this) : undefined, this.onHeadersSort ? this.getHeaderSortInfo.bind(this) : undefined);
31691
31784
  }
31692
31785
  this.pivotFieldList = this.engineModule.fieldList;
31693
31786
  let eventArgs = {
@@ -31703,7 +31796,7 @@ let PivotFieldList = class PivotFieldList extends Component {
31703
31796
  });
31704
31797
  }
31705
31798
  else if (this.dataType === 'olap') {
31706
- this.olapEngineModule.renderEngine(this.dataSourceSettings, this.frameCustomProperties(this.olapEngineModule.fieldListData, this.olapEngineModule.fieldList), this.getHeaderSortInfo.bind(this));
31799
+ this.olapEngineModule.renderEngine(this.dataSourceSettings, this.frameCustomProperties(this.olapEngineModule.fieldListData, this.olapEngineModule.fieldList), this.onHeadersSort ? this.getHeaderSortInfo.bind(this) : undefined);
31707
31800
  this.pivotFieldList = this.olapEngineModule.fieldList;
31708
31801
  let eventArgs = {
31709
31802
  pivotFieldList: this.pivotFieldList,
@@ -31781,10 +31874,10 @@ let PivotFieldList = class PivotFieldList extends Component {
31781
31874
  this.fieldListSpinnerElement = this.element.querySelector('.e-pivotfieldlist-container');
31782
31875
  }
31783
31876
  if (this.spinnerTemplate) {
31784
- createSpinner({ target: this.fieldListSpinnerElement, template: this.spinnerTemplate }, this.createElement);
31877
+ createSpinner({ target: this.fieldListSpinnerElement, template: this.spinnerTemplate, cssClass: this.cssClass ? this.cssClass : undefined }, this.createElement);
31785
31878
  }
31786
31879
  else {
31787
- createSpinner({ target: this.fieldListSpinnerElement }, this.createElement);
31880
+ createSpinner({ target: this.fieldListSpinnerElement, cssClass: this.cssClass ? this.cssClass : undefined }, this.createElement);
31788
31881
  }
31789
31882
  let args;
31790
31883
  args = {
@@ -31942,7 +32035,7 @@ let PivotFieldList = class PivotFieldList extends Component {
31942
32035
  pivot.lastFilterInfo = {};
31943
32036
  }
31944
32037
  else {
31945
- pivot.engineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.getValueCellInfo.bind(pivot), pivot.getHeaderSortInfo.bind(pivot));
32038
+ pivot.engineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.aggregateCellInfo ? pivot.getValueCellInfo.bind(pivot) : undefined, pivot.onHeadersSort ? pivot.getHeaderSortInfo.bind(pivot) : undefined);
31946
32039
  }
31947
32040
  }
31948
32041
  }
@@ -32039,7 +32132,7 @@ let PivotFieldList = class PivotFieldList extends Component {
32039
32132
  }
32040
32133
  }
32041
32134
  else {
32042
- pivot.olapEngineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.getHeaderSortInfo.bind(pivot));
32135
+ pivot.olapEngineModule.renderEngine(pivot.dataSourceSettings, customProperties, pivot.onHeadersSort ? pivot.getHeaderSortInfo.bind(pivot) : undefined);
32043
32136
  }
32044
32137
  pivot.lastSortInfo = {};
32045
32138
  pivot.lastAggregationInfo = {};
@@ -32419,6 +32512,7 @@ class CalculatedField {
32419
32512
  this.isFormula = false;
32420
32513
  /** @hidden */
32421
32514
  this.isRequireUpdate = false;
32515
+ this.formatTypes = ['Standard', 'Currency', 'Percent', 'Custom', 'None'];
32422
32516
  this.parent = parent;
32423
32517
  this.existingReport = null;
32424
32518
  this.parent.calculatedFieldModule = this;
@@ -32524,7 +32618,7 @@ class CalculatedField {
32524
32618
  this.fieldText = node.getAttribute('data-caption');
32525
32619
  this.formulaText = node.getAttribute('data-formula');
32526
32620
  this.formatType = node.getAttribute('data-formatString');
32527
- this.formatText = this.formatType === 'Custom' ? node.getAttribute('data-customString') : null;
32621
+ this.formatText = this.formatType === 'Custom' ? node.getAttribute('data-customformatstring') : null;
32528
32622
  this.fieldType = node.getAttribute('data-membertype');
32529
32623
  this.parentHierarchy = this.fieldType === 'Dimension' ? node.getAttribute('data-hierarchy') : null;
32530
32624
  addClass([node.querySelector('.e-list-edit-icon')], CALC_EDITED);
@@ -32554,11 +32648,19 @@ class CalculatedField {
32554
32648
  closest(e.originalEvent.target, '.e-acrdn-header-icon')) {
32555
32649
  let node = closest(e.originalEvent.target, '.e-acrdn-header').querySelector('.' + CALCCHECK);
32556
32650
  let fieldName = node.getAttribute('data-field');
32651
+ let captionName = node.getAttribute('data-caption');
32557
32652
  let formatObj = PivotUtil.getFieldByName(fieldName, this.parent.dataSourceSettings.formatSettings);
32558
32653
  let optionElement = closest(e.originalEvent.target, '.e-acrdn-header-icon');
32654
+ if (formatObj) {
32655
+ let pivotFormat = this.getFormat(formatObj.format);
32656
+ let formatString = (pivotFormat ? this.formatTypes.indexOf(pivotFormat) > -1 ?
32657
+ formatObj.format : 'Custom' : 'None');
32658
+ this.formatType = formatString;
32659
+ }
32559
32660
  if (optionElement.querySelector('.' + CALC_EDIT) && e.originalEvent.target.classList.contains(CALC_EDIT)) {
32560
32661
  this.isEdit = true;
32561
- this.currentFieldName = this.fieldText = fieldName;
32662
+ this.currentFieldName = fieldName;
32663
+ this.fieldText = captionName ? captionName : fieldName;
32562
32664
  this.formulaText = this.parent.engineModule.fieldList[fieldName].formula;
32563
32665
  this.formatText = formatObj ? formatObj.format : '';
32564
32666
  addClass([optionElement.querySelector('.e-list-icon')], CALC_EDITED);
@@ -32627,16 +32729,16 @@ class CalculatedField {
32627
32729
  this.inputObj.dataBind();
32628
32730
  let formatString = node.getAttribute('data-formatString');
32629
32731
  let dialogElement = this.dialog.element;
32732
+ let ddlFormatTypes = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement), DropDownList);
32630
32733
  let customFormat = getInstance(select('#' + this.parentID + 'Custom_Format_Element', dialogElement), MaskedTextBox);
32734
+ let customFormatString = node.getAttribute('data-customformatstring');
32631
32735
  if (this.parent.dataType === 'olap') {
32632
32736
  let memberType = node.getAttribute('data-membertype');
32633
32737
  let parentHierarchy = node.getAttribute('data-hierarchy');
32634
32738
  let expression = node.getAttribute('data-formula');
32635
- let customString = node.getAttribute('data-customString');
32636
32739
  let fieldTitle = select('#' + this.parentID + '_' + 'FieldNameTitle', dialogElement);
32637
32740
  let memberTypeDrop = getInstance(select('#' + this.parentID + 'Member_Type_Div', dialogElement), DropDownList);
32638
32741
  let hierarchyDrop = getInstance(select('#' + this.parentID + 'Hierarchy_List_Div', dialogElement), DropDownList);
32639
- let formatDrop = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement), DropDownList);
32640
32742
  /* eslint-enable max-len */
32641
32743
  fieldTitle.innerHTML = this.parent.localeObj.getConstant('caption');
32642
32744
  select('#' + this.parentID + 'droppable', document).value = expression;
@@ -32646,14 +32748,8 @@ class CalculatedField {
32646
32748
  if (memberType === 'Dimension') {
32647
32749
  hierarchyDrop.value = parentHierarchy;
32648
32750
  }
32649
- if (formatString !== '') {
32650
- formatDrop.value = formatString;
32651
- formatDrop.dataBind();
32652
- }
32653
- customFormat.value = customString;
32654
32751
  }
32655
32752
  else {
32656
- customFormat.value = formatString;
32657
32753
  addClass(this.treeObj.element.querySelectorAll('.' + CALC_EDITED), CALC_EDIT);
32658
32754
  removeClass(this.treeObj.element.querySelectorAll('.' + CALC_EDITED), CALC_EDITED);
32659
32755
  addClass([node.querySelector('.e-list-icon')], CALC_EDITED);
@@ -32661,6 +32757,11 @@ class CalculatedField {
32661
32757
  node.querySelector('.' + CALC_EDITED).setAttribute('title', this.parent.localeObj.getConstant('clearCalculatedField'));
32662
32758
  select('#' + this.parentID + 'droppable', document).value = node.getAttribute('data-uid');
32663
32759
  }
32760
+ if (formatString !== '') {
32761
+ ddlFormatTypes.value = formatString;
32762
+ ddlFormatTypes.dataBind();
32763
+ }
32764
+ customFormat.value = customFormatString;
32664
32765
  customFormat.dataBind();
32665
32766
  }
32666
32767
  else if (node.tagName === 'LI' && (node.querySelector('.' + CALC_EDITED) &&
@@ -32675,15 +32776,15 @@ class CalculatedField {
32675
32776
  customFormat.dataBind();
32676
32777
  if (this.parent.dataType === 'olap') {
32677
32778
  let hierarchyDrop = getInstance(select('#' + this.parentID + 'Hierarchy_List_Div', dialogElement), DropDownList);
32678
- let formatDrop = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement), DropDownList);
32779
+ let ddlFormatTypes = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement), DropDownList);
32679
32780
  let memberTypeDrop = getInstance(select('#' + this.parentID + 'Member_Type_Div', dialogElement), DropDownList);
32680
32781
  let fieldTitle = select('#' + this.parentID + '_' + 'FieldNameTitle', dialogElement);
32681
32782
  /* eslint-enable max-len */
32682
32783
  fieldTitle.innerHTML = this.parent.localeObj.getConstant('fieldTitle');
32683
32784
  hierarchyDrop.index = 0;
32684
32785
  hierarchyDrop.dataBind();
32685
- formatDrop.index = 0;
32686
- formatDrop.dataBind();
32786
+ ddlFormatTypes.index = 0;
32787
+ ddlFormatTypes.dataBind();
32687
32788
  memberTypeDrop.index = 0;
32688
32789
  memberTypeDrop.readonly = false;
32689
32790
  memberTypeDrop.dataBind();
@@ -33068,18 +33169,15 @@ class CalculatedField {
33068
33169
  caption: this.inputObj.value,
33069
33170
  formula: dropField.value
33070
33171
  };
33172
+ let ddlFormatTypes = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement), DropDownList);
33173
+ field.formatString = (ddlFormatTypes.value === 'Custom' ? customFormat.value : (ddlFormatTypes.value === 'None' ? null : ddlFormatTypes.value));
33071
33174
  if (this.parent.dataType === 'olap') {
33072
- let formatDrop = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement), DropDownList);
33073
33175
  let memberTypeDrop = getInstance(select('#' + this.parentID + 'Member_Type_Div', dialogElement), DropDownList);
33074
33176
  let hierarchyDrop = getInstance(select('#' + this.parentID + 'Hierarchy_List_Div', dialogElement), DropDownList);
33075
- field.formatString = (formatDrop.value === 'Custom' ? customFormat.value : (formatDrop.value === 'None' ? null : formatDrop.value));
33076
33177
  if (memberTypeDrop.value === 'Dimension') {
33077
33178
  field.hierarchyUniqueName = hierarchyDrop.value;
33078
33179
  }
33079
33180
  }
33080
- else {
33081
- field.formatString = customFormat.value;
33082
- }
33083
33181
  return field;
33084
33182
  }
33085
33183
  /* eslint-enable max-len */
@@ -33160,21 +33258,21 @@ class CalculatedField {
33160
33258
  select('#' + this.parentID + 'droppable', this.parent.dialogRenderer.parentElement).value = '';
33161
33259
  select('#' + this.parentID + 'Custom_Format_Element', this.parent.dialogRenderer.parentElement).value = '';
33162
33260
  if (this.parent.dataType === 'olap') {
33163
- let customFormat = getInstance(select('#' + this.parentID + 'Custom_Format_Element', dialogElement), MaskedTextBox);
33164
- let formatDrop = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement), DropDownList);
33165
33261
  let memberTypeDrop = getInstance(select('#' + this.parentID + 'Member_Type_Div', dialogElement), DropDownList);
33166
33262
  let hierarchyDrop = getInstance(select('#' + this.parentID + 'Hierarchy_List_Div', dialogElement), DropDownList);
33167
- formatDrop.index = 0;
33168
- formatDrop.dataBind();
33169
33263
  memberTypeDrop.index = 0;
33170
33264
  memberTypeDrop.readonly = false;
33171
33265
  memberTypeDrop.dataBind();
33172
33266
  hierarchyDrop.index = 0;
33173
33267
  hierarchyDrop.enabled = false;
33174
33268
  hierarchyDrop.dataBind();
33175
- customFormat.enabled = false;
33176
- customFormat.dataBind();
33177
33269
  }
33270
+ let customFormat = getInstance(select('#' + this.parentID + 'Custom_Format_Element', dialogElement), MaskedTextBox);
33271
+ let ddlFormatTypes = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement), DropDownList);
33272
+ ddlFormatTypes.index = this.parent.dataType === 'olap' ? 0 : 4;
33273
+ ddlFormatTypes.dataBind();
33274
+ customFormat.enabled = false;
33275
+ customFormat.dataBind();
33178
33276
  /* eslint-enable max-len */
33179
33277
  }
33180
33278
  }
@@ -33463,7 +33561,7 @@ class CalculatedField {
33463
33561
  className: (this.parent.dataType === 'olap' ? OLAP_CALCOUTERDIV + ' ' : '') + CALCOUTERDIV
33464
33562
  });
33465
33563
  let olapFieldTreeDiv = createElement('div', { id: this.parentID + 'Olap_Tree_Div', className: 'e-olap-field-tree-div' });
33466
- let olapCalcDiv = createElement('div', { id: this.parentID + 'Olap_Calc_Div', className: 'e-olap-calculated-div' });
33564
+ let pivotCalcDiv = createElement('div', { id: this.parentID + 'Pivot_Calc_Div', className: 'e-pivot-calculated-div' });
33467
33565
  if (this.parent.getModuleName() === 'pivotfieldlist' && this.parent.
33468
33566
  dialogRenderer.parentElement.querySelector('.' + FORMULA) !== null && this.parent.isAdaptive) {
33469
33567
  let accordDiv = createElement('div', { id: this.parentID + 'accordDiv', className: CALCACCORD });
@@ -33487,7 +33585,7 @@ class CalculatedField {
33487
33585
  className: PIVOT_FIELD_TITLE_CLASS, id: this.parentID + '_' + 'FieldNameTitle',
33488
33586
  innerHTML: this.parent.localeObj.getConstant('fieldTitle')
33489
33587
  });
33490
- olapCalcDiv.appendChild(formulaTitle);
33588
+ pivotCalcDiv.appendChild(formulaTitle);
33491
33589
  }
33492
33590
  let inputDiv = createElement('div', { id: this.parentID + 'outerDiv', className: CALCINPUTDIV });
33493
33591
  let inputObj = createElement('input', {
@@ -33496,7 +33594,7 @@ class CalculatedField {
33496
33594
  className: CALCINPUT
33497
33595
  });
33498
33596
  inputDiv.appendChild(inputObj);
33499
- (this.parent.dataType === 'olap' && !this.parent.isAdaptive ? olapCalcDiv.appendChild(inputDiv) : outerDiv.appendChild(inputDiv));
33597
+ (this.parent.dataType === 'olap' && !this.parent.isAdaptive ? pivotCalcDiv.appendChild(inputDiv) : outerDiv.appendChild(inputDiv));
33500
33598
  let wrapDiv = createElement('div', { id: this.parentID + 'control_container', className: TREEVIEWOUTER });
33501
33599
  if (!this.parent.isAdaptive) {
33502
33600
  let fieldTitle = createElement('div', {
@@ -33543,7 +33641,7 @@ class CalculatedField {
33543
33641
  innerHTML: (this.parent.dataType === 'olap' ? this.parent.localeObj.getConstant('expressionField') :
33544
33642
  this.parent.localeObj.getConstant('formula'))
33545
33643
  });
33546
- (this.parent.dataType === 'olap' ? olapCalcDiv.appendChild(formulaTitle) : outerDiv.appendChild(formulaTitle));
33644
+ (this.parent.dataType === 'olap' ? pivotCalcDiv.appendChild(formulaTitle) : outerDiv.appendChild(formulaTitle));
33547
33645
  }
33548
33646
  let dropDiv = createElement('textarea', {
33549
33647
  id: this.parentID + 'droppable',
@@ -33554,7 +33652,7 @@ class CalculatedField {
33554
33652
  this.parent.localeObj.getConstant('dropText'))
33555
33653
  }
33556
33654
  });
33557
- (this.parent.dataType === 'olap' && !this.parent.isAdaptive ? olapCalcDiv.appendChild(dropDiv) : outerDiv.appendChild(dropDiv));
33655
+ (this.parent.dataType === 'olap' && !this.parent.isAdaptive ? pivotCalcDiv.appendChild(dropDiv) : outerDiv.appendChild(dropDiv));
33558
33656
  if (this.parent.isAdaptive) {
33559
33657
  let buttonDiv = createElement('div', { id: this.parentID + 'buttonDiv', className: CALCBUTTONDIV });
33560
33658
  let okBtn = createElement('button', {
@@ -33570,63 +33668,51 @@ class CalculatedField {
33570
33668
  className: OLAP_MEMBER_TITLE_CLASS,
33571
33669
  innerHTML: this.parent.localeObj.getConstant('memberType')
33572
33670
  });
33573
- olapCalcDiv.appendChild(memberTypeTitle);
33671
+ pivotCalcDiv.appendChild(memberTypeTitle);
33574
33672
  }
33575
33673
  let memberTypeDrop = createElement('div', { id: this.parentID + 'Member_Type_Div', className: CALC_MEMBER_TYPE_DIV });
33576
- (this.parent.isAdaptive ? outerDiv.appendChild(memberTypeDrop) : olapCalcDiv.appendChild(memberTypeDrop));
33674
+ (this.parent.isAdaptive ? outerDiv.appendChild(memberTypeDrop) : pivotCalcDiv.appendChild(memberTypeDrop));
33577
33675
  if (!this.parent.isAdaptive) {
33578
33676
  let hierarchyTitle = createElement('div', {
33579
33677
  className: OLAP_HIERARCHY_TITLE_CLASS,
33580
33678
  innerHTML: this.parent.localeObj.getConstant('selectedHierarchy')
33581
33679
  });
33582
- olapCalcDiv.appendChild(hierarchyTitle);
33680
+ pivotCalcDiv.appendChild(hierarchyTitle);
33583
33681
  }
33584
33682
  let hierarchyDrop = createElement('div', { id: this.parentID + 'Hierarchy_List_Div', className: CALC_HIERARCHY_LIST_DIV });
33585
- (this.parent.isAdaptive ? outerDiv.appendChild(hierarchyDrop) : olapCalcDiv.appendChild(hierarchyDrop));
33586
- if (!this.parent.isAdaptive) {
33587
- let formatTitle = createElement('div', {
33588
- className: OLAP_FORMAT_TITLE_CLASS,
33589
- innerHTML: this.parent.localeObj.getConstant('formatString')
33590
- });
33591
- olapCalcDiv.appendChild(formatTitle);
33592
- }
33593
- let formatDrop = createElement('div', { id: this.parentID + 'Format_Div', className: CALC_FORMAT_TYPE_DIV });
33594
- (this.parent.isAdaptive ? outerDiv.appendChild(formatDrop) : olapCalcDiv.appendChild(formatDrop));
33595
- let customFormatDiv = createElement('div', { id: this.parentID + 'custom_Format_Div', className: OLAP_CALC_CUSTOM_FORMAT_INPUTDIV });
33596
- let customFormatObj = createElement('input', {
33597
- id: this.parentID + 'Custom_Format_Element',
33598
- attrs: { 'type': 'text' },
33599
- className: CALC_FORMAT_INPUT
33683
+ (this.parent.isAdaptive ? outerDiv.appendChild(hierarchyDrop) : pivotCalcDiv.appendChild(hierarchyDrop));
33684
+ }
33685
+ if (!this.parent.isAdaptive) {
33686
+ let formatTitle = createElement('div', {
33687
+ className: PIVOT_FORMAT_TITLE_CLASS,
33688
+ innerHTML: this.parent.localeObj.getConstant('formatString')
33600
33689
  });
33601
- customFormatDiv.appendChild(customFormatObj);
33602
- olapCalcDiv.appendChild(customFormatDiv);
33603
- (this.parent.isAdaptive ? outerDiv.appendChild(customFormatDiv) : olapCalcDiv.appendChild(customFormatDiv));
33604
- if (this.parent.getModuleName() === 'pivotfieldlist' && this.parent.
33605
- dialogRenderer.parentElement.querySelector('.' + FORMULA) === null && this.parent.isAdaptive) {
33606
- let okBtn = outerDiv.querySelector('.' + CALCOKBTN);
33607
- outerDiv.appendChild(okBtn);
33608
- }
33609
- else {
33610
- outerDiv.appendChild(olapFieldTreeDiv);
33611
- outerDiv.appendChild(olapCalcDiv);
33612
- }
33690
+ pivotCalcDiv.appendChild(formatTitle);
33691
+ }
33692
+ let ddlFormatTypes = createElement('div', { id: this.parentID + 'Format_Div', className: CALC_FORMAT_TYPE_DIV });
33693
+ (this.parent.isAdaptive ? outerDiv.appendChild(ddlFormatTypes) : pivotCalcDiv.appendChild(ddlFormatTypes));
33694
+ let customFormatDiv = createElement('div', {
33695
+ id: this.parentID + 'custom_Format_Div',
33696
+ className: PIVOT_CALC_CUSTOM_FORMAT_INPUTDIV
33697
+ });
33698
+ let customFormatObj = createElement('input', {
33699
+ id: this.parentID + 'Custom_Format_Element',
33700
+ attrs: { 'type': 'text' },
33701
+ className: CALC_FORMAT_INPUT
33702
+ });
33703
+ customFormatDiv.appendChild(customFormatObj);
33704
+ pivotCalcDiv.appendChild(customFormatDiv);
33705
+ (this.parent.isAdaptive ? outerDiv.appendChild(customFormatDiv) : pivotCalcDiv.appendChild(customFormatDiv));
33706
+ if (this.parent.getModuleName() === 'pivotfieldlist' && this.parent.
33707
+ dialogRenderer.parentElement.querySelector('.' + FORMULA) === null && this.parent.isAdaptive) {
33708
+ let okBtn = outerDiv.querySelector('.' + CALCOKBTN);
33709
+ outerDiv.appendChild(okBtn);
33613
33710
  }
33614
33711
  else {
33615
- let customFormatDiv = createElement('div', { id: this.parentID + 'custom_Format_Div', className: CALC_CUSTOM_FORMAT_INPUTDIV });
33616
- if (!this.parent.isAdaptive) {
33617
- let formatTitle = createElement('div', {
33618
- className: OLAP_FORMAT_TITLE_CLASS,
33619
- innerHTML: this.parent.localeObj.getConstant('formatString')
33620
- });
33621
- customFormatDiv.appendChild(formatTitle);
33712
+ if (this.parent.dataType === 'olap') {
33713
+ outerDiv.appendChild(olapFieldTreeDiv);
33622
33714
  }
33623
- let customFormatObj = createElement('input', {
33624
- id: this.parentID + 'Custom_Format_Element',
33625
- attrs: { 'type': 'text' },
33626
- className: CALC_FORMAT_INPUT
33627
- });
33628
- customFormatDiv.appendChild(customFormatObj);
33629
- (this.parent.isAdaptive ? outerDiv.insertBefore(customFormatDiv, select('#' + this.parentID + 'buttonDiv', outerDiv)) : outerDiv.appendChild(customFormatDiv));
33715
+ outerDiv.appendChild(pivotCalcDiv);
33630
33716
  }
33631
33717
  }
33632
33718
  return outerDiv;
@@ -33651,12 +33737,12 @@ class CalculatedField {
33651
33737
  this.parentHierarchy = this.fieldType === 'Dimension' ? hierarchyDrop.value : null;
33652
33738
  }
33653
33739
  if (dialogElement.element.querySelector('.' + CALC_FORMAT_TYPE_DIV)) {
33654
- let formatDrop = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement.element), DropDownList);
33655
- this.formatType = formatDrop.value;
33740
+ let ddlFormatTypes = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement.element), DropDownList);
33741
+ this.formatType = ddlFormatTypes.value;
33656
33742
  }
33657
33743
  if (dialogElement.element.querySelector('.' + CALC_FORMAT_INPUT)) {
33658
33744
  let customFormat = getInstance(select('#' + this.parentID + 'Custom_Format_Element', dialogElement.element), MaskedTextBox);
33659
- this.formatText = this.parent.dataType === 'olap' ? this.formatType === 'Custom' ? customFormat.value : null : customFormat.value;
33745
+ this.formatText = (this.parent.dataType === 'olap' ? this.formatType : this.getFormat(this.formatType)) === 'Custom' ? customFormat.value : null;
33660
33746
  }
33661
33747
  }
33662
33748
  else {
@@ -33702,9 +33788,8 @@ class CalculatedField {
33702
33788
  hierarchyDrop.dataBind();
33703
33789
  }
33704
33790
  if (dialogElement.querySelector('.' + CALC_FORMAT_TYPE_DIV)) {
33705
- let formatStringData = ['Standard', 'Currency', 'Percent', 'None'];
33706
- let formatDrop = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement), DropDownList);
33707
- this.formatType = formatDrop.value = (formatStringData.indexOf(calcInfo.formatString) > -1 ? calcInfo.formatString : 'Custom');
33791
+ let ddlFormatTypes = getInstance(select('#' + this.parentID + 'Format_Div', dialogElement), DropDownList);
33792
+ this.formatType = ddlFormatTypes.value = (this.formatTypes.indexOf(calcInfo.formatString) > -1 ? calcInfo.formatString : 'Custom');
33708
33793
  }
33709
33794
  if (dialogElement.querySelector('.' + CALC_FORMAT_INPUT)) {
33710
33795
  let customFormat = getInstance(select('#' + this.parentID + 'Custom_Format_Element', dialogElement), MaskedTextBox);
@@ -33723,63 +33808,65 @@ class CalculatedField {
33723
33808
  * To create treeview.
33724
33809
  * @returns {void}
33725
33810
  */
33726
- createOlapDropElements() {
33811
+ createDropElements() {
33727
33812
  let dialogElement = (this.parent.isAdaptive ?
33728
33813
  this.parent.dialogRenderer.parentElement : this.dialog.element);
33729
- let mData = [];
33730
33814
  let fData = [];
33731
33815
  let fieldData = [];
33732
- let memberTypeData = ['Measure', 'Dimension'];
33733
- let formatStringData = ['Standard', 'Currency', 'Percent', 'Custom', 'None'];
33734
- for (let type of memberTypeData) {
33735
- mData.push({ value: type, text: this.parent.localeObj.getConstant(type) });
33736
- }
33737
- for (let format of formatStringData) {
33738
- fData.push({ value: format, text: this.parent.localeObj.getConstant(format) });
33816
+ for (let format of this.formatTypes) {
33817
+ fData.push({ value: (this.parent.dataType === 'pivot' ? this.getFormat(format) : format), text: this.parent.localeObj.getConstant(format) });
33739
33818
  }
33740
- let fields = PivotUtil.getClonedData(this.parent.olapEngineModule.fieldListData);
33741
- for (let item of fields) {
33742
- if (item.spriteCssClass &&
33743
- (item.spriteCssClass.indexOf('e-attributeCDB-icon') > -1 ||
33744
- item.spriteCssClass.indexOf('e-hierarchyCDB-icon') > -1)) {
33745
- fieldData.push({ value: item.id, text: item.caption });
33746
- }
33747
- }
33748
- let memberTypeObj = new DropDownList({
33749
- dataSource: mData, enableRtl: this.parent.enableRtl, locale: this.parent.locale,
33750
- fields: { value: 'value', text: 'text' },
33751
- value: this.fieldType !== null ? this.fieldType : mData[0].value,
33752
- readonly: this.isEdit,
33753
- cssClass: MEMBER_OPTIONS_CLASS + (this.parent.cssClass ? (' ' + this.parent.cssClass) : ''), width: '100%',
33754
- change: (args) => {
33755
- hierarchyListObj.enabled = args.value === 'Dimension' ? true : false;
33756
- this.fieldType = args.value;
33757
- this.formulaText = select('#' + this.parentID + 'droppable', document).value;
33758
- hierarchyListObj.dataBind();
33819
+ if (this.parent.dataType === 'olap') {
33820
+ let mData = [];
33821
+ let memberTypeData = ['Measure', 'Dimension'];
33822
+ for (let type of memberTypeData) {
33823
+ mData.push({ value: type, text: this.parent.localeObj.getConstant(type) });
33759
33824
  }
33760
- });
33761
- memberTypeObj.isStringTemplate = true;
33762
- memberTypeObj.appendTo(select('#' + this.parentID + 'Member_Type_Div', dialogElement));
33763
- let hierarchyListObj = new DropDownList({
33764
- dataSource: fieldData, enableRtl: this.parent.enableRtl, locale: this.parent.locale,
33765
- allowFiltering: true,
33766
- enabled: memberTypeObj.value === 'Dimension' ? true : false,
33767
- filterBarPlaceholder: this.parent.localeObj.getConstant('example') + ' ' + fieldData[0].text.toString(),
33768
- fields: { value: 'value', text: 'text' },
33769
- value: this.parentHierarchy !== null && memberTypeObj.value === 'Dimension' ?
33770
- this.parentHierarchy : fieldData[0].value,
33771
- cssClass: MEMBER_OPTIONS_CLASS + (this.parent.cssClass ? (' ' + this.parent.cssClass) : ''), width: '100%',
33772
- change: (args) => {
33773
- this.parentHierarchy = args.value;
33774
- this.formulaText = select('#' + this.parentID + 'droppable', document).value;
33825
+ let fields = PivotUtil.getClonedData(this.parent.olapEngineModule.fieldListData);
33826
+ for (let item of fields) {
33827
+ if (item.spriteCssClass &&
33828
+ (item.spriteCssClass.indexOf('e-attributeCDB-icon') > -1 ||
33829
+ item.spriteCssClass.indexOf('e-hierarchyCDB-icon') > -1)) {
33830
+ fieldData.push({ value: item.id, text: item.caption });
33831
+ }
33775
33832
  }
33776
- });
33777
- hierarchyListObj.isStringTemplate = true;
33778
- hierarchyListObj.appendTo(select('#' + this.parentID + 'Hierarchy_List_Div', dialogElement));
33833
+ let memberTypeObj = new DropDownList({
33834
+ dataSource: mData, enableRtl: this.parent.enableRtl, locale: this.parent.locale,
33835
+ fields: { value: 'value', text: 'text' },
33836
+ value: this.fieldType !== null ? this.fieldType : mData[0].value,
33837
+ readonly: this.isEdit,
33838
+ cssClass: MEMBER_OPTIONS_CLASS + (this.parent.cssClass ? (' ' + this.parent.cssClass) : ''), width: '100%',
33839
+ change: (args) => {
33840
+ hierarchyListObj.enabled = args.value === 'Dimension' ? true : false;
33841
+ this.fieldType = args.value;
33842
+ this.formulaText = select('#' + this.parentID + 'droppable', document).value;
33843
+ hierarchyListObj.dataBind();
33844
+ }
33845
+ });
33846
+ memberTypeObj.isStringTemplate = true;
33847
+ memberTypeObj.appendTo(select('#' + this.parentID + 'Member_Type_Div', dialogElement));
33848
+ let hierarchyListObj = new DropDownList({
33849
+ dataSource: fieldData, enableRtl: this.parent.enableRtl, locale: this.parent.locale,
33850
+ allowFiltering: true,
33851
+ enabled: memberTypeObj.value === 'Dimension' ? true : false,
33852
+ filterBarPlaceholder: this.parent.localeObj.getConstant('example') + ' ' + fieldData[0].text.toString(),
33853
+ fields: { value: 'value', text: 'text' },
33854
+ value: this.parentHierarchy !== null && memberTypeObj.value === 'Dimension' ?
33855
+ this.parentHierarchy : fieldData[0].value,
33856
+ cssClass: MEMBER_OPTIONS_CLASS + (this.parent.cssClass ? (' ' + this.parent.cssClass) : ''), width: '100%',
33857
+ change: (args) => {
33858
+ this.parentHierarchy = args.value;
33859
+ this.formulaText = select('#' + this.parentID + 'droppable', document).value;
33860
+ }
33861
+ });
33862
+ hierarchyListObj.isStringTemplate = true;
33863
+ hierarchyListObj.appendTo(select('#' + this.parentID + 'Hierarchy_List_Div', dialogElement));
33864
+ }
33779
33865
  let formatStringObj = new DropDownList({
33780
33866
  dataSource: fData, enableRtl: this.parent.enableRtl, locale: this.parent.locale,
33781
33867
  fields: { value: 'value', text: 'text' },
33782
- value: this.formatType !== null ? this.formatType : fData[0].value,
33868
+ value: this.parent.isAdaptive && this.formatType !== null ? this.formatType
33869
+ : this.parent.dataType === 'olap' ? fData[0].value : fData[4].value,
33783
33870
  cssClass: MEMBER_OPTIONS_CLASS + (this.parent.cssClass ? (' ' + this.parent.cssClass) : ''), width: '100%',
33784
33871
  change: (args) => {
33785
33872
  customerFormatObj.enabled = args.value === 'Custom' ? true : false;
@@ -33804,6 +33891,30 @@ class CalculatedField {
33804
33891
  customerFormatObj.isStringTemplate = true;
33805
33892
  customerFormatObj.appendTo('#' + this.parentID + 'Custom_Format_Element');
33806
33893
  }
33894
+ getFormat(pivotFormat) {
33895
+ let format = pivotFormat;
33896
+ switch (format) {
33897
+ case 'Standard':
33898
+ format = 'N';
33899
+ break;
33900
+ case 'Currency':
33901
+ format = 'C';
33902
+ break;
33903
+ case 'Percent':
33904
+ format = 'P';
33905
+ break;
33906
+ case 'N':
33907
+ format = 'Standard';
33908
+ break;
33909
+ case 'C':
33910
+ format = 'Currency';
33911
+ break;
33912
+ case 'P':
33913
+ format = 'Percent';
33914
+ break;
33915
+ }
33916
+ return format;
33917
+ }
33807
33918
  /**
33808
33919
  * To create treeview.
33809
33920
  * @returns {void}
@@ -33956,12 +34067,11 @@ class CalculatedField {
33956
34067
  args.node.setAttribute('data-membertype', field.fieldType);
33957
34068
  args.node.setAttribute('data-hierarchy', field.parentHierarchy ? field.parentHierarchy : '');
33958
34069
  args.node.setAttribute('data-formula', field.formula);
33959
- let formatStringData = ['Standard', 'Currency', 'Percent', 'None'];
33960
34070
  let formatString;
33961
- formatString = (field.formatString ? formatStringData.indexOf(field.formatString) > -1 ?
34071
+ formatString = (field.formatString ? this.formatTypes.indexOf(field.formatString) > -1 ?
33962
34072
  field.formatString : 'Custom' : 'None');
33963
34073
  args.node.setAttribute('data-formatString', formatString);
33964
- args.node.setAttribute('data-customString', (formatString === 'Custom' ? field.formatString : ''));
34074
+ args.node.setAttribute('data-customformatstring', (formatString === 'Custom' ? field.formatString : ''));
33965
34075
  let removeElement = createElement('span', {
33966
34076
  className: GRID_REMOVE + ' e-icons e-list-icon'
33967
34077
  });
@@ -34001,6 +34111,13 @@ class CalculatedField {
34001
34111
  args.node.setAttribute('data-type', args.nodeData.type);
34002
34112
  let formatObj = PivotUtil.getFieldByName(field, this.parent.dataSourceSettings.formatSettings);
34003
34113
  args.node.setAttribute('data-formatString', formatObj ? formatObj.format : '');
34114
+ if (formatObj) {
34115
+ let pivotFormat = this.getFormat(formatObj.format);
34116
+ let formatString = (pivotFormat ? this.formatTypes.indexOf(pivotFormat) > -1 ?
34117
+ formatObj.format : 'Custom' : 'None');
34118
+ args.node.setAttribute('data-customformatstring', (formatString === 'Custom' ? pivotFormat : ''));
34119
+ args.node.setAttribute('data-formatString', formatObj ? formatString : '');
34120
+ }
34004
34121
  let dragElement = createElement('span', {
34005
34122
  attrs: { 'tabindex': '-1', 'aria-disabled': 'false', 'title': this.parent.localeObj.getConstant('dragField') },
34006
34123
  className: ICON + ' e-drag'
@@ -34079,7 +34196,7 @@ class CalculatedField {
34079
34196
  let key = keys[index];
34080
34197
  data.push({
34081
34198
  header: '<input id=' + this.parentID + '_' + index + ' class=' + CALCCHECK + ' type="checkbox" data-field=' +
34082
- key + ' data-caption=' + this.parent.engineModule.fieldList[key].caption + ' data-type=' +
34199
+ key + ' data-caption="' + this.parent.engineModule.fieldList[key].caption + '" data-type=' +
34083
34200
  this.parent.engineModule.fieldList[key].type + '/>',
34084
34201
  content: (this.parent.engineModule.fieldList[key].aggregateType === CALC ||
34085
34202
  (this.getMenuItems(this.parent.engineModule.fieldList[key].type).length < 1)) ? '' :
@@ -34098,9 +34215,9 @@ class CalculatedField {
34098
34215
  renderMobileLayout(tabObj) {
34099
34216
  tabObj.items[4].content = this.renderDialogElements().outerHTML;
34100
34217
  tabObj.dataBind();
34101
- if (this.parent.dataType === 'olap' && this.parent.isAdaptive && this.parent.
34218
+ if (this.parent.isAdaptive && this.parent.
34102
34219
  dialogRenderer.parentElement.querySelector('.' + FORMULA) !== null) {
34103
- this.createOlapDropElements();
34220
+ this.createDropElements();
34104
34221
  }
34105
34222
  let cancelBtn = new Button({ cssClass: FLAT + (this.parent.cssClass ? (' ' + this.parent.cssClass) : ''), isPrimary: true, locale: this.parent.locale, enableRtl: this.parent.enableRtl });
34106
34223
  cancelBtn.isStringTemplate = true;
@@ -34124,25 +34241,6 @@ class CalculatedField {
34124
34241
  });
34125
34242
  this.inputObj.isStringTemplate = true;
34126
34243
  this.inputObj.appendTo('#' + this.parentID + 'ddlelement');
34127
- if (this.parent.dataType === 'pivot') {
34128
- let formatInputObj = new MaskedTextBox({
34129
- locale: this.parent.locale, enableRtl: this.parent.enableRtl,
34130
- placeholder: this.parent.localeObj.getConstant('numberFormatString'),
34131
- change: (args) => {
34132
- this.formatText = args.value;
34133
- this.formulaText = select('#' + this.parentID + 'droppable', document).value;
34134
- },
34135
- cssClass: this.parent.cssClass
34136
- });
34137
- formatInputObj.isStringTemplate = true;
34138
- formatInputObj.appendTo('#' + this.parentID + 'Custom_Format_Element');
34139
- if (this.formatText !== null && this.parent.
34140
- dialogRenderer.parentElement.querySelector('.' + CALC_FORMAT_INPUT) !== null) {
34141
- this.parent.
34142
- dialogRenderer.parentElement.querySelector('.' + CALC_FORMAT_INPUT).value = this.formatText;
34143
- formatInputObj.value = this.formatText;
34144
- }
34145
- }
34146
34244
  if (this.formulaText !== null && select('#' + this.parentID + 'droppable', this.parent.dialogRenderer.parentElement) !== null) {
34147
34245
  let drop = select('#' + this.parentID + 'droppable', this.parent.dialogRenderer.parentElement);
34148
34246
  drop.value = this.formulaText;
@@ -34354,18 +34452,7 @@ class CalculatedField {
34354
34452
  });
34355
34453
  this.inputObj.isStringTemplate = true;
34356
34454
  this.inputObj.appendTo('#' + this.parentID + 'ddlelement');
34357
- if (this.parent.dataType === 'pivot') {
34358
- let customerFormatObj = new MaskedTextBox({
34359
- placeholder: this.parent.localeObj.getConstant('numberFormatString'),
34360
- locale: this.parent.locale, enableRtl: this.parent.enableRtl,
34361
- cssClass: this.parent.cssClass
34362
- });
34363
- customerFormatObj.isStringTemplate = true;
34364
- customerFormatObj.appendTo('#' + this.parentID + 'Custom_Format_Element');
34365
- }
34366
- if (this.parent.dataType === 'olap' && !this.parent.isAdaptive) {
34367
- this.createOlapDropElements();
34368
- }
34455
+ this.createDropElements();
34369
34456
  this.createTreeView();
34370
34457
  this.droppable = new Droppable(select('#' + this.parentID + 'droppable'));
34371
34458
  this.keyboardEvents = new KeyboardEvents(this.parent.calculatedFieldModule.dialog.element, {
@@ -34490,6 +34577,7 @@ class CalculatedField {
34490
34577
  */
34491
34578
  destroy() {
34492
34579
  this.removeEventListener();
34580
+ this.formatTypes = null;
34493
34581
  }
34494
34582
  }
34495
34583
 
@@ -35310,7 +35398,8 @@ class ConditionalFormatting {
35310
35398
  remove(select('#' + this.parentID + 'conditionalformatting', document));
35311
35399
  }
35312
35400
  this.parent.element.appendChild(createElement('div', {
35313
- id: this.parentID + 'conditionalformatting'
35401
+ id: this.parentID + 'conditionalformatting',
35402
+ className: FORMAT_DIALOG
35314
35403
  }));
35315
35404
  let buttonModel = [
35316
35405
  {
@@ -35345,14 +35434,14 @@ class ConditionalFormatting {
35345
35434
  showCloseIcon: false, closeOnEscape: false, enableRtl: this.parent.enableRtl, locale: this.parent.locale,
35346
35435
  position: { X: 'center', Y: 'center' }, allowDragging: true, buttons: buttonModel,
35347
35436
  beforeOpen: this.beforeOpen.bind(this), close: this.removeDialog.bind(this),
35348
- cssClass: FORMAT_DIALOG + (this.parent.cssClass ? (' ' + this.parent.cssClass) : ''), header: this.parent.localeObj.getConstant('conditionalFormating'), target: document.body
35437
+ cssClass: this.parent.cssClass, header: this.parent.localeObj.getConstant('conditionalFormating'), target: document.body
35349
35438
  });
35350
35439
  }
35351
35440
  else {
35352
35441
  this.dialog = new Dialog({
35353
35442
  allowDragging: true, position: { X: 'center', Y: this.parent.element.offsetTop }, buttons: buttonModel,
35354
35443
  beforeOpen: this.beforeOpen.bind(this), close: this.removeDialog.bind(this),
35355
- cssClass: FORMAT_DIALOG + (this.parent.cssClass ? (' ' + this.parent.cssClass) : ''), isModal: false, closeOnEscape: true, enableRtl: this.parent.enableRtl, locale: this.parent.locale,
35444
+ cssClass: this.parent.cssClass, isModal: false, closeOnEscape: true, enableRtl: this.parent.enableRtl, locale: this.parent.locale,
35356
35445
  showCloseIcon: true, header: this.parent.localeObj.getConstant('conditionalFormating'), target: this.parent.element
35357
35446
  });
35358
35447
  }
@@ -36946,12 +37035,12 @@ class Toolbar$2 {
36946
37035
  });
36947
37036
  args.element.innerText = '';
36948
37037
  checkbox.appendTo('#' + this.parent.element.id + '_' + 'checkBox');
36949
- if ((['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(this.parent.chartSettings.chartSeries.type) > -1) &&
37038
+ if ((['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) > -1) &&
36950
37039
  !args.element.classList.contains(MENU_DISABLE)) {
36951
37040
  args.element.classList.add(MENU_DISABLE);
36952
37041
  checkbox.disabled = true;
36953
37042
  }
36954
- else if ((['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(this.parent.chartSettings.chartSeries.type) < 0) &&
37043
+ else if ((['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) < 0) &&
36955
37044
  args.element.classList.contains(MENU_DISABLE)) {
36956
37045
  args.element.classList.remove(MENU_DISABLE);
36957
37046
  checkbox.disabled = false;
@@ -36987,7 +37076,7 @@ class Toolbar$2 {
36987
37076
  this.showLableState = chartSettings.legendSettings.visible;
36988
37077
  }
36989
37078
  else {
36990
- this.showLableState = ['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(this.parent.chartSettings.chartSeries.type) > -1 ?
37079
+ this.showLableState = ['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) > -1 ?
36991
37080
  false : true;
36992
37081
  }
36993
37082
  return this.showLableState;
@@ -37468,11 +37557,11 @@ class Toolbar$2 {
37468
37557
  changeDropDown(args) {
37469
37558
  let chartSettings = JSON.parse(this.parent.getPersistData()).chartSettings;
37470
37559
  if (!(chartSettings && chartSettings.legendSettings && chartSettings.legendSettings.visible !== undefined)) {
37471
- let checked = ['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(args.value.toString()) > -1 ?
37560
+ let checked = ['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(args.value.toString()) > -1 ?
37472
37561
  false : true;
37473
37562
  getInstance(select('#' + this.parent.element.id + '_DialogShowLabel'), CheckBox).checked = checked;
37474
37563
  }
37475
- if (['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(args.value.toString()) > -1) {
37564
+ if (['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(args.value.toString()) > -1) {
37476
37565
  getInstance(select('#' + this.parent.element.id + '_DialogMultipleAxis'), CheckBox).disabled = true;
37477
37566
  getInstance(select('#' + this.parent.element.id + '_AxisModeOption'), DropDownList).enabled = false;
37478
37567
  }
@@ -37503,7 +37592,7 @@ class Toolbar$2 {
37503
37592
  });
37504
37593
  checkbox1.appendTo(select('#' + this.parent.element.id + '_DialogShowLabel', this.chartTypesDialog.element));
37505
37594
  checkbox.appendTo(select('#' + this.parent.element.id + '_DialogMultipleAxis', this.chartTypesDialog.element));
37506
- if (['Pie', 'Funnel', 'Pyramid', 'Doughnut'].indexOf(this.parent.chartSettings.chartSeries.type) > -1) {
37595
+ if (['Pie', 'Funnel', 'Pyramid', 'Doughnut', 'Pareto'].indexOf(this.parent.chartSettings.chartSeries.type) > -1) {
37507
37596
  checkbox.disabled = true;
37508
37597
  getInstance(select('#' + this.parent.element.id + '_AxisModeOption'), DropDownList).enabled = false;
37509
37598
  }
@@ -38069,7 +38158,7 @@ class Grouping {
38069
38158
  this.parentElement = parentElement;
38070
38159
  this.selectedCellsInfo = [];
38071
38160
  this.isUpdate = false;
38072
- let colIndex = Number(target.getAttribute('aria-colindex'));
38161
+ let colIndex = Number(target.getAttribute('data-colindex'));
38073
38162
  let rowIndex = Number(target.getAttribute('index'));
38074
38163
  let cell = this.parent.engineModule.pivotValues[rowIndex][colIndex];
38075
38164
  let fieldName = cell.valueSort.axis.toString();
@@ -38261,7 +38350,7 @@ class Grouping {
38261
38350
  let selectedElements = this.parent.element.querySelectorAll('.' + CELL_SELECTED_BGCOLOR + ',.' + SELECTED_BGCOLOR);
38262
38351
  /* eslint-enable */
38263
38352
  for (let element of selectedElements) {
38264
- let colIndex = Number(element.getAttribute('aria-colindex'));
38353
+ let colIndex = Number(element.getAttribute('data-colindex'));
38265
38354
  let rowIndex = Number(element.getAttribute('index'));
38266
38355
  let cell = this.parent.engineModule.pivotValues[rowIndex][colIndex];
38267
38356
  if (cell && (cell.axis === axis) && !(cell.type === 'grand sum' || cell.type === 'sum') &&
@@ -38885,5 +38974,5 @@ class Grouping {
38885
38974
  * Export PivotGrid components
38886
38975
  */
38887
38976
 
38888
- export { GroupingBarSettings, CellEditSettings, ConditionalSettings, HyperlinkSettings, DisplayOption, PivotView, Render, ExcelExport$1 as ExcelExport, PDFExport, KeyboardInteraction, VirtualScroll$1 as VirtualScroll, DrillThrough, PivotChart, PivotFieldList, TreeViewRenderer, AxisFieldRenderer, AxisTableRenderer, DialogRenderer, EventBase, NodeStateModified, DataSourceUpdate, FieldList, CommonKeyboardInteraction, Common, GroupingBar, CalculatedField, ConditionalFormatting, PivotCommon, load, enginePopulating, enginePopulated, onFieldDropped, fieldDrop, beforePivotTableRender, afterPivotTableRender, beforeExport, excelHeaderQueryCellInfo, pdfHeaderQueryCellInfo, excelQueryCellInfo, pdfQueryCellInfo, onPdfCellRender, dataBound, queryCellInfo, headerCellInfo, hyperlinkCellClick, resizing, resizeStop, cellClick, drillThrough, beforeColumnsRender, selected, cellSelecting, drill, cellSelected, cellDeselected, rowSelected, rowDeselected, beginDrillThrough, editCompleted, multiLevelLabelClick, saveReport, fetchReport, loadReport, renameReport, removeReport, newReport, toolbarRender, toolbarClick, chartTooltipRender, chartLoaded, chartLoad, chartResized, chartAxisLabelRender, chartSeriesCreated, aggregateCellInfo, onHeadersSort, contextMenuClick, contextMenuOpen, fieldListRefreshed, conditionalFormatting, beforePdfExport, beforeExcelExport, memberFiltering, calculatedFieldCreate, memberEditorOpen, fieldRemove, numberFormatting, aggregateMenuOpen, fieldDragStart, chartPointClick, beforeServiceInvoke, actionBegin, actionComplete, actionFailure, initialLoad, uiUpdate, scroll, contentReady, dataReady, initSubComponent, treeViewUpdate, pivotButtonUpdate, initCalculatedField, click, initToolbar, initFormatting, initGrouping, sortValue, drillUp, drillDown, addNewReport, saveCurrentReport, saveAsCurrentReport, renameCurrentReport, removeCurrentReport, loadReports, openConditionalFormatting, openNumberFormatting, MdxQuery, showFieldList, tableView, chartView, multipleAxis, showLegend, pdfExport, pngExport, excelExport, csvExport, jpegExport, svgExport, hideSubTotals, subTotalsRow, subTotalsColumn, showSubTotals, hideGrandTotals, grandTotalsRow, grandTotalsColumn, showGrandTotals, numberFormattingMenu, conditionalFormattingMenu, reportChange, sortFieldTree, editCalculatedField, sortField, filterField, removeField, openCalculatedField, editRecord, saveEditedRecords, addNewRecord, removeRecord, aggregateField, contextMenuCalculatedField, windowResize, calculatedFieldApplied, editedRecordsSaved, newRecordAdded, recordRemoved, closeFieldlist, fieldTreeSorted, reportSaved, newReportAdded, reportReSaved, reportRenamed, reportRemoved, excelExported, csvExported, pdfExported, pngExported, jpegExported, svgExported, conditionallyFormatted, numberFormatted, tableViewed, chartViewed, subTotalsHidden, subTotalsRowShown, subTotalsColumnShown, subTotalsShown, grandTotalsHidden, grandTotalsRowShown, grandTotalsColumnShown, grandTotalsShown, valueSorted, calculatedFieldEdited, fieldSorted, fieldFiltered, fieldRemoved, fieldAggregated, recordEdited, reportChanged, windowResized, recordUpdated, drillThroughClosed, Theme, ErrorDialog, FilterDialog, PivotContextMenu, AggregateMenu, Toolbar$2 as Toolbar, NumberFormatting, Grouping, PivotEngine, PivotUtil, OlapEngine, MDXQuery };
38977
+ export { GroupingBarSettings, CellEditSettings, ConditionalSettings, HyperlinkSettings, DisplayOption, PivotView, Render, ExcelExport$1 as ExcelExport, PDFExport, KeyboardInteraction, VirtualScroll$1 as VirtualScroll, DrillThrough, PivotChart, PivotFieldList, TreeViewRenderer, AxisFieldRenderer, AxisTableRenderer, DialogRenderer, EventBase, NodeStateModified, DataSourceUpdate, FieldList, CommonKeyboardInteraction, Common, GroupingBar, CalculatedField, ConditionalFormatting, PivotCommon, load, enginePopulating, enginePopulated, onFieldDropped, fieldDrop, beforePivotTableRender, afterPivotTableRender, beforeExport, exportComplete, excelHeaderQueryCellInfo, pdfHeaderQueryCellInfo, excelQueryCellInfo, pdfQueryCellInfo, onPdfCellRender, dataBound, queryCellInfo, headerCellInfo, hyperlinkCellClick, resizing, resizeStop, cellClick, drillThrough, beforeColumnsRender, selected, cellSelecting, drill, cellSelected, cellDeselected, rowSelected, rowDeselected, beginDrillThrough, editCompleted, multiLevelLabelClick, saveReport, fetchReport, loadReport, renameReport, removeReport, newReport, toolbarRender, toolbarClick, chartTooltipRender, chartLoaded, chartLoad, chartResized, chartAxisLabelRender, chartSeriesCreated, aggregateCellInfo, onHeadersSort, contextMenuClick, contextMenuOpen, fieldListRefreshed, conditionalFormatting, beforePdfExport, beforeExcelExport, memberFiltering, calculatedFieldCreate, memberEditorOpen, fieldRemove, numberFormatting, aggregateMenuOpen, fieldDragStart, chartPointClick, beforeServiceInvoke, actionBegin, actionComplete, actionFailure, initialLoad, uiUpdate, scroll, verticalScroll, horizontalScroll, contentReady, dataReady, initSubComponent, treeViewUpdate, pivotButtonUpdate, initCalculatedField, click, initToolbar, initFormatting, initGrouping, sortValue, drillUp, drillDown, addNewReport, saveCurrentReport, saveAsCurrentReport, renameCurrentReport, removeCurrentReport, loadReports, openConditionalFormatting, openNumberFormatting, MdxQuery, showFieldList, tableView, chartView, multipleAxis, showLegend, pdfExport, pngExport, excelExport, csvExport, jpegExport, svgExport, hideSubTotals, subTotalsRow, subTotalsColumn, showSubTotals, hideGrandTotals, grandTotalsRow, grandTotalsColumn, showGrandTotals, numberFormattingMenu, conditionalFormattingMenu, reportChange, sortFieldTree, editCalculatedField, sortField, filterField, removeField, openCalculatedField, editRecord, saveEditedRecords, addNewRecord, removeRecord, aggregateField, contextMenuCalculatedField, windowResize, calculatedFieldApplied, editedRecordsSaved, newRecordAdded, recordRemoved, closeFieldlist, fieldTreeSorted, reportSaved, newReportAdded, reportReSaved, reportRenamed, reportRemoved, excelExported, csvExported, pdfExported, pngExported, jpegExported, svgExported, conditionallyFormatted, numberFormatted, tableViewed, chartViewed, subTotalsHidden, subTotalsRowShown, subTotalsColumnShown, subTotalsShown, grandTotalsHidden, grandTotalsRowShown, grandTotalsColumnShown, grandTotalsShown, valueSorted, calculatedFieldEdited, fieldSorted, fieldFiltered, fieldRemoved, fieldAggregated, recordEdited, reportChanged, windowResized, recordUpdated, drillThroughClosed, verticalScrolled, horizontalScrolled, Theme, ErrorDialog, FilterDialog, PivotContextMenu, AggregateMenu, Toolbar$2 as Toolbar, NumberFormatting, Grouping, PivotEngine, PivotUtil, OlapEngine, MDXQuery };
38889
38978
  //# sourceMappingURL=ej2-pivotview.es2015.js.map