@visactor/vtable 1.17.6-alpha.2 → 1.17.6
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 +2 -2
- package/cjs/ListTable.js +23 -5
- package/cjs/ListTable.js.map +1 -1
- package/cjs/core/BaseTable.js +1 -1
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/record-helper.d.ts +2 -2
- package/cjs/core/record-helper.js +4 -4
- package/cjs/core/record-helper.js.map +1 -1
- package/cjs/dataset/dataset-pivot-table.js +2 -1
- package/cjs/edit/editors.js +1 -2
- package/cjs/event/listener/container-dom.js +3 -1
- package/cjs/event/listener/container-dom.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.d.ts +3 -1
- package/cjs/layout/simple-header-layout.js +11 -5
- package/cjs/layout/simple-header-layout.js.map +1 -1
- package/cjs/scenegraph/component/menu.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +1 -1
- package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/state/checkbox/checkbox.js +2 -2
- package/cjs/state/checkbox/checkbox.js.map +1 -1
- package/cjs/state/select/update-position.js +138 -44
- package/cjs/state/select/update-position.js.map +1 -1
- package/cjs/state/state.d.ts +1 -0
- package/cjs/state/state.js +4 -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/events.d.ts +1 -0
- package/cjs/ts-types/events.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +2 -0
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +103 -19
- package/dist/vtable.min.js +1 -1
- package/es/ListTable.d.ts +2 -2
- package/es/ListTable.js +23 -5
- package/es/ListTable.js.map +1 -1
- package/es/core/BaseTable.js +1 -1
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/record-helper.d.ts +2 -2
- package/es/core/record-helper.js +4 -4
- package/es/core/record-helper.js.map +1 -1
- package/es/dataset/dataset-pivot-table.js +2 -1
- package/es/edit/editors.js +1 -2
- package/es/event/listener/container-dom.js +2 -1
- package/es/event/listener/container-dom.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.d.ts +3 -1
- package/es/layout/simple-header-layout.js +12 -4
- package/es/layout/simple-header-layout.js.map +1 -1
- package/es/scenegraph/component/menu.js.map +1 -1
- package/es/scenegraph/graphic/contributions/rect-contribution-render.js +1 -1
- package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
- package/es/state/checkbox/checkbox.js +2 -2
- package/es/state/checkbox/checkbox.js.map +1 -1
- package/es/state/select/update-position.js +138 -44
- package/es/state/select/update-position.js.map +1 -1
- package/es/state/state.d.ts +1 -0
- package/es/state/state.js +4 -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/events.d.ts +1 -0
- package/es/ts-types/events.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +2 -0
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/graphic/contributions/rect-contribution-render.ts"],"names":[],"mappings":"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","file":"rect-contribution-render.js","sourcesContent":["import type {\n IRect,\n IContext2d,\n IRectGraphicAttribute,\n IMarkAttribute,\n IGraphicAttribute,\n IThemeAttribute,\n IRectRenderContribution,\n IGroup,\n IGroupGraphicAttribute,\n IDrawContext,\n ICustomPath2D\n} from './../../../vrender';\nimport { BaseRenderContributionTime, injectable } from './../../../vrender';\nimport { getWidthInfo, renderStroke } from './group-contribution-render';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport type { vec2, vec4 } from '@visactor/vutils';\nimport { abs, arrayEqual, halfPi, isArray, isNumber, pi } from '@visactor/vutils';\nimport { createRectPath } from './../../../vrender';\n\n@injectable()\nexport class SplitRectBeforeRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n doFillOrStroke?: { doFill: boolean; doStroke: boolean }\n ) {\n // const { stroke = rectAttribute.stroke } = group.attribute as any;\n\n // if (Array.isArray(stroke)) {\n // doFillOrStroke.doStroke = false;\n // }\n\n const {\n stroke = rectAttribute.stroke,\n strokeArrayWidth = (rectAttribute as any).strokeArrayWidth,\n strokeArrayColor = (rectAttribute as any).strokeArrayColor\n } = rect.attribute as any;\n\n if (stroke && (Array.isArray(stroke) || Array.isArray(strokeArrayWidth) || Array.isArray(strokeArrayColor))) {\n doFillOrStroke.doStroke = false;\n }\n }\n}\n\n@injectable()\nexport class SplitRectAfterRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const {\n // width = rectAttribute.width,\n // height = rectAttribute.height,\n // stroke = rectAttribute.stroke\n // } = group.attribute as any;\n\n // if (!Array.isArray(stroke)) {\n // return;\n // }\n\n // context.setStrokeStyle(group, group.attribute, x, y, rectAttribute);\n // // 单独处理每条边界,目前不考虑圆角\n // context.beginPath();\n // context.moveTo(x, y);\n // // top\n // if (stroke[0]) {\n // context.lineTo(x + width, y);\n // } else {\n // context.moveTo(x + width, y);\n // }\n // // right\n // if (stroke[1]) {\n // context.lineTo(x + width, y + height);\n // } else {\n // context.moveTo(x + width, y + height);\n // }\n // // bottom\n // if (stroke[2]) {\n // context.lineTo(x, y + height);\n // } else {\n // context.moveTo(x, y + height);\n // }\n // // left\n // if (stroke[3]) {\n // // 没有close path是,起点和终点不连续,需要调整y保证不出现缺口\n // const adjustY = stroke[0] ? y - context.lineWidth / 2 : y;\n // context.lineTo(x, adjustY);\n // } else {\n // context.moveTo(x, y);\n // }\n\n // context.stroke();\n\n const {\n width = rectAttribute.width,\n height = rectAttribute.height,\n // 基础border\n stroke = rectAttribute.stroke,\n strokeArrayColor = (rectAttribute as any).strokeArrayColor,\n strokeArrayWidth = (rectAttribute as any).strokeArrayWidth,\n\n lineWidth = rectAttribute.lineWidth,\n strokeColor = rectAttribute.stroke,\n\n cornerRadius = rectAttribute.cornerRadius\n // // select & hover border\n // highlightStroke = (rectAttribute as any).highlightStroke,\n // highlightStrokeArrayColor = (rectAttribute as any).highlightStrokeArrayColor,\n // highlightStrokeArrayWidth = (rectAttribute as any).highlightStrokeArrayWidth,\n // highlightStrokeArrayPart = (rectAttribute as any).highlightStrokeArrayPart,\n } = rect.attribute as any;\n\n if (!stroke || (!Array.isArray(strokeArrayWidth) && lineWidth === 0)) {\n return;\n }\n\n if (Array.isArray(stroke) || Array.isArray(strokeArrayColor) || Array.isArray(strokeArrayWidth)) {\n // let dx = 0;\n // let dy = 0;\n const deltaWidth = 0;\n const deltaHeight = 0;\n if (\n rect.name !== 'border-rect' && // border-rect not need offset\n rect.name !== 'table-border-rect' && // table-border-rect not need offset\n ((typeof lineWidth === 'number' && lineWidth & 1) ||\n (Array.isArray(strokeArrayWidth) && strokeArrayWidth.some(width => width & 1)))\n ) {\n // const table = (rect.stage as any).table as BaseTableAPI;\n // const bottomRight = table.theme.cellBorderClipDirection === 'bottom-right';\n // if (bottomRight) {\n // x = Math.floor(x) - 0.5;\n // y = Math.floor(y) - 0.5;\n // deltaWidth = 0.5;\n // deltaHeight = 0.5;\n // } else {\n x = Math.floor(x) + 0.5;\n y = Math.floor(y) + 0.5;\n // }\n }\n\n // 带不同stroke边框\n if (!(cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0)))) {\n // let lastStrokeI = 0;\n // let lastStroke: any;\n context.beginPath();\n // debugger;\n createRectPath(\n context,\n x,\n y,\n width,\n height,\n cornerRadius,\n new Array(4).fill(0).map((_, i) => (x1: number, y1: number, x2: number, y2: number) => {\n renderStrokeWithCornerRadius(\n i,\n x1,\n y1,\n x2,\n y2,\n rect,\n context,\n x,\n y,\n rectAttribute,\n stroke,\n strokeArrayWidth || lineWidth,\n strokeArrayColor || strokeColor,\n Math.ceil(width + deltaWidth),\n Math.ceil(height + deltaHeight)\n );\n })\n );\n\n context.stroke();\n } else {\n renderStroke(\n rect as IGroup,\n context,\n x,\n y,\n rectAttribute,\n stroke,\n strokeArrayWidth || lineWidth,\n strokeArrayColor || strokeColor,\n Math.ceil(width + deltaWidth),\n Math.ceil(height + deltaHeight)\n );\n }\n }\n }\n}\n\nexport function renderStrokeWithCornerRadius(\n i: number,\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n rectAttribute: Required<IRectGraphicAttribute>,\n stroke: any,\n strokeArrayWidth: any,\n strokeArrayColor: any,\n width: number,\n height: number\n) {\n const group = rect;\n const groupAttribute = rectAttribute;\n\n // if (stroke[i]) {\n // if (!(lastStrokeI === i - 1 && stroke[i] === lastStroke)) {\n // context.setStrokeStyle(rect, { ...rect.attribute, stroke: stroke[i] }, x, y, rectAttribute);\n // context.beginPath();\n // context.moveTo(x1, y1);\n // lastStroke = stroke[i];\n // }\n // lastStrokeI = i;\n // context.lineTo(x2, y2);\n // context.stroke();\n // if (i === 3) {\n // context.beginPath();\n // }\n // }\n\n const widthInfo = getWidthInfo(strokeArrayWidth);\n const isWidthNumber = !Array.isArray(strokeArrayWidth);\n const isStrokeTrue = !Array.isArray(stroke);\n const isSplitDraw = Array.isArray(strokeArrayColor) || widthInfo.isSplitDraw;\n context.stroke(); // stroke last corner with last stroke style\n\n context.setStrokeStyle(rect, rect.attribute, x, y, rectAttribute);\n const { lineDash = groupAttribute.lineDash } = group.attribute as any;\n // const lineDash = context.getLineDash();\n let isDash = false;\n if (lineDash.length && lineDash.some((dash: number[] | null) => Array.isArray(dash))) {\n isDash = true;\n }\n\n // 单独处理每条边界,目前不考虑圆角\n context.beginPath(); // clean path\n context.moveTo(x, y);\n\n const strokeTop = (isStrokeTrue || stroke[0]) && (isWidthNumber || strokeArrayWidth[0]);\n const strokeRight = (isStrokeTrue || stroke[1]) && (isWidthNumber || strokeArrayWidth[1]);\n const strokeBottom = (isStrokeTrue || stroke[2]) && (isWidthNumber || strokeArrayWidth[2]);\n const strokeLeft = (isStrokeTrue || stroke[3]) && (isWidthNumber || strokeArrayWidth[3]);\n\n // top\n if (strokeTop && i === 0) {\n // context.lineTo(x + width, y);\n const deltaLeft = (isWidthNumber ? widthInfo.width : strokeArrayWidth[0]) / 2;\n const deltaRight = (isWidthNumber ? widthInfo.width : strokeArrayWidth[0]) / 2;\n\n // context.moveTo(x - deltaLeft, y);\n // context.lineTo(x + width + deltaRight, y);\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n\n if (isSplitDraw || isDash) {\n if (strokeArrayColor && strokeArrayColor[0]) {\n context.strokeStyle = strokeArrayColor[0];\n } else if (strokeArrayColor && !strokeArrayColor[0]) {\n context.strokeStyle = 'transparent';\n }\n if (!isWidthNumber) {\n context.lineWidth = strokeArrayWidth[0];\n }\n context.lineDashOffset = context.currentMatrix.e / context.currentMatrix.a;\n if (isDash) {\n context.setLineDash(lineDash[0] ?? []);\n }\n context.stroke();\n context.beginPath();\n // context.moveTo(x + width, y);\n }\n } else if (i === 0) {\n context.moveTo(x + width, y);\n }\n // right\n if (strokeRight && i === 1) {\n // context.lineTo(x + width, y + height);\n const deltaTop = (isWidthNumber ? widthInfo.width : strokeArrayWidth[1]) / 2;\n const deltaBottom = (isWidthNumber ? widthInfo.width : strokeArrayWidth[1]) / 2;\n\n // context.moveTo(x + width, y - deltaTop);\n // context.lineTo(x + width, y + height + deltaBottom);\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n\n if (isSplitDraw || isDash) {\n if (strokeArrayColor && strokeArrayColor[1]) {\n context.strokeStyle = strokeArrayColor[1];\n } else if (strokeArrayColor && !strokeArrayColor[1]) {\n context.strokeStyle = 'transparent';\n }\n if (!isWidthNumber) {\n context.lineWidth = strokeArrayWidth[1];\n }\n context.lineDashOffset = context.currentMatrix.f / context.currentMatrix.d;\n if (isDash) {\n context.setLineDash(lineDash[1] ?? []);\n }\n context.stroke();\n context.beginPath();\n context.moveTo(x + width, y + height);\n }\n } else if (i === 1) {\n context.moveTo(x + width, y + height);\n }\n // bottom\n if (strokeBottom && i === 2) {\n // context.lineTo(x, y + height);\n const deltaLeft = (isWidthNumber ? widthInfo.width : strokeArrayWidth[2]) / 2;\n const deltaRight = (isWidthNumber ? widthInfo.width : strokeArrayWidth[2]) / 2;\n\n // context.moveTo(x - deltaLeft, y + height);\n // context.lineTo(x + width + deltaRight, y + height);\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n\n if (isSplitDraw || isDash) {\n if (strokeArrayColor && strokeArrayColor[2]) {\n context.strokeStyle = strokeArrayColor[2];\n } else if (strokeArrayColor && !strokeArrayColor[2]) {\n context.strokeStyle = 'transparent';\n }\n if (!isWidthNumber) {\n context.lineWidth = strokeArrayWidth[2];\n }\n context.lineDashOffset = context.currentMatrix.e / context.currentMatrix.a;\n if (isDash) {\n context.setLineDash(lineDash[2] ?? []);\n }\n context.stroke();\n context.beginPath();\n context.moveTo(x, y + height);\n }\n } else if (i === 2) {\n context.moveTo(x, y + height);\n }\n // left\n if (strokeLeft && i === 3) {\n // context.lineTo(x, y);\n const deltaTop = (isWidthNumber ? widthInfo.width : strokeArrayWidth[3]) / 2;\n const deltaBottom = (isWidthNumber ? widthInfo.width : strokeArrayWidth[3]) / 2;\n\n // context.moveTo(x, y - deltaTop);\n // context.lineTo(x, y + height + deltaBottom);\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n\n if (isSplitDraw || isDash) {\n if (strokeArrayColor && strokeArrayColor[3]) {\n context.strokeStyle = strokeArrayColor[3];\n } else if (strokeArrayColor && !strokeArrayColor[3]) {\n context.strokeStyle = 'transparent';\n }\n if (!isWidthNumber) {\n context.lineWidth = strokeArrayWidth[3];\n }\n context.lineDashOffset = context.currentMatrix.f / context.currentMatrix.d;\n if (isDash) {\n context.setLineDash(lineDash[3] ?? []);\n }\n context.stroke();\n context.beginPath();\n context.moveTo(x, y);\n }\n } else if (i === 3) {\n context.moveTo(x, y);\n }\n context.closePath();\n\n if (!isSplitDraw && !isDash) {\n // context.strokeStyle = strokeArrayColor;\n if (!isWidthNumber && widthInfo.width) {\n context.lineWidth = widthInfo.width;\n }\n context.stroke();\n }\n context.lineDashOffset = 0;\n // context.lineCap = oldLineCap;\n context.setLineDash([]);\n\n context.beginPath(); // clean path\n}\n\ntype IEdgeCb = (x1: number, y1: number, x2: number, y2: number) => void;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/graphic/contributions/rect-contribution-render.ts"],"names":[],"mappings":"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","file":"rect-contribution-render.js","sourcesContent":["import type {\n IRect,\n IContext2d,\n IRectGraphicAttribute,\n IMarkAttribute,\n IGraphicAttribute,\n IThemeAttribute,\n IRectRenderContribution,\n IGroup,\n IGroupGraphicAttribute,\n IDrawContext,\n ICustomPath2D\n} from './../../../vrender';\nimport { BaseRenderContributionTime, injectable } from './../../../vrender';\nimport { getWidthInfo, renderStroke } from './group-contribution-render';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport type { vec2, vec4 } from '@visactor/vutils';\nimport { abs, arrayEqual, halfPi, isArray, isNumber, pi } from '@visactor/vutils';\nimport { createRectPath } from './../../../vrender';\n\n@injectable()\nexport class SplitRectBeforeRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n doFillOrStroke?: { doFill: boolean; doStroke: boolean }\n ) {\n // const { stroke = rectAttribute.stroke } = group.attribute as any;\n\n // if (Array.isArray(stroke)) {\n // doFillOrStroke.doStroke = false;\n // }\n\n const {\n stroke = rectAttribute.stroke,\n strokeArrayWidth = (rectAttribute as any).strokeArrayWidth,\n strokeArrayColor = (rectAttribute as any).strokeArrayColor\n } = rect.attribute as any;\n\n if (stroke && (Array.isArray(stroke) || Array.isArray(strokeArrayWidth) || Array.isArray(strokeArrayColor))) {\n doFillOrStroke.doStroke = false;\n }\n }\n}\n\n@injectable()\nexport class SplitRectAfterRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const {\n // width = rectAttribute.width,\n // height = rectAttribute.height,\n // stroke = rectAttribute.stroke\n // } = group.attribute as any;\n\n // if (!Array.isArray(stroke)) {\n // return;\n // }\n\n // context.setStrokeStyle(group, group.attribute, x, y, rectAttribute);\n // // 单独处理每条边界,目前不考虑圆角\n // context.beginPath();\n // context.moveTo(x, y);\n // // top\n // if (stroke[0]) {\n // context.lineTo(x + width, y);\n // } else {\n // context.moveTo(x + width, y);\n // }\n // // right\n // if (stroke[1]) {\n // context.lineTo(x + width, y + height);\n // } else {\n // context.moveTo(x + width, y + height);\n // }\n // // bottom\n // if (stroke[2]) {\n // context.lineTo(x, y + height);\n // } else {\n // context.moveTo(x, y + height);\n // }\n // // left\n // if (stroke[3]) {\n // // 没有close path是,起点和终点不连续,需要调整y保证不出现缺口\n // const adjustY = stroke[0] ? y - context.lineWidth / 2 : y;\n // context.lineTo(x, adjustY);\n // } else {\n // context.moveTo(x, y);\n // }\n\n // context.stroke();\n\n const {\n width = rectAttribute.width,\n height = rectAttribute.height,\n // 基础border\n stroke = rectAttribute.stroke,\n strokeArrayColor = (rectAttribute as any).strokeArrayColor,\n strokeArrayWidth = (rectAttribute as any).strokeArrayWidth,\n\n lineWidth = rectAttribute.lineWidth,\n strokeColor = rectAttribute.stroke,\n\n cornerRadius = rectAttribute.cornerRadius\n // // select & hover border\n // highlightStroke = (rectAttribute as any).highlightStroke,\n // highlightStrokeArrayColor = (rectAttribute as any).highlightStrokeArrayColor,\n // highlightStrokeArrayWidth = (rectAttribute as any).highlightStrokeArrayWidth,\n // highlightStrokeArrayPart = (rectAttribute as any).highlightStrokeArrayPart,\n } = rect.attribute as any;\n\n if (!stroke || (!Array.isArray(strokeArrayWidth) && lineWidth === 0)) {\n return;\n }\n\n if (Array.isArray(stroke) || Array.isArray(strokeArrayColor) || Array.isArray(strokeArrayWidth)) {\n // let dx = 0;\n // let dy = 0;\n const deltaWidth = 0;\n const deltaHeight = 0;\n if (\n rect.name !== 'border-rect' && // border-rect not need offset\n rect.name !== 'table-border-rect' && // table-border-rect not need offset\n ((typeof lineWidth === 'number' && lineWidth & 1) ||\n (Array.isArray(strokeArrayWidth) && strokeArrayWidth.some(width => width & 1)))\n ) {\n // const table = (rect.stage as any).table as BaseTableAPI;\n // const bottomRight = table.theme.cellBorderClipDirection === 'bottom-right';\n // if (bottomRight) {\n // x = Math.floor(x) - 0.5;\n // y = Math.floor(y) - 0.5;\n // deltaWidth = 0.5;\n // deltaHeight = 0.5;\n // } else {\n x = Math.floor(x) + 0.5;\n y = Math.floor(y) + 0.5;\n // }\n }\n\n // 带不同stroke边框\n if (!(cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0)))) {\n // let lastStrokeI = 0;\n // let lastStroke: any;\n context.beginPath();\n // debugger;\n createRectPath(\n context,\n x,\n y,\n width,\n height,\n cornerRadius,\n new Array(4).fill(0).map((_, i) => (x1: number, y1: number, x2: number, y2: number) => {\n renderStrokeWithCornerRadius(\n i,\n x1,\n y1,\n x2,\n y2,\n rect,\n context,\n x,\n y,\n rectAttribute,\n stroke,\n strokeArrayWidth || lineWidth,\n strokeArrayColor || strokeColor,\n Math.ceil(width + deltaWidth),\n Math.ceil(height + deltaHeight)\n );\n })\n );\n\n context.stroke();\n } else {\n renderStroke(\n rect as IGroup,\n context,\n x,\n y,\n rectAttribute,\n stroke,\n strokeArrayWidth || lineWidth,\n strokeArrayColor || strokeColor,\n rect.name !== 'table-border-rect' ? Math.ceil(width + deltaWidth) : width + deltaWidth,\n rect.name !== 'table-border-rect' ? Math.ceil(height + deltaHeight) : height + deltaHeight\n );\n }\n }\n }\n}\n\nexport function renderStrokeWithCornerRadius(\n i: number,\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n rectAttribute: Required<IRectGraphicAttribute>,\n stroke: any,\n strokeArrayWidth: any,\n strokeArrayColor: any,\n width: number,\n height: number\n) {\n const group = rect;\n const groupAttribute = rectAttribute;\n\n // if (stroke[i]) {\n // if (!(lastStrokeI === i - 1 && stroke[i] === lastStroke)) {\n // context.setStrokeStyle(rect, { ...rect.attribute, stroke: stroke[i] }, x, y, rectAttribute);\n // context.beginPath();\n // context.moveTo(x1, y1);\n // lastStroke = stroke[i];\n // }\n // lastStrokeI = i;\n // context.lineTo(x2, y2);\n // context.stroke();\n // if (i === 3) {\n // context.beginPath();\n // }\n // }\n\n const widthInfo = getWidthInfo(strokeArrayWidth);\n const isWidthNumber = !Array.isArray(strokeArrayWidth);\n const isStrokeTrue = !Array.isArray(stroke);\n const isSplitDraw = Array.isArray(strokeArrayColor) || widthInfo.isSplitDraw;\n context.stroke(); // stroke last corner with last stroke style\n\n context.setStrokeStyle(rect, rect.attribute, x, y, rectAttribute);\n const { lineDash = groupAttribute.lineDash } = group.attribute as any;\n // const lineDash = context.getLineDash();\n let isDash = false;\n if (lineDash.length && lineDash.some((dash: number[] | null) => Array.isArray(dash))) {\n isDash = true;\n }\n\n // 单独处理每条边界,目前不考虑圆角\n context.beginPath(); // clean path\n context.moveTo(x, y);\n\n const strokeTop = (isStrokeTrue || stroke[0]) && (isWidthNumber || strokeArrayWidth[0]);\n const strokeRight = (isStrokeTrue || stroke[1]) && (isWidthNumber || strokeArrayWidth[1]);\n const strokeBottom = (isStrokeTrue || stroke[2]) && (isWidthNumber || strokeArrayWidth[2]);\n const strokeLeft = (isStrokeTrue || stroke[3]) && (isWidthNumber || strokeArrayWidth[3]);\n\n // top\n if (strokeTop && i === 0) {\n // context.lineTo(x + width, y);\n const deltaLeft = (isWidthNumber ? widthInfo.width : strokeArrayWidth[0]) / 2;\n const deltaRight = (isWidthNumber ? widthInfo.width : strokeArrayWidth[0]) / 2;\n\n // context.moveTo(x - deltaLeft, y);\n // context.lineTo(x + width + deltaRight, y);\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n\n if (isSplitDraw || isDash) {\n if (strokeArrayColor && strokeArrayColor[0]) {\n context.strokeStyle = strokeArrayColor[0];\n } else if (strokeArrayColor && !strokeArrayColor[0]) {\n context.strokeStyle = 'transparent';\n }\n if (!isWidthNumber) {\n context.lineWidth = strokeArrayWidth[0];\n }\n context.lineDashOffset = context.currentMatrix.e / context.currentMatrix.a;\n if (isDash) {\n context.setLineDash(lineDash[0] ?? []);\n }\n context.stroke();\n context.beginPath();\n // context.moveTo(x + width, y);\n }\n } else if (i === 0) {\n context.moveTo(x + width, y);\n }\n // right\n if (strokeRight && i === 1) {\n // context.lineTo(x + width, y + height);\n const deltaTop = (isWidthNumber ? widthInfo.width : strokeArrayWidth[1]) / 2;\n const deltaBottom = (isWidthNumber ? widthInfo.width : strokeArrayWidth[1]) / 2;\n\n // context.moveTo(x + width, y - deltaTop);\n // context.lineTo(x + width, y + height + deltaBottom);\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n\n if (isSplitDraw || isDash) {\n if (strokeArrayColor && strokeArrayColor[1]) {\n context.strokeStyle = strokeArrayColor[1];\n } else if (strokeArrayColor && !strokeArrayColor[1]) {\n context.strokeStyle = 'transparent';\n }\n if (!isWidthNumber) {\n context.lineWidth = strokeArrayWidth[1];\n }\n context.lineDashOffset = context.currentMatrix.f / context.currentMatrix.d;\n if (isDash) {\n context.setLineDash(lineDash[1] ?? []);\n }\n context.stroke();\n context.beginPath();\n context.moveTo(x + width, y + height);\n }\n } else if (i === 1) {\n context.moveTo(x + width, y + height);\n }\n // bottom\n if (strokeBottom && i === 2) {\n // context.lineTo(x, y + height);\n const deltaLeft = (isWidthNumber ? widthInfo.width : strokeArrayWidth[2]) / 2;\n const deltaRight = (isWidthNumber ? widthInfo.width : strokeArrayWidth[2]) / 2;\n\n // context.moveTo(x - deltaLeft, y + height);\n // context.lineTo(x + width + deltaRight, y + height);\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n\n if (isSplitDraw || isDash) {\n if (strokeArrayColor && strokeArrayColor[2]) {\n context.strokeStyle = strokeArrayColor[2];\n } else if (strokeArrayColor && !strokeArrayColor[2]) {\n context.strokeStyle = 'transparent';\n }\n if (!isWidthNumber) {\n context.lineWidth = strokeArrayWidth[2];\n }\n context.lineDashOffset = context.currentMatrix.e / context.currentMatrix.a;\n if (isDash) {\n context.setLineDash(lineDash[2] ?? []);\n }\n context.stroke();\n context.beginPath();\n context.moveTo(x, y + height);\n }\n } else if (i === 2) {\n context.moveTo(x, y + height);\n }\n // left\n if (strokeLeft && i === 3) {\n // context.lineTo(x, y);\n const deltaTop = (isWidthNumber ? widthInfo.width : strokeArrayWidth[3]) / 2;\n const deltaBottom = (isWidthNumber ? widthInfo.width : strokeArrayWidth[3]) / 2;\n\n // context.moveTo(x, y - deltaTop);\n // context.lineTo(x, y + height + deltaBottom);\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n\n if (isSplitDraw || isDash) {\n if (strokeArrayColor && strokeArrayColor[3]) {\n context.strokeStyle = strokeArrayColor[3];\n } else if (strokeArrayColor && !strokeArrayColor[3]) {\n context.strokeStyle = 'transparent';\n }\n if (!isWidthNumber) {\n context.lineWidth = strokeArrayWidth[3];\n }\n context.lineDashOffset = context.currentMatrix.f / context.currentMatrix.d;\n if (isDash) {\n context.setLineDash(lineDash[3] ?? []);\n }\n context.stroke();\n context.beginPath();\n context.moveTo(x, y);\n }\n } else if (i === 3) {\n context.moveTo(x, y);\n }\n context.closePath();\n\n if (!isSplitDraw && !isDash) {\n // context.strokeStyle = strokeArrayColor;\n if (!isWidthNumber && widthInfo.width) {\n context.lineWidth = widthInfo.width;\n }\n context.stroke();\n }\n context.lineDashOffset = 0;\n // context.lineCap = oldLineCap;\n context.setLineDash([]);\n\n context.beginPath(); // clean path\n}\n\ntype IEdgeCb = (x1: number, y1: number, x2: number, y2: number) => void;\n"]}
|
|
@@ -15,7 +15,7 @@ function setSingleCheckedState(col, row, field, checked, state) {
|
|
|
15
15
|
const recordIndex = state.table.getRecordShowIndexByCell(col, row);
|
|
16
16
|
if (recordIndex >= 0) {
|
|
17
17
|
const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();
|
|
18
|
-
state.checkedState.
|
|
18
|
+
state.checkedState.get(dataIndex) ? state.checkedState.get(dataIndex)[field] = checked : state.checkedState.set(dataIndex, {
|
|
19
19
|
[field]: checked
|
|
20
20
|
});
|
|
21
21
|
}
|
|
@@ -42,7 +42,7 @@ function syncCheckedState(col, row, field, checked, state) {
|
|
|
42
42
|
if (recordIndex >= 0) {
|
|
43
43
|
const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();
|
|
44
44
|
if ((0, vutils_1.isValid)(null === (_b = state.checkedState.get(dataIndex)) || void 0 === _b ? void 0 : _b[field])) return state.checkedState.get(dataIndex)[field];
|
|
45
|
-
if (state.checkedState.
|
|
45
|
+
if (state.checkedState.get(dataIndex)) state.checkedState.get(dataIndex)[field] = checked; else if (dataIndex.includes(",")) {
|
|
46
46
|
const parentDataIndex = dataIndex.split(",").slice(0, -1).join(",");
|
|
47
47
|
state.checkedState.has(parentDataIndex) && !0 === state.checkedState.get(parentDataIndex)[field] ? state.checkedState.set(dataIndex, {
|
|
48
48
|
[field]: !0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/state/checkbox/checkbox.ts"],"names":[],"mappings":"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","file":"checkbox.js","sourcesContent":["import { isArray, isFunction, isNumber, isObject, isValid } from '@visactor/vutils';\nimport type { StateManager } from '../state';\nimport type { CheckboxColumnDefine, ListTableAPI } from '../../ts-types';\nimport { getOrApply } from '../../tools/helper';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { CachedDataSource } from '../../data';\nimport type { CheckBox } from './../../vrender';\n\nexport function setCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean | 'indeterminate',\n state: StateManager\n) {\n const table = state.table;\n const cellRange = table.getCellRange(col, row);\n if (cellRange.start.col !== cellRange.end.col || cellRange.start.row !== cellRange.end.row) {\n for (let i = cellRange.start.col; i <= cellRange.end.col; i++) {\n for (let j = cellRange.start.row; j <= cellRange.end.row; j++) {\n setSingleCheckedState(i, j, field, checked, state);\n }\n }\n } else {\n setSingleCheckedState(col, row, field, checked, state);\n }\n}\n\nfunction setSingleCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean | 'indeterminate',\n state: StateManager\n) {\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();\n if (state.checkedState.has(dataIndex)) {\n state.checkedState.get(dataIndex)[field] = checked;\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n }\n}\n\nexport function setHeaderCheckedState(field: string | number, checked: boolean | 'indeterminate', state: StateManager) {\n state.headerCheckedState[field] = checked;\n state.checkedState?.forEach(recordCheckState => {\n recordCheckState[field] = checked;\n });\n}\n\n//#region CheckedState 状态维护\n\n/**\n * 创建cell节点时同步状态 如果状态缓存有则用 如果没有则设置缓存\n * @param col\n * @param row\n * @param field\n * @param checked\n * @returns\n */\nexport function syncCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean,\n state: StateManager\n): boolean | 'indeterminate' {\n if (state.table.isHeader(col, row)) {\n if (isValid(state.headerCheckedState[field])) {\n return state.headerCheckedState[field];\n } else if (typeof checked === 'function') {\n return undefined;\n } else if (isValid(checked)) {\n state.headerCheckedState[field] = checked;\n } else if (state.checkedState?.size > 0) {\n const isAllChecked = state.updateHeaderCheckedState(field, col, row);\n return isAllChecked;\n }\n return state.headerCheckedState[field];\n }\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();\n if (isValid(state.checkedState.get(dataIndex)?.[field])) {\n return state.checkedState.get(dataIndex)[field];\n }\n if (state.checkedState.has(dataIndex)) {\n state.checkedState.get(dataIndex)[field] = checked;\n } else if (dataIndex.includes(',')) {\n // child record, sync parent record state\n const parentDataIndex = dataIndex.split(',').slice(0, -1).join(','); // get latest parent data index\n if (state.checkedState.has(parentDataIndex) && state.checkedState.get(parentDataIndex)[field] === true) {\n state.checkedState.set(dataIndex, {\n [field]: true\n });\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n }\n return checked;\n}\n\n/**\n * 初始化check状态\n * @param records\n */\nexport function initCheckedState(records: any[], state: StateManager) {\n // clear checkbox state\n state.checkedState.clear();\n state.headerCheckedState = {};\n state.radioState = {};\n\n let isNeedInitHeaderCheckedStateFromRecord = false;\n state._checkboxCellTypeFields = [];\n state._headerCheckFuncs = {};\n state.table.internalProps.layoutMap.headerObjects.forEach((hd, index) => {\n if (hd.headerType === 'checkbox') {\n const headerChecked = (hd.define as CheckboxColumnDefine).checked as boolean;\n\n if (headerChecked === undefined || headerChecked === null || typeof headerChecked === 'function') {\n // 如果没有明确指定check的状态 则需要在下面遍历所有数据获取到节点状态 确定这个header的check状态\n isNeedInitHeaderCheckedStateFromRecord = true;\n if (typeof headerChecked === 'function') {\n state._headerCheckFuncs[hd.field as string | number] = headerChecked;\n }\n } else {\n state.headerCheckedState[hd.field as string | number] = headerChecked;\n }\n if ((hd.define.cellType === 'checkbox' || isFunction(hd.define.cellType)) && !hd.fieldFormat) {\n state._checkboxCellTypeFields.push(hd.field as string | number);\n }\n }\n });\n\n // for row series number\n if (state.table.leftRowSeriesNumberCount === 1) {\n state.headerCheckedState._vtable_rowSeries_number = false;\n state._checkboxCellTypeFields.push('_vtable_rowSeries_number');\n isNeedInitHeaderCheckedStateFromRecord = true;\n } else if (state.table.leftRowSeriesNumberCount > 1) {\n for (let i = 0; i < state.table.leftRowSeriesNumberCount; i++) {\n state.headerCheckedState[`_vtable_rowSeries_number_${i}`] = false;\n state._checkboxCellTypeFields.push(`_vtable_rowSeries_number_${i}`);\n }\n isNeedInitHeaderCheckedStateFromRecord = true;\n }\n\n //如果没有明确指定check的状态 遍历所有数据获取到节点状态 确定这个header的check状态\n if (isNeedInitHeaderCheckedStateFromRecord) {\n initRecordCheckState(records, state);\n }\n}\n\n/**\n * 更新header单元checked的状态,依据当前列每一个数据checked的状态。\n * @param field\n * @returns\n */\nexport function updateHeaderCheckedState(\n field: string | number,\n state: StateManager,\n col: number,\n row: number\n): boolean | 'indeterminate' {\n let allChecked = true;\n let allUnChecked = true;\n let hasChecked = false;\n state.checkedState.forEach((check_state: Record<string | number, boolean>, index: string | number | number[]) => {\n if ((index as string).includes(',')) {\n index = (index as string).split(',').map(item => {\n return Number(item);\n }) as number[];\n } else {\n index = Number(index);\n }\n const tableIndex = state.table.getTableIndexByRecordIndex(index as number);\n const mergeCell = (state.table as ListTableAPI).transpose\n ? state.table.getCustomMerge(tableIndex, row)\n : state.table.getCustomMerge(col, tableIndex);\n\n const data = state.table.dataSource?.get(index as number);\n if (mergeCell || (!state.table.internalProps.rowSeriesNumber?.enableTreeCheckbox && data?.vtableMerge)) {\n // 不参与check状态的计算\n return;\n }\n if (check_state?.[field] !== true) {\n allChecked = false;\n } else {\n allUnChecked = false;\n hasChecked = true;\n }\n });\n\n if (allChecked) {\n state.headerCheckedState[field] = true;\n return allChecked;\n }\n\n if (allUnChecked) {\n state.headerCheckedState[field] = false;\n return false;\n }\n\n if (hasChecked) {\n state.headerCheckedState[field] = 'indeterminate';\n return 'indeterminate'; //半选状态\n }\n return false;\n}\n\n/**\n * setRecords的时候虽然调用了initCheckedState 进行了初始化 但当每个表头的checked状态都用配置了的话 初始化不会遍历全部数据\n * @param records\n */\nexport function initLeftRecordsCheckState(records: any[], state: StateManager) {\n for (let index = state.checkedState.size; index < records.length; index++) {\n const record = records[index];\n state._checkboxCellTypeFields.forEach(field => {\n const value = record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean;\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n const dataIndex = index.toString();\n if (!state.checkedState.get(dataIndex)) {\n state.checkedState.set(dataIndex, {});\n }\n state.checkedState.get(dataIndex)[field] = isChecked;\n });\n }\n}\n\nexport function setCellCheckboxState(\n col: number,\n row: number,\n checked: boolean | 'indeterminate',\n table: BaseTableAPI\n) {\n const cellGroup = table.scenegraph.getCell(col, row);\n const checkbox = cellGroup?.getChildByName('checkbox') as any;\n if (!checkbox) {\n // update state\n const field = table.getHeaderField(col, row);\n if (table.isHeader(col, row)) {\n //点击的表头部分的checkbox 需要同时处理表头和body单元格的状态\n table.stateManager.setHeaderCheckedState(field, checked);\n const cellType = table.getCellType(col, row);\n if (cellType === 'checkbox') {\n table.scenegraph.updateCheckboxCellState(col, row, checked);\n }\n } else {\n //点击的是body单元格的checkbox 处理本单元格的状态维护 同时需要检查表头是否改变状态\n table.stateManager.setCheckedState(col, row, field, checked);\n const cellType = table.getCellType(col, row);\n if (cellType === 'checkbox') {\n const oldHeaderCheckedState = table.stateManager.headerCheckedState[field];\n const newHeaderCheckedState = table.stateManager.updateHeaderCheckedState(field, col, row);\n if (oldHeaderCheckedState !== newHeaderCheckedState) {\n table.scenegraph.updateHeaderCheckboxCellState(col, row, newHeaderCheckedState);\n }\n }\n }\n return;\n }\n const { checked: oldChecked, indeterminate } = checkbox.attribute;\n\n if (indeterminate) {\n if (checked) {\n checkbox._handlePointerUp();\n } else {\n checkbox._handlePointerUp();\n checkbox._handlePointerUp();\n }\n } else if (oldChecked) {\n if (checked) {\n // do nothing\n } else {\n checkbox._handlePointerUp();\n }\n } else {\n if (checked) {\n checkbox._handlePointerUp();\n } else {\n // do nothing\n }\n }\n}\n\nexport function setCellCheckboxStateByAttribute(\n col: number,\n row: number,\n checked: boolean | 'indeterminate',\n table: BaseTableAPI\n) {\n const cellGroup = table.scenegraph.getCell(col, row);\n const checkbox = cellGroup?.getChildByName('checkbox') as any;\n if (checkbox) {\n if (checked === 'indeterminate') {\n (checkbox as CheckBox).setAttribute('indeterminate', true);\n (checkbox as CheckBox).setAttribute('checked', undefined);\n } else {\n (checkbox as CheckBox).setAttribute('indeterminate', undefined);\n (checkbox as CheckBox).setAttribute('checked', checked);\n }\n }\n}\n\nexport function changeCheckboxOrder(sourceIndex: number, targetIndex: number, state: StateManager) {\n const { checkedState, table } = state;\n let source;\n let target;\n if (table.internalProps.transpose) {\n sourceIndex = table.getRecordShowIndexByCell(sourceIndex, 0);\n targetIndex = table.getRecordShowIndexByCell(targetIndex, 0);\n } else {\n // sourceIndex = table.getRecordShowIndexByCell(0, sourceIndex);\n // targetIndex = table.getRecordShowIndexByCell(0, targetIndex);\n\n source = table.isPivotTable() ? undefined : (table as any).getRecordIndexByCell(0, sourceIndex);\n target = table.isPivotTable() ? undefined : (table as any).getRecordIndexByCell(0, targetIndex);\n }\n\n if (isNumber(source) && isNumber(target)) {\n sourceIndex = source;\n targetIndex = target;\n if (sourceIndex > targetIndex) {\n const sourceRecord = checkedState.get(sourceIndex.toString());\n for (let i = sourceIndex; i > targetIndex; i--) {\n // checkedState[i] = checkedState[i - 1];\n checkedState.set(i.toString(), checkedState.get((i - 1).toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(targetIndex.toString(), sourceRecord);\n } else if (sourceIndex < targetIndex) {\n const sourceRecord = checkedState.get(sourceIndex.toString());\n for (let i = sourceIndex; i < targetIndex; i++) {\n // checkedState[i] = checkedState[i + 1];\n checkedState.set(i.toString(), checkedState.get((i + 1).toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(targetIndex.toString(), sourceRecord);\n }\n } else if (isArray(source) && isArray(target)) {\n sourceIndex = source[source.length - 1];\n targetIndex = target[target.length - 1];\n if (sourceIndex > targetIndex) {\n const sourceRecord = checkedState.get(source.toString());\n for (let i = sourceIndex; i > targetIndex; i--) {\n const now = [...source];\n now[now.length - 1] = i;\n const last = [...source];\n last[last.length - 1] = i - 1;\n checkedState.set(now.toString(), checkedState.get(last.toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(target.toString(), sourceRecord);\n } else if (sourceIndex < targetIndex) {\n const sourceRecord = checkedState.get(source.toString());\n for (let i = sourceIndex; i < targetIndex; i++) {\n const now = [...source];\n now[now.length - 1] = i;\n const next = [...source];\n next[next.length - 1] = i + 1;\n checkedState.set(now.toString(), checkedState.get(next.toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(target.toString(), sourceRecord);\n }\n }\n}\n\nexport function getGroupCheckboxState(table: BaseTableAPI) {\n const result: any[] = [];\n const dataSource = table.dataSource as CachedDataSource;\n const groupKeyLength = dataSource.dataConfig.groupByRules.length + 1;\n dataSource.currentIndexedData.forEach((indexArr: number, index) => {\n if (isArray(indexArr) && indexArr.length === groupKeyLength) {\n // get record by index\n const vtableOriginIndex = (dataSource as CachedDataSource).getOriginRecordIndexForGroup(indexArr);\n result[vtableOriginIndex] = table.stateManager.checkedState.get(indexArr.toString());\n }\n });\n\n return result;\n}\n\nfunction initRecordCheckState(records: any[], state: StateManager) {\n const table = state.table;\n const start = table.isPivotTable()\n ? 0\n : table.internalProps.transpose\n ? table.rowHeaderLevelCount\n : table.columnHeaderLevelCount;\n const end = table.isPivotTable()\n ? isArray(records)\n ? records.length\n : 0\n : table.internalProps.transpose\n ? table.colCount\n : table.rowCount;\n for (let index = 0; index + start < end; index++) {\n const record = table.isPivotTable() ? records[index] : table.dataSource.get(index);\n // eslint-disable-next-line no-loop-func\n state._checkboxCellTypeFields.forEach(field => {\n const value =\n record && (record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean);\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n if (isChecked === undefined || isChecked === null) {\n const headerCheckFunc = state._headerCheckFuncs[field];\n if (headerCheckFunc) {\n //如果定义的checked是个函数 则需要每个都去计算这个值\n const cellAddr = state.table.getCellAddrByFieldRecord(field, index);\n const globalChecked = getOrApply(headerCheckFunc as any, {\n col: cellAddr.col,\n row: cellAddr.row,\n table: state.table,\n context: null,\n value\n });\n isChecked = globalChecked;\n }\n }\n const dataIndex = table.isPivotTable() ? index.toString() : state.table.dataSource.getIndexKey(index).toString();\n if (!state.checkedState.get(dataIndex)) {\n state.checkedState.set(dataIndex, {});\n }\n state.checkedState.get(dataIndex)[field] = isChecked;\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/state/checkbox/checkbox.ts"],"names":[],"mappings":"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","file":"checkbox.js","sourcesContent":["import { isArray, isFunction, isNumber, isObject, isValid } from '@visactor/vutils';\nimport type { StateManager } from '../state';\nimport type { CheckboxColumnDefine, ListTableAPI } from '../../ts-types';\nimport { getOrApply } from '../../tools/helper';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { CachedDataSource } from '../../data';\nimport type { CheckBox } from './../../vrender';\n\nexport function setCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean | 'indeterminate',\n state: StateManager\n) {\n const table = state.table;\n const cellRange = table.getCellRange(col, row);\n if (cellRange.start.col !== cellRange.end.col || cellRange.start.row !== cellRange.end.row) {\n for (let i = cellRange.start.col; i <= cellRange.end.col; i++) {\n for (let j = cellRange.start.row; j <= cellRange.end.row; j++) {\n setSingleCheckedState(i, j, field, checked, state);\n }\n }\n } else {\n setSingleCheckedState(col, row, field, checked, state);\n }\n}\n\nfunction setSingleCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean | 'indeterminate',\n state: StateManager\n) {\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();\n if (state.checkedState.get(dataIndex)) {\n state.checkedState.get(dataIndex)[field] = checked;\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n }\n}\n\nexport function setHeaderCheckedState(field: string | number, checked: boolean | 'indeterminate', state: StateManager) {\n state.headerCheckedState[field] = checked;\n state.checkedState?.forEach(recordCheckState => {\n recordCheckState[field] = checked;\n });\n}\n\n//#region CheckedState 状态维护\n\n/**\n * 创建cell节点时同步状态 如果状态缓存有则用 如果没有则设置缓存\n * @param col\n * @param row\n * @param field\n * @param checked\n * @returns\n */\nexport function syncCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean,\n state: StateManager\n): boolean | 'indeterminate' {\n if (state.table.isHeader(col, row)) {\n if (isValid(state.headerCheckedState[field])) {\n return state.headerCheckedState[field];\n } else if (typeof checked === 'function') {\n return undefined;\n } else if (isValid(checked)) {\n state.headerCheckedState[field] = checked;\n } else if (state.checkedState?.size > 0) {\n const isAllChecked = state.updateHeaderCheckedState(field, col, row);\n return isAllChecked;\n }\n return state.headerCheckedState[field];\n }\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();\n if (isValid(state.checkedState.get(dataIndex)?.[field])) {\n return state.checkedState.get(dataIndex)[field];\n }\n if (state.checkedState.get(dataIndex)) {\n state.checkedState.get(dataIndex)[field] = checked;\n } else if (dataIndex.includes(',')) {\n // child record, sync parent record state\n const parentDataIndex = dataIndex.split(',').slice(0, -1).join(','); // get latest parent data index\n if (state.checkedState.has(parentDataIndex) && state.checkedState.get(parentDataIndex)[field] === true) {\n state.checkedState.set(dataIndex, {\n [field]: true\n });\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n }\n return checked;\n}\n\n/**\n * 初始化check状态\n * @param records\n */\nexport function initCheckedState(records: any[], state: StateManager) {\n // clear checkbox state\n state.checkedState.clear();\n state.headerCheckedState = {};\n state.radioState = {};\n\n let isNeedInitHeaderCheckedStateFromRecord = false;\n state._checkboxCellTypeFields = [];\n state._headerCheckFuncs = {};\n state.table.internalProps.layoutMap.headerObjects.forEach((hd, index) => {\n if (hd.headerType === 'checkbox') {\n const headerChecked = (hd.define as CheckboxColumnDefine).checked as boolean;\n\n if (headerChecked === undefined || headerChecked === null || typeof headerChecked === 'function') {\n // 如果没有明确指定check的状态 则需要在下面遍历所有数据获取到节点状态 确定这个header的check状态\n isNeedInitHeaderCheckedStateFromRecord = true;\n if (typeof headerChecked === 'function') {\n state._headerCheckFuncs[hd.field as string | number] = headerChecked;\n }\n } else {\n state.headerCheckedState[hd.field as string | number] = headerChecked;\n }\n if ((hd.define.cellType === 'checkbox' || isFunction(hd.define.cellType)) && !hd.fieldFormat) {\n state._checkboxCellTypeFields.push(hd.field as string | number);\n }\n }\n });\n\n // for row series number\n if (state.table.leftRowSeriesNumberCount === 1) {\n state.headerCheckedState._vtable_rowSeries_number = false;\n state._checkboxCellTypeFields.push('_vtable_rowSeries_number');\n isNeedInitHeaderCheckedStateFromRecord = true;\n } else if (state.table.leftRowSeriesNumberCount > 1) {\n for (let i = 0; i < state.table.leftRowSeriesNumberCount; i++) {\n state.headerCheckedState[`_vtable_rowSeries_number_${i}`] = false;\n state._checkboxCellTypeFields.push(`_vtable_rowSeries_number_${i}`);\n }\n isNeedInitHeaderCheckedStateFromRecord = true;\n }\n\n //如果没有明确指定check的状态 遍历所有数据获取到节点状态 确定这个header的check状态\n if (isNeedInitHeaderCheckedStateFromRecord) {\n initRecordCheckState(records, state);\n }\n}\n\n/**\n * 更新header单元checked的状态,依据当前列每一个数据checked的状态。\n * @param field\n * @returns\n */\nexport function updateHeaderCheckedState(\n field: string | number,\n state: StateManager,\n col: number,\n row: number\n): boolean | 'indeterminate' {\n let allChecked = true;\n let allUnChecked = true;\n let hasChecked = false;\n state.checkedState.forEach((check_state: Record<string | number, boolean>, index: string | number | number[]) => {\n if ((index as string).includes(',')) {\n index = (index as string).split(',').map(item => {\n return Number(item);\n }) as number[];\n } else {\n index = Number(index);\n }\n const tableIndex = state.table.getTableIndexByRecordIndex(index as number);\n const mergeCell = (state.table as ListTableAPI).transpose\n ? state.table.getCustomMerge(tableIndex, row)\n : state.table.getCustomMerge(col, tableIndex);\n\n const data = state.table.dataSource?.get(index as number);\n if (mergeCell || (!state.table.internalProps.rowSeriesNumber?.enableTreeCheckbox && data?.vtableMerge)) {\n // 不参与check状态的计算\n return;\n }\n if (check_state?.[field] !== true) {\n allChecked = false;\n } else {\n allUnChecked = false;\n hasChecked = true;\n }\n });\n\n if (allChecked) {\n state.headerCheckedState[field] = true;\n return allChecked;\n }\n\n if (allUnChecked) {\n state.headerCheckedState[field] = false;\n return false;\n }\n\n if (hasChecked) {\n state.headerCheckedState[field] = 'indeterminate';\n return 'indeterminate'; //半选状态\n }\n return false;\n}\n\n/**\n * setRecords的时候虽然调用了initCheckedState 进行了初始化 但当每个表头的checked状态都用配置了的话 初始化不会遍历全部数据\n * @param records\n */\nexport function initLeftRecordsCheckState(records: any[], state: StateManager) {\n for (let index = state.checkedState.size; index < records.length; index++) {\n const record = records[index];\n state._checkboxCellTypeFields.forEach(field => {\n const value = record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean;\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n const dataIndex = index.toString();\n if (!state.checkedState.get(dataIndex)) {\n state.checkedState.set(dataIndex, {});\n }\n state.checkedState.get(dataIndex)[field] = isChecked;\n });\n }\n}\n\nexport function setCellCheckboxState(\n col: number,\n row: number,\n checked: boolean | 'indeterminate',\n table: BaseTableAPI\n) {\n const cellGroup = table.scenegraph.getCell(col, row);\n const checkbox = cellGroup?.getChildByName('checkbox') as any;\n if (!checkbox) {\n // update state\n const field = table.getHeaderField(col, row);\n if (table.isHeader(col, row)) {\n //点击的表头部分的checkbox 需要同时处理表头和body单元格的状态\n table.stateManager.setHeaderCheckedState(field, checked);\n const cellType = table.getCellType(col, row);\n if (cellType === 'checkbox') {\n table.scenegraph.updateCheckboxCellState(col, row, checked);\n }\n } else {\n //点击的是body单元格的checkbox 处理本单元格的状态维护 同时需要检查表头是否改变状态\n table.stateManager.setCheckedState(col, row, field, checked);\n const cellType = table.getCellType(col, row);\n if (cellType === 'checkbox') {\n const oldHeaderCheckedState = table.stateManager.headerCheckedState[field];\n const newHeaderCheckedState = table.stateManager.updateHeaderCheckedState(field, col, row);\n if (oldHeaderCheckedState !== newHeaderCheckedState) {\n table.scenegraph.updateHeaderCheckboxCellState(col, row, newHeaderCheckedState);\n }\n }\n }\n return;\n }\n const { checked: oldChecked, indeterminate } = checkbox.attribute;\n\n if (indeterminate) {\n if (checked) {\n checkbox._handlePointerUp();\n } else {\n checkbox._handlePointerUp();\n checkbox._handlePointerUp();\n }\n } else if (oldChecked) {\n if (checked) {\n // do nothing\n } else {\n checkbox._handlePointerUp();\n }\n } else {\n if (checked) {\n checkbox._handlePointerUp();\n } else {\n // do nothing\n }\n }\n}\n\nexport function setCellCheckboxStateByAttribute(\n col: number,\n row: number,\n checked: boolean | 'indeterminate',\n table: BaseTableAPI\n) {\n const cellGroup = table.scenegraph.getCell(col, row);\n const checkbox = cellGroup?.getChildByName('checkbox') as any;\n if (checkbox) {\n if (checked === 'indeterminate') {\n (checkbox as CheckBox).setAttribute('indeterminate', true);\n (checkbox as CheckBox).setAttribute('checked', undefined);\n } else {\n (checkbox as CheckBox).setAttribute('indeterminate', undefined);\n (checkbox as CheckBox).setAttribute('checked', checked);\n }\n }\n}\n\nexport function changeCheckboxOrder(sourceIndex: number, targetIndex: number, state: StateManager) {\n const { checkedState, table } = state;\n let source;\n let target;\n if (table.internalProps.transpose) {\n sourceIndex = table.getRecordShowIndexByCell(sourceIndex, 0);\n targetIndex = table.getRecordShowIndexByCell(targetIndex, 0);\n } else {\n // sourceIndex = table.getRecordShowIndexByCell(0, sourceIndex);\n // targetIndex = table.getRecordShowIndexByCell(0, targetIndex);\n\n source = table.isPivotTable() ? undefined : (table as any).getRecordIndexByCell(0, sourceIndex);\n target = table.isPivotTable() ? undefined : (table as any).getRecordIndexByCell(0, targetIndex);\n }\n\n if (isNumber(source) && isNumber(target)) {\n sourceIndex = source;\n targetIndex = target;\n if (sourceIndex > targetIndex) {\n const sourceRecord = checkedState.get(sourceIndex.toString());\n for (let i = sourceIndex; i > targetIndex; i--) {\n // checkedState[i] = checkedState[i - 1];\n checkedState.set(i.toString(), checkedState.get((i - 1).toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(targetIndex.toString(), sourceRecord);\n } else if (sourceIndex < targetIndex) {\n const sourceRecord = checkedState.get(sourceIndex.toString());\n for (let i = sourceIndex; i < targetIndex; i++) {\n // checkedState[i] = checkedState[i + 1];\n checkedState.set(i.toString(), checkedState.get((i + 1).toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(targetIndex.toString(), sourceRecord);\n }\n } else if (isArray(source) && isArray(target)) {\n sourceIndex = source[source.length - 1];\n targetIndex = target[target.length - 1];\n if (sourceIndex > targetIndex) {\n const sourceRecord = checkedState.get(source.toString());\n for (let i = sourceIndex; i > targetIndex; i--) {\n const now = [...source];\n now[now.length - 1] = i;\n const last = [...source];\n last[last.length - 1] = i - 1;\n checkedState.set(now.toString(), checkedState.get(last.toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(target.toString(), sourceRecord);\n } else if (sourceIndex < targetIndex) {\n const sourceRecord = checkedState.get(source.toString());\n for (let i = sourceIndex; i < targetIndex; i++) {\n const now = [...source];\n now[now.length - 1] = i;\n const next = [...source];\n next[next.length - 1] = i + 1;\n checkedState.set(now.toString(), checkedState.get(next.toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(target.toString(), sourceRecord);\n }\n }\n}\n\nexport function getGroupCheckboxState(table: BaseTableAPI) {\n const result: any[] = [];\n const dataSource = table.dataSource as CachedDataSource;\n const groupKeyLength = dataSource.dataConfig.groupByRules.length + 1;\n dataSource.currentIndexedData.forEach((indexArr: number, index) => {\n if (isArray(indexArr) && indexArr.length === groupKeyLength) {\n // get record by index\n const vtableOriginIndex = (dataSource as CachedDataSource).getOriginRecordIndexForGroup(indexArr);\n result[vtableOriginIndex] = table.stateManager.checkedState.get(indexArr.toString());\n }\n });\n\n return result;\n}\n\nfunction initRecordCheckState(records: any[], state: StateManager) {\n const table = state.table;\n const start = table.isPivotTable()\n ? 0\n : table.internalProps.transpose\n ? table.rowHeaderLevelCount\n : table.columnHeaderLevelCount;\n const end = table.isPivotTable()\n ? isArray(records)\n ? records.length\n : 0\n : table.internalProps.transpose\n ? table.colCount\n : table.rowCount;\n for (let index = 0; index + start < end; index++) {\n const record = table.isPivotTable() ? records[index] : table.dataSource.get(index);\n // eslint-disable-next-line no-loop-func\n state._checkboxCellTypeFields.forEach(field => {\n const value =\n record && (record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean);\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n if (isChecked === undefined || isChecked === null) {\n const headerCheckFunc = state._headerCheckFuncs[field];\n if (headerCheckFunc) {\n //如果定义的checked是个函数 则需要每个都去计算这个值\n const cellAddr = state.table.getCellAddrByFieldRecord(field, index);\n const globalChecked = getOrApply(headerCheckFunc as any, {\n col: cellAddr.col,\n row: cellAddr.row,\n table: state.table,\n context: null,\n value\n });\n isChecked = globalChecked;\n }\n }\n const dataIndex = table.isPivotTable() ? index.toString() : state.table.dataSource.getIndexKey(index).toString();\n if (!state.checkedState.get(dataIndex)) {\n state.checkedState.set(dataIndex, {});\n }\n state.checkedState.get(dataIndex)[field] = isChecked;\n });\n }\n}\n"]}
|
|
@@ -206,28 +206,75 @@ function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectAll, mak
|
|
|
206
206
|
},
|
|
207
207
|
skipBodyMerge: !0
|
|
208
208
|
});
|
|
209
|
-
} else if (table.internalProps.layoutMap.isSeriesNumberInHeader(col, row))
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
209
|
+
} else if (table.internalProps.layoutMap.isSeriesNumberInHeader(col, row)) {
|
|
210
|
+
extendSelectRange = !1;
|
|
211
|
+
const {cornerHeaderSelectMode: cornerHeaderSelectMode} = state.select;
|
|
212
|
+
if ("body" === cornerHeaderSelectMode) state.select.ranges.push({
|
|
213
|
+
start: {
|
|
214
|
+
col: table.leftRowSeriesNumberCount,
|
|
215
|
+
row: table.columnHeaderLevelCount
|
|
216
|
+
},
|
|
217
|
+
end: {
|
|
218
|
+
col: table.colCount - 1,
|
|
219
|
+
row: table.rowCount - 1
|
|
220
|
+
},
|
|
221
|
+
skipBodyMerge: !0
|
|
222
|
+
}); else if ("inline" === cornerHeaderSelectMode) {
|
|
223
|
+
const cellRange = skipBodyMerge ? {
|
|
224
|
+
start: {
|
|
225
|
+
col: col,
|
|
226
|
+
row: row
|
|
227
|
+
},
|
|
228
|
+
end: {
|
|
229
|
+
col: col,
|
|
230
|
+
row: row
|
|
231
|
+
}
|
|
232
|
+
} : table.getCellRange(col, row);
|
|
233
|
+
state.select.ranges.push({
|
|
234
|
+
start: {
|
|
235
|
+
col: cellRange.start.col,
|
|
236
|
+
row: cellRange.start.row
|
|
237
|
+
},
|
|
238
|
+
end: {
|
|
239
|
+
col: cellRange.end.col,
|
|
240
|
+
row: table.rowCount - 1
|
|
241
|
+
},
|
|
242
|
+
skipBodyMerge: !0
|
|
243
|
+
});
|
|
244
|
+
} else if ("cell" === cornerHeaderSelectMode) {
|
|
245
|
+
const cellRange = skipBodyMerge ? {
|
|
246
|
+
start: {
|
|
247
|
+
col: col,
|
|
248
|
+
row: row
|
|
249
|
+
},
|
|
250
|
+
end: {
|
|
251
|
+
col: col,
|
|
252
|
+
row: row
|
|
253
|
+
}
|
|
254
|
+
} : table.getCellRange(col, row);
|
|
255
|
+
state.select.ranges.push({
|
|
256
|
+
start: {
|
|
257
|
+
col: cellRange.start.col,
|
|
258
|
+
row: cellRange.start.row
|
|
259
|
+
},
|
|
260
|
+
end: {
|
|
261
|
+
col: cellRange.end.col,
|
|
262
|
+
row: cellRange.end.row
|
|
263
|
+
},
|
|
264
|
+
skipBodyMerge: skipBodyMerge || void 0
|
|
265
|
+
});
|
|
266
|
+
} else state.select.ranges.push({
|
|
267
|
+
start: {
|
|
268
|
+
col: 0,
|
|
269
|
+
row: 0
|
|
270
|
+
},
|
|
271
|
+
end: {
|
|
272
|
+
col: table.colCount - 1,
|
|
273
|
+
row: table.rowCount - 1
|
|
274
|
+
},
|
|
275
|
+
skipBodyMerge: !0
|
|
276
|
+
});
|
|
277
|
+
} else if (table.internalProps.layoutMap.isSeriesNumberInBody(col, row)) extendSelectRange = !1,
|
|
231
278
|
"body" === state.select.headerSelectMode ? state.select.ranges.push({
|
|
232
279
|
start: {
|
|
233
280
|
col: table.leftRowSeriesNumberCount,
|
|
@@ -248,28 +295,75 @@ function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectAll, mak
|
|
|
248
295
|
row: row
|
|
249
296
|
},
|
|
250
297
|
skipBodyMerge: !0
|
|
251
|
-
}); else if (table.internalProps.layoutMap.isCornerHeader(col, row))
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
298
|
+
}); else if (table.internalProps.layoutMap.isCornerHeader(col, row)) {
|
|
299
|
+
extendSelectRange = !1;
|
|
300
|
+
const {cornerHeaderSelectMode: cornerHeaderSelectMode} = state.select;
|
|
301
|
+
if ("body" === cornerHeaderSelectMode) state.select.ranges.push({
|
|
302
|
+
start: {
|
|
303
|
+
col: table.rowHeaderLevelCount + table.leftRowSeriesNumberCount,
|
|
304
|
+
row: table.columnHeaderLevelCount
|
|
305
|
+
},
|
|
306
|
+
end: {
|
|
307
|
+
col: table.colCount - 1,
|
|
308
|
+
row: table.rowCount - 1
|
|
309
|
+
},
|
|
310
|
+
skipBodyMerge: !0
|
|
311
|
+
}); else if ("cell" === cornerHeaderSelectMode) {
|
|
312
|
+
const cellRange = skipBodyMerge ? {
|
|
313
|
+
start: {
|
|
314
|
+
col: col,
|
|
315
|
+
row: row
|
|
316
|
+
},
|
|
317
|
+
end: {
|
|
318
|
+
col: col,
|
|
319
|
+
row: row
|
|
320
|
+
}
|
|
321
|
+
} : table.getCellRange(col, row);
|
|
322
|
+
state.select.ranges.push({
|
|
323
|
+
start: {
|
|
324
|
+
col: cellRange.start.col,
|
|
325
|
+
row: cellRange.start.row
|
|
326
|
+
},
|
|
327
|
+
end: {
|
|
328
|
+
col: cellRange.end.col,
|
|
329
|
+
row: cellRange.end.row
|
|
330
|
+
},
|
|
331
|
+
skipBodyMerge: skipBodyMerge || void 0
|
|
332
|
+
});
|
|
333
|
+
} else if ("inline" === cornerHeaderSelectMode) {
|
|
334
|
+
const cellRange = skipBodyMerge ? {
|
|
335
|
+
start: {
|
|
336
|
+
col: col,
|
|
337
|
+
row: row
|
|
338
|
+
},
|
|
339
|
+
end: {
|
|
340
|
+
col: col,
|
|
341
|
+
row: row
|
|
342
|
+
}
|
|
343
|
+
} : table.getCellRange(col, row);
|
|
344
|
+
state.select.ranges.push({
|
|
345
|
+
start: {
|
|
346
|
+
col: cellRange.start.col,
|
|
347
|
+
row: cellRange.start.row
|
|
348
|
+
},
|
|
349
|
+
end: {
|
|
350
|
+
col: cellRange.end.col,
|
|
351
|
+
row: table.rowCount - 1
|
|
352
|
+
},
|
|
353
|
+
skipBodyMerge: !0
|
|
354
|
+
});
|
|
355
|
+
} else state.select.ranges.push({
|
|
356
|
+
start: {
|
|
357
|
+
col: table.leftRowSeriesNumberCount,
|
|
358
|
+
row: 0
|
|
359
|
+
},
|
|
360
|
+
end: {
|
|
361
|
+
col: table.colCount - 1,
|
|
362
|
+
row: table.rowCount - 1
|
|
363
|
+
},
|
|
364
|
+
skipBodyMerge: !0
|
|
365
|
+
});
|
|
366
|
+
} else if (col >= 0 && row >= 0) {
|
|
273
367
|
const cellRange = skipBodyMerge ? {
|
|
274
368
|
start: {
|
|
275
369
|
col: col,
|