@visactor/vtable 1.7.5-alpha.0 → 1.7.5
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 +34 -22
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotTable.d.ts +1 -0
- package/cjs/PivotTable.js +4 -0
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/body-helper/body-helper.js +2 -2
- package/cjs/body-helper/body-helper.js.map +1 -1
- package/cjs/components/axis/axis.d.ts +1 -0
- package/cjs/components/axis/axis.js +14 -10
- package/cjs/components/axis/axis.js.map +1 -1
- package/cjs/core/BaseTable.js +7 -5
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/record-helper.js +9 -11
- package/cjs/core/record-helper.js.map +1 -1
- package/cjs/data/CachedDataSource.d.ts +1 -1
- package/cjs/data/CachedDataSource.js +4 -4
- package/cjs/data/CachedDataSource.js.map +1 -1
- package/cjs/data/DataSource.d.ts +3 -5
- package/cjs/data/DataSource.js +49 -30
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/dataset/dataset-pivot-table.d.ts +1 -1
- package/cjs/dataset/dataset-pivot-table.js +10 -45
- package/cjs/dataset/dataset-pivot-table.js.map +1 -1
- package/cjs/dataset/dataset.d.ts +1 -0
- package/cjs/dataset/dataset.js +15 -7
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/dataset/statistics-helper.js +1 -1
- package/cjs/dataset/statistics-helper.js.map +1 -1
- package/cjs/event/EventHandler.js +1 -1
- package/cjs/event/EventHandler.js.map +1 -1
- package/cjs/event/listener/table-group.js +37 -25
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/event/scroll.js +2 -1
- package/cjs/event/scroll.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-config.js +26 -13
- package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
- package/cjs/layout/chart-helper/get-chart-spec.js +1 -1
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +14 -10
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js +1 -1
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js +6 -5
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
- package/cjs/scenegraph/icon/icon-update.d.ts +10 -1
- package/cjs/scenegraph/icon/icon-update.js +4 -4
- package/cjs/scenegraph/icon/icon-update.js.map +1 -1
- package/cjs/scenegraph/layout/update-height.js +1 -1
- package/cjs/scenegraph/layout/update-height.js.map +1 -1
- package/cjs/scenegraph/layout/update-width.js +5 -5
- package/cjs/scenegraph/layout/update-width.js.map +1 -1
- package/cjs/scenegraph/refresh-node/update-chart.js +2 -1
- package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +9 -1
- package/cjs/scenegraph/scenegraph.js +12 -2
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/style/frame-border.js +1 -0
- package/cjs/scenegraph/style/frame-border.js.map +1 -1
- package/cjs/state/sort/index.js +17 -6
- package/cjs/state/sort/index.js.map +1 -1
- package/cjs/state/state.d.ts +4 -4
- package/cjs/state/state.js +87 -17
- package/cjs/state/state.js.map +1 -1
- package/cjs/tools/util.d.ts +1 -0
- package/cjs/tools/util.js +7 -2
- package/cjs/tools/util.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +1 -0
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +3 -1
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/vrender.js +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +416 -214
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.d.ts +2 -2
- package/es/ListTable.js +33 -20
- package/es/ListTable.js.map +1 -1
- package/es/PivotTable.d.ts +1 -0
- package/es/PivotTable.js +4 -0
- package/es/PivotTable.js.map +1 -1
- package/es/body-helper/body-helper.js +3 -1
- package/es/body-helper/body-helper.js.map +1 -1
- package/es/components/axis/axis.d.ts +1 -0
- package/es/components/axis/axis.js +14 -10
- package/es/components/axis/axis.js.map +1 -1
- package/es/core/BaseTable.js +7 -5
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/record-helper.js +9 -11
- package/es/core/record-helper.js.map +1 -1
- package/es/data/CachedDataSource.d.ts +1 -1
- package/es/data/CachedDataSource.js +4 -4
- package/es/data/CachedDataSource.js.map +1 -1
- package/es/data/DataSource.d.ts +3 -5
- package/es/data/DataSource.js +49 -28
- package/es/data/DataSource.js.map +1 -1
- package/es/dataset/dataset-pivot-table.d.ts +1 -1
- package/es/dataset/dataset-pivot-table.js +9 -44
- package/es/dataset/dataset-pivot-table.js.map +1 -1
- package/es/dataset/dataset.d.ts +1 -0
- package/es/dataset/dataset.js +15 -7
- package/es/dataset/dataset.js.map +1 -1
- package/es/dataset/statistics-helper.js +1 -1
- package/es/dataset/statistics-helper.js.map +1 -1
- package/es/event/EventHandler.js +1 -1
- package/es/event/EventHandler.js.map +1 -1
- package/es/event/listener/table-group.js +38 -26
- package/es/event/listener/table-group.js.map +1 -1
- package/es/event/scroll.js +2 -1
- package/es/event/scroll.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/chart-helper/get-axis-config.js +23 -12
- package/es/layout/chart-helper/get-axis-config.js.map +1 -1
- package/es/layout/chart-helper/get-chart-spec.js +1 -1
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +14 -9
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js +1 -1
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
- package/es/scenegraph/group-creater/column-helper.js +6 -5
- package/es/scenegraph/group-creater/column-helper.js.map +1 -1
- package/es/scenegraph/icon/icon-update.d.ts +10 -1
- package/es/scenegraph/icon/icon-update.js +5 -3
- package/es/scenegraph/icon/icon-update.js.map +1 -1
- package/es/scenegraph/layout/update-height.js +1 -1
- package/es/scenegraph/layout/update-height.js.map +1 -1
- package/es/scenegraph/layout/update-width.js +5 -5
- package/es/scenegraph/layout/update-width.js.map +1 -1
- package/es/scenegraph/refresh-node/update-chart.js +2 -1
- package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +9 -1
- package/es/scenegraph/scenegraph.js +12 -2
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/style/frame-border.js +1 -0
- package/es/scenegraph/style/frame-border.js.map +1 -1
- package/es/state/sort/index.js +17 -6
- package/es/state/sort/index.js.map +1 -1
- package/es/state/state.d.ts +4 -4
- package/es/state/state.js +88 -16
- package/es/state/state.js.map +1 -1
- package/es/tools/util.d.ts +1 -0
- package/es/tools/util.js +4 -0
- package/es/tools/util.js.map +1 -1
- package/es/ts-types/base-table.d.ts +1 -0
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +3 -1
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/vrender.js +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +4 -4
|
@@ -82,6 +82,7 @@ function createFrameBorder(group, frameTheme, role, strokeArray, justForXYPositi
|
|
|
82
82
|
|
|
83
83
|
function updateFrameBorder(group, frameTheme, strokeArray) {
|
|
84
84
|
var _a;
|
|
85
|
+
if (!frameTheme) return;
|
|
85
86
|
const {borderColor: borderColor} = frameTheme;
|
|
86
87
|
null === (_a = group.border) || void 0 === _a || _a.setAttribute("stroke", getStroke(borderColor, strokeArray));
|
|
87
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/style/frame-border.ts"],"names":[],"mappings":"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","file":"frame-border.js","sourcesContent":["import type { IGroupGraphicAttribute, IRect, IRectGraphicAttribute } from './../../vrender';\nimport { createGroup, createRect } from './../../vrender';\nimport type { TableFrameStyle } from '../../ts-types';\nimport type { Group } from '../graphic/group';\nimport { isArray } from '@visactor/vutils';\nimport { getQuadProps } from '../utils/padding';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { toBoxArray } from '../../tools/helper';\n\n/**\n * @description: create frame border\n * @param {Group} group\n * @param {TableFrameStyle} frameTheme\n * @param {string} role\n * @param {[boolean, boolean, boolean, boolean]} strokeArray\n * @return {*}\n */\nexport function createFrameBorder(\n group: Group,\n frameTheme: TableFrameStyle | undefined,\n role: string,\n strokeArray: [boolean, boolean, boolean, boolean] | undefined, // to do 处理成0b001111形式\n justForXYPosition?: boolean\n) {\n if (!frameTheme) {\n return;\n }\n\n const isTableGroup = role === 'table';\n\n const {\n shadowBlur,\n shadowOffsetX,\n shadowOffsetY,\n shadowColor,\n cornerRadius,\n borderColor,\n borderLineWidth,\n borderLineDash\n } = frameTheme;\n let hasShadow = false;\n const groupAttributes: IGroupGraphicAttribute = {};\n const rectAttributes: IRectGraphicAttribute = {\n pickable: false\n };\n // 处理shadow\n if (shadowBlur && isTableGroup) {\n // 只有table才能配置shadow\n rectAttributes.shadowBlur = shadowBlur;\n rectAttributes.shadowOffsetX = shadowOffsetX;\n rectAttributes.shadowOffsetY = shadowOffsetY;\n rectAttributes.shadowColor = shadowColor;\n rectAttributes.stroke = true;\n rectAttributes.stroke = shadowColor;\n rectAttributes.lineWidth = 1;\n hasShadow = true;\n\n // rectAttributes.fill = true;\n // rectAttributes.fillOpacity = 0.01;\n }\n\n // 处理边框\n if (borderLineWidth) {\n rectAttributes.stroke = true;\n rectAttributes.fill = false;\n rectAttributes.stroke = getStroke(borderColor, strokeArray, borderLineWidth);\n rectAttributes.lineWidth = borderLineWidth as number;\n borderLineDash && (rectAttributes.lineDash = borderLineDash as number[]);\n rectAttributes.lineCap = 'butt';\n }\n\n if (Array.isArray(borderColor)) {\n (rectAttributes as any).strokeArrayColor = getQuadProps(borderColor as any);\n }\n\n if (Array.isArray(borderLineWidth)) {\n (rectAttributes as any).strokeArrayWidth = getQuadProps(borderLineWidth);\n (rectAttributes as any).lineWidth = 1;\n }\n\n if (cornerRadius) {\n rectAttributes.cornerRadius = cornerRadius;\n groupAttributes.cornerRadius = cornerRadius;\n }\n\n const borderTop = (rectAttributes as any).strokeArrayWidth\n ? (rectAttributes as any).strokeArrayWidth[0]\n : (rectAttributes.lineWidth as number) ?? 0;\n const borderRight = (rectAttributes as any).strokeArrayWidth\n ? (rectAttributes as any).strokeArrayWidth[1]\n : (rectAttributes.lineWidth as number) ?? 0;\n const borderBottom = (rectAttributes as any).strokeArrayWidth\n ? (rectAttributes as any).strokeArrayWidth[2]\n : (rectAttributes.lineWidth as number) ?? 0;\n const borderLeft = (rectAttributes as any).strokeArrayWidth\n ? (rectAttributes as any).strokeArrayWidth[3]\n : (rectAttributes.lineWidth as number) ?? 0;\n\n // // 处理边框引起的宽度高度变化(只对最外层tableGroup生效)\n // if (isTableGroup && (rectAttributes.shadowBlur || rectAttributes.lineWidth)) {\n // const deltaX = (rectAttributes.shadowBlur ?? 0) + (borderLeft + borderRight) / 2;\n // const deltaY = (rectAttributes.shadowBlur ?? 0) + (borderTop + borderBottom) / 2;\n\n // groupAttributes.x = deltaX;\n // groupAttributes.y = deltaY;\n // // 宽度高度在tableNoFrameWidth&tableNoFrameHeight中处理\n // // groupAttributes.width = group.attribute.width - deltaX - deltaX;\n // // groupAttributes.height = group.attribute.height - deltaY - deltaY;\n // }\n group.setAttributes(groupAttributes);\n\n if (justForXYPosition) {\n return;\n }\n\n if (rectAttributes.stroke) {\n rectAttributes.x = borderLeft / 2;\n rectAttributes.y = borderTop / 2;\n rectAttributes.pickable = false;\n if (isTableGroup) {\n if (cornerRadius) {\n if (Array.isArray(cornerRadius)) {\n const cornerRadiusArr = getQuadProps(cornerRadius);\n rectAttributes.cornerRadius = cornerRadiusArr;\n groupAttributes.cornerRadius = cornerRadiusArr;\n cornerRadiusArr[0] && (cornerRadiusArr[0] = cornerRadiusArr[0] + Math.min(borderLeft, borderTop) / 2);\n cornerRadiusArr[1] && (cornerRadiusArr[1] = cornerRadiusArr[1] + Math.min(borderTop, borderRight) / 2);\n cornerRadiusArr[2] && (cornerRadiusArr[2] = cornerRadiusArr[2] + Math.min(borderRight, borderBottom) / 2);\n cornerRadiusArr[3] && (cornerRadiusArr[3] = cornerRadiusArr[3] + Math.min(borderBottom, borderLeft) / 2);\n } else if (isArray(borderLineWidth)) {\n const cornerRadiusArr: number[] = [];\n rectAttributes.cornerRadius = cornerRadiusArr;\n groupAttributes.cornerRadius = cornerRadiusArr;\n cornerRadiusArr[0] = cornerRadius + Math.min(borderLeft, borderTop) / 2;\n cornerRadiusArr[1] = cornerRadius + Math.min(borderTop, borderRight) / 2;\n cornerRadiusArr[2] = cornerRadius + Math.min(borderRight, borderBottom) / 2;\n cornerRadiusArr[3] = cornerRadius + Math.min(borderBottom, borderLeft) / 2;\n } else {\n rectAttributes.cornerRadius = cornerRadius + (rectAttributes.lineWidth ?? 0) / 2;\n groupAttributes.cornerRadius = cornerRadius + (rectAttributes.lineWidth ?? 0) / 2;\n }\n }\n if (frameTheme.innerBorder) {\n rectAttributes.x = group.attribute.x + borderLeft / 2;\n rectAttributes.y = group.attribute.y + borderTop / 2;\n rectAttributes.width = group.attribute.width - borderLeft / 2 - borderRight / 2;\n rectAttributes.height = group.attribute.height - borderTop / 2 - borderBottom / 2;\n } else {\n rectAttributes.x = group.attribute.x - borderLeft / 2;\n rectAttributes.y = group.attribute.y - borderTop / 2;\n rectAttributes.width = group.attribute.width + borderLeft / 2 + borderRight / 2;\n rectAttributes.height = group.attribute.height + borderTop / 2 + borderBottom / 2;\n }\n\n let shadowRect;\n let borderRect;\n if (hasShadow) {\n rectAttributes.fill = 'white';\n (rectAttributes as any).notAdjustPos = true;\n // rectAttributes.globalCompositeOperation = 'source-over';\n\n // first draw group\n borderRect = createGroup(rectAttributes);\n borderRect.name = 'table-border-rect';\n\n // second draw rect\n shadowRect = createRect({\n x: borderLeft / 2,\n y: borderTop / 2,\n width: group.attribute.width,\n height: group.attribute.height,\n fill: 'red',\n cornerRadius: group.attribute.cornerRadius,\n globalCompositeOperation: 'destination-out'\n });\n borderRect.addChild(shadowRect);\n\n // hack for vrender globalCompositeOperation&clip render problem\n const hackRect = createRect({\n x: borderLeft / 2,\n y: borderTop / 2,\n width: group.attribute.width,\n height: group.attribute.height,\n fill: 'transparent',\n pickable: false,\n globalCompositeOperation: 'source-over'\n });\n borderRect.addChild(hackRect);\n } else {\n borderRect = createRect(rectAttributes);\n borderRect.name = 'table-border-rect';\n }\n\n // to be fixed: border index in shadow mode\n if (frameTheme.innerBorder && !hasShadow) {\n group.parent.insertAfter(borderRect, group);\n } else {\n group.parent.insertBefore(borderRect, group);\n }\n (group as any).border = borderRect;\n } else {\n // rectAttributes.x = rectAttributes.lineWidth / 2;\n // rectAttributes.y = rectAttributes.lineWidth / 2;\n rectAttributes.width = group.attribute.width - borderLeft / 2 - borderRight / 2;\n rectAttributes.height = group.attribute.height - borderTop / 2 - borderBottom / 2;\n const borderRect = createRect(rectAttributes);\n borderRect.name = 'border-rect';\n group.addChild(borderRect);\n (group as any).border = borderRect;\n }\n }\n}\n\n/**\n * @description: update frame border stroke atrribute\n * @param {Group} group\n * @param {TableFrameStyle} frameTheme\n * @param {array} strokeArray stroke boolean array\n * @return {*}\n */\nexport function updateFrameBorder(\n group: Group,\n frameTheme: TableFrameStyle | undefined,\n strokeArray?: [boolean, boolean, boolean, boolean] // to do 处理成0b001111形式\n) {\n const { borderColor } = frameTheme;\n group.border?.setAttribute('stroke', getStroke(borderColor, strokeArray));\n}\n\nexport function getStroke(\n borderColor: string | string[],\n strokeArray: boolean[] | undefined,\n strokeLineWidth?: number | number[]\n) {\n let stroke: boolean | string | (boolean | string)[] = true;\n if ((strokeArray || isArray(strokeLineWidth)) && !isArray(borderColor)) {\n stroke = (strokeArray ?? (strokeLineWidth as number[])).map(stroke => {\n if (stroke) {\n return borderColor;\n }\n return false;\n });\n } else if (strokeArray) {\n stroke = strokeArray;\n } else if (!strokeArray && !isArray(borderColor)) {\n stroke = borderColor;\n } else if (isArray(borderColor)) {\n stroke = true;\n }\n return stroke;\n}\n\n/**\n * @description: update frame border size when group size change\n * @param {Group} group\n * @return {*}\n */\nexport function updateFrameBorderSize(group: Group) {\n if (!group.border) {\n return;\n }\n const borderTop = (group.border.attribute as any).strokeArrayWidth\n ? (group.border.attribute as any).strokeArrayWidth[0]\n : (group.border.attribute.lineWidth as number) ?? 0;\n const borderRight = (group.border.attribute as any).strokeArrayWidth\n ? (group.border.attribute as any).strokeArrayWidth[1]\n : (group.border.attribute.lineWidth as number) ?? 0;\n const borderBottom = (group.border.attribute as any).strokeArrayWidth\n ? (group.border.attribute as any).strokeArrayWidth[2]\n : (group.border.attribute.lineWidth as number) ?? 0;\n const borderLeft = (group.border.attribute as any).strokeArrayWidth\n ? (group.border.attribute as any).strokeArrayWidth[3]\n : (group.border.attribute.lineWidth as number) ?? 0;\n\n group.border.setAttributes({\n width: group.attribute.width - borderLeft / 2 - borderRight / 2,\n height: group.attribute.height - borderTop / 2 - borderBottom / 2\n });\n\n if (group.border.type === 'group') {\n (group.border.firstChild as IRect).setAttributes({\n width: group.attribute.width,\n height: group.attribute.height\n });\n }\n}\n\nexport function updateCornerRadius(table: BaseTableAPI) {\n if (!table.theme.frameStyle.cornerRadius) {\n return;\n }\n const cornerRadius = table.theme.frameStyle.cornerRadius;\n const {\n cornerHeaderGroup,\n colHeaderGroup,\n rowHeaderGroup,\n bodyGroup,\n rightTopCornerGroup,\n leftBottomCornerGroup,\n rightBottomCornerGroup,\n rightFrozenGroup,\n bottomFrozenGroup\n } = table.scenegraph;\n\n // reset corner radius\n cornerHeaderGroup.setAttribute('cornerRadius', 0);\n colHeaderGroup.setAttribute('cornerRadius', 0);\n rowHeaderGroup.setAttribute('cornerRadius', 0);\n bodyGroup.setAttribute('cornerRadius', 0);\n rightTopCornerGroup.setAttribute('cornerRadius', 0);\n leftBottomCornerGroup.setAttribute('cornerRadius', 0);\n rightBottomCornerGroup.setAttribute('cornerRadius', 0);\n rightFrozenGroup.setAttribute('cornerRadius', 0);\n bottomFrozenGroup.setAttribute('cornerRadius', 0);\n\n const cornerRadiusArray = toBoxArray(cornerRadius);\n // left top\n if (cornerHeaderGroup.attribute.width > 0 && cornerHeaderGroup.attribute.height > 0) {\n setCornerRadius(cornerHeaderGroup, [cornerRadiusArray[0], 0, 0, 0]);\n } else if (colHeaderGroup.attribute.height > 0) {\n setCornerRadius(colHeaderGroup, [cornerRadiusArray[0], 0, 0, 0]);\n } else if (rowHeaderGroup.attribute.width > 0) {\n setCornerRadius(rowHeaderGroup, [cornerRadiusArray[0], 0, 0, 0]);\n } else {\n setCornerRadius(bodyGroup, [cornerRadiusArray[0], 0, 0, 0]);\n }\n\n // left bottom\n if (leftBottomCornerGroup.attribute.width > 0 && leftBottomCornerGroup.attribute.height > 0) {\n setCornerRadius(leftBottomCornerGroup, [0, 0, 0, cornerRadiusArray[3]]);\n } else if (bottomFrozenGroup.attribute.height > 0) {\n setCornerRadius(bottomFrozenGroup, [0, 0, 0, cornerRadiusArray[3]]);\n } else if (rowHeaderGroup.attribute.width > 0) {\n setCornerRadius(rowHeaderGroup, [0, 0, 0, cornerRadiusArray[3]]);\n } else {\n setCornerRadius(bodyGroup, [0, 0, 0, cornerRadiusArray[3]]);\n }\n\n // right top\n if (rightTopCornerGroup.attribute.width > 0 && rightTopCornerGroup.attribute.height > 0) {\n setCornerRadius(rightTopCornerGroup, [0, cornerRadiusArray[1], 0, 0]);\n } else if (colHeaderGroup.attribute.height > 0) {\n setCornerRadius(colHeaderGroup, [0, cornerRadiusArray[1], 0, 0]);\n } else if (rightFrozenGroup.attribute.width > 0) {\n setCornerRadius(rightFrozenGroup, [0, cornerRadiusArray[1], 0, 0]);\n } else {\n setCornerRadius(bodyGroup, [0, cornerRadiusArray[1], 0, 0]);\n }\n\n // right bottom\n if (rightBottomCornerGroup.attribute.width > 0 && rightBottomCornerGroup.attribute.height > 0) {\n setCornerRadius(rightBottomCornerGroup, [0, 0, cornerRadiusArray[2], 0]);\n } else if (rightFrozenGroup.attribute.width > 0) {\n setCornerRadius(rightFrozenGroup, [0, 0, cornerRadiusArray[2], 0]);\n } else if (bottomFrozenGroup.attribute.height > 0) {\n setCornerRadius(bottomFrozenGroup, [0, 0, cornerRadiusArray[2], 0]);\n } else {\n setCornerRadius(bodyGroup, [0, 0, cornerRadiusArray[2], 0]);\n }\n}\n\nfunction setCornerRadius(group: Group, cornerRadius: number[]) {\n group.setAttribute('cornerRadius', cornerRadius);\n if (group.border) {\n group.border.setAttribute('cornerRadius', cornerRadius);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/style/frame-border.ts"],"names":[],"mappings":"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","file":"frame-border.js","sourcesContent":["import type { IGroupGraphicAttribute, IRect, IRectGraphicAttribute } from './../../vrender';\nimport { createGroup, createRect } from './../../vrender';\nimport type { TableFrameStyle } from '../../ts-types';\nimport type { Group } from '../graphic/group';\nimport { isArray } from '@visactor/vutils';\nimport { getQuadProps } from '../utils/padding';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { toBoxArray } from '../../tools/helper';\n\n/**\n * @description: create frame border\n * @param {Group} group\n * @param {TableFrameStyle} frameTheme\n * @param {string} role\n * @param {[boolean, boolean, boolean, boolean]} strokeArray\n * @return {*}\n */\nexport function createFrameBorder(\n group: Group,\n frameTheme: TableFrameStyle | undefined,\n role: string,\n strokeArray: [boolean, boolean, boolean, boolean] | undefined, // to do 处理成0b001111形式\n justForXYPosition?: boolean\n) {\n if (!frameTheme) {\n return;\n }\n\n const isTableGroup = role === 'table';\n\n const {\n shadowBlur,\n shadowOffsetX,\n shadowOffsetY,\n shadowColor,\n cornerRadius,\n borderColor,\n borderLineWidth,\n borderLineDash\n } = frameTheme;\n let hasShadow = false;\n const groupAttributes: IGroupGraphicAttribute = {};\n const rectAttributes: IRectGraphicAttribute = {\n pickable: false\n };\n // 处理shadow\n if (shadowBlur && isTableGroup) {\n // 只有table才能配置shadow\n rectAttributes.shadowBlur = shadowBlur;\n rectAttributes.shadowOffsetX = shadowOffsetX;\n rectAttributes.shadowOffsetY = shadowOffsetY;\n rectAttributes.shadowColor = shadowColor;\n rectAttributes.stroke = true;\n rectAttributes.stroke = shadowColor;\n rectAttributes.lineWidth = 1;\n hasShadow = true;\n\n // rectAttributes.fill = true;\n // rectAttributes.fillOpacity = 0.01;\n }\n\n // 处理边框\n if (borderLineWidth) {\n rectAttributes.stroke = true;\n rectAttributes.fill = false;\n rectAttributes.stroke = getStroke(borderColor, strokeArray, borderLineWidth);\n rectAttributes.lineWidth = borderLineWidth as number;\n borderLineDash && (rectAttributes.lineDash = borderLineDash as number[]);\n rectAttributes.lineCap = 'butt';\n }\n\n if (Array.isArray(borderColor)) {\n (rectAttributes as any).strokeArrayColor = getQuadProps(borderColor as any);\n }\n\n if (Array.isArray(borderLineWidth)) {\n (rectAttributes as any).strokeArrayWidth = getQuadProps(borderLineWidth);\n (rectAttributes as any).lineWidth = 1;\n }\n\n if (cornerRadius) {\n rectAttributes.cornerRadius = cornerRadius;\n groupAttributes.cornerRadius = cornerRadius;\n }\n\n const borderTop = (rectAttributes as any).strokeArrayWidth\n ? (rectAttributes as any).strokeArrayWidth[0]\n : (rectAttributes.lineWidth as number) ?? 0;\n const borderRight = (rectAttributes as any).strokeArrayWidth\n ? (rectAttributes as any).strokeArrayWidth[1]\n : (rectAttributes.lineWidth as number) ?? 0;\n const borderBottom = (rectAttributes as any).strokeArrayWidth\n ? (rectAttributes as any).strokeArrayWidth[2]\n : (rectAttributes.lineWidth as number) ?? 0;\n const borderLeft = (rectAttributes as any).strokeArrayWidth\n ? (rectAttributes as any).strokeArrayWidth[3]\n : (rectAttributes.lineWidth as number) ?? 0;\n\n // // 处理边框引起的宽度高度变化(只对最外层tableGroup生效)\n // if (isTableGroup && (rectAttributes.shadowBlur || rectAttributes.lineWidth)) {\n // const deltaX = (rectAttributes.shadowBlur ?? 0) + (borderLeft + borderRight) / 2;\n // const deltaY = (rectAttributes.shadowBlur ?? 0) + (borderTop + borderBottom) / 2;\n\n // groupAttributes.x = deltaX;\n // groupAttributes.y = deltaY;\n // // 宽度高度在tableNoFrameWidth&tableNoFrameHeight中处理\n // // groupAttributes.width = group.attribute.width - deltaX - deltaX;\n // // groupAttributes.height = group.attribute.height - deltaY - deltaY;\n // }\n group.setAttributes(groupAttributes);\n\n if (justForXYPosition) {\n return;\n }\n\n if (rectAttributes.stroke) {\n rectAttributes.x = borderLeft / 2;\n rectAttributes.y = borderTop / 2;\n rectAttributes.pickable = false;\n if (isTableGroup) {\n if (cornerRadius) {\n if (Array.isArray(cornerRadius)) {\n const cornerRadiusArr = getQuadProps(cornerRadius);\n rectAttributes.cornerRadius = cornerRadiusArr;\n groupAttributes.cornerRadius = cornerRadiusArr;\n cornerRadiusArr[0] && (cornerRadiusArr[0] = cornerRadiusArr[0] + Math.min(borderLeft, borderTop) / 2);\n cornerRadiusArr[1] && (cornerRadiusArr[1] = cornerRadiusArr[1] + Math.min(borderTop, borderRight) / 2);\n cornerRadiusArr[2] && (cornerRadiusArr[2] = cornerRadiusArr[2] + Math.min(borderRight, borderBottom) / 2);\n cornerRadiusArr[3] && (cornerRadiusArr[3] = cornerRadiusArr[3] + Math.min(borderBottom, borderLeft) / 2);\n } else if (isArray(borderLineWidth)) {\n const cornerRadiusArr: number[] = [];\n rectAttributes.cornerRadius = cornerRadiusArr;\n groupAttributes.cornerRadius = cornerRadiusArr;\n cornerRadiusArr[0] = cornerRadius + Math.min(borderLeft, borderTop) / 2;\n cornerRadiusArr[1] = cornerRadius + Math.min(borderTop, borderRight) / 2;\n cornerRadiusArr[2] = cornerRadius + Math.min(borderRight, borderBottom) / 2;\n cornerRadiusArr[3] = cornerRadius + Math.min(borderBottom, borderLeft) / 2;\n } else {\n rectAttributes.cornerRadius = cornerRadius + (rectAttributes.lineWidth ?? 0) / 2;\n groupAttributes.cornerRadius = cornerRadius + (rectAttributes.lineWidth ?? 0) / 2;\n }\n }\n if (frameTheme.innerBorder) {\n rectAttributes.x = group.attribute.x + borderLeft / 2;\n rectAttributes.y = group.attribute.y + borderTop / 2;\n rectAttributes.width = group.attribute.width - borderLeft / 2 - borderRight / 2;\n rectAttributes.height = group.attribute.height - borderTop / 2 - borderBottom / 2;\n } else {\n rectAttributes.x = group.attribute.x - borderLeft / 2;\n rectAttributes.y = group.attribute.y - borderTop / 2;\n rectAttributes.width = group.attribute.width + borderLeft / 2 + borderRight / 2;\n rectAttributes.height = group.attribute.height + borderTop / 2 + borderBottom / 2;\n }\n\n let shadowRect;\n let borderRect;\n if (hasShadow) {\n rectAttributes.fill = 'white';\n (rectAttributes as any).notAdjustPos = true;\n // rectAttributes.globalCompositeOperation = 'source-over';\n\n // first draw group\n borderRect = createGroup(rectAttributes);\n borderRect.name = 'table-border-rect';\n\n // second draw rect\n shadowRect = createRect({\n x: borderLeft / 2,\n y: borderTop / 2,\n width: group.attribute.width,\n height: group.attribute.height,\n fill: 'red',\n cornerRadius: group.attribute.cornerRadius,\n globalCompositeOperation: 'destination-out'\n });\n borderRect.addChild(shadowRect);\n\n // hack for vrender globalCompositeOperation&clip render problem\n const hackRect = createRect({\n x: borderLeft / 2,\n y: borderTop / 2,\n width: group.attribute.width,\n height: group.attribute.height,\n fill: 'transparent',\n pickable: false,\n globalCompositeOperation: 'source-over'\n });\n borderRect.addChild(hackRect);\n } else {\n borderRect = createRect(rectAttributes);\n borderRect.name = 'table-border-rect';\n }\n\n // to be fixed: border index in shadow mode\n if (frameTheme.innerBorder && !hasShadow) {\n group.parent.insertAfter(borderRect, group);\n } else {\n group.parent.insertBefore(borderRect, group);\n }\n (group as any).border = borderRect;\n } else {\n // rectAttributes.x = rectAttributes.lineWidth / 2;\n // rectAttributes.y = rectAttributes.lineWidth / 2;\n rectAttributes.width = group.attribute.width - borderLeft / 2 - borderRight / 2;\n rectAttributes.height = group.attribute.height - borderTop / 2 - borderBottom / 2;\n const borderRect = createRect(rectAttributes);\n borderRect.name = 'border-rect';\n group.addChild(borderRect);\n (group as any).border = borderRect;\n }\n }\n}\n\n/**\n * @description: update frame border stroke atrribute\n * @param {Group} group\n * @param {TableFrameStyle} frameTheme\n * @param {array} strokeArray stroke boolean array\n * @return {*}\n */\nexport function updateFrameBorder(\n group: Group,\n frameTheme: TableFrameStyle | undefined,\n strokeArray?: [boolean, boolean, boolean, boolean] // to do 处理成0b001111形式\n) {\n if (!frameTheme) {\n return;\n }\n const { borderColor } = frameTheme;\n group.border?.setAttribute('stroke', getStroke(borderColor, strokeArray));\n}\n\nexport function getStroke(\n borderColor: string | string[],\n strokeArray: boolean[] | undefined,\n strokeLineWidth?: number | number[]\n) {\n let stroke: boolean | string | (boolean | string)[] = true;\n if ((strokeArray || isArray(strokeLineWidth)) && !isArray(borderColor)) {\n stroke = (strokeArray ?? (strokeLineWidth as number[])).map(stroke => {\n if (stroke) {\n return borderColor;\n }\n return false;\n });\n } else if (strokeArray) {\n stroke = strokeArray;\n } else if (!strokeArray && !isArray(borderColor)) {\n stroke = borderColor;\n } else if (isArray(borderColor)) {\n stroke = true;\n }\n return stroke;\n}\n\n/**\n * @description: update frame border size when group size change\n * @param {Group} group\n * @return {*}\n */\nexport function updateFrameBorderSize(group: Group) {\n if (!group.border) {\n return;\n }\n const borderTop = (group.border.attribute as any).strokeArrayWidth\n ? (group.border.attribute as any).strokeArrayWidth[0]\n : (group.border.attribute.lineWidth as number) ?? 0;\n const borderRight = (group.border.attribute as any).strokeArrayWidth\n ? (group.border.attribute as any).strokeArrayWidth[1]\n : (group.border.attribute.lineWidth as number) ?? 0;\n const borderBottom = (group.border.attribute as any).strokeArrayWidth\n ? (group.border.attribute as any).strokeArrayWidth[2]\n : (group.border.attribute.lineWidth as number) ?? 0;\n const borderLeft = (group.border.attribute as any).strokeArrayWidth\n ? (group.border.attribute as any).strokeArrayWidth[3]\n : (group.border.attribute.lineWidth as number) ?? 0;\n\n group.border.setAttributes({\n width: group.attribute.width - borderLeft / 2 - borderRight / 2,\n height: group.attribute.height - borderTop / 2 - borderBottom / 2\n });\n\n if (group.border.type === 'group') {\n (group.border.firstChild as IRect).setAttributes({\n width: group.attribute.width,\n height: group.attribute.height\n });\n }\n}\n\nexport function updateCornerRadius(table: BaseTableAPI) {\n if (!table.theme.frameStyle.cornerRadius) {\n return;\n }\n const cornerRadius = table.theme.frameStyle.cornerRadius;\n const {\n cornerHeaderGroup,\n colHeaderGroup,\n rowHeaderGroup,\n bodyGroup,\n rightTopCornerGroup,\n leftBottomCornerGroup,\n rightBottomCornerGroup,\n rightFrozenGroup,\n bottomFrozenGroup\n } = table.scenegraph;\n\n // reset corner radius\n cornerHeaderGroup.setAttribute('cornerRadius', 0);\n colHeaderGroup.setAttribute('cornerRadius', 0);\n rowHeaderGroup.setAttribute('cornerRadius', 0);\n bodyGroup.setAttribute('cornerRadius', 0);\n rightTopCornerGroup.setAttribute('cornerRadius', 0);\n leftBottomCornerGroup.setAttribute('cornerRadius', 0);\n rightBottomCornerGroup.setAttribute('cornerRadius', 0);\n rightFrozenGroup.setAttribute('cornerRadius', 0);\n bottomFrozenGroup.setAttribute('cornerRadius', 0);\n\n const cornerRadiusArray = toBoxArray(cornerRadius);\n // left top\n if (cornerHeaderGroup.attribute.width > 0 && cornerHeaderGroup.attribute.height > 0) {\n setCornerRadius(cornerHeaderGroup, [cornerRadiusArray[0], 0, 0, 0]);\n } else if (colHeaderGroup.attribute.height > 0) {\n setCornerRadius(colHeaderGroup, [cornerRadiusArray[0], 0, 0, 0]);\n } else if (rowHeaderGroup.attribute.width > 0) {\n setCornerRadius(rowHeaderGroup, [cornerRadiusArray[0], 0, 0, 0]);\n } else {\n setCornerRadius(bodyGroup, [cornerRadiusArray[0], 0, 0, 0]);\n }\n\n // left bottom\n if (leftBottomCornerGroup.attribute.width > 0 && leftBottomCornerGroup.attribute.height > 0) {\n setCornerRadius(leftBottomCornerGroup, [0, 0, 0, cornerRadiusArray[3]]);\n } else if (bottomFrozenGroup.attribute.height > 0) {\n setCornerRadius(bottomFrozenGroup, [0, 0, 0, cornerRadiusArray[3]]);\n } else if (rowHeaderGroup.attribute.width > 0) {\n setCornerRadius(rowHeaderGroup, [0, 0, 0, cornerRadiusArray[3]]);\n } else {\n setCornerRadius(bodyGroup, [0, 0, 0, cornerRadiusArray[3]]);\n }\n\n // right top\n if (rightTopCornerGroup.attribute.width > 0 && rightTopCornerGroup.attribute.height > 0) {\n setCornerRadius(rightTopCornerGroup, [0, cornerRadiusArray[1], 0, 0]);\n } else if (colHeaderGroup.attribute.height > 0) {\n setCornerRadius(colHeaderGroup, [0, cornerRadiusArray[1], 0, 0]);\n } else if (rightFrozenGroup.attribute.width > 0) {\n setCornerRadius(rightFrozenGroup, [0, cornerRadiusArray[1], 0, 0]);\n } else {\n setCornerRadius(bodyGroup, [0, cornerRadiusArray[1], 0, 0]);\n }\n\n // right bottom\n if (rightBottomCornerGroup.attribute.width > 0 && rightBottomCornerGroup.attribute.height > 0) {\n setCornerRadius(rightBottomCornerGroup, [0, 0, cornerRadiusArray[2], 0]);\n } else if (rightFrozenGroup.attribute.width > 0) {\n setCornerRadius(rightFrozenGroup, [0, 0, cornerRadiusArray[2], 0]);\n } else if (bottomFrozenGroup.attribute.height > 0) {\n setCornerRadius(bottomFrozenGroup, [0, 0, cornerRadiusArray[2], 0]);\n } else {\n setCornerRadius(bodyGroup, [0, 0, cornerRadiusArray[2], 0]);\n }\n}\n\nfunction setCornerRadius(group: Group, cornerRadius: number[]) {\n group.setAttribute('cornerRadius', cornerRadius);\n if (group.border) {\n group.border.setAttribute('cornerRadius', cornerRadius);\n }\n}\n"]}
|
package/cjs/state/sort/index.js
CHANGED
|
@@ -22,8 +22,14 @@ function dealSort(col, row, table, event) {
|
|
|
22
22
|
order: "normal"
|
|
23
23
|
}), tableState.event = event;
|
|
24
24
|
if (table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.SORT_CLICK, tableState).includes(!1)) return;
|
|
25
|
-
table.internalProps.sortState
|
|
26
|
-
(
|
|
25
|
+
let isArraySortState = !1, sortState = table.internalProps.sortState ? Array.isArray(table.internalProps.sortState) && (isArraySortState = !0) ? table.internalProps.sortState : [ table.internalProps.sortState ] : [];
|
|
26
|
+
if (Array.isArray(sortState)) {
|
|
27
|
+
const index = sortState.findIndex((item => item.field === tableState.field));
|
|
28
|
+
index >= 0 ? sortState[index] = tableState : sortState.push(tableState);
|
|
29
|
+
}
|
|
30
|
+
sortState = sortState.filter((item => "normal" !== item.order)), sortState = table.internalProps.multipleSort && (isArraySortState = !0) ? sortState : sortState.splice(-1),
|
|
31
|
+
sortState = isArraySortState && sortState.length ? sortState : sortState[0], table.internalProps.sortState = sortState,
|
|
32
|
+
table.stateManager.setSortState(sortState), (null == headerC ? void 0 : headerC.sort) && executeSort(sortState, table, headerC),
|
|
27
33
|
table.internalProps.useOneRowHeightFillAll = !1, table.internalProps.layoutMap.clearCellRangeMap(),
|
|
28
34
|
table.scenegraph.sortCell();
|
|
29
35
|
const isHasSelected = !!(null === (_a = table.stateManager.select.ranges) || void 0 === _a ? void 0 : _a.length);
|
|
@@ -31,10 +37,15 @@ function dealSort(col, row, table, event) {
|
|
|
31
37
|
}
|
|
32
38
|
|
|
33
39
|
function executeSort(newState, table, headerDefine) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
newState = Array.isArray(newState) || !newState ? newState : [ newState ], table.dataSource.sort((newState || []).map((item => {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
const hd = table.internalProps.layoutMap.headerObjects.find((col => col && col.field === item.field));
|
|
43
|
+
return {
|
|
44
|
+
field: item.field,
|
|
45
|
+
order: item.order || "asc",
|
|
46
|
+
orderFn: "function" == typeof (null === (_a = null == hd ? void 0 : hd.define) || void 0 === _a ? void 0 : _a.sort) ? null === (_b = null == hd ? void 0 : hd.define) || void 0 === _b ? void 0 : _b.sort : util_1.defaultOrderFn
|
|
47
|
+
};
|
|
48
|
+
})));
|
|
38
49
|
}
|
|
39
50
|
|
|
40
51
|
function isTarget(col, row, range1Col, range1Row, table) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/state/sort/index.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,2CAAkD;AAWlD,SAAgB,QAAQ,CAAC,GAAW,EAAE,GAAW,EAAE,KAAmB,EAAE,KAAY;;IAElF,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,UAAqB,CAAC;IAC1B,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,UAAU,EAAE;gBACd,MAAM,GAAG,KAAK,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;aACtD;YACD,MAAM,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7E,IAAI,YAAY,EAAE;gBAChB,MAAM;aACP;SACF;KACF;SAAM;QACL,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,IAAI,UAAU,EAAE;YACd,MAAM,GAAG,KAAK,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;SACtD;QACD,MAAM,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;KAC9E;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAiB,CAAC;IAEhE,IAAI,UAAU,IAAI,YAAY,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAA,EAAE;QAC/C,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;KACzG;SAAM,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE;QAExB,UAAU,GAAG;YACX,KAAK,EAAU,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;YAC7C,KAAK,EAAE,KAAK;SACb,CAAC;KACH;SAAM,IAAI,YAAY,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAA,EAAE;KAE7C;SAAM;QACL,UAAU,GAAG;YACX,KAAK,EAAU,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;YAC7C,KAAK,EAAE,QAAQ;SAChB,CAAC;KACH;IACA,UAA2C,CAAC,KAAK,GAAG,KAAK,CAAC;IAE3D,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC,mCAAgB,CAAC,UAAU,EAAE,UAA0C,CAAC,CAAC;IACtH,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACpC,OAAO;KACR;
|
|
1
|
+
{"version":3,"sources":["../src/state/sort/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport { defaultOrderFn } from '../../tools/util';\nimport type { ColumnDefine, HeaderData, HeaderDefine, ListTableAPI, SortState } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\n/**\n * @description: 执行sort\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nexport function dealSort(col: number, row: number, table: ListTableAPI, event: Event) {\n //是击中的sort按钮才进行排序\n let range1 = null;\n let tableState: SortState;\n let isTargetCell = false;\n //找出当前表头是否在sortState排序规则中\n if (Array.isArray(table.sortState)) {\n for (let i = 0; i < table.sortState.length; i++) {\n tableState = table.sortState[i];\n if (tableState) {\n range1 = table._getHeaderCellBySortState(tableState);\n }\n range1 && (isTargetCell = isTarget(col, row, range1.col, range1.row, table));\n if (isTargetCell) {\n break;\n }\n }\n } else {\n tableState = table.sortState;\n if (tableState) {\n range1 = table._getHeaderCellBySortState(tableState);\n }\n range1 && (isTargetCell = isTarget(col, row, range1.col, range1.row, table));\n }\n\n const headerC = table.getHeaderDefine(col, row) as ColumnDefine;\n //当前排序规则是该表头field 且 表头设置了sort规则 需要转变sort的状态\n if (tableState && isTargetCell && headerC?.sort) {\n tableState.order = tableState.order === 'asc' ? 'desc' : tableState.order === 'desc' ? 'normal' : 'asc';\n } else if (headerC?.sort) {\n //如果当前表头设置了sort 则 转变sort的状态\n tableState = {\n field: <string>table.getHeaderField(col, row),\n order: 'asc'\n };\n } else if (isTargetCell && headerC?.showSort) {\n //当前排序规则是该表头field 且仅为显示showSort无sort 什么也不做\n } else {\n tableState = {\n field: <string>table.getHeaderField(col, row),\n order: 'normal'\n };\n }\n (tableState as SortState & { event: Event }).event = event;\n // 如果用户监听SORT_CLICK事件的回调函数返回false 则不执行内部排序逻辑\n const sortEventReturns = table.fireListeners(TABLE_EVENT_TYPE.SORT_CLICK, tableState as SortState & { event: Event });\n if (sortEventReturns.includes(false)) {\n return;\n }\n let isArraySortState = false;\n let sortState: SortState | SortState[] = table.internalProps.sortState\n ? Array.isArray(table.internalProps.sortState) && (isArraySortState = true)\n ? (table.internalProps.sortState as SortState[])\n : [table.internalProps.sortState as SortState]\n : [];\n if (Array.isArray(sortState)) {\n const index = (sortState as SortState[]).findIndex(item => item.field === tableState.field);\n if (index >= 0) {\n sortState[index] = tableState;\n } else {\n sortState.push(tableState);\n }\n }\n sortState = (sortState as SortState[]).filter(item => item.order !== 'normal');\n sortState = table.internalProps.multipleSort && (isArraySortState = true) ? sortState : sortState.splice(-1);\n sortState = isArraySortState && sortState.length ? (sortState as SortState[]) : (sortState[0] as SortState);\n table.internalProps.sortState = sortState; // 目前不支持多级排序 所以这里 直接赋值为单个sortState TODO优化(如果支持多级排序的话)\n table.stateManager.setSortState(sortState);\n if (headerC?.sort) {\n executeSort(sortState, table, headerC);\n }\n\n // clear cell range cache\n table.internalProps.useOneRowHeightFillAll = false;\n table.internalProps.layoutMap.clearCellRangeMap();\n\n table.scenegraph.sortCell();\n // 排序后,清除选中效果\n const isHasSelected = !!table.stateManager.select.ranges?.length;\n table.stateManager.updateSelectPos(-1, -1);\n table.stateManager.endSelectCells(true, isHasSelected);\n}\n\nfunction executeSort(newState: SortState | SortState[], table: BaseTableAPI, headerDefine: HeaderDefine): void {\n newState = Array.isArray(newState) || !newState ? newState : [newState];\n table.dataSource.sort(\n ((newState || []) as Array<any>).map(item => {\n const hd = table.internalProps.layoutMap.headerObjects.find((col: HeaderData) => col && col.field === item.field);\n return {\n field: item.field,\n order: item.order || 'asc',\n orderFn: typeof hd?.define?.sort === 'function' ? hd?.define?.sort : defaultOrderFn\n };\n })\n );\n}\n\nfunction isTarget(col: number, row: number, range1Col: number, range1Row: number, table: BaseTableAPI): boolean {\n return table._getLayoutCellId(col, row) === table._getLayoutCellId(range1Col, range1Row);\n}\n"]}
|
package/cjs/state/state.d.ts
CHANGED
|
@@ -77,13 +77,13 @@ export declare class StateManager {
|
|
|
77
77
|
highlightIndex: number;
|
|
78
78
|
dropDownMenuHighlight?: DropDownMenuHighlightInfo[];
|
|
79
79
|
};
|
|
80
|
-
sort: {
|
|
80
|
+
sort: Array<{
|
|
81
81
|
col: number;
|
|
82
82
|
row: number;
|
|
83
83
|
field?: string;
|
|
84
84
|
order: SortOrder;
|
|
85
85
|
icon?: Icon;
|
|
86
|
-
}
|
|
86
|
+
}>;
|
|
87
87
|
frozen: {
|
|
88
88
|
col: number;
|
|
89
89
|
icon?: Icon;
|
|
@@ -125,7 +125,7 @@ export declare class StateManager {
|
|
|
125
125
|
setHoverState(): void;
|
|
126
126
|
setSelectState(): void;
|
|
127
127
|
isSelected(col: number, row: number): boolean;
|
|
128
|
-
setSortState(sortState: SortState): void;
|
|
128
|
+
setSortState(sortState: SortState | SortState[]): void;
|
|
129
129
|
setFrozenState(): void;
|
|
130
130
|
updateInteractionState(mode: InteractionState): void;
|
|
131
131
|
updateHoverhighlightScope(mode: HighlightScope): void;
|
|
@@ -170,7 +170,7 @@ export declare class StateManager {
|
|
|
170
170
|
setDropDownMenuHighlight(cells: DropDownMenuHighlightInfo[]): void;
|
|
171
171
|
dropDownMenuIsHighlight(colNow: number, rowNow: number, index: number): boolean;
|
|
172
172
|
triggerSort(col: number, row: number, iconMark: Icon, event: Event): void;
|
|
173
|
-
updateSortState(sortState: SortState): void;
|
|
173
|
+
updateSortState(sortState: SortState[]): void;
|
|
174
174
|
triggerFreeze(col: number, row: number, iconMark: Icon): void;
|
|
175
175
|
updateCursor(mode?: string): void;
|
|
176
176
|
updateDrillState(dimensionKey: string, title: string, drillDown: boolean, drillUp: boolean, col: number, row: number): void;
|
package/cjs/state/state.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.StateManager = void 0;
|
|
6
6
|
|
|
7
|
-
const menu_1 = require("../scenegraph/component/menu"), ts_types_1 = require("../ts-types"), ts_types_2 = require("../ts-types"), check_in_select_1 = require("./common/check-in-select"), update_position_1 = require("./hover/update-position"), frozen_1 = require("./frozen"), sort_1 = require("./sort"), update_position_2 = require("./select/update-position"), helper_1 = require("../tools/helper"), PIVOT_TABLE_EVENT_TYPE_1 = require("../ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE"), TABLE_EVENT_TYPE_1 = require("../core/TABLE_EVENT_TYPE"), vutils_1 = require("@visactor/vutils"), drill_1 = require("./drill"), spark_line_1 = require("./spark-line"), cell_move_1 = require("./cell-move"), icon_1 = require("../scenegraph/utils/icon"), debounce_1 = require("../tools/debounce"), update_resize_column_1 = require("./resize/update-resize-column"), radio_1 = require("./radio/radio"), checkbox_1 = require("./checkbox/checkbox"), update_resize_row_1 = require("./resize/update-resize-row"), delete_select_border_1 = require("../scenegraph/select/delete-select-border");
|
|
7
|
+
const menu_1 = require("../scenegraph/component/menu"), ts_types_1 = require("../ts-types"), ts_types_2 = require("../ts-types"), check_in_select_1 = require("./common/check-in-select"), update_position_1 = require("./hover/update-position"), frozen_1 = require("./frozen"), sort_1 = require("./sort"), update_position_2 = require("./select/update-position"), helper_1 = require("../tools/helper"), PIVOT_TABLE_EVENT_TYPE_1 = require("../ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE"), TABLE_EVENT_TYPE_1 = require("../core/TABLE_EVENT_TYPE"), vutils_1 = require("@visactor/vutils"), drill_1 = require("./drill"), spark_line_1 = require("./spark-line"), cell_move_1 = require("./cell-move"), icon_1 = require("../scenegraph/utils/icon"), debounce_1 = require("../tools/debounce"), update_resize_column_1 = require("./resize/update-resize-column"), radio_1 = require("./radio/radio"), checkbox_1 = require("./checkbox/checkbox"), update_resize_row_1 = require("./resize/update-resize-row"), delete_select_border_1 = require("../scenegraph/select/delete-select-border"), util_1 = require("../tools/util");
|
|
8
8
|
|
|
9
9
|
class StateManager {
|
|
10
10
|
constructor(table) {
|
|
@@ -50,11 +50,11 @@ class StateManager {
|
|
|
50
50
|
bounds: new vutils_1.Bounds,
|
|
51
51
|
highlightIndex: -1,
|
|
52
52
|
dropDownMenuHighlight: []
|
|
53
|
-
}, this.sort = {
|
|
53
|
+
}, this.sort = [ {
|
|
54
54
|
col: -1,
|
|
55
55
|
row: -1,
|
|
56
56
|
order: "normal"
|
|
57
|
-
}, this.frozen = {
|
|
57
|
+
} ], this.frozen = {
|
|
58
58
|
col: -1
|
|
59
59
|
}, this.tablePosition = {
|
|
60
60
|
absoluteX: 0,
|
|
@@ -114,11 +114,11 @@ class StateManager {
|
|
|
114
114
|
bounds: new vutils_1.Bounds,
|
|
115
115
|
highlightIndex: -1,
|
|
116
116
|
dropDownMenuHighlight: []
|
|
117
|
-
}, this.sort = {
|
|
117
|
+
}, this.sort = [ {
|
|
118
118
|
col: -1,
|
|
119
119
|
row: -1,
|
|
120
120
|
order: "normal"
|
|
121
|
-
}, this.frozen = {
|
|
121
|
+
} ], this.frozen = {
|
|
122
122
|
col: -1
|
|
123
123
|
}, this.scroll = {
|
|
124
124
|
horizontalBarPos: 0,
|
|
@@ -164,7 +164,28 @@ class StateManager {
|
|
|
164
164
|
})), seled;
|
|
165
165
|
}
|
|
166
166
|
setSortState(sortState) {
|
|
167
|
-
|
|
167
|
+
const sort = (sortState = !sortState || Array.isArray(sortState) ? sortState : [ sortState ]) && sortState.reduce(((prev, item) => {
|
|
168
|
+
var _a;
|
|
169
|
+
const column = null === (_a = function(columns) {
|
|
170
|
+
const result = [];
|
|
171
|
+
return function flatten(cols, parentStartIndex = 0) {
|
|
172
|
+
cols.forEach((col => {
|
|
173
|
+
var _a;
|
|
174
|
+
const startIndex = null !== (_a = col.startInTotal) && void 0 !== _a ? _a : parentStartIndex;
|
|
175
|
+
col.columns ? flatten(col.columns, startIndex) : result.push(Object.assign(Object.assign({}, col), {
|
|
176
|
+
startIndex: startIndex
|
|
177
|
+
}));
|
|
178
|
+
}));
|
|
179
|
+
}(columns), result;
|
|
180
|
+
}(this.table.internalProps.columns)) || void 0 === _a ? void 0 : _a.find((column => (null == column ? void 0 : column.field) === (null == item ? void 0 : item.field)));
|
|
181
|
+
return prev.push({
|
|
182
|
+
field: item.field,
|
|
183
|
+
order: item.order,
|
|
184
|
+
col: column.startInTotal,
|
|
185
|
+
row: column.level
|
|
186
|
+
}), prev;
|
|
187
|
+
}), []);
|
|
188
|
+
this.sort = sort || [];
|
|
168
189
|
}
|
|
169
190
|
setFrozenState() {
|
|
170
191
|
this.frozen.col = this.table.frozenColCount - 1;
|
|
@@ -545,19 +566,68 @@ class StateManager {
|
|
|
545
566
|
event: event
|
|
546
567
|
});
|
|
547
568
|
}
|
|
548
|
-
const
|
|
549
|
-
(0, sort_1.dealSort)(col, row, this.table, event)
|
|
550
|
-
this.
|
|
551
|
-
this.
|
|
569
|
+
const previousSort = [ ...this.sort ], previousSortItem = this.table.internalProps.multipleSort || !previousSort.length ? null : this.sort[this.sort.length - 1];
|
|
570
|
+
(0, sort_1.dealSort)(col, row, this.table, event);
|
|
571
|
+
const currentSortItem = this.sort.find((item => item.col === col && item.row === row)), oldSortCol = this.table.internalProps.multipleSort || !previousSortItem ? null : previousSortItem.col, oldSortRow = this.table.internalProps.multipleSort || !previousSortItem ? null : previousSortItem.row, currentSortItemIndex = previousSort.findIndex((item => item.col === col && item.row === row));
|
|
572
|
+
currentSortItemIndex >= 0 && previousSort.splice(currentSortItemIndex, 1), this.table.scenegraph.updateSortIcon({
|
|
573
|
+
col: col,
|
|
574
|
+
row: row,
|
|
575
|
+
iconMark: iconMark,
|
|
576
|
+
order: null == currentSortItem ? void 0 : currentSortItem.order,
|
|
577
|
+
oldSortCol: oldSortCol,
|
|
578
|
+
oldSortRow: oldSortRow,
|
|
579
|
+
oldIconMark: null == previousSortItem ? void 0 : previousSortItem.icon
|
|
580
|
+
}), currentSortItem && (currentSortItem.icon = iconMark), this.table.internalProps.multipleSort || previousSort.forEach((sortItem => {
|
|
581
|
+
this.table.scenegraph.updateSortIcon({
|
|
582
|
+
col: null,
|
|
583
|
+
row: null,
|
|
584
|
+
iconMark: null,
|
|
585
|
+
order: "normal",
|
|
586
|
+
oldSortCol: sortItem.col,
|
|
587
|
+
oldSortRow: sortItem.row,
|
|
588
|
+
oldIconMark: null
|
|
589
|
+
});
|
|
590
|
+
}));
|
|
552
591
|
}
|
|
553
592
|
updateSortState(sortState) {
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
593
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
594
|
+
sortState = Array.isArray(sortState) ? sortState : [ sortState ];
|
|
595
|
+
for (let index = 0; index < sortState.length; index++) {
|
|
596
|
+
if (sortState[index].field === (null === (_a = this.sort[index]) || void 0 === _a ? void 0 : _a.field) && sortState[sortState.length - 1].order === (null === (_b = this.sort[index]) || void 0 === _b ? void 0 : _b.order)) return;
|
|
597
|
+
const oldSortCol = this.table.internalProps.multipleSort ? null : (null === (_c = this.sort[index]) || void 0 === _c ? void 0 : _c.col) || null, oldSortRow = this.table.internalProps.multipleSort ? null : (null === (_d = this.sort[index]) || void 0 === _d ? void 0 : _d.row) || null;
|
|
598
|
+
"asc" === (null === (_e = this.sort[index]) || void 0 === _e ? void 0 : _e.order) || (null === (_f = this.sort[index]) || void 0 === _f || _f.order);
|
|
599
|
+
this.setSortState(sortState);
|
|
600
|
+
const cellAddress = this.table.internalProps.layoutMap.getHeaderCellAddressByField(sortState[index].field);
|
|
601
|
+
this.sort[index].col = cellAddress.col, this.sort[index].row = cellAddress.row;
|
|
602
|
+
const cellGroup = this.table.scenegraph.getCell(this.sort[index].col, this.sort[index].row);
|
|
603
|
+
let iconMark;
|
|
604
|
+
(0, util_1.traverseObject)(cellGroup, "children", (mark => "sort" === mark.attribute.funcType && (iconMark = mark,
|
|
605
|
+
!0))), this.table.scenegraph.updateSortIcon({
|
|
606
|
+
col: this.sort[index].col,
|
|
607
|
+
row: this.sort[index].row,
|
|
608
|
+
iconMark: iconMark,
|
|
609
|
+
order: this.sort[index].order,
|
|
610
|
+
oldSortCol: oldSortCol,
|
|
611
|
+
oldSortRow: oldSortRow,
|
|
612
|
+
oldIconMark: null === (_g = this.sort[index]) || void 0 === _g ? void 0 : _g.icon
|
|
613
|
+
});
|
|
614
|
+
}
|
|
615
|
+
const normalHeaders = [];
|
|
616
|
+
this.table.internalProps.layoutMap.columnTree.tree.children.forEach((item => {
|
|
617
|
+
sortState.some((state => state.field === item.field)) || normalHeaders.push(item);
|
|
618
|
+
}));
|
|
619
|
+
for (let index = 0; index < normalHeaders.length; index++) {
|
|
620
|
+
const column = normalHeaders[index];
|
|
621
|
+
this.table.scenegraph.updateSortIcon({
|
|
622
|
+
col: null,
|
|
623
|
+
row: null,
|
|
624
|
+
iconMark: null,
|
|
625
|
+
order: null,
|
|
626
|
+
oldSortCol: column.startInTotal,
|
|
627
|
+
oldSortRow: column.level,
|
|
628
|
+
oldIconMark: null
|
|
629
|
+
});
|
|
630
|
+
}
|
|
561
631
|
}
|
|
562
632
|
triggerFreeze(col, row, iconMark) {
|
|
563
633
|
this.table.isPivotTable() || this.table.transpose || ((0, frozen_1.dealFreeze)(col, row, this.table),
|