@visactor/vtable 1.10.1 → 1.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/ListTable.js +22 -6
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotTable.d.ts +4 -0
- package/cjs/PivotTable.js +10 -2
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/components/empty-tip/empty-tip.js +2 -2
- package/cjs/components/empty-tip/empty-tip.js.map +1 -1
- package/cjs/components/menu/dom/MenuHandler.js +1 -1
- package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
- package/cjs/components/title/title.js +1 -1
- package/cjs/components/title/title.js.map +1 -1
- package/cjs/core/BaseTable.js +6 -3
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/FouseInput.js +1 -2
- package/cjs/core/animation.js +3 -2
- package/cjs/core/animation.js.map +1 -1
- package/cjs/core/record-helper.js +20 -12
- package/cjs/core/record-helper.js.map +1 -1
- package/cjs/dataset/dataset-pivot-table.js +2 -1
- package/cjs/dataset/statistics-helper.js +2 -2
- package/cjs/dataset/statistics-helper.js.map +1 -1
- package/cjs/edit/edit-manager.js +1 -2
- package/cjs/event/event.js +5 -1
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/listener/container-dom.js +35 -3
- package/cjs/event/listener/container-dom.js.map +1 -1
- package/cjs/event/listener/table-group.js +1 -32
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/header-helper/header-helper.js +1 -1
- package/cjs/header-helper/style.js +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/index.js +2 -1
- package/cjs/layout/pivot-header-layout.js +1 -1
- 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.js +1 -1
- package/cjs/layout/tree-helper.js +2 -2
- package/cjs/plugins/custom-cell-style.js +1 -1
- package/cjs/plugins/icons.js +1 -2
- package/cjs/plugins/list-tree-stick-cell.js +1 -1
- package/cjs/plugins/themes.js +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js +3 -3
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.d.ts +2 -0
- package/cjs/scenegraph/group-creater/progress/proxy.js +12 -0
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +5 -5
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/update-row.js +8 -7
- package/cjs/scenegraph/layout/update-row.js.map +1 -1
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/state/checkbox/checkbox.d.ts +1 -1
- package/cjs/state/checkbox/checkbox.js +11 -6
- package/cjs/state/checkbox/checkbox.js.map +1 -1
- package/cjs/state/select/update-position.js +105 -10
- package/cjs/state/select/update-position.js.map +1 -1
- package/cjs/state/state.d.ts +2 -2
- package/cjs/state/state.js +14 -4
- package/cjs/state/state.js.map +1 -1
- package/cjs/themes/theme.js +1 -1
- package/cjs/themes/theme.js.map +1 -1
- package/cjs/tools/util.js +1 -1
- package/cjs/tools/util.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +9 -8
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
- package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
- package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +9 -0
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +398 -128
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.js +23 -5
- package/es/ListTable.js.map +1 -1
- package/es/PivotTable.d.ts +4 -0
- package/es/PivotTable.js +10 -2
- package/es/PivotTable.js.map +1 -1
- package/es/components/empty-tip/empty-tip.js +2 -2
- package/es/components/empty-tip/empty-tip.js.map +1 -1
- package/es/components/menu/dom/MenuHandler.js +1 -1
- package/es/components/menu/dom/MenuHandler.js.map +1 -1
- package/es/components/title/title.js +1 -1
- package/es/components/title/title.js.map +1 -1
- package/es/core/BaseTable.js +6 -3
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/FouseInput.js +1 -2
- package/es/core/animation.js +4 -3
- package/es/core/animation.js.map +1 -1
- package/es/core/record-helper.js +21 -11
- package/es/core/record-helper.js.map +1 -1
- package/es/dataset/dataset-pivot-table.js +2 -1
- package/es/dataset/statistics-helper.js +2 -2
- package/es/dataset/statistics-helper.js.map +1 -1
- package/es/edit/edit-manager.js +1 -2
- package/es/event/event.js +5 -1
- package/es/event/event.js.map +1 -1
- package/es/event/listener/container-dom.js +34 -3
- package/es/event/listener/container-dom.js.map +1 -1
- package/es/event/listener/table-group.js +1 -32
- package/es/event/listener/table-group.js.map +1 -1
- package/es/header-helper/header-helper.js +1 -1
- package/es/header-helper/style.js +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/index.js +2 -1
- package/es/layout/pivot-header-layout.js +1 -1
- 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.js +1 -1
- package/es/layout/tree-helper.js +1 -1
- package/es/plugins/custom-cell-style.js +1 -1
- package/es/plugins/icons.js +1 -2
- package/es/plugins/list-tree-stick-cell.js +1 -1
- package/es/plugins/themes.js +1 -1
- package/es/scenegraph/group-creater/column-helper.js +3 -3
- package/es/scenegraph/group-creater/column-helper.js.map +1 -1
- package/es/scenegraph/group-creater/progress/proxy.d.ts +2 -0
- package/es/scenegraph/group-creater/progress/proxy.js +12 -0
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +5 -5
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js +1 -1
- package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
- package/es/scenegraph/layout/compute-col-width.js +1 -1
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/update-row.js +7 -6
- package/es/scenegraph/layout/update-row.js.map +1 -1
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/state/checkbox/checkbox.d.ts +1 -1
- package/es/state/checkbox/checkbox.js +11 -6
- package/es/state/checkbox/checkbox.js.map +1 -1
- package/es/state/select/update-position.js +105 -10
- package/es/state/select/update-position.js.map +1 -1
- package/es/state/state.d.ts +2 -2
- package/es/state/state.js +14 -4
- package/es/state/state.js.map +1 -1
- package/es/themes/theme.js +1 -1
- package/es/themes/theme.js.map +1 -1
- package/es/tools/util.js +1 -1
- package/es/tools/util.js.map +1 -1
- package/es/ts-types/base-table.d.ts +9 -8
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/list-table/define/basic-define.js.map +1 -1
- package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
- package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +9 -0
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +4 -4
|
@@ -4,7 +4,7 @@ export declare function setCheckedState(col: number, row: number, field: string
|
|
|
4
4
|
export declare function setHeaderCheckedState(field: string | number, checked: boolean, state: StateManager): void;
|
|
5
5
|
export declare function syncCheckedState(col: number, row: number, field: string | number, checked: boolean, state: StateManager): boolean | 'indeterminate';
|
|
6
6
|
export declare function initCheckedState(records: any[], state: StateManager): void;
|
|
7
|
-
export declare function updateHeaderCheckedState(field: string | number, state: StateManager): boolean | 'indeterminate';
|
|
7
|
+
export declare function updateHeaderCheckedState(field: string | number, state: StateManager, col: number, row: number): boolean | 'indeterminate';
|
|
8
8
|
export declare function initLeftRecordsCheckState(records: any[], state: StateManager): void;
|
|
9
9
|
export declare function setCellCheckboxState(col: number, row: number, checked: boolean, table: BaseTableAPI): void;
|
|
10
10
|
export declare function changeCheckboxOrder(sourceIndex: number, targetIndex: number, state: StateManager): void;
|
|
@@ -23,7 +23,7 @@ export function syncCheckedState(col, row, field, checked, state) {
|
|
|
23
23
|
if (isValid(state.headerCheckedState[field])) return state.headerCheckedState[field];
|
|
24
24
|
if ("function" == typeof checked) return;
|
|
25
25
|
if (isValid(checked)) state.headerCheckedState[field] = checked; else if ((null === (_a = state.checkedState) || void 0 === _a ? void 0 : _a.length) > 0) {
|
|
26
|
-
return state.updateHeaderCheckedState(field);
|
|
26
|
+
return state.updateHeaderCheckedState(field, col, row);
|
|
27
27
|
}
|
|
28
28
|
return state.headerCheckedState[field];
|
|
29
29
|
}
|
|
@@ -69,12 +69,17 @@ export function initCheckedState(records, state) {
|
|
|
69
69
|
}));
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
export function updateHeaderCheckedState(field, state) {
|
|
73
|
-
const allChecked = state.checkedState.every((
|
|
72
|
+
export function updateHeaderCheckedState(field, state, col, row) {
|
|
73
|
+
const allChecked = state.checkedState.every(((check_state, index) => {
|
|
74
|
+
const tableIndex = state.table.getTableIndexByRecordIndex(index);
|
|
75
|
+
return !!(state.table.transpose ? state.table.getCustomMerge(tableIndex, row) : state.table.getCustomMerge(col, tableIndex)) || !0 === (null == check_state ? void 0 : check_state[field]);
|
|
76
|
+
}));
|
|
74
77
|
if (allChecked) return state.headerCheckedState[field] = !0, allChecked;
|
|
75
|
-
if (state.checkedState.every((
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
if (state.checkedState.every(((check_state, index) => {
|
|
79
|
+
const tableIndex = state.table.getTableIndexByRecordIndex(index);
|
|
80
|
+
return !!(state.table.transpose ? state.table.getCustomMerge(tableIndex, row) : state.table.getCustomMerge(col, tableIndex)) || !1 === (null == check_state ? void 0 : check_state[field]);
|
|
81
|
+
}))) return state.headerCheckedState[field] = !1, !1;
|
|
82
|
+
return !!state.checkedState.find((check_state => !0 === (null == check_state ? void 0 : check_state[field]))) && (state.headerCheckedState[field] = "indeterminate",
|
|
78
83
|
"indeterminate");
|
|
79
84
|
}
|
|
80
85
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/state/checkbox/checkbox.ts"],"names":[],"mappings":"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","file":"checkbox.js","sourcesContent":["import { isArray, isObject, isValid } from '@visactor/vutils';\nimport type { StateManager } from '../state';\nimport type { CheckboxColumnDefine } from '../../ts-types';\nimport { getOrApply } from '../../tools/helper';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { CheckBox } from '@visactor/vrender-components';\nimport type { CachedDataSource } from '../../data';\n\nexport function setCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean,\n state: StateManager\n) {\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex) as number;\n if (state.checkedState[dataIndex]) {\n state.checkedState[dataIndex][field] = checked;\n } else {\n state.checkedState[dataIndex] = {};\n state.checkedState[dataIndex][field] = checked;\n }\n }\n}\n\nexport function setHeaderCheckedState(field: string | number, checked: boolean, state: StateManager) {\n state.headerCheckedState[field] = checked;\n state.checkedState?.forEach(recordCheckState => {\n recordCheckState[field] = checked;\n });\n}\n\n//#region CheckedState 状态维护\n\n/**\n * 创建cell节点时同步状态 如果状态缓存有则用 如果没有则设置缓存\n * @param col\n * @param row\n * @param field\n * @param checked\n * @returns\n */\nexport function syncCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean,\n state: StateManager\n): boolean | 'indeterminate' {\n if (state.table.isHeader(col, row)) {\n if (isValid(state.headerCheckedState[field])) {\n return state.headerCheckedState[field];\n } else if (typeof checked === 'function') {\n return undefined;\n } else if (isValid(checked)) {\n state.headerCheckedState[field] = checked;\n } else if (state.checkedState?.length > 0) {\n const isAllChecked = state.updateHeaderCheckedState(field);\n return isAllChecked;\n }\n return state.headerCheckedState[field];\n }\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex) as number;\n if (isValid(state.checkedState[dataIndex]?.[field])) {\n return state.checkedState[dataIndex][field];\n }\n if (state.checkedState[dataIndex]) {\n state.checkedState[dataIndex][field] = checked;\n } else {\n state.checkedState[dataIndex] = {};\n state.checkedState[dataIndex][field] = checked;\n }\n }\n return checked;\n}\n\n/**\n * 初始化check状态\n * @param records\n */\nexport function initCheckedState(records: any[], state: StateManager) {\n // clear checkbox state\n state.checkedState = [];\n state.headerCheckedState = {};\n state.radioState = {};\n\n let isNeedInitHeaderCheckedStateFromRecord = false;\n state._checkboxCellTypeFields = [];\n state._headerCheckFuncs = {};\n state.table.internalProps.layoutMap.headerObjects.forEach((hd, index) => {\n if (hd.headerType === 'checkbox') {\n const headerChecked = (hd.define as CheckboxColumnDefine).checked as boolean;\n\n if (headerChecked === undefined || headerChecked === null || typeof headerChecked === 'function') {\n // 如果没有明确指定check的状态 则需要在下面遍历所有数据获取到节点状态 确定这个header的check状态\n isNeedInitHeaderCheckedStateFromRecord = true;\n if (typeof headerChecked === 'function') {\n state._headerCheckFuncs[hd.field as string | number] = headerChecked;\n }\n } else {\n state.headerCheckedState[hd.field as string | number] = headerChecked;\n }\n if (hd.define.cellType === 'checkbox' && !hd.fieldFormat) {\n state._checkboxCellTypeFields.push(hd.field as string | number);\n }\n }\n });\n //如果没有明确指定check的状态 遍历所有数据获取到节点状态 确定这个header的check状态\n if (isNeedInitHeaderCheckedStateFromRecord) {\n records.forEach((record: any, index: number) => {\n state._checkboxCellTypeFields.forEach(field => {\n const value = record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean;\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n if (isChecked === undefined || isChecked === null) {\n const headerCheckFunc = state._headerCheckFuncs[field];\n if (headerCheckFunc) {\n //如果定义的checked是个函数 则需要每个都去计算这个值\n const cellAddr = state.table.getCellAddrByFieldRecord(field, index);\n const globalChecked = getOrApply(headerCheckFunc as any, {\n col: cellAddr.col,\n row: cellAddr.row,\n table: state.table,\n context: null,\n value\n });\n isChecked = globalChecked;\n }\n }\n if (!state.checkedState[index]) {\n state.checkedState[index] = {};\n }\n state.checkedState[index][field] = isChecked;\n });\n });\n }\n}\n\n/**\n * 更新header单元checked的状态,依据当前列每一个数据checked的状态。\n * @param field\n * @returns\n */\nexport function updateHeaderCheckedState(field: string | number, state: StateManager): boolean | 'indeterminate' {\n const allChecked = state.checkedState.every((state: Record<string | number, boolean>) => {\n return state[field] === true;\n });\n if (allChecked) {\n state.headerCheckedState[field] = true;\n return allChecked;\n }\n const allUnChecked = state.checkedState.every((state: Record<string | number, boolean>) => {\n return state[field] === false;\n });\n if (allUnChecked) {\n state.headerCheckedState[field] = false;\n return false;\n }\n const hasChecked = state.checkedState.find((state: Record<string | number, boolean>) => {\n return state[field] === true;\n });\n if (hasChecked) {\n state.headerCheckedState[field] = 'indeterminate';\n return 'indeterminate'; //半选状态\n }\n return false;\n}\n\n/**\n * setRecords的时候虽然调用了initCheckedState 进行了初始化 但当每个表头的checked状态都用配置了的话 初始化不会遍历全部数据\n * @param records\n */\nexport function initLeftRecordsCheckState(records: any[], state: StateManager) {\n for (let index = state.checkedState.length; index < records.length; index++) {\n const record = records[index];\n state._checkboxCellTypeFields.forEach(field => {\n const value = record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean;\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n if (!state.checkedState[index]) {\n state.checkedState[index] = {};\n }\n state.checkedState[index][field] = isChecked;\n });\n }\n}\n\nexport function setCellCheckboxState(col: number, row: number, checked: boolean, table: BaseTableAPI) {\n const cellGoup = table.scenegraph.getCell(col, row);\n const chechbox = cellGoup?.getChildByName('checkbox') as any;\n if (!chechbox) {\n return;\n }\n const { checked: oldChecked, indeterminate } = chechbox.attribute;\n\n if (indeterminate) {\n if (checked) {\n chechbox._handlePointerUp();\n } else {\n chechbox._handlePointerUp();\n chechbox._handlePointerUp();\n }\n } else if (oldChecked) {\n if (checked) {\n // do nothing\n } else {\n chechbox._handlePointerUp();\n }\n } else {\n if (checked) {\n chechbox._handlePointerUp();\n } else {\n // do nothing\n }\n }\n}\n\nexport function changeCheckboxOrder(sourceIndex: number, targetIndex: number, state: StateManager) {\n const { checkedState, table } = state;\n if (table.internalProps.transpose) {\n sourceIndex = table.getRecordShowIndexByCell(sourceIndex, 0);\n targetIndex = table.getRecordShowIndexByCell(targetIndex, 0);\n } else {\n sourceIndex = table.getRecordShowIndexByCell(0, sourceIndex);\n targetIndex = table.getRecordShowIndexByCell(0, targetIndex);\n }\n // if (sourceIndex !== targetIndex) {\n // const sourceRecord = checkedState[sourceIndex];\n // checkedState[sourceIndex] = checkedState[targetIndex];\n // checkedState[targetIndex] = sourceRecord;\n // }\n if (sourceIndex > targetIndex) {\n const sourceRecord = checkedState[sourceIndex];\n for (let i = sourceIndex; i > targetIndex; i--) {\n checkedState[i] = checkedState[i - 1];\n }\n checkedState[targetIndex] = sourceRecord;\n } else if (sourceIndex < targetIndex) {\n const sourceRecord = checkedState[sourceIndex];\n for (let i = sourceIndex; i < targetIndex; i++) {\n checkedState[i] = checkedState[i + 1];\n }\n checkedState[targetIndex] = sourceRecord;\n }\n}\n\nexport function getGroupCheckboxState(table: BaseTableAPI) {\n const result: any[] = [];\n const dataSource = table.dataSource as CachedDataSource;\n const groupKeyLength = dataSource.dataConfig.groupByRules.length + 1;\n dataSource.currentIndexedData.forEach((indexArr: number, index) => {\n if (isArray(indexArr) && indexArr.length === groupKeyLength) {\n // get record by index\n const { vtableOriginIndex } = (dataSource as any).getRawRecord(indexArr);\n result[vtableOriginIndex] = table.stateManager.checkedState[indexArr];\n }\n });\n\n return result;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/state/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,GAAW,EACX,KAAsB,EACtB,OAAgB,EAChB,KAAmB;IAEnB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnE,IAAI,WAAW,IAAI,CAAC,EAAE;QACpB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAW,CAAC;QAC5E,IAAI,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;YACjC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;SAChD;aAAM;YACL,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YACnC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;SAChD;KACF;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAsB,EAAE,OAAgB,EAAE,KAAmB;;IACjG,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IAC1C,MAAA,KAAK,CAAC,YAAY,0CAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE;QAC7C,gBAAgB,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAYD,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,GAAW,EACX,KAAsB,EACtB,OAAgB,EAChB,KAAmB;;IAEnB,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;QAClC,IAAI,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE;YAC5C,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACxC;aAAM,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACxC,OAAO,SAAS,CAAC;SAClB;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;SAC3C;aAAM,IAAI,CAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,MAAM,IAAG,CAAC,EAAE;YACzC,MAAM,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACrE,OAAO,YAAY,CAAC;SACrB;QACD,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;KACxC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnE,IAAI,WAAW,IAAI,CAAC,EAAE;QACpB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAW,CAAC;QAC5E,IAAI,OAAO,CAAC,MAAA,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,0CAAG,KAAK,CAAC,CAAC,EAAE;YACnD,OAAO,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;SAC7C;QACD,IAAI,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;YACjC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;SAChD;aAAM;YACL,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YACnC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;SAChD;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAMD,MAAM,UAAU,gBAAgB,CAAC,OAAc,EAAE,KAAmB;IAElE,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;IACxB,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC9B,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IAEtB,IAAI,sCAAsC,GAAG,KAAK,CAAC;IACnD,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC;IACnC,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC7B,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;QACtE,IAAI,EAAE,CAAC,UAAU,KAAK,UAAU,EAAE;YAChC,MAAM,aAAa,GAAI,EAAE,CAAC,MAA+B,CAAC,OAAkB,CAAC;YAE7E,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBAEhG,sCAAsC,GAAG,IAAI,CAAC;gBAC9C,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;oBACvC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAwB,CAAC,GAAG,aAAa,CAAC;iBACtE;aACF;iBAAM;gBACL,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAwB,CAAC,GAAG,aAAa,CAAC;aACvE;YACD,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;gBACxD,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAwB,CAAC,CAAC;aACjE;SACF;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,sCAAsC,EAAE;QAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,KAAa,EAAE,EAAE;YAC7C,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAA4E,CAAC;gBACvG,IAAI,SAAS,CAAC;gBACd,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACnB,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;iBAC3B;qBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;oBACrC,SAAS,GAAG,KAAK,CAAC;iBACnB;gBACD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE;oBACjD,MAAM,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACvD,IAAI,eAAe,EAAE;wBAEnB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBACpE,MAAM,aAAa,GAAG,UAAU,CAAC,eAAsB,EAAE;4BACvD,GAAG,EAAE,QAAQ,CAAC,GAAG;4BACjB,GAAG,EAAE,QAAQ,CAAC,GAAG;4BACjB,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,OAAO,EAAE,IAAI;4BACb,KAAK;yBACN,CAAC,CAAC;wBACH,SAAS,GAAG,aAAa,CAAC;qBAC3B;iBACF;gBACD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;oBAC9B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;iBAChC;gBACD,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAOD,MAAM,UAAU,wBAAwB,CACtC,KAAsB,EACtB,KAAmB,EACnB,GAAW,EACX,GAAW;IAEX,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAA6C,EAAE,KAAa,EAAE,EAAE;QAC3G,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,SAAS,GAAI,KAAK,CAAC,KAAsB,CAAC,SAAS;YACvD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC;YAC7C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAChD,IAAI,SAAS,EAAE;YACb,OAAO,IAAI,CAAC;SACb;QACD,OAAO,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,KAAK,CAAC,MAAK,IAAI,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,IAAI,UAAU,EAAE;QACd,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACvC,OAAO,UAAU,CAAC;KACnB;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAA6C,EAAE,KAAa,EAAE,EAAE;QAC7G,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,SAAS,GAAI,KAAK,CAAC,KAAsB,CAAC,SAAS;YACvD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC;YAC7C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAChD,IAAI,SAAS,EAAE;YACb,OAAO,IAAI,CAAC;SACb;QACD,OAAO,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,KAAK,CAAC,MAAK,KAAK,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,IAAI,YAAY,EAAE;QAChB,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACxC,OAAO,KAAK,CAAC;KACd;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAA6C,EAAE,EAAE;QAC3F,OAAO,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,KAAK,CAAC,MAAK,IAAI,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,IAAI,UAAU,EAAE;QACd,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC;QAClD,OAAO,eAAe,CAAC;KACxB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAMD,MAAM,UAAU,yBAAyB,CAAC,OAAc,EAAE,KAAmB;IAC3E,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAA4E,CAAC;YACvG,IAAI,SAAS,CAAC;YACd,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACnB,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;aAC3B;iBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;gBACrC,SAAS,GAAG,KAAK,CAAC;aACnB;YACD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;gBAC9B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;aAChC;YACD,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QAC/C,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,GAAW,EAAE,OAAgB,EAAE,KAAmB;IAClG,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,CAAC,UAAU,CAAQ,CAAC;IAC7D,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO;KACR;IACD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC;IAElE,IAAI,aAAa,EAAE;QACjB,IAAI,OAAO,EAAE;YACX,QAAQ,CAAC,gBAAgB,EAAE,CAAC;SAC7B;aAAM;YACL,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC5B,QAAQ,CAAC,gBAAgB,EAAE,CAAC;SAC7B;KACF;SAAM,IAAI,UAAU,EAAE;QACrB,IAAI,OAAO,EAAE;SAEZ;aAAM;YACL,QAAQ,CAAC,gBAAgB,EAAE,CAAC;SAC7B;KACF;SAAM;QACL,IAAI,OAAO,EAAE;YACX,QAAQ,CAAC,gBAAgB,EAAE,CAAC;SAC7B;aAAM;SAEN;KACF;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,WAAmB,EAAE,KAAmB;IAC/F,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACtC,IAAI,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;QACjC,WAAW,GAAG,KAAK,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC7D,WAAW,GAAG,KAAK,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;KAC9D;SAAM;QACL,WAAW,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC7D,WAAW,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;KAC9D;IAMD,IAAI,WAAW,GAAG,WAAW,EAAE;QAC7B,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YAC9C,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACvC;QACD,YAAY,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC;KAC1C;SAAM,IAAI,WAAW,GAAG,WAAW,EAAE;QACpC,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YAC9C,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACvC;QACD,YAAY,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC;KAC1C;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IACvD,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,MAAM,UAAU,GAAG,KAAK,CAAC,UAA8B,CAAC;IACxD,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,QAAgB,EAAE,KAAK,EAAE,EAAE;QAChE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,EAAE;YAE3D,MAAM,EAAE,iBAAiB,EAAE,GAAI,UAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACzE,MAAM,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACvE;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC","file":"checkbox.js","sourcesContent":["import { isArray, isObject, isValid } from '@visactor/vutils';\nimport type { StateManager } from '../state';\nimport type { CheckboxColumnDefine, ListTableAPI } from '../../ts-types';\nimport { getOrApply } from '../../tools/helper';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { CheckBox } from '@visactor/vrender-components';\nimport type { CachedDataSource } from '../../data';\n\nexport function setCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean,\n state: StateManager\n) {\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex) as number;\n if (state.checkedState[dataIndex]) {\n state.checkedState[dataIndex][field] = checked;\n } else {\n state.checkedState[dataIndex] = {};\n state.checkedState[dataIndex][field] = checked;\n }\n }\n}\n\nexport function setHeaderCheckedState(field: string | number, checked: boolean, state: StateManager) {\n state.headerCheckedState[field] = checked;\n state.checkedState?.forEach(recordCheckState => {\n recordCheckState[field] = checked;\n });\n}\n\n//#region CheckedState 状态维护\n\n/**\n * 创建cell节点时同步状态 如果状态缓存有则用 如果没有则设置缓存\n * @param col\n * @param row\n * @param field\n * @param checked\n * @returns\n */\nexport function syncCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean,\n state: StateManager\n): boolean | 'indeterminate' {\n if (state.table.isHeader(col, row)) {\n if (isValid(state.headerCheckedState[field])) {\n return state.headerCheckedState[field];\n } else if (typeof checked === 'function') {\n return undefined;\n } else if (isValid(checked)) {\n state.headerCheckedState[field] = checked;\n } else if (state.checkedState?.length > 0) {\n const isAllChecked = state.updateHeaderCheckedState(field, col, row);\n return isAllChecked;\n }\n return state.headerCheckedState[field];\n }\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex) as number;\n if (isValid(state.checkedState[dataIndex]?.[field])) {\n return state.checkedState[dataIndex][field];\n }\n if (state.checkedState[dataIndex]) {\n state.checkedState[dataIndex][field] = checked;\n } else {\n state.checkedState[dataIndex] = {};\n state.checkedState[dataIndex][field] = checked;\n }\n }\n return checked;\n}\n\n/**\n * 初始化check状态\n * @param records\n */\nexport function initCheckedState(records: any[], state: StateManager) {\n // clear checkbox state\n state.checkedState = [];\n state.headerCheckedState = {};\n state.radioState = {};\n\n let isNeedInitHeaderCheckedStateFromRecord = false;\n state._checkboxCellTypeFields = [];\n state._headerCheckFuncs = {};\n state.table.internalProps.layoutMap.headerObjects.forEach((hd, index) => {\n if (hd.headerType === 'checkbox') {\n const headerChecked = (hd.define as CheckboxColumnDefine).checked as boolean;\n\n if (headerChecked === undefined || headerChecked === null || typeof headerChecked === 'function') {\n // 如果没有明确指定check的状态 则需要在下面遍历所有数据获取到节点状态 确定这个header的check状态\n isNeedInitHeaderCheckedStateFromRecord = true;\n if (typeof headerChecked === 'function') {\n state._headerCheckFuncs[hd.field as string | number] = headerChecked;\n }\n } else {\n state.headerCheckedState[hd.field as string | number] = headerChecked;\n }\n if (hd.define.cellType === 'checkbox' && !hd.fieldFormat) {\n state._checkboxCellTypeFields.push(hd.field as string | number);\n }\n }\n });\n //如果没有明确指定check的状态 遍历所有数据获取到节点状态 确定这个header的check状态\n if (isNeedInitHeaderCheckedStateFromRecord) {\n records.forEach((record: any, index: number) => {\n state._checkboxCellTypeFields.forEach(field => {\n const value = record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean;\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n if (isChecked === undefined || isChecked === null) {\n const headerCheckFunc = state._headerCheckFuncs[field];\n if (headerCheckFunc) {\n //如果定义的checked是个函数 则需要每个都去计算这个值\n const cellAddr = state.table.getCellAddrByFieldRecord(field, index);\n const globalChecked = getOrApply(headerCheckFunc as any, {\n col: cellAddr.col,\n row: cellAddr.row,\n table: state.table,\n context: null,\n value\n });\n isChecked = globalChecked;\n }\n }\n if (!state.checkedState[index]) {\n state.checkedState[index] = {};\n }\n state.checkedState[index][field] = isChecked;\n });\n });\n }\n}\n\n/**\n * 更新header单元checked的状态,依据当前列每一个数据checked的状态。\n * @param field\n * @returns\n */\nexport function updateHeaderCheckedState(\n field: string | number,\n state: StateManager,\n col: number,\n row: number\n): boolean | 'indeterminate' {\n const allChecked = state.checkedState.every((check_state: Record<string | number, boolean>, index: number) => {\n const tableIndex = state.table.getTableIndexByRecordIndex(index);\n const mergeCell = (state.table as ListTableAPI).transpose\n ? state.table.getCustomMerge(tableIndex, row)\n : state.table.getCustomMerge(col, tableIndex);\n if (mergeCell) {\n return true;\n }\n return check_state?.[field] === true;\n });\n if (allChecked) {\n state.headerCheckedState[field] = true;\n return allChecked;\n }\n const allUnChecked = state.checkedState.every((check_state: Record<string | number, boolean>, index: number) => {\n const tableIndex = state.table.getTableIndexByRecordIndex(index);\n const mergeCell = (state.table as ListTableAPI).transpose\n ? state.table.getCustomMerge(tableIndex, row)\n : state.table.getCustomMerge(col, tableIndex);\n if (mergeCell) {\n return true;\n }\n return check_state?.[field] === false;\n });\n if (allUnChecked) {\n state.headerCheckedState[field] = false;\n return false;\n }\n const hasChecked = state.checkedState.find((check_state: Record<string | number, boolean>) => {\n return check_state?.[field] === true;\n });\n if (hasChecked) {\n state.headerCheckedState[field] = 'indeterminate';\n return 'indeterminate'; //半选状态\n }\n return false;\n}\n\n/**\n * setRecords的时候虽然调用了initCheckedState 进行了初始化 但当每个表头的checked状态都用配置了的话 初始化不会遍历全部数据\n * @param records\n */\nexport function initLeftRecordsCheckState(records: any[], state: StateManager) {\n for (let index = state.checkedState.length; index < records.length; index++) {\n const record = records[index];\n state._checkboxCellTypeFields.forEach(field => {\n const value = record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean;\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n if (!state.checkedState[index]) {\n state.checkedState[index] = {};\n }\n state.checkedState[index][field] = isChecked;\n });\n }\n}\n\nexport function setCellCheckboxState(col: number, row: number, checked: boolean, table: BaseTableAPI) {\n const cellGoup = table.scenegraph.getCell(col, row);\n const chechbox = cellGoup?.getChildByName('checkbox') as any;\n if (!chechbox) {\n return;\n }\n const { checked: oldChecked, indeterminate } = chechbox.attribute;\n\n if (indeterminate) {\n if (checked) {\n chechbox._handlePointerUp();\n } else {\n chechbox._handlePointerUp();\n chechbox._handlePointerUp();\n }\n } else if (oldChecked) {\n if (checked) {\n // do nothing\n } else {\n chechbox._handlePointerUp();\n }\n } else {\n if (checked) {\n chechbox._handlePointerUp();\n } else {\n // do nothing\n }\n }\n}\n\nexport function changeCheckboxOrder(sourceIndex: number, targetIndex: number, state: StateManager) {\n const { checkedState, table } = state;\n if (table.internalProps.transpose) {\n sourceIndex = table.getRecordShowIndexByCell(sourceIndex, 0);\n targetIndex = table.getRecordShowIndexByCell(targetIndex, 0);\n } else {\n sourceIndex = table.getRecordShowIndexByCell(0, sourceIndex);\n targetIndex = table.getRecordShowIndexByCell(0, targetIndex);\n }\n // if (sourceIndex !== targetIndex) {\n // const sourceRecord = checkedState[sourceIndex];\n // checkedState[sourceIndex] = checkedState[targetIndex];\n // checkedState[targetIndex] = sourceRecord;\n // }\n if (sourceIndex > targetIndex) {\n const sourceRecord = checkedState[sourceIndex];\n for (let i = sourceIndex; i > targetIndex; i--) {\n checkedState[i] = checkedState[i - 1];\n }\n checkedState[targetIndex] = sourceRecord;\n } else if (sourceIndex < targetIndex) {\n const sourceRecord = checkedState[sourceIndex];\n for (let i = sourceIndex; i < targetIndex; i++) {\n checkedState[i] = checkedState[i + 1];\n }\n checkedState[targetIndex] = sourceRecord;\n }\n}\n\nexport function getGroupCheckboxState(table: BaseTableAPI) {\n const result: any[] = [];\n const dataSource = table.dataSource as CachedDataSource;\n const groupKeyLength = dataSource.dataConfig.groupByRules.length + 1;\n dataSource.currentIndexedData.forEach((indexArr: number, index) => {\n if (isArray(indexArr) && indexArr.length === groupKeyLength) {\n // get record by index\n const { vtableOriginIndex } = (dataSource as any).getRawRecord(indexArr);\n result[vtableOriginIndex] = table.stateManager.checkedState[indexArr];\n }\n });\n\n return result;\n}\n"]}
|
|
@@ -16,7 +16,7 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
|
|
|
16
16
|
let _startCol = 0, _startRow = 0;
|
|
17
17
|
const {disableHeaderSelect: disableHeaderSelect, disableRowSeriesNumberSelect: disableRowSeriesNumberSelect} = (null === (_a = table.options.keyboardOptions) || void 0 === _a ? void 0 : _a.selectAllOnCtrlA) || {};
|
|
18
18
|
disableHeaderSelect && (_startCol = table.rowHeaderLevelCount, _startRow = table.columnHeaderLevelCount),
|
|
19
|
-
(disableRowSeriesNumberSelect || disableHeaderSelect) && table.options.rowSeriesNumber && (_startCol += 1),
|
|
19
|
+
(disableRowSeriesNumberSelect || disableHeaderSelect && table.transpose) && table.options.rowSeriesNumber && (_startCol += 1),
|
|
20
20
|
state.select.ranges.push({
|
|
21
21
|
start: {
|
|
22
22
|
col: _startCol,
|
|
@@ -85,7 +85,14 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
|
|
|
85
85
|
} : table.getCellRange(col, row);
|
|
86
86
|
currentRange.start.col < cellRange.end.col ? currentRange.end.col = cellRange.end.col : currentRange.start.col > cellRange.start.col && (currentRange.end.col = cellRange.start.col),
|
|
87
87
|
currentRange.start.row < cellRange.end.row ? currentRange.end.row = cellRange.end.row : currentRange.start.row > cellRange.start.row && (currentRange.end.row = cellRange.start.row),
|
|
88
|
-
|
|
88
|
+
"body" === state.select.headerSelectMode && (table.isRowHeader(col, row) ? (currentRange.start.col = table.rowHeaderLevelCount + table.leftRowSeriesNumberCount,
|
|
89
|
+
currentRange.end.col = table.colCount - 1) : table.isColumnHeader(col, row) ? (currentRange.start.row = table.columnHeaderLevelCount,
|
|
90
|
+
currentRange.end.row = table.rowCount - 1) : table.internalProps.layoutMap.isSeriesNumberInBody(col, row) ? (currentRange.start.col = table.leftRowSeriesNumberCount,
|
|
91
|
+
currentRange.end.col = table.colCount - 1) : table.isCornerHeader(col, row) ? (currentRange.start.col = table.rowHeaderLevelCount + table.leftRowSeriesNumberCount,
|
|
92
|
+
currentRange.start.row = table.columnHeaderLevelCount, currentRange.end.col = table.colCount - 1,
|
|
93
|
+
currentRange.end.row = table.rowCount - 1) : table.isSeriesNumber(col, row) && (currentRange.start.col = table.leftRowSeriesNumberCount,
|
|
94
|
+
currentRange.start.row = table.columnHeaderLevelCount, currentRange.end.col = table.colCount - 1,
|
|
95
|
+
currentRange.end.row = table.rowCount - 1)), skipBodyMerge && (currentRange.skipBodyMerge = !0);
|
|
89
96
|
}
|
|
90
97
|
scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);
|
|
91
98
|
}
|
|
@@ -95,22 +102,49 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
|
|
|
95
102
|
if (isShift && currentRange) {
|
|
96
103
|
if (isCtrl || (cellPos.col = col, cellPos.row = row), "cell" !== state.select.headerSelectMode && table.isColumnHeader(col, row)) {
|
|
97
104
|
const startCol = Math.min(currentRange.start.col, currentRange.end.col, col), endCol = Math.max(currentRange.start.col, currentRange.end.col, col), startRow = Math.min(currentRange.start.row, currentRange.end.row, row), endRow = table.rowCount - 1;
|
|
98
|
-
currentRange.start = {
|
|
105
|
+
"body" === state.select.headerSelectMode ? (currentRange.start = {
|
|
106
|
+
col: startCol,
|
|
107
|
+
row: table.columnHeaderLevelCount
|
|
108
|
+
}, currentRange.end = {
|
|
109
|
+
col: endCol,
|
|
110
|
+
row: table.rowCount - 1
|
|
111
|
+
}) : (currentRange.start = {
|
|
99
112
|
col: startCol,
|
|
100
113
|
row: startRow
|
|
101
114
|
}, currentRange.end = {
|
|
102
115
|
col: endCol,
|
|
103
116
|
row: endRow
|
|
104
|
-
};
|
|
117
|
+
});
|
|
105
118
|
} else if ("cell" !== state.select.headerSelectMode && table.isRowHeader(col, row)) {
|
|
106
119
|
const startCol = Math.min(currentRange.start.col, currentRange.end.col, col), endCol = table.colCount - 1, startRow = Math.min(currentRange.start.row, currentRange.end.row, row), endRow = Math.max(currentRange.start.row, currentRange.end.row, row);
|
|
107
|
-
currentRange.start = {
|
|
120
|
+
"body" === state.select.headerSelectMode ? (currentRange.start = {
|
|
121
|
+
col: table.leftRowSeriesNumberCount + table.rowHeaderLevelCount,
|
|
122
|
+
row: startRow
|
|
123
|
+
}, currentRange.end = {
|
|
124
|
+
col: table.colCount - 1,
|
|
125
|
+
row: endRow
|
|
126
|
+
}) : (currentRange.start = {
|
|
108
127
|
col: startCol,
|
|
109
128
|
row: startRow
|
|
110
129
|
}, currentRange.end = {
|
|
111
130
|
col: endCol,
|
|
112
131
|
row: endRow
|
|
113
|
-
};
|
|
132
|
+
});
|
|
133
|
+
} else if ("cell" !== state.select.headerSelectMode && table.isSeriesNumberInBody(col, row)) {
|
|
134
|
+
const startCol = Math.min(currentRange.start.col, currentRange.end.col, col), endCol = table.colCount - 1, startRow = Math.min(currentRange.start.row, currentRange.end.row, row), endRow = Math.max(currentRange.start.row, currentRange.end.row, row);
|
|
135
|
+
"body" === state.select.headerSelectMode ? (currentRange.start = {
|
|
136
|
+
col: table.leftRowSeriesNumberCount,
|
|
137
|
+
row: startRow
|
|
138
|
+
}, currentRange.end = {
|
|
139
|
+
col: table.colCount - 1,
|
|
140
|
+
row: endRow
|
|
141
|
+
}) : (currentRange.start = {
|
|
142
|
+
col: startCol,
|
|
143
|
+
row: startRow
|
|
144
|
+
}, currentRange.end = {
|
|
145
|
+
col: endCol,
|
|
146
|
+
row: endRow
|
|
147
|
+
});
|
|
114
148
|
} else currentRange.end = {
|
|
115
149
|
col: col,
|
|
116
150
|
row: row
|
|
@@ -121,7 +155,17 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
|
|
|
121
155
|
if (-1 === cellPos.col || -1 === cellPos.row || isCtrl || (state.select.ranges = [],
|
|
122
156
|
scenegraph.deleteAllSelectBorder()), "cell" !== state.select.headerSelectMode && table.isColumnHeader(col, row)) {
|
|
123
157
|
const cellRange = table.getCellRange(col, row);
|
|
124
|
-
state.select.ranges.push({
|
|
158
|
+
"body" === state.select.headerSelectMode ? state.select.ranges.push({
|
|
159
|
+
start: {
|
|
160
|
+
col: cellRange.start.col,
|
|
161
|
+
row: table.columnHeaderLevelCount
|
|
162
|
+
},
|
|
163
|
+
end: {
|
|
164
|
+
col: cellRange.end.col,
|
|
165
|
+
row: table.rowCount - 1
|
|
166
|
+
},
|
|
167
|
+
skipBodyMerge: !0
|
|
168
|
+
}) : state.select.ranges.push({
|
|
125
169
|
start: {
|
|
126
170
|
col: cellRange.start.col,
|
|
127
171
|
row: row
|
|
@@ -134,7 +178,17 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
|
|
|
134
178
|
});
|
|
135
179
|
} else if ("cell" !== state.select.headerSelectMode && table.isRowHeader(col, row)) {
|
|
136
180
|
const cellRange = table.getCellRange(col, row);
|
|
137
|
-
state.select.ranges.push({
|
|
181
|
+
"body" === state.select.headerSelectMode ? state.select.ranges.push({
|
|
182
|
+
start: {
|
|
183
|
+
col: table.rowHeaderLevelCount + table.leftRowSeriesNumberCount,
|
|
184
|
+
row: cellRange.start.row
|
|
185
|
+
},
|
|
186
|
+
end: {
|
|
187
|
+
col: table.colCount - 1,
|
|
188
|
+
row: cellRange.end.row
|
|
189
|
+
},
|
|
190
|
+
skipBodyMerge: !0
|
|
191
|
+
}) : state.select.ranges.push({
|
|
138
192
|
start: {
|
|
139
193
|
col: col,
|
|
140
194
|
row: cellRange.start.row
|
|
@@ -146,7 +200,17 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
|
|
|
146
200
|
skipBodyMerge: !0
|
|
147
201
|
});
|
|
148
202
|
} else if (table.internalProps.layoutMap.isSeriesNumberInHeader(col, row)) extendSelectRange = !1,
|
|
149
|
-
state.select.ranges.push({
|
|
203
|
+
"body" === state.select.headerSelectMode ? state.select.ranges.push({
|
|
204
|
+
start: {
|
|
205
|
+
col: table.leftRowSeriesNumberCount,
|
|
206
|
+
row: table.columnHeaderLevelCount
|
|
207
|
+
},
|
|
208
|
+
end: {
|
|
209
|
+
col: table.colCount - 1,
|
|
210
|
+
row: table.rowCount - 1
|
|
211
|
+
},
|
|
212
|
+
skipBodyMerge: !0
|
|
213
|
+
}) : state.select.ranges.push({
|
|
150
214
|
start: {
|
|
151
215
|
col: 0,
|
|
152
216
|
row: 0
|
|
@@ -157,7 +221,17 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
|
|
|
157
221
|
},
|
|
158
222
|
skipBodyMerge: !0
|
|
159
223
|
}); else if (table.internalProps.layoutMap.isSeriesNumberInBody(col, row)) extendSelectRange = !1,
|
|
160
|
-
state.select.ranges.push({
|
|
224
|
+
"body" === state.select.headerSelectMode ? state.select.ranges.push({
|
|
225
|
+
start: {
|
|
226
|
+
col: table.leftRowSeriesNumberCount,
|
|
227
|
+
row: row
|
|
228
|
+
},
|
|
229
|
+
end: {
|
|
230
|
+
col: table.colCount - 1,
|
|
231
|
+
row: row
|
|
232
|
+
},
|
|
233
|
+
skipBodyMerge: !0
|
|
234
|
+
}) : state.select.ranges.push({
|
|
161
235
|
start: {
|
|
162
236
|
col: col,
|
|
163
237
|
row: row
|
|
@@ -167,6 +241,27 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
|
|
|
167
241
|
row: row
|
|
168
242
|
},
|
|
169
243
|
skipBodyMerge: !0
|
|
244
|
+
}); else if (table.internalProps.layoutMap.isCornerHeader(col, row)) extendSelectRange = !1,
|
|
245
|
+
"body" === state.select.headerSelectMode ? state.select.ranges.push({
|
|
246
|
+
start: {
|
|
247
|
+
col: table.rowHeaderLevelCount + table.leftRowSeriesNumberCount,
|
|
248
|
+
row: table.columnHeaderLevelCount
|
|
249
|
+
},
|
|
250
|
+
end: {
|
|
251
|
+
col: table.colCount - 1,
|
|
252
|
+
row: table.rowCount - 1
|
|
253
|
+
},
|
|
254
|
+
skipBodyMerge: !0
|
|
255
|
+
}) : state.select.ranges.push({
|
|
256
|
+
start: {
|
|
257
|
+
col: table.leftRowSeriesNumberCount,
|
|
258
|
+
row: 0
|
|
259
|
+
},
|
|
260
|
+
end: {
|
|
261
|
+
col: table.colCount - 1,
|
|
262
|
+
row: table.rowCount - 1
|
|
263
|
+
},
|
|
264
|
+
skipBodyMerge: !0
|
|
170
265
|
}); else if (col >= 0 && row >= 0) {
|
|
171
266
|
const cellRange = skipBodyMerge ? {
|
|
172
267
|
start: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/state/select/update-position.ts"],"names":[],"mappings":"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","file":"update-position.js","sourcesContent":["import type { SimpleHeaderLayoutMap } from '../../layout';\nimport type { Scenegraph } from '../../scenegraph/scenegraph';\nimport type { SelectAllOnCtrlAOption } from '../../ts-types';\nimport { InteractionState } from '../../ts-types';\nimport type { StateManager } from '../state';\n/**\n * @description: 更新select位置\n * @param {StateManager} state\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\nexport function updateSelectPosition(\n state: StateManager,\n col: number,\n row: number,\n isShift: boolean,\n isCtrl: boolean,\n isSelectAll: boolean,\n isSelectMoving: boolean = false,\n skipBodyMerge: boolean = false\n) {\n const { table, interactionState } = state;\n const { scenegraph } = table;\n const { highlightScope, disableHeader, cellPos } = state.select;\n\n if ((disableHeader && table.isHeader(col, row)) || highlightScope === 'none') {\n if (col !== -1 && row !== -1 && !isSelectMoving) {\n table._makeVisibleCell(col, row);\n }\n col = -1;\n row = -1;\n }\n // 如果这里不继续进行 会造成问题drag select first cell seleted repeatly https://github.com/VisActor/VTable/issues/611\n // if (cellPos.col === col && cellPos.row === row) {\n // return;\n // }\n /** 完整显示选中单元格 自动滚动效果*/\n if (col !== -1 && row !== -1 && !isSelectMoving) {\n if (interactionState === InteractionState.grabing && state.select.ranges.length > 0) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (col > currentRange.start.col && col > currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col + 1, row);\n }\n if (row > currentRange.start.row && row > currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row + 1);\n }\n if (col < currentRange.start.col && col < currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col - 1, row);\n }\n if (row < currentRange.start.row && row < currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row - 1);\n }\n } else {\n table._makeVisibleCell(col, row);\n }\n }\n if (isSelectAll) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n let _startCol = 0;\n let _startRow = 0;\n const { disableHeaderSelect, disableRowSeriesNumberSelect } =\n (table.options.keyboardOptions?.selectAllOnCtrlA as SelectAllOnCtrlAOption) || {};\n\n // 表头选中\n if (disableHeaderSelect) {\n _startCol = table.rowHeaderLevelCount;\n _startRow = table.columnHeaderLevelCount;\n }\n // 行号列选中\n if ((disableRowSeriesNumberSelect || disableHeaderSelect) && table.options.rowSeriesNumber) {\n _startCol += 1;\n }\n\n state.select.ranges.push({\n start: { col: _startCol, row: _startRow },\n end: { col: table.colCount - 1, row: table.rowCount - 1 }\n });\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n scenegraph.updateCellSelectBorder(currentRange, false);\n } else if (cellPos.col !== -1 && cellPos.row !== -1 && (col === -1 || row === -1)) {\n // 输入-1清空选中状态\n // clearMultiSelect(scenegraph, ranges, highlightScope, singleStyle);\n cellPos.col = -1;\n cellPos.row = -1;\n state.select.ranges = [];\n // 隐藏select border\n scenegraph.deleteAllSelectBorder();\n } else if (\n interactionState === InteractionState.default &&\n !table.eventManager.isDraging &&\n !table.stateManager.isResizeCol()\n ) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (isShift && currentRange) {\n if (!isCtrl) {\n cellPos.col = col;\n cellPos.row = row;\n }\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = Math.max(currentRange.start.col, currentRange.end.col, col);\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = table.rowCount - 1;\n\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = table.colCount - 1;\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = Math.max(currentRange.start.row, currentRange.end.row, row);\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n } else {\n currentRange.end = { col, row };\n }\n scenegraph.deleteLastSelectedRangeComponents();\n scenegraph.updateCellSelectBorder(currentRange);\n // } else if (isCtrl) {\n // cellPos.col = col;\n // cellPos.row = row;\n // state.select.ranges.push({\n // start: { col: cellPos.col, row: cellPos.row },\n // end: { col: cellPos.col, row: cellPos.row },\n // });\n // // 单选或多选的开始,只选中第一个单元格\n // // updateCellSelect(scenegraph, col, row, ranges, highlightScope, singleStyle);\n // scenegraph.setCellNormalStyle(col, row);\n // // 更新select border\n // // calculateAndUpdateMultiSelectBorder(scenegraph, col, row, col, row, state.select.ranges);\n // // 更新select border\n // scenegraph.updateCellSelectBorder(cellPos);\n } else {\n let extendSelectRange = true;\n // 单选或多选开始\n if (cellPos.col !== -1 && cellPos.row !== -1 && !isCtrl) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n }\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n // 选中行表头\n const cellRange = table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n // 选中列表头\n const cellRange = table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col, row: cellRange.start.row },\n end: { col: table.colCount - 1, row: cellRange.end.row },\n skipBodyMerge: true\n });\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInHeader(col, row)) {\n // 选中表头行号单元格\n extendSelectRange = false;\n state.select.ranges.push({\n start: { col: 0, row: 0 },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(col, row)) {\n // 选中内容行号单元格\n extendSelectRange = false;\n state.select.ranges.push({\n start: { col, row: row },\n end: { col: table.colCount - 1, row: row },\n skipBodyMerge: true\n });\n } else if (col >= 0 && row >= 0) {\n // 选中普通单元格\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: cellRange.end.row },\n skipBodyMerge: skipBodyMerge || undefined\n });\n }\n cellPos.col = col;\n cellPos.row = row;\n // scenegraph.setCellNormalStyle(col, row);\n const currentRange = state.select.ranges?.[state.select.ranges.length - 1];\n currentRange && scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\n } else if (\n (interactionState === InteractionState.grabing || table.eventManager.isDraging) &&\n !table.stateManager.isResizeCol()\n ) {\n let extendSelectRange = true;\n // 可能有cellPosStart从-1开始grabing的情况\n if (cellPos.col === -1) {\n cellPos.col = col;\n }\n if (cellPos.row === -1) {\n cellPos.row = row;\n }\n cellPos.col = col;\n cellPos.row = row;\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (currentRange) {\n if (\n (table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(\n currentRange.start.col,\n currentRange.start.row\n )\n ) {\n // 如果选中起始位置是序号 那么选中范围都是整行整行的选中\n extendSelectRange = false;\n currentRange.end = {\n col: table.colCount - 1,\n row\n };\n } else {\n if (state.fillHandle.isFilling) {\n // 修正拖拽填充柄选中范围 和 不拖填充柄是有区别的 解决选中区域缩小问题\n if (state.fillHandle.direction === 'top') {\n if (row === state.fillHandle.beforeFillMinRow && row === state.fillHandle.beforeFillMaxRow) {\n currentRange.start.row = currentRange.end.row = row;\n } else if (row <= state.fillHandle.beforeFillMinRow) {\n if (currentRange.start.row < currentRange.end.row) {\n const temp = currentRange.start.row;\n currentRange.start.row = currentRange.end.row;\n currentRange.end.row = temp;\n }\n currentRange.end.row = row;\n } else if (row === state.fillHandle.beforeFillMaxRow) {\n if (currentRange.start.row > currentRange.end.row) {\n currentRange.start.row = row;\n } else {\n currentRange.end.row = row;\n }\n }\n } else if (state.fillHandle.direction === 'bottom') {\n if (row >= state.fillHandle.beforeFillMaxRow) {\n if (currentRange.start.row > currentRange.end.row) {\n const temp = currentRange.start.row;\n currentRange.start.row = currentRange.end.row;\n currentRange.end.row = temp;\n }\n currentRange.end.row = row;\n }\n } else if (state.fillHandle.direction === 'left') {\n if (col === state.fillHandle.beforeFillMinCol && col === state.fillHandle.beforeFillMaxCol) {\n currentRange.start.col = currentRange.end.col = col;\n } else if (col <= state.fillHandle.beforeFillMinCol) {\n if (currentRange.start.col < currentRange.end.col) {\n const temp = currentRange.start.col;\n currentRange.start.col = currentRange.end.col;\n currentRange.end.col = temp;\n }\n currentRange.end.col = col;\n } else if (col === state.fillHandle.beforeFillMaxCol) {\n if (currentRange.start.col > currentRange.end.col) {\n currentRange.start.col = col;\n } else {\n currentRange.end.col = col;\n }\n }\n } else if (state.fillHandle.direction === 'right') {\n if (col >= state.fillHandle.beforeFillMaxCol) {\n if (currentRange.start.col > currentRange.end.col) {\n const temp = currentRange.start.col;\n currentRange.start.col = currentRange.end.col;\n currentRange.end.col = temp;\n }\n currentRange.end.col = col;\n }\n }\n } else {\n currentRange.end = {\n col,\n row\n };\n\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n if (currentRange.start.col < cellRange.end.col) {\n currentRange.end.col = cellRange.end.col;\n } else if (currentRange.start.col > cellRange.start.col) {\n currentRange.end.col = cellRange.start.col;\n }\n\n if (currentRange.start.row < cellRange.end.row) {\n currentRange.end.row = cellRange.end.row;\n } else if (currentRange.start.row > cellRange.start.row) {\n currentRange.end.row = cellRange.start.row;\n }\n\n if (skipBodyMerge) {\n currentRange.skipBodyMerge = true;\n }\n }\n }\n scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\n }\n scenegraph.updateNextFrame();\n}\nexport function selectEnd(scenegraph: Scenegraph) {\n scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/state/select/update-position.ts"],"names":[],"mappings":"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","file":"update-position.js","sourcesContent":["import type { ListTable } from '../..';\nimport type { SimpleHeaderLayoutMap } from '../../layout';\nimport type { Scenegraph } from '../../scenegraph/scenegraph';\nimport type { SelectAllOnCtrlAOption } from '../../ts-types';\nimport { InteractionState } from '../../ts-types';\nimport type { StateManager } from '../state';\n/**\n * @description: 更新select位置\n * @param {StateManager} state\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\nexport function updateSelectPosition(\n state: StateManager,\n col: number,\n row: number,\n isShift: boolean,\n isCtrl: boolean,\n isSelectAll: boolean,\n isSelectMoving: boolean = false,\n skipBodyMerge: boolean = false\n) {\n const { table, interactionState } = state;\n const { scenegraph } = table;\n const { highlightScope, disableHeader, cellPos } = state.select;\n\n if ((disableHeader && table.isHeader(col, row)) || highlightScope === 'none') {\n if (col !== -1 && row !== -1 && !isSelectMoving) {\n table._makeVisibleCell(col, row);\n }\n col = -1;\n row = -1;\n }\n // 如果这里不继续进行 会造成问题drag select first cell seleted repeatly https://github.com/VisActor/VTable/issues/611\n // if (cellPos.col === col && cellPos.row === row) {\n // return;\n // }\n /** 完整显示选中单元格 自动滚动效果*/\n if (col !== -1 && row !== -1 && !isSelectMoving) {\n if (interactionState === InteractionState.grabing && state.select.ranges.length > 0) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (col > currentRange.start.col && col > currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col + 1, row);\n }\n if (row > currentRange.start.row && row > currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row + 1);\n }\n if (col < currentRange.start.col && col < currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col - 1, row);\n }\n if (row < currentRange.start.row && row < currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row - 1);\n }\n } else {\n table._makeVisibleCell(col, row);\n }\n }\n if (isSelectAll) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n let _startCol = 0;\n let _startRow = 0;\n const { disableHeaderSelect, disableRowSeriesNumberSelect } =\n (table.options.keyboardOptions?.selectAllOnCtrlA as SelectAllOnCtrlAOption) || {};\n\n // 表头选中\n if (disableHeaderSelect) {\n _startCol = table.rowHeaderLevelCount;\n _startRow = table.columnHeaderLevelCount;\n }\n // 行号列选中\n if (\n (disableRowSeriesNumberSelect || (disableHeaderSelect && (table as ListTable).transpose)) &&\n table.options.rowSeriesNumber\n ) {\n _startCol += 1;\n }\n\n state.select.ranges.push({\n start: { col: _startCol, row: _startRow },\n end: { col: table.colCount - 1, row: table.rowCount - 1 }\n });\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n scenegraph.updateCellSelectBorder(currentRange, false);\n } else if (cellPos.col !== -1 && cellPos.row !== -1 && (col === -1 || row === -1)) {\n // 输入-1清空选中状态\n // clearMultiSelect(scenegraph, ranges, highlightScope, singleStyle);\n cellPos.col = -1;\n cellPos.row = -1;\n state.select.ranges = [];\n // 隐藏select border\n scenegraph.deleteAllSelectBorder();\n } else if (\n interactionState === InteractionState.default &&\n !table.eventManager.isDraging &&\n !table.stateManager.isResizeCol()\n ) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (isShift && currentRange) {\n if (!isCtrl) {\n cellPos.col = col;\n cellPos.row = row;\n }\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = Math.max(currentRange.start.col, currentRange.end.col, col);\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = table.rowCount - 1;\n if (state.select.headerSelectMode === 'body') {\n currentRange.start = { col: startCol, row: table.columnHeaderLevelCount };\n currentRange.end = { col: endCol, row: table.rowCount - 1 };\n } else {\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n }\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = table.colCount - 1;\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = Math.max(currentRange.start.row, currentRange.end.row, row);\n if (state.select.headerSelectMode === 'body') {\n currentRange.start = { col: table.leftRowSeriesNumberCount + table.rowHeaderLevelCount, row: startRow };\n currentRange.end = { col: table.colCount - 1, row: endRow };\n } else {\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n }\n } else if (state.select.headerSelectMode !== 'cell' && table.isSeriesNumberInBody(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = table.colCount - 1;\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = Math.max(currentRange.start.row, currentRange.end.row, row);\n if (state.select.headerSelectMode === 'body') {\n currentRange.start = { col: table.leftRowSeriesNumberCount, row: startRow };\n currentRange.end = { col: table.colCount - 1, row: endRow };\n } else {\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n }\n } else {\n currentRange.end = { col, row };\n }\n scenegraph.deleteLastSelectedRangeComponents();\n scenegraph.updateCellSelectBorder(currentRange);\n // } else if (isCtrl) {\n // cellPos.col = col;\n // cellPos.row = row;\n // state.select.ranges.push({\n // start: { col: cellPos.col, row: cellPos.row },\n // end: { col: cellPos.col, row: cellPos.row },\n // });\n // // 单选或多选的开始,只选中第一个单元格\n // // updateCellSelect(scenegraph, col, row, ranges, highlightScope, singleStyle);\n // scenegraph.setCellNormalStyle(col, row);\n // // 更新select border\n // // calculateAndUpdateMultiSelectBorder(scenegraph, col, row, col, row, state.select.ranges);\n // // 更新select border\n // scenegraph.updateCellSelectBorder(cellPos);\n } else {\n let extendSelectRange = true;\n // 单选或多选开始\n if (cellPos.col !== -1 && cellPos.row !== -1 && !isCtrl) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n }\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n // 选中行表头\n const cellRange = table.getCellRange(col, row);\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: table.columnHeaderLevelCount },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col: cellRange.start.col, row },\n end: { col: cellRange.end.col, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n }\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n // 选中列表头\n const cellRange = table.getCellRange(col, row);\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: { col: table.rowHeaderLevelCount + table.leftRowSeriesNumberCount, row: cellRange.start.row },\n end: { col: table.colCount - 1, row: cellRange.end.row },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col, row: cellRange.start.row },\n end: { col: table.colCount - 1, row: cellRange.end.row },\n skipBodyMerge: true\n });\n }\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInHeader(col, row)) {\n // 选中表头行号单元格\n extendSelectRange = false;\n\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: table.columnHeaderLevelCount\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col: 0, row: 0 },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n }\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(col, row)) {\n // 选中内容行号单元格\n extendSelectRange = false;\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row\n },\n end: { col: table.colCount - 1, row: row },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col, row },\n end: { col: table.colCount - 1, row: row },\n skipBodyMerge: true\n });\n }\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isCornerHeader(col, row)) {\n // 选中表头行号单元格\n extendSelectRange = false;\n\n if (state.select.headerSelectMode === 'body') {\n state.select.ranges.push({\n start: {\n col: table.rowHeaderLevelCount + table.leftRowSeriesNumberCount,\n row: table.columnHeaderLevelCount\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: { col: table.leftRowSeriesNumberCount, row: 0 },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n }\n } else if (col >= 0 && row >= 0) {\n // 选中普通单元格\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row: cellRange.start.row },\n end: { col: cellRange.end.col, row: cellRange.end.row },\n skipBodyMerge: skipBodyMerge || undefined\n });\n }\n cellPos.col = col;\n cellPos.row = row;\n // scenegraph.setCellNormalStyle(col, row);\n const currentRange = state.select.ranges?.[state.select.ranges.length - 1];\n currentRange && scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\n } else if (\n (interactionState === InteractionState.grabing || table.eventManager.isDraging) &&\n !table.stateManager.isResizeCol()\n ) {\n let extendSelectRange = true;\n // 可能有cellPosStart从-1开始grabing的情况\n if (cellPos.col === -1) {\n cellPos.col = col;\n }\n if (cellPos.row === -1) {\n cellPos.row = row;\n }\n cellPos.col = col;\n cellPos.row = row;\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (currentRange) {\n if (\n (table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(\n currentRange.start.col,\n currentRange.start.row\n )\n ) {\n // 如果选中起始位置是序号 那么选中范围都是整行整行的选中\n extendSelectRange = false;\n currentRange.end = {\n col: table.colCount - 1,\n row\n };\n } else {\n if (state.fillHandle.isFilling) {\n // 修正拖拽填充柄选中范围 和 不拖填充柄是有区别的 解决选中区域缩小问题\n if (state.fillHandle.direction === 'top') {\n if (row === state.fillHandle.beforeFillMinRow && row === state.fillHandle.beforeFillMaxRow) {\n currentRange.start.row = currentRange.end.row = row;\n } else if (row <= state.fillHandle.beforeFillMinRow) {\n if (currentRange.start.row < currentRange.end.row) {\n const temp = currentRange.start.row;\n currentRange.start.row = currentRange.end.row;\n currentRange.end.row = temp;\n }\n currentRange.end.row = row;\n } else if (row === state.fillHandle.beforeFillMaxRow) {\n if (currentRange.start.row > currentRange.end.row) {\n currentRange.start.row = row;\n } else {\n currentRange.end.row = row;\n }\n }\n } else if (state.fillHandle.direction === 'bottom') {\n if (row >= state.fillHandle.beforeFillMaxRow) {\n if (currentRange.start.row > currentRange.end.row) {\n const temp = currentRange.start.row;\n currentRange.start.row = currentRange.end.row;\n currentRange.end.row = temp;\n }\n currentRange.end.row = row;\n }\n } else if (state.fillHandle.direction === 'left') {\n if (col === state.fillHandle.beforeFillMinCol && col === state.fillHandle.beforeFillMaxCol) {\n currentRange.start.col = currentRange.end.col = col;\n } else if (col <= state.fillHandle.beforeFillMinCol) {\n if (currentRange.start.col < currentRange.end.col) {\n const temp = currentRange.start.col;\n currentRange.start.col = currentRange.end.col;\n currentRange.end.col = temp;\n }\n currentRange.end.col = col;\n } else if (col === state.fillHandle.beforeFillMaxCol) {\n if (currentRange.start.col > currentRange.end.col) {\n currentRange.start.col = col;\n } else {\n currentRange.end.col = col;\n }\n }\n } else if (state.fillHandle.direction === 'right') {\n if (col >= state.fillHandle.beforeFillMaxCol) {\n if (currentRange.start.col > currentRange.end.col) {\n const temp = currentRange.start.col;\n currentRange.start.col = currentRange.end.col;\n currentRange.end.col = temp;\n }\n currentRange.end.col = col;\n }\n }\n } else {\n currentRange.end = {\n col,\n row\n };\n const cellRange = skipBodyMerge ? { start: { col, row }, end: { col, row } } : table.getCellRange(col, row);\n if (currentRange.start.col < cellRange.end.col) {\n currentRange.end.col = cellRange.end.col;\n } else if (currentRange.start.col > cellRange.start.col) {\n currentRange.end.col = cellRange.start.col;\n }\n\n if (currentRange.start.row < cellRange.end.row) {\n currentRange.end.row = cellRange.end.row;\n } else if (currentRange.start.row > cellRange.start.row) {\n currentRange.end.row = cellRange.start.row;\n }\n\n if (state.select.headerSelectMode === 'body') {\n if (table.isRowHeader(col, row)) {\n currentRange.start.col = table.rowHeaderLevelCount + table.leftRowSeriesNumberCount;\n currentRange.end.col = table.colCount - 1;\n } else if (table.isColumnHeader(col, row)) {\n currentRange.start.row = table.columnHeaderLevelCount;\n currentRange.end.row = table.rowCount - 1;\n } else if ((table.internalProps.layoutMap as SimpleHeaderLayoutMap).isSeriesNumberInBody(col, row)) {\n currentRange.start.col = table.leftRowSeriesNumberCount;\n currentRange.end.col = table.colCount - 1;\n } else if (table.isCornerHeader(col, row)) {\n currentRange.start.col = table.rowHeaderLevelCount + table.leftRowSeriesNumberCount;\n currentRange.start.row = table.columnHeaderLevelCount;\n currentRange.end.col = table.colCount - 1;\n currentRange.end.row = table.rowCount - 1;\n } else if (table.isSeriesNumber(col, row)) {\n currentRange.start.col = table.leftRowSeriesNumberCount;\n currentRange.start.row = table.columnHeaderLevelCount;\n currentRange.end.col = table.colCount - 1;\n currentRange.end.row = table.rowCount - 1;\n }\n }\n if (skipBodyMerge) {\n currentRange.skipBodyMerge = true;\n }\n }\n }\n scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\n }\n scenegraph.updateNextFrame();\n}\nexport function selectEnd(scenegraph: Scenegraph) {\n scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();\n}\n"]}
|
package/es/state/state.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare class StateManager {
|
|
|
17
17
|
cellPos: CellPosition;
|
|
18
18
|
singleStyle?: boolean;
|
|
19
19
|
disableHeader?: boolean;
|
|
20
|
-
headerSelectMode?: 'inline' | 'cell';
|
|
20
|
+
headerSelectMode?: 'inline' | 'cell' | 'body';
|
|
21
21
|
selecting: boolean;
|
|
22
22
|
};
|
|
23
23
|
fillHandle: {
|
|
@@ -180,7 +180,7 @@ export declare class StateManager {
|
|
|
180
180
|
setHeaderCheckedState(field: string | number, checked: boolean): void;
|
|
181
181
|
syncCheckedState(col: number, row: number, field: string | number, checked: boolean): boolean | 'indeterminate';
|
|
182
182
|
initCheckedState(records: any[]): void;
|
|
183
|
-
updateHeaderCheckedState(field: string | number): boolean | 'indeterminate';
|
|
183
|
+
updateHeaderCheckedState(field: string | number, col: number, row: number): boolean | 'indeterminate';
|
|
184
184
|
initLeftRecordsCheckState(records: any[]): void;
|
|
185
185
|
setRadioState(col: number, row: number, field: string | number, radioType: 'column' | 'cell', indexInCell: number | undefined): void;
|
|
186
186
|
syncRadioState(col: number, row: number, field: string | number, radioType: 'column' | 'cell', indexInCell: number | undefined, isChecked: boolean): boolean;
|
package/es/state/state.js
CHANGED
|
@@ -684,8 +684,18 @@ export class StateManager {
|
|
|
684
684
|
}
|
|
685
685
|
}
|
|
686
686
|
triggerFreeze(col, row, iconMark) {
|
|
687
|
-
this.table.isPivotTable()
|
|
688
|
-
|
|
687
|
+
if (!this.table.isPivotTable() && !this.table.transpose) {
|
|
688
|
+
if (dealFreeze(col, row, this.table), this.table.hasListeners(PIVOT_TABLE_EVENT_TYPE.FREEZE_CLICK)) {
|
|
689
|
+
const fields = this.table.internalProps.layoutMap.columnObjects.slice(0, col + 1);
|
|
690
|
+
this.table.fireListeners(PIVOT_TABLE_EVENT_TYPE.FREEZE_CLICK, {
|
|
691
|
+
col: col,
|
|
692
|
+
row: row,
|
|
693
|
+
fields: fields.reduce(((pre, cur) => pre.concat(cur.field)), []),
|
|
694
|
+
colCount: this.table.frozenColCount
|
|
695
|
+
});
|
|
696
|
+
}
|
|
697
|
+
this.frozen.icon = iconMark;
|
|
698
|
+
}
|
|
689
699
|
}
|
|
690
700
|
updateCursor(mode = "default") {
|
|
691
701
|
this.table.getElement().style.cursor = mode;
|
|
@@ -713,8 +723,8 @@ export class StateManager {
|
|
|
713
723
|
initCheckedState(records) {
|
|
714
724
|
return initCheckedState(records, this);
|
|
715
725
|
}
|
|
716
|
-
updateHeaderCheckedState(field) {
|
|
717
|
-
return updateHeaderCheckedState(field, this);
|
|
726
|
+
updateHeaderCheckedState(field, col, row) {
|
|
727
|
+
return updateHeaderCheckedState(field, this, col, row);
|
|
718
728
|
}
|
|
719
729
|
initLeftRecordsCheckState(records) {
|
|
720
730
|
return initLeftRecordsCheckState(records, this);
|