@visactor/vtable 0.24.0 → 0.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/ListTable.js +7 -25
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.js +5 -17
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable.d.ts +4 -4
- package/cjs/PivotTable.js +32 -29
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +1 -0
- package/cjs/core/BaseTable.js +17 -6
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/dataset/flatDataToObject.d.ts +7 -0
- package/cjs/dataset/flatDataToObject.js +3 -0
- package/cjs/dataset/flatDataToObject.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/pivot-header-layout.js +8 -6
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/layout/row-height-map.js +3 -1
- package/cjs/layout/row-height-map.js.map +1 -1
- package/cjs/layout/simple-header-layout.js +17 -1
- package/cjs/layout/simple-header-layout.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/compute-row-height.js +1 -1
- package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
- package/cjs/scenegraph/scenegraph.js +1 -1
- package/cjs/themes/component.js +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +110 -97
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.js +7 -25
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.js +5 -17
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable.d.ts +4 -4
- package/es/PivotTable.js +31 -28
- package/es/PivotTable.js.map +1 -1
- package/es/core/BaseTable.d.ts +1 -0
- package/es/core/BaseTable.js +17 -6
- package/es/core/BaseTable.js.map +1 -1
- package/es/dataset/flatDataToObject.d.ts +7 -0
- package/es/dataset/flatDataToObject.js +3 -0
- package/es/dataset/flatDataToObject.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/pivot-header-layout.js +8 -6
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/layout/row-height-map.js +3 -1
- package/es/layout/row-height-map.js.map +1 -1
- package/es/layout/simple-header-layout.js +17 -1
- package/es/layout/simple-header-layout.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/compute-row-height.js +1 -1
- package/es/scenegraph/layout/compute-row-height.js.map +1 -1
- package/es/scenegraph/scenegraph.js +1 -1
- package/es/themes/component.js +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +2 -2
|
@@ -92,13 +92,14 @@ class NumberRangeMap {
|
|
|
92
92
|
}), 0));
|
|
93
93
|
}
|
|
94
94
|
dealDiffenence() {
|
|
95
|
-
for (const [sumPos
|
|
95
|
+
for (const [sumPos] of this.cumulativeSum) for (const [difPos, difference] of this.difference) if (sumPos >= difPos) {
|
|
96
96
|
const oldSum = this.cumulativeSum.get(sumPos);
|
|
97
97
|
this.cumulativeSum.set(sumPos, oldSum + difference);
|
|
98
98
|
}
|
|
99
99
|
this.difference.clear();
|
|
100
100
|
}
|
|
101
101
|
insert(position, value) {
|
|
102
|
+
for (let i = position; i <= this.getLastIndex(); i++) this.cumulativeSum.delete(i);
|
|
102
103
|
const lastIndex = this.getLastIndex() + 1;
|
|
103
104
|
this.adjustOrder(position, position + 1, lastIndex - position), (0, vutils_1.isValid)(value) && this.put(position, value);
|
|
104
105
|
}
|
|
@@ -111,6 +112,7 @@ class NumberRangeMap {
|
|
|
111
112
|
}
|
|
112
113
|
delete(position) {
|
|
113
114
|
if (!this.has(position)) return;
|
|
115
|
+
for (let i = position; i <= this.getLastIndex(); i++) this.cumulativeSum.delete(i);
|
|
114
116
|
const lastIndex = this.getLastIndex();
|
|
115
117
|
this.adjustOrder(position + 1, position, lastIndex - position), this.delLast();
|
|
116
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/layout/row-height-map.ts"],"names":[],"mappings":"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","file":"row-height-map.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../ts-types/base-table';\n\nexport class NumberRangeMap {\n data: Map<number, number>;\n cumulativeSum: Map<number, number>;\n difference: Map<number, number>;\n totalSum: number;\n table: BaseTableAPI;\n isUpdate = false;\n private _keys: number[] = [];\n private _sorted = false;\n\n constructor(table: BaseTableAPI) {\n this.data = new Map();\n this._keys.length = 0;\n this.cumulativeSum = new Map();\n this.difference = new Map();\n this.totalSum = 0;\n this.table = table;\n }\n\n get length() {\n return this.data.size;\n }\n\n clear() {\n this._keys = [];\n this.data.clear();\n this.cumulativeSum.clear();\n this.difference.clear();\n this.totalSum = 0;\n }\n\n clearRange() {\n this.cumulativeSum.clear();\n this.difference.clear();\n }\n\n add(position: number, value: number) {\n const defaultValue = this.table.getRowHeight(position);\n if (!this.data.has(position)) {\n this._keys.push(position);\n this._sorted = false;\n }\n this.data.set(position, value);\n this.totalSum += value;\n // this.updateCumulativeSum(position, value);\n this.updateDifference(position, value - defaultValue);\n }\n\n remove(position: number) {\n if (this.data.has(position)) {\n const value = this.data.get(position);\n this.data.delete(position);\n const index = this._keys.indexOf(position);\n if (index !== -1) {\n this._keys.splice(index, 1); // 使用 splice() 方法删除指定索引位置的元素\n }\n this.totalSum -= value;\n const defaultValue = this.table.getRowHeight(position);\n // this.updateCumulativeSum(position, -value);\n this.updateDifference(position, defaultValue - value);\n }\n }\n\n put(position: number, newValue: number) {\n if (this.data.has(position)) {\n const oldValue = this.data.get(position);\n this.data.set(position, newValue);\n const difference = newValue - oldValue;\n this.totalSum += difference;\n // this.updateCumulativeSum(position, difference);\n this.updateDifference(position, difference);\n } else {\n this.add(position, newValue);\n }\n }\n\n get(position: number) {\n return this.data.get(position);\n }\n\n has(position: number) {\n return this.data.has(position);\n }\n\n private _sort() {\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 }\n\n updateDifference(position: number, difference: number) {\n const oldDifference = this.difference.get(position) ?? 0;\n this.difference.set(position, oldDifference + difference);\n this.update();\n }\n\n getSumInRange(start: number, end: number) {\n return this.calculatePrefixSum(end) - this.calculatePrefixSum(start - 1);\n }\n\n updateCumulativeSum(position: number, difference: number) {\n // 更新累加和\n for (const [pos, sum] of this.cumulativeSum) {\n if (pos >= position) {\n this.cumulativeSum.set(pos, sum + difference);\n }\n }\n }\n\n calculatePrefixSum(position: number) {\n if (position < 0) {\n return 0;\n }\n if (this.cumulativeSum.has(position)) {\n let cache = this.cumulativeSum.get(position);\n for (const [pos, difference] of this.difference) {\n if (pos <= position) {\n cache += difference;\n }\n }\n return cache;\n }\n\n this.dealDiffenence();\n return this.getCumulativeSum(position);\n }\n\n getCumulativeSum(position: number) {\n let sum = 0;\n for (let i = position; i >= 0; i--) {\n if (this.cumulativeSum.has(i)) {\n sum += this.cumulativeSum.get(i);\n break;\n } else {\n sum += this.data.get(i) ?? this.table.getRowHeight(i);\n }\n // if (i === position && this.cumulativeSum.has(i + 1)) {\n // sum += this.cumulativeSum.get(i + 1) - (this.data.get(i + 1) ?? this.table.getRowHeight(i + 1));\n // break;\n // }\n }\n this.cumulativeSum.set(position, sum);\n return sum;\n }\n\n update() {\n if (this.isUpdate) {\n return;\n }\n this.isUpdate = true;\n setTimeout(() => {\n this.dealDiffenence();\n this.isUpdate = false;\n }, 0);\n }\n\n dealDiffenence() {\n for (const [sumPos, sum] of this.cumulativeSum) {\n for (const [difPos, difference] of this.difference) {\n if (sumPos >= difPos) {\n const oldSum = this.cumulativeSum.get(sumPos);\n this.cumulativeSum.set(sumPos, oldSum + difference);\n }\n }\n }\n\n this.difference.clear();\n }\n\n // add and reorder\n insert(position: number, value?: number) {\n const lastIndex = this.getLastIndex() + 1;\n this.adjustOrder(position, position + 1, lastIndex - position);\n if (isValid(value)) {\n this.put(position, value);\n }\n }\n\n getLastIndex() {\n this._sort();\n return this._keys[this._keys.length - 1];\n }\n\n delLast() {\n const lastIndex = this.getLastIndex();\n this.remove(lastIndex);\n }\n\n // del and reorder\n delete(position: number) {\n if (!this.has(position)) {\n return;\n }\n const lastIndex = this.getLastIndex();\n\n this.adjustOrder(position + 1, position, lastIndex - position);\n this.delLast();\n }\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 this.clearRange();\n this._sort();\n const { _keys: keys } = this;\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\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 < 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 < 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}\n\nfunction 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"]}
|
|
1
|
+
{"version":3,"sources":["../src/layout/row-height-map.ts"],"names":[],"mappings":"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","file":"row-height-map.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../ts-types/base-table';\n\nexport class NumberRangeMap {\n data: Map<number, number>;\n cumulativeSum: Map<number, number>;\n difference: Map<number, number>;\n totalSum: number;\n table: BaseTableAPI;\n isUpdate = false;\n private _keys: number[] = [];\n private _sorted = false;\n\n constructor(table: BaseTableAPI) {\n this.data = new Map();\n this._keys.length = 0;\n this.cumulativeSum = new Map();\n this.difference = new Map();\n this.totalSum = 0;\n this.table = table;\n }\n\n get length() {\n return this.data.size;\n }\n\n clear() {\n this._keys = [];\n this.data.clear();\n this.cumulativeSum.clear();\n this.difference.clear();\n this.totalSum = 0;\n }\n\n clearRange() {\n this.cumulativeSum.clear();\n this.difference.clear();\n }\n\n add(position: number, value: number) {\n const defaultValue = this.table.getRowHeight(position);\n if (!this.data.has(position)) {\n this._keys.push(position);\n this._sorted = false;\n }\n this.data.set(position, value);\n this.totalSum += value;\n // this.updateCumulativeSum(position, value);\n this.updateDifference(position, value - defaultValue);\n }\n\n remove(position: number) {\n if (this.data.has(position)) {\n const value = this.data.get(position);\n this.data.delete(position);\n const index = this._keys.indexOf(position);\n if (index !== -1) {\n this._keys.splice(index, 1); // 使用 splice() 方法删除指定索引位置的元素\n }\n this.totalSum -= value;\n const defaultValue = this.table.getRowHeight(position);\n // this.updateCumulativeSum(position, -value);\n this.updateDifference(position, defaultValue - value);\n }\n }\n\n put(position: number, newValue: number) {\n if (this.data.has(position)) {\n const oldValue = this.data.get(position);\n this.data.set(position, newValue);\n const difference = newValue - oldValue;\n this.totalSum += difference;\n // this.updateCumulativeSum(position, difference);\n this.updateDifference(position, difference);\n } else {\n this.add(position, newValue);\n }\n }\n\n get(position: number) {\n return this.data.get(position);\n }\n\n has(position: number) {\n return this.data.has(position);\n }\n\n private _sort() {\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 }\n\n updateDifference(position: number, difference: number) {\n const oldDifference = this.difference.get(position) ?? 0;\n this.difference.set(position, oldDifference + difference);\n this.update();\n }\n\n getSumInRange(start: number, end: number) {\n return this.calculatePrefixSum(end) - this.calculatePrefixSum(start - 1);\n }\n\n updateCumulativeSum(position: number, difference: number) {\n // 更新累加和\n for (const [pos, sum] of this.cumulativeSum) {\n if (pos >= position) {\n this.cumulativeSum.set(pos, sum + difference);\n }\n }\n }\n\n calculatePrefixSum(position: number) {\n if (position < 0) {\n return 0;\n }\n if (this.cumulativeSum.has(position)) {\n let cache = this.cumulativeSum.get(position);\n for (const [pos, difference] of this.difference) {\n if (pos <= position) {\n cache += difference;\n }\n }\n return cache;\n }\n\n this.dealDiffenence();\n return this.getCumulativeSum(position);\n }\n\n getCumulativeSum(position: number) {\n let sum = 0;\n for (let i = position; i >= 0; i--) {\n if (this.cumulativeSum.has(i)) {\n sum += this.cumulativeSum.get(i);\n break;\n } else {\n sum += this.data.get(i) ?? this.table.getRowHeight(i);\n }\n // if (i === position && this.cumulativeSum.has(i + 1)) {\n // sum += this.cumulativeSum.get(i + 1) - (this.data.get(i + 1) ?? this.table.getRowHeight(i + 1));\n // break;\n // }\n }\n this.cumulativeSum.set(position, sum);\n return sum;\n }\n\n update() {\n if (this.isUpdate) {\n return;\n }\n this.isUpdate = true;\n setTimeout(() => {\n this.dealDiffenence();\n this.isUpdate = false;\n }, 0);\n }\n\n dealDiffenence() {\n for (const [sumPos] of this.cumulativeSum) {\n for (const [difPos, difference] of this.difference) {\n if (sumPos >= difPos) {\n const oldSum = this.cumulativeSum.get(sumPos);\n this.cumulativeSum.set(sumPos, oldSum + difference);\n }\n }\n }\n\n this.difference.clear();\n }\n\n // add and reorder\n insert(position: number, value?: number) {\n // clear all sum cover position\n for (let i = position; i <= this.getLastIndex(); i++) {\n this.cumulativeSum.delete(i);\n }\n const lastIndex = this.getLastIndex() + 1;\n this.adjustOrder(position, position + 1, lastIndex - position);\n if (isValid(value)) {\n this.put(position, value);\n }\n }\n\n getLastIndex() {\n this._sort();\n return this._keys[this._keys.length - 1];\n }\n\n delLast() {\n const lastIndex = this.getLastIndex();\n this.remove(lastIndex);\n }\n\n // del and reorder\n delete(position: number) {\n if (!this.has(position)) {\n return;\n }\n\n // clear all sum cover position\n for (let i = position; i <= this.getLastIndex(); i++) {\n this.cumulativeSum.delete(i);\n }\n\n const lastIndex = this.getLastIndex();\n\n this.adjustOrder(position + 1, position, lastIndex - position);\n this.delLast();\n }\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 this.clearRange();\n this._sort();\n const { _keys: keys } = this;\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\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 < 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 < 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}\n\nfunction 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"]}
|
|
@@ -369,7 +369,23 @@ class SimpleHeaderLayoutMap {
|
|
|
369
369
|
return this._columns;
|
|
370
370
|
}
|
|
371
371
|
get columnWidths() {
|
|
372
|
-
|
|
372
|
+
if (this.leftRowSeriesNumberColumnCount) {
|
|
373
|
+
const widths = this.leftRowSeriesNumberColumn.map((item => ({
|
|
374
|
+
width: item.width,
|
|
375
|
+
minWidth: item.minWidth,
|
|
376
|
+
maxWidth: item.maxWidth
|
|
377
|
+
})));
|
|
378
|
+
return widths.push(...this._columns.map((item => ({
|
|
379
|
+
width: item.width,
|
|
380
|
+
minWidth: item.minWidth,
|
|
381
|
+
maxWidth: item.maxWidth
|
|
382
|
+
})))), widths;
|
|
383
|
+
}
|
|
384
|
+
return this._columns.map((item => ({
|
|
385
|
+
width: item.width,
|
|
386
|
+
minWidth: item.minWidth,
|
|
387
|
+
maxWidth: item.maxWidth
|
|
388
|
+
})));
|
|
373
389
|
}
|
|
374
390
|
getColumnWidthDefined(col) {
|
|
375
391
|
var _a;
|