@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,5 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.parseColKeyRowKeyForPivotTable = exports.checkHasTreeDefine = exports.checkHasAggregationOnBottom = exports.checkHasAggregationOnTop = exports.checkHasAggregation = void 0;
6
+
7
+ const global_1 = require("../tools/global"), ts_types_1 = require("../ts-types"), tree_helper_1 = require("./tree-helper");
8
+
3
9
  function checkHasAggregation(layoutMap) {
4
10
  const columnObjects = layoutMap.columnObjects;
5
11
  for (let i = 0; i < columnObjects.length; i++) {
@@ -39,9 +45,51 @@ function checkHasTreeDefine(layoutMap) {
39
45
  return !1;
40
46
  }
41
47
 
42
- Object.defineProperty(exports, "__esModule", {
43
- value: !0
44
- }), exports.checkHasTreeDefine = exports.checkHasAggregationOnBottom = exports.checkHasAggregationOnTop = exports.checkHasAggregation = void 0,
48
+ function parseColKeyRowKeyForPivotTable(table, options) {
49
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
50
+ let columnDimensionTree, rowDimensionTree, isNeedResetColumnDimensionTree = !0, isNeedResetRowDimensionTree = !0;
51
+ options.columnTree && (columnDimensionTree = new tree_helper_1.DimensionTree(null !== (_a = table.internalProps.columnTree) && void 0 !== _a ? _a : [], table.layoutNodeId),
52
+ isNeedResetColumnDimensionTree = !1 !== table.options.indicatorsAsCol && !columnDimensionTree.dimensionKeys.contain(global_1.IndicatorDimensionKeyPlaceholder) && (null === (_b = options.indicators) || void 0 === _b ? void 0 : _b.length) >= 1),
53
+ options.rowTree && (rowDimensionTree = new tree_helper_1.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),
54
+ isNeedResetRowDimensionTree = !1 === table.options.indicatorsAsCol && !rowDimensionTree.dimensionKeys.contain(global_1.IndicatorDimensionKeyPlaceholder) && (null === (_e = options.indicators) || void 0 === _e ? void 0 : _e.length) >= 1);
55
+ 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),
56
+ 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),
57
+ keys)), [])) && void 0 !== _l ? _l : [], indicatorKeys = null !== (_o = null === (_m = options.indicators) || void 0 === _m ? void 0 : _m.reduce(((keys, indicatorObj) => {
58
+ var _a, _b;
59
+ return "string" == typeof indicatorObj ? keys.push(indicatorObj) : (keys.push(indicatorObj.indicatorKey),
60
+ 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({
61
+ field: indicatorObj.indicatorKey,
62
+ indicatorKey: indicatorObj.indicatorKey,
63
+ aggregationType: ts_types_1.AggregationType.NONE
64
+ }) : table.internalProps.dataConfig ? table.internalProps.dataConfig.aggregationRules = [ {
65
+ field: indicatorObj.indicatorKey,
66
+ indicatorKey: indicatorObj.indicatorKey,
67
+ aggregationType: ts_types_1.AggregationType.NONE
68
+ } ] : table.internalProps.dataConfig = {
69
+ aggregationRules: [ {
70
+ field: indicatorObj.indicatorKey,
71
+ indicatorKey: indicatorObj.indicatorKey,
72
+ aggregationType: ts_types_1.AggregationType.NONE
73
+ } ]
74
+ })), keys;
75
+ }), [])) && void 0 !== _o ? _o : [];
76
+ 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 => {
77
+ const extension_rowKeys = [];
78
+ extensionRow.rows.forEach((row => {
79
+ "string" == typeof row ? extension_rowKeys.push(row) : extension_rowKeys.push(row.dimensionKey);
80
+ })), rowKeys.push(...extension_rowKeys);
81
+ }))), {
82
+ rowKeys: rowKeys,
83
+ columnKeys: columnKeys,
84
+ indicatorKeys: indicatorKeys,
85
+ isNeedResetColumnDimensionTree: isNeedResetColumnDimensionTree,
86
+ isNeedResetRowDimensionTree: isNeedResetRowDimensionTree,
87
+ columnDimensionTree: columnDimensionTree,
88
+ rowDimensionTree: rowDimensionTree
89
+ };
90
+ }
91
+
45
92
  exports.checkHasAggregation = checkHasAggregation, exports.checkHasAggregationOnTop = checkHasAggregationOnTop,
46
- exports.checkHasAggregationOnBottom = checkHasAggregationOnBottom, exports.checkHasTreeDefine = checkHasTreeDefine;
93
+ exports.checkHasAggregationOnBottom = checkHasAggregationOnBottom, exports.checkHasTreeDefine = checkHasTreeDefine,
94
+ exports.parseColKeyRowKeyForPivotTable = parseColKeyRowKeyForPivotTable;
47
95
  //# 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(): {
@@ -10,8 +10,8 @@ const util_1 = require("../tools/util"), ts_types_1 = require("../ts-types"), gl
10
10
  };
11
11
 
12
12
  class PivotHeaderLayoutMap {
13
- constructor(table, dataset) {
14
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
13
+ constructor(table, dataset, columnDimensionTree, rowDimensionTree) {
14
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
15
15
  if (this.colIndex = 0, this._showHeader = !0, this.columnHeaderObjs = [], this.rowHeaderObjs = [],
16
16
  this._cornerHeaderCellIds = [], this._columnHeaderCellIds = [], this._rowHeaderCellIds = [],
17
17
  this._rowHeaderCellIds_FULL = [], this._columnWidths = [], this.columnPaths = [],
@@ -21,9 +21,7 @@ class PivotHeaderLayoutMap {
21
21
  this.colDimensionKeys = [], this.indicatorKeys = [], this.indicatorDimensionKey = global_1.IndicatorDimensionKeyPlaceholder,
22
22
  this._rowHeaderExtensionTree = {}, this._extensionRowDimensionKeys = [], this.fullRowDimensionKeys = [],
23
23
  this.leftRowSeriesNumberColumnCount = 0, this.rightRowSeriesNumberColumnCount = 0,
24
- this.sharedVar = {
25
- seqId: 0
26
- }, this._table = table, "tree" === table.options.rowHierarchyType && (this.extensionRows = table.options.extensionRows),
24
+ this.sharedVar = table.layoutNodeId, this._table = table, "tree" === table.options.rowHierarchyType && (this.extensionRows = table.options.extensionRows),
27
25
  this.dataset = dataset, this._largeCellRangeCache = [], this._CellHeaderPathMap = new Map,
28
26
  this.rowTree = table.internalProps.rowTree, this.columnTree = table.internalProps.columnTree,
29
27
  this.rowsDefine = null !== (_a = table.internalProps.rows) && void 0 !== _a ? _a : [],
@@ -40,26 +38,10 @@ class PivotHeaderLayoutMap {
40
38
  this.rowHierarchyTextStartAlignment = table.options.rowHierarchyTextStartAlignment,
41
39
  this.cornerSetting = null !== (_l = table.options.corner) && void 0 !== _l ? _l : {
42
40
  titleOnDimension: "column"
43
- }, dataset && (this.rowTree = dataset.rowHeaderTree, this.columnTree = dataset.colHeaderTree,
44
- this.indicatorsAsCol && this._table.isPivotChart() && (0, get_chart_spec_1.checkHasCartesianChart)(this))) {
45
- const supplyAxisNode = nodes => {
46
- nodes.forEach((node => {
47
- var _a;
48
- (null === (_a = node.children) || void 0 === _a ? void 0 : _a.length) ? supplyAxisNode(node.children) : node.children = [ {
49
- dimensionKey: "axis",
50
- value: ""
51
- } ];
52
- }));
53
- };
54
- (null === (_m = this.rowTree) || void 0 === _m ? void 0 : _m.length) ? supplyAxisNode(this.rowTree) : this.rowTree = [ {
55
- dimensionKey: "axis",
56
- value: ""
57
- } ];
58
- }
59
- if (null === (_o = this.indicatorsDefine) || void 0 === _o || _o.forEach((indicator => {
41
+ }, dataset && (this.rowTree = dataset.rowHeaderTree, this.columnTree = dataset.colHeaderTree),
42
+ null === (_m = this.indicatorsDefine) || void 0 === _m || _m.forEach((indicator => {
60
43
  "string" == typeof indicator ? this.indicatorKeys.push(indicator) : this.indicatorKeys.push(indicator.indicatorKey);
61
- })), this.columnDimensionTree = new tree_helper_1.DimensionTree(null !== (_p = this.columnTree) && void 0 !== _p ? _p : [], this.sharedVar),
62
- this.rowDimensionTree = new tree_helper_1.DimensionTree(null !== (_q = this.rowTree) && void 0 !== _q ? _q : [], this.sharedVar, this.rowHierarchyType, "tree" === this.rowHierarchyType ? this.rowExpandLevel : void 0),
44
+ })), this.columnDimensionTree = columnDimensionTree, this.rowDimensionTree = rowDimensionTree,
63
45
  this.colDimensionKeys = this.columnDimensionTree.dimensionKeys.valueArr(), this.rowDimensionKeys = this.rowDimensionTree.dimensionKeys.valueArr(),
64
46
  this.fullRowDimensionKeys = this.fullRowDimensionKeys.concat(this.rowDimensionKeys),
65
47
  this.resetRowHeaderLevelCount(), this._generateColHeaderIds(), this.colIndex = 0,
@@ -71,21 +53,27 @@ class PivotHeaderLayoutMap {
71
53
  }
72
54
  return !1;
73
55
  }))), this.resetColumnHeaderLevelCount(), this._rowHeaderCellIds_FULL = (0, util_1.transpose)(this._rowHeaderCellIds_FULL),
74
- "tree" === table.options.rowHierarchyType && (null === (_r = this.extensionRows) || void 0 === _r ? void 0 : _r.length) >= 1 && (this.generateExtensionRowTree(),
56
+ "tree" === table.options.rowHierarchyType && (null === (_o = this.extensionRows) || void 0 === _o ? void 0 : _o.length) >= 1 && (this.generateExtensionRowTree(),
75
57
  this.extensionRows.forEach((extensionRow => {
76
58
  const rowKeys = [];
77
59
  extensionRow.rows.forEach((row => {
78
60
  "string" == typeof row ? rowKeys.push(row) : rowKeys.push(row.dimensionKey);
79
61
  })), this._extensionRowDimensionKeys.push(rowKeys), this.fullRowDimensionKeys = this.fullRowDimensionKeys.concat(rowKeys);
80
62
  }))), this.sharedVar.seqId = Math.max(this.sharedVar.seqId, this._headerObjects.length),
81
- "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) {
63
+ "column" === this.cornerSetting.titleOnDimension) {
64
+ const colDimensionKeys = this.columnDimensionTree.dimensionKeysIncludeVirtual.valueArr();
65
+ this.cornerHeaderObjs = this._addCornerHeaders(this.columnHeaderTitle ? [ "" ].concat(colDimensionKeys) : colDimensionKeys, this.columnsDefine);
66
+ } else if ("row" === this.cornerSetting.titleOnDimension) if ("tree" === this.rowHierarchyType && (null === (_p = this.extensionRows) || void 0 === _p ? void 0 : _p.length) >= 1) {
82
67
  const rowTreeFirstKey = [];
83
68
  rowTreeFirstKey.push(this.rowDimensionKeys[0]), this._extensionRowDimensionKeys.forEach((extensionRowKeys => {
84
69
  rowTreeFirstKey.push(extensionRowKeys[0]);
85
70
  }));
86
71
  const extensionRowDimensions = this.extensionRows.reduce(((dimensions, cur) => dimensions.concat(cur.rows)), []);
87
72
  this.cornerHeaderObjs = this._addCornerHeaders(this.rowHeaderTitle ? [ "" ].concat(rowTreeFirstKey) : rowTreeFirstKey, this.rowsDefine.concat(extensionRowDimensions));
88
- } else this.cornerHeaderObjs = this._addCornerHeaders(this.rowHeaderTitle ? [ "" ].concat(this.rowDimensionKeys) : this.rowDimensionKeys, this.rowsDefine); else this.cornerHeaderObjs = this._addCornerHeaders(null, void 0);
73
+ } else {
74
+ const rowDimensionKeys = this.rowDimensionTree.dimensionKeysIncludeVirtual.valueArr();
75
+ this.cornerHeaderObjs = this._addCornerHeaders(this.rowHeaderTitle ? [ "" ].concat(rowDimensionKeys) : rowDimensionKeys, this.rowsDefine);
76
+ } else this.cornerHeaderObjs = this._addCornerHeaders(null, void 0);
89
77
  this.colIndex = 0, this._headerObjectMap = this._headerObjects.reduce(((o, e) => (o[e.id] = e,
90
78
  o)), {}), this.indicatorsAsCol && !this.hideIndicatorName ? this._indicatorShowType = "column" : this.indicatorsAsCol || this.hideIndicatorName ? this._indicatorShowType = "none" : this._indicatorShowType = "row",
91
79
  this.setPagination(table.options.pagination), this._table.isPivotChart() && (this._chartItemSpanSize = 0,
@@ -485,7 +473,8 @@ class PivotHeaderLayoutMap {
485
473
  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);
486
474
  let count = this.indicatorsAsCol && this.hideIndicatorName && this.colDimensionKeys[this.colDimensionKeys.length - 1] === this.indicatorDimensionKey ? this.columnDimensionTree.totalLevel - 1 : this.columnDimensionTree.totalLevel;
487
475
  return this.columnHeaderTitle && (count += 1), this._table.isPivotChart() && this.indicatorsAsCol && !this.hasTwoIndicatorAxes && (0,
488
- get_chart_spec_1.checkHasCartesianChart)(this) && (count -= 1), void (this.columnHeaderLevelCount = count);
476
+ get_chart_spec_1.checkHasCartesianChart)(this.indicatorsDefine) && (count -= 1),
477
+ void (this.columnHeaderLevelCount = count);
489
478
  }
490
479
  this.columnHeaderLevelCount = 0;
491
480
  }
@@ -496,7 +485,7 @@ class PivotHeaderLayoutMap {
496
485
  const extensionRowCount = null !== (_b = null === (_a = this.extensionRows) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0;
497
486
  return this.rowHeaderTitle ? void (this.rowHeaderLevelCount = 2 + extensionRowCount) : void (this.rowHeaderLevelCount = 1 + extensionRowCount);
498
487
  }
499
- const rowLevelCount = this.rowDimensionKeys.length;
488
+ const rowLevelCount = this.rowDimensionTree.totalLevel;
500
489
  let count = rowLevelCount;
501
490
  return this.indicatorsAsCol || this.hideIndicatorName && this.rowDimensionKeys[this.rowDimensionKeys.length - 1] === this.indicatorDimensionKey && (count = rowLevelCount - 1),
502
491
  this.rowHeaderTitle && (count += 1), void (this.rowHeaderLevelCount = count);
@@ -527,7 +516,7 @@ class PivotHeaderLayoutMap {
527
516
  }
528
517
  get bottomFrozenRowCount() {
529
518
  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;
530
- if (this.indicatorKeys.length >= 1 && (0, get_chart_spec_1.checkHasCartesianChart)(this)) {
519
+ if (this.indicatorKeys.length >= 1 && (0, get_chart_spec_1.checkHasCartesianChart)(this.indicatorsDefine)) {
531
520
  const axisOption = this._table.pivotChartAxes.find((axisOption => "bottom" === axisOption.orient));
532
521
  return !1 === (null == axisOption ? void 0 : axisOption.visible) ? 0 : (this.indicatorsAsCol,
533
522
  1);
@@ -708,7 +697,7 @@ class PivotHeaderLayoutMap {
708
697
  return this.columnHeaderLevelCount + index;
709
698
  }
710
699
  getRecordShowIndexByCell(col, row) {}
711
- getCellHeaderPathsWidthTreeNode(col, row) {
700
+ getCellHeaderPathsWithTreeNode(col, row) {
712
701
  if (col === this._lastCellCol && row === this._lastCellRow) return this._lastCellHeaderPath;
713
702
  let _largeCellRangeCacheIndex = -1;
714
703
  for (let i = 0; i < this._largeCellRangeCache.length; i++) {
@@ -747,7 +736,7 @@ class PivotHeaderLayoutMap {
747
736
  }
748
737
  getCellHeaderPaths(col, row) {
749
738
  var _a, _b;
750
- const headerPathsWidthNode = this.getCellHeaderPathsWidthTreeNode(col, row), headerPaths = {
739
+ const headerPathsWidthNode = this.getCellHeaderPathsWithTreeNode(col, row), headerPaths = {
751
740
  colHeaderPaths: [],
752
741
  rowHeaderPaths: [],
753
742
  cellLocation: headerPathsWidthNode.cellLocation
@@ -757,14 +746,14 @@ class PivotHeaderLayoutMap {
757
746
  const colHeaderPath = {};
758
747
  colHeaderPath.dimensionKey = colHeader.dimensionKey, colHeaderPath.indicatorKey = colHeader.indicatorKey,
759
748
  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 : "",
760
- headerPaths.colHeaderPaths.push(colHeaderPath);
749
+ colHeaderPath.virtual = colHeader.virtual, headerPaths.colHeaderPaths.push(colHeaderPath);
761
750
  })), null === (_b = headerPathsWidthNode.rowHeaderPaths) || void 0 === _b || _b.forEach((rowHeader => {
762
751
  var _a, _b, _c;
763
752
  if ("axis" !== rowHeader.dimensionKey) {
764
753
  const rowHeaderPath = {};
765
754
  rowHeaderPath.dimensionKey = rowHeader.dimensionKey, rowHeaderPath.indicatorKey = rowHeader.indicatorKey,
766
755
  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 : "",
767
- headerPaths.rowHeaderPaths.push(rowHeaderPath);
756
+ rowHeaderPath.virtual = rowHeader.virtual, headerPaths.rowHeaderPaths.push(rowHeaderPath);
768
757
  }
769
758
  })), headerPaths;
770
759
  }
@@ -955,8 +944,8 @@ class PivotHeaderLayoutMap {
955
944
  return this.getParentCellId(sourceCellRange.start.col, source.row) === this.getParentCellId(sourceCellRange.start.col, target.row);
956
945
  }
957
946
  {
958
- const sourceRowHeaderPaths = (0, vutils_1.cloneDeep)(this.getCellHeaderPathsWidthTreeNode(source.col, source.row).rowHeaderPaths), targetRowHeaderPaths = (0,
959
- vutils_1.cloneDeep)(this.getCellHeaderPathsWidthTreeNode(target.col, target.row).rowHeaderPaths);
947
+ const sourceRowHeaderPaths = (0, vutils_1.cloneDeep)(this.getCellHeaderPathsWithTreeNode(source.col, source.row).rowHeaderPaths), targetRowHeaderPaths = (0,
948
+ vutils_1.cloneDeep)(this.getCellHeaderPathsWithTreeNode(target.col, target.row).rowHeaderPaths);
960
949
  if (sourceRowHeaderPaths.pop(), targetRowHeaderPaths.pop(), sourceRowHeaderPaths.length <= targetRowHeaderPaths.length) {
961
950
  if (sourceRowHeaderPaths.length === targetRowHeaderPaths.length) return !sourceRowHeaderPaths.find(((item, i) => item.dimensionKey !== targetRowHeaderPaths[i].dimensionKey || item.value !== targetRowHeaderPaths[i].value));
962
951
  if (sourceRowHeaderPaths.length > 0) for (let i = 0; i < sourceRowHeaderPaths.length; i++) if (sourceRowHeaderPaths[i].startInTotal !== targetRowHeaderPaths[i].startInTotal) return !1;
@@ -982,7 +971,7 @@ class PivotHeaderLayoutMap {
982
971
  }
983
972
  const sourceColumns = this._columnWidths.splice(sourceCellRange.start.col - this.leftRowSeriesNumberColumnCount, sourceSize);
984
973
  return sourceColumns.unshift(targetIndex - this.leftRowSeriesNumberColumnCount, 0),
985
- 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),
974
+ 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),
986
975
  this.columnDimensionTree.reset(this.columnDimensionTree.tree.children, !0), this._CellHeaderPathMap = new Map,
987
976
  this._largeCellRangeCache.length = 0, {
988
977
  sourceIndex: sourceCellRange.start.col,
@@ -994,7 +983,7 @@ class PivotHeaderLayoutMap {
994
983
  }
995
984
  if (this.isRowHeader(source.col, source.row)) {
996
985
  let targetIndex;
997
- 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;
986
+ 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;
998
987
  if (targetIndex = target.row >= source.row ? targetRowHeaderNode.startInTotal + targetRowHeaderNode.size - sourceSize : targetRowHeaderNode.startInTotal,
999
988
  targetIndex === sourceCellRange.start.row - this.columnHeaderLevelCount) return null;
1000
989
  const sourceIds = this._rowHeaderCellIds.splice(sourceCellRange.start.row - this.columnHeaderLevelCount, sourceSize);
@@ -1125,7 +1114,7 @@ class PivotHeaderLayoutMap {
1125
1114
  }
1126
1115
  isAxisCell(col, row) {
1127
1116
  if (!this._table.isPivotChart()) return !1;
1128
- if (this.indicatorKeys.length >= 1 && (0, get_chart_spec_1.checkHasCartesianChart)(this)) {
1117
+ if (this.indicatorKeys.length >= 1 && (0, get_chart_spec_1.checkHasCartesianChart)(this.indicatorsDefine)) {
1129
1118
  if (this.isBottomFrozenRow(col, row) && (0, get_chart_spec_1.isHasCartesianChartInline)(col, row, "col", this) || this.isRightFrozenColumn(col, row) && (0,
1130
1119
  get_chart_spec_1.isHasCartesianChartInline)(col, row, "row", this)) return !0;
1131
1120
  if (this.isRowHeader(col, row) && col === this.rowHeaderLevelCount - 1 && (0, get_chart_spec_1.isHasCartesianChartInline)(col, row, "row", this)) return !0;
@@ -1171,9 +1160,21 @@ class PivotHeaderLayoutMap {
1171
1160
  null === (_a = indicatorObject.chartInstance) || void 0 === _a || _a.release();
1172
1161
  }));
1173
1162
  }
1174
- getHeadNode(dimensions) {
1163
+ getHeadNode(col, row) {
1164
+ var _a, _b, _c;
1165
+ let dimensions;
1166
+ const headerPaths = this.getCellHeaderPaths(col, row);
1167
+ 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)),
1168
+ this.getHeadNodeByRowOrColDimensions(dimensions, col, row);
1169
+ }
1170
+ getHeadNodeByRowOrColDimensions(dimensions, col, row) {
1171
+ var _a;
1175
1172
  if (!Array.isArray(dimensions)) return;
1176
1173
  let rowDimension, colDimension, rowArr = this.rowTree, colArr = this.columnTree;
1174
+ if ((0, vutils_1.isValid)(row) && (0, vutils_1.isValid)(col) && "tree" === this.rowHierarchyType && this.extensionRows && col >= 1 + this.leftRowSeriesNumberColumnCount) {
1175
+ const hdId = this.getCellId(col - 1, row);
1176
+ rowArr = this._rowHeaderExtensionTree[hdId].tree.children;
1177
+ }
1177
1178
  for (let i = 0; i < dimensions.length; i++) {
1178
1179
  const highlightDimension = dimensions[i];
1179
1180
  if ((highlightDimension.isPivotCorner || !highlightDimension.value) && i === dimensions.length - 1) return;
@@ -1187,7 +1188,7 @@ class PivotHeaderLayoutMap {
1187
1188
  break;
1188
1189
  }
1189
1190
  }
1190
- if (!isCol) for (let k = 0; k < rowArr.length; k++) {
1191
+ if (!isCol) for (let k = 0; null !== (_a = k < (null == rowArr ? void 0 : rowArr.length)) && void 0 !== _a && _a; k++) {
1191
1192
  const dimension = rowArr[k];
1192
1193
  if ((0, vutils_1.isValid)(highlightDimension.dimensionKey) && dimension.dimensionKey === highlightDimension.dimensionKey && dimension.value === highlightDimension.value || (0,
1193
1194
  vutils_1.isValid)(highlightDimension.indicatorKey) && dimension.indicatorKey === highlightDimension.indicatorKey && (dimension.value === highlightDimension.value || !(0,
@@ -1391,12 +1392,7 @@ class PivotHeaderLayoutMap {
1391
1392
  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;
1392
1393
  }
1393
1394
  changeTreeNodeTitle(col, row, value) {
1394
- const headerPaths = this.getCellHeaderPaths(col, row);
1395
- if (headerPaths.rowHeaderPaths.length > 0) {
1396
- this.getHeadNode(headerPaths.rowHeaderPaths.slice(0, headerPaths.rowHeaderPaths.length)).value = value;
1397
- } else if (headerPaths.colHeaderPaths.length > 0) {
1398
- this.getHeadNode(headerPaths.colHeaderPaths.slice(0, headerPaths.colHeaderPaths.length)).value = value;
1399
- }
1395
+ this.getHeadNode(col, row).value = value;
1400
1396
  const id = this.getCellId(col, row);
1401
1397
  this._headerObjectMap[id].title = value;
1402
1398
  }