@visactor/vtable-plugins 1.21.1 → 1.22.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/add-row-column.js +2 -2
- package/cjs/add-row-column.js.map +1 -1
- package/cjs/auto-fill/utils/date.js +1 -1
- package/cjs/auto-fill/utils/fill.js +1 -1
- package/cjs/column-series.js +1 -1
- package/cjs/column-series.js.map +1 -1
- package/cjs/contextmenu/handle-menu-helper.js +16 -9
- package/cjs/contextmenu/handle-menu-helper.js.map +1 -1
- package/cjs/contextmenu/menu-manager.js +1 -2
- package/cjs/contextmenu/styles.js +2 -1
- package/cjs/highlight-header-when-select-cell.js +1 -1
- package/cjs/highlight-header-when-select-cell.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +4 -4
- package/cjs/index.js.map +1 -1
- package/cjs/master-detail-plugin/checkbox.d.ts +5 -0
- package/cjs/master-detail-plugin/checkbox.js +105 -0
- package/cjs/master-detail-plugin/checkbox.js.map +1 -0
- package/cjs/master-detail-plugin/config.d.ts +17 -0
- package/cjs/master-detail-plugin/config.js +113 -0
- package/cjs/master-detail-plugin/config.js.map +1 -0
- package/cjs/master-detail-plugin/core.d.ts +50 -0
- package/cjs/master-detail-plugin/core.js +310 -0
- package/cjs/master-detail-plugin/core.js.map +1 -0
- package/cjs/master-detail-plugin/events.d.ts +59 -0
- package/cjs/master-detail-plugin/events.js +265 -0
- package/cjs/master-detail-plugin/events.js.map +1 -0
- package/cjs/master-detail-plugin/index.d.ts +4 -0
- package/cjs/master-detail-plugin/index.js +15 -0
- package/cjs/master-detail-plugin/index.js.map +1 -0
- package/cjs/master-detail-plugin/subtable.d.ts +39 -0
- package/cjs/master-detail-plugin/subtable.js +457 -0
- package/cjs/master-detail-plugin/subtable.js.map +1 -0
- package/cjs/master-detail-plugin/table-api-extensions.d.ts +59 -0
- package/cjs/master-detail-plugin/table-api-extensions.js +462 -0
- package/cjs/master-detail-plugin/table-api-extensions.js.map +1 -0
- package/cjs/master-detail-plugin/types.d.ts +61 -0
- package/cjs/master-detail-plugin/types.js +20 -0
- package/cjs/master-detail-plugin/types.js.map +1 -0
- package/cjs/master-detail-plugin/utils.d.ts +8 -0
- package/cjs/master-detail-plugin/utils.js +62 -0
- package/cjs/master-detail-plugin/utils.js.map +1 -0
- package/cjs/master-detail-plugin.d.ts +1 -0
- package/cjs/master-detail-plugin.js +15 -0
- package/cjs/master-detail-plugin.js.map +1 -0
- package/cjs/paste-add-row-column.js +2 -2
- package/cjs/paste-add-row-column.js.map +1 -1
- package/cjs/row-series.js +1 -2
- package/cjs/table-carousel-animation.js +2 -1
- package/cjs/table-export/csv/index.js +1 -1
- package/cjs/table-export/util/color.js +2 -1
- package/cjs/table-export/util/download.js +1 -1
- package/cjs/table-export/util/encode.js +1 -1
- package/cjs/table-export/util/indent.js +1 -1
- package/cjs/table-export/util/pagination.js +1 -1
- package/cjs/table-export/util/promise.js +1 -1
- package/cjs/table-export/util/type.js +1 -1
- package/dist/vtable-plugins.js +2885 -240
- package/dist/vtable-plugins.min.js +3 -3
- package/es/add-row-column.js +2 -2
- package/es/add-row-column.js.map +1 -1
- package/es/auto-fill/utils/date.js +1 -1
- package/es/auto-fill/utils/fill.js +1 -1
- package/es/column-series.js +1 -1
- package/es/column-series.js.map +1 -1
- package/es/contextmenu/handle-menu-helper.js +16 -9
- package/es/contextmenu/handle-menu-helper.js.map +1 -1
- package/es/contextmenu/menu-manager.js +1 -2
- package/es/contextmenu/styles.js +2 -1
- package/es/highlight-header-when-select-cell.js +1 -1
- package/es/highlight-header-when-select-cell.js.map +1 -1
- package/es/index.d.ts +1 -0
- package/es/index.js +2 -0
- package/es/index.js.map +1 -1
- package/es/master-detail-plugin/checkbox.d.ts +5 -0
- package/es/master-detail-plugin/checkbox.js +94 -0
- package/es/master-detail-plugin/checkbox.js.map +1 -0
- package/es/master-detail-plugin/config.d.ts +17 -0
- package/es/master-detail-plugin/config.js +80 -0
- package/es/master-detail-plugin/config.js.map +1 -0
- package/es/master-detail-plugin/core.d.ts +50 -0
- package/es/master-detail-plugin/core.js +285 -0
- package/es/master-detail-plugin/core.js.map +1 -0
- package/es/master-detail-plugin/events.d.ts +59 -0
- package/es/master-detail-plugin/events.js +232 -0
- package/es/master-detail-plugin/events.js.map +1 -0
- package/es/master-detail-plugin/index.d.ts +4 -0
- package/es/master-detail-plugin/index.js +4 -0
- package/es/master-detail-plugin/index.js.map +1 -0
- package/es/master-detail-plugin/subtable.d.ts +39 -0
- package/es/master-detail-plugin/subtable.js +426 -0
- package/es/master-detail-plugin/subtable.js.map +1 -0
- package/es/master-detail-plugin/table-api-extensions.d.ts +59 -0
- package/es/master-detail-plugin/table-api-extensions.js +445 -0
- package/es/master-detail-plugin/table-api-extensions.js.map +1 -0
- package/es/master-detail-plugin/types.d.ts +61 -0
- package/es/master-detail-plugin/types.js +12 -0
- package/es/master-detail-plugin/types.js.map +1 -0
- package/es/master-detail-plugin/utils.d.ts +8 -0
- package/es/master-detail-plugin/utils.js +52 -0
- package/es/master-detail-plugin/utils.js.map +1 -0
- package/es/master-detail-plugin.d.ts +1 -0
- package/es/master-detail-plugin.js +2 -0
- package/es/master-detail-plugin.js.map +1 -0
- package/es/paste-add-row-column.js +2 -2
- package/es/paste-add-row-column.js.map +1 -1
- package/es/row-series.js +1 -2
- package/es/table-carousel-animation.js +2 -1
- package/es/table-export/csv/index.js +1 -1
- package/es/table-export/util/color.js +2 -1
- package/es/table-export/util/download.js +1 -1
- package/es/table-export/util/encode.js +1 -1
- package/es/table-export/util/indent.js +1 -1
- package/es/table-export/util/pagination.js +1 -1
- package/es/table-export/util/promise.js +1 -1
- package/es/table-export/util/type.js +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type * as VTable from '@visactor/vtable';
|
|
2
|
+
import type { Group } from '@visactor/vtable/src/vrender';
|
|
3
|
+
export interface DetailTableOptions extends VTable.ListTableConstructorOptions {
|
|
4
|
+
style?: {
|
|
5
|
+
margin?: number | [number, number] | [number, number, number, number];
|
|
6
|
+
height?: number;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export interface MasterDetailPluginOptions {
|
|
10
|
+
enableCheckboxCascade?: boolean;
|
|
11
|
+
detailTableOptions?: DetailTableOptions | ((params: {
|
|
12
|
+
data: unknown;
|
|
13
|
+
bodyRowIndex: number;
|
|
14
|
+
}) => DetailTableOptions);
|
|
15
|
+
}
|
|
16
|
+
export interface SubTableCheckboxState {
|
|
17
|
+
checkedState: Record<string, Record<string | number, boolean | 'indeterminate'>>;
|
|
18
|
+
headerCheckedState: Record<string | number, boolean | 'indeterminate'>;
|
|
19
|
+
}
|
|
20
|
+
export interface InternalProps {
|
|
21
|
+
expandedRecordIndices: (number | number[])[];
|
|
22
|
+
subTableInstances: Map<number, VTable.ListTable>;
|
|
23
|
+
originalRowHeights: Map<number, number>;
|
|
24
|
+
_tempExpandedRecordIndices?: (number | number[])[];
|
|
25
|
+
subTableCheckboxStates?: Map<number, SubTableCheckboxState>;
|
|
26
|
+
}
|
|
27
|
+
export interface CellContentWidthEventData {
|
|
28
|
+
col: number;
|
|
29
|
+
row: number;
|
|
30
|
+
distWidth: number;
|
|
31
|
+
cellHeight: number;
|
|
32
|
+
detaX: number;
|
|
33
|
+
autoRowHeight: boolean;
|
|
34
|
+
needUpdateRowHeight: boolean;
|
|
35
|
+
cellGroup: Group;
|
|
36
|
+
padding: [number, number, number, number];
|
|
37
|
+
textAlign: CanvasTextAlign;
|
|
38
|
+
textBaseline: CanvasTextBaseline;
|
|
39
|
+
}
|
|
40
|
+
export interface SelectBorderHeightEventData {
|
|
41
|
+
startRow: number;
|
|
42
|
+
endRow: number;
|
|
43
|
+
currentHeight: number;
|
|
44
|
+
selectComp: {
|
|
45
|
+
rect: unknown;
|
|
46
|
+
fillhandle?: unknown;
|
|
47
|
+
role: string;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export type LazyLoadState = 'loading' | 'loaded' | 'error';
|
|
51
|
+
export type RecordIndexType = number | number[];
|
|
52
|
+
export declare function recordIndexEquals(a: RecordIndexType, b: RecordIndexType): boolean;
|
|
53
|
+
export declare function includesRecordIndex(array: (number | number[])[], target: RecordIndexType): boolean;
|
|
54
|
+
export declare function findRecordIndexPosition(array: (number | number[])[], target: RecordIndexType): number;
|
|
55
|
+
export interface SubTableEventInfo {
|
|
56
|
+
eventType: keyof typeof VTable.TABLE_EVENT_TYPE;
|
|
57
|
+
masterBodyRowIndex: number;
|
|
58
|
+
masterRowIndex: number;
|
|
59
|
+
subTable: unknown;
|
|
60
|
+
originalEventArgs?: unknown;
|
|
61
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function recordIndexEquals(a, b) {
|
|
2
|
+
return "number" == typeof a && "number" == typeof b ? a === b : Array.isArray(a) && Array.isArray(b) ? a.length === b.length && a.every(((val, index) => val === b[index])) : "number" == typeof a && Array.isArray(b) ? 1 === b.length && b[0] === a : !(!Array.isArray(a) || "number" != typeof b) && (1 === a.length && a[0] === b);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export function includesRecordIndex(array, target) {
|
|
6
|
+
return array.some((item => recordIndexEquals(item, target)));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function findRecordIndexPosition(array, target) {
|
|
10
|
+
return array.findIndex((item => recordIndexEquals(item, target)));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/master-detail-plugin/types.ts"],"names":[],"mappings":"AA6EA,MAAM,UAAU,iBAAiB,CAAC,CAAkB,EAAE,CAAkB;IACtE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAClD,OAAO,CAAC,KAAK,CAAC,CAAC;KAChB;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACxC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3E;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC7C,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;KACrC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAC7C,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;KACrC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAKD,MAAM,UAAU,mBAAmB,CAAC,KAA4B,EAAE,MAAuB;IACvF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAKD,MAAM,UAAU,uBAAuB,CAAC,KAA4B,EAAE,MAAuB;IAC3F,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAClE,CAAC","file":"types.js","sourcesContent":["import type * as VTable from '@visactor/vtable';\r\nimport type { Group } from '@visactor/vtable/src/vrender';\r\n\r\n/** 子表配置接口 - 继承 ListTableConstructorOptions */\r\nexport interface DetailTableOptions extends VTable.ListTableConstructorOptions {\r\n style?: {\r\n margin?: number | [number, number] | [number, number, number, number];\r\n height?: number;\r\n };\r\n}\r\n\r\n/**\r\n * 主从表插件配置选项\r\n */\r\nexport interface MasterDetailPluginOptions {\r\n /** 是否启用checkbox级联功能 - 控制主从表之间的复选框联动,默认为 true */\r\n enableCheckboxCascade?: boolean;\r\n /** 子表配置 - 可以是静态配置对象或动态配置函数 */\r\n detailTableOptions?: DetailTableOptions | ((params: { data: unknown; bodyRowIndex: number }) => DetailTableOptions);\r\n}\r\n\r\n/**\r\n * 子表checkbox状态接口\r\n */\r\nexport interface SubTableCheckboxState {\r\n checkedState: Record<string, Record<string | number, boolean | 'indeterminate'>>;\r\n headerCheckedState: Record<string | number, boolean | 'indeterminate'>;\r\n}\r\n\r\n/**\r\n * 内部属性扩展接口\r\n */\r\nexport interface InternalProps {\r\n expandedRecordIndices: (number | number[])[];\r\n subTableInstances: Map<number, VTable.ListTable>;\r\n originalRowHeights: Map<number, number>;\r\n _tempExpandedRecordIndices?: (number | number[])[];\r\n subTableCheckboxStates?: Map<number, SubTableCheckboxState>;\r\n}\r\n\r\n/**\r\n * 事件数据接口\r\n */\r\nexport interface CellContentWidthEventData {\r\n col: number;\r\n row: number;\r\n distWidth: number;\r\n cellHeight: number;\r\n detaX: number;\r\n autoRowHeight: boolean;\r\n needUpdateRowHeight: boolean;\r\n cellGroup: Group;\r\n padding: [number, number, number, number];\r\n textAlign: CanvasTextAlign;\r\n textBaseline: CanvasTextBaseline;\r\n}\r\n\r\nexport interface SelectBorderHeightEventData {\r\n startRow: number;\r\n endRow: number;\r\n currentHeight: number;\r\n selectComp: { rect: unknown; fillhandle?: unknown; role: string };\r\n}\r\n\r\n/**\r\n * 懒加载状态枚举\r\n */\r\nexport type LazyLoadState = 'loading' | 'loaded' | 'error';\r\n\r\n/**\r\n * 记录索引类型 - 支持单个数字或数字数组\r\n */\r\nexport type RecordIndexType = number | number[];\r\n\r\n/**\r\n * 工具函数:比较两个记录索引是否相等\r\n */\r\nexport function recordIndexEquals(a: RecordIndexType, b: RecordIndexType): boolean {\r\n if (typeof a === 'number' && typeof b === 'number') {\r\n return a === b;\r\n }\r\n if (Array.isArray(a) && Array.isArray(b)) {\r\n return a.length === b.length && a.every((val, index) => val === b[index]);\r\n }\r\n // 一个是数字,一个是数组的情况\r\n if (typeof a === 'number' && Array.isArray(b)) {\r\n return b.length === 1 && b[0] === a;\r\n }\r\n if (Array.isArray(a) && typeof b === 'number') {\r\n return a.length === 1 && a[0] === b;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * 工具函数:检查记录索引数组中是否包含指定索引\r\n */\r\nexport function includesRecordIndex(array: (number | number[])[], target: RecordIndexType): boolean {\r\n return array.some(item => recordIndexEquals(item, target));\r\n}\r\n\r\n/**\r\n * 工具函数:在记录索引数组中查找指定索引的位置\r\n */\r\nexport function findRecordIndexPosition(array: (number | number[])[], target: RecordIndexType): number {\r\n return array.findIndex(item => recordIndexEquals(item, target));\r\n}\r\n\r\n/**\r\n * 子表事件信息接口\r\n */\r\nexport interface SubTableEventInfo {\r\n /** 子表事件类型 */\r\n eventType: keyof typeof VTable.TABLE_EVENT_TYPE;\r\n /** 主表行索引(不包含表头) */\r\n masterBodyRowIndex: number;\r\n /** 主表行索引(包含表头) */\r\n masterRowIndex: number;\r\n /** 子表实例 */\r\n subTable: unknown;\r\n /** 原始事件数据 */\r\n originalEventArgs?: unknown;\r\n}\r\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as VTable from '@visactor/vtable';
|
|
2
|
+
import type { InternalProps } from './types';
|
|
3
|
+
export declare function parseMargin(margin?: number | [number, number] | [number, number, number, number]): [number, number, number, number];
|
|
4
|
+
export declare function getInternalProps(table: VTable.ListTable): VTable.TYPES.ListTableProtected & InternalProps;
|
|
5
|
+
export declare function getRecordByRowIndex(table: VTable.ListTable, bodyRowIndex: number): Record<string, unknown>;
|
|
6
|
+
export declare function getOriginalRowHeight(table: VTable.ListTable, bodyRowIndex: number): number;
|
|
7
|
+
export declare function findCheckboxColumnIndex(table: VTable.ListTable, field: string | number): number;
|
|
8
|
+
export declare function setCellCheckboxStateByAttribute(col: number, row: number, checked: boolean | 'indeterminate', table: VTable.ListTable): void;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export function parseMargin(margin) {
|
|
2
|
+
if (null == margin) return [ 10, 10, 10, 10 ];
|
|
3
|
+
if ("number" == typeof margin) return [ margin, margin, margin, margin ];
|
|
4
|
+
if (Array.isArray(margin)) {
|
|
5
|
+
if (2 === margin.length) {
|
|
6
|
+
const [vertical, horizontal] = margin;
|
|
7
|
+
return [ vertical, horizontal, vertical, horizontal ];
|
|
8
|
+
}
|
|
9
|
+
if (4 === margin.length) return margin;
|
|
10
|
+
}
|
|
11
|
+
return [ 10, 10, 10, 10 ];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function getInternalProps(table) {
|
|
15
|
+
return table.internalProps;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function getRecordByRowIndex(table, bodyRowIndex) {
|
|
19
|
+
return table.dataSource.getRaw(bodyRowIndex);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function getOriginalRowHeight(table, bodyRowIndex) {
|
|
23
|
+
var _a;
|
|
24
|
+
return (null === (_a = getInternalProps(table).originalRowHeights) || void 0 === _a ? void 0 : _a.get(bodyRowIndex)) || 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const columnIndexCache = new WeakMap;
|
|
28
|
+
|
|
29
|
+
export function findCheckboxColumnIndex(table, field) {
|
|
30
|
+
let tableCache = columnIndexCache.get(table);
|
|
31
|
+
if (tableCache || (tableCache = new Map, columnIndexCache.set(table, tableCache)),
|
|
32
|
+
tableCache.has(field)) return tableCache.get(field);
|
|
33
|
+
for (let col = 0; col < table.colCount; col++) {
|
|
34
|
+
if (table.getHeaderField(col, 0) === field) return tableCache.set(field, col), col;
|
|
35
|
+
}
|
|
36
|
+
return tableCache.set(field, -1), -1;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function setCellCheckboxStateByAttribute(col, row, checked, table) {
|
|
40
|
+
const cellGroup = table.scenegraph.getCell(col, row);
|
|
41
|
+
cellGroup && cellGroup.forEachChildren((child => {
|
|
42
|
+
const childNode = child;
|
|
43
|
+
("checkbox-icon" === childNode.name || "checkbox" === childNode.name || "checkbox" === childNode.type || childNode.attribute && "checkbox" === childNode.attribute.type) && childNode.setAttributes && ("indeterminate" === checked ? childNode.setAttributes({
|
|
44
|
+
checked: !1,
|
|
45
|
+
indeterminate: !0
|
|
46
|
+
}) : childNode.setAttributes({
|
|
47
|
+
checked: checked,
|
|
48
|
+
indeterminate: !1
|
|
49
|
+
}));
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/master-detail-plugin/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type * as VTable from '@visactor/vtable';\r\nimport type { InternalProps } from './types';\r\n\r\n/**\r\n * 解析 margin 配置,返回 [上, 右, 下, 左] 格式\r\n */\r\nexport function parseMargin(\r\n margin?: number | [number, number] | [number, number, number, number]\r\n): [number, number, number, number] {\r\n if (margin === undefined || margin === null) {\r\n return [10, 10, 10, 10];\r\n }\r\n if (typeof margin === 'number') {\r\n return [margin, margin, margin, margin];\r\n }\r\n if (Array.isArray(margin)) {\r\n if (margin.length === 2) {\r\n // [上下, 左右]\r\n const [vertical, horizontal] = margin;\r\n return [vertical, horizontal, vertical, horizontal];\r\n } else if (margin.length === 4) {\r\n // [上, 右, 下, 左]\r\n return margin;\r\n }\r\n }\r\n return [10, 10, 10, 10];\r\n}\r\n\r\n/**\r\n * 获取内部属性\r\n */\r\nexport function getInternalProps(table: VTable.ListTable): VTable.TYPES.ListTableProtected & InternalProps {\r\n return table.internalProps as VTable.TYPES.ListTableProtected & InternalProps;\r\n}\r\n\r\n/**\r\n * 根据行索引获取记录\r\n */\r\nexport function getRecordByRowIndex(table: VTable.ListTable, bodyRowIndex: number): Record<string, unknown> {\r\n return table.dataSource.getRaw(bodyRowIndex) as Record<string, unknown>;\r\n}\r\n\r\n/**\r\n * 获取原始行高\r\n */\r\nexport function getOriginalRowHeight(table: VTable.ListTable, bodyRowIndex: number): number {\r\n const internalProps = getInternalProps(table);\r\n return internalProps.originalRowHeights?.get(bodyRowIndex) || 0;\r\n}\r\n\r\n// 缓存列索引\r\nconst columnIndexCache = new WeakMap<VTable.ListTable, Map<string | number, number>>();\r\n\r\n/**\r\n * 查找checkbox列的索引\r\n */\r\nexport function findCheckboxColumnIndex(table: VTable.ListTable, field: string | number): number {\r\n // 获取或创建表格的缓存\r\n let tableCache = columnIndexCache.get(table);\r\n if (!tableCache) {\r\n tableCache = new Map();\r\n columnIndexCache.set(table, tableCache);\r\n }\r\n\r\n // 检查缓存\r\n if (tableCache.has(field)) {\r\n return tableCache.get(field);\r\n }\r\n\r\n // 查找列索引\r\n for (let col = 0; col < table.colCount; col++) {\r\n const cellField = table.getHeaderField(col, 0);\r\n if (cellField === field) {\r\n tableCache.set(field, col);\r\n return col;\r\n }\r\n }\r\n\r\n // 未找到时也缓存结果\r\n tableCache.set(field, -1);\r\n return -1;\r\n}\r\n\r\n/**\r\n * 设置单元格checkbox状态并更新属性\r\n */\r\nexport function setCellCheckboxStateByAttribute(\r\n col: number,\r\n row: number,\r\n checked: boolean | 'indeterminate',\r\n table: VTable.ListTable\r\n): void {\r\n const cellGroup = table.scenegraph.getCell(col, row);\r\n if (cellGroup) {\r\n cellGroup.forEachChildren((child: unknown) => {\r\n const childNode = child as {\r\n name?: string;\r\n type?: string;\r\n attribute?: { type?: string };\r\n setAttributes?: (attrs: { checked?: boolean; indeterminate?: boolean }) => void;\r\n };\r\n if (\r\n childNode.name === 'checkbox-icon' ||\r\n childNode.name === 'checkbox' ||\r\n childNode.type === 'checkbox' ||\r\n (childNode.attribute && childNode.attribute.type === 'checkbox')\r\n ) {\r\n if (childNode.setAttributes) {\r\n if (checked === 'indeterminate') {\r\n childNode.setAttributes({\r\n checked: false,\r\n indeterminate: true\r\n });\r\n } else {\r\n childNode.setAttributes({\r\n checked: checked,\r\n indeterminate: false\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MasterDetailPlugin, type MasterDetailPluginOptions, type DetailTableOptions } from './master-detail-plugin/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/master-detail-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAGnB,MAAM,8BAA8B,CAAC","file":"master-detail-plugin.js","sourcesContent":["export {\r\n MasterDetailPlugin,\r\n type MasterDetailPluginOptions,\r\n type DetailTableOptions\r\n} from './master-detail-plugin/index';\r\n"]}
|
|
@@ -17,11 +17,11 @@ export class PasteAddRowColumnPlugin {
|
|
|
17
17
|
if (rowsNeeded > 0) for (let i = 0; i < rowsNeeded; i++) (null === (_b = this.pluginOptions) || void 0 === _b ? void 0 : _b.addRowCallback) ? this.pluginOptions.addRowCallback(rowCount + i, this.table) : this.table.addRecord([]);
|
|
18
18
|
if (colsNeeded > 0) for (let i = 0; i < colsNeeded; i++) {
|
|
19
19
|
const newColIndex = colCount + i;
|
|
20
|
-
(null === (_c = this.pluginOptions) || void 0 === _c ? void 0 : _c.addColumnCallback) ? this.pluginOptions.addColumnCallback(newColIndex, this.table) : this.table.
|
|
20
|
+
(null === (_c = this.pluginOptions) || void 0 === _c ? void 0 : _c.addColumnCallback) ? this.pluginOptions.addColumnCallback(newColIndex, this.table) : this.table.addColumns([ {
|
|
21
21
|
field: `field_${newColIndex}`,
|
|
22
22
|
title: `New Column ${newColIndex}`,
|
|
23
23
|
width: 100
|
|
24
|
-
});
|
|
24
|
+
} ]);
|
|
25
25
|
}
|
|
26
26
|
this.table.changeCellValues(col, row, pasteData, !0);
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/paste-add-row-column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOpD,MAAM,OAAO,uBAAuB;IAOlC,YAAY,aAA+C;;QAN3D,OAAE,GAAG,sBAAsB,CAAC;QAC5B,SAAI,GAAG,eAAe,CAAC;QACvB,YAAO,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAKrE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,EAAE,mCAAI,IAAI,CAAC,EAAE,CAAC;IACzC,CAAC;IACD,GAAG,CAAC,GAAG,IAAW;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,KAAK,GAAiB,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAkB,CAAC;QAChC,IAAI,OAAO,KAAK,gBAAgB,CAAC,WAAW,EAAE;YAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAED,WAAW;;QACT,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAErC,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC;QACxC,MAAM,cAAc,GAAG,CAAA,MAAA,SAAS,CAAC,CAAC,CAAC,0CAAE,MAAM,KAAI,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAG,GAAG,GAAG,cAAc,GAAG,QAAQ,CAAC;QACnD,MAAM,UAAU,GAAG,GAAG,GAAG,cAAc,GAAG,QAAQ,CAAC;QAGnD,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,cAAc,EAAE;oBACtC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC7D;qBAAM;oBACL,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;iBAC1B;aACF;SACF;QAGD,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,WAAW,GAAG,QAAQ,GAAG,CAAC,CAAC;gBACjC,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,iBAAiB,EAAE;oBACzC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC/D;qBAAM;oBACL,IAAI,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/paste-add-row-column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOpD,MAAM,OAAO,uBAAuB;IAOlC,YAAY,aAA+C;;QAN3D,OAAE,GAAG,sBAAsB,CAAC;QAC5B,SAAI,GAAG,eAAe,CAAC;QACvB,YAAO,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAKrE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,EAAE,mCAAI,IAAI,CAAC,EAAE,CAAC;IACzC,CAAC;IACD,GAAG,CAAC,GAAG,IAAW;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,KAAK,GAAiB,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAkB,CAAC;QAChC,IAAI,OAAO,KAAK,gBAAgB,CAAC,WAAW,EAAE;YAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAED,WAAW;;QACT,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAErC,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC;QACxC,MAAM,cAAc,GAAG,CAAA,MAAA,SAAS,CAAC,CAAC,CAAC,0CAAE,MAAM,KAAI,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAG,GAAG,GAAG,cAAc,GAAG,QAAQ,CAAC;QACnD,MAAM,UAAU,GAAG,GAAG,GAAG,cAAc,GAAG,QAAQ,CAAC;QAGnD,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,cAAc,EAAE;oBACtC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC7D;qBAAM;oBACL,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;iBAC1B;aACF;SACF;QAGD,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,WAAW,GAAG,QAAQ,GAAG,CAAC,CAAC;gBACjC,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,iBAAiB,EAAE;oBACzC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC/D;qBAAM;oBACL,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;wBACpB;4BACE,KAAK,EAAE,SAAS,WAAW,EAAE;4BAC7B,KAAK,EAAE,cAAc,WAAW,EAAE;4BAClC,KAAK,EAAE,GAAG;yBACX;qBACF,CAAC,CAAC;iBACJ;aACF;SACF;QAGD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;CACF","file":"paste-add-row-column.js","sourcesContent":["import type { ListTable, BaseTableAPI, pluginsDefinition } from '@visactor/vtable';\nimport { TABLE_EVENT_TYPE } from '@visactor/vtable';\nexport type IPasteAddRowColumnPluginOptions = {\n id?: string;\n addRowCallback?: (addedRow: number, table: ListTable) => void;\n addColumnCallback?: (addedCount: number, table: ListTable) => void;\n};\n\nexport class PasteAddRowColumnPlugin implements pluginsDefinition.IVTablePlugin {\n id = `paste-add-row-column`;\n name = 'Paste Add row';\n runTime = [TABLE_EVENT_TYPE.INITIALIZED, TABLE_EVENT_TYPE.PASTED_DATA];\n table: ListTable;\n pluginOptions: IPasteAddRowColumnPluginOptions;\n pastedData: any;\n constructor(pluginOptions?: IPasteAddRowColumnPluginOptions) {\n this.pluginOptions = pluginOptions;\n this.id = pluginOptions?.id ?? this.id;\n }\n run(...args: any[]) {\n const runtime = args[1];\n const table: BaseTableAPI = args[2];\n this.table = table as ListTable;\n if (runtime === TABLE_EVENT_TYPE.PASTED_DATA) {\n this.pastedData = args[0];\n this.handlePaste();\n }\n }\n\n handlePaste() {\n const { pasteData, row, col } = this.pastedData;\n const rowCount = this.table.rowCount;\n const colCount = this.table.colCount;\n\n const pastedRowCount = pasteData.length;\n const pastedColCount = pasteData[0]?.length || 0;\n\n const rowsNeeded = row + pastedRowCount - rowCount;\n const colsNeeded = col + pastedColCount - colCount;\n\n // 扩展行\n if (rowsNeeded > 0) {\n for (let i = 0; i < rowsNeeded; i++) {\n if (this.pluginOptions?.addRowCallback) {\n this.pluginOptions.addRowCallback(rowCount + i, this.table);\n } else {\n this.table.addRecord([]);\n }\n }\n }\n\n // 扩展列\n if (colsNeeded > 0) {\n for (let i = 0; i < colsNeeded; i++) {\n const newColIndex = colCount + i;\n if (this.pluginOptions?.addColumnCallback) {\n this.pluginOptions.addColumnCallback(newColIndex, this.table);\n } else {\n this.table.addColumns([\n {\n field: `field_${newColIndex}`,\n title: `New Column ${newColIndex}`,\n width: 100\n }\n ]);\n }\n }\n }\n\n // 最后统一写入数据\n this.table.changeCellValues(col, row, pasteData, true);\n }\n\n release() {\n this.table.internalProps.handler.clear();\n }\n}\n"]}
|
package/es/row-series.js
CHANGED
|
@@ -24,5 +24,4 @@ export class RowSeriesPlugin {
|
|
|
24
24
|
(null === (_b = this.pluginOptions.autoExtendRowTriggerKeys) || void 0 === _b ? void 0 : _b.includes(e.key)) && this.table.stateManager.select.cellPos.row === this.table.rowCount - 1 && this.table.addRecord(this.pluginOptions.fillRowRecord ? this.pluginOptions.fillRowRecord(this.table.rowCount - this.table.columnHeaderLevelCount) : {});
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=row-series.js.map
|
|
27
|
+
}
|
|
@@ -7,4 +7,4 @@ export function encodeCellAddress(col, row) {
|
|
|
7
7
|
for (let column = col + 1; column > 0; column = Math.floor((column - 1) / 26)) s = String.fromCharCode((column - 1) % 26 + 65) + s;
|
|
8
8
|
return s + (row + 1);
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=encode.js.map
|
|
10
|
+
//# sourceMappingURL=encode.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { };
|
|
2
|
-
//# sourceMappingURL=type.js.map
|
|
2
|
+
//# sourceMappingURL=type.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vtable-plugins",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.22.0",
|
|
4
4
|
"description": "The search util of VTable",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "VisActor",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"@types/file-saver": "2.0.7"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
|
-
"@visactor/vtable": "1.
|
|
46
|
-
"@visactor/vtable-gantt": "1.
|
|
45
|
+
"@visactor/vtable": "1.22.0",
|
|
46
|
+
"@visactor/vtable-gantt": "1.22.0"
|
|
47
47
|
},
|
|
48
48
|
"peerDependenciesMeta": {
|
|
49
49
|
"@visactor/vtable-gantt": {
|
|
@@ -95,11 +95,11 @@
|
|
|
95
95
|
"@types/react-is": "^17.0.3",
|
|
96
96
|
"rollup-plugin-node-resolve": "5.2.0",
|
|
97
97
|
"@types/lodash": "4.14.182",
|
|
98
|
-
"@visactor/vtable": "1.
|
|
99
|
-
"@visactor/vtable-gantt": "1.
|
|
100
|
-
"@visactor/vtable-editors": "1.21.1",
|
|
98
|
+
"@visactor/vtable": "1.22.0",
|
|
99
|
+
"@visactor/vtable-gantt": "1.22.0",
|
|
101
100
|
"@internal/bundler": "0.0.1",
|
|
102
101
|
"@internal/eslint-config": "0.0.1",
|
|
102
|
+
"@visactor/vtable-editors": "1.22.0",
|
|
103
103
|
"@internal/ts-config": "0.0.1"
|
|
104
104
|
},
|
|
105
105
|
"scripts": {
|