@visactor/vtable 0.25.5 → 0.26.0-alpha.1

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 (105) hide show
  1. package/cjs/PivotChart.d.ts +9 -0
  2. package/cjs/PivotChart.js +90 -28
  3. package/cjs/PivotChart.js.map +1 -1
  4. package/cjs/PivotTable.d.ts +5 -2
  5. package/cjs/PivotTable.js +186 -152
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/core/BaseTable.js +4 -5
  8. package/cjs/core/BaseTable.js.map +1 -1
  9. package/cjs/dataset/dataset.d.ts +20 -15
  10. package/cjs/dataset/dataset.js +88 -62
  11. package/cjs/dataset/dataset.js.map +1 -1
  12. package/cjs/dataset/statistics-helper.d.ts +13 -2
  13. package/cjs/dataset/statistics-helper.js +22 -27
  14. package/cjs/dataset/statistics-helper.js.map +1 -1
  15. package/cjs/event/listener/table-group.js +3 -10
  16. package/cjs/event/listener/table-group.js.map +1 -1
  17. package/cjs/index.d.ts +1 -1
  18. package/cjs/index.js +1 -1
  19. package/cjs/index.js.map +1 -1
  20. package/cjs/layout/chart-helper/get-chart-spec.d.ts +2 -1
  21. package/cjs/layout/chart-helper/get-chart-spec.js +3 -3
  22. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  23. package/cjs/layout/layout-helper.d.ts +12 -0
  24. package/cjs/layout/layout-helper.js +52 -4
  25. package/cjs/layout/layout-helper.js.map +1 -1
  26. package/cjs/layout/pivot-header-layout.d.ts +4 -3
  27. package/cjs/layout/pivot-header-layout.js +43 -47
  28. package/cjs/layout/pivot-header-layout.js.map +1 -1
  29. package/cjs/layout/tree-helper.d.ts +2 -0
  30. package/cjs/layout/tree-helper.js +19 -11
  31. package/cjs/layout/tree-helper.js.map +1 -1
  32. package/cjs/state/cell-move/adjust-header.js +1 -1
  33. package/cjs/state/cell-move/adjust-header.js.map +1 -1
  34. package/cjs/state/resize/update-resize-column.js +1 -1
  35. package/cjs/state/resize/update-resize-column.js.map +1 -1
  36. package/cjs/state/resize/update-resize-row.js +5 -4
  37. package/cjs/state/resize/update-resize-row.js.map +1 -1
  38. package/cjs/tools/get-data-path/create-dataset.d.ts +9 -1
  39. package/cjs/tools/get-data-path/create-dataset.js +19 -8
  40. package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
  41. package/cjs/tools/get-data-path/index.js +12 -3
  42. package/cjs/tools/get-data-path/index.js.map +1 -1
  43. package/cjs/ts-types/base-table.d.ts +6 -4
  44. package/cjs/ts-types/base-table.js.map +1 -1
  45. package/cjs/ts-types/common.d.ts +2 -0
  46. package/cjs/ts-types/common.js.map +1 -1
  47. package/cjs/ts-types/menu.d.ts +1 -1
  48. package/cjs/ts-types/menu.js.map +1 -1
  49. package/cjs/ts-types/table-engine.d.ts +1 -0
  50. package/cjs/ts-types/table-engine.js.map +1 -1
  51. package/cjs/vrender.js.map +1 -1
  52. package/dist/vtable.js +902 -566
  53. package/dist/vtable.min.js +2 -2
  54. package/es/PivotChart.d.ts +9 -0
  55. package/es/PivotChart.js +97 -29
  56. package/es/PivotChart.js.map +1 -1
  57. package/es/PivotTable.d.ts +5 -2
  58. package/es/PivotTable.js +188 -148
  59. package/es/PivotTable.js.map +1 -1
  60. package/es/core/BaseTable.js +4 -5
  61. package/es/core/BaseTable.js.map +1 -1
  62. package/es/dataset/dataset.d.ts +20 -15
  63. package/es/dataset/dataset.js +89 -61
  64. package/es/dataset/dataset.js.map +1 -1
  65. package/es/dataset/statistics-helper.d.ts +13 -2
  66. package/es/dataset/statistics-helper.js +22 -27
  67. package/es/dataset/statistics-helper.js.map +1 -1
  68. package/es/event/listener/table-group.js +2 -11
  69. package/es/event/listener/table-group.js.map +1 -1
  70. package/es/index.d.ts +1 -1
  71. package/es/index.js +1 -1
  72. package/es/index.js.map +1 -1
  73. package/es/layout/chart-helper/get-chart-spec.d.ts +2 -1
  74. package/es/layout/chart-helper/get-chart-spec.js +3 -3
  75. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  76. package/es/layout/layout-helper.d.ts +12 -0
  77. package/es/layout/layout-helper.js +50 -0
  78. package/es/layout/layout-helper.js.map +1 -1
  79. package/es/layout/pivot-header-layout.d.ts +4 -3
  80. package/es/layout/pivot-header-layout.js +41 -46
  81. package/es/layout/pivot-header-layout.js.map +1 -1
  82. package/es/layout/tree-helper.d.ts +2 -0
  83. package/es/layout/tree-helper.js +19 -11
  84. package/es/layout/tree-helper.js.map +1 -1
  85. package/es/state/cell-move/adjust-header.js +1 -1
  86. package/es/state/cell-move/adjust-header.js.map +1 -1
  87. package/es/state/resize/update-resize-column.js +1 -1
  88. package/es/state/resize/update-resize-column.js.map +1 -1
  89. package/es/state/resize/update-resize-row.js +5 -4
  90. package/es/state/resize/update-resize-row.js.map +1 -1
  91. package/es/tools/get-data-path/create-dataset.d.ts +9 -1
  92. package/es/tools/get-data-path/create-dataset.js +20 -7
  93. package/es/tools/get-data-path/create-dataset.js.map +1 -1
  94. package/es/tools/get-data-path/index.js +15 -2
  95. package/es/tools/get-data-path/index.js.map +1 -1
  96. package/es/ts-types/base-table.d.ts +6 -4
  97. package/es/ts-types/base-table.js.map +1 -1
  98. package/es/ts-types/common.d.ts +2 -0
  99. package/es/ts-types/common.js.map +1 -1
  100. package/es/ts-types/menu.d.ts +1 -1
  101. package/es/ts-types/menu.js.map +1 -1
  102. package/es/ts-types/table-engine.d.ts +1 -0
  103. package/es/ts-types/table-engine.js.map +1 -1
  104. package/es/vrender.js.map +1 -1
  105. package/package.json +5 -5
@@ -1,3 +1,9 @@
1
+ import { IndicatorDimensionKeyPlaceholder } from "../tools/global";
2
+
3
+ import { AggregationType } from "../ts-types";
4
+
5
+ import { DimensionTree } from "./tree-helper";
6
+
1
7
  export function checkHasAggregation(layoutMap) {
2
8
  const columnObjects = layoutMap.columnObjects;
3
9
  for (let i = 0; i < columnObjects.length; i++) {
@@ -36,4 +42,48 @@ export function checkHasTreeDefine(layoutMap) {
36
42
  }
37
43
  return !1;
38
44
  }
45
+
46
+ export function parseColKeyRowKeyForPivotTable(table, options) {
47
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
48
+ let columnDimensionTree, rowDimensionTree, isNeedResetColumnDimensionTree = !0, isNeedResetRowDimensionTree = !0;
49
+ options.columnTree && (columnDimensionTree = new DimensionTree(null !== (_a = table.internalProps.columnTree) && void 0 !== _a ? _a : [], table.layoutNodeId),
50
+ isNeedResetColumnDimensionTree = !1 !== table.options.indicatorsAsCol && !columnDimensionTree.dimensionKeys.contain(IndicatorDimensionKeyPlaceholder) && (null === (_b = options.indicators) || void 0 === _b ? void 0 : _b.length) >= 1),
51
+ options.rowTree && (rowDimensionTree = new DimensionTree(null !== (_c = table.internalProps.rowTree) && void 0 !== _c ? _c : [], table.layoutNodeId, table.options.rowHierarchyType, "tree" === table.options.rowHierarchyType ? null !== (_d = table.options.rowExpandLevel) && void 0 !== _d ? _d : 1 : void 0),
52
+ isNeedResetRowDimensionTree = !1 === table.options.indicatorsAsCol && !rowDimensionTree.dimensionKeys.contain(IndicatorDimensionKeyPlaceholder) && (null === (_e = options.indicators) || void 0 === _e ? void 0 : _e.length) >= 1);
53
+ const rowKeys = (null === (_f = null == rowDimensionTree ? void 0 : rowDimensionTree.dimensionKeys) || void 0 === _f ? void 0 : _f.count) ? rowDimensionTree.dimensionKeys.valueArr() : null !== (_h = null === (_g = options.rows) || void 0 === _g ? void 0 : _g.reduce(((keys, rowObj) => ("string" == typeof rowObj ? keys.push(rowObj) : keys.push(rowObj.dimensionKey),
54
+ keys)), [])) && void 0 !== _h ? _h : [], columnKeys = (null === (_j = null == columnDimensionTree ? void 0 : columnDimensionTree.dimensionKeys) || void 0 === _j ? void 0 : _j.count) ? columnDimensionTree.dimensionKeys.valueArr() : null !== (_l = null === (_k = options.columns) || void 0 === _k ? void 0 : _k.reduce(((keys, columnObj) => ("string" == typeof columnObj ? keys.push(columnObj) : keys.push(columnObj.dimensionKey),
55
+ keys)), [])) && void 0 !== _l ? _l : [], indicatorKeys = null !== (_o = null === (_m = options.indicators) || void 0 === _m ? void 0 : _m.reduce(((keys, indicatorObj) => {
56
+ var _a, _b;
57
+ return "string" == typeof indicatorObj ? keys.push(indicatorObj) : (keys.push(indicatorObj.indicatorKey),
58
+ indicatorObj.chartSpec && ((null === (_a = table.internalProps.dataConfig) || void 0 === _a ? void 0 : _a.aggregationRules) ? null === (_b = table.internalProps.dataConfig) || void 0 === _b || _b.aggregationRules.push({
59
+ field: indicatorObj.indicatorKey,
60
+ indicatorKey: indicatorObj.indicatorKey,
61
+ aggregationType: AggregationType.NONE
62
+ }) : table.internalProps.dataConfig ? table.internalProps.dataConfig.aggregationRules = [ {
63
+ field: indicatorObj.indicatorKey,
64
+ indicatorKey: indicatorObj.indicatorKey,
65
+ aggregationType: AggregationType.NONE
66
+ } ] : table.internalProps.dataConfig = {
67
+ aggregationRules: [ {
68
+ field: indicatorObj.indicatorKey,
69
+ indicatorKey: indicatorObj.indicatorKey,
70
+ aggregationType: AggregationType.NONE
71
+ } ]
72
+ })), keys;
73
+ }), [])) && void 0 !== _o ? _o : [];
74
+ return "tree" === options.rowHierarchyType && (null !== (_q = null === (_p = options.extensionRows) || void 0 === _p ? void 0 : _p.length) && void 0 !== _q ? _q : 0) >= 1 && (null === (_r = options.extensionRows) || void 0 === _r || _r.forEach((extensionRow => {
75
+ const extension_rowKeys = [];
76
+ extensionRow.rows.forEach((row => {
77
+ "string" == typeof row ? extension_rowKeys.push(row) : extension_rowKeys.push(row.dimensionKey);
78
+ })), rowKeys.push(...extension_rowKeys);
79
+ }))), {
80
+ rowKeys: rowKeys,
81
+ columnKeys: columnKeys,
82
+ indicatorKeys: indicatorKeys,
83
+ isNeedResetColumnDimensionTree: isNeedResetColumnDimensionTree,
84
+ isNeedResetRowDimensionTree: isNeedResetRowDimensionTree,
85
+ columnDimensionTree: columnDimensionTree,
86
+ rowDimensionTree: rowDimensionTree
87
+ };
88
+ }
39
89
  //# sourceMappingURL=layout-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/layout/layout-helper.ts"],"names":[],"mappings":"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","file":"layout-helper.js","sourcesContent":["import type { Aggregation } from '../ts-types';\nimport type { ColumnData } from '../ts-types/list-table/layout-map/api';\nimport type { SimpleHeaderLayoutMap } from './simple-header-layout';\n\nexport function checkHasAggregation(layoutMap: SimpleHeaderLayoutMap) {\n const columnObjects = layoutMap.columnObjects;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if ((column as ColumnData)?.aggregation) {\n return true;\n }\n }\n return false;\n}\n\nexport function checkHasAggregationOnTop(layoutMap: SimpleHeaderLayoutMap) {\n const columnObjects = layoutMap.columnObjects;\n let count = 0;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if ((column as ColumnData)?.aggregation) {\n if (Array.isArray((column as ColumnData)?.aggregation)) {\n count = Math.max(\n count,\n ((column as ColumnData).aggregation as Array<Aggregation>).filter(item => item.showOnTop === true).length\n );\n } else if (((column as ColumnData).aggregation as Aggregation).showOnTop === true) {\n count = Math.max(count, 1);\n }\n }\n }\n return count;\n}\n\nexport function checkHasAggregationOnBottom(layoutMap: SimpleHeaderLayoutMap) {\n const columnObjects = layoutMap.columnObjects;\n let count = 0;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if ((column as ColumnData)?.aggregation) {\n if (Array.isArray((column as ColumnData)?.aggregation)) {\n count = Math.max(\n count,\n ((column as ColumnData).aggregation as Array<Aggregation>).filter(item => item.showOnTop === false).length\n );\n } else if (((column as ColumnData).aggregation as Aggregation).showOnTop === false) {\n count = Math.max(count, 1);\n }\n }\n }\n return count;\n}\n\nexport function checkHasTreeDefine(layoutMap: SimpleHeaderLayoutMap) {\n const columnObjects = layoutMap.columnObjects;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if ((column as ColumnData)?.define?.tree) {\n return true;\n }\n }\n return false;\n}\n"]}
1
+ {"version":3,"sources":["../src/layout/layout-helper.ts"],"names":[],"mappings":"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","file":"layout-helper.js","sourcesContent":["import type { PivotTable } from '../PivotTable';\nimport { IndicatorDimensionKeyPlaceholder } from '../tools/global';\nimport { AggregationType } from '../ts-types';\nimport type { PivotTableConstructorOptions, Aggregation } from '../ts-types';\nimport type { ColumnData } from '../ts-types/list-table/layout-map/api';\nimport type { IChartColumnIndicator } from '../ts-types/pivot-table/indicator/chart-indicator';\nimport type { SimpleHeaderLayoutMap } from './simple-header-layout';\nimport type { ITreeLayoutHeadNode } from './tree-helper';\nimport { DimensionTree } from './tree-helper';\n\nexport function checkHasAggregation(layoutMap: SimpleHeaderLayoutMap) {\n const columnObjects = layoutMap.columnObjects;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if ((column as ColumnData)?.aggregation) {\n return true;\n }\n }\n return false;\n}\n\nexport function checkHasAggregationOnTop(layoutMap: SimpleHeaderLayoutMap) {\n const columnObjects = layoutMap.columnObjects;\n let count = 0;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if ((column as ColumnData)?.aggregation) {\n if (Array.isArray((column as ColumnData)?.aggregation)) {\n count = Math.max(\n count,\n ((column as ColumnData).aggregation as Array<Aggregation>).filter(item => item.showOnTop === true).length\n );\n } else if (((column as ColumnData).aggregation as Aggregation).showOnTop === true) {\n count = Math.max(count, 1);\n }\n }\n }\n return count;\n}\n\nexport function checkHasAggregationOnBottom(layoutMap: SimpleHeaderLayoutMap) {\n const columnObjects = layoutMap.columnObjects;\n let count = 0;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if ((column as ColumnData)?.aggregation) {\n if (Array.isArray((column as ColumnData)?.aggregation)) {\n count = Math.max(\n count,\n ((column as ColumnData).aggregation as Array<Aggregation>).filter(item => item.showOnTop === false).length\n );\n } else if (((column as ColumnData).aggregation as Aggregation).showOnTop === false) {\n count = Math.max(count, 1);\n }\n }\n }\n return count;\n}\n\nexport function checkHasTreeDefine(layoutMap: SimpleHeaderLayoutMap) {\n const columnObjects = layoutMap.columnObjects;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if ((column as ColumnData)?.define?.tree) {\n return true;\n }\n }\n return false;\n}\n\nexport function parseColKeyRowKeyForPivotTable(table: PivotTable, options: PivotTableConstructorOptions) {\n let columnDimensionTree;\n let rowDimensionTree;\n let isNeedResetColumnDimensionTree = true;\n let isNeedResetRowDimensionTree = true;\n if (options.columnTree) {\n columnDimensionTree = new DimensionTree(\n (table.internalProps.columnTree as ITreeLayoutHeadNode[]) ?? [],\n table.layoutNodeId\n );\n if (\n table.options.indicatorsAsCol !== false &&\n !columnDimensionTree.dimensionKeys.contain(IndicatorDimensionKeyPlaceholder) &&\n options.indicators?.length >= 1\n ) {\n isNeedResetColumnDimensionTree = true;\n } else {\n isNeedResetColumnDimensionTree = false;\n }\n }\n if (options.rowTree) {\n rowDimensionTree = new DimensionTree(\n (table.internalProps.rowTree as ITreeLayoutHeadNode[]) ?? [],\n table.layoutNodeId,\n table.options.rowHierarchyType,\n table.options.rowHierarchyType === 'tree' ? table.options.rowExpandLevel ?? 1 : undefined\n );\n if (\n table.options.indicatorsAsCol === false &&\n !rowDimensionTree.dimensionKeys.contain(IndicatorDimensionKeyPlaceholder) &&\n options.indicators?.length >= 1\n ) {\n isNeedResetRowDimensionTree = true;\n } else {\n isNeedResetRowDimensionTree = false;\n }\n }\n const rowKeys = rowDimensionTree?.dimensionKeys?.count\n ? rowDimensionTree.dimensionKeys.valueArr()\n : options.rows?.reduce((keys: string[], rowObj) => {\n if (typeof rowObj === 'string') {\n keys.push(rowObj);\n } else {\n keys.push(rowObj.dimensionKey);\n }\n return keys;\n }, []) ?? [];\n const columnKeys = columnDimensionTree?.dimensionKeys?.count\n ? columnDimensionTree.dimensionKeys.valueArr()\n : options.columns?.reduce((keys: string[], columnObj) => {\n if (typeof columnObj === 'string') {\n keys.push(columnObj);\n } else {\n keys.push(columnObj.dimensionKey);\n }\n return keys;\n }, []) ?? [];\n const indicatorKeys =\n options.indicators?.reduce((keys: string[], indicatorObj) => {\n if (typeof indicatorObj === 'string') {\n keys.push(indicatorObj);\n } else {\n keys.push(indicatorObj.indicatorKey);\n if ((indicatorObj as IChartColumnIndicator).chartSpec) {\n if (table.internalProps.dataConfig?.aggregationRules) {\n table.internalProps.dataConfig?.aggregationRules.push({\n field: indicatorObj.indicatorKey,\n indicatorKey: indicatorObj.indicatorKey,\n aggregationType: AggregationType.NONE\n });\n } else if (table.internalProps.dataConfig) {\n table.internalProps.dataConfig.aggregationRules = [\n {\n field: indicatorObj.indicatorKey,\n indicatorKey: indicatorObj.indicatorKey,\n aggregationType: AggregationType.NONE\n }\n ];\n } else {\n table.internalProps.dataConfig = {\n aggregationRules: [\n {\n field: indicatorObj.indicatorKey,\n indicatorKey: indicatorObj.indicatorKey,\n aggregationType: AggregationType.NONE\n }\n ]\n };\n }\n }\n }\n return keys;\n }, []) ?? [];\n if (options.rowHierarchyType === 'tree' && (options.extensionRows?.length ?? 0) >= 1) {\n options.extensionRows?.forEach(extensionRow => {\n const extension_rowKeys: string[] = [];\n extensionRow.rows.forEach(row => {\n if (typeof row === 'string') {\n extension_rowKeys.push(row);\n } else {\n extension_rowKeys.push(row.dimensionKey);\n }\n });\n rowKeys.push(...extension_rowKeys);\n });\n }\n return {\n rowKeys,\n columnKeys,\n indicatorKeys,\n isNeedResetColumnDimensionTree,\n isNeedResetRowDimensionTree,\n columnDimensionTree,\n rowDimensionTree\n };\n}\n"]}
@@ -74,7 +74,7 @@ export declare class PivotHeaderLayoutMap implements LayoutMapAPI {
74
74
  leftRowSeriesNumberColumnCount: number;
75
75
  rightRowSeriesNumberColumn: SeriesNumberColumnData[];
76
76
  rightRowSeriesNumberColumnCount: number;
77
- constructor(table: PivotTable | PivotChart, dataset: Dataset);
77
+ constructor(table: PivotTable | PivotChart, dataset: Dataset, columnDimensionTree: DimensionTree, rowDimensionTree: DimensionTree);
78
78
  handleRowSeriesNumber(rowSeriesNumber: IRowSeriesNumber): void;
79
79
  _generateColHeaderIds(): void;
80
80
  _generateRowHeaderIds(): void;
@@ -146,7 +146,7 @@ export declare class PivotHeaderLayoutMap implements LayoutMapAPI {
146
146
  getBodyIndexByCol(col: number): number;
147
147
  getRecordStartRowByRecordIndex(index: number): number;
148
148
  getRecordShowIndexByCell(col: number, row: number): number;
149
- getCellHeaderPathsWidthTreeNode(col: number, row: number): IPivotTableCellHeaderPaths;
149
+ getCellHeaderPathsWithTreeNode(col: number, row: number): IPivotTableCellHeaderPaths;
150
150
  getCellHeaderPaths(col: number, row: number): IPivotTableCellHeaderPaths;
151
151
  private getIndicatorInfoByIndicatorKey;
152
152
  private findFullCellIds;
@@ -192,7 +192,8 @@ export declare class PivotHeaderLayoutMap implements LayoutMapAPI {
192
192
  getChartDataId(col: number, row: number): any;
193
193
  setPagination(pagination: IPagination): void;
194
194
  release(): void;
195
- getHeadNode(dimensions: IDimensionInfo[]): IHeaderTreeDefine;
195
+ getHeadNode(col: number, row: number): IHeaderTreeDefine;
196
+ getHeadNodeByRowOrColDimensions(dimensions: IDimensionInfo[], col?: number, row?: number): IHeaderTreeDefine;
196
197
  clearCellRangeMap(): void;
197
198
  getDimensionKeyInChartSpec(_col: number, _row: number): string;
198
199
  _generateChartState(): {
@@ -22,8 +22,8 @@ const defaultDimension = {
22
22
  };
23
23
 
24
24
  export class PivotHeaderLayoutMap {
25
- constructor(table, dataset) {
26
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
25
+ constructor(table, dataset, columnDimensionTree, rowDimensionTree) {
26
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
27
27
  if (this.colIndex = 0, this._showHeader = !0, this.columnHeaderObjs = [], this.rowHeaderObjs = [],
28
28
  this._cornerHeaderCellIds = [], this._columnHeaderCellIds = [], this._rowHeaderCellIds = [],
29
29
  this._rowHeaderCellIds_FULL = [], this._columnWidths = [], this.columnPaths = [],
@@ -33,9 +33,7 @@ export class PivotHeaderLayoutMap {
33
33
  this.colDimensionKeys = [], this.indicatorKeys = [], this.indicatorDimensionKey = IndicatorDimensionKeyPlaceholder,
34
34
  this._rowHeaderExtensionTree = {}, this._extensionRowDimensionKeys = [], this.fullRowDimensionKeys = [],
35
35
  this.leftRowSeriesNumberColumnCount = 0, this.rightRowSeriesNumberColumnCount = 0,
36
- this.sharedVar = {
37
- seqId: 0
38
- }, this._table = table, "tree" === table.options.rowHierarchyType && (this.extensionRows = table.options.extensionRows),
36
+ this.sharedVar = table.layoutNodeId, this._table = table, "tree" === table.options.rowHierarchyType && (this.extensionRows = table.options.extensionRows),
39
37
  this.dataset = dataset, this._largeCellRangeCache = [], this._CellHeaderPathMap = new Map,
40
38
  this.rowTree = table.internalProps.rowTree, this.columnTree = table.internalProps.columnTree,
41
39
  this.rowsDefine = null !== (_a = table.internalProps.rows) && void 0 !== _a ? _a : [],
@@ -52,26 +50,10 @@ export class PivotHeaderLayoutMap {
52
50
  this.rowHierarchyTextStartAlignment = table.options.rowHierarchyTextStartAlignment,
53
51
  this.cornerSetting = null !== (_l = table.options.corner) && void 0 !== _l ? _l : {
54
52
  titleOnDimension: "column"
55
- }, dataset && (this.rowTree = dataset.rowHeaderTree, this.columnTree = dataset.colHeaderTree,
56
- this.indicatorsAsCol && this._table.isPivotChart() && checkHasCartesianChart(this))) {
57
- const supplyAxisNode = nodes => {
58
- nodes.forEach((node => {
59
- var _a;
60
- (null === (_a = node.children) || void 0 === _a ? void 0 : _a.length) ? supplyAxisNode(node.children) : node.children = [ {
61
- dimensionKey: "axis",
62
- value: ""
63
- } ];
64
- }));
65
- };
66
- (null === (_m = this.rowTree) || void 0 === _m ? void 0 : _m.length) ? supplyAxisNode(this.rowTree) : this.rowTree = [ {
67
- dimensionKey: "axis",
68
- value: ""
69
- } ];
70
- }
71
- if (null === (_o = this.indicatorsDefine) || void 0 === _o || _o.forEach((indicator => {
53
+ }, dataset && (this.rowTree = dataset.rowHeaderTree, this.columnTree = dataset.colHeaderTree),
54
+ null === (_m = this.indicatorsDefine) || void 0 === _m || _m.forEach((indicator => {
72
55
  "string" == typeof indicator ? this.indicatorKeys.push(indicator) : this.indicatorKeys.push(indicator.indicatorKey);
73
- })), this.columnDimensionTree = new DimensionTree(null !== (_p = this.columnTree) && void 0 !== _p ? _p : [], this.sharedVar),
74
- this.rowDimensionTree = new DimensionTree(null !== (_q = this.rowTree) && void 0 !== _q ? _q : [], this.sharedVar, this.rowHierarchyType, "tree" === this.rowHierarchyType ? this.rowExpandLevel : void 0),
56
+ })), this.columnDimensionTree = columnDimensionTree, this.rowDimensionTree = rowDimensionTree,
75
57
  this.colDimensionKeys = this.columnDimensionTree.dimensionKeys.valueArr(), this.rowDimensionKeys = this.rowDimensionTree.dimensionKeys.valueArr(),
76
58
  this.fullRowDimensionKeys = this.fullRowDimensionKeys.concat(this.rowDimensionKeys),
77
59
  this.resetRowHeaderLevelCount(), this._generateColHeaderIds(), this.colIndex = 0,
@@ -83,21 +65,27 @@ export class PivotHeaderLayoutMap {
83
65
  }
84
66
  return !1;
85
67
  }))), this.resetColumnHeaderLevelCount(), this._rowHeaderCellIds_FULL = transpose(this._rowHeaderCellIds_FULL),
86
- "tree" === table.options.rowHierarchyType && (null === (_r = this.extensionRows) || void 0 === _r ? void 0 : _r.length) >= 1 && (this.generateExtensionRowTree(),
68
+ "tree" === table.options.rowHierarchyType && (null === (_o = this.extensionRows) || void 0 === _o ? void 0 : _o.length) >= 1 && (this.generateExtensionRowTree(),
87
69
  this.extensionRows.forEach((extensionRow => {
88
70
  const rowKeys = [];
89
71
  extensionRow.rows.forEach((row => {
90
72
  "string" == typeof row ? rowKeys.push(row) : rowKeys.push(row.dimensionKey);
91
73
  })), this._extensionRowDimensionKeys.push(rowKeys), this.fullRowDimensionKeys = this.fullRowDimensionKeys.concat(rowKeys);
92
74
  }))), this.sharedVar.seqId = Math.max(this.sharedVar.seqId, this._headerObjects.length),
93
- "column" === this.cornerSetting.titleOnDimension) this.cornerHeaderObjs = this._addCornerHeaders(this.columnHeaderTitle ? [ "" ].concat(this.colDimensionKeys) : this.colDimensionKeys, this.columnsDefine); else if ("row" === this.cornerSetting.titleOnDimension) if ("tree" === this.rowHierarchyType && (null === (_s = this.extensionRows) || void 0 === _s ? void 0 : _s.length) >= 1) {
75
+ "column" === this.cornerSetting.titleOnDimension) {
76
+ const colDimensionKeys = this.columnDimensionTree.dimensionKeysIncludeVirtual.valueArr();
77
+ this.cornerHeaderObjs = this._addCornerHeaders(this.columnHeaderTitle ? [ "" ].concat(colDimensionKeys) : colDimensionKeys, this.columnsDefine);
78
+ } else if ("row" === this.cornerSetting.titleOnDimension) if ("tree" === this.rowHierarchyType && (null === (_p = this.extensionRows) || void 0 === _p ? void 0 : _p.length) >= 1) {
94
79
  const rowTreeFirstKey = [];
95
80
  rowTreeFirstKey.push(this.rowDimensionKeys[0]), this._extensionRowDimensionKeys.forEach((extensionRowKeys => {
96
81
  rowTreeFirstKey.push(extensionRowKeys[0]);
97
82
  }));
98
83
  const extensionRowDimensions = this.extensionRows.reduce(((dimensions, cur) => dimensions.concat(cur.rows)), []);
99
84
  this.cornerHeaderObjs = this._addCornerHeaders(this.rowHeaderTitle ? [ "" ].concat(rowTreeFirstKey) : rowTreeFirstKey, this.rowsDefine.concat(extensionRowDimensions));
100
- } else this.cornerHeaderObjs = this._addCornerHeaders(this.rowHeaderTitle ? [ "" ].concat(this.rowDimensionKeys) : this.rowDimensionKeys, this.rowsDefine); else this.cornerHeaderObjs = this._addCornerHeaders(null, void 0);
85
+ } else {
86
+ const rowDimensionKeys = this.rowDimensionTree.dimensionKeysIncludeVirtual.valueArr();
87
+ this.cornerHeaderObjs = this._addCornerHeaders(this.rowHeaderTitle ? [ "" ].concat(rowDimensionKeys) : rowDimensionKeys, this.rowsDefine);
88
+ } else this.cornerHeaderObjs = this._addCornerHeaders(null, void 0);
101
89
  this.colIndex = 0, this._headerObjectMap = this._headerObjects.reduce(((o, e) => (o[e.id] = e,
102
90
  o)), {}), this.indicatorsAsCol && !this.hideIndicatorName ? this._indicatorShowType = "column" : this.indicatorsAsCol || this.hideIndicatorName ? this._indicatorShowType = "none" : this._indicatorShowType = "row",
103
91
  this.setPagination(table.options.pagination), this._table.isPivotChart() && (this._chartItemSpanSize = 0,
@@ -496,7 +484,7 @@ export class PivotHeaderLayoutMap {
496
484
  if (this.showHeader && this.showColumnHeader) {
497
485
  if (this._table.isPivotChart() && this.indicatorsAsCol && !(null === (_b = null === (_a = this.dataset) || void 0 === _a ? void 0 : _a.colKeys) || void 0 === _b ? void 0 : _b.length) && 0 === (null === (_d = null === (_c = this.columnDimensionTree) || void 0 === _c ? void 0 : _c.tree) || void 0 === _d ? void 0 : _d.level) && !this.hasTwoIndicatorAxes) return void (this.columnHeaderLevelCount = 0);
498
486
  let count = this.indicatorsAsCol && this.hideIndicatorName && this.colDimensionKeys[this.colDimensionKeys.length - 1] === this.indicatorDimensionKey ? this.columnDimensionTree.totalLevel - 1 : this.columnDimensionTree.totalLevel;
499
- return this.columnHeaderTitle && (count += 1), this._table.isPivotChart() && this.indicatorsAsCol && !this.hasTwoIndicatorAxes && checkHasCartesianChart(this) && (count -= 1),
487
+ return this.columnHeaderTitle && (count += 1), this._table.isPivotChart() && this.indicatorsAsCol && !this.hasTwoIndicatorAxes && checkHasCartesianChart(this.indicatorsDefine) && (count -= 1),
500
488
  void (this.columnHeaderLevelCount = count);
501
489
  }
502
490
  this.columnHeaderLevelCount = 0;
@@ -508,7 +496,7 @@ export class PivotHeaderLayoutMap {
508
496
  const extensionRowCount = null !== (_b = null === (_a = this.extensionRows) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0;
509
497
  return this.rowHeaderTitle ? void (this.rowHeaderLevelCount = 2 + extensionRowCount) : void (this.rowHeaderLevelCount = 1 + extensionRowCount);
510
498
  }
511
- const rowLevelCount = this.rowDimensionKeys.length;
499
+ const rowLevelCount = this.rowDimensionTree.totalLevel;
512
500
  let count = rowLevelCount;
513
501
  return this.indicatorsAsCol || this.hideIndicatorName && this.rowDimensionKeys[this.rowDimensionKeys.length - 1] === this.indicatorDimensionKey && (count = rowLevelCount - 1),
514
502
  this.rowHeaderTitle && (count += 1), void (this.rowHeaderLevelCount = count);
@@ -539,7 +527,7 @@ export class PivotHeaderLayoutMap {
539
527
  }
540
528
  get bottomFrozenRowCount() {
541
529
  if (!this._table.isPivotChart()) return this._table.internalProps.bottomFrozenRowCount ? this.rowCount - this.headerLevelCount >= this._table.internalProps.bottomFrozenRowCount ? this._table.internalProps.bottomFrozenRowCount : this.rowCount - this.headerLevelCount : 0;
542
- if (this.indicatorKeys.length >= 1 && checkHasCartesianChart(this)) {
530
+ if (this.indicatorKeys.length >= 1 && checkHasCartesianChart(this.indicatorsDefine)) {
543
531
  const axisOption = this._table.pivotChartAxes.find((axisOption => "bottom" === axisOption.orient));
544
532
  return !1 === (null == axisOption ? void 0 : axisOption.visible) ? 0 : (this.indicatorsAsCol,
545
533
  1);
@@ -720,7 +708,7 @@ export class PivotHeaderLayoutMap {
720
708
  return this.columnHeaderLevelCount + index;
721
709
  }
722
710
  getRecordShowIndexByCell(col, row) {}
723
- getCellHeaderPathsWidthTreeNode(col, row) {
711
+ getCellHeaderPathsWithTreeNode(col, row) {
724
712
  if (col === this._lastCellCol && row === this._lastCellRow) return this._lastCellHeaderPath;
725
713
  let _largeCellRangeCacheIndex = -1;
726
714
  for (let i = 0; i < this._largeCellRangeCache.length; i++) {
@@ -759,7 +747,7 @@ export class PivotHeaderLayoutMap {
759
747
  }
760
748
  getCellHeaderPaths(col, row) {
761
749
  var _a, _b;
762
- const headerPathsWidthNode = this.getCellHeaderPathsWidthTreeNode(col, row), headerPaths = {
750
+ const headerPathsWidthNode = this.getCellHeaderPathsWithTreeNode(col, row), headerPaths = {
763
751
  colHeaderPaths: [],
764
752
  rowHeaderPaths: [],
765
753
  cellLocation: headerPathsWidthNode.cellLocation
@@ -769,14 +757,14 @@ export class PivotHeaderLayoutMap {
769
757
  const colHeaderPath = {};
770
758
  colHeaderPath.dimensionKey = colHeader.dimensionKey, colHeaderPath.indicatorKey = colHeader.indicatorKey,
771
759
  colHeaderPath.value = null !== (_c = null !== (_a = colHeader.value) && void 0 !== _a ? _a : null === (_b = this.getIndicatorInfoByIndicatorKey(colHeader.indicatorKey)) || void 0 === _b ? void 0 : _b.title) && void 0 !== _c ? _c : "",
772
- headerPaths.colHeaderPaths.push(colHeaderPath);
760
+ colHeaderPath.virtual = colHeader.virtual, headerPaths.colHeaderPaths.push(colHeaderPath);
773
761
  })), null === (_b = headerPathsWidthNode.rowHeaderPaths) || void 0 === _b || _b.forEach((rowHeader => {
774
762
  var _a, _b, _c;
775
763
  if ("axis" !== rowHeader.dimensionKey) {
776
764
  const rowHeaderPath = {};
777
765
  rowHeaderPath.dimensionKey = rowHeader.dimensionKey, rowHeaderPath.indicatorKey = rowHeader.indicatorKey,
778
766
  rowHeaderPath.value = null !== (_c = null !== (_a = rowHeader.value) && void 0 !== _a ? _a : null === (_b = this.getIndicatorInfoByIndicatorKey(rowHeader.indicatorKey)) || void 0 === _b ? void 0 : _b.title) && void 0 !== _c ? _c : "",
779
- headerPaths.rowHeaderPaths.push(rowHeaderPath);
767
+ rowHeaderPath.virtual = rowHeader.virtual, headerPaths.rowHeaderPaths.push(rowHeaderPath);
780
768
  }
781
769
  })), headerPaths;
782
770
  }
@@ -964,7 +952,7 @@ export class PivotHeaderLayoutMap {
964
952
  return this.getParentCellId(sourceCellRange.start.col, source.row) === this.getParentCellId(sourceCellRange.start.col, target.row);
965
953
  }
966
954
  {
967
- const sourceRowHeaderPaths = cloneDeep(this.getCellHeaderPathsWidthTreeNode(source.col, source.row).rowHeaderPaths), targetRowHeaderPaths = cloneDeep(this.getCellHeaderPathsWidthTreeNode(target.col, target.row).rowHeaderPaths);
955
+ const sourceRowHeaderPaths = cloneDeep(this.getCellHeaderPathsWithTreeNode(source.col, source.row).rowHeaderPaths), targetRowHeaderPaths = cloneDeep(this.getCellHeaderPathsWithTreeNode(target.col, target.row).rowHeaderPaths);
968
956
  if (sourceRowHeaderPaths.pop(), targetRowHeaderPaths.pop(), sourceRowHeaderPaths.length <= targetRowHeaderPaths.length) {
969
957
  if (sourceRowHeaderPaths.length === targetRowHeaderPaths.length) return !sourceRowHeaderPaths.find(((item, i) => item.dimensionKey !== targetRowHeaderPaths[i].dimensionKey || item.value !== targetRowHeaderPaths[i].value));
970
958
  if (sourceRowHeaderPaths.length > 0) for (let i = 0; i < sourceRowHeaderPaths.length; i++) if (sourceRowHeaderPaths[i].startInTotal !== targetRowHeaderPaths[i].startInTotal) return !1;
@@ -990,7 +978,7 @@ export class PivotHeaderLayoutMap {
990
978
  }
991
979
  const sourceColumns = this._columnWidths.splice(sourceCellRange.start.col - this.leftRowSeriesNumberColumnCount, sourceSize);
992
980
  return sourceColumns.unshift(targetIndex - this.leftRowSeriesNumberColumnCount, 0),
993
- Array.prototype.splice.apply(this._columnWidths, sourceColumns), this.columnDimensionTree.movePosition(this.getCellHeaderPathsWidthTreeNode(source.col, source.row).colHeaderPaths.length - 1, sourceCellRange.start.col - this.rowHeaderLevelCount - this.leftRowSeriesNumberColumnCount, targetCellRange.start.col - this.rowHeaderLevelCount - this.leftRowSeriesNumberColumnCount),
981
+ Array.prototype.splice.apply(this._columnWidths, sourceColumns), this.columnDimensionTree.movePosition(this.getCellHeaderPathsWithTreeNode(source.col, source.row).colHeaderPaths.length - 1, sourceCellRange.start.col - this.rowHeaderLevelCount - this.leftRowSeriesNumberColumnCount, targetCellRange.start.col - this.rowHeaderLevelCount - this.leftRowSeriesNumberColumnCount),
994
982
  this.columnDimensionTree.reset(this.columnDimensionTree.tree.children, !0), this._CellHeaderPathMap = new Map,
995
983
  this._largeCellRangeCache.length = 0, {
996
984
  sourceIndex: sourceCellRange.start.col,
@@ -1002,7 +990,7 @@ export class PivotHeaderLayoutMap {
1002
990
  }
1003
991
  if (this.isRowHeader(source.col, source.row)) {
1004
992
  let targetIndex;
1005
- const sourceRowHeaderPaths = this.getCellHeaderPathsWidthTreeNode(source.col, source.row).rowHeaderPaths, targetRowHeaderPaths = this.getCellHeaderPathsWidthTreeNode(target.col, target.row).rowHeaderPaths, sourceRowHeaderNode = sourceRowHeaderPaths[sourceRowHeaderPaths.length - 1], targetRowHeaderNode = targetRowHeaderPaths[sourceRowHeaderPaths.length - 1], sourceSize = sourceRowHeaderNode.size;
993
+ const sourceRowHeaderPaths = this.getCellHeaderPathsWithTreeNode(source.col, source.row).rowHeaderPaths, targetRowHeaderPaths = this.getCellHeaderPathsWithTreeNode(target.col, target.row).rowHeaderPaths, sourceRowHeaderNode = sourceRowHeaderPaths[sourceRowHeaderPaths.length - 1], targetRowHeaderNode = targetRowHeaderPaths[sourceRowHeaderPaths.length - 1], sourceSize = sourceRowHeaderNode.size;
1006
994
  if (targetIndex = target.row >= source.row ? targetRowHeaderNode.startInTotal + targetRowHeaderNode.size - sourceSize : targetRowHeaderNode.startInTotal,
1007
995
  targetIndex === sourceCellRange.start.row - this.columnHeaderLevelCount) return null;
1008
996
  const sourceIds = this._rowHeaderCellIds.splice(sourceCellRange.start.row - this.columnHeaderLevelCount, sourceSize);
@@ -1129,7 +1117,7 @@ export class PivotHeaderLayoutMap {
1129
1117
  }
1130
1118
  isAxisCell(col, row) {
1131
1119
  if (!this._table.isPivotChart()) return !1;
1132
- if (this.indicatorKeys.length >= 1 && checkHasCartesianChart(this)) {
1120
+ if (this.indicatorKeys.length >= 1 && checkHasCartesianChart(this.indicatorsDefine)) {
1133
1121
  if (this.isBottomFrozenRow(col, row) && isHasCartesianChartInline(col, row, "col", this) || this.isRightFrozenColumn(col, row) && isHasCartesianChartInline(col, row, "row", this)) return !0;
1134
1122
  if (this.isRowHeader(col, row) && col === this.rowHeaderLevelCount - 1 && isHasCartesianChartInline(col, row, "row", this)) return !0;
1135
1123
  if (this.hasTwoIndicatorAxes && this.indicatorsAsCol && row === this.columnHeaderLevelCount - 1 && isHasCartesianChartInline(col, row, "col", this)) return !0;
@@ -1170,9 +1158,21 @@ export class PivotHeaderLayoutMap {
1170
1158
  null === (_a = indicatorObject.chartInstance) || void 0 === _a || _a.release();
1171
1159
  }));
1172
1160
  }
1173
- getHeadNode(dimensions) {
1161
+ getHeadNode(col, row) {
1162
+ var _a, _b, _c;
1163
+ let dimensions;
1164
+ const headerPaths = this.getCellHeaderPaths(col, row);
1165
+ return headerPaths.rowHeaderPaths && (null !== (_b = null === (_a = headerPaths.rowHeaderPaths) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0) > 0 ? dimensions = null === (_c = headerPaths.rowHeaderPaths) || void 0 === _c ? void 0 : _c.slice(0, headerPaths.rowHeaderPaths.length) : headerPaths.colHeaderPaths && headerPaths.colHeaderPaths.length > 0 && (dimensions = headerPaths.colHeaderPaths.slice(0, headerPaths.colHeaderPaths.length)),
1166
+ this.getHeadNodeByRowOrColDimensions(dimensions, col, row);
1167
+ }
1168
+ getHeadNodeByRowOrColDimensions(dimensions, col, row) {
1169
+ var _a;
1174
1170
  if (!Array.isArray(dimensions)) return;
1175
1171
  let rowDimension, colDimension, rowArr = this.rowTree, colArr = this.columnTree;
1172
+ if (isValid(row) && isValid(col) && "tree" === this.rowHierarchyType && this.extensionRows && col >= 1 + this.leftRowSeriesNumberColumnCount) {
1173
+ const hdId = this.getCellId(col - 1, row);
1174
+ rowArr = this._rowHeaderExtensionTree[hdId].tree.children;
1175
+ }
1176
1176
  for (let i = 0; i < dimensions.length; i++) {
1177
1177
  const highlightDimension = dimensions[i];
1178
1178
  if ((highlightDimension.isPivotCorner || !highlightDimension.value) && i === dimensions.length - 1) return;
@@ -1184,7 +1184,7 @@ export class PivotHeaderLayoutMap {
1184
1184
  break;
1185
1185
  }
1186
1186
  }
1187
- if (!isCol) for (let k = 0; k < rowArr.length; k++) {
1187
+ if (!isCol) for (let k = 0; null !== (_a = k < (null == rowArr ? void 0 : rowArr.length)) && void 0 !== _a && _a; k++) {
1188
1188
  const dimension = rowArr[k];
1189
1189
  if (isValid(highlightDimension.dimensionKey) && dimension.dimensionKey === highlightDimension.dimensionKey && dimension.value === highlightDimension.value || isValid(highlightDimension.indicatorKey) && dimension.indicatorKey === highlightDimension.indicatorKey && (dimension.value === highlightDimension.value || !isValid(highlightDimension.value) || !isValid(dimension.value))) {
1190
1190
  rowArr = dimension.children, rowDimension = dimension;
@@ -1385,12 +1385,7 @@ export class PivotHeaderLayoutMap {
1385
1385
  return this.leftRowSeriesNumberColumnCount > 0 && col >= 0 && col < this.leftRowSeriesNumberColumnCount && row >= this.headerLevelCount ? this.leftRowSeriesNumberColumn[col] : this.rightRowSeriesNumberColumnCount > 0 && col >= this.colCount - this.rightRowSeriesNumberColumnCount && row >= this.headerLevelCount ? this.rightRowSeriesNumberColumn[col - (this.colCount - this.rightRowSeriesNumberColumnCount)] : void 0;
1386
1386
  }
1387
1387
  changeTreeNodeTitle(col, row, value) {
1388
- const headerPaths = this.getCellHeaderPaths(col, row);
1389
- if (headerPaths.rowHeaderPaths.length > 0) {
1390
- this.getHeadNode(headerPaths.rowHeaderPaths.slice(0, headerPaths.rowHeaderPaths.length)).value = value;
1391
- } else if (headerPaths.colHeaderPaths.length > 0) {
1392
- this.getHeadNode(headerPaths.colHeaderPaths.slice(0, headerPaths.colHeaderPaths.length)).value = value;
1393
- }
1388
+ this.getHeadNode(col, row).value = value;
1394
1389
  const id = this.getCellId(col, row);
1395
1390
  this._headerObjectMap[id].title = value;
1396
1391
  }