@visactor/vtable 0.19.2-alpha.2 → 0.20.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/ListTable.d.ts +12 -2
- package/cjs/ListTable.js +81 -24
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.d.ts +2 -1
- package/cjs/PivotChart.js +5 -1
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable.d.ts +5 -2
- package/cjs/PivotTable.js +13 -5
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/body-helper/body-helper.js +1 -0
- package/cjs/body-helper/body-helper.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +2 -2
- package/cjs/core/BaseTable.js +22 -18
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/tableHelper.d.ts +2 -2
- package/cjs/core/tableHelper.js +4 -6
- package/cjs/core/tableHelper.js.map +1 -1
- package/cjs/data/CachedDataSource.d.ts +4 -3
- package/cjs/data/CachedDataSource.js +5 -4
- package/cjs/data/CachedDataSource.js.map +1 -1
- package/cjs/data/DataSource.d.ts +22 -3
- package/cjs/data/DataSource.js +93 -7
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/dataset/dataset-pivot-table.d.ts +3 -3
- package/cjs/dataset/dataset-pivot-table.js +1 -0
- package/cjs/dataset/dataset-pivot-table.js.map +1 -1
- package/cjs/dataset/dataset.d.ts +3 -3
- package/cjs/dataset/dataset.js +3 -0
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/dataset/statistics-helper.d.ts +24 -3
- package/cjs/dataset/statistics-helper.js +75 -9
- package/cjs/dataset/statistics-helper.js.map +1 -1
- package/cjs/edit/edit-manager.js +5 -4
- package/cjs/edit/edit-manager.js.map +1 -1
- package/cjs/event/listener/table-group.js +14 -4
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/event/media-click.js +2 -1
- package/cjs/event/scroll.js +0 -1
- package/cjs/event/sparkline-event.js +1 -1
- package/cjs/event/sparkline-event.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/chart-helper/get-chart-spec.d.ts +1 -0
- package/cjs/layout/chart-helper/get-chart-spec.js +34 -9
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/layout/layout-helper.d.ts +4 -63
- package/cjs/layout/layout-helper.js +25 -247
- package/cjs/layout/layout-helper.js.map +1 -1
- package/cjs/layout/pivot-header-layout.d.ts +6 -3
- package/cjs/layout/pivot-header-layout.js +26 -15
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/layout/row-height-map.js +2 -1
- package/cjs/layout/row-height-map.js.map +1 -1
- package/cjs/layout/simple-header-layout.d.ts +25 -2
- package/cjs/layout/simple-header-layout.js +130 -18
- package/cjs/layout/simple-header-layout.js.map +1 -1
- package/cjs/layout/tree-helper.d.ts +63 -0
- package/cjs/layout/tree-helper.js +259 -0
- package/cjs/layout/tree-helper.js.map +1 -0
- package/cjs/scenegraph/graphic/chart.d.ts +2 -1
- package/cjs/scenegraph/graphic/chart.js +21 -18
- package/cjs/scenegraph/graphic/chart.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +4 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render.js +2 -2
- package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +19 -8
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -1
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js +9 -5
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js +1 -1
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js +5 -5
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js +5 -2
- package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
- package/cjs/scenegraph/scenegraph.js +24 -11
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/style/frame-border.js +7 -4
- package/cjs/scenegraph/style/frame-border.js.map +1 -1
- package/cjs/state/hover/is-cell-hover.js +1 -1
- package/cjs/state/hover/is-cell-hover.js.map +1 -1
- package/cjs/state/sort/index.js +2 -5
- package/cjs/state/sort/index.js.map +1 -1
- package/cjs/state/state.d.ts +0 -1
- package/cjs/state/state.js +3 -4
- package/cjs/state/state.js.map +1 -1
- package/cjs/themes/theme.js +3 -0
- package/cjs/themes/theme.js.map +1 -1
- package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
- package/cjs/tools/isx.d.ts +1 -1
- package/cjs/tools/util.d.ts +1 -1
- package/cjs/ts-types/base-table.d.ts +6 -5
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/list-table/define/basic-define.d.ts +2 -0
- package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
- package/cjs/ts-types/list-table/layout-map/api.d.ts +5 -4
- package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
- package/cjs/ts-types/new-data-set.d.ts +27 -6
- package/cjs/ts-types/new-data-set.js +1 -1
- package/cjs/ts-types/new-data-set.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +17 -5
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/ts-types/theme.d.ts +1 -0
- package/cjs/ts-types/theme.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +1306 -544
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.d.ts +12 -2
- package/es/ListTable.js +81 -24
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.d.ts +2 -1
- package/es/PivotChart.js +5 -1
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable.d.ts +5 -2
- package/es/PivotTable.js +13 -5
- package/es/PivotTable.js.map +1 -1
- package/es/body-helper/body-helper.js +1 -0
- package/es/body-helper/body-helper.js.map +1 -1
- package/es/core/BaseTable.d.ts +2 -2
- package/es/core/BaseTable.js +22 -18
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/tableHelper.d.ts +2 -2
- package/es/core/tableHelper.js +4 -6
- package/es/core/tableHelper.js.map +1 -1
- package/es/data/CachedDataSource.d.ts +4 -3
- package/es/data/CachedDataSource.js +5 -4
- package/es/data/CachedDataSource.js.map +1 -1
- package/es/data/DataSource.d.ts +22 -3
- package/es/data/DataSource.js +91 -7
- package/es/data/DataSource.js.map +1 -1
- package/es/dataset/dataset-pivot-table.d.ts +3 -3
- package/es/dataset/dataset-pivot-table.js +1 -0
- package/es/dataset/dataset-pivot-table.js.map +1 -1
- package/es/dataset/dataset.d.ts +3 -3
- package/es/dataset/dataset.js +3 -0
- package/es/dataset/dataset.js.map +1 -1
- package/es/dataset/statistics-helper.d.ts +24 -3
- package/es/dataset/statistics-helper.js +72 -8
- package/es/dataset/statistics-helper.js.map +1 -1
- package/es/edit/edit-manager.js +5 -4
- package/es/edit/edit-manager.js.map +1 -1
- package/es/event/listener/table-group.js +14 -4
- package/es/event/listener/table-group.js.map +1 -1
- package/es/event/media-click.js +2 -1
- package/es/event/scroll.js +1 -2
- package/es/event/sparkline-event.js +1 -1
- package/es/event/sparkline-event.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/chart-helper/get-chart-spec.d.ts +1 -0
- package/es/layout/chart-helper/get-chart-spec.js +29 -4
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/layout/layout-helper.d.ts +4 -63
- package/es/layout/layout-helper.js +19 -246
- package/es/layout/layout-helper.js.map +1 -1
- package/es/layout/pivot-header-layout.d.ts +6 -3
- package/es/layout/pivot-header-layout.js +17 -6
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/layout/row-height-map.js +2 -1
- package/es/layout/row-height-map.js.map +1 -1
- package/es/layout/simple-header-layout.d.ts +25 -2
- package/es/layout/simple-header-layout.js +130 -17
- package/es/layout/simple-header-layout.js.map +1 -1
- package/es/layout/tree-helper.d.ts +63 -0
- package/es/layout/tree-helper.js +256 -0
- package/es/layout/tree-helper.js.map +1 -0
- package/es/scenegraph/graphic/chart.d.ts +2 -1
- package/es/scenegraph/graphic/chart.js +21 -17
- package/es/scenegraph/graphic/chart.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.js +4 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render.js +2 -2
- package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +20 -7
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
- package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -1
- package/es/scenegraph/group-creater/cell-type/image-cell.js +9 -5
- package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/video-cell.js +1 -1
- package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
- package/es/scenegraph/group-creater/column-helper.js +5 -5
- package/es/scenegraph/group-creater/column-helper.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js +6 -3
- package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
- package/es/scenegraph/scenegraph.js +24 -11
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/style/frame-border.js +7 -4
- package/es/scenegraph/style/frame-border.js.map +1 -1
- package/es/state/hover/is-cell-hover.js +1 -1
- package/es/state/hover/is-cell-hover.js.map +1 -1
- package/es/state/sort/index.js +2 -5
- package/es/state/sort/index.js.map +1 -1
- package/es/state/state.d.ts +0 -1
- package/es/state/state.js +3 -4
- package/es/state/state.js.map +1 -1
- package/es/themes/theme.js +3 -0
- package/es/themes/theme.js.map +1 -1
- package/es/tools/get-data-path/create-dataset.js.map +1 -1
- package/es/tools/isx.d.ts +1 -1
- package/es/tools/util.d.ts +1 -1
- package/es/ts-types/base-table.d.ts +6 -5
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/list-table/define/basic-define.d.ts +2 -0
- package/es/ts-types/list-table/define/basic-define.js.map +1 -1
- package/es/ts-types/list-table/layout-map/api.d.ts +5 -4
- package/es/ts-types/list-table/layout-map/api.js.map +1 -1
- package/es/ts-types/new-data-set.d.ts +27 -6
- package/es/ts-types/new-data-set.js +1 -1
- package/es/ts-types/new-data-set.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +17 -5
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/ts-types/theme.d.ts +1 -0
- package/es/ts-types/theme.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +3 -3
- package/cjs/data/FilterDataSource.d.ts +0 -1
- package/cjs/data/FilterDataSource.js +0 -1
- package/cjs/data/FilterDataSource.js.map +0 -1
- package/es/data/FilterDataSource.d.ts +0 -1
- package/es/data/FilterDataSource.js +0 -1
- package/es/data/FilterDataSource.js.map +0 -1
package/es/core/tableHelper.d.ts
CHANGED
|
@@ -2,13 +2,13 @@ import type { IThemeSpec } from './../vrender';
|
|
|
2
2
|
import type { BaseTable } from '../core';
|
|
3
3
|
import { DataSource } from '../data';
|
|
4
4
|
import { Rect } from '../tools/Rect';
|
|
5
|
-
import type { FullExtendStyle } from '../ts-types';
|
|
5
|
+
import type { FullExtendStyle, ListTableAPI } from '../ts-types';
|
|
6
6
|
import type { BaseTableAPI } from '../ts-types/base-table';
|
|
7
7
|
import type { ListTable } from '../ListTable';
|
|
8
8
|
export declare function createRootElement(padding: any): HTMLElement;
|
|
9
9
|
export declare function updateRootElementPadding(element: HTMLElement, padding: any): void;
|
|
10
10
|
export declare function _dealWithUpdateDataSource(table: BaseTableAPI, fn: (table: BaseTableAPI) => void): void;
|
|
11
|
-
export declare function _setRecords(table:
|
|
11
|
+
export declare function _setRecords(table: ListTableAPI, records?: any[]): void;
|
|
12
12
|
export declare function _setDataSource(table: BaseTableAPI, dataSource: DataSource): void;
|
|
13
13
|
export declare function _getTargetFrozenRowAt(table: BaseTable, absoluteY: number): {
|
|
14
14
|
top: number;
|
package/es/core/tableHelper.js
CHANGED
|
@@ -42,7 +42,7 @@ export function _setRecords(table, records = []) {
|
|
|
42
42
|
var _a, _b;
|
|
43
43
|
const data = records;
|
|
44
44
|
table.internalProps.records = records;
|
|
45
|
-
const newDataSource = table.internalProps.dataSource = CachedDataSource.ofArray(data, table.pagination, null !== (_a = table.options.hierarchyExpandLevel) && void 0 !== _a ? _a : (null === (_b = table._hasHierarchyTreeHeader) || void 0 === _b ? void 0 : _b.call(table)) ? 1 : void 0);
|
|
45
|
+
const newDataSource = table.internalProps.dataSource = CachedDataSource.ofArray(data, table.internalProps.dataConfig, table.pagination, table.internalProps.layoutMap.columnObjects, null !== (_a = table.options.hierarchyExpandLevel) && void 0 !== _a ? _a : (null === (_b = table._hasHierarchyTreeHeader) || void 0 === _b ? void 0 : _b.call(table)) ? 1 : void 0);
|
|
46
46
|
table.addReleaseObj(newDataSource);
|
|
47
47
|
}));
|
|
48
48
|
}
|
|
@@ -163,12 +163,10 @@ export function getStyleTheme(headerStyle, table, col, row, getProp, needGetThem
|
|
|
163
163
|
export function sortRecords(table) {
|
|
164
164
|
var _a;
|
|
165
165
|
if (table.sortState) {
|
|
166
|
-
let order, field
|
|
167
|
-
if (Array.isArray(table.sortState) ? 0 !== table.sortState.length && ({order: order, field: field
|
|
166
|
+
let order, field;
|
|
167
|
+
if (Array.isArray(table.sortState) ? 0 !== table.sortState.length && ({order: order, field: field} = null === (_a = table.sortState) || void 0 === _a ? void 0 : _a[0]) : ({order: order, field: field} = table.sortState),
|
|
168
168
|
order && field && "normal" !== order) {
|
|
169
|
-
const sortFunc = table._getSortFuncFromHeaderOption(void 0, field,
|
|
170
|
-
let hd;
|
|
171
|
-
hd = fieldKey ? table.internalProps.layoutMap.headerObjects.find((col => col && col.fieldKey === fieldKey)) : table.internalProps.layoutMap.headerObjects.find((col => col && col.field === field)),
|
|
169
|
+
const sortFunc = table._getSortFuncFromHeaderOption(void 0, field), hd = table.internalProps.layoutMap.headerObjects.find((col => col && col.field === field));
|
|
172
170
|
table.dataSource.sort(hd.field, order, null != sortFunc ? sortFunc : defaultOrderFn);
|
|
173
171
|
}
|
|
174
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/tableHelper.ts"],"names":[],"mappings":"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","file":"tableHelper.js","sourcesContent":["import type { IThemeSpec } from './../vrender';\nimport type { BaseTable } from '../core';\nimport { CachedDataSource, DataSource } from '../data';\nimport { parseFont } from '../scenegraph/utils/font';\nimport { getQuadProps } from '../scenegraph/utils/padding';\nimport { Rect } from '../tools/Rect';\nimport * as calc from '../tools/calc';\nimport type { FullExtendStyle, SortState } from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { defaultOrderFn } from '../tools/util';\nimport type { ListTable } from '../ListTable';\n\nexport function createRootElement(padding: any): HTMLElement {\n const element = document.createElement('div');\n element.setAttribute('tabindex', '0');\n element.classList.add('vtable');\n element.style.outline = 'none';\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n\n return element;\n}\nexport function updateRootElementPadding(element: HTMLElement, padding: any): void {\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n}\nexport function _dealWithUpdateDataSource(table: BaseTableAPI, fn: (table: BaseTableAPI) => void): void {\n const { dataSourceEventIds } = table.internalProps;\n\n if (dataSourceEventIds) {\n dataSourceEventIds.forEach((id: any) => table.internalProps.handler.off(id));\n }\n\n fn(table);\n\n table.internalProps.dataSourceEventIds = [\n table.internalProps.handler.on(table.internalProps.dataSource, DataSource.EVENT_TYPE.CHANGE_ORDER, () => {\n if (table.dataSource.enableHierarchyState) {\n table.refreshRowColCount();\n }\n table.render();\n })\n ];\n}\n/** @private */\nexport function _setRecords(table: BaseTableAPI, records: any[] = []): void {\n _dealWithUpdateDataSource(table, () => {\n const data = records;\n table.internalProps.records = records;\n const newDataSource = (table.internalProps.dataSource = CachedDataSource.ofArray(\n data,\n table.pagination,\n (table.options as any).hierarchyExpandLevel ?? (table._hasHierarchyTreeHeader?.() ? 1 : undefined)\n ));\n table.addReleaseObj(newDataSource);\n });\n}\n\nexport function _setDataSource(table: BaseTableAPI, dataSource: DataSource): void {\n _dealWithUpdateDataSource(table, () => {\n if (dataSource) {\n if (dataSource instanceof DataSource) {\n table.internalProps.dataSource = dataSource;\n } else {\n const newDataSource = (table.internalProps.dataSource = new CachedDataSource(dataSource));\n table.addReleaseObj(newDataSource);\n }\n } else {\n table.internalProps.dataSource = DataSource.EMPTY;\n }\n table.internalProps.records = null;\n });\n}\nexport function _getTargetFrozenRowAt(\n table: BaseTable,\n absoluteY: number\n): {\n top: number;\n row: number;\n bottom: number;\n height: number;\n} | null {\n if (!table.internalProps.frozenRowCount) {\n return null;\n }\n let { scrollTop } = table;\n const rowCount = table.internalProps.frozenRowCount;\n for (let row = 0; row < rowCount; row++) {\n const height = table.getRowHeight(row);\n const bottom = scrollTop + height;\n if (bottom > absoluteY) {\n return {\n top: scrollTop,\n row,\n bottom,\n height\n };\n }\n scrollTop = bottom;\n }\n return null;\n}\n\nexport function _getTargetFrozenColAt(\n table: BaseTable,\n absoluteX: number\n): {\n left: number;\n col: number;\n right: number;\n width: number;\n} | null {\n if (!table.internalProps.frozenColCount) {\n return null;\n }\n let { scrollLeft } = table;\n const colCount = table.internalProps.frozenColCount;\n for (let col = 0; col < colCount; col++) {\n const width = table.getColWidth(col);\n const right = scrollLeft + width;\n if (right > absoluteX) {\n return {\n left: scrollLeft,\n col,\n right,\n width\n };\n }\n scrollLeft = right;\n }\n return null;\n}\n\nexport function _toPxWidth(table: BaseTable, width: string | number): number {\n return Math.round(calc.toPx(width, table.internalProps.calcWidthContext));\n}\n\nexport function _applyColWidthLimits(limits: { min?: number; max?: number } | void | null, orgWidth: number): number {\n if (!limits) {\n return orgWidth;\n }\n\n if (limits.min) {\n if (limits.min > orgWidth) {\n return limits.min;\n }\n }\n if (limits.max) {\n if (limits.max < orgWidth) {\n return limits.max;\n }\n }\n return orgWidth;\n}\n/**\n * 检查设置的width是否为'auto'\n * @param {string|number} width width definition\n * @returns {boolean}\n */\nexport function isAutoDefine(width: string | number): width is 'auto' {\n return Boolean(width && typeof width === 'string' && width.toLowerCase() === 'auto');\n}\n\nexport function _getScrollableVisibleRect(table: BaseTableAPI): Rect {\n let frozenColsWidth = 0;\n let rightFrozenColsWidth = 0;\n if (table.frozenColCount > 0) {\n //有固定列时绘制固定列\n frozenColsWidth = table.getFrozenColsWidth();\n }\n if (table.rightFrozenColCount > 0) {\n //有固定列时绘制固定列\n rightFrozenColsWidth = table.getRightFrozenColsWidth();\n }\n let frozenRowsHeight = 0;\n let bottomFrozenRowsHeight = 0;\n if (table.frozenRowCount > 0) {\n //有固定列时绘制固定列\n frozenRowsHeight = table.getFrozenRowsHeight();\n }\n if (table.bottomFrozenRowCount > 0) {\n //有固定列时绘制固定列\n bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n }\n return new Rect(\n table.scrollLeft + frozenColsWidth,\n table.scrollTop + frozenRowsHeight,\n table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth,\n table.tableNoFrameHeight - frozenRowsHeight - bottomFrozenRowsHeight\n );\n}\n/**\n * @description: 从style对象里获取theme所需要的属性\n * @param {FullExtendStyle} headerStyle\n * @param {BaseTableAPI} table\n * @param {number} col\n * @param {number} row\n * @param {any} getProp\n * @return {*}\n */\nexport function getStyleTheme(\n headerStyle: FullExtendStyle,\n table: BaseTableAPI,\n col: number,\n row: number,\n getProp: any,\n needGetTheme = true\n) {\n // 属性参考IStyleOption\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table));\n const bgColor = getProp('bgColor', headerStyle, col, row, table);\n\n const font = getProp('font', headerStyle, col, row, table);\n let fontFamily;\n let fontSize;\n let fontWeight;\n if (font) {\n // 后期会弃用直接设置font,而使用fontFamily fontSize fontWeight 等属性\n const { family, size, weight } = parseFont(font);\n fontFamily = family.join(' ');\n fontSize = size;\n fontWeight = weight;\n } else {\n fontFamily = getProp('fontFamily', headerStyle, col, row, table);\n fontSize = getProp('fontSize', headerStyle, col, row, table);\n fontWeight = getProp('fontWeight', headerStyle, col, row, table);\n }\n\n // const fontSize = getFontSize(font);\n // const fontWeight = getFontWeight(font);\n\n const textAlign = getProp('textAlign', headerStyle, col, row, table);\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table);\n const color = getProp('color', headerStyle, col, row, table);\n\n const lineHeight = getProp('lineHeight', headerStyle, col, row, table);\n const underline = getProp('underline', headerStyle, col, row, table); // boolean\n // const underlineColor = getProp('underlineColor', headerStyle, col, row, table);\n // const underlineDash = getProp('underlineDash', headerStyle, col, row, table);\n const lineThrough = getProp('lineThrough', headerStyle, col, row, table); // boolean\n // const lineThroughColor = getProp('lineThroughColor', headerStyle, col, row, table);\n // const lineThroughDash = getProp('lineThroughDash', headerStyle, col, row, table);\n const textDecorationWidth = Math.max(1, Math.floor(fontSize / 10));\n\n const textOverflow = getProp('textOverflow', headerStyle, col, row, table); // 'clip' | 'ellipsis' | string\n const borderColor = getProp('borderColor', headerStyle, col, row, table); // string | string[]\n const borderLineWidth = getProp('borderLineWidth', headerStyle, col, row, table); // number | number[]\n const borderLineDash = getProp('borderLineDash', headerStyle, col, row, table); // number[] | (number[] | null)[]\n\n const marked = getProp('marked', headerStyle, col, row, table); // boolean\n const cursor = getProp('cursor', headerStyle, col, row, table); // boolean\n\n const hasFunctionPros =\n !padding ||\n !bgColor ||\n !font ||\n !textAlign ||\n !textBaseline ||\n !color ||\n !textOverflow ||\n !borderColor ||\n !borderLineWidth ||\n !borderLineDash ||\n typeof underline !== 'boolean' ||\n typeof lineThrough !== 'boolean' ||\n typeof marked !== 'boolean';\n if (!needGetTheme) {\n return { hasFunctionPros };\n }\n const theme: IThemeSpec & { _vtable: any } = {\n text: {\n fontFamily,\n fontSize,\n fontWeight,\n fill: color,\n textAlign,\n textBaseline,\n lineHeight: lineHeight ?? fontSize,\n underline: underline ? textDecorationWidth : undefined,\n lineThrough: lineThrough ? textDecorationWidth : undefined,\n ellipsis:\n !textOverflow || textOverflow === 'clip' ? undefined : textOverflow === 'ellipsis' ? '...' : textOverflow\n },\n group: {\n fill: bgColor,\n lineDash: borderLineDash,\n lineWidth: borderLineWidth,\n stroke: borderColor,\n cursor: cursor === 'auto' || cursor === 'default' ? undefined : cursor\n // cornerRadius: getCellCornerRadius(col, row, table)\n },\n _vtable: {\n padding,\n marked\n }\n };\n\n if (Array.isArray(borderLineWidth)) {\n (theme.group as any).strokeArrayWidth = getQuadProps(borderLineWidth);\n }\n if (Array.isArray(borderColor)) {\n const strokeColors = getQuadProps(borderColor);\n (theme.group as any).stroke = strokeColors.every(color => !color) ? false : strokeColors; // deal width strokeColor: [null, null, null, null]\n (theme.group as any).strokeArrayColor = getQuadProps(borderColor);\n }\n\n return {\n theme,\n hasFunctionPros\n };\n}\n\nexport function sortRecords(table: ListTable) {\n if ((table as any).sortState) {\n let order: any;\n let field: any;\n let fieldKey: any;\n if (Array.isArray((table as any).sortState)) {\n if ((table as any).sortState.length !== 0) {\n ({ order, field, fieldKey } = (table as any).sortState?.[0]);\n }\n } else {\n ({ order, field, fieldKey } = (table as any).sortState as SortState);\n }\n // 根据sort规则进行排序\n if (order && field && order !== 'normal') {\n const sortFunc = table._getSortFuncFromHeaderOption(undefined, field, fieldKey);\n // 如果sort传入的信息不能生成正确的sortFunc,直接更新表格,避免首次加载无法正常显示内容\n let hd;\n if (fieldKey) {\n hd = table.internalProps.layoutMap.headerObjects.find((col: any) => col && col.fieldKey === fieldKey);\n } else {\n hd = table.internalProps.layoutMap.headerObjects.find((col: any) => col && col.field === field);\n }\n // hd?.define?.sort && //如果这里也判断 那想要利用sortState来排序 但不显示排序图标就实现不了\n table.dataSource.sort(hd.field, order, sortFunc ?? defaultOrderFn);\n }\n }\n}\n\nexport function getCellCornerRadius(col: number, row: number, table: BaseTableAPI) {\n const tableCornerRadius = table.theme.frameStyle.cornerRadius;\n if (tableCornerRadius) {\n if (col === 0 && row === 0) {\n return [tableCornerRadius, 0, 0, 0];\n } else if (col === table.colCount - 1 && row === 0) {\n return [0, tableCornerRadius, 0, 0];\n } else if (col === 0 && row === table.rowCount - 1) {\n return [0, 0, 0, tableCornerRadius];\n } else if (col === table.colCount - 1 && row === table.rowCount - 1) {\n return [0, 0, tableCornerRadius, 0];\n }\n }\n return 0;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/tableHelper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,UAAU,iBAAiB,CAAC,OAAY;;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI,CAAC;IAEnG,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,KAAI,MAAA,OAAO,CAAC,aAAa,0CAAE,WAAW,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,KAAI,MAAA,OAAO,CAAC,aAAa,0CAAE,YAAY,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAEtF,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC;IAEzF,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,MAAM,UAAU,wBAAwB,CAAC,OAAoB,EAAE,OAAY;;IACzE,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI,CAAC;IACnG,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,KAAI,MAAA,OAAO,CAAC,aAAa,0CAAE,WAAW,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,KAAI,MAAA,OAAO,CAAC,aAAa,0CAAE,YAAY,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC;AAC3F,CAAC;AACD,MAAM,UAAU,yBAAyB,CAAC,KAAmB,EAAE,EAAiC;IAC9F,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;IAEnD,IAAI,kBAAkB,EAAE;QACtB,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9E;IAED,EAAE,CAAC,KAAK,CAAC,CAAC;IAEV,KAAK,CAAC,aAAa,CAAC,kBAAkB,GAAG;QACvC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,EAAE;YACtG,IAAI,KAAK,CAAC,UAAU,CAAC,oBAAoB,EAAE;gBACzC,KAAK,CAAC,kBAAkB,EAAE,CAAC;aAC5B;YACD,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAmB,EAAE,UAAiB,EAAE;IAClE,yBAAyB,CAAC,KAAK,EAAE,GAAG,EAAE;;QACpC,MAAM,IAAI,GAAG,OAAO,CAAC;QACrB,KAAK,CAAC,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC;QACtC,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAC9E,IAAI,EACJ,KAAK,CAAC,aAAa,CAAC,UAAU,EAC9B,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,EAC3C,MAAC,KAAK,CAAC,OAAe,CAAC,oBAAoB,mCAAI,CAAC,CAAA,MAAA,KAAK,CAAC,uBAAuB,qDAAI,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CACnG,CAAC,CAAC;QACH,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAmB,EAAE,UAAsB;IACxE,yBAAyB,CAAC,KAAK,EAAE,GAAG,EAAE;QACpC,IAAI,UAAU,EAAE;YACd,IAAI,UAAU,YAAY,UAAU,EAAE;gBACpC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;aAC7C;iBAAM;gBACL,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1F,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;aACpC;SACF;aAAM;YACL,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;SACnD;QACD,KAAK,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,qBAAqB,CACnC,KAAgB,EAChB,SAAiB;IAOjB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE;QACvC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC;IACpD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;QAClC,IAAI,MAAM,GAAG,SAAS,EAAE;YACtB,OAAO;gBACL,GAAG,EAAE,SAAS;gBACd,GAAG;gBACH,MAAM;gBACN,MAAM;aACP,CAAC;SACH;QACD,SAAS,GAAG,MAAM,CAAC;KACpB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAgB,EAChB,SAAiB;IAOjB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE;QACvC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC;IACpD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;QACjC,IAAI,KAAK,GAAG,SAAS,EAAE;YACrB,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,GAAG;gBACH,KAAK;gBACL,KAAK;aACN,CAAC;SACH;QACD,UAAU,GAAG,KAAK,CAAC;KACpB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAgB,EAAE,KAAsB;IACjE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAoD,EAAE,QAAgB;IACzG,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,MAAM,CAAC,GAAG,EAAE;QACd,IAAI,MAAM,CAAC,GAAG,GAAG,QAAQ,EAAE;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC;SACnB;KACF;IACD,IAAI,MAAM,CAAC,GAAG,EAAE;QACd,IAAI,MAAM,CAAC,GAAG,GAAG,QAAQ,EAAE;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC;SACnB;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAMD,MAAM,UAAU,YAAY,CAAC,KAAsB;IACjD,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAmB;IAC3D,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE;QAE5B,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;KAC9C;IACD,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,EAAE;QAEjC,oBAAoB,GAAG,KAAK,CAAC,uBAAuB,EAAE,CAAC;KACxD;IACD,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE;QAE5B,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;KAChD;IACD,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE;QAElC,sBAAsB,GAAG,KAAK,CAAC,yBAAyB,EAAE,CAAC;KAC5D;IACD,OAAO,IAAI,IAAI,CACb,KAAK,CAAC,UAAU,GAAG,eAAe,EAClC,KAAK,CAAC,SAAS,GAAG,gBAAgB,EAClC,KAAK,CAAC,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAChE,KAAK,CAAC,kBAAkB,GAAG,gBAAgB,GAAG,sBAAsB,CACrE,CAAC;AACJ,CAAC;AAUD,MAAM,UAAU,aAAa,CAC3B,WAA4B,EAC5B,KAAmB,EACnB,GAAW,EACX,GAAW,EACX,OAAY,EACZ,YAAY,GAAG,IAAI;IAGnB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC;IACf,IAAI,QAAQ,CAAC;IACb,IAAI,UAAU,CAAC;IACf,IAAI,IAAI,EAAE;QAER,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACjD,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,QAAQ,GAAG,IAAI,CAAC;QAChB,UAAU,GAAG,MAAM,CAAC;KACrB;SAAM;QACL,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjE,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7D,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;KAClE;IAKD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAGrE,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAGzE,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACjF,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAE/D,MAAM,eAAe,GACnB,CAAC,OAAO;QACR,CAAC,OAAO;QACR,CAAC,IAAI;QACL,CAAC,SAAS;QACV,CAAC,YAAY;QACb,CAAC,KAAK;QACN,CAAC,YAAY;QACb,CAAC,WAAW;QACZ,CAAC,eAAe;QAChB,CAAC,cAAc;QACf,OAAO,SAAS,KAAK,SAAS;QAC9B,OAAO,WAAW,KAAK,SAAS;QAChC,OAAO,MAAM,KAAK,SAAS,CAAC;IAC9B,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,EAAE,eAAe,EAAE,CAAC;KAC5B;IACD,MAAM,KAAK,GAAkC;QAC3C,IAAI,EAAE;YACJ,UAAU;YACV,QAAQ;YACR,UAAU;YACV,IAAI,EAAE,KAAK;YACX,SAAS;YACT,YAAY;YACZ,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,QAAQ;YAClC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;YACtD,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;YAC1D,QAAQ,EACN,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY;SAC5G;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE,eAAe;YAC1B,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;SAEvE;QACD,OAAO,EAAE;YACP,OAAO;YACP,MAAM;SACP;KACF,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;QACjC,KAAK,CAAC,KAAa,CAAC,gBAAgB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;KACvE;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC9B,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAC9C,KAAK,CAAC,KAAa,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;QACxF,KAAK,CAAC,KAAa,CAAC,gBAAgB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;KACnE;IAED,OAAO;QACL,KAAK;QACL,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAgB;;IAC1C,IAAK,KAAa,CAAC,SAAS,EAAE;QAC5B,IAAI,KAAU,CAAC;QACf,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,CAAC,OAAO,CAAE,KAAa,CAAC,SAAS,CAAC,EAAE;YAC3C,IAAK,KAAa,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAC,KAAa,CAAC,SAAS,0CAAG,CAAC,CAAC,CAAC,CAAC;aACpD;SACF;aAAM;YACL,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAI,KAAa,CAAC,SAAsB,CAAC,CAAC;SAC5D;QAED,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE;YACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,4BAA4B,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAEtE,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;YAGtG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,cAAc,CAAC,CAAC;SACpE;KACF;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,GAAW,EAAE,KAAmB;IAC/E,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;IAC9D,IAAI,iBAAiB,EAAE;QACrB,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;YAC1B,OAAO,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACrC;aAAM,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;YAClD,OAAO,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACrC;aAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE;YAClD,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;SACrC;aAAM,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE;YACnE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;SACrC;KACF;IACD,OAAO,CAAC,CAAC;AACX,CAAC","file":"tableHelper.js","sourcesContent":["import type { IThemeSpec } from './../vrender';\nimport type { BaseTable } from '../core';\nimport { CachedDataSource, DataSource } from '../data';\nimport { parseFont } from '../scenegraph/utils/font';\nimport { getQuadProps } from '../scenegraph/utils/padding';\nimport { Rect } from '../tools/Rect';\nimport * as calc from '../tools/calc';\nimport type { FullExtendStyle, ListTableAPI, SortState } from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { defaultOrderFn } from '../tools/util';\nimport type { ListTable } from '../ListTable';\n\nexport function createRootElement(padding: any): HTMLElement {\n const element = document.createElement('div');\n element.setAttribute('tabindex', '0');\n element.classList.add('vtable');\n element.style.outline = 'none';\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n\n return element;\n}\nexport function updateRootElementPadding(element: HTMLElement, padding: any): void {\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n}\nexport function _dealWithUpdateDataSource(table: BaseTableAPI, fn: (table: BaseTableAPI) => void): void {\n const { dataSourceEventIds } = table.internalProps;\n\n if (dataSourceEventIds) {\n dataSourceEventIds.forEach((id: any) => table.internalProps.handler.off(id));\n }\n\n fn(table);\n\n table.internalProps.dataSourceEventIds = [\n table.internalProps.handler.on(table.internalProps.dataSource, DataSource.EVENT_TYPE.CHANGE_ORDER, () => {\n if (table.dataSource.enableHierarchyState) {\n table.refreshRowColCount();\n }\n table.render();\n })\n ];\n}\n/** @private */\nexport function _setRecords(table: ListTableAPI, records: any[] = []): void {\n _dealWithUpdateDataSource(table, () => {\n const data = records;\n table.internalProps.records = records;\n const newDataSource = (table.internalProps.dataSource = CachedDataSource.ofArray(\n data,\n table.internalProps.dataConfig,\n table.pagination,\n table.internalProps.layoutMap.columnObjects,\n (table.options as any).hierarchyExpandLevel ?? (table._hasHierarchyTreeHeader?.() ? 1 : undefined)\n ));\n table.addReleaseObj(newDataSource);\n });\n}\n\nexport function _setDataSource(table: BaseTableAPI, dataSource: DataSource): void {\n _dealWithUpdateDataSource(table, () => {\n if (dataSource) {\n if (dataSource instanceof DataSource) {\n table.internalProps.dataSource = dataSource;\n } else {\n const newDataSource = (table.internalProps.dataSource = new CachedDataSource(dataSource));\n table.addReleaseObj(newDataSource);\n }\n } else {\n table.internalProps.dataSource = DataSource.EMPTY;\n }\n table.internalProps.records = null;\n });\n}\nexport function _getTargetFrozenRowAt(\n table: BaseTable,\n absoluteY: number\n): {\n top: number;\n row: number;\n bottom: number;\n height: number;\n} | null {\n if (!table.internalProps.frozenRowCount) {\n return null;\n }\n let { scrollTop } = table;\n const rowCount = table.internalProps.frozenRowCount;\n for (let row = 0; row < rowCount; row++) {\n const height = table.getRowHeight(row);\n const bottom = scrollTop + height;\n if (bottom > absoluteY) {\n return {\n top: scrollTop,\n row,\n bottom,\n height\n };\n }\n scrollTop = bottom;\n }\n return null;\n}\n\nexport function _getTargetFrozenColAt(\n table: BaseTable,\n absoluteX: number\n): {\n left: number;\n col: number;\n right: number;\n width: number;\n} | null {\n if (!table.internalProps.frozenColCount) {\n return null;\n }\n let { scrollLeft } = table;\n const colCount = table.internalProps.frozenColCount;\n for (let col = 0; col < colCount; col++) {\n const width = table.getColWidth(col);\n const right = scrollLeft + width;\n if (right > absoluteX) {\n return {\n left: scrollLeft,\n col,\n right,\n width\n };\n }\n scrollLeft = right;\n }\n return null;\n}\n\nexport function _toPxWidth(table: BaseTable, width: string | number): number {\n return Math.round(calc.toPx(width, table.internalProps.calcWidthContext));\n}\n\nexport function _applyColWidthLimits(limits: { min?: number; max?: number } | void | null, orgWidth: number): number {\n if (!limits) {\n return orgWidth;\n }\n\n if (limits.min) {\n if (limits.min > orgWidth) {\n return limits.min;\n }\n }\n if (limits.max) {\n if (limits.max < orgWidth) {\n return limits.max;\n }\n }\n return orgWidth;\n}\n/**\n * 检查设置的width是否为'auto'\n * @param {string|number} width width definition\n * @returns {boolean}\n */\nexport function isAutoDefine(width: string | number): width is 'auto' {\n return Boolean(width && typeof width === 'string' && width.toLowerCase() === 'auto');\n}\n\nexport function _getScrollableVisibleRect(table: BaseTableAPI): Rect {\n let frozenColsWidth = 0;\n let rightFrozenColsWidth = 0;\n if (table.frozenColCount > 0) {\n //有固定列时绘制固定列\n frozenColsWidth = table.getFrozenColsWidth();\n }\n if (table.rightFrozenColCount > 0) {\n //有固定列时绘制固定列\n rightFrozenColsWidth = table.getRightFrozenColsWidth();\n }\n let frozenRowsHeight = 0;\n let bottomFrozenRowsHeight = 0;\n if (table.frozenRowCount > 0) {\n //有固定列时绘制固定列\n frozenRowsHeight = table.getFrozenRowsHeight();\n }\n if (table.bottomFrozenRowCount > 0) {\n //有固定列时绘制固定列\n bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n }\n return new Rect(\n table.scrollLeft + frozenColsWidth,\n table.scrollTop + frozenRowsHeight,\n table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth,\n table.tableNoFrameHeight - frozenRowsHeight - bottomFrozenRowsHeight\n );\n}\n/**\n * @description: 从style对象里获取theme所需要的属性\n * @param {FullExtendStyle} headerStyle\n * @param {BaseTableAPI} table\n * @param {number} col\n * @param {number} row\n * @param {any} getProp\n * @return {*}\n */\nexport function getStyleTheme(\n headerStyle: FullExtendStyle,\n table: BaseTableAPI,\n col: number,\n row: number,\n getProp: any,\n needGetTheme = true\n) {\n // 属性参考IStyleOption\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table));\n const bgColor = getProp('bgColor', headerStyle, col, row, table);\n\n const font = getProp('font', headerStyle, col, row, table);\n let fontFamily;\n let fontSize;\n let fontWeight;\n if (font) {\n // 后期会弃用直接设置font,而使用fontFamily fontSize fontWeight 等属性\n const { family, size, weight } = parseFont(font);\n fontFamily = family.join(' ');\n fontSize = size;\n fontWeight = weight;\n } else {\n fontFamily = getProp('fontFamily', headerStyle, col, row, table);\n fontSize = getProp('fontSize', headerStyle, col, row, table);\n fontWeight = getProp('fontWeight', headerStyle, col, row, table);\n }\n\n // const fontSize = getFontSize(font);\n // const fontWeight = getFontWeight(font);\n\n const textAlign = getProp('textAlign', headerStyle, col, row, table);\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table);\n const color = getProp('color', headerStyle, col, row, table);\n\n const lineHeight = getProp('lineHeight', headerStyle, col, row, table);\n const underline = getProp('underline', headerStyle, col, row, table); // boolean\n // const underlineColor = getProp('underlineColor', headerStyle, col, row, table);\n // const underlineDash = getProp('underlineDash', headerStyle, col, row, table);\n const lineThrough = getProp('lineThrough', headerStyle, col, row, table); // boolean\n // const lineThroughColor = getProp('lineThroughColor', headerStyle, col, row, table);\n // const lineThroughDash = getProp('lineThroughDash', headerStyle, col, row, table);\n const textDecorationWidth = Math.max(1, Math.floor(fontSize / 10));\n\n const textOverflow = getProp('textOverflow', headerStyle, col, row, table); // 'clip' | 'ellipsis' | string\n const borderColor = getProp('borderColor', headerStyle, col, row, table); // string | string[]\n const borderLineWidth = getProp('borderLineWidth', headerStyle, col, row, table); // number | number[]\n const borderLineDash = getProp('borderLineDash', headerStyle, col, row, table); // number[] | (number[] | null)[]\n\n const marked = getProp('marked', headerStyle, col, row, table); // boolean\n const cursor = getProp('cursor', headerStyle, col, row, table); // boolean\n\n const hasFunctionPros =\n !padding ||\n !bgColor ||\n !font ||\n !textAlign ||\n !textBaseline ||\n !color ||\n !textOverflow ||\n !borderColor ||\n !borderLineWidth ||\n !borderLineDash ||\n typeof underline !== 'boolean' ||\n typeof lineThrough !== 'boolean' ||\n typeof marked !== 'boolean';\n if (!needGetTheme) {\n return { hasFunctionPros };\n }\n const theme: IThemeSpec & { _vtable: any } = {\n text: {\n fontFamily,\n fontSize,\n fontWeight,\n fill: color,\n textAlign,\n textBaseline,\n lineHeight: lineHeight ?? fontSize,\n underline: underline ? textDecorationWidth : undefined,\n lineThrough: lineThrough ? textDecorationWidth : undefined,\n ellipsis:\n !textOverflow || textOverflow === 'clip' ? undefined : textOverflow === 'ellipsis' ? '...' : textOverflow\n },\n group: {\n fill: bgColor,\n lineDash: borderLineDash,\n lineWidth: borderLineWidth,\n stroke: borderColor,\n cursor: cursor === 'auto' || cursor === 'default' ? undefined : cursor\n // cornerRadius: getCellCornerRadius(col, row, table)\n },\n _vtable: {\n padding,\n marked\n }\n };\n\n if (Array.isArray(borderLineWidth)) {\n (theme.group as any).strokeArrayWidth = getQuadProps(borderLineWidth);\n }\n if (Array.isArray(borderColor)) {\n const strokeColors = getQuadProps(borderColor);\n (theme.group as any).stroke = strokeColors.every(color => !color) ? false : strokeColors; // deal width strokeColor: [null, null, null, null]\n (theme.group as any).strokeArrayColor = getQuadProps(borderColor);\n }\n\n return {\n theme,\n hasFunctionPros\n };\n}\n\nexport function sortRecords(table: ListTable) {\n if ((table as any).sortState) {\n let order: any;\n let field: any;\n if (Array.isArray((table as any).sortState)) {\n if ((table as any).sortState.length !== 0) {\n ({ order, field } = (table as any).sortState?.[0]);\n }\n } else {\n ({ order, field } = (table as any).sortState as SortState);\n }\n // 根据sort规则进行排序\n if (order && field && order !== 'normal') {\n const sortFunc = table._getSortFuncFromHeaderOption(undefined, field);\n // 如果sort传入的信息不能生成正确的sortFunc,直接更新表格,避免首次加载无法正常显示内容\n const hd = table.internalProps.layoutMap.headerObjects.find((col: any) => col && col.field === field);\n\n // hd?.define?.sort && //如果这里也判断 那想要利用sortState来排序 但不显示排序图标就实现不了\n table.dataSource.sort(hd.field, order, sortFunc ?? defaultOrderFn);\n }\n }\n}\n\nexport function getCellCornerRadius(col: number, row: number, table: BaseTableAPI) {\n const tableCornerRadius = table.theme.frameStyle.cornerRadius;\n if (tableCornerRadius) {\n if (col === 0 && row === 0) {\n return [tableCornerRadius, 0, 0, 0];\n } else if (col === table.colCount - 1 && row === 0) {\n return [0, tableCornerRadius, 0, 0];\n } else if (col === 0 && row === table.rowCount - 1) {\n return [0, 0, 0, tableCornerRadius];\n } else if (col === table.colCount - 1 && row === table.rowCount - 1) {\n return [0, 0, tableCornerRadius, 0];\n }\n }\n return 0;\n}\n"]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import type { FieldData, FieldDef, IPagination, MaybePromiseOrUndefined } from '../ts-types';
|
|
1
|
+
import type { FieldData, FieldDef, IListTableDataConfig, IPagination, MaybePromiseOrUndefined } from '../ts-types';
|
|
2
2
|
import type { BaseTableAPI } from '../ts-types/base-table';
|
|
3
|
+
import type { ColumnData } from '../ts-types/list-table/layout-map/api';
|
|
3
4
|
import type { DataSourceParam } from './DataSource';
|
|
4
5
|
import { DataSource } from './DataSource';
|
|
5
6
|
export declare class CachedDataSource extends DataSource {
|
|
6
7
|
private _recordCache;
|
|
7
8
|
private _fieldCache;
|
|
8
9
|
static get EVENT_TYPE(): typeof DataSource.EVENT_TYPE;
|
|
9
|
-
static ofArray(array: any[], pagination?: IPagination, hierarchyExpandLevel?: number): CachedDataSource;
|
|
10
|
-
constructor(opt?: DataSourceParam, pagination?: IPagination, hierarchyExpandLevel?: number);
|
|
10
|
+
static ofArray(array: any[], dataConfig?: IListTableDataConfig, pagination?: IPagination, columnObjs?: ColumnData[], hierarchyExpandLevel?: number): CachedDataSource;
|
|
11
|
+
constructor(opt?: DataSourceParam, dataConfig?: IListTableDataConfig, pagination?: IPagination, columnObjs?: ColumnData[], hierarchyExpandLevel?: number);
|
|
11
12
|
protected getOriginalRecord(index: number): MaybePromiseOrUndefined;
|
|
12
13
|
protected getOriginalField<F extends FieldDef>(index: number, field: F, col?: number, row?: number, table?: BaseTableAPI): FieldData;
|
|
13
14
|
clearCache(): void;
|
|
@@ -10,15 +10,16 @@ export class CachedDataSource extends DataSource {
|
|
|
10
10
|
static get EVENT_TYPE() {
|
|
11
11
|
return DataSource.EVENT_TYPE;
|
|
12
12
|
}
|
|
13
|
-
static ofArray(array, pagination, hierarchyExpandLevel) {
|
|
13
|
+
static ofArray(array, dataConfig, pagination, columnObjs, hierarchyExpandLevel) {
|
|
14
14
|
return new CachedDataSource({
|
|
15
15
|
get: index => Array.isArray(index) ? getValueFromDeepArray(array, index) : array[index],
|
|
16
16
|
length: array.length,
|
|
17
17
|
source: array
|
|
18
|
-
}, pagination, hierarchyExpandLevel);
|
|
18
|
+
}, dataConfig, pagination, columnObjs, hierarchyExpandLevel);
|
|
19
19
|
}
|
|
20
|
-
constructor(opt, pagination, hierarchyExpandLevel) {
|
|
21
|
-
super(opt, pagination, hierarchyExpandLevel), this._recordCache = {},
|
|
20
|
+
constructor(opt, dataConfig, pagination, columnObjs, hierarchyExpandLevel) {
|
|
21
|
+
super(opt, dataConfig, pagination, columnObjs, hierarchyExpandLevel), this._recordCache = {},
|
|
22
|
+
this._fieldCache = {};
|
|
22
23
|
}
|
|
23
24
|
getOriginalRecord(index) {
|
|
24
25
|
return this._recordCache && this._recordCache[index] ? this._recordCache[index] : super.getOriginalRecord(index);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/CachedDataSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/data/CachedDataSource.ts"],"names":[],"mappings":"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","file":"CachedDataSource.js","sourcesContent":["import { getValueFromDeepArray } from '../tools/util';\nimport type {\n FieldData,\n FieldDef,\n IListTableDataConfig,\n IPagination,\n MaybePromise,\n MaybePromiseOrUndefined\n} from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport type { ColumnData } from '../ts-types/list-table/layout-map/api';\nimport type { DataSourceParam } from './DataSource';\nimport { DataSource } from './DataSource';\n\n/** @private */\nfunction _setFieldCache(\n fCache: { [index: number]: Map<FieldDef, any> },\n index: number,\n field: FieldDef,\n\n value: any\n): void {\n const recCache = fCache[index] || (fCache[index] = new Map());\n recCache.set(field, value);\n}\n/**\n * table data source for caching Promise data\n *\n * @classdesc VTable.data.CachedDataSource\n * @memberof VTable.data\n */\nexport class CachedDataSource extends DataSource {\n /**\n * record cache 当用户定义的CachedDataSource.get为promise的时候 可以用rCache缓存已获取数据条目\n */\n private _recordCache: { [index: number]: any };\n /**\n * field cache 当用户定义field为promise的时候 可以用fCache缓存已获取值\n */\n private _fieldCache: { [index: number]: Map<FieldDef, any> };\n static get EVENT_TYPE(): typeof DataSource.EVENT_TYPE {\n return DataSource.EVENT_TYPE;\n }\n static ofArray(\n array: any[],\n dataConfig?: IListTableDataConfig,\n pagination?: IPagination,\n columnObjs?: ColumnData[],\n hierarchyExpandLevel?: number\n ): CachedDataSource {\n return new CachedDataSource(\n {\n get: (index: number): any => {\n if (Array.isArray(index)) {\n return getValueFromDeepArray(array, index);\n }\n return array[index];\n },\n length: array.length,\n source: array\n },\n dataConfig,\n pagination,\n columnObjs,\n hierarchyExpandLevel\n );\n }\n constructor(\n opt?: DataSourceParam,\n dataConfig?: IListTableDataConfig,\n pagination?: IPagination,\n columnObjs?: ColumnData[],\n hierarchyExpandLevel?: number\n ) {\n super(opt, dataConfig, pagination, columnObjs, hierarchyExpandLevel);\n this._recordCache = {};\n this._fieldCache = {};\n }\n protected getOriginalRecord(index: number): MaybePromiseOrUndefined {\n if (this._recordCache && this._recordCache[index]) {\n return this._recordCache[index];\n }\n return super.getOriginalRecord(index);\n }\n protected getOriginalField<F extends FieldDef>(\n index: number,\n field: F,\n col?: number,\n row?: number,\n table?: BaseTableAPI\n ): FieldData {\n const rowCache = this._fieldCache && this._fieldCache[index];\n if (rowCache) {\n const cache = rowCache.get(field);\n if (cache) {\n return cache;\n }\n }\n return super.getOriginalField(index, field, col, row, table);\n }\n\n clearCache(): void {\n if (this._recordCache) {\n this._recordCache = {};\n }\n if (this._fieldCache) {\n this._fieldCache = {};\n }\n }\n\n protected fieldPromiseCallBack<F extends FieldDef>(index: number, field: F, value: MaybePromiseOrUndefined): void {\n _setFieldCache(this._fieldCache, index, field, value);\n }\n protected recordPromiseCallBack(index: number, record: MaybePromiseOrUndefined): void {\n this._recordCache[index] = record;\n }\n\n release(): void {\n super.release?.();\n }\n}\n"]}
|
package/es/data/DataSource.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { DataSourceAPI, FieldData, FieldDef, FieldFormat, IPagination, MaybePromiseOrUndefined, SortOrder } from '../ts-types';
|
|
1
|
+
import type { DataSourceAPI, FieldData, FieldDef, FieldFormat, FilterRules, IListTableDataConfig, IPagination, MaybePromiseOrUndefined, SortOrder } from '../ts-types';
|
|
2
2
|
import { HierarchyState } from '../ts-types';
|
|
3
3
|
import { EventTarget } from '../event/EventTarget';
|
|
4
4
|
import type { BaseTableAPI } from '../ts-types/base-table';
|
|
5
|
+
import { type Aggregator } from '../dataset/statistics-helper';
|
|
6
|
+
import type { ColumnData } from '../ts-types/list-table/layout-map/api';
|
|
5
7
|
declare const EVENT_TYPE: {
|
|
6
8
|
readonly SOURCE_LENGTH_UPDATE: "source_length_update";
|
|
7
9
|
readonly CHANGE_ORDER: "change_order";
|
|
@@ -19,9 +21,11 @@ export interface ISortedMapItem {
|
|
|
19
21
|
normal?: (number | number[])[];
|
|
20
22
|
}
|
|
21
23
|
export declare class DataSource extends EventTarget implements DataSourceAPI {
|
|
24
|
+
dataConfig: IListTableDataConfig;
|
|
25
|
+
dataSourceObj: DataSourceParam | DataSource;
|
|
22
26
|
private _get;
|
|
23
27
|
private _sourceLength;
|
|
24
|
-
private
|
|
28
|
+
private _source;
|
|
25
29
|
protected sortedIndexMap: Map<FieldDef, ISortedMapItem>;
|
|
26
30
|
private lastOrder;
|
|
27
31
|
private lastOrderFn;
|
|
@@ -34,7 +38,19 @@ export declare class DataSource extends EventTarget implements DataSourceAPI {
|
|
|
34
38
|
static get EVENT_TYPE(): typeof EVENT_TYPE;
|
|
35
39
|
protected treeDataHierarchyState: Map<number | string, HierarchyState>;
|
|
36
40
|
beforeChangedRecordsMap: Record<number, any>[];
|
|
37
|
-
|
|
41
|
+
registedAggregators: {
|
|
42
|
+
[key: string]: {
|
|
43
|
+
new (dimension: string | string[], formatFun?: any, isRecord?: boolean, aggregationFun?: Function): Aggregator;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
fieldAggregators: Aggregator[];
|
|
47
|
+
layoutColumnObjects: ColumnData[];
|
|
48
|
+
constructor(dataSourceObj?: DataSourceParam | DataSource, dataConfig?: IListTableDataConfig, pagination?: IPagination, columnObjs?: ColumnData[], hierarchyExpandLevel?: number);
|
|
49
|
+
registerAggregator(type: string, aggregator: any): void;
|
|
50
|
+
registerAggregators(): void;
|
|
51
|
+
_generateFieldAggragations(): void;
|
|
52
|
+
processRecords(records: any[]): any[];
|
|
53
|
+
processRecord(record: any): void;
|
|
38
54
|
initChildrenNodeHierarchy(indexKey: number | number[], hierarchyExpandLevel: number, currentLevel: number, nodeData: any): number;
|
|
39
55
|
updatePagination(pagination?: IPagination): void;
|
|
40
56
|
protected updatePagerData(): void;
|
|
@@ -63,6 +79,9 @@ export declare class DataSource extends EventTarget implements DataSourceAPI {
|
|
|
63
79
|
updateRecords(records: any[], recordIndexs: number[]): number[];
|
|
64
80
|
updateRecordsForSorted(records: any[], recordIndexs: number[]): void;
|
|
65
81
|
sort(field: FieldDef, order: SortOrder, orderFn?: (v1: any, v2: any, order: SortOrder) => -1 | 0 | 1): void;
|
|
82
|
+
private filterRecord;
|
|
83
|
+
updateFilterRulesForSorted(filterRules?: FilterRules): void;
|
|
84
|
+
updateFilterRules(filterRules?: FilterRules): void;
|
|
66
85
|
clearSortedIndexMap(): void;
|
|
67
86
|
get sourceLength(): number;
|
|
68
87
|
set sourceLength(sourceLen: number);
|
package/es/data/DataSource.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as sort from "../tools/sort";
|
|
2
2
|
|
|
3
|
-
import { HierarchyState } from "../ts-types";
|
|
3
|
+
import { AggregationType, HierarchyState } from "../ts-types";
|
|
4
4
|
|
|
5
5
|
import { applyChainSafe, getOrApply, obj, isPromise, emptyFn } from "../tools/helper";
|
|
6
6
|
|
|
@@ -12,6 +12,8 @@ import { calculateArrayDiff } from "../tools/diff-cell";
|
|
|
12
12
|
|
|
13
13
|
import { cloneDeep, isValid } from "@visactor/vutils";
|
|
14
14
|
|
|
15
|
+
import { RecordAggregator, SumAggregator, CountAggregator, MaxAggregator, MinAggregator, AvgAggregator, NoneAggregator, CustomAggregator } from "../dataset/statistics-helper";
|
|
16
|
+
|
|
15
17
|
function isFieldAssessor(field) {
|
|
16
18
|
if (obj.isObject(field)) {
|
|
17
19
|
const a = field;
|
|
@@ -64,11 +66,14 @@ export class DataSource extends EventTarget {
|
|
|
64
66
|
static get EVENT_TYPE() {
|
|
65
67
|
return EVENT_TYPE;
|
|
66
68
|
}
|
|
67
|
-
constructor(
|
|
68
|
-
var _a, _b;
|
|
69
|
+
constructor(dataSourceObj, dataConfig, pagination, columnObjs, hierarchyExpandLevel) {
|
|
70
|
+
var _a, _b, _c;
|
|
69
71
|
if (super(), this.currentIndexedData = [], this.enableHierarchyState = !1, this.treeDataHierarchyState = new Map,
|
|
70
|
-
this.beforeChangedRecordsMap = [], this.
|
|
71
|
-
this.
|
|
72
|
+
this.beforeChangedRecordsMap = [], this.registedAggregators = {}, this.fieldAggregators = [],
|
|
73
|
+
this.layoutColumnObjects = [], this.registerAggregators(), this.dataSourceObj = dataSourceObj,
|
|
74
|
+
this.dataConfig = dataConfig, this._get = (null == dataSourceObj ? void 0 : dataSourceObj.get.bind(dataSourceObj)) || void 0,
|
|
75
|
+
this.layoutColumnObjects = columnObjs, this._source = this.processRecords(null !== (_a = null == dataSourceObj ? void 0 : dataSourceObj.source) && void 0 !== _a ? _a : dataSourceObj),
|
|
76
|
+
this._sourceLength = (null === (_b = this._source) || void 0 === _b ? void 0 : _b.length) || 0,
|
|
72
77
|
this.sortedIndexMap = new Map, this._currentPagerIndexedData = [], this.userPagination = pagination,
|
|
73
78
|
this.pagination = pagination || {
|
|
74
79
|
totalCount: this._sourceLength,
|
|
@@ -83,7 +88,7 @@ export class DataSource extends EventTarget {
|
|
|
83
88
|
let nodeLength = this._sourceLength;
|
|
84
89
|
for (let i = 0; i < nodeLength; i++) {
|
|
85
90
|
const indexKey = this.currentIndexedData[i], nodeData = this.getOriginalRecord(indexKey);
|
|
86
|
-
if ((null === (
|
|
91
|
+
if ((null === (_c = nodeData.children) || void 0 === _c ? void 0 : _c.length) > 0) {
|
|
87
92
|
this.treeDataHierarchyState.set(Array.isArray(indexKey) ? indexKey.join(",") : indexKey, HierarchyState.expand);
|
|
88
93
|
const childrenLength = this.initChildrenNodeHierarchy(indexKey, hierarchyExpandLevel, 2, nodeData);
|
|
89
94
|
i += childrenLength, nodeLength += childrenLength;
|
|
@@ -92,6 +97,48 @@ export class DataSource extends EventTarget {
|
|
|
92
97
|
}
|
|
93
98
|
this.updatePagerData();
|
|
94
99
|
}
|
|
100
|
+
registerAggregator(type, aggregator) {
|
|
101
|
+
this.registedAggregators[type] = aggregator;
|
|
102
|
+
}
|
|
103
|
+
registerAggregators() {
|
|
104
|
+
this.registerAggregator(AggregationType.RECORD, RecordAggregator), this.registerAggregator(AggregationType.SUM, SumAggregator),
|
|
105
|
+
this.registerAggregator(AggregationType.COUNT, CountAggregator), this.registerAggregator(AggregationType.MAX, MaxAggregator),
|
|
106
|
+
this.registerAggregator(AggregationType.MIN, MinAggregator), this.registerAggregator(AggregationType.AVG, AvgAggregator),
|
|
107
|
+
this.registerAggregator(AggregationType.NONE, NoneAggregator), this.registerAggregator(AggregationType.CUSTOM, CustomAggregator);
|
|
108
|
+
}
|
|
109
|
+
_generateFieldAggragations() {
|
|
110
|
+
const columnObjs = this.layoutColumnObjects;
|
|
111
|
+
for (let i = 0; i < (null == columnObjs ? void 0 : columnObjs.length); i++) {
|
|
112
|
+
columnObjs[i].aggregator = null;
|
|
113
|
+
const field = columnObjs[i].field, aggragation = columnObjs[i].aggregation;
|
|
114
|
+
if (aggragation) if (Array.isArray(aggragation)) for (let j = 0; j < aggragation.length; j++) {
|
|
115
|
+
const item = aggragation[j], aggregator = new this.registedAggregators[item.aggregationType](field, item.formatFun, !0, item.aggregationFun);
|
|
116
|
+
this.fieldAggregators.push(aggregator), columnObjs[i].aggregator || (columnObjs[i].aggregator = []),
|
|
117
|
+
columnObjs[i].aggregator.push(aggregator);
|
|
118
|
+
} else {
|
|
119
|
+
const aggregator = new this.registedAggregators[aggragation.aggregationType](field, aggragation.formatFun, !0, aggragation.aggregationFun);
|
|
120
|
+
this.fieldAggregators.push(aggregator), columnObjs[i].aggregator = aggregator;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
processRecords(records) {
|
|
125
|
+
var _a, _b;
|
|
126
|
+
this._generateFieldAggragations();
|
|
127
|
+
const filteredRecords = [], isHasAggregation = this.fieldAggregators.length >= 1, isHasFilterRule = (null === (_b = null === (_a = this.dataConfig) || void 0 === _a ? void 0 : _a.filterRules) || void 0 === _b ? void 0 : _b.length) >= 1;
|
|
128
|
+
if (isHasFilterRule || isHasAggregation) {
|
|
129
|
+
for (let i = 0, len = records.length; i < len; i++) {
|
|
130
|
+
const record = records[i];
|
|
131
|
+
isHasFilterRule ? this.filterRecord(record) && (filteredRecords.push(record), isHasAggregation && this.processRecord(record)) : isHasAggregation && this.processRecord(record);
|
|
132
|
+
}
|
|
133
|
+
if (isHasFilterRule) return filteredRecords;
|
|
134
|
+
}
|
|
135
|
+
return records;
|
|
136
|
+
}
|
|
137
|
+
processRecord(record) {
|
|
138
|
+
for (let i = 0; i < this.fieldAggregators.length; i++) {
|
|
139
|
+
this.fieldAggregators[i].push(record);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
95
142
|
initChildrenNodeHierarchy(indexKey, hierarchyExpandLevel, currentLevel, nodeData) {
|
|
96
143
|
var _a, _b, _c;
|
|
97
144
|
if (currentLevel > hierarchyExpandLevel) return 0;
|
|
@@ -309,6 +356,42 @@ export class DataSource extends EventTarget {
|
|
|
309
356
|
}, this.sortedIndexMap.set(field, filedMap)), filedMap[order] = sortedIndexArray,
|
|
310
357
|
this.updatePagerData(), this.fireListeners(EVENT_TYPE.CHANGE_ORDER, null);
|
|
311
358
|
}
|
|
359
|
+
filterRecord(record) {
|
|
360
|
+
var _a, _b;
|
|
361
|
+
let isReserved = !0;
|
|
362
|
+
for (let i = 0; i < this.dataConfig.filterRules.length; i++) {
|
|
363
|
+
const filterRule = null === (_a = this.dataConfig) || void 0 === _a ? void 0 : _a.filterRules[i];
|
|
364
|
+
if (filterRule.filterKey) {
|
|
365
|
+
const filterValue = record[filterRule.filterKey];
|
|
366
|
+
if (-1 === filterRule.filteredValues.indexOf(filterValue)) {
|
|
367
|
+
isReserved = !1;
|
|
368
|
+
break;
|
|
369
|
+
}
|
|
370
|
+
} else if (!(null === (_b = filterRule.filterFunc) || void 0 === _b ? void 0 : _b.call(filterRule, record))) {
|
|
371
|
+
isReserved = !1;
|
|
372
|
+
break;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
return isReserved;
|
|
376
|
+
}
|
|
377
|
+
updateFilterRulesForSorted(filterRules) {
|
|
378
|
+
var _a, _b, _c;
|
|
379
|
+
this.dataConfig.filterRules = filterRules, this._source = this.processRecords(null !== (_b = null === (_a = this.dataSourceObj) || void 0 === _a ? void 0 : _a.source) && void 0 !== _b ? _b : this.dataSourceObj),
|
|
380
|
+
this._sourceLength = (null === (_c = this._source) || void 0 === _c ? void 0 : _c.length) || 0,
|
|
381
|
+
this.sortedIndexMap.clear(), this.currentIndexedData = Array.from({
|
|
382
|
+
length: this._sourceLength
|
|
383
|
+
}, ((_, i) => i)), this.userPagination || (this.pagination.perPageCount = this._sourceLength,
|
|
384
|
+
this.pagination.totalCount = this._sourceLength);
|
|
385
|
+
}
|
|
386
|
+
updateFilterRules(filterRules) {
|
|
387
|
+
var _a, _b, _c;
|
|
388
|
+
this.dataConfig.filterRules = filterRules, this._source = this.processRecords(null !== (_b = null === (_a = this.dataSourceObj) || void 0 === _a ? void 0 : _a.source) && void 0 !== _b ? _b : this.dataSourceObj),
|
|
389
|
+
this._sourceLength = (null === (_c = this._source) || void 0 === _c ? void 0 : _c.length) || 0,
|
|
390
|
+
this.currentIndexedData = Array.from({
|
|
391
|
+
length: this._sourceLength
|
|
392
|
+
}, ((_, i) => i)), this.userPagination || (this.pagination.perPageCount = this._sourceLength,
|
|
393
|
+
this.pagination.totalCount = this._sourceLength), this.updatePagerData();
|
|
394
|
+
}
|
|
312
395
|
clearSortedIndexMap() {
|
|
313
396
|
this.lastOrderField && this.lastOrder && this.sortedIndexMap.forEach(((sortMap, key) => {
|
|
314
397
|
key !== this.lastOrderField ? this.sortedIndexMap.delete(key) : "asc" === this.lastOrder ? (sortMap.desc = [],
|
|
@@ -345,7 +428,8 @@ export class DataSource extends EventTarget {
|
|
|
345
428
|
this.currentIndexedData = null, this.currentPagerIndexedData.length = 0;
|
|
346
429
|
}
|
|
347
430
|
getOriginalRecord(dataIndex) {
|
|
348
|
-
|
|
431
|
+
var _a;
|
|
432
|
+
return (null === (_a = this.dataConfig) || void 0 === _a ? void 0 : _a.filterRules) ? this.source[dataIndex] : getValue(this._get(dataIndex), (val => {
|
|
349
433
|
this.recordPromiseCallBack(dataIndex, val);
|
|
350
434
|
}));
|
|
351
435
|
}
|