@syncfusion/ej2-pivotview 19.3.47 → 19.3.57

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.
@@ -4086,6 +4086,7 @@ class PivotEngine {
4086
4086
  let summCell = headers[headers.length - 1];
4087
4087
  if (summCell && summCell.type === 'grand sum') {
4088
4088
  summCell.index = this.filterMembers;
4089
+ summCell.indexObject = {};
4089
4090
  /* eslint-disable */
4090
4091
  for (let ln = 0, lt = this.filterMembers.length; ln < lt; ln++) {
4091
4092
  summCell.indexObject[this.filterMembers[ln]] = this.filterMembers[ln];
@@ -4266,10 +4267,11 @@ class PivotEngine {
4266
4267
  row.colIndex = 0;
4267
4268
  row.rowIndex = tnum;
4268
4269
  let isRowFieldsAvail = false;
4270
+ let delimiter = this.dataSourceSettings.valueSortSettings.headerDelimiter;
4269
4271
  if (this.valueAxis && this.dataSourceSettings.rows.length === 0 && this.dataSourceSettings.values.length > 1) {
4270
4272
  this.rowIndex = (isNullOrUndefined(this.rowIndex) && !isLeastNode && this.dataSourceSettings.rows.length === 0) ? row.index : this.rowIndex;
4271
- isRowFieldsAvail = (this.valueAxis && this.dataSourceSettings.rows.length === 0 && row.valueSort.levelName.toString().indexOf('Grand Total.') !== 0);
4272
- if (this.valueAxis && this.dataSourceSettings.rows.length === 0 && row.valueSort.levelName.toString().indexOf('Grand Total.') === 0) {
4273
+ isRowFieldsAvail = (this.valueAxis && this.dataSourceSettings.rows.length === 0 && row.valueSort.levelName && row.valueSort.levelName.toString().indexOf('Grand Total' + delimiter) !== 0);
4274
+ if (this.valueAxis && this.dataSourceSettings.rows.length === 0 && row.valueSort.levelName.toString().indexOf('Grand Total' + delimiter) === 0) {
4273
4275
  row.index = this.rowIndex;
4274
4276
  }
4275
4277
  }
@@ -4294,7 +4296,7 @@ class PivotEngine {
4294
4296
  for (let cln = 0, dln = 1, clt = columns.length; cln < clt; ++cln) {
4295
4297
  if (!isValueIndexFound) {
4296
4298
  for (vln = 0; vln < vlt; vln++) {
4297
- if (row.valueSort.uniqueName && row.valueSort.uniqueName.toString().indexOf(this.values[vln].name) > -1) {
4299
+ if (row.valueSort.uniqueName && row.valueSort.uniqueName.toString().split(this.valueSortSettings.headerDelimiter).indexOf(this.values[vln].name) > -1) {
4298
4300
  isValueIndexFound = true;
4299
4301
  isValueCellUpdated = true;
4300
4302
  break;
@@ -4329,7 +4331,7 @@ class PivotEngine {
4329
4331
  for (let cln = 0, dln = 1, clt = columns.length; cln < clt; ++cln) {
4330
4332
  for (let vln = 0; vln < vlt; vln++) {
4331
4333
  if (!this.valueAxis && !this.isLastHeaderHasMeasures) {
4332
- if (columns[cln].valueSort.uniqueName && columns[cln].valueSort.uniqueName.toString().indexOf(this.values[vln].name) > -1) {
4334
+ if (columns[cln].valueSort.uniqueName && columns[cln].valueSort.uniqueName.toString().split(this.valueSortSettings.headerDelimiter).indexOf(this.values[vln].name) > -1) {
4333
4335
  this.updateRowData(rows, columns, tnum, data, vln, rln, cln, dln, actCnt, rTotal, cTotal);
4334
4336
  dln = data[tnum].length;
4335
4337
  }
@@ -7063,27 +7065,30 @@ class Render {
7063
7065
  /* eslint-disable-next-line */
7064
7066
  /** @hidden */
7065
7067
  render() {
7066
- let parent = this.parent;
7067
- let engine = this.parent.dataType === 'olap' ? this.parent.olapEngineModule : this.parent.engineModule;
7068
+ this.resColWidth = (this.parent.showGroupingBar && this.parent.groupingBarModule) ? (this.parent.isAdaptive ? 180 : 250) :
7069
+ (this.parent.isAdaptive ? 140 : 200);
7070
+ this.engine = this.parent.dataType === 'olap' ? this.parent.olapEngineModule : this.parent.engineModule;
7071
+ this.gridSettings = this.parent.gridSettings;
7072
+ this.formatList = this.getFormatList();
7068
7073
  this.parent.gridHeaderCellInfo = [];
7069
7074
  this.parent.gridCellCollection = {};
7070
- this.injectGridModules(parent);
7075
+ this.injectGridModules(this.parent);
7071
7076
  this.rowStartPos = this.getRowStartPos();
7072
7077
  if (this.parent.grid && this.parent.grid.element && this.parent.element.querySelector('.e-grid')) {
7073
7078
  this.parent.notEmpty = true;
7074
- if (!engine.isEngineUpdated) {
7075
- engine.headerContent = this.frameDataSource('header');
7076
- engine.valueContent = this.frameDataSource('value');
7079
+ if (!this.engine.isEngineUpdated) {
7080
+ this.engine.headerContent = this.frameDataSource('header');
7081
+ this.engine.valueContent = this.frameDataSource('value');
7077
7082
  }
7078
7083
  else {
7079
7084
  if (this.parent.enableValueSorting) {
7080
- engine.valueContent = this.frameDataSource('value');
7085
+ this.engine.valueContent = this.frameDataSource('value');
7081
7086
  }
7082
- engine.isEngineUpdated = false;
7087
+ this.engine.isEngineUpdated = false;
7083
7088
  }
7084
7089
  this.parent.grid.setProperties({
7085
7090
  columns: this.frameStackedHeaders(), dataSource: (this.parent.dataType === 'olap' ? true :
7086
- parent.dataSourceSettings.values.length > 0) && !this.engine.isEmptyData ? engine.valueContent :
7091
+ this.parent.dataSourceSettings.values.length > 0) && !this.engine.isEmptyData ? this.engine.valueContent :
7087
7092
  this.frameDataSource('value')
7088
7093
  }, true);
7089
7094
  if (this.parent.grid.height === 'auto') {
@@ -8015,7 +8020,7 @@ class Render {
8015
8020
  if (tCell && (this.parent.notEmpty) && this.engine.headerContent) {
8016
8021
  let customClass = this.parent.hyperlinkSettings.cssClass;
8017
8022
  let cell = args.data[0];
8018
- let isRowFieldsAvail = cell.valueSort.levelName === (this.parent.dataSourceSettings.rows.length === 0 && this.parent.dataSourceSettings.valueAxis === 'row' &&
8023
+ let isRowFieldsAvail = cell.valueSort && cell.valueSort.levelName === (this.parent.dataSourceSettings.rows.length === 0 && this.parent.dataSourceSettings.valueAxis === 'row' &&
8019
8024
  this.parent.localeObj.getConstant('grandTotal') + (this.parent.dataSourceSettings.valueSortSettings.headerDelimiter) + (cell.formattedText));
8020
8025
  tCell.setAttribute('index', cell.rowIndex ? cell.rowIndex.toString() : '0');
8021
8026
  if (tCell.getAttribute('aria-colindex') === '0') {
@@ -8102,8 +8107,9 @@ class Render {
8102
8107
  }));
8103
8108
  let vSort = this.parent.pivotView.dataSourceSettings.valueSortSettings;
8104
8109
  if (this.parent.enableValueSorting) {
8105
- if (vSort && vSort.headerText && this.parent.dataSourceSettings.valueAxis === 'row'
8106
- && this.parent.pivotValues[Number(tCell.getAttribute('index'))][0].valueSort.levelName) {
8110
+ if (vSort && vSort.headerText && this.parent.dataSourceSettings.valueAxis === 'row' &&
8111
+ this.parent.pivotValues[Number(tCell.getAttribute('index'))][0] &&
8112
+ this.parent.pivotValues[Number(tCell.getAttribute('index'))][0].valueSort.levelName) {
8107
8113
  if (this.parent.pivotValues[Number(tCell.getAttribute('index'))][0].valueSort.levelName
8108
8114
  === vSort.headerText) {
8109
8115
  let style = (tCell.querySelector('.e-expand') || tCell.querySelector('.e-collapse')) ?
@@ -8332,7 +8338,7 @@ class Render {
8332
8338
  else {
8333
8339
  tCell = this.onOlapColumnCellBoundEvent(tCell, cell);
8334
8340
  }
8335
- let isColumnFieldsAvail = (this.parent.dataSourceSettings.columns.length === 0 && this.parent.dataSourceSettings.valueAxis === 'column' &&
8341
+ let isColumnFieldsAvail = (this.parent.dataSourceSettings.columns.length === 0 && this.parent.dataSourceSettings.valueAxis === 'column' && cell.valueSort &&
8336
8342
  cell.valueSort.levelName === (this.parent.localeObj.getConstant('grandTotal') + (this.parent.dataSourceSettings.valueSortSettings.headerDelimiter) + (cell.formattedText)));
8337
8343
  if (cell.type || isColumnFieldsAvail) {
8338
8344
  tCell.classList.add(cell.type === 'grand sum' ? 'e-gtot' : 'e-stot');
@@ -8793,7 +8799,7 @@ class Render {
8793
8799
  return this.parent.localeObj.getConstant('total') + ' ' + this.parent.localeObj.getConstant(this.parent.engineModule.fieldList[cellInfo.value.toString()].aggregateType)
8794
8800
  + ' ' + this.parent.localeObj.getConstant('of') + ' ' + cellInfo.value.toString();
8795
8801
  }
8796
- else if (values.length === 1) {
8802
+ else if (values.length === 1 && this.parent.dataSourceSettings.rows.length === 0) {
8797
8803
  return this.parent.localeObj.getConstant('total') + ' ' + this.parent.localeObj.getConstant(values[values.length - 1].type)
8798
8804
  + ' ' + this.parent.localeObj.getConstant('of') + ' ' + (!isNullOrUndefined(values[values.length - 1].caption) ? values[values.length - 1].caption : values[values.length - 1].name);
8799
8805
  }
@@ -8815,7 +8821,9 @@ class Render {
8815
8821
  }
8816
8822
  /* eslint-disable */
8817
8823
  excelColumnEvent(args) {
8818
- (args.cell).value = this.getValidHeader(args, 'column');
8824
+ if (this.parent.dataSourceSettings.columns.length === 0 && this.parent.dataSourceSettings.valueAxis === 'column') {
8825
+ (args.cell).value = this.getValidHeader(args, 'column');
8826
+ }
8819
8827
  if (args.gridCell !== undefined && args.gridCell.column.width === 'auto') {
8820
8828
  this.parent.lastColumn = args.gridCell.column;
8821
8829
  args.gridCell.column.width = args.gridCell.column.minWidth;
@@ -8824,7 +8832,9 @@ class Render {
8824
8832
  this.parent.trigger(excelHeaderQueryCellInfo, args);
8825
8833
  }
8826
8834
  pdfColumnEvent(args) {
8827
- (args.cell).value = this.getValidHeader(args, 'column');
8835
+ if (this.parent.dataSourceSettings.columns.length === 0 && this.parent.dataSourceSettings.valueAxis === 'column') {
8836
+ (args.cell).value = this.getValidHeader(args, 'column');
8837
+ }
8828
8838
  if (args.gridCell !== undefined && args.gridCell.column.width === 'auto') {
8829
8839
  this.parent.lastColumn = args.gridCell.column;
8830
8840
  args.gridCell.column.width = args.gridCell.column.minWidth;
@@ -8865,7 +8875,9 @@ class Render {
8865
8875
  }
8866
8876
  }
8867
8877
  args = this.exportContentEvent(args);
8868
- args.value = args.column.field === '0.formattedText' ? this.getValidHeader(args, 'row') : args.value;
8878
+ if (this.parent.dataSourceSettings.rows.length === 0 && this.parent.dataSourceSettings.valueAxis === 'row') {
8879
+ args.value = args.column.field === '0.formattedText' ? this.getValidHeader(args, 'row') : args.value;
8880
+ }
8869
8881
  this.parent.trigger(excelQueryCellInfo, args);
8870
8882
  }
8871
8883
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -8889,7 +8901,9 @@ class Render {
8889
8901
  }
8890
8902
  args.style = { paragraphIndent: level * 10 };
8891
8903
  this.lastSpan = isValueCell ? this.lastSpan : level;
8892
- args.value = this.getValidHeader(args, 'row');
8904
+ if (this.parent.dataSourceSettings.rows.length === 0 && this.parent.dataSourceSettings.valueAxis === 'row') {
8905
+ args.value = this.getValidHeader(args, 'row');
8906
+ }
8893
8907
  }
8894
8908
  this.parent.trigger(pdfQueryCellInfo, args);
8895
8909
  }
@@ -22504,12 +22518,32 @@ let PivotView = class PivotView extends Component {
22504
22518
  /* eslint-disable */
22505
22519
  let columnRender = this.gridSettings['columnRender'];
22506
22520
  let chartLoadEvent = this.chartSettings['load'];
22521
+ let chartLoadedEvent = this.chartSettings['loaded'];
22522
+ let chartTextRenderEvent = this.chartSettings['textRender'];
22523
+ let chartPointRenderEvent = this.chartSettings['pointRender'];
22524
+ let chartSeriesRenderEvent = this.chartSettings['seriesRender'];
22525
+ let chartLegendRenderEvent = this.chartSettings['legendRender'];
22526
+ let chartPointClickEvent = this.chartSettings['pointClick'];
22527
+ let chartTooltipRenderEvent = this.chartSettings['tooltipRender'];
22507
22528
  this.gridSettings['columnRender'] = undefined;
22508
22529
  this.chartSettings['tooltipRender'] = undefined;
22509
22530
  this.chartSettings['load'] = undefined;
22531
+ this.chartSettings['loaded'] = undefined;
22532
+ this.chartSettings['textRender'] = undefined;
22533
+ this.chartSettings['pointRender'] = undefined;
22534
+ this.chartSettings['seriesRender'] = undefined;
22535
+ this.chartSettings['legendRender'] = undefined;
22536
+ this.chartSettings['pointClick'] = undefined;
22510
22537
  let persistData = this.addOnPersist(keyEntity);
22511
22538
  this.gridSettings['columnRender'] = columnRender;
22512
22539
  this.chartSettings['load'] = chartLoadEvent;
22540
+ this.chartSettings['loaded'] = chartLoadedEvent;
22541
+ this.chartSettings['textRender'] = chartTextRenderEvent;
22542
+ this.chartSettings['pointRender'] = chartPointRenderEvent;
22543
+ this.chartSettings['seriesRender'] = chartSeriesRenderEvent;
22544
+ this.chartSettings['legendRender'] = chartLegendRenderEvent;
22545
+ this.chartSettings['pointClick'] = chartPointClickEvent;
22546
+ this.chartSettings['tooltipRender'] = chartTooltipRenderEvent;
22513
22547
  /* eslint-enable */
22514
22548
  return persistData;
22515
22549
  }
@@ -22761,6 +22795,9 @@ let PivotView = class PivotView extends Component {
22761
22795
  if (this.element.querySelector('.e-grouping-bar')) {
22762
22796
  this.element.querySelector('.e-grouping-bar').remove();
22763
22797
  }
22798
+ else if (this.groupingBarModule) {
22799
+ this.groupingBarModule.renderLayout();
22800
+ }
22764
22801
  if (isNullOrUndefined(newProp.showFieldList))
22765
22802
  this.renderPivotGrid();
22766
22803
  break;
@@ -22886,7 +22923,7 @@ let PivotView = class PivotView extends Component {
22886
22923
  true : this.hyperlinkSettings.showHyperlink ? true : false);
22887
22924
  this.applyHyperlinkSettings();
22888
22925
  }
22889
- this.renderModule = new Render(this);
22926
+ this.renderModule = this.renderModule ? this.renderModule : new Render(this);
22890
22927
  this.renderModule.render();
22891
22928
  }
22892
22929
  else if (this.grid) {
@@ -24469,7 +24506,7 @@ let PivotView = class PivotView extends Component {
24469
24506
  this.isEmptyGrid = true;
24470
24507
  this.notEmpty = false;
24471
24508
  this.isInitial = true;
24472
- this.renderModule = new Render(this);
24509
+ this.renderModule = this.renderModule ? this.renderModule : new Render(this);
24473
24510
  if (this.grid && this.grid.element && this.element.querySelector('.e-grid')) {
24474
24511
  this.notEmpty = true;
24475
24512
  this.grid.setProperties({