@visactor/vtable 1.20.1-alpha.1 → 1.20.2-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/ListTable.js +3 -2
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.d.ts +4 -0
- package/cjs/PivotChart.js +30 -18
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable.js +2 -1
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +4 -4
- package/cjs/core/BaseTable.js +16 -16
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/record-helper.js +12 -4
- package/cjs/core/record-helper.js.map +1 -1
- package/cjs/data/DataSource.d.ts +1 -0
- package/cjs/data/DataSource.js +6 -9
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/event/event.js +17 -8
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/listener/container-dom.js +20 -17
- package/cjs/event/listener/container-dom.js.map +1 -1
- package/cjs/event/self-event-listener/list-table/checkbox.js +4 -2
- package/cjs/event/self-event-listener/list-table/checkbox.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-config.js +73 -28
- package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
- package/cjs/layout/chart-helper/get-chart-spec.js +19 -9
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/layout/pivot-header-layout.d.ts +3 -3
- package/cjs/layout/pivot-header-layout.js +23 -12
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/scenegraph/graphic/chart.d.ts +1 -0
- package/cjs/scenegraph/graphic/chart.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +4 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render.js +4 -1
- package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/vchart-graphic-picker.js +9 -0
- package/cjs/scenegraph/graphic/contributions/vchart-graphic-picker.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js +3 -1
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/compute-row-height.js +13 -6
- package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/state/select/update-position.d.ts +1 -1
- package/cjs/state/select/update-position.js +7 -7
- package/cjs/state/select/update-position.js.map +1 -1
- package/cjs/state/state.d.ts +2 -1
- package/cjs/state/state.js +5 -4
- package/cjs/state/state.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +1 -0
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +1 -0
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +349 -114
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.js +3 -2
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.d.ts +4 -0
- package/es/PivotChart.js +30 -18
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable.js +2 -1
- package/es/PivotTable.js.map +1 -1
- package/es/core/BaseTable.d.ts +4 -4
- package/es/core/BaseTable.js +16 -16
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/record-helper.js +12 -4
- package/es/core/record-helper.js.map +1 -1
- package/es/data/DataSource.d.ts +1 -0
- package/es/data/DataSource.js +6 -9
- package/es/data/DataSource.js.map +1 -1
- package/es/event/event.js +17 -8
- package/es/event/event.js.map +1 -1
- package/es/event/listener/container-dom.js +20 -17
- package/es/event/listener/container-dom.js.map +1 -1
- package/es/event/self-event-listener/list-table/checkbox.js +4 -2
- package/es/event/self-event-listener/list-table/checkbox.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/chart-helper/get-axis-config.js +73 -28
- package/es/layout/chart-helper/get-axis-config.js.map +1 -1
- package/es/layout/chart-helper/get-chart-spec.js +19 -9
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/layout/pivot-header-layout.d.ts +3 -3
- package/es/layout/pivot-header-layout.js +23 -12
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/scenegraph/graphic/chart.d.ts +1 -0
- package/es/scenegraph/graphic/chart.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.js +4 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render.js +4 -1
- package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/es/scenegraph/graphic/contributions/vchart-graphic-picker.js +9 -0
- package/es/scenegraph/graphic/contributions/vchart-graphic-picker.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/es/scenegraph/layout/compute-col-width.js +3 -1
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/compute-row-height.js +13 -6
- package/es/scenegraph/layout/compute-row-height.js.map +1 -1
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/state/select/update-position.d.ts +1 -1
- package/es/state/select/update-position.js +7 -7
- package/es/state/select/update-position.js.map +1 -1
- package/es/state/state.d.ts +2 -1
- package/es/state/state.js +5 -4
- package/es/state/state.js.map +1 -1
- package/es/ts-types/base-table.d.ts +1 -0
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +1 -0
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Scenegraph } from '../../scenegraph/scenegraph';
|
|
2
2
|
import type { StateManager } from '../state';
|
|
3
|
-
export declare function updateSelectPosition(state: StateManager, col: number, row: number,
|
|
3
|
+
export declare function updateSelectPosition(state: StateManager, col: number, row: number, enableShiftSelectMode: boolean, enableCtrlSelectMode: boolean, isSelectAll: boolean, makeSelectCellVisible?: boolean, skipBodyMerge?: boolean): void;
|
|
4
4
|
export declare function selectEnd(scenegraph: Scenegraph): void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { InteractionState } from "../../ts-types";
|
|
2
2
|
|
|
3
|
-
export function updateSelectPosition(state, col, row,
|
|
3
|
+
export function updateSelectPosition(state, col, row, enableShiftSelectMode, enableCtrlSelectMode, isSelectAll, makeSelectCellVisible = !0, skipBodyMerge = !1) {
|
|
4
4
|
var _a, _b;
|
|
5
|
-
const {table: table, interactionState: interactionState} = state, {scenegraph: scenegraph} = table, {
|
|
5
|
+
const {table: table, interactionState: interactionState} = state, {scenegraph: scenegraph} = table, {cellPos: cellPos} = state.select;
|
|
6
6
|
if (state.select.isSelectAll = isSelectAll, -1 !== col && -1 !== row && makeSelectCellVisible && table._makeVisibleCell(col, row),
|
|
7
7
|
-1 !== col && -1 !== row && makeSelectCellVisible) if (interactionState === InteractionState.grabing && state.select.ranges.length > 0) {
|
|
8
8
|
const currentRange = state.select.ranges[state.select.ranges.length - 1];
|
|
@@ -99,9 +99,8 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
|
|
|
99
99
|
}
|
|
100
100
|
} else {
|
|
101
101
|
const currentRange = state.select.ranges[state.select.ranges.length - 1];
|
|
102
|
-
if (
|
|
103
|
-
if (
|
|
104
|
-
"cell" !== state.select.headerSelectMode && table.isColumnHeader(col, row)) {
|
|
102
|
+
if (enableShiftSelectMode && currentRange) {
|
|
103
|
+
if ("cell" !== state.select.headerSelectMode && table.isColumnHeader(col, row)) {
|
|
105
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;
|
|
106
105
|
"body" === state.select.headerSelectMode ? (currentRange.start = {
|
|
107
106
|
col: startCol,
|
|
@@ -150,10 +149,11 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
|
|
|
150
149
|
col: col,
|
|
151
150
|
row: row
|
|
152
151
|
};
|
|
153
|
-
|
|
152
|
+
enableShiftSelectMode || (currentRange.end = currentRange.start), scenegraph.deleteLastSelectedRangeComponents(),
|
|
153
|
+
scenegraph.updateCellSelectBorder(currentRange);
|
|
154
154
|
} else {
|
|
155
155
|
let extendSelectRange = !0;
|
|
156
|
-
if (-1 === cellPos.col || -1 === cellPos.row ||
|
|
156
|
+
if (-1 === cellPos.col || -1 === cellPos.row || enableCtrlSelectMode || (state.select.ranges = [],
|
|
157
157
|
scenegraph.deleteAllSelectBorder()), "cell" !== state.select.headerSelectMode && table.isColumnHeader(col, row)) {
|
|
158
158
|
const cellRange = table.getCellRange(col, row);
|
|
159
159
|
"body" === state.select.headerSelectMode ? state.select.ranges.push({
|
|
@@ -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 { 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 makeSelectCellVisible: boolean = true,\n skipBodyMerge: boolean = false\n // forceSelect: boolean = false\n) {\n const { table, interactionState } = state;\n const { scenegraph } = table;\n const { highlightScope, disableHeader, cellPos, disableCtrlMultiSelect } = state.select;\n state.select.isSelectAll = isSelectAll;\n // const disableSelect = table.options?.select?.disableSelect;\n // const cellDisable = typeof disableSelect === 'function' ? disableSelect(col, row, table) : disableSelect;\n // const { highlightScope, disableHeader, cellPos } = state.select;\n // const disableSelect = table.options?.select?.disableSelect;\n // const cellDisable = typeof disableSelect === 'function' ? disableSelect(col, row, table) : disableSelect;\n\n // if (\n // ((disableHeader && table.isHeader(col, row)) || highlightScope === 'none' || cellDisable) &&\n // forceSelect === false\n // ) {\n if (col !== -1 && row !== -1 && makeSelectCellVisible) {\n table._makeVisibleCell(col, row);\n }\n // col = -1;\n // row = -1;\n // }\n\n /** 完整显示选中单元格 自动滚动效果*/\n if (col !== -1 && row !== -1 && makeSelectCellVisible) {\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 || disableCtrlMultiSelect) {\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 || disableCtrlMultiSelect)) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n }\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: cellRange.start.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: cellRange.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 const { cornerHeaderSelectMode } = state.select;\n if (cornerHeaderSelectMode === '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 if (cornerHeaderSelectMode === 'inline') {\n // inline 选中行号所在单元格下所有列\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: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'cell') {\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 } 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 // 旧逻辑\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 const { cornerHeaderSelectMode } = state.select;\n\n if (cornerHeaderSelectMode === '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 if (cornerHeaderSelectMode === 'cell') {\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 } else if (cornerHeaderSelectMode === 'inline') {\n // inline\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: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'all') {\n // all 或者用户传的其他的什么值 :'' | 'test',虽然类型会提示用户不能为其他的值,\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: 0\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: 0\n },\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 if (\n currentRange &&\n currentRange.start.row <= table.rowCount - 1 &&\n currentRange.end.row <= table.rowCount - 1 &&\n currentRange.start.col <= table.colCount - 1 &&\n currentRange.end.col <= table.colCount - 1\n ) {\n scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\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 if (\n currentRange &&\n currentRange.start.row <= table.rowCount - 1 &&\n currentRange.end.row <= table.rowCount - 1 &&\n currentRange.start.col <= table.colCount - 1 &&\n currentRange.end.col <= table.colCount - 1\n ) {\n scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\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 enableShiftSelectMode: boolean,\n enableCtrlSelectMode: boolean,\n isSelectAll: boolean,\n makeSelectCellVisible: boolean = true,\n skipBodyMerge: boolean = false\n // forceSelect: boolean = false\n) {\n const { table, interactionState } = state;\n const { scenegraph } = table;\n const { cellPos } = state.select;\n state.select.isSelectAll = isSelectAll;\n\n if (col !== -1 && row !== -1 && makeSelectCellVisible) {\n table._makeVisibleCell(col, row);\n }\n // col = -1;\n // row = -1;\n // }\n\n /** 完整显示选中单元格 自动滚动效果*/\n if (col !== -1 && row !== -1 && makeSelectCellVisible) {\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 (enableShiftSelectMode && currentRange) {\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 // 禁用shift多选时,选中范围的end应该和start一致\n if (!enableShiftSelectMode) {\n currentRange.end = currentRange.start;\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 && !enableCtrlSelectMode) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n }\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: cellRange.start.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: cellRange.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 const { cornerHeaderSelectMode } = state.select;\n if (cornerHeaderSelectMode === '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 if (cornerHeaderSelectMode === 'inline') {\n // inline 选中行号所在单元格下所有列\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: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'cell') {\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 } 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 // 旧逻辑\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 const { cornerHeaderSelectMode } = state.select;\n\n if (cornerHeaderSelectMode === '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 if (cornerHeaderSelectMode === 'cell') {\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 } else if (cornerHeaderSelectMode === 'inline') {\n // inline\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: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else if (cornerHeaderSelectMode === 'all') {\n // all 或者用户传的其他的什么值 :'' | 'test',虽然类型会提示用户不能为其他的值,\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: 0\n },\n end: { col: table.colCount - 1, row: table.rowCount - 1 },\n skipBodyMerge: true\n });\n } else {\n state.select.ranges.push({\n start: {\n col: table.leftRowSeriesNumberCount,\n row: 0\n },\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 if (\n currentRange &&\n currentRange.start.row <= table.rowCount - 1 &&\n currentRange.end.row <= table.rowCount - 1 &&\n currentRange.start.col <= table.colCount - 1 &&\n currentRange.end.col <= table.colCount - 1\n ) {\n scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\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 if (\n currentRange &&\n currentRange.start.row <= table.rowCount - 1 &&\n currentRange.end.row <= table.rowCount - 1 &&\n currentRange.start.col <= table.colCount - 1 &&\n currentRange.end.col <= table.colCount - 1\n ) {\n scenegraph.updateCellSelectBorder(currentRange, extendSelectRange);\n }\n }\n }\n scenegraph.updateNextFrame();\n}\nexport function selectEnd(scenegraph: Scenegraph) {\n scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();\n}\n"]}
|
package/es/state/state.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export declare class StateManager {
|
|
|
20
20
|
singleStyle?: boolean;
|
|
21
21
|
disableHeader?: boolean;
|
|
22
22
|
disableCtrlMultiSelect?: boolean;
|
|
23
|
+
disableShiftMultiSelect?: boolean;
|
|
23
24
|
headerSelectMode?: 'inline' | 'cell' | 'body';
|
|
24
25
|
cornerHeaderSelectMode?: 'inline' | 'cell' | 'body' | 'all';
|
|
25
26
|
highlightInRange?: boolean;
|
|
@@ -144,7 +145,7 @@ export declare class StateManager {
|
|
|
144
145
|
updateInteractionState(mode: InteractionState): void;
|
|
145
146
|
updateHoverhighlightScope(mode: HighlightScope): void;
|
|
146
147
|
updateHoverPos(col: number, row: number): void;
|
|
147
|
-
updateSelectPos(col: number, row: number,
|
|
148
|
+
updateSelectPos(col: number, row: number, enableShiftSelectMode?: boolean, enableCtrlSelectMode?: boolean, isSelectAll?: boolean, makeSelectCellVisible?: boolean, skipBodyMerge?: boolean): void;
|
|
148
149
|
checkCellRangeInSelect(cellPosStart: CellAddress, cellPosEnd: CellAddress): boolean;
|
|
149
150
|
updateHoverIcon(col: number, row: number, target: any, cellGroup: Group): void;
|
|
150
151
|
isResizeCol(): boolean;
|
package/es/state/state.js
CHANGED
|
@@ -195,7 +195,7 @@ export class StateManager {
|
|
|
195
195
|
});
|
|
196
196
|
}
|
|
197
197
|
setSelectState() {
|
|
198
|
-
var _a, _b, _c, _d, _e;
|
|
198
|
+
var _a, _b, _c, _d, _e, _f;
|
|
199
199
|
const {headerSelectMode: headerSelectMode, disableSelect: disableSelect, disableHeaderSelect: disableHeaderSelect, highlightMode: highlightMode, highlightInRange: highlightInRange} = Object.assign({}, {
|
|
200
200
|
headerSelectMode: "inline",
|
|
201
201
|
disableSelect: !1,
|
|
@@ -206,7 +206,8 @@ export class StateManager {
|
|
|
206
206
|
this.select.highlightScope = !0 === disableSelect ? HighlightScope.none : "cross" === highlightMode ? HighlightScope.cross : "row" === highlightMode ? HighlightScope.row : "column" === highlightMode ? HighlightScope.column : HighlightScope.single,
|
|
207
207
|
this.select.singleStyle = !disableSelect, this.select.disableHeader = disableHeaderSelect,
|
|
208
208
|
this.select.headerSelectMode = headerSelectMode, this.select.cornerHeaderSelectMode = cornerHeaderSelectMode,
|
|
209
|
-
this.select.highlightInRange = highlightInRange, this.select.disableCtrlMultiSelect = !1 === (null === (_e = this.table.options.keyboardOptions) || void 0 === _e ? void 0 : _e.ctrlMultiSelect)
|
|
209
|
+
this.select.highlightInRange = highlightInRange, this.select.disableCtrlMultiSelect = !1 === (null === (_e = this.table.options.keyboardOptions) || void 0 === _e ? void 0 : _e.ctrlMultiSelect),
|
|
210
|
+
this.select.disableShiftMultiSelect = !1 === (null === (_f = this.table.options.keyboardOptions) || void 0 === _f ? void 0 : _f.shiftMultiSelect);
|
|
210
211
|
}
|
|
211
212
|
isSelected(col, row) {
|
|
212
213
|
let seled = !1;
|
|
@@ -259,12 +260,12 @@ export class StateManager {
|
|
|
259
260
|
updateHoverPos(col, row) {
|
|
260
261
|
updateHoverPosition(this, col, row);
|
|
261
262
|
}
|
|
262
|
-
updateSelectPos(col, row,
|
|
263
|
+
updateSelectPos(col, row, enableShiftSelectMode = !1, enableCtrlSelectMode = !1, isSelectAll = !1, makeSelectCellVisible = !0, skipBodyMerge = !1) {
|
|
263
264
|
-1 !== row && -1 !== row && (this.select.selecting = !0), col < 0 && (col = -1),
|
|
264
265
|
row < 0 && (row = -1), col > this.table.colCount - 1 && (col = this.table.colCount - 1),
|
|
265
266
|
row > this.table.rowCount - 1 && (row = this.table.rowCount - 1);
|
|
266
267
|
const oldCellPosCol = this.select.cellPos.col, oldCellPosRow = this.select.cellPos.row;
|
|
267
|
-
updateSelectPosition(this, col, row,
|
|
268
|
+
updateSelectPosition(this, col, row, enableShiftSelectMode, enableCtrlSelectMode, isSelectAll, makeSelectCellVisible, skipBodyMerge),
|
|
268
269
|
!this.table.hasListeners(TABLE_EVENT_TYPE.SELECTED_CHANGED) || oldCellPosCol === col && oldCellPosRow === row || this.table.fireListeners(TABLE_EVENT_TYPE.SELECTED_CHANGED, {
|
|
269
270
|
ranges: this.select.ranges,
|
|
270
271
|
col: col,
|