@visactor/vtable 1.26.1 → 1.26.2-none
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/ListTable.d.ts +1 -0
- package/cjs/ListTable.js +11 -1
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotTable.js +9 -4
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/core/BaseTable.js +5 -3
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/event/event.js +3 -1
- package/cjs/event/event.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/simple-header-layout.js +7 -7
- package/cjs/layout/simple-header-layout.js.map +1 -1
- package/cjs/plugins/list-tree-stick-cell.js +29 -3
- package/cjs/plugins/list-tree-stick-cell.js.map +1 -1
- package/cjs/state/select/update-position.js +2 -2
- package/cjs/state/select/update-position.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +93 -14
- package/dist/vtable.min.js +1 -1
- package/es/ListTable.d.ts +1 -0
- package/es/ListTable.js +11 -1
- package/es/ListTable.js.map +1 -1
- package/es/PivotTable.js +9 -4
- package/es/PivotTable.js.map +1 -1
- package/es/core/BaseTable.js +5 -3
- package/es/core/BaseTable.js.map +1 -1
- package/es/event/event.js +3 -1
- package/es/event/event.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/simple-header-layout.js +7 -7
- package/es/layout/simple-header-layout.js.map +1 -1
- package/es/plugins/list-tree-stick-cell.js +32 -2
- package/es/plugins/list-tree-stick-cell.js.map +1 -1
- package/es/state/select/update-position.js +2 -2
- package/es/state/select/update-position.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugins/list-tree-stick-cell.ts"],"names":[],"mappings":"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","file":"list-tree-stick-cell.js","sourcesContent":["import { isArray, isValid } from '@visactor/vutils';\nimport type { ListTable } from '../ListTable';\nimport { Group } from '../scenegraph/graphic/group';\nimport { updateCell } from '../scenegraph/group-creater/cell-helper';\nimport type { Graphic } from './../vrender';\nimport { createRect } from './../vrender';\nimport { Factory } from '../core/factory';\nimport { getTargetCell } from '../event/util';\n\nexport interface IListTreeStickCellPlugin {\n new (table: ListTable): ListTreeStickCellPlugin;\n}\n\nexport class ListTreeStickCellPlugin {\n table: ListTable;\n titleRows: number[] = [];\n showedTitleRows: number[] = [];\n rowNow: number = -1;\n skipStartRow: number = -1;\n skipEndRow: number = -1;\n\n constructor(table: ListTable) {\n this.table = table;\n\n this.table.on('scroll', e => {\n if (e.scrollDirection !== 'vertical') {\n return;\n }\n this.updateGroupTitle();\n });\n\n this.table.on('tree_hierarchy_state_change', e => {\n this.updateGroupTitle();\n });\n\n this.table.on('resize_column', e => {\n this.updateGroupTitle();\n });\n }\n\n updateGroupTitle() {\n // this.updateGroupTitleInfo();\n if (this.table.scrollTop === 0) {\n // do nothing\n this.titleRows = [];\n this.showedTitleRows = [];\n } else if (\n this.skipStartRow !== -1 &&\n this.skipEndRow !== -1 &&\n this.skipStartRow !== this.table.scenegraph.proxy.bodyTopRow - 1\n ) {\n if (\n this.table.scenegraph.proxy.screenTopRow <= this.skipStartRow ||\n this.table.scenegraph.proxy.screenTopRow >= this.skipEndRow\n ) {\n this.skipStartRow = -1;\n this.skipEndRow = -1;\n this.updateGroupTitleInfo();\n } else {\n // const row = this.table.scenegraph.proxy.screenTopRow + titleRows.length;\n // nowRow = row;\n // renderLast = true;\n // do nothing\n }\n } else {\n this.skipStartRow = -1;\n this.skipEndRow = -1;\n this.updateGroupTitleInfo();\n }\n\n this.updateScenegraph();\n }\n\n updateGroupTitleInfo() {\n this.rowNow = this.table.scenegraph.proxy.screenTopRow + this.titleRows.length;\n const recordIndex = this.table.getRecordIndexByCell(0, this.rowNow); // [0, 0, 6]/0\n const nextRecordIndex = this.table.getRecordIndexByCell(0, this.rowNow + 1);\n this.getTitleRowsByRecordIndex(recordIndex, nextRecordIndex);\n }\n\n getTitleRowsByRecordIndex(recordIndex: number | number[], nextRecordIndex: number | number[]) {\n const titleRecords = [];\n if (!isArray(recordIndex)) {\n recordIndex = [recordIndex];\n }\n if (!isArray(nextRecordIndex)) {\n nextRecordIndex = [nextRecordIndex];\n }\n\n for (let i = 0; i < recordIndex.length; i++) {\n const index = recordIndex.slice(0, i + 1);\n const record = this.table.dataSource.getRaw(index as unknown as number);\n titleRecords.push(record);\n }\n\n const titleRows = [];\n // const isTitle = !(recordIndex.length === (this.table.options.groupBy as any).length + 1);\n const isTitle = nextRecordIndex.length === recordIndex.length + 1;\n let titleIndex = recordIndex.slice(0, !isTitle ? recordIndex.length - 1 : recordIndex.length);\n const currentIndexedData = this.table.dataSource.currentIndexedData;\n const startIndex = this.rowNow - this.table.columnHeaderLevelCount;\n\n for (let i = startIndex; i >= 0; i--) {\n const currentIndex = currentIndexedData[i];\n if (isArray(currentIndex) && titleIndex.length === currentIndex.length) {\n let isMatch = true;\n for (let j = 0; j < currentIndex.length; j++) {\n if (currentIndex[j] !== titleIndex[j]) {\n isMatch = false;\n break;\n }\n }\n if (isMatch) {\n titleRows.push(i + this.table.columnHeaderLevelCount);\n titleIndex = titleIndex.slice(0, titleIndex.length - 1);\n }\n } else if (currentIndex === recordIndex[0]) {\n titleRows.push(i + this.table.columnHeaderLevelCount);\n break;\n }\n }\n\n this.titleRows = titleRows.reverse();\n }\n\n updateScenegraph() {\n const { table } = this;\n const { shadowGroup, shadowGroupFrozen } = prepareShadowRoot(table);\n\n this.showedTitleRows.length = 0;\n let skip = 0;\n for (let col = 0; col < table.colCount; col++) {\n let colGroup;\n if (col < table.frozenColCount) {\n colGroup = new Group({\n x: table.getColsWidth(0, col - 1),\n y: table.getFrozenRowsHeight()\n });\n shadowGroupFrozen.add(colGroup);\n } else {\n colGroup = new Group({\n x: table.getColsWidth(table.frozenColCount, col - 1),\n y: table.getFrozenRowsHeight()\n });\n shadowGroup.add(colGroup);\n }\n colGroup.col = col;\n for (let i = 0; i < this.titleRows.length; i++) {\n const row = this.titleRows[i];\n if (isSkipRow(row, this.rowNow, table.scenegraph.proxy.screenTopRow, this.titleRows)) {\n // skipOne = true;\n col === 0 && skip++;\n continue;\n }\n if (col === 0) {\n this.showedTitleRows.push(row);\n }\n const cell = table.scenegraph.getCell(col, row);\n if (cell.role === 'cell') {\n const newCell = cloneGraphic(cell);\n newCell.setAttributes({\n y: i * 40\n });\n colGroup.add(newCell);\n } else {\n // create a fake cellGroup for title\n const newCell = updateCell(col, row, table, true, true);\n newCell.setAttributes({\n y: i * 40\n });\n colGroup.add(newCell);\n }\n }\n }\n\n if (skip > 0 && this.skipStartRow === -1 && this.skipEndRow === -1) {\n this.skipStartRow = table.scenegraph.proxy.screenTopRow - 1;\n this.skipEndRow = table.scenegraph.proxy.screenTopRow + 1;\n }\n }\n}\n\nfunction isSkipRow(row: number, topRow: number, screenTopRow: number, titleRows: number[]) {\n if (row === topRow && row !== screenTopRow + titleRows.length - 1) {\n return true;\n }\n\n const rowIndex = titleRows.indexOf(row);\n const rowLimit = screenTopRow + rowIndex + 1;\n if (row === rowLimit && row < topRow) {\n return true;\n }\n\n return false;\n}\n\nfunction cloneGraphic(graphic: Graphic) {\n const newGraphic = graphic.clone();\n (newGraphic as any).role = (graphic as any).role;\n (newGraphic as any).col = (graphic as any).col;\n (newGraphic as any).row = (graphic as any).row;\n (newGraphic as any).mergeStartCol = (graphic as any).mergeStartCol;\n (newGraphic as any).mergeStartRow = (graphic as any).mergeStartRow;\n (newGraphic as any).mergeEndCol = (graphic as any).mergeEndCol;\n (newGraphic as any).mergeEndRow = (graphic as any).mergeEndRow;\n (newGraphic as any).contentWidth = (graphic as any).contentWidth;\n (newGraphic as any).contentHeight = (graphic as any).contentHeight;\n\n if ((newGraphic as any).role === 'cell') {\n // hack for vrender not support shadow group pick\n const hackRect = createRect({\n x: 0,\n y: 0,\n width: newGraphic.attribute.width,\n height: newGraphic.attribute.height\n });\n newGraphic.add(hackRect);\n }\n\n if (graphic.type === 'group') {\n const newGroup = newGraphic as Group;\n graphic.forEachChildren(child => {\n const newChild = cloneGraphic(child as any);\n newGroup.add(newChild);\n });\n }\n return newGraphic;\n}\n\nfunction prepareShadowRoot(table: ListTable) {\n const colHeaderGroup = table.scenegraph.colHeaderGroup;\n const cornerHeaderGroup = table.scenegraph.cornerHeaderGroup;\n if (!colHeaderGroup.border) {\n const hackBorder = createRect({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n cursor: 'pointer'\n });\n colHeaderGroup.add(hackBorder);\n colHeaderGroup.border = hackBorder;\n (hackBorder as any).attachShadow(hackBorder.shadowRoot);\n hackBorder.name = 'border-rect';\n\n hackBorder.addEventListener('click', (e: any) => {\n const titleRows = table.listTreeStickCellPlugin.titleRows;\n const { shadowTarget } = e.pickParams;\n const cellGroup = getTargetCell(shadowTarget);\n const { col, row } = cellGroup;\n const rowIndex = titleRows.indexOf(row);\n // table.scrollToCell({ col, row: row - rowIndex });\n scrollToRow(row - rowIndex, table);\n });\n }\n\n if (!cornerHeaderGroup.border) {\n const hackBorder = createRect({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n cursor: 'pointer'\n });\n cornerHeaderGroup.add(hackBorder);\n cornerHeaderGroup.border = hackBorder;\n (hackBorder as any).attachShadow(hackBorder.shadowRoot);\n hackBorder.name = 'border-rect';\n\n hackBorder.addEventListener('click', (e: any) => {\n const titleRows = table.listTreeStickCellPlugin.titleRows;\n const { shadowTarget } = e.pickParams;\n const cellGroup = getTargetCell(shadowTarget);\n const { col, row } = cellGroup;\n const rowIndex = titleRows.indexOf(row);\n // table.scrollToCell({ col, row: row - rowIndex });\n scrollToRow(row - rowIndex, table);\n });\n }\n\n const shadowGroup = colHeaderGroup.border.shadowRoot;\n const shadowGroupFrozen = cornerHeaderGroup.border.shadowRoot;\n shadowGroup.removeAllChild();\n shadowGroupFrozen.removeAllChild();\n\n return { shadowGroup, shadowGroupFrozen };\n}\n\nfunction scrollToRow(row: number, table: ListTable) {\n const drawRange = table.getDrawRange();\n\n if (isValid(row) && row >= table.frozenRowCount) {\n const frozenHeight = table.getFrozenRowsHeight();\n const top = table.getRowsHeight(0, row - 1);\n table.scrollTop = Math.min(top - frozenHeight, table.getAllRowsHeight() - drawRange.height) - 1;\n }\n table.scenegraph.updateNextFrame();\n}\n\nexport const registerListTreeStickCellPlugin = () => {\n Factory.registerComponent('listTreeStickCellPlugin', ListTreeStickCellPlugin);\n};\n\n// export type IListTreeStickCellPlugin = typeof ListTreeStickCellPlugin;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/plugins/list-tree-stick-cell.ts"],"names":[],"mappings":"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","file":"list-tree-stick-cell.js","sourcesContent":["import { isArray, isValid } from '@visactor/vutils';\nimport type { ListTable } from '../ListTable';\nimport { Group } from '../scenegraph/graphic/group';\nimport { updateCell } from '../scenegraph/group-creater/cell-helper';\nimport type { Graphic } from './../vrender';\nimport { createRect } from './../vrender';\nimport { Factory } from '../core/factory';\nimport { getTargetCell } from '../event/util';\nimport { getIconAndPositionFromTarget } from '../scenegraph/utils/icon';\nimport { IconFuncTypeEnum } from '../ts-types';\n\nexport interface IListTreeStickCellPlugin {\n new (table: ListTable): ListTreeStickCellPlugin;\n}\n\nexport class ListTreeStickCellPlugin {\n table: ListTable;\n titleRows: number[] = [];\n showedTitleRows: number[] = [];\n rowNow: number = -1;\n skipStartRow: number = -1;\n skipEndRow: number = -1;\n\n constructor(table: ListTable) {\n this.table = table;\n\n this.table.on('scroll', e => {\n if (e.scrollDirection !== 'vertical') {\n return;\n }\n this.updateGroupTitle();\n });\n\n this.table.on('tree_hierarchy_state_change', e => {\n this.updateGroupTitle();\n });\n\n this.table.on('resize_column', e => {\n this.updateGroupTitle();\n });\n }\n\n updateGroupTitle() {\n // this.updateGroupTitleInfo();\n if (this.table.scrollTop === 0) {\n // do nothing\n this.titleRows = [];\n this.showedTitleRows = [];\n } else if (\n this.skipStartRow !== -1 &&\n this.skipEndRow !== -1 &&\n this.skipStartRow !== this.table.scenegraph.proxy.bodyTopRow - 1\n ) {\n if (\n this.table.scenegraph.proxy.screenTopRow <= this.skipStartRow ||\n this.table.scenegraph.proxy.screenTopRow >= this.skipEndRow\n ) {\n this.skipStartRow = -1;\n this.skipEndRow = -1;\n this.updateGroupTitleInfo();\n } else {\n // const row = this.table.scenegraph.proxy.screenTopRow + titleRows.length;\n // nowRow = row;\n // renderLast = true;\n // do nothing\n }\n } else {\n this.skipStartRow = -1;\n this.skipEndRow = -1;\n this.updateGroupTitleInfo();\n }\n\n this.updateScenegraph();\n }\n\n updateGroupTitleInfo() {\n this.rowNow = this.table.scenegraph.proxy.screenTopRow + this.titleRows.length;\n const recordIndex = this.table.getRecordIndexByCell(0, this.rowNow); // [0, 0, 6]/0\n const nextRecordIndex = this.table.getRecordIndexByCell(0, this.rowNow + 1);\n this.getTitleRowsByRecordIndex(recordIndex, nextRecordIndex);\n }\n\n getTitleRowsByRecordIndex(recordIndex: number | number[], nextRecordIndex: number | number[]) {\n const titleRecords = [];\n if (!isArray(recordIndex)) {\n recordIndex = [recordIndex];\n }\n if (!isArray(nextRecordIndex)) {\n nextRecordIndex = [nextRecordIndex];\n }\n\n for (let i = 0; i < recordIndex.length; i++) {\n const index = recordIndex.slice(0, i + 1);\n const record = this.table.dataSource.getRaw(index as unknown as number);\n titleRecords.push(record);\n }\n\n const titleRows = [];\n // const isTitle = !(recordIndex.length === (this.table.options.groupBy as any).length + 1);\n const isTitle = nextRecordIndex.length === recordIndex.length + 1;\n let titleIndex = recordIndex.slice(0, !isTitle ? recordIndex.length - 1 : recordIndex.length);\n const currentIndexedData = this.table.dataSource.currentIndexedData;\n const startIndex = this.rowNow - this.table.columnHeaderLevelCount;\n\n for (let i = startIndex; i >= 0; i--) {\n const currentIndex = currentIndexedData[i];\n if (isArray(currentIndex) && titleIndex.length === currentIndex.length) {\n let isMatch = true;\n for (let j = 0; j < currentIndex.length; j++) {\n if (currentIndex[j] !== titleIndex[j]) {\n isMatch = false;\n break;\n }\n }\n if (isMatch) {\n titleRows.push(i + this.table.columnHeaderLevelCount);\n titleIndex = titleIndex.slice(0, titleIndex.length - 1);\n }\n } else if (currentIndex === recordIndex[0]) {\n titleRows.push(i + this.table.columnHeaderLevelCount);\n break;\n }\n }\n\n this.titleRows = titleRows.reverse();\n }\n\n updateScenegraph() {\n const { table } = this;\n const { shadowGroup, shadowGroupFrozen } = prepareShadowRoot(table);\n\n this.showedTitleRows.length = 0;\n let skip = 0;\n for (let col = 0; col < table.colCount; col++) {\n let colGroup;\n if (col < table.frozenColCount) {\n colGroup = new Group({\n x: table.getColsWidth(0, col - 1),\n y: table.getFrozenRowsHeight()\n });\n shadowGroupFrozen.add(colGroup);\n } else {\n colGroup = new Group({\n x: table.getColsWidth(table.frozenColCount, col - 1),\n y: table.getFrozenRowsHeight()\n });\n shadowGroup.add(colGroup);\n }\n colGroup.col = col;\n for (let i = 0; i < this.titleRows.length; i++) {\n const row = this.titleRows[i];\n if (isSkipRow(row, this.rowNow, table.scenegraph.proxy.screenTopRow, this.titleRows)) {\n // skipOne = true;\n col === 0 && skip++;\n continue;\n }\n if (col === 0) {\n this.showedTitleRows.push(row);\n }\n const cell = table.scenegraph.getCell(col, row);\n if (cell.role === 'cell') {\n const newCell = cloneGraphic(cell);\n newCell.setAttributes({\n y: i * 40\n });\n colGroup.add(newCell);\n } else {\n // create a fake cellGroup for title\n const newCell = updateCell(col, row, table, true, true);\n newCell.setAttributes({\n y: i * 40\n });\n colGroup.add(newCell);\n }\n }\n }\n\n if (skip > 0 && this.skipStartRow === -1 && this.skipEndRow === -1) {\n this.skipStartRow = table.scenegraph.proxy.screenTopRow - 1;\n this.skipEndRow = table.scenegraph.proxy.screenTopRow + 1;\n }\n }\n}\n\nfunction isSkipRow(row: number, topRow: number, screenTopRow: number, titleRows: number[]) {\n if (row === topRow && row !== screenTopRow + titleRows.length - 1) {\n return true;\n }\n\n const rowIndex = titleRows.indexOf(row);\n const rowLimit = screenTopRow + rowIndex + 1;\n if (row === rowLimit && row < topRow) {\n return true;\n }\n\n return false;\n}\n\nfunction cloneGraphic(graphic: Graphic) {\n const newGraphic = graphic.clone();\n (newGraphic as any).role = (graphic as any).role;\n (newGraphic as any).col = (graphic as any).col;\n (newGraphic as any).row = (graphic as any).row;\n (newGraphic as any).mergeStartCol = (graphic as any).mergeStartCol;\n (newGraphic as any).mergeStartRow = (graphic as any).mergeStartRow;\n (newGraphic as any).mergeEndCol = (graphic as any).mergeEndCol;\n (newGraphic as any).mergeEndRow = (graphic as any).mergeEndRow;\n (newGraphic as any).contentWidth = (graphic as any).contentWidth;\n (newGraphic as any).contentHeight = (graphic as any).contentHeight;\n\n if ((newGraphic as any).role === 'cell') {\n // hack for vrender not support shadow group pick\n const hackRect = createRect({\n x: 0,\n y: 0,\n width: newGraphic.attribute.width,\n height: newGraphic.attribute.height\n });\n newGraphic.add(hackRect);\n }\n\n if (graphic.type === 'group') {\n const newGroup = newGraphic as Group;\n graphic.forEachChildren(child => {\n const newChild = cloneGraphic(child as any);\n newGroup.add(newChild);\n });\n }\n return newGraphic;\n}\n\nfunction prepareShadowRoot(table: ListTable) {\n const colHeaderGroup = table.scenegraph.colHeaderGroup;\n const cornerHeaderGroup = table.scenegraph.cornerHeaderGroup;\n if (!colHeaderGroup.border) {\n const hackBorder = createRect({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n cursor: 'pointer'\n });\n colHeaderGroup.add(hackBorder);\n colHeaderGroup.border = hackBorder;\n (hackBorder as any).attachShadow(hackBorder.shadowRoot);\n hackBorder.name = 'border-rect';\n\n hackBorder.addEventListener('click', (e: any) => {\n const titleRows = table.listTreeStickCellPlugin.titleRows;\n const { shadowTarget } = e.pickParams;\n const cellGroup = getTargetCell(shadowTarget);\n if (!cellGroup) {\n return;\n }\n const iconInfo = getIconAndPositionFromTarget(shadowTarget);\n const funcType = iconInfo?.icon?.attribute?.funcType;\n if (funcType === IconFuncTypeEnum.collapse || funcType === IconFuncTypeEnum.expand) {\n const stickCellTop = getStickCellTop(cellGroup, table);\n table.toggleHierarchyState(cellGroup.col, cellGroup.row);\n keepRowAtVisiblePosition(cellGroup.col, cellGroup.row, stickCellTop, table);\n return;\n }\n const { row } = cellGroup;\n const rowIndex = titleRows.indexOf(row);\n // table.scrollToCell({ col, row: row - rowIndex });\n scrollToRow(row - rowIndex, table);\n });\n }\n\n if (!cornerHeaderGroup.border) {\n const hackBorder = createRect({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n cursor: 'pointer'\n });\n cornerHeaderGroup.add(hackBorder);\n cornerHeaderGroup.border = hackBorder;\n (hackBorder as any).attachShadow(hackBorder.shadowRoot);\n hackBorder.name = 'border-rect';\n\n hackBorder.addEventListener('click', (e: any) => {\n const titleRows = table.listTreeStickCellPlugin.titleRows;\n const { shadowTarget } = e.pickParams;\n const cellGroup = getTargetCell(shadowTarget);\n if (!cellGroup) {\n return;\n }\n const iconInfo = getIconAndPositionFromTarget(shadowTarget);\n const funcType = iconInfo?.icon?.attribute?.funcType;\n if (funcType === IconFuncTypeEnum.collapse || funcType === IconFuncTypeEnum.expand) {\n const stickCellTop = getStickCellTop(cellGroup, table);\n table.toggleHierarchyState(cellGroup.col, cellGroup.row);\n keepRowAtVisiblePosition(cellGroup.col, cellGroup.row, stickCellTop, table);\n return;\n }\n const { row } = cellGroup;\n const rowIndex = titleRows.indexOf(row);\n // table.scrollToCell({ col, row: row - rowIndex });\n scrollToRow(row - rowIndex, table);\n });\n }\n\n const shadowGroup = colHeaderGroup.border.shadowRoot;\n const shadowGroupFrozen = cornerHeaderGroup.border.shadowRoot;\n shadowGroup.removeAllChild();\n shadowGroupFrozen.removeAllChild();\n\n return { shadowGroup, shadowGroupFrozen };\n}\n\nfunction scrollToRow(row: number, table: ListTable) {\n const drawRange = table.getDrawRange();\n\n if (isValid(row) && row >= table.frozenRowCount) {\n const frozenHeight = table.getFrozenRowsHeight();\n const top = table.getRowsHeight(0, row - 1);\n table.scrollTop = Math.min(top - frozenHeight, table.getAllRowsHeight() - drawRange.height) - 1;\n }\n table.scenegraph.updateNextFrame();\n}\n\nfunction getStickCellTop(cellGroup: Group, table: ListTable) {\n return table.getFrozenRowsHeight() + (cellGroup.attribute?.y ?? 0);\n}\n\nfunction keepRowAtVisiblePosition(col: number, row: number, visibleTop: number, table: ListTable) {\n const drawRange = table.getDrawRange();\n // Keep the clicked sticky group row in roughly the same viewport position after collapse/expand.\n const targetScrollTop = Math.max(\n 0,\n Math.min(table.getCellRect(col, row).top - visibleTop, table.getAllRowsHeight() - drawRange.height)\n );\n table.scrollTop = targetScrollTop;\n table.scenegraph.updateNextFrame();\n}\n\nexport const registerListTreeStickCellPlugin = () => {\n Factory.registerComponent('listTreeStickCellPlugin', ListTreeStickCellPlugin);\n};\n\n// export type IListTreeStickCellPlugin = typeof ListTreeStickCellPlugin;\n"]}
|
|
@@ -154,8 +154,8 @@ export function updateSelectPosition(state, col, row, enableShiftSelectMode, ena
|
|
|
154
154
|
col: col,
|
|
155
155
|
row: row
|
|
156
156
|
};
|
|
157
|
-
enableShiftSelectMode || (currentRange.end = currentRange.start),
|
|
158
|
-
scenegraph.updateCellSelectBorder(currentRange);
|
|
157
|
+
enableShiftSelectMode || (currentRange.end = currentRange.start), cellPos.col = col,
|
|
158
|
+
cellPos.row = row, scenegraph.deleteLastSelectedRangeComponents(), scenegraph.updateCellSelectBorder(currentRange);
|
|
159
159
|
} else {
|
|
160
160
|
let extendSelectRange = !isValid(skipBodyMerge) || !skipBodyMerge;
|
|
161
161
|
if (-1 === cellPos.col || -1 === cellPos.row || enableCtrlSelectMode || (state.select.ranges = [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/state/select/update-position.ts"],"names":[],"mappings":"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","file":"update-position.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport 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';\nimport { isCellDisableSelect } from './is-cell-select-highlight';\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 = isValid(skipBodyMerge) ? !skipBodyMerge : 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 if (col >= 0 && row >= 0 && isCellDisableSelect(table, col, row)) {\n scenegraph.updateNextFrame();\n return;\n }\n let extendSelectRange = isValid(skipBodyMerge) ? !skipBodyMerge : 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 { isValid } from '@visactor/vutils';\nimport 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';\nimport { isCellDisableSelect } from './is-cell-select-highlight';\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 // Keep the focus cell in sync with the latest keyboard expansion target.\n cellPos.col = col;\n cellPos.row = row;\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 = isValid(skipBodyMerge) ? !skipBodyMerge : 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 if (col >= 0 && row >= 0 && isCellDisableSelect(table, col, row)) {\n scenegraph.updateNextFrame();\n return;\n }\n let extendSelectRange = isValid(skipBodyMerge) ? !skipBodyMerge : 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/vrender.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vrender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACxH,OAAO,EACL,cAAc,EACd,WAAW,EACX,WAAW,EAGX,cAAc,EAEd,aAAa,EACb,aAAa,EACb,YAAY,EAIZ,YAAY,EAEZ,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,YAAY,EAEb,MAAM,wBAAwB,CAAC;AAIhC,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,MAAM,UAAU,kBAAkB;IAChC,IAAI,QAAQ,EAAE;QACZ,OAAO;KACR;IACD,QAAQ,GAAG,IAAI,CAAC;IAEhB,gBAAgB,EAAE,CAAC;IAEnB,IAAI,YAAY,EAAE,EAAE;QAClB,cAAc,CAAC,SAAS,CAAC,CAAC;KAC3B;SAAM,IAAI,SAAS,EAAE,EAAE;QACtB,WAAW,CAAC,SAAS,CAAC,CAAC;KACxB;IACD,WAAW,EAAE,CAAC;IAGd,cAAc,EAAE,CAAC;IAEjB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IAIf,YAAY,EAAE,CAAC;IAEf,gBAAgB,EAAE,CAAC;IACnB,kBAAkB,EAAE,CAAC;IACrB,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,wBAAwB,EAAE,CAAC;IAE3B,UAAU,EAAE,CAAC;IAEb,wBAAwB,EAAE,CAAC;AAC7B,CAAC;AAOD,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC","file":"vrender.js","sourcesContent":["import { loadPoptip } from '@visactor/vrender-components';\nimport '@visactor/vrender-core';\nimport { container, isBrowserEnv, isNodeEnv, preLoadAllModule, registerFlexLayoutPlugin } from '@visactor/vrender-core';\nimport {\n loadBrowserEnv,\n loadNodeEnv,\n registerArc,\n registerArc3d,\n registerArea,\n registerCircle,\n registerGlyph,\n registerGroup,\n registerImage,\n registerLine,\n registerPath,\n registerPolygon,\n registerPyramid3d,\n registerRect,\n registerRect3d,\n registerRichtext,\n registerShadowRoot,\n registerSymbol,\n registerText,\n registerWrapText\n} from '@visactor/vrender-kits';\n// 导出版本号\n// export const version = \"1.26.
|
|
1
|
+
{"version":3,"sources":["../src/vrender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACxH,OAAO,EACL,cAAc,EACd,WAAW,EACX,WAAW,EAGX,cAAc,EAEd,aAAa,EACb,aAAa,EACb,YAAY,EAIZ,YAAY,EAEZ,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,YAAY,EAEb,MAAM,wBAAwB,CAAC;AAIhC,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,MAAM,UAAU,kBAAkB;IAChC,IAAI,QAAQ,EAAE;QACZ,OAAO;KACR;IACD,QAAQ,GAAG,IAAI,CAAC;IAEhB,gBAAgB,EAAE,CAAC;IAEnB,IAAI,YAAY,EAAE,EAAE;QAClB,cAAc,CAAC,SAAS,CAAC,CAAC;KAC3B;SAAM,IAAI,SAAS,EAAE,EAAE;QACtB,WAAW,CAAC,SAAS,CAAC,CAAC;KACxB;IACD,WAAW,EAAE,CAAC;IAGd,cAAc,EAAE,CAAC;IAEjB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IAIf,YAAY,EAAE,CAAC;IAEf,gBAAgB,EAAE,CAAC;IACnB,kBAAkB,EAAE,CAAC;IACrB,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,wBAAwB,EAAE,CAAC;IAE3B,UAAU,EAAE,CAAC;IAEb,wBAAwB,EAAE,CAAC;AAC7B,CAAC;AAOD,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC","file":"vrender.js","sourcesContent":["import { loadPoptip } from '@visactor/vrender-components';\nimport '@visactor/vrender-core';\nimport { container, isBrowserEnv, isNodeEnv, preLoadAllModule, registerFlexLayoutPlugin } from '@visactor/vrender-core';\nimport {\n loadBrowserEnv,\n loadNodeEnv,\n registerArc,\n registerArc3d,\n registerArea,\n registerCircle,\n registerGlyph,\n registerGroup,\n registerImage,\n registerLine,\n registerPath,\n registerPolygon,\n registerPyramid3d,\n registerRect,\n registerRect3d,\n registerRichtext,\n registerShadowRoot,\n registerSymbol,\n registerText,\n registerWrapText\n} from '@visactor/vrender-kits';\n// 导出版本号\n// export const version = \"1.26.2-none\";\n\nlet registed = false;\nexport function registerForVrender() {\n if (registed) {\n return;\n }\n registed = true;\n // 注册内置组件\n preLoadAllModule();\n\n if (isBrowserEnv()) {\n loadBrowserEnv(container);\n } else if (isNodeEnv()) {\n loadNodeEnv(container);\n }\n registerArc();\n // registerArc3d();\n // registerArea();\n registerCircle();\n // registerGlyph();\n registerGroup();\n registerImage();\n registerLine();\n // registerPath();\n // registerPolygon();\n // registerPyramid3d();\n registerRect();\n // registerRect3d();\n registerRichtext();\n registerShadowRoot();\n registerSymbol();\n registerText();\n registerFlexLayoutPlugin();\n // registerWrapText();\n loadPoptip();\n\n registerFlexLayoutPlugin();\n}\n\nexport type { Direction } from '@visactor/vrender-core';\nexport type { State } from '@visactor/vrender-components';\n// export { GroupFadeIn } from '@visactor/vrender-core';\n// export { GroupFadeOut } from '@visactor/vrender-core';\n\nexport * from '@visactor/vrender-core';\nexport * from '@visactor/vrender-kits';\nexport * from '@visactor/vrender-components';\nexport * from '@visactor/vrender-animate';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vtable",
|
|
3
|
-
"version": "1.26.
|
|
3
|
+
"version": "1.26.2-none",
|
|
4
4
|
"description": "canvas table width high performance",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"grid",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"dist"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
+
"@visactor/vtable-editors": "1.26.2-none",
|
|
40
41
|
"@visactor/vrender-core": "~1.0.41",
|
|
41
42
|
"@visactor/vrender-kits": "~1.0.41",
|
|
42
43
|
"@visactor/vrender-components": "~1.0.41",
|
|
@@ -47,8 +48,7 @@
|
|
|
47
48
|
"@visactor/vutils-extension": "~2.0.12",
|
|
48
49
|
"cssfontparser": "^1.2.1",
|
|
49
50
|
"gifuct-js": "2.1.2",
|
|
50
|
-
"lodash": "4.17.21"
|
|
51
|
-
"@visactor/vtable-editors": "1.26.1"
|
|
51
|
+
"lodash": "4.17.21"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"cross-env": "^7.0.3",
|