@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.
- package/cjs/PivotChart.d.ts +0 -1
- package/cjs/PivotChart.js +2 -5
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable.d.ts +2 -2
- package/cjs/PivotTable.js +41 -33
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/components/index.js +1 -1
- package/cjs/core/BaseTable.d.ts +1 -2
- package/cjs/core/BaseTable.js +2 -2
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/data/DataSource.d.ts +2 -2
- package/cjs/data/DataSource.js +4 -4
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/dataset/dataset-pivot-table.js +1 -2
- package/cjs/dataset/dataset.d.ts +3 -2
- package/cjs/dataset/dataset.js +13 -9
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/index.js +1 -2
- package/cjs/layout/layout-helper.js +10 -9
- package/cjs/layout/layout-helper.js.map +1 -1
- package/cjs/layout/pivot-header-layout.d.ts +33 -5
- package/cjs/layout/pivot-header-layout.js +137 -31
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/layout/tree-helper.d.ts +5 -4
- package/cjs/layout/tree-helper.js +105 -23
- package/cjs/layout/tree-helper.js.map +1 -1
- package/cjs/plugins/custom-cell-style.js +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.d.ts +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.js +5 -2
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js +8 -4
- package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/frozen.d.ts +1 -0
- package/cjs/scenegraph/layout/frozen.js +91 -2
- package/cjs/scenegraph/layout/frozen.js.map +1 -1
- package/cjs/scenegraph/layout/update-col.js +4 -1
- package/cjs/scenegraph/layout/update-col.js.map +1 -1
- package/cjs/scenegraph/layout/update-row.js +3 -2
- package/cjs/scenegraph/layout/update-row.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +5 -0
- package/cjs/scenegraph/scenegraph.js +18 -0
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/utils/get-hierarchy-offset.js +1 -1
- package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
- package/cjs/state/state.d.ts +2 -0
- package/cjs/state/state.js +7 -2
- package/cjs/state/state.js.map +1 -1
- package/cjs/tools/NumberMap.js +4 -2
- package/cjs/tools/NumberMap.js.map +1 -1
- package/cjs/tools/diff-cell.d.ts +58 -3
- package/cjs/tools/diff-cell.js +90 -11
- package/cjs/tools/diff-cell.js.map +1 -1
- package/cjs/tools/get-data-path/create-dataset.js +1 -1
- package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +2 -1
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/list-table/define/basic-define.d.ts +1 -1
- package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
- package/cjs/ts-types/list-table/layout-map/api.d.ts +4 -4
- package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
- package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +2 -2
- package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
- package/cjs/ts-types/pivot-table/indicator/basic-indicator.d.ts +1 -1
- package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +6 -3
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +759 -116
- package/dist/vtable.min.js +2 -2
- package/es/PivotChart.d.ts +0 -1
- package/es/PivotChart.js +2 -5
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable.d.ts +2 -2
- package/es/PivotTable.js +41 -33
- package/es/PivotTable.js.map +1 -1
- package/es/components/index.js +1 -1
- package/es/core/BaseTable.d.ts +1 -2
- package/es/core/BaseTable.js +2 -2
- package/es/core/BaseTable.js.map +1 -1
- package/es/data/DataSource.d.ts +2 -2
- package/es/data/DataSource.js +4 -4
- package/es/data/DataSource.js.map +1 -1
- package/es/dataset/dataset-pivot-table.js +1 -2
- package/es/dataset/dataset.d.ts +3 -2
- package/es/dataset/dataset.js +14 -10
- package/es/dataset/dataset.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/index.js +1 -2
- package/es/layout/layout-helper.js +10 -9
- package/es/layout/layout-helper.js.map +1 -1
- package/es/layout/pivot-header-layout.d.ts +33 -5
- package/es/layout/pivot-header-layout.js +138 -33
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/layout/tree-helper.d.ts +5 -4
- package/es/layout/tree-helper.js +102 -19
- package/es/layout/tree-helper.js.map +1 -1
- package/es/plugins/custom-cell-style.js +1 -1
- package/es/scenegraph/group-creater/progress/proxy.d.ts +1 -1
- package/es/scenegraph/group-creater/progress/proxy.js +5 -2
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js +8 -4
- package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
- package/es/scenegraph/layout/compute-col-width.js +1 -1
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/frozen.d.ts +1 -0
- package/es/scenegraph/layout/frozen.js +89 -0
- package/es/scenegraph/layout/frozen.js.map +1 -1
- package/es/scenegraph/layout/update-col.js +4 -1
- package/es/scenegraph/layout/update-col.js.map +1 -1
- package/es/scenegraph/layout/update-row.js +3 -2
- package/es/scenegraph/layout/update-row.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +5 -0
- package/es/scenegraph/scenegraph.js +16 -1
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/utils/get-hierarchy-offset.js +1 -1
- package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
- package/es/state/state.d.ts +2 -0
- package/es/state/state.js +7 -2
- package/es/state/state.js.map +1 -1
- package/es/tools/NumberMap.js +4 -2
- package/es/tools/NumberMap.js.map +1 -1
- package/es/tools/diff-cell.d.ts +58 -3
- package/es/tools/diff-cell.js +85 -9
- package/es/tools/diff-cell.js.map +1 -1
- package/es/tools/get-data-path/create-dataset.js +1 -1
- package/es/tools/get-data-path/create-dataset.js.map +1 -1
- package/es/ts-types/base-table.d.ts +2 -1
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/list-table/define/basic-define.d.ts +1 -1
- package/es/ts-types/list-table/define/basic-define.js.map +1 -1
- package/es/ts-types/list-table/layout-map/api.d.ts +4 -4
- package/es/ts-types/list-table/layout-map/api.js.map +1 -1
- package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +2 -2
- package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
- package/es/ts-types/pivot-table/indicator/basic-indicator.d.ts +1 -1
- package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +6 -3
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/vrender.js.map +1 -1
- 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"]}
|
package/es/tools/diff-cell.d.ts
CHANGED
|
@@ -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
|
-
|
|
5
|
+
addCellPositionsRowDirection: {
|
|
5
6
|
col: number;
|
|
6
7
|
row: number;
|
|
7
8
|
}[];
|
|
8
|
-
|
|
9
|
-
|
|
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;
|
package/es/tools/diff-cell.js
CHANGED
|
@@ -1,22 +1,86 @@
|
|
|
1
1
|
export function diffCellAddress(col, row, oldCellIds, newCellIds, oldRowHeaderCellPositons, layout) {
|
|
2
|
-
const columnHeaderStart = layout.columnHeaderLevelCount,
|
|
3
|
-
for (let i = 0; i < oldCellIds.length; i++) newCellIds.includes(oldCellIds[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
|
-
|
|
9
|
+
addCellPositionsRowDirection.push(newCellAddr);
|
|
10
10
|
}
|
|
11
11
|
let parentId = layout.getParentCellId(col, row), parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);
|
|
12
|
-
const
|
|
13
|
-
for (parentCellAddress &&
|
|
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
|
-
|
|
15
|
+
updateCellPositionsRowDirection.push(parentCellAddress));
|
|
16
16
|
return {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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;
|