@visactor/vtable 1.15.3-alpha.1 → 1.16.0-alpha.0

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 (147) hide show
  1. package/cjs/PivotChart.d.ts +0 -1
  2. package/cjs/PivotChart.js +2 -5
  3. package/cjs/PivotChart.js.map +1 -1
  4. package/cjs/PivotTable.d.ts +2 -2
  5. package/cjs/PivotTable.js +41 -33
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/components/index.js +1 -1
  8. package/cjs/core/BaseTable.d.ts +1 -2
  9. package/cjs/core/BaseTable.js +2 -2
  10. package/cjs/core/BaseTable.js.map +1 -1
  11. package/cjs/data/DataSource.d.ts +2 -2
  12. package/cjs/data/DataSource.js +4 -4
  13. package/cjs/data/DataSource.js.map +1 -1
  14. package/cjs/dataset/dataset-pivot-table.js +1 -2
  15. package/cjs/dataset/dataset.d.ts +3 -2
  16. package/cjs/dataset/dataset.js +13 -9
  17. package/cjs/dataset/dataset.js.map +1 -1
  18. package/cjs/index.d.ts +1 -1
  19. package/cjs/index.js +1 -1
  20. package/cjs/index.js.map +1 -1
  21. package/cjs/layout/index.js +1 -2
  22. package/cjs/layout/layout-helper.js +10 -9
  23. package/cjs/layout/layout-helper.js.map +1 -1
  24. package/cjs/layout/pivot-header-layout.d.ts +33 -5
  25. package/cjs/layout/pivot-header-layout.js +137 -31
  26. package/cjs/layout/pivot-header-layout.js.map +1 -1
  27. package/cjs/layout/tree-helper.d.ts +5 -4
  28. package/cjs/layout/tree-helper.js +105 -23
  29. package/cjs/layout/tree-helper.js.map +1 -1
  30. package/cjs/plugins/custom-cell-style.js +1 -1
  31. package/cjs/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  32. package/cjs/scenegraph/group-creater/progress/proxy.js +5 -2
  33. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  34. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js +8 -4
  35. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  36. package/cjs/scenegraph/layout/compute-col-width.js +1 -1
  37. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  38. package/cjs/scenegraph/layout/frozen.d.ts +1 -0
  39. package/cjs/scenegraph/layout/frozen.js +91 -2
  40. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  41. package/cjs/scenegraph/layout/update-col.js +4 -1
  42. package/cjs/scenegraph/layout/update-col.js.map +1 -1
  43. package/cjs/scenegraph/layout/update-row.js +3 -2
  44. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  45. package/cjs/scenegraph/scenegraph.d.ts +5 -0
  46. package/cjs/scenegraph/scenegraph.js +18 -0
  47. package/cjs/scenegraph/scenegraph.js.map +1 -1
  48. package/cjs/scenegraph/utils/get-hierarchy-offset.js +1 -1
  49. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  50. package/cjs/state/state.d.ts +2 -0
  51. package/cjs/state/state.js +7 -2
  52. package/cjs/state/state.js.map +1 -1
  53. package/cjs/tools/NumberMap.js +4 -2
  54. package/cjs/tools/NumberMap.js.map +1 -1
  55. package/cjs/tools/diff-cell.d.ts +58 -3
  56. package/cjs/tools/diff-cell.js +90 -11
  57. package/cjs/tools/diff-cell.js.map +1 -1
  58. package/cjs/tools/get-data-path/create-dataset.js +1 -1
  59. package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
  60. package/cjs/ts-types/base-table.d.ts +2 -1
  61. package/cjs/ts-types/base-table.js.map +1 -1
  62. package/cjs/ts-types/list-table/define/basic-define.d.ts +1 -1
  63. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  64. package/cjs/ts-types/list-table/layout-map/api.d.ts +4 -4
  65. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  66. package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +2 -2
  67. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  68. package/cjs/ts-types/pivot-table/indicator/basic-indicator.d.ts +1 -1
  69. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  70. package/cjs/ts-types/table-engine.d.ts +6 -3
  71. package/cjs/ts-types/table-engine.js.map +1 -1
  72. package/cjs/vrender.js.map +1 -1
  73. package/dist/vtable.js +759 -116
  74. package/dist/vtable.min.js +2 -2
  75. package/es/PivotChart.d.ts +0 -1
  76. package/es/PivotChart.js +2 -5
  77. package/es/PivotChart.js.map +1 -1
  78. package/es/PivotTable.d.ts +2 -2
  79. package/es/PivotTable.js +41 -33
  80. package/es/PivotTable.js.map +1 -1
  81. package/es/components/index.js +1 -1
  82. package/es/core/BaseTable.d.ts +1 -2
  83. package/es/core/BaseTable.js +2 -2
  84. package/es/core/BaseTable.js.map +1 -1
  85. package/es/data/DataSource.d.ts +2 -2
  86. package/es/data/DataSource.js +4 -4
  87. package/es/data/DataSource.js.map +1 -1
  88. package/es/dataset/dataset-pivot-table.js +1 -2
  89. package/es/dataset/dataset.d.ts +3 -2
  90. package/es/dataset/dataset.js +14 -10
  91. package/es/dataset/dataset.js.map +1 -1
  92. package/es/index.d.ts +1 -1
  93. package/es/index.js +1 -1
  94. package/es/index.js.map +1 -1
  95. package/es/layout/index.js +1 -2
  96. package/es/layout/layout-helper.js +10 -9
  97. package/es/layout/layout-helper.js.map +1 -1
  98. package/es/layout/pivot-header-layout.d.ts +33 -5
  99. package/es/layout/pivot-header-layout.js +138 -33
  100. package/es/layout/pivot-header-layout.js.map +1 -1
  101. package/es/layout/tree-helper.d.ts +5 -4
  102. package/es/layout/tree-helper.js +102 -19
  103. package/es/layout/tree-helper.js.map +1 -1
  104. package/es/plugins/custom-cell-style.js +1 -1
  105. package/es/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  106. package/es/scenegraph/group-creater/progress/proxy.js +5 -2
  107. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  108. package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js +8 -4
  109. package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  110. package/es/scenegraph/layout/compute-col-width.js +1 -1
  111. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  112. package/es/scenegraph/layout/frozen.d.ts +1 -0
  113. package/es/scenegraph/layout/frozen.js +89 -0
  114. package/es/scenegraph/layout/frozen.js.map +1 -1
  115. package/es/scenegraph/layout/update-col.js +4 -1
  116. package/es/scenegraph/layout/update-col.js.map +1 -1
  117. package/es/scenegraph/layout/update-row.js +3 -2
  118. package/es/scenegraph/layout/update-row.js.map +1 -1
  119. package/es/scenegraph/scenegraph.d.ts +5 -0
  120. package/es/scenegraph/scenegraph.js +16 -1
  121. package/es/scenegraph/scenegraph.js.map +1 -1
  122. package/es/scenegraph/utils/get-hierarchy-offset.js +1 -1
  123. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  124. package/es/state/state.d.ts +2 -0
  125. package/es/state/state.js +7 -2
  126. package/es/state/state.js.map +1 -1
  127. package/es/tools/NumberMap.js +4 -2
  128. package/es/tools/NumberMap.js.map +1 -1
  129. package/es/tools/diff-cell.d.ts +58 -3
  130. package/es/tools/diff-cell.js +85 -9
  131. package/es/tools/diff-cell.js.map +1 -1
  132. package/es/tools/get-data-path/create-dataset.js +1 -1
  133. package/es/tools/get-data-path/create-dataset.js.map +1 -1
  134. package/es/ts-types/base-table.d.ts +2 -1
  135. package/es/ts-types/base-table.js.map +1 -1
  136. package/es/ts-types/list-table/define/basic-define.d.ts +1 -1
  137. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  138. package/es/ts-types/list-table/layout-map/api.d.ts +4 -4
  139. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  140. package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +2 -2
  141. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  142. package/es/ts-types/pivot-table/indicator/basic-indicator.d.ts +1 -1
  143. package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  144. package/es/ts-types/table-engine.d.ts +6 -3
  145. package/es/ts-types/table-engine.js.map +1 -1
  146. package/es/vrender.js.map +1 -1
  147. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/NumberMap.ts"],"names":[],"mappings":"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","file":"NumberMap.js","sourcesContent":["import { isValid } from '@visactor/vutils';\n\nconst indexFirst = (arr: number[], elm: number): number => {\n let low = 0;\n let high = arr.length - 1;\n while (low <= high) {\n const i = Math.floor((low + high) / 2);\n if (arr[i] === elm) {\n return i;\n } else if (arr[i] > elm) {\n high = i - 1;\n } else {\n low = i + 1;\n }\n }\n return high < 0 ? 0 : high;\n};\n\nexport class NumberMap<T> {\n private _keys: number[] = [];\n private _vals: { [key: number]: T } = {};\n private _sorted = false;\n count() {\n return this._keys.length;\n }\n values() {\n return this._vals;\n }\n valueArr() {\n return Object.values(this._vals);\n }\n /**\n * 将sourceIndex位置开始 往后moveCount个值 调整到targetIndex位置处\n * @param sourceIndex\n * @param targetIndex\n * @param moveCount\n */\n adjustOrder(sourceIndex: number, targetIndex: number, moveCount: number) {\n const { _keys: keys } = this;\n if (!this._sorted) {\n keys.sort((a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n this._sorted = true;\n }\n if (sourceIndex > targetIndex) {\n const sourceVals = [];\n for (let i = indexFirst(keys, sourceIndex + moveCount - 1); i >= 0; i--) {\n const key = keys[i];\n if (key >= sourceIndex) {\n sourceVals.push(this.get(key));\n } else if (targetIndex <= key && key < sourceIndex) {\n this.put(key + moveCount, this.get(key));\n } else if (key < targetIndex) {\n break;\n }\n }\n for (let i = 0; i < moveCount; i++) {\n this.put(targetIndex + i, sourceVals[moveCount - 1 - i]);\n }\n }\n const { length } = keys;\n if (sourceIndex < targetIndex) {\n const sourceVals = [];\n for (let i = indexFirst(keys, sourceIndex); i < length; i++) {\n const key = keys[i];\n if (key >= sourceIndex && key < sourceIndex + moveCount) {\n sourceVals.push(this.get(key));\n } else if (sourceIndex + moveCount <= key && key <= targetIndex) {\n this.put(key - moveCount, this.get(key));\n } else if (key > targetIndex) {\n break;\n }\n }\n for (let i = 0; i < moveCount; i++) {\n this.put(targetIndex + i, sourceVals[i]);\n }\n }\n }\n exchangeOrder(\n sourceIndex: number,\n sourceCount: number,\n targetIndex: number,\n targetCount: number,\n insertIndex: number\n ) {\n const { _keys: keys } = this;\n if (!this._sorted) {\n keys.sort((a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n this._sorted = true;\n }\n if (sourceIndex > targetIndex) {\n //先将target部分的值存起来\n const targetVals = [];\n const sourceVals = [];\n for (let i = indexFirst(keys, targetIndex); i < indexFirst(keys, sourceIndex) + sourceCount; i++) {\n const key = keys[i];\n if (key >= sourceIndex && key < sourceIndex + sourceCount) {\n sourceVals.push(this.get(key));\n } else {\n targetVals.push(this.get(key));\n }\n }\n for (let i = 0; i < sourceCount; i++) {\n this.put(insertIndex + i, sourceVals[i]);\n }\n\n for (let i = 0; i < targetVals.length; i++) {\n this.put(insertIndex + sourceCount + i, targetVals[i]);\n }\n } else {\n //先将target部分的值存起来\n const targetVals = [];\n const sourceVals = [];\n for (let i = indexFirst(keys, sourceIndex); i < indexFirst(keys, targetIndex) + targetCount; i++) {\n const key = keys[i];\n if (key >= sourceIndex && key < sourceIndex + sourceCount) {\n sourceVals.push(this.get(key));\n } else {\n targetVals.push(this.get(key));\n }\n }\n for (let i = 0; i < sourceCount; i++) {\n this.put(insertIndex + i, sourceVals[i]);\n }\n\n for (let i = 0; i < targetVals.length; i++) {\n this.put(sourceIndex + i, targetVals[i]);\n }\n }\n }\n del(key: number): void {\n delete this._vals[key];\n const index = this._keys.indexOf(key);\n if (index !== -1) {\n this._keys.splice(index, 1); // 使用 splice() 方法删除指定索引位置的元素\n }\n }\n put(key: number, value: T): void {\n if (!(key in this._vals)) {\n this._keys.push(key);\n this._sorted = false;\n }\n this._vals[key] = value;\n }\n get(key: number): T | undefined {\n return this._vals[key];\n }\n has(key: number): boolean {\n return isValid(this._vals[key]);\n }\n contain(value: T): boolean {\n return Object.values(this._vals).indexOf(value) >= 0;\n }\n each(keyFrom: number, keyTo: number, fn: (t: T, k: number) => boolean | void): void {\n const { _keys: keys } = this;\n const { length } = keys;\n if (!this._sorted) {\n keys.sort((a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n this._sorted = true;\n }\n\n for (let i = indexFirst(keys, keyFrom); i < length; i++) {\n const key = keys[i];\n if (keyFrom <= key && key <= keyTo) {\n const callRes = fn(this.get(key) as T, key);\n if (callRes === false) {\n break;\n }\n } else if (keyTo < key) {\n return;\n }\n }\n }\n clear() {\n this._keys.length = 0;\n this._vals = {};\n this._sorted = false;\n }\n\n getLastIndex() {\n return this._keys[this._keys.length - 1];\n }\n\n delLast() {\n const lastIndex = this.getLastIndex();\n this.del(lastIndex);\n }\n\n delAndReorder(index: number) {\n if (!this.has(index)) {\n return;\n }\n const lastIndex = this.getLastIndex();\n\n this.adjustOrder(index + 1, index, lastIndex - index);\n this.delLast();\n }\n\n addAndReorder(index: number, newValue?: T) {\n const lastIndex = this.getLastIndex();\n this.adjustOrder(index, index + 1, lastIndex - index);\n if (isValid(newValue)) {\n this.put(index, newValue);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/NumberMap.ts"],"names":[],"mappings":"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","file":"NumberMap.js","sourcesContent":["import { isValid } from '@visactor/vutils';\n\nconst indexFirst = (arr: number[], elm: number): number => {\n let low = 0;\n let high = arr.length - 1;\n while (low <= high) {\n const i = Math.floor((low + high) / 2);\n if (arr[i] === elm) {\n return i;\n } else if (arr[i] > elm) {\n high = i - 1;\n } else {\n low = i + 1;\n }\n }\n return high < 0 ? 0 : high;\n};\n\nexport class NumberMap<T> {\n private _keys: number[] = [];\n private _vals: { [key: number]: T } = {};\n private _sorted = false;\n count() {\n return this._keys.length;\n }\n values() {\n return this._vals;\n }\n valueArr() {\n return Object.values(this._vals);\n }\n /**\n * 将sourceIndex位置开始 往后moveCount个值 调整到targetIndex位置处\n * @param sourceIndex\n * @param targetIndex\n * @param moveCount\n */\n adjustOrder(sourceIndex: number, targetIndex: number, moveCount: number) {\n const { _keys: keys } = this;\n if (!this._sorted) {\n keys.sort((a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n this._sorted = true;\n }\n if (sourceIndex > targetIndex) {\n const sourceVals = [];\n for (let i = indexFirst(keys, sourceIndex + moveCount - 1); i >= 0; i--) {\n const key = keys[i];\n if (key >= sourceIndex) {\n sourceVals.push(this.get(key));\n } else if (targetIndex <= key && key < sourceIndex) {\n this.put(key + moveCount, this.get(key));\n } else if (key < targetIndex) {\n break;\n }\n }\n for (let i = 0; i < moveCount; i++) {\n this.put(targetIndex + i, sourceVals[moveCount - 1 - i]);\n }\n }\n const { length } = keys;\n if (sourceIndex < targetIndex) {\n const sourceVals = [];\n for (let i = indexFirst(keys, sourceIndex); i < length; i++) {\n const key = keys[i];\n if (key >= sourceIndex && key < sourceIndex + moveCount) {\n sourceVals.push(this.get(key));\n } else if (sourceIndex + moveCount <= key && key <= targetIndex) {\n this.put(key - moveCount, this.get(key));\n } else if (key > targetIndex) {\n break;\n }\n }\n for (let i = 0; i < moveCount; i++) {\n this.put(targetIndex + i, sourceVals[i]);\n }\n }\n }\n exchangeOrder(\n sourceIndex: number,\n sourceCount: number,\n targetIndex: number,\n targetCount: number,\n insertIndex: number\n ) {\n const { _keys: keys } = this;\n if (!this._sorted) {\n keys.sort((a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n this._sorted = true;\n }\n if (sourceIndex > targetIndex) {\n //先将target部分的值存起来\n const targetVals = [];\n const sourceVals = [];\n for (let i = indexFirst(keys, targetIndex); i < indexFirst(keys, sourceIndex) + sourceCount; i++) {\n const key = keys[i];\n if (key >= sourceIndex && key < sourceIndex + sourceCount) {\n sourceVals.push(this.get(key));\n } else {\n targetVals.push(this.get(key));\n }\n }\n for (let i = 0; i < sourceCount; i++) {\n this.put(insertIndex + i, sourceVals[i]);\n }\n\n for (let i = 0; i < targetVals.length; i++) {\n this.put(insertIndex + sourceCount + i, targetVals[i]);\n }\n } else {\n //先将target部分的值存起来\n const targetVals = [];\n const sourceVals = [];\n for (let i = indexFirst(keys, sourceIndex); i < indexFirst(keys, targetIndex) + targetCount; i++) {\n const key = keys[i];\n if (key >= sourceIndex && key < sourceIndex + sourceCount) {\n sourceVals.push(this.get(key));\n } else {\n targetVals.push(this.get(key));\n }\n }\n for (let i = 0; i < sourceCount; i++) {\n this.put(insertIndex + i, sourceVals[i]);\n }\n\n for (let i = 0; i < targetVals.length; i++) {\n this.put(sourceIndex + i, targetVals[i]);\n }\n }\n }\n del(key: number): void {\n delete this._vals[key];\n const index = this._keys.indexOf(key);\n if (index !== -1) {\n this._keys.splice(index, 1); // 使用 splice() 方法删除指定索引位置的元素\n }\n }\n put(key: number, value: T): void {\n if (!(key in this._vals)) {\n this._keys.push(key);\n this._sorted = false;\n }\n this._vals[key] = value;\n }\n get(key: number): T | undefined {\n return this._vals[key];\n }\n has(key: number): boolean {\n return isValid(this._vals[key]);\n }\n contain(value: T): boolean {\n return Object.values(this._vals).indexOf(value) >= 0;\n }\n each(keyFrom: number, keyTo: number, fn: (t: T, k: number) => boolean | void): void {\n const { _keys: keys } = this;\n const { length } = keys;\n if (!this._sorted) {\n keys.sort((a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n this._sorted = true;\n }\n\n for (let i = indexFirst(keys, keyFrom); i < length; i++) {\n const key = keys[i];\n if (keyFrom <= key && key <= keyTo) {\n const callRes = fn(this.get(key) as T, key);\n if (callRes === false) {\n break;\n }\n } else if (keyTo < key) {\n return;\n }\n }\n }\n clear() {\n this._keys.length = 0;\n this._vals = {};\n this._sorted = false;\n }\n\n getLastIndex() {\n return this._keys[this._keys.length - 1];\n }\n\n delLast() {\n const lastIndex = this.getLastIndex();\n this.del(lastIndex);\n }\n\n delAndReorder(index: number) {\n if (!this.has(index)) {\n return;\n }\n const lastIndex = this.getLastIndex();\n\n this.adjustOrder(index + 1, index, lastIndex - index);\n this.delLast();\n }\n\n addAndReorder(index: number, newValue?: T) {\n if (isValid(newValue)) {\n const lastIndex = this.getLastIndex();\n this.adjustOrder(index, index + 1, lastIndex - index);\n\n this.put(index, newValue);\n }\n }\n}\n"]}
@@ -1,17 +1,72 @@
1
1
  import type { PivotHeaderLayoutMap } from '../layout/pivot-header-layout';
2
+ import type { Scenegraph } from '../scenegraph/scenegraph';
2
3
  import type { CellAddress } from '../ts-types';
3
4
  export declare function diffCellAddress(col: number, row: number, oldCellIds: number[], newCellIds: number[], oldRowHeaderCellPositons: CellAddress[], layout: PivotHeaderLayoutMap): {
4
- addCellPositions: {
5
+ addCellPositionsRowDirection: {
5
6
  col: number;
6
7
  row: number;
7
8
  }[];
8
- removeCellPositions: CellAddress[];
9
- updateCellPositions: {
9
+ removeCellPositionsRowDirection: CellAddress[];
10
+ updateCellPositionsRowDirection: {
10
11
  col: never;
11
12
  row: number;
12
13
  }[];
13
14
  };
15
+ export declare function diffCellAddressForGridTree(col: number, row: number, oldCellIds: number[], newCellIds: number[], oldRowHeaderCellPositons: CellAddress[], layout: PivotHeaderLayoutMap): {
16
+ addCellPositionsRowDirection: {
17
+ col: number;
18
+ row: number;
19
+ }[];
20
+ removeCellPositionsRowDirection: CellAddress[];
21
+ updateCellPositionsRowDirection: {
22
+ col: never;
23
+ row: number;
24
+ }[];
25
+ addCellPositionsColumnDirection: {
26
+ col: number;
27
+ row: number;
28
+ }[];
29
+ removeCellPositionsColumnDirection: {
30
+ col: number;
31
+ row: number;
32
+ }[];
33
+ };
34
+ export declare function diffCellAddressForGridTreeOnColumn(col: number, row: number, oldCellIds: number[], newCellIds: number[], oldRowHeaderCellPositons: CellAddress[], layout: PivotHeaderLayoutMap): {
35
+ addCellPositionsColumnDirection: {
36
+ col: number;
37
+ row: number;
38
+ }[];
39
+ removeCellPositionsColumnDirection: CellAddress[];
40
+ updateCellPositionsColumnDirection: {
41
+ col: never;
42
+ row: number;
43
+ }[];
44
+ addCellPositionsRowDirection: {
45
+ col: number;
46
+ row: number;
47
+ }[];
48
+ removeCellPositionsRowDirection: {
49
+ col: number;
50
+ row: number;
51
+ }[];
52
+ };
14
53
  export declare function calculateArrayDiff(originalArray: (number | number[])[], targetArray: (number | number[])[], startIndex: number): {
15
54
  add: number[];
16
55
  remove: number[];
17
56
  };
57
+ export declare function callUpdateRowOnScenegraph(result: {
58
+ addCellPositionsRowDirection?: CellAddress[];
59
+ removeCellPositionsRowDirection?: CellAddress[];
60
+ updateCellPositionsRowDirection?: CellAddress[];
61
+ addCellPositionsColumnDirection?: CellAddress[];
62
+ removeCellPositionsColumnDirection?: CellAddress[];
63
+ updateCellPositionsColumnDirection?: CellAddress[];
64
+ }, recalculateColWidths: boolean, newFrozenRowCount: number, oldFrozenRowCount: number, scenegraph: Scenegraph): void;
65
+ export declare function callUpdateColOnScenegraph(result: {
66
+ addCellPositionsRowDirection?: CellAddress[];
67
+ removeCellPositionsRowDirection?: CellAddress[];
68
+ updateCellPositionsRowDirection?: CellAddress[];
69
+ addCellPositionsColumnDirection?: CellAddress[];
70
+ removeCellPositionsColumnDirection?: CellAddress[];
71
+ updateCellPositionsColumnDirection?: CellAddress[];
72
+ }, newFrozenColCount: number, oldFrozenColCount: number, scenegraph: Scenegraph): void;
@@ -1,22 +1,86 @@
1
1
  export function diffCellAddress(col, row, oldCellIds, newCellIds, oldRowHeaderCellPositons, layout) {
2
- const columnHeaderStart = layout.columnHeaderLevelCount, addCellPositions = [], removeCellPositions = [];
3
- for (let i = 0; i < oldCellIds.length; i++) newCellIds.includes(oldCellIds[i]) || removeCellPositions.push(oldRowHeaderCellPositons[i]);
2
+ const columnHeaderStart = layout.columnHeaderLevelCount, addCellPositionsRowDirection = [], removeCellPositionsRowDirection = [];
3
+ for (let i = 0; i < oldCellIds.length; i++) newCellIds.includes(oldCellIds[i]) || removeCellPositionsRowDirection.push(oldRowHeaderCellPositons[i]);
4
4
  for (let i = 0; i < newCellIds.length; i++) if (!oldCellIds.includes(newCellIds[i])) {
5
5
  const newCellAddr = {
6
6
  col: col,
7
7
  row: columnHeaderStart + i
8
8
  };
9
- addCellPositions.push(newCellAddr);
9
+ addCellPositionsRowDirection.push(newCellAddr);
10
10
  }
11
11
  let parentId = layout.getParentCellId(col, row), parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);
12
- const updateCellPositions = [];
13
- for (parentCellAddress && updateCellPositions.push(parentCellAddress); parentId; ) parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row),
12
+ const updateCellPositionsRowDirection = [];
13
+ for (parentCellAddress && updateCellPositionsRowDirection.push(parentCellAddress); parentId; ) parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row),
14
14
  parentId && (parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId),
15
- updateCellPositions.push(parentCellAddress));
15
+ updateCellPositionsRowDirection.push(parentCellAddress));
16
16
  return {
17
- addCellPositions: addCellPositions,
18
- removeCellPositions: removeCellPositions,
19
- updateCellPositions: updateCellPositions
17
+ addCellPositionsRowDirection: addCellPositionsRowDirection,
18
+ removeCellPositionsRowDirection: removeCellPositionsRowDirection,
19
+ updateCellPositionsRowDirection: updateCellPositionsRowDirection
20
+ };
21
+ }
22
+
23
+ export function diffCellAddressForGridTree(col, row, oldCellIds, newCellIds, oldRowHeaderCellPositons, layout) {
24
+ const columnHeaderStart = layout.columnHeaderLevelCount, addCellPositionsRowDirection = [], removeCellPositionsRowDirection = [];
25
+ for (let i = 0; i < oldCellIds.length; i++) newCellIds.includes(oldCellIds[i]) || removeCellPositionsRowDirection.push(oldRowHeaderCellPositons[i]);
26
+ for (let i = 0; i < newCellIds.length; i++) if (!oldCellIds.includes(newCellIds[i])) {
27
+ const newCellAddr = {
28
+ col: col,
29
+ row: columnHeaderStart + i
30
+ };
31
+ addCellPositionsRowDirection.push(newCellAddr);
32
+ }
33
+ let parentId = layout.getParentCellId(col, row), parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);
34
+ const updateCellPositionsRowDirection = [];
35
+ for (parentCellAddress && updateCellPositionsRowDirection.push(parentCellAddress); parentId; ) parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row),
36
+ parentId && (parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId),
37
+ updateCellPositionsRowDirection.push(parentCellAddress));
38
+ const addCellPositionsColumnDirection = [], removeCellPositionsColumnDirection = [];
39
+ if ("grid-tree" === layout.rowHierarchyType && "column" === layout.cornerSetting.titleOnDimension && layout.rowHeaderLevelCount !== layout._cornerHeaderCellIds[0].length) if (layout.rowHeaderLevelCount > layout._cornerHeaderCellIds[0].length) for (let i = layout._cornerHeaderCellIds[0].length; i < layout.rowHeaderLevelCount; i++) addCellPositionsColumnDirection.push({
40
+ col: i,
41
+ row: row
42
+ }); else for (let i = layout.rowHeaderLevelCount; i < layout._cornerHeaderCellIds[0].length; i++) removeCellPositionsColumnDirection.push({
43
+ col: i,
44
+ row: row
45
+ });
46
+ return {
47
+ addCellPositionsRowDirection: addCellPositionsRowDirection,
48
+ removeCellPositionsRowDirection: removeCellPositionsRowDirection,
49
+ updateCellPositionsRowDirection: updateCellPositionsRowDirection,
50
+ addCellPositionsColumnDirection: addCellPositionsColumnDirection,
51
+ removeCellPositionsColumnDirection: removeCellPositionsColumnDirection
52
+ };
53
+ }
54
+
55
+ export function diffCellAddressForGridTreeOnColumn(col, row, oldCellIds, newCellIds, oldRowHeaderCellPositons, layout) {
56
+ const rowHeaderStart = layout.rowHeaderLevelCount, addCellPositionsColumnDirection = [], removeCellPositionsColumnDirection = [];
57
+ for (let i = 0; i < oldCellIds.length; i++) newCellIds.includes(oldCellIds[i]) || removeCellPositionsColumnDirection.push(oldRowHeaderCellPositons[i]);
58
+ for (let i = 0; i < newCellIds.length; i++) if (!oldCellIds.includes(newCellIds[i])) {
59
+ const newCellAddr = {
60
+ col: rowHeaderStart + i,
61
+ row: row
62
+ };
63
+ addCellPositionsColumnDirection.push(newCellAddr);
64
+ }
65
+ let parentId = layout.getParentCellId(col, row), parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);
66
+ const updateCellPositionsColumnDirection = [];
67
+ for (parentCellAddress && updateCellPositionsColumnDirection.push(parentCellAddress); parentCellAddress && parentId; ) parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row),
68
+ parentId && (parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId),
69
+ updateCellPositionsColumnDirection.push(parentCellAddress));
70
+ const addCellPositionsRowDirection = [], removeCellPositionsRowDirection = [];
71
+ if ("grid-tree" === layout.columnHierarchyType && "row" === layout.cornerSetting.titleOnDimension && layout.columnHeaderLevelCount !== layout._cornerHeaderCellIds.length) if (layout.columnHeaderLevelCount > layout._cornerHeaderCellIds.length) for (let i = layout._cornerHeaderCellIds.length; i < layout.columnHeaderLevelCount; i++) addCellPositionsRowDirection.push({
72
+ col: col,
73
+ row: i
74
+ }); else for (let i = layout.columnHeaderLevelCount; i < layout._cornerHeaderCellIds.length; i++) removeCellPositionsRowDirection.push({
75
+ col: col,
76
+ row: i
77
+ });
78
+ return {
79
+ addCellPositionsColumnDirection: addCellPositionsColumnDirection,
80
+ removeCellPositionsColumnDirection: removeCellPositionsColumnDirection,
81
+ updateCellPositionsColumnDirection: updateCellPositionsColumnDirection,
82
+ addCellPositionsRowDirection: addCellPositionsRowDirection,
83
+ removeCellPositionsRowDirection: removeCellPositionsRowDirection
20
84
  };
21
85
  }
22
86
 
@@ -81,4 +145,16 @@ function isEqual(arr1, arr2) {
81
145
  for (let i = 0; i < arr1.length; i++) if (arr1[i] !== arr2[i]) return !1;
82
146
  return !0;
83
147
  }
148
+
149
+ export function callUpdateRowOnScenegraph(result, recalculateColWidths, newFrozenRowCount, oldFrozenRowCount, scenegraph) {
150
+ var _a, _b, _c;
151
+ ((null === (_a = result.addCellPositionsRowDirection) || void 0 === _a ? void 0 : _a.length) || (null === (_b = result.removeCellPositionsRowDirection) || void 0 === _b ? void 0 : _b.length) || (null === (_c = result.updateCellPositionsRowDirection) || void 0 === _c ? void 0 : _c.length)) && scenegraph.updateRow(result.removeCellPositionsRowDirection, result.addCellPositionsRowDirection.map((item => (item.row += newFrozenRowCount - oldFrozenRowCount,
152
+ item))), result.updateCellPositionsRowDirection, recalculateColWidths);
153
+ }
154
+
155
+ export function callUpdateColOnScenegraph(result, newFrozenColCount, oldFrozenColCount, scenegraph) {
156
+ var _a, _b, _c;
157
+ ((null === (_a = result.addCellPositionsColumnDirection) || void 0 === _a ? void 0 : _a.length) || (null === (_b = result.removeCellPositionsColumnDirection) || void 0 === _b ? void 0 : _b.length) || (null === (_c = result.updateCellPositionsColumnDirection) || void 0 === _c ? void 0 : _c.length)) && scenegraph.updateCol(result.removeCellPositionsColumnDirection, result.addCellPositionsColumnDirection.map((item => (item.col += newFrozenColCount - oldFrozenColCount,
158
+ item))), result.updateCellPositionsColumnDirection);
159
+ }
84
160
  //# sourceMappingURL=diff-cell.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/diff-cell.ts"],"names":[],"mappings":"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","file":"diff-cell.js","sourcesContent":["import type { PivotHeaderLayoutMap } from '../layout/pivot-header-layout';\nimport type { CellAddress } from '../ts-types';\nimport type { LayoutObjectId } from '../ts-types/base-table';\n\nexport function diffCellAddress(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n layout: PivotHeaderLayoutMap\n) {\n const columnHeaderStart = layout.columnHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositions = [];\n const removeCellPositions = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositions.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col, row: columnHeaderStart + i }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositions.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositions = [];\n parentCellAddress && updateCellPositions.push(parentCellAddress);\n while (parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositions.push(parentCellAddress);\n }\n }\n return {\n addCellPositions,\n removeCellPositions,\n updateCellPositions\n };\n}\n\n// find diff between two arrays\nfunction diffCellIndices(oldIndexedData: (number | number[])[], currentIndexedData: (number | number[])[]) {\n const add = [];\n const remove = [];\n // find removed indices\n for (let i = 0; i < oldIndexedData.length; i++) {\n let removed = true;\n for (let j = 0; j < currentIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[i], currentIndexedData[j])) {\n removed = false;\n break;\n }\n }\n if (removed) {\n remove.push(i);\n }\n }\n\n // find added indices\n for (let i = 0; i < currentIndexedData.length; i++) {\n let added = true;\n for (let j = 0; j < oldIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[j], currentIndexedData[i])) {\n added = false;\n break;\n }\n }\n if (added) {\n add.push(i);\n }\n }\n return { add, remove };\n}\n\nfunction checkIndex(oldIndex: number | number[], newIndex: number | number[]): boolean {\n if (typeof oldIndex !== typeof newIndex) {\n return false;\n }\n if (typeof oldIndex === 'number' && typeof newIndex === 'number' && oldIndex !== newIndex) {\n return false;\n }\n if ((oldIndex as number[]).length !== (newIndex as number[]).length) {\n return false;\n }\n for (let i = 0; i < (oldIndex as number[]).length; i++) {\n if (oldIndex[i] !== newIndex[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport function calculateArrayDiff(\n originalArray: (number | number[])[],\n targetArray: (number | number[])[],\n startIndex: number\n) {\n const add = [];\n const remove = [];\n\n const originalMap = new Map();\n for (let i = 0; i < originalArray.length; i++) {\n const element = originalArray[i];\n const key = JSON.stringify(element);\n if (originalMap.has(key)) {\n originalMap.get(key).push(i);\n } else {\n originalMap.set(key, [i]);\n }\n }\n\n for (let i = 0; i < targetArray.length; i++) {\n const element = targetArray[i];\n const key = JSON.stringify(element);\n if (!originalMap.has(key)) {\n add.push(i + startIndex);\n } else {\n const indices = originalMap.get(key);\n indices.shift(); // Remove the first index\n if (indices.length === 0) {\n originalMap.delete(key);\n }\n }\n }\n\n for (let i = 0; i < originalArray.length; i++) {\n const element = originalArray[i];\n if (!targetArray.some(item => isEqual(item, element))) {\n remove.push(i + startIndex);\n }\n }\n\n return { add, remove };\n}\n\nfunction isEqual(arr1: any, arr2: any) {\n if (arr1 === arr2) {\n return true;\n }\n\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/diff-cell.ts"],"names":[],"mappings":"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","file":"diff-cell.js","sourcesContent":["import type { PivotHeaderLayoutMap } from '../layout/pivot-header-layout';\nimport type { Scenegraph } from '../scenegraph/scenegraph';\nimport type { CellAddress } from '../ts-types';\nimport type { LayoutObjectId } from '../ts-types/base-table';\n\nexport function diffCellAddress(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n layout: PivotHeaderLayoutMap\n) {\n const columnHeaderStart = layout.columnHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositionsRowDirection = [];\n const removeCellPositionsRowDirection = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositionsRowDirection.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col, row: columnHeaderStart + i }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositionsRowDirection.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositionsRowDirection = [];\n parentCellAddress && updateCellPositionsRowDirection.push(parentCellAddress);\n while (parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositionsRowDirection.push(parentCellAddress);\n }\n }\n return {\n addCellPositionsRowDirection,\n removeCellPositionsRowDirection,\n updateCellPositionsRowDirection\n };\n}\n\nexport function diffCellAddressForGridTree(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n\n layout: PivotHeaderLayoutMap\n) {\n const columnHeaderStart = layout.columnHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositionsRowDirection = [];\n const removeCellPositionsRowDirection = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositionsRowDirection.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col, row: columnHeaderStart + i }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositionsRowDirection.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositionsRowDirection = [];\n parentCellAddress && updateCellPositionsRowDirection.push(parentCellAddress);\n while (parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositionsRowDirection.push(parentCellAddress);\n }\n }\n\n const addCellPositionsColumnDirection = [];\n // const updateCellPositionsColumnDirection = [];\n const removeCellPositionsColumnDirection = [];\n if (\n layout.rowHierarchyType === 'grid-tree' &&\n layout.cornerSetting.titleOnDimension === 'column' &&\n layout.rowHeaderLevelCount !== layout._cornerHeaderCellIds[0].length // 表头层级数发生了变化 需要整体做更新_cornerHeaderCellIds是旧值 rowHeaderLevelCount是新值\n ) {\n if (layout.rowHeaderLevelCount > layout._cornerHeaderCellIds[0].length) {\n for (let i = layout._cornerHeaderCellIds[0].length; i < layout.rowHeaderLevelCount; i++) {\n addCellPositionsColumnDirection.push({ col: i, row });\n }\n } else {\n for (let i = layout.rowHeaderLevelCount; i < layout._cornerHeaderCellIds[0].length; i++) {\n // if (layout.hideIndicatorName === false && layout.indicatorsAsCol === false) {\n // removeCellPositionsColumnDirection.push({ col: i, row });\n // updateCellPositionsColumnDirection.push({ col: i - 1, row });\n // } else {\n removeCellPositionsColumnDirection.push({ col: i, row });\n // }\n }\n }\n }\n\n return {\n addCellPositionsRowDirection,\n removeCellPositionsRowDirection,\n updateCellPositionsRowDirection,\n addCellPositionsColumnDirection,\n removeCellPositionsColumnDirection\n // updateCellPositionsColumnDirection\n };\n}\n\nexport function diffCellAddressForGridTreeOnColumn(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n\n layout: PivotHeaderLayoutMap\n) {\n const rowHeaderStart = layout.rowHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositionsColumnDirection = [];\n const removeCellPositionsColumnDirection = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositionsColumnDirection.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col: rowHeaderStart + i, row }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositionsColumnDirection.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositionsColumnDirection = [];\n parentCellAddress && updateCellPositionsColumnDirection.push(parentCellAddress);\n while (parentCellAddress && parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositionsColumnDirection.push(parentCellAddress);\n }\n }\n\n const addCellPositionsRowDirection = [];\n // const updateCellPositionsRowDirection = [];\n const removeCellPositionsRowDirection = [];\n if (\n layout.columnHierarchyType === 'grid-tree' &&\n layout.cornerSetting.titleOnDimension === 'row' &&\n layout.columnHeaderLevelCount !== layout._cornerHeaderCellIds.length // 表头层级数发生了变化 需要整体做更新_cornerHeaderCellIds是旧值 rowHeaderLevelCount是新值\n ) {\n if (layout.columnHeaderLevelCount > layout._cornerHeaderCellIds.length) {\n for (let i = layout._cornerHeaderCellIds.length; i < layout.columnHeaderLevelCount; i++) {\n addCellPositionsRowDirection.push({ col, row: i });\n }\n } else {\n for (let i = layout.columnHeaderLevelCount; i < layout._cornerHeaderCellIds.length; i++) {\n // if (layout.hideIndicatorName && layout.indicatorsAsCol) {\n // removeCellPositionsRowDirection.push({ col, row: i });\n // updateCellPositionsRowDirection.push({ col, row: i - 1 });\n // } else {\n removeCellPositionsRowDirection.push({ col, row: i });\n // }\n }\n }\n }\n return {\n addCellPositionsColumnDirection,\n removeCellPositionsColumnDirection,\n updateCellPositionsColumnDirection,\n addCellPositionsRowDirection,\n // updateCellPositionsRowDirection,\n removeCellPositionsRowDirection\n };\n}\n\n// find diff between two arrays\nfunction diffCellIndices(oldIndexedData: (number | number[])[], currentIndexedData: (number | number[])[]) {\n const add = [];\n const remove = [];\n // find removed indices\n for (let i = 0; i < oldIndexedData.length; i++) {\n let removed = true;\n for (let j = 0; j < currentIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[i], currentIndexedData[j])) {\n removed = false;\n break;\n }\n }\n if (removed) {\n remove.push(i);\n }\n }\n\n // find added indices\n for (let i = 0; i < currentIndexedData.length; i++) {\n let added = true;\n for (let j = 0; j < oldIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[j], currentIndexedData[i])) {\n added = false;\n break;\n }\n }\n if (added) {\n add.push(i);\n }\n }\n return { add, remove };\n}\n\nfunction checkIndex(oldIndex: number | number[], newIndex: number | number[]): boolean {\n if (typeof oldIndex !== typeof newIndex) {\n return false;\n }\n if (typeof oldIndex === 'number' && typeof newIndex === 'number' && oldIndex !== newIndex) {\n return false;\n }\n if ((oldIndex as number[]).length !== (newIndex as number[]).length) {\n return false;\n }\n for (let i = 0; i < (oldIndex as number[]).length; i++) {\n if (oldIndex[i] !== newIndex[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport function calculateArrayDiff(\n originalArray: (number | number[])[],\n targetArray: (number | number[])[],\n startIndex: number\n) {\n const add = [];\n const remove = [];\n\n const originalMap = new Map();\n for (let i = 0; i < originalArray.length; i++) {\n const element = originalArray[i];\n const key = JSON.stringify(element);\n if (originalMap.has(key)) {\n originalMap.get(key).push(i);\n } else {\n originalMap.set(key, [i]);\n }\n }\n\n for (let i = 0; i < targetArray.length; i++) {\n const element = targetArray[i];\n const key = JSON.stringify(element);\n if (!originalMap.has(key)) {\n add.push(i + startIndex);\n } else {\n const indices = originalMap.get(key);\n indices.shift(); // Remove the first index\n if (indices.length === 0) {\n originalMap.delete(key);\n }\n }\n }\n\n for (let i = 0; i < originalArray.length; i++) {\n const element = originalArray[i];\n if (!targetArray.some(item => isEqual(item, element))) {\n remove.push(i + startIndex);\n }\n }\n\n return { add, remove };\n}\n\nfunction isEqual(arr1: any, arr2: any) {\n if (arr1 === arr2) {\n return true;\n }\n\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function callUpdateRowOnScenegraph(\n result: {\n addCellPositionsRowDirection?: CellAddress[];\n removeCellPositionsRowDirection?: CellAddress[];\n updateCellPositionsRowDirection?: CellAddress[];\n addCellPositionsColumnDirection?: CellAddress[];\n removeCellPositionsColumnDirection?: CellAddress[];\n updateCellPositionsColumnDirection?: CellAddress[];\n },\n recalculateColWidths: boolean,\n newFrozenRowCount: number,\n oldFrozenRowCount: number,\n scenegraph: Scenegraph\n) {\n if (\n result.addCellPositionsRowDirection?.length ||\n result.removeCellPositionsRowDirection?.length ||\n result.updateCellPositionsRowDirection?.length\n ) {\n scenegraph.updateRow(\n result.removeCellPositionsRowDirection,\n result.addCellPositionsRowDirection.map(item => {\n item.row += newFrozenRowCount - oldFrozenRowCount;\n return item;\n }),\n result.updateCellPositionsRowDirection,\n recalculateColWidths\n );\n }\n}\n\nexport function callUpdateColOnScenegraph(\n result: {\n addCellPositionsRowDirection?: CellAddress[];\n removeCellPositionsRowDirection?: CellAddress[];\n updateCellPositionsRowDirection?: CellAddress[];\n addCellPositionsColumnDirection?: CellAddress[];\n removeCellPositionsColumnDirection?: CellAddress[];\n updateCellPositionsColumnDirection?: CellAddress[];\n },\n newFrozenColCount: number,\n oldFrozenColCount: number,\n scenegraph: Scenegraph\n) {\n if (\n result.addCellPositionsColumnDirection?.length ||\n result.removeCellPositionsColumnDirection?.length ||\n result.updateCellPositionsColumnDirection?.length\n ) {\n scenegraph.updateCol(\n result.removeCellPositionsColumnDirection,\n result.addCellPositionsColumnDirection.map(item => {\n item.col += newFrozenColCount - oldFrozenColCount;\n return item;\n }),\n result.updateCellPositionsColumnDirection\n );\n }\n}\n"]}
@@ -25,7 +25,7 @@ export function createDataset(options) {
25
25
  dataConfig.collectValuesBy = _generateCollectValuesConfig(options, columnKeys, rowKeys),
26
26
  dataConfig.aggregationRules = _generateAggregationRules(options);
27
27
  return {
28
- dataset: new Dataset(dataConfig, rowKeys, columnKeys, indicatorKeys, options.indicators, null === (_l = options.indicatorsAsCol) || void 0 === _l || _l, options.records, void 0, columnTree || options.columnTree, rowTree || options.rowTree, !0),
28
+ dataset: new Dataset(dataConfig, rowKeys, columnKeys, indicatorKeys, options.indicators, null === (_l = options.indicatorsAsCol) || void 0 === _l || _l, options.records, void 0, void 0, columnTree || options.columnTree, rowTree || options.rowTree, !0),
29
29
  columnDimensionTree: columnDimensionTree,
30
30
  rowDimensionTree: rowDimensionTree,
31
31
  layoutNodeId: layoutNodeId
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/get-data-path/create-dataset.ts"],"names":[],"mappings":"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","file":"create-dataset.js","sourcesContent":["import { Dataset } from '../../dataset/dataset';\nimport { supplementIndicatorNodesForCustomTree } from '../../layout/layout-helper';\nimport type { ITreeLayoutHeadNode } from '../../layout/tree-helper';\nimport { DimensionTree } from '../../layout/tree-helper';\nimport type {\n AggregationRule,\n AggregationRules,\n CollectValueBy,\n IIndicator,\n PivotChartConstructorOptions,\n IPivotChartDataConfig\n} from '../../ts-types';\nimport { AggregationType } from '../../ts-types';\nimport type { IChartColumnIndicator } from '../../ts-types/pivot-table/indicator/chart-indicator';\n\nexport function createDataset(options: PivotChartConstructorOptions) {\n const layoutNodeId = { seqId: 0 };\n const dataConfig: IPivotChartDataConfig = { isPivotChart: true };\n let columnDimensionTree;\n let rowDimensionTree;\n let columnTree;\n let rowTree;\n if (options.columnTree) {\n if (options.indicatorsAsCol !== false) {\n columnTree = supplementIndicatorNodesForCustomTree(options.columnTree, options.indicators);\n }\n columnDimensionTree = new DimensionTree((options.columnTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n if (options.rowTree) {\n if (options.indicatorsAsCol === false) {\n rowTree = supplementIndicatorNodesForCustomTree(options.rowTree, options.indicators);\n }\n rowDimensionTree = new DimensionTree((options.rowTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n const rowKeys = rowDimensionTree.dimensionKeys?.count\n ? rowDimensionTree.dimensionKeys.valueArr()\n : options.rows?.reduce((keys, 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, 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, indicatorObj) => {\n if (typeof indicatorObj === 'string') {\n keys.push(indicatorObj);\n } else {\n keys.push(indicatorObj.indicatorKey);\n }\n return keys;\n }, []) ?? [];\n\n dataConfig.collectValuesBy = _generateCollectValuesConfig(options, columnKeys, rowKeys);\n dataConfig.aggregationRules = _generateAggregationRules(options);\n\n const dataset = new Dataset(\n dataConfig,\n // null,\n rowKeys,\n columnKeys,\n indicatorKeys,\n options.indicators,\n options.indicatorsAsCol ?? true,\n options.records,\n undefined,\n columnTree || options.columnTree,\n rowTree || options.rowTree,\n true\n );\n\n return { dataset, columnDimensionTree, rowDimensionTree, layoutNodeId };\n}\n\nfunction _generateCollectValuesConfig(\n option: PivotChartConstructorOptions,\n columnKeys: string[],\n rowKeys: string[]\n): Record<string, CollectValueBy> {\n const collectValuesBy: Record<string, CollectValueBy> = {};\n\n for (let i = 0, len = option.indicators?.length; i < len; i++) {\n if (typeof option.indicators[i] !== 'string' && (option.indicators[i] as IChartColumnIndicator).chartSpec) {\n if (option.indicatorsAsCol === false) {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: rowKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n columnKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.xField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const xField = typeof chartSeries.xField === 'string' ? chartSeries.xField : chartSeries.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type: chartSeries.direction !== 'horizontal' ? 'xField' : undefined,\n range: chartSeries.direction === 'horizontal',\n sortBy:\n chartSeries.direction !== 'horizontal'\n ? chartSeries?.data?.fields?.[xField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n\n const yField = chartSeries.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: chartSeries.direction !== 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && columnKeys.concat(chartSeries?.xField), // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n sortBy:\n chartSeries.direction === 'horizontal'\n ? chartSeries?.data?.fields?.[yField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n });\n } else {\n const xField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.xField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.xField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal' ? 'xField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal',\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const yField = (indicatorDefine as IChartColumnIndicator).chartSpec.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction !== 'horizontal', // direction默认为'vertical'\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false &&\n columnKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.xField), // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n }\n } else {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: columnKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n rowKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.yField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const yField = typeof chartSeries.yField === 'string' ? chartSeries.yField : chartSeries.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type: chartSeries.direction === 'horizontal' ? 'yField' : undefined,\n range: chartSeries.direction !== 'horizontal',\n sortBy:\n chartSeries.direction === 'horizontal'\n ? chartSeries?.data?.fields?.[yField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n\n const xField = chartSeries.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: chartSeries.direction === 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && rowKeys.concat(chartSeries?.yField),\n sortBy:\n chartSeries.direction !== 'horizontal'\n ? chartSeries?.data?.fields?.[xField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n });\n } else {\n const yField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.yField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.yField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal' ? 'yField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal',\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const xField = (indicatorDefine as IChartColumnIndicator).chartSpec.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction === 'horizontal', // direction默认为'vertical'\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false &&\n rowKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.yField),\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n }\n }\n }\n }\n\n return collectValuesBy;\n}\n\nfunction _generateAggregationRules(options: PivotChartConstructorOptions) {\n const aggregationRules: AggregationRules = [];\n // indicatorFromChartSpec = true;\n options.indicators?.forEach((indicator: IIndicator | string) => {\n if (typeof indicator === 'string') {\n aggregationRules.push({\n indicatorKey: indicator, //field转为指标key\n field: indicator, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n } as AggregationRule<AggregationType.RECORD>);\n } else {\n if ((indicator as IChartColumnIndicator).chartSpec?.series) {\n // 如果chartSpec配置了组合图 series 则需要考虑 series中存在的多个指标\n const fields: string[] = [];\n (indicator as IChartColumnIndicator).chartSpec?.series.forEach((seriesSpec: any) => {\n const seriesField = options.indicatorsAsCol === false ? seriesSpec.yField : seriesSpec.xField;\n if (fields.indexOf(seriesField) === -1) {\n fields.push(seriesField);\n }\n });\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: fields, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n } else {\n const field =\n options.indicatorsAsCol === false\n ? (indicator as IChartColumnIndicator).chartSpec.yField\n : (indicator as IChartColumnIndicator).chartSpec.xField;\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: field ?? indicator.indicatorKey, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n }\n }\n });\n\n return aggregationRules;\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/get-data-path/create-dataset.ts"],"names":[],"mappings":"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","file":"create-dataset.js","sourcesContent":["import { Dataset } from '../../dataset/dataset';\nimport { supplementIndicatorNodesForCustomTree } from '../../layout/layout-helper';\nimport type { ITreeLayoutHeadNode } from '../../layout/tree-helper';\nimport { DimensionTree } from '../../layout/tree-helper';\nimport type {\n AggregationRule,\n AggregationRules,\n CollectValueBy,\n IIndicator,\n PivotChartConstructorOptions,\n IPivotChartDataConfig\n} from '../../ts-types';\nimport { AggregationType } from '../../ts-types';\nimport type { IChartColumnIndicator } from '../../ts-types/pivot-table/indicator/chart-indicator';\n\nexport function createDataset(options: PivotChartConstructorOptions) {\n const layoutNodeId = { seqId: 0 };\n const dataConfig: IPivotChartDataConfig = { isPivotChart: true };\n let columnDimensionTree;\n let rowDimensionTree;\n let columnTree;\n let rowTree;\n if (options.columnTree) {\n if (options.indicatorsAsCol !== false) {\n columnTree = supplementIndicatorNodesForCustomTree(options.columnTree, options.indicators);\n }\n columnDimensionTree = new DimensionTree((options.columnTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n if (options.rowTree) {\n if (options.indicatorsAsCol === false) {\n rowTree = supplementIndicatorNodesForCustomTree(options.rowTree, options.indicators);\n }\n rowDimensionTree = new DimensionTree((options.rowTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n const rowKeys = rowDimensionTree.dimensionKeys?.count\n ? rowDimensionTree.dimensionKeys.valueArr()\n : options.rows?.reduce((keys, 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, 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, indicatorObj) => {\n if (typeof indicatorObj === 'string') {\n keys.push(indicatorObj);\n } else {\n keys.push(indicatorObj.indicatorKey);\n }\n return keys;\n }, []) ?? [];\n\n dataConfig.collectValuesBy = _generateCollectValuesConfig(options, columnKeys, rowKeys);\n dataConfig.aggregationRules = _generateAggregationRules(options);\n\n const dataset = new Dataset(\n dataConfig,\n // null,\n rowKeys,\n columnKeys,\n indicatorKeys,\n options.indicators,\n options.indicatorsAsCol ?? true,\n options.records,\n undefined,\n undefined,\n columnTree || options.columnTree,\n rowTree || options.rowTree,\n true\n );\n\n return { dataset, columnDimensionTree, rowDimensionTree, layoutNodeId };\n}\n\nfunction _generateCollectValuesConfig(\n option: PivotChartConstructorOptions,\n columnKeys: string[],\n rowKeys: string[]\n): Record<string, CollectValueBy> {\n const collectValuesBy: Record<string, CollectValueBy> = {};\n\n for (let i = 0, len = option.indicators?.length; i < len; i++) {\n if (typeof option.indicators[i] !== 'string' && (option.indicators[i] as IChartColumnIndicator).chartSpec) {\n if (option.indicatorsAsCol === false) {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: rowKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n columnKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.xField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const xField = typeof chartSeries.xField === 'string' ? chartSeries.xField : chartSeries.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type: chartSeries.direction !== 'horizontal' ? 'xField' : undefined,\n range: chartSeries.direction === 'horizontal',\n sortBy:\n chartSeries.direction !== 'horizontal'\n ? chartSeries?.data?.fields?.[xField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n\n const yField = chartSeries.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: chartSeries.direction !== 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && columnKeys.concat(chartSeries?.xField), // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n sortBy:\n chartSeries.direction === 'horizontal'\n ? chartSeries?.data?.fields?.[yField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n });\n } else {\n const xField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.xField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.xField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal' ? 'xField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal',\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const yField = (indicatorDefine as IChartColumnIndicator).chartSpec.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction !== 'horizontal', // direction默认为'vertical'\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false &&\n columnKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.xField), // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n }\n } else {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: columnKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n rowKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.yField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const yField = typeof chartSeries.yField === 'string' ? chartSeries.yField : chartSeries.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type: chartSeries.direction === 'horizontal' ? 'yField' : undefined,\n range: chartSeries.direction !== 'horizontal',\n sortBy:\n chartSeries.direction === 'horizontal'\n ? chartSeries?.data?.fields?.[yField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n\n const xField = chartSeries.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: chartSeries.direction === 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && rowKeys.concat(chartSeries?.yField),\n sortBy:\n chartSeries.direction !== 'horizontal'\n ? chartSeries?.data?.fields?.[xField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n });\n } else {\n const yField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.yField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.yField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal' ? 'yField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal',\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const xField = (indicatorDefine as IChartColumnIndicator).chartSpec.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction === 'horizontal', // direction默认为'vertical'\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false &&\n rowKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.yField),\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n }\n }\n }\n }\n\n return collectValuesBy;\n}\n\nfunction _generateAggregationRules(options: PivotChartConstructorOptions) {\n const aggregationRules: AggregationRules = [];\n // indicatorFromChartSpec = true;\n options.indicators?.forEach((indicator: IIndicator | string) => {\n if (typeof indicator === 'string') {\n aggregationRules.push({\n indicatorKey: indicator, //field转为指标key\n field: indicator, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n } as AggregationRule<AggregationType.RECORD>);\n } else {\n if ((indicator as IChartColumnIndicator).chartSpec?.series) {\n // 如果chartSpec配置了组合图 series 则需要考虑 series中存在的多个指标\n const fields: string[] = [];\n (indicator as IChartColumnIndicator).chartSpec?.series.forEach((seriesSpec: any) => {\n const seriesField = options.indicatorsAsCol === false ? seriesSpec.yField : seriesSpec.xField;\n if (fields.indexOf(seriesField) === -1) {\n fields.push(seriesField);\n }\n });\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: fields, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n } else {\n const field =\n options.indicatorsAsCol === false\n ? (indicator as IChartColumnIndicator).chartSpec.yField\n : (indicator as IChartColumnIndicator).chartSpec.xField;\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: field ?? indicator.indicatorKey, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n }\n }\n });\n\n return aggregationRules;\n}\n"]}
@@ -152,6 +152,8 @@ export interface IBaseTableProtected {
152
152
  rightFrozenBottomDomContainer?: HTMLElement;
153
153
  useOneRowHeightFillAll?: boolean;
154
154
  enableTreeNodeMerge?: boolean;
155
+ _oldRowCount?: number;
156
+ _oldColCount?: number;
155
157
  }
156
158
  export interface BaseTableConstructorOptions {
157
159
  frozenColCount?: number;
@@ -445,7 +447,6 @@ export interface BaseTableAPI {
445
447
  getMenuInfo: (col: number, row: number, type: string) => DropDownMenuEventInfo;
446
448
  getCellStyle: (col: number, row: number) => CellStyle;
447
449
  getHierarchyState: (col: number, row: number) => HierarchyState | null;
448
- _hasHierarchyTreeHeader: () => boolean;
449
450
  _canDragHeaderPosition: (col: number, row: number) => boolean;
450
451
  isHeader: (col: number, row: number) => boolean;
451
452
  isColumnHeader: (col: number, row: number) => boolean;