@visactor/vtable 0.20.4-alpha.2 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/ListTable.d.ts +9 -2
- package/cjs/ListTable.js +25 -9
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.d.ts +7 -1
- package/cjs/PivotChart.js +7 -7
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable.d.ts +9 -2
- package/cjs/PivotTable.js +26 -11
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/body-helper/style/Style.d.ts +3 -0
- package/cjs/body-helper/style/Style.js +16 -9
- package/cjs/body-helper/style/Style.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +16 -2
- package/cjs/core/BaseTable.js +18 -10
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/tableHelper.js +3 -1
- package/cjs/core/tableHelper.js.map +1 -1
- package/cjs/event/listener/container-dom.js +59 -13
- package/cjs/event/listener/container-dom.js.map +1 -1
- package/cjs/event/listener/table-group.js +2 -1
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/header-helper/style/Style.d.ts +3 -0
- package/cjs/header-helper/style/Style.js +15 -8
- package/cjs/header-helper/style/Style.js.map +1 -1
- package/cjs/index.d.ts +3 -2
- package/cjs/index.js +16 -2
- package/cjs/index.js.map +1 -1
- package/cjs/layout/pivot-header-layout.d.ts +3 -2
- package/cjs/layout/pivot-header-layout.js +24 -18
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/layout/row-height-map.d.ts +1 -0
- package/cjs/layout/row-height-map.js +25 -1
- package/cjs/layout/row-height-map.js.map +1 -1
- package/cjs/layout/simple-header-layout.d.ts +3 -2
- package/cjs/layout/simple-header-layout.js +16 -12
- package/cjs/layout/simple-header-layout.js.map +1 -1
- package/cjs/plugins/custom-cell-style.d.ts +19 -0
- package/cjs/plugins/custom-cell-style.js +63 -0
- package/cjs/plugins/custom-cell-style.js.map +1 -0
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +29 -7
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +9 -2
- package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +11 -4
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +22 -19
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +21 -18
- package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js +7 -7
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js +21 -18
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js +11 -10
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js +7 -7
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/default-width-height.d.ts +3 -0
- package/cjs/scenegraph/group-creater/progress/default-width-height.js +24 -0
- package/cjs/scenegraph/group-creater/progress/default-width-height.js.map +1 -0
- package/cjs/scenegraph/group-creater/progress/proxy.d.ts +8 -4
- package/cjs/scenegraph/group-creater/progress/proxy.js +50 -10
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.d.ts +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +14 -16
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.d.ts +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +28 -30
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
- package/cjs/scenegraph/layout/compute-row-height.js +3 -2
- package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
- package/cjs/scenegraph/layout/move-cell.d.ts +1 -2
- package/cjs/scenegraph/layout/move-cell.js +3 -16
- package/cjs/scenegraph/layout/move-cell.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +4 -4
- package/cjs/scenegraph/scenegraph.js +13 -9
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/stick-text/index.js +1 -1
- package/cjs/scenegraph/stick-text/index.js.map +1 -1
- package/cjs/scenegraph/utils/cell-border-stroke-width.d.ts +3 -0
- package/cjs/scenegraph/utils/cell-border-stroke-width.js +16 -0
- package/cjs/scenegraph/utils/cell-border-stroke-width.js.map +1 -0
- package/cjs/scenegraph/utils/get-prop.js +3 -3
- package/cjs/scenegraph/utils/get-prop.js.map +1 -1
- package/cjs/scenegraph/utils/text-icon-layout.js +9 -3
- package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
- package/cjs/scenegraph/utils/text-measure.d.ts +4 -2
- package/cjs/scenegraph/utils/text-measure.js +20 -5
- package/cjs/scenegraph/utils/text-measure.js.map +1 -1
- package/cjs/state/cell-move/index.js +6 -6
- package/cjs/state/cell-move/index.js.map +1 -1
- package/cjs/state/state.js +2 -2
- package/cjs/state/state.js.map +1 -1
- package/cjs/themes/ARCO.js +2 -1
- package/cjs/themes/theme.d.ts +3 -0
- package/cjs/themes/theme.js +21 -1
- package/cjs/themes/theme.js.map +1 -1
- package/cjs/tools/NumberMap.d.ts +1 -0
- package/cjs/tools/NumberMap.js +21 -0
- package/cjs/tools/NumberMap.js.map +1 -1
- package/cjs/tools/isx.d.ts +1 -1
- package/cjs/tools/util.d.ts +1 -1
- package/cjs/ts-types/base-table.d.ts +17 -2
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/column/style.d.ts +1 -0
- package/cjs/ts-types/column/style.js.map +1 -1
- package/cjs/ts-types/common.d.ts +14 -2
- package/cjs/ts-types/common.js.map +1 -1
- package/cjs/ts-types/customElement.d.ts +2 -0
- package/cjs/ts-types/customElement.js.map +1 -1
- package/cjs/ts-types/style-define.d.ts +2 -0
- package/cjs/ts-types/style-define.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +1 -1
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/ts-types/theme.d.ts +3 -0
- package/cjs/ts-types/theme.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +3327 -1273
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.d.ts +9 -2
- package/es/ListTable.js +25 -9
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.d.ts +7 -1
- package/es/PivotChart.js +7 -7
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable.d.ts +9 -2
- package/es/PivotTable.js +27 -12
- package/es/PivotTable.js.map +1 -1
- package/es/body-helper/style/Style.d.ts +3 -0
- package/es/body-helper/style/Style.js +16 -9
- package/es/body-helper/style/Style.js.map +1 -1
- package/es/core/BaseTable.d.ts +16 -2
- package/es/core/BaseTable.js +19 -9
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/tableHelper.js +3 -1
- package/es/core/tableHelper.js.map +1 -1
- package/es/event/listener/container-dom.js +58 -14
- package/es/event/listener/container-dom.js.map +1 -1
- package/es/event/listener/table-group.js +1 -1
- package/es/event/listener/table-group.js.map +1 -1
- package/es/header-helper/style/Style.d.ts +3 -0
- package/es/header-helper/style/Style.js +15 -8
- package/es/header-helper/style/Style.js.map +1 -1
- package/es/index.d.ts +3 -2
- package/es/index.js +4 -2
- package/es/index.js.map +1 -1
- package/es/layout/pivot-header-layout.d.ts +3 -2
- package/es/layout/pivot-header-layout.js +24 -18
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/layout/row-height-map.d.ts +1 -0
- package/es/layout/row-height-map.js +25 -1
- package/es/layout/row-height-map.js.map +1 -1
- package/es/layout/simple-header-layout.d.ts +3 -2
- package/es/layout/simple-header-layout.js +16 -12
- package/es/layout/simple-header-layout.js.map +1 -1
- package/es/plugins/custom-cell-style.d.ts +19 -0
- package/es/plugins/custom-cell-style.js +55 -0
- package/es/plugins/custom-cell-style.js.map +1 -0
- package/es/scenegraph/graphic/contributions/group-contribution-render.js +29 -6
- package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/es/scenegraph/graphic/contributions/rect-contribution-render.js +9 -2
- package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +11 -4
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.js +23 -18
- package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +22 -17
- package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/image-cell.js +8 -6
- package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js +22 -17
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/text-cell.js +11 -9
- package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/video-cell.js +8 -6
- package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
- package/es/scenegraph/group-creater/progress/default-width-height.d.ts +3 -0
- package/es/scenegraph/group-creater/progress/default-width-height.js +18 -0
- package/es/scenegraph/group-creater/progress/default-width-height.js.map +1 -0
- package/es/scenegraph/group-creater/progress/proxy.d.ts +8 -4
- package/es/scenegraph/group-creater/progress/proxy.js +51 -11
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.d.ts +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +14 -16
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.d.ts +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +28 -31
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js +1 -1
- package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
- package/es/scenegraph/layout/compute-row-height.js +3 -1
- package/es/scenegraph/layout/compute-row-height.js.map +1 -1
- package/es/scenegraph/layout/move-cell.d.ts +1 -2
- package/es/scenegraph/layout/move-cell.js +3 -16
- package/es/scenegraph/layout/move-cell.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +4 -4
- package/es/scenegraph/scenegraph.js +13 -9
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/stick-text/index.js +1 -1
- package/es/scenegraph/stick-text/index.js.map +1 -1
- package/es/scenegraph/utils/cell-border-stroke-width.d.ts +3 -0
- package/es/scenegraph/utils/cell-border-stroke-width.js +10 -0
- package/es/scenegraph/utils/cell-border-stroke-width.js.map +1 -0
- package/es/scenegraph/utils/get-prop.js +3 -3
- package/es/scenegraph/utils/get-prop.js.map +1 -1
- package/es/scenegraph/utils/text-icon-layout.js +9 -3
- package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
- package/es/scenegraph/utils/text-measure.d.ts +4 -2
- package/es/scenegraph/utils/text-measure.js +19 -5
- package/es/scenegraph/utils/text-measure.js.map +1 -1
- package/es/state/cell-move/index.js +6 -6
- package/es/state/cell-move/index.js.map +1 -1
- package/es/state/state.js +2 -2
- package/es/state/state.js.map +1 -1
- package/es/themes/ARCO.js +2 -1
- package/es/themes/theme.d.ts +3 -0
- package/es/themes/theme.js +21 -1
- package/es/themes/theme.js.map +1 -1
- package/es/tools/NumberMap.d.ts +1 -0
- package/es/tools/NumberMap.js +21 -0
- package/es/tools/NumberMap.js.map +1 -1
- package/es/tools/isx.d.ts +1 -1
- package/es/tools/util.d.ts +1 -1
- package/es/ts-types/base-table.d.ts +17 -2
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/column/style.d.ts +1 -0
- package/es/ts-types/column/style.js.map +1 -1
- package/es/ts-types/common.d.ts +14 -2
- package/es/ts-types/common.js.map +1 -1
- package/es/ts-types/customElement.d.ts +2 -0
- package/es/ts-types/customElement.js.map +1 -1
- package/es/ts-types/style-define.d.ts +2 -0
- package/es/ts-types/style-define.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +1 -1
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/ts-types/theme.d.ts +3 -0
- package/es/ts-types/theme.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +6 -6
- package/cjs/scenegraph/component/menu.d.ts +0 -41
- package/es/scenegraph/component/menu.d.ts +0 -41
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/group-creater/cell-type/image-cell.ts"],"names":[],"mappings":"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","file":"image-cell.js","sourcesContent":["// @ts-nocheck\n/* eslint-disable no-undef */\nimport type { IImage, Image, IThemeSpec } from './../../../vrender';\nimport { createImage } from './../../../vrender';\nimport type { BaseTableAPI } from '../../../ts-types';\nimport * as icons from '../../../icons';\nimport { Group } from '../../graphic/group';\nimport { calcKeepAspectRatioSize } from '../../utils/keep-aspect-ratio';\nimport { calcStartPosition } from '../../utils/cell-pos';\nimport type { Scenegraph } from '../../scenegraph';\nimport { getProp, getFunctionalProp } from '../../utils/get-prop';\nimport { isValid } from '@visactor/vutils';\nimport { getQuadProps } from '../../utils/padding';\n\nexport function createImageCellGroup(\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n keepAspectRatio: boolean,\n imageAutoSizing: boolean,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n // const margin = getProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n if (cellTheme?.text?.textAlign) {\n textAlign = cellTheme?.text?.textAlign;\n }\n if (cellTheme?.text?.textBaseline) {\n textBaseline = cellTheme?.text?.textBaseline;\n }\n\n // cell\n const cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // childrenPickable: false,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n\n lineCap: 'square',\n\n clip: true,\n\n cornerRadius: cellTheme.group.cornerRadius\n });\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n // columnGroup?.addChild(cellGroup);\n columnGroup?.addCellGroup(cellGroup);\n\n // image\n const value = table.getCellValue(col, row);\n const image: IImage = createImage({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[0] - padding[2],\n image: value, //?? (regedIcons.damage_pic as any).svg,\n cursor: 'pointer' as Cursor\n });\n image.name = 'image';\n image.keepAspectRatio = keepAspectRatio;\n if (keepAspectRatio || imageAutoSizing) {\n if (\n image.resources &&\n image.resources.has(image.attribute.image) &&\n image.resources.get(image.attribute.image).state === 'success'\n ) {\n setTimeout(() => {\n updateAutoSizingAndKeepAspectRatio(\n imageAutoSizing,\n keepAspectRatio,\n padding,\n textAlign,\n textBaseline,\n image,\n cellGroup,\n table\n );\n }, 0);\n } else {\n image.successCallback = () => {\n updateAutoSizingAndKeepAspectRatio(\n imageAutoSizing,\n keepAspectRatio,\n padding,\n textAlign,\n textBaseline,\n image,\n cellGroup,\n table\n );\n table.scenegraph.updateNextFrame();\n };\n }\n } else {\n if (\n image.resources &&\n image.resources.has(image.attribute.image) &&\n image.resources.get(image.attribute.image).state === 'success'\n ) {\n updateImageCellContentWhileResize(cellGroup, col, row, table);\n } else {\n image.successCallback = () => {\n updateImageCellContentWhileResize(cellGroup, col, row, table);\n };\n }\n }\n (image as any).failCallback = () => {\n const regedIcons = icons.get();\n // image.setAttribute('image', (regedIcons.damage_pic as any).svg);\n (image as any).image = (regedIcons.damage_pic as any).svg;\n };\n cellGroup.appendChild(image);\n\n return cellGroup;\n}\n\n/**\n * 调整某个图片资源所在行列的行高列宽 之后重绘\n * @param col\n * @param row\n * @param img\n * @param table\n * @returns 行高或者列宽是否进行了调整\n */\nexport function _adjustWidthHeight(\n col: number,\n row: number,\n // img: HTMLImageElement,\n width: number,\n height: number,\n scene: Scenegraph,\n padding: [number, number, number, number],\n cellGroup: Group\n): boolean {\n // const { width, height } = img as any;\n // const currentContext = context.toCurrentContext();\n\n let needInvalidate = false;\n let targetWidth: number = null;\n let targetHeight: number = null;\n // const cellGroup = scene.getCell(col, row, true);\n const { width: cellWidth, height: cellHeight, isMerge } = getCellRange(cellGroup, scene.table);\n\n if (cellWidth < width + padding[1] + padding[3]) {\n targetWidth = width + padding[1] + padding[3];\n needInvalidate = true;\n }\n if (cellHeight < height + padding[2] + padding[0]) {\n targetHeight = height + padding[2] + padding[0];\n needInvalidate = true;\n }\n if (needInvalidate) {\n if (typeof targetWidth === 'number') {\n // table.setColWidth(col, targetWidth, true);\n if (isMerge) {\n for (let col = cellGroup.mergeStartCol; col <= cellGroup.mergeEndCol; col++) {\n scene.setColWidth(col, targetWidth / (cellGroup.mergeEndCol - cellGroup.mergeStartCol + 1));\n }\n } else {\n scene.setColWidth(col, targetWidth);\n }\n }\n if (typeof targetHeight === 'number') {\n // table.setRowHeight(row, targetHeight, true);\n if (isMerge) {\n for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {\n scene.setRowHeight(row, targetHeight / (cellGroup.mergeEndRow - cellGroup.mergeStartRow + 1));\n }\n } else {\n scene.setRowHeight(row, targetHeight);\n }\n }\n // table.updateCanvasScroll();\n // // table.throttleInvalidate(); // 这里会造成每一张图加载后就重绘 造成多次绘制问题!节流绘制\n // table.invalidate(); //节流绘制改回及时绘制 节流绘制在图片加载过程中的效果不太好\n\n scene.component.updateScrollBar();\n // scene.updateNextFrame();\n return true;\n }\n return false;\n}\n\nexport function updateImageCellContentWhileResize(cellGroup: Group, col: number, row: number, table: BaseTableAPI) {\n const image = cellGroup.getChildByName('image') as Image;\n if (!image) {\n return;\n }\n const originImage =\n (typeof image.attribute.image !== 'string' && image.attribute.image) ||\n image.resources?.get(image.attribute.image).data;\n\n if (!originImage) {\n return;\n }\n\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const textAlign = getProp('textAlign', headerStyle, col, row, table) ?? 'left';\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table) ?? 'middle';\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table)) ?? [0, 0, 0, 0];\n\n if (image.keepAspectRatio) {\n const { width: cellWidth, height: cellHeight } = getCellRange(cellGroup, table);\n\n const { width: imageWidth, height: imageHeight } = calcKeepAspectRatioSize(\n originImage.width || originImage.videoWidth,\n originImage.height || originImage.videoHeight,\n // cellGroup.attribute.width - (padding[1] + padding[3]),\n // cellGroup.attribute.height - (padding[0] + padding[2])\n cellWidth - (padding[1] + padding[3]),\n cellHeight - (padding[0] + padding[2])\n );\n\n const pos = calcStartPosition(\n 0,\n 0,\n // cellGroup.attribute.width,\n // cellGroup.attribute.height,\n cellWidth,\n cellHeight,\n imageWidth,\n imageHeight,\n textAlign,\n textBaseline,\n padding\n );\n\n image.setAttributes({\n x: pos.x,\n y: pos.y,\n width: imageWidth,\n height: imageHeight\n });\n } else {\n const { width: cellWidth, height: cellHeight } = getCellRange(cellGroup, table);\n\n image.setAttributes({\n x: padding[3],\n y: padding[0],\n // width: cellGroup.attribute.width - padding[1] - padding[3],\n // height: cellGroup.attribute.height - padding[0] - padding[2]\n width: cellWidth - padding[1] - padding[3],\n height: cellHeight - padding[0] - padding[2]\n });\n }\n\n // update video play icon\n const playIcon = cellGroup.getChildByName('play-icon');\n if (playIcon) {\n const left = 0;\n const top = 0;\n // const width = cellGroup.attribute.width;\n // const height = cellGroup.attribute.height;\n const { width, height } = getCellRange(cellGroup, table);\n const iconSize = Math.floor(Math.min(width - padding[1] - padding[3], height - padding[2] - padding[0]) / 2);\n const anchorX =\n left + (width > image.attribute.width ? image.attribute.x - left + image.attribute.width / 2 : width / 2);\n const anchorY =\n top + (height > image.attribute.height ? image.attribute.y - top + image.attribute.height / 2 : height / 2);\n\n playIcon.setAttributes({\n x: anchorX - iconSize / 2,\n y: anchorY - iconSize / 2,\n width: iconSize,\n height: iconSize\n });\n }\n}\n\nfunction getCellRange(cellGroup: Group, table: BaseTableAPI) {\n if (\n isValid(cellGroup.mergeStartCol) &&\n isValid(cellGroup.mergeEndCol) &&\n isValid(cellGroup.mergeStartRow) &&\n isValid(cellGroup.mergeEndRow)\n ) {\n return {\n width: table.getColsWidth(cellGroup.mergeStartCol, cellGroup.mergeEndCol),\n height: table.getRowsHeight(cellGroup.mergeStartRow, cellGroup.mergeEndRow),\n isMerge: true\n };\n }\n return {\n width: cellGroup.attribute.width,\n height: cellGroup.attribute.height,\n isMerge: false\n };\n}\n\nfunction updateImageDxDy(startCol, endCol, startRow, endRow, table) {\n for (let col = startCol; col <= endCol; col++) {\n for (let row = startRow; row <= endRow; row++) {\n const cellGroup = table.scenegraph.getCell(col, row);\n if (cellGroup) {\n const image = cellGroup.getChildByName('image');\n if (image) {\n image.setAttributes({\n dx: -table.getColsWidth(cellGroup.mergeStartCol, col - 1),\n dy: -table.getRowsHeight(cellGroup.mergeStartRow, row - 1)\n });\n }\n }\n }\n }\n}\n\nfunction updateAutoSizingAndKeepAspectRatio(\n imageAutoSizing: boolean,\n keepAspectRatio: boolean,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n image: Image,\n cellGroup: Group,\n table: BaseTableAPI\n) {\n const originImage = image.resources.get(image.attribute.image).data;\n const { col, row } = cellGroup;\n\n if (imageAutoSizing && !isDamagePic(image)) {\n _adjustWidthHeight(\n col,\n row,\n (originImage as HTMLImageElement).width,\n (originImage as HTMLImageElement).height,\n table.scenegraph,\n padding,\n cellGroup\n );\n }\n if (keepAspectRatio || isDamagePic(image)) {\n const { width: cellWidth, height: cellHeight, isMerge } = getCellRange(cellGroup, table);\n\n const { width: imageWidth, height: imageHeight } = calcKeepAspectRatioSize(\n originImage.width,\n originImage.height,\n // cellGroup.attribute.width - padding[1] - padding[3],\n // cellGroup.attribute.height - padding[0] - padding[2]\n cellWidth - padding[1] - padding[3],\n cellHeight - padding[0] - padding[2]\n );\n\n // const left = 0;\n // const top = 0;\n const pos = calcStartPosition(\n 0,\n 0,\n // cellGroup.attribute.width,\n // cellGroup.attribute.height,\n cellWidth,\n cellHeight,\n imageWidth,\n imageHeight,\n textAlign,\n textBaseline,\n padding\n );\n\n image.setAttributes({\n x: pos.x,\n y: pos.y,\n width: imageWidth,\n height: imageHeight\n // dx: isMerge ? -table.getColsWidth(cellGroup.mergeStartCol, col - 1) : 0,\n // dy: isMerge ? -table.getRowsHeight(cellGroup.mergeStartRow, row - 1) : 0\n });\n\n if (isMerge) {\n updateImageDxDy(\n cellGroup.mergeStartCol,\n cellGroup.mergeEndCol,\n cellGroup.mergeStartRow,\n cellGroup.mergeEndRow,\n table\n );\n }\n }\n}\n\nfunction isDamagePic(image: IImage) {\n const regedIcons = icons.get();\n return image.attribute.image === (regedIcons.damage_pic as any).svg;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/group-creater/cell-type/image-cell.ts"],"names":[],"mappings":"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","file":"image-cell.js","sourcesContent":["// @ts-nocheck\n/* eslint-disable no-undef */\nimport type { IImage, Image, IThemeSpec } from './../../../vrender';\nimport { createImage } from './../../../vrender';\nimport type { BaseTableAPI } from '../../../ts-types';\nimport * as icons from '../../../icons';\nimport { Group } from '../../graphic/group';\nimport { calcKeepAspectRatioSize } from '../../utils/keep-aspect-ratio';\nimport { calcStartPosition } from '../../utils/cell-pos';\nimport type { Scenegraph } from '../../scenegraph';\nimport { getProp, getFunctionalProp } from '../../utils/get-prop';\nimport { isValid } from '@visactor/vutils';\nimport { getQuadProps } from '../../utils/padding';\nimport { getCellBorderStrokeWidth } from '../../utils/cell-border-stroke-width';\n\nexport function createImageCellGroup(\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n keepAspectRatio: boolean,\n imageAutoSizing: boolean,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n // const margin = getProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n if (cellTheme?.text?.textAlign) {\n textAlign = cellTheme?.text?.textAlign;\n }\n if (cellTheme?.text?.textBaseline) {\n textBaseline = cellTheme?.text?.textBaseline;\n }\n\n // cell\n const strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);\n const cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // childrenPickable: false,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n\n lineCap: 'square',\n\n clip: true,\n\n cornerRadius: cellTheme.group.cornerRadius\n });\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n // columnGroup?.addChild(cellGroup);\n columnGroup?.addCellGroup(cellGroup);\n\n // image\n const value = table.getCellValue(col, row);\n const image: IImage = createImage({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[0] - padding[2],\n image: value, //?? (regedIcons.damage_pic as any).svg,\n cursor: 'pointer' as Cursor\n });\n image.name = 'image';\n image.keepAspectRatio = keepAspectRatio;\n if (keepAspectRatio || imageAutoSizing) {\n if (\n image.resources &&\n image.resources.has(image.attribute.image) &&\n image.resources.get(image.attribute.image).state === 'success'\n ) {\n setTimeout(() => {\n updateAutoSizingAndKeepAspectRatio(\n imageAutoSizing,\n keepAspectRatio,\n padding,\n textAlign,\n textBaseline,\n image,\n cellGroup,\n table\n );\n }, 0);\n } else {\n image.successCallback = () => {\n updateAutoSizingAndKeepAspectRatio(\n imageAutoSizing,\n keepAspectRatio,\n padding,\n textAlign,\n textBaseline,\n image,\n cellGroup,\n table\n );\n table.scenegraph.updateNextFrame();\n };\n }\n } else {\n if (\n image.resources &&\n image.resources.has(image.attribute.image) &&\n image.resources.get(image.attribute.image).state === 'success'\n ) {\n updateImageCellContentWhileResize(cellGroup, col, row, table);\n } else {\n image.successCallback = () => {\n updateImageCellContentWhileResize(cellGroup, col, row, table);\n };\n }\n }\n (image as any).failCallback = () => {\n const regedIcons = icons.get();\n // image.setAttribute('image', (regedIcons.damage_pic as any).svg);\n (image as any).image = (regedIcons.damage_pic as any).svg;\n };\n cellGroup.appendChild(image);\n\n return cellGroup;\n}\n\n/**\n * 调整某个图片资源所在行列的行高列宽 之后重绘\n * @param col\n * @param row\n * @param img\n * @param table\n * @returns 行高或者列宽是否进行了调整\n */\nexport function _adjustWidthHeight(\n col: number,\n row: number,\n // img: HTMLImageElement,\n width: number,\n height: number,\n scene: Scenegraph,\n padding: [number, number, number, number],\n cellGroup: Group\n): boolean {\n // const { width, height } = img as any;\n // const currentContext = context.toCurrentContext();\n\n let needInvalidate = false;\n let targetWidth: number = null;\n let targetHeight: number = null;\n // const cellGroup = scene.getCell(col, row, true);\n const { width: cellWidth, height: cellHeight, isMerge } = getCellRange(cellGroup, scene.table);\n\n if (cellWidth < width + padding[1] + padding[3]) {\n targetWidth = width + padding[1] + padding[3];\n needInvalidate = true;\n }\n if (cellHeight < height + padding[2] + padding[0]) {\n targetHeight = height + padding[2] + padding[0];\n needInvalidate = true;\n }\n if (needInvalidate) {\n if (typeof targetWidth === 'number') {\n // table.setColWidth(col, targetWidth, true);\n if (isMerge) {\n for (let col = cellGroup.mergeStartCol; col <= cellGroup.mergeEndCol; col++) {\n scene.setColWidth(col, targetWidth / (cellGroup.mergeEndCol - cellGroup.mergeStartCol + 1));\n }\n } else {\n scene.setColWidth(col, targetWidth);\n }\n }\n if (typeof targetHeight === 'number') {\n // table.setRowHeight(row, targetHeight, true);\n if (isMerge) {\n for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {\n scene.setRowHeight(row, targetHeight / (cellGroup.mergeEndRow - cellGroup.mergeStartRow + 1));\n }\n } else {\n scene.setRowHeight(row, targetHeight);\n }\n }\n // table.updateCanvasScroll();\n // // table.throttleInvalidate(); // 这里会造成每一张图加载后就重绘 造成多次绘制问题!节流绘制\n // table.invalidate(); //节流绘制改回及时绘制 节流绘制在图片加载过程中的效果不太好\n\n scene.component.updateScrollBar();\n // scene.updateNextFrame();\n return true;\n }\n return false;\n}\n\nexport function updateImageCellContentWhileResize(cellGroup: Group, col: number, row: number, table: BaseTableAPI) {\n const image = cellGroup.getChildByName('image') as Image;\n if (!image) {\n return;\n }\n const originImage =\n (typeof image.attribute.image !== 'string' && image.attribute.image) ||\n image.resources?.get(image.attribute.image).data;\n\n if (!originImage) {\n return;\n }\n\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const textAlign = getProp('textAlign', headerStyle, col, row, table) ?? 'left';\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table) ?? 'middle';\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table)) ?? [0, 0, 0, 0];\n\n if (image.keepAspectRatio) {\n const { width: cellWidth, height: cellHeight } = getCellRange(cellGroup, table);\n\n const { width: imageWidth, height: imageHeight } = calcKeepAspectRatioSize(\n originImage.width || originImage.videoWidth,\n originImage.height || originImage.videoHeight,\n // cellGroup.attribute.width - (padding[1] + padding[3]),\n // cellGroup.attribute.height - (padding[0] + padding[2])\n cellWidth - (padding[1] + padding[3]),\n cellHeight - (padding[0] + padding[2])\n );\n\n const pos = calcStartPosition(\n 0,\n 0,\n // cellGroup.attribute.width,\n // cellGroup.attribute.height,\n cellWidth,\n cellHeight,\n imageWidth,\n imageHeight,\n textAlign,\n textBaseline,\n padding\n );\n\n image.setAttributes({\n x: pos.x,\n y: pos.y,\n width: imageWidth,\n height: imageHeight\n });\n } else {\n const { width: cellWidth, height: cellHeight } = getCellRange(cellGroup, table);\n\n image.setAttributes({\n x: padding[3],\n y: padding[0],\n // width: cellGroup.attribute.width - padding[1] - padding[3],\n // height: cellGroup.attribute.height - padding[0] - padding[2]\n width: cellWidth - padding[1] - padding[3],\n height: cellHeight - padding[0] - padding[2]\n });\n }\n\n // update video play icon\n const playIcon = cellGroup.getChildByName('play-icon');\n if (playIcon) {\n const left = 0;\n const top = 0;\n // const width = cellGroup.attribute.width;\n // const height = cellGroup.attribute.height;\n const { width, height } = getCellRange(cellGroup, table);\n const iconSize = Math.floor(Math.min(width - padding[1] - padding[3], height - padding[2] - padding[0]) / 2);\n const anchorX =\n left + (width > image.attribute.width ? image.attribute.x - left + image.attribute.width / 2 : width / 2);\n const anchorY =\n top + (height > image.attribute.height ? image.attribute.y - top + image.attribute.height / 2 : height / 2);\n\n playIcon.setAttributes({\n x: anchorX - iconSize / 2,\n y: anchorY - iconSize / 2,\n width: iconSize,\n height: iconSize\n });\n }\n}\n\nfunction getCellRange(cellGroup: Group, table: BaseTableAPI) {\n if (\n isValid(cellGroup.mergeStartCol) &&\n isValid(cellGroup.mergeEndCol) &&\n isValid(cellGroup.mergeStartRow) &&\n isValid(cellGroup.mergeEndRow)\n ) {\n return {\n width: table.getColsWidth(cellGroup.mergeStartCol, cellGroup.mergeEndCol),\n height: table.getRowsHeight(cellGroup.mergeStartRow, cellGroup.mergeEndRow),\n isMerge: true\n };\n }\n return {\n width: cellGroup.attribute.width,\n height: cellGroup.attribute.height,\n isMerge: false\n };\n}\n\nfunction updateImageDxDy(startCol, endCol, startRow, endRow, table) {\n for (let col = startCol; col <= endCol; col++) {\n for (let row = startRow; row <= endRow; row++) {\n const cellGroup = table.scenegraph.getCell(col, row);\n if (cellGroup) {\n const image = cellGroup.getChildByName('image');\n if (image) {\n image.setAttributes({\n dx: -table.getColsWidth(cellGroup.mergeStartCol, col - 1),\n dy: -table.getRowsHeight(cellGroup.mergeStartRow, row - 1)\n });\n }\n }\n }\n }\n}\n\nfunction updateAutoSizingAndKeepAspectRatio(\n imageAutoSizing: boolean,\n keepAspectRatio: boolean,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n image: Image,\n cellGroup: Group,\n table: BaseTableAPI\n) {\n const originImage = image.resources.get(image.attribute.image).data;\n const { col, row } = cellGroup;\n\n if (imageAutoSizing && !isDamagePic(image)) {\n _adjustWidthHeight(\n col,\n row,\n (originImage as HTMLImageElement).width,\n (originImage as HTMLImageElement).height,\n table.scenegraph,\n padding,\n cellGroup\n );\n }\n if (keepAspectRatio || isDamagePic(image)) {\n const { width: cellWidth, height: cellHeight, isMerge } = getCellRange(cellGroup, table);\n\n const { width: imageWidth, height: imageHeight } = calcKeepAspectRatioSize(\n originImage.width,\n originImage.height,\n // cellGroup.attribute.width - padding[1] - padding[3],\n // cellGroup.attribute.height - padding[0] - padding[2]\n cellWidth - padding[1] - padding[3],\n cellHeight - padding[0] - padding[2]\n );\n\n // const left = 0;\n // const top = 0;\n const pos = calcStartPosition(\n 0,\n 0,\n // cellGroup.attribute.width,\n // cellGroup.attribute.height,\n cellWidth,\n cellHeight,\n imageWidth,\n imageHeight,\n textAlign,\n textBaseline,\n padding\n );\n\n image.setAttributes({\n x: pos.x,\n y: pos.y,\n width: imageWidth,\n height: imageHeight\n // dx: isMerge ? -table.getColsWidth(cellGroup.mergeStartCol, col - 1) : 0,\n // dy: isMerge ? -table.getRowsHeight(cellGroup.mergeStartRow, row - 1) : 0\n });\n\n if (isMerge) {\n updateImageDxDy(\n cellGroup.mergeStartCol,\n cellGroup.mergeEndCol,\n cellGroup.mergeStartRow,\n cellGroup.mergeEndRow,\n table\n );\n }\n }\n}\n\nfunction isDamagePic(image: IImage) {\n const regedIcons = icons.get();\n return image.attribute.image === (regedIcons.damage_pic as any).svg;\n}\n"]}
|
|
@@ -6,26 +6,31 @@ import { isValid } from "@visactor/vutils";
|
|
|
6
6
|
|
|
7
7
|
import { Group } from "../../graphic/group";
|
|
8
8
|
|
|
9
|
+
import { getCellBorderStrokeWidth } from "../../utils/cell-border-stroke-width";
|
|
10
|
+
|
|
9
11
|
const xScale = new PointScale, yScale = new LinearScale;
|
|
10
12
|
|
|
11
13
|
export function createSparkLineCellGroup(cellGroup, columnGroup, xOrigin, yOrigin, col, row, width, height, padding, table, cellTheme) {
|
|
12
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
15
|
+
if (!cellGroup) {
|
|
16
|
+
const strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);
|
|
17
|
+
(cellGroup = new Group({
|
|
18
|
+
x: xOrigin,
|
|
19
|
+
y: yOrigin,
|
|
20
|
+
width: width,
|
|
21
|
+
height: height,
|
|
22
|
+
lineWidth: null !== (_b = null === (_a = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _a ? void 0 : _a.lineWidth) && void 0 !== _b ? _b : void 0,
|
|
23
|
+
fill: null !== (_d = null === (_c = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _c ? void 0 : _c.fill) && void 0 !== _d ? _d : void 0,
|
|
24
|
+
stroke: null !== (_f = null === (_e = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _e ? void 0 : _e.stroke) && void 0 !== _f ? _f : void 0,
|
|
25
|
+
strokeArrayWidth: strokeArrayWidth,
|
|
26
|
+
strokeArrayColor: null !== (_h = null === (_g = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _g ? void 0 : _g.strokeArrayColor) && void 0 !== _h ? _h : void 0,
|
|
27
|
+
cursor: null !== (_k = null === (_j = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _j ? void 0 : _j.cursor) && void 0 !== _k ? _k : void 0,
|
|
28
|
+
lineDash: null !== (_m = null === (_l = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _l ? void 0 : _l.lineDash) && void 0 !== _m ? _m : void 0,
|
|
29
|
+
lineCap: "square",
|
|
30
|
+
clip: !0,
|
|
31
|
+
cornerRadius: cellTheme.group.cornerRadius
|
|
32
|
+
})).role = "cell", cellGroup.col = col, cellGroup.row = row, null == columnGroup || columnGroup.addCellGroup(cellGroup);
|
|
33
|
+
}
|
|
29
34
|
const chartGroup = createSparkLine(col, row, width, height, padding, table);
|
|
30
35
|
return chartGroup && cellGroup.appendChild(chartGroup), cellGroup;
|
|
31
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/group-creater/cell-type/spark-line-cell.ts"],"names":[],"mappings":"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","file":"spark-line-cell.js","sourcesContent":["import type { ILine, ISymbol, IThemeSpec } from './../../../vrender';\nimport { createLine, createSymbol } from './../../../vrender';\nimport { PointScale, LinearScale } from '@visactor/vscale';\nimport { isValid } from '@visactor/vutils';\nimport { Group } from '../../graphic/group';\nimport type { CellInfo, SparklineSpec } from '../../../ts-types';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\n\nconst xScale: PointScale = new PointScale();\nconst yScale: LinearScale = new LinearScale();\n\nexport function createSparkLineCellGroup(\n cellGroup: Group | null,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n // cell\n if (!cellGroup) {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n\n lineCap: 'square',\n\n clip: true,\n\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n // columnGroup?.addChild(cellGroup);\n columnGroup?.addCellGroup(cellGroup);\n }\n\n // chart\n const chartGroup = createSparkLine(col, row, width, height, padding, table);\n if (chartGroup) {\n cellGroup.appendChild(chartGroup);\n }\n\n return cellGroup;\n}\n\nfunction createSparkLine(\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n table: BaseTableAPI\n): Group | undefined {\n //获取场景树对象,根据当前单元格位置更改其位置\n //待定 TODO group需要设置shape属性吗\n let sparklineSpec: SparklineSpec;\n let chartGroup: Group;\n const chartSpecRaw = table.internalProps.layoutMap.getBody(col, row).sparklineSpec;\n const dataValue = table.getCellValue(col, row) as unknown as any[];\n\n if (!Array.isArray(dataValue)) {\n return undefined;\n }\n\n const x = padding[3];\n const y = padding[0];\n width -= padding[1] + padding[3];\n height -= padding[0] + padding[2];\n const left = 0;\n // const top = y;\n // const right = x + width;\n const bottom = height;\n if (typeof chartSpecRaw === 'function') {\n // 动态组织spec\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row) || '',\n value: table.getCellValue(col, row) || '',\n rect: table.getCellRangeRelativeRect(table.getCellRange(col, row)),\n table\n };\n sparklineSpec = chartSpecRaw(arg);\n chartGroup = createChartGroup(sparklineSpec, x, y, width, height);\n } else {\n sparklineSpec = chartSpecRaw;\n chartGroup = createChartGroup(chartSpecRaw, x, y, width, height);\n }\n\n // #region scale对x y轴映射\n const items: { x: number; y: number; defined?: boolean }[] = [];\n const dataItems: any[] = [];\n\n let xField;\n let yField;\n if (typeof sparklineSpec.xField === 'object') {\n xScale.domain(sparklineSpec.xField.domain);\n xField = sparklineSpec.xField.field;\n } else if (typeof sparklineSpec.xField === 'string') {\n const indexValues = dataValue.map((value: any) => value[sparklineSpec.xField as string]);\n xScale.domain(indexValues);\n xField = sparklineSpec.xField;\n } else {\n // xField未配置 data为数值数组的情况\n if (Array.isArray(dataValue)) {\n xScale.domain(Array.from({ length: dataValue.length }, (_, i) => i));\n xField = sparklineSpec.xField;\n }\n }\n xScale.range([0, width]);\n\n if (typeof sparklineSpec.yField === 'object') {\n yScale.domain(sparklineSpec.yField.domain);\n yField = sparklineSpec.yField.field;\n } else if (typeof sparklineSpec.yField === 'string') {\n // string类型 自动计算出domain\n const values = dataValue.map((value: any) => value[sparklineSpec.yField as string]);\n yScale.domain([Math.min(...values), Math.max(...values)]);\n yField = sparklineSpec.yField;\n } else {\n // yField未配置 检查data是否为数值数组\n if (Array.isArray(dataValue) && dataValue.every((value: any) => typeof value === 'number')) {\n yScale.domain([Math.min(...dataValue), Math.max(...dataValue)]);\n yField = sparklineSpec.yField;\n }\n }\n yScale.range([0, height]);\n\n if (typeof sparklineSpec.xField === 'object' && Array.isArray(sparklineSpec.xField.domain)) {\n // 如果xField.domain合法,需要按需补充null值点\n const values = dataValue.map((value: any) => value[(sparklineSpec.xField as any).field]);\n const domain = sparklineSpec.xField.domain;\n for (let i = 0; i < domain.length; i++) {\n let valid = false;\n for (let j = 0; j < values.length; j++) {\n // eslint-disable-next-line eqeqeq\n if (domain[i] == values[j]) {\n const data: any = dataValue[j];\n // 无效数据不进行scale,避免null被解析为0\n if (!isValid(data[xField]) || !isValid(data[yField])) {\n break;\n }\n items.push({\n x: left + xScale.scale(data[xField]),\n y: bottom - yScale.scale(data[yField]),\n defined: isValid(data[yField])\n });\n dataItems.push(data); //收集原始数据\n valid = true;\n break;\n }\n }\n\n if (!valid) {\n // 该domain的index没有在数据中,补充无效点\n items.push({\n x: left + xScale.scale(domain[i]),\n y: 0,\n defined: false\n });\n dataItems.push({ [xField]: domain[i], [yField]: null });\n }\n }\n } else {\n for (let i = 0; i < dataValue.length; i++) {\n const data: any = dataValue[i];\n items.push({\n x: left + xScale.scale(xField ? data[xField] : i),\n y: bottom - yScale.scale(yField ? data[yField] : data),\n defined: isValid(yField ? data[yField] : data),\n rawData: data\n } as any);\n dataItems.push(data);\n }\n }\n // #endregion\n\n // 更新线节点属性\n const line = chartGroup.getChildByName('sparkline-line') as ILine;\n if (line) {\n line.setAttribute('points', items);\n }\n (line as any).bandwidth = xScale.step();\n (line as any).min = yScale.range()[0];\n (line as any).max = yScale.range()[1];\n\n // 更新symbol节点属性\n const symbolGroup = chartGroup.getChildByName('sparkline-symbol-group') as ILine;\n if (symbolGroup) {\n const isShowIsolatedPoint = sparklineSpec.pointShowRule === 'isolatedPoint';\n if (sparklineSpec.pointShowRule === 'all') {\n for (let i = 0; i < items.length; i++) {\n const { x, y, defined } = items[i];\n if (defined) {\n const symbol: ISymbol = createSymbol({ x, y });\n symbolGroup.appendChild(symbol);\n }\n }\n } else if (isShowIsolatedPoint) {\n // 处理孤立点显示\n for (let i = 0; i < items.length; i++) {\n const { x, y, defined } = items[i];\n if (defined && (!items[i - 1] || !items[i - 1].defined) && (!items[i + 1] || !items[i + 1].defined)) {\n // 规范孤立数据显示Symbol的spec api\n const symbol: ISymbol = createSymbol({ x, y });\n symbolGroup.appendChild(symbol);\n }\n }\n }\n }\n return chartGroup;\n}\n\nfunction createChartGroup(\n spec: SparklineSpec | ((arg: CellInfo) => SparklineSpec),\n x: number,\n y: number,\n width: number,\n height: number\n): Group {\n let specObj: SparklineSpec;\n if (typeof spec === 'function') {\n // specObj = spec.apply(null, null);\n specObj = spec(null);\n } else {\n specObj = spec;\n }\n // 生成根节点\n const group = new Group({\n x,\n y,\n width,\n height,\n stroke: false,\n fill: false\n });\n group.name = 'sparkline';\n\n if (specObj.type === 'line') {\n // 生成line\n const line = createLine({\n x: 0,\n y: 0,\n curveType: specObj.smooth ? 'monotoneX' : 'linear',\n stroke: specObj.line?.style?.stroke ?? 'blue',\n lineWidth: specObj.line?.style?.strokeWidth ?? 2\n });\n line.name = 'sparkline-line';\n group.addChild(line);\n if (specObj.crosshair) {\n (line as any).hover = specObj.crosshair?.style ?? {\n stroke: '#000',\n interpolate: 'linear'\n };\n }\n\n // 生成symbol\n const symbolGroup = new Group({\n x: 0,\n y: 0,\n width,\n height,\n stroke: false,\n fill: false\n });\n symbolGroup.name = 'sparkline-symbol-group';\n symbolGroup.setTheme({\n symbol: {\n stroke: specObj.point?.style?.stroke ?? '#000',\n lineWidth: specObj.point?.style?.strokeWidth ?? 1,\n fill: specObj.point?.style?.fill ?? '#000',\n size: (specObj.point?.style?.size ?? 3) * 2, // 之前配置的是圆半径\n symbolType: 'circle'\n }\n });\n group.addChild(symbolGroup);\n (symbolGroup as any).hover = specObj.point?.hover ?? false;\n }\n return group;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/group-creater/cell-type/spark-line-cell.ts"],"names":[],"mappings":"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","file":"spark-line-cell.js","sourcesContent":["import type { ILine, ISymbol, IThemeSpec } from './../../../vrender';\nimport { createLine, createSymbol } from './../../../vrender';\nimport { PointScale, LinearScale } from '@visactor/vscale';\nimport { isValid } from '@visactor/vutils';\nimport { Group } from '../../graphic/group';\nimport type { CellInfo, SparklineSpec } from '../../../ts-types';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { getCellBorderStrokeWidth } from '../../utils/cell-border-stroke-width';\n\nconst xScale: PointScale = new PointScale();\nconst yScale: LinearScale = new LinearScale();\n\nexport function createSparkLineCellGroup(\n cellGroup: Group | null,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n // cell\n if (!cellGroup) {\n const strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n\n strokeArrayWidth: strokeArrayWidth,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n\n lineCap: 'square',\n\n clip: true,\n\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n // columnGroup?.addChild(cellGroup);\n columnGroup?.addCellGroup(cellGroup);\n }\n\n // chart\n const chartGroup = createSparkLine(col, row, width, height, padding, table);\n if (chartGroup) {\n cellGroup.appendChild(chartGroup);\n }\n\n return cellGroup;\n}\n\nfunction createSparkLine(\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n table: BaseTableAPI\n): Group | undefined {\n //获取场景树对象,根据当前单元格位置更改其位置\n //待定 TODO group需要设置shape属性吗\n let sparklineSpec: SparklineSpec;\n let chartGroup: Group;\n const chartSpecRaw = table.internalProps.layoutMap.getBody(col, row).sparklineSpec;\n const dataValue = table.getCellValue(col, row) as unknown as any[];\n\n if (!Array.isArray(dataValue)) {\n return undefined;\n }\n\n const x = padding[3];\n const y = padding[0];\n width -= padding[1] + padding[3];\n height -= padding[0] + padding[2];\n const left = 0;\n // const top = y;\n // const right = x + width;\n const bottom = height;\n if (typeof chartSpecRaw === 'function') {\n // 动态组织spec\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row) || '',\n value: table.getCellValue(col, row) || '',\n rect: table.getCellRangeRelativeRect(table.getCellRange(col, row)),\n table\n };\n sparklineSpec = chartSpecRaw(arg);\n chartGroup = createChartGroup(sparklineSpec, x, y, width, height);\n } else {\n sparklineSpec = chartSpecRaw;\n chartGroup = createChartGroup(chartSpecRaw, x, y, width, height);\n }\n\n // #region scale对x y轴映射\n const items: { x: number; y: number; defined?: boolean }[] = [];\n const dataItems: any[] = [];\n\n let xField;\n let yField;\n if (typeof sparklineSpec.xField === 'object') {\n xScale.domain(sparklineSpec.xField.domain);\n xField = sparklineSpec.xField.field;\n } else if (typeof sparklineSpec.xField === 'string') {\n const indexValues = dataValue.map((value: any) => value[sparklineSpec.xField as string]);\n xScale.domain(indexValues);\n xField = sparklineSpec.xField;\n } else {\n // xField未配置 data为数值数组的情况\n if (Array.isArray(dataValue)) {\n xScale.domain(Array.from({ length: dataValue.length }, (_, i) => i));\n xField = sparklineSpec.xField;\n }\n }\n xScale.range([0, width]);\n\n if (typeof sparklineSpec.yField === 'object') {\n yScale.domain(sparklineSpec.yField.domain);\n yField = sparklineSpec.yField.field;\n } else if (typeof sparklineSpec.yField === 'string') {\n // string类型 自动计算出domain\n const values = dataValue.map((value: any) => value[sparklineSpec.yField as string]);\n yScale.domain([Math.min(...values), Math.max(...values)]);\n yField = sparklineSpec.yField;\n } else {\n // yField未配置 检查data是否为数值数组\n if (Array.isArray(dataValue) && dataValue.every((value: any) => typeof value === 'number')) {\n yScale.domain([Math.min(...dataValue), Math.max(...dataValue)]);\n yField = sparklineSpec.yField;\n }\n }\n yScale.range([0, height]);\n\n if (typeof sparklineSpec.xField === 'object' && Array.isArray(sparklineSpec.xField.domain)) {\n // 如果xField.domain合法,需要按需补充null值点\n const values = dataValue.map((value: any) => value[(sparklineSpec.xField as any).field]);\n const domain = sparklineSpec.xField.domain;\n for (let i = 0; i < domain.length; i++) {\n let valid = false;\n for (let j = 0; j < values.length; j++) {\n // eslint-disable-next-line eqeqeq\n if (domain[i] == values[j]) {\n const data: any = dataValue[j];\n // 无效数据不进行scale,避免null被解析为0\n if (!isValid(data[xField]) || !isValid(data[yField])) {\n break;\n }\n items.push({\n x: left + xScale.scale(data[xField]),\n y: bottom - yScale.scale(data[yField]),\n defined: isValid(data[yField])\n });\n dataItems.push(data); //收集原始数据\n valid = true;\n break;\n }\n }\n\n if (!valid) {\n // 该domain的index没有在数据中,补充无效点\n items.push({\n x: left + xScale.scale(domain[i]),\n y: 0,\n defined: false\n });\n dataItems.push({ [xField]: domain[i], [yField]: null });\n }\n }\n } else {\n for (let i = 0; i < dataValue.length; i++) {\n const data: any = dataValue[i];\n items.push({\n x: left + xScale.scale(xField ? data[xField] : i),\n y: bottom - yScale.scale(yField ? data[yField] : data),\n defined: isValid(yField ? data[yField] : data),\n rawData: data\n } as any);\n dataItems.push(data);\n }\n }\n // #endregion\n\n // 更新线节点属性\n const line = chartGroup.getChildByName('sparkline-line') as ILine;\n if (line) {\n line.setAttribute('points', items);\n }\n (line as any).bandwidth = xScale.step();\n (line as any).min = yScale.range()[0];\n (line as any).max = yScale.range()[1];\n\n // 更新symbol节点属性\n const symbolGroup = chartGroup.getChildByName('sparkline-symbol-group') as ILine;\n if (symbolGroup) {\n const isShowIsolatedPoint = sparklineSpec.pointShowRule === 'isolatedPoint';\n if (sparklineSpec.pointShowRule === 'all') {\n for (let i = 0; i < items.length; i++) {\n const { x, y, defined } = items[i];\n if (defined) {\n const symbol: ISymbol = createSymbol({ x, y });\n symbolGroup.appendChild(symbol);\n }\n }\n } else if (isShowIsolatedPoint) {\n // 处理孤立点显示\n for (let i = 0; i < items.length; i++) {\n const { x, y, defined } = items[i];\n if (defined && (!items[i - 1] || !items[i - 1].defined) && (!items[i + 1] || !items[i + 1].defined)) {\n // 规范孤立数据显示Symbol的spec api\n const symbol: ISymbol = createSymbol({ x, y });\n symbolGroup.appendChild(symbol);\n }\n }\n }\n }\n return chartGroup;\n}\n\nfunction createChartGroup(\n spec: SparklineSpec | ((arg: CellInfo) => SparklineSpec),\n x: number,\n y: number,\n width: number,\n height: number\n): Group {\n let specObj: SparklineSpec;\n if (typeof spec === 'function') {\n // specObj = spec.apply(null, null);\n specObj = spec(null);\n } else {\n specObj = spec;\n }\n // 生成根节点\n const group = new Group({\n x,\n y,\n width,\n height,\n stroke: false,\n fill: false\n });\n group.name = 'sparkline';\n\n if (specObj.type === 'line') {\n // 生成line\n const line = createLine({\n x: 0,\n y: 0,\n curveType: specObj.smooth ? 'monotoneX' : 'linear',\n stroke: specObj.line?.style?.stroke ?? 'blue',\n lineWidth: specObj.line?.style?.strokeWidth ?? 2\n });\n line.name = 'sparkline-line';\n group.addChild(line);\n if (specObj.crosshair) {\n (line as any).hover = specObj.crosshair?.style ?? {\n stroke: '#000',\n interpolate: 'linear'\n };\n }\n\n // 生成symbol\n const symbolGroup = new Group({\n x: 0,\n y: 0,\n width,\n height,\n stroke: false,\n fill: false\n });\n symbolGroup.name = 'sparkline-symbol-group';\n symbolGroup.setTheme({\n symbol: {\n stroke: specObj.point?.style?.stroke ?? '#000',\n lineWidth: specObj.point?.style?.strokeWidth ?? 1,\n fill: specObj.point?.style?.fill ?? '#000',\n size: (specObj.point?.style?.size ?? 3) * 2, // 之前配置的是圆半径\n symbolType: 'circle'\n }\n });\n group.addChild(symbolGroup);\n (symbolGroup as any).hover = specObj.point?.hover ?? false;\n }\n return group;\n}\n"]}
|
|
@@ -8,12 +8,14 @@ import { getFunctionalProp } from "../../utils/get-prop";
|
|
|
8
8
|
|
|
9
9
|
import { createCellContent } from "../../utils/text-icon-layout";
|
|
10
10
|
|
|
11
|
+
import { getCellBorderStrokeWidth } from "../../utils/cell-border-stroke-width";
|
|
12
|
+
|
|
11
13
|
export function createCellGroup(table, value, columnGroup, xOrigin, yOrigin, col, row, colWidth, cellWidth, cellHeight, padding, textAlign, textBaseline, mayHaveIcon, customElementsGroup, renderDefault, cellTheme, range) {
|
|
12
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
13
15
|
const headerStyle = table._getCellStyle(col, row), functionalPadding = getFunctionalProp("padding", headerStyle, col, row, table);
|
|
14
16
|
isValid(functionalPadding) && (padding = functionalPadding), (null === (_a = null == cellTheme ? void 0 : cellTheme.text) || void 0 === _a ? void 0 : _a.textAlign) && (textAlign = null === (_b = null == cellTheme ? void 0 : cellTheme.text) || void 0 === _b ? void 0 : _b.textAlign),
|
|
15
17
|
(null === (_c = null == cellTheme ? void 0 : cellTheme.text) || void 0 === _c ? void 0 : _c.textBaseline) && (textBaseline = null === (_d = null == cellTheme ? void 0 : cellTheme.text) || void 0 === _d ? void 0 : _d.textBaseline);
|
|
16
|
-
const autoRowHeight = "autoHeight" === table.heightMode, autoColWidth = "auto" === colWidth, autoWrapText = null !== (_e = headerStyle.autoWrapText) && void 0 !== _e ? _e : table.internalProps.autoWrapText, lineClamp = headerStyle.lineClamp, cellGroup = new Group({
|
|
18
|
+
const autoRowHeight = "autoHeight" === table.heightMode, autoColWidth = "auto" === colWidth, autoWrapText = null !== (_e = headerStyle.autoWrapText) && void 0 !== _e ? _e : table.internalProps.autoWrapText, lineClamp = headerStyle.lineClamp, strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table), cellGroup = new Group({
|
|
17
19
|
x: xOrigin,
|
|
18
20
|
y: yOrigin,
|
|
19
21
|
width: cellWidth,
|
|
@@ -21,10 +23,10 @@ export function createCellGroup(table, value, columnGroup, xOrigin, yOrigin, col
|
|
|
21
23
|
lineWidth: null !== (_g = null === (_f = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _f ? void 0 : _f.lineWidth) && void 0 !== _g ? _g : void 0,
|
|
22
24
|
fill: null !== (_j = null === (_h = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _h ? void 0 : _h.fill) && void 0 !== _j ? _j : void 0,
|
|
23
25
|
stroke: null !== (_l = null === (_k = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _k ? void 0 : _k.stroke) && void 0 !== _l ? _l : void 0,
|
|
24
|
-
strokeArrayWidth: null
|
|
25
|
-
strokeArrayColor: null !== (
|
|
26
|
-
cursor: null !== (
|
|
27
|
-
lineDash: null !== (
|
|
26
|
+
strokeArrayWidth: null != strokeArrayWidth ? strokeArrayWidth : void 0,
|
|
27
|
+
strokeArrayColor: null !== (_o = null === (_m = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _m ? void 0 : _m.strokeArrayColor) && void 0 !== _o ? _o : void 0,
|
|
28
|
+
cursor: null !== (_q = null === (_p = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _p ? void 0 : _p.cursor) && void 0 !== _q ? _q : void 0,
|
|
29
|
+
lineDash: null !== (_s = null === (_r = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _r ? void 0 : _r.lineDash) && void 0 !== _s ? _s : void 0,
|
|
28
30
|
lineCap: "square",
|
|
29
31
|
clip: !0,
|
|
30
32
|
cornerRadius: cellTheme.group.cornerRadius
|
|
@@ -38,7 +40,7 @@ export function createCellGroup(table, value, columnGroup, xOrigin, yOrigin, col
|
|
|
38
40
|
range && (iconCol = range.start.col, iconRow = range.start.row), icons = table.getCellIcons(iconCol, iconRow);
|
|
39
41
|
}
|
|
40
42
|
if (createCellContent(cellGroup, icons, textStr, padding, autoColWidth, autoRowHeight, autoWrapText, "number" == typeof lineClamp ? lineClamp : void 0, cellWidth, cellHeight, textAlign, textBaseline, table, cellTheme, range),
|
|
41
|
-
null === (
|
|
43
|
+
null === (_t = null == cellTheme ? void 0 : cellTheme._vtable) || void 0 === _t ? void 0 : _t.marked) {
|
|
42
44
|
const mark = createArc({
|
|
43
45
|
x: cellGroup.attribute.width,
|
|
44
46
|
y: 0,
|
|
@@ -52,8 +54,8 @@ export function createCellGroup(table, value, columnGroup, xOrigin, yOrigin, col
|
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
return customElementsGroup && cellGroup.setAttributes({
|
|
55
|
-
width: Math.max(cellGroup.attribute.width, null !== (
|
|
56
|
-
height: Math.max(cellGroup.attribute.height, null !== (
|
|
57
|
+
width: Math.max(cellGroup.attribute.width, null !== (_u = customElementsGroup.attribute.width) && void 0 !== _u ? _u : 0),
|
|
58
|
+
height: Math.max(cellGroup.attribute.height, null !== (_v = customElementsGroup.attribute.height) && void 0 !== _v ? _v : 0)
|
|
57
59
|
}), cellGroup;
|
|
58
60
|
}
|
|
59
61
|
//# sourceMappingURL=text-cell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/group-creater/cell-type/text-cell.ts"],"names":[],"mappings":"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","file":"text-cell.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { IThemeSpec, Group as VGroup } from './../../../vrender';\nimport { createArc } from './../../../vrender';\nimport { isValid } from '@visactor/vutils';\nimport { Group } from '../../graphic/group';\n// import { parseFont } from '../../utils/font';\nimport { getFunctionalProp } from '../../utils/get-prop';\nimport { createCellContent } from '../../utils/text-icon-layout';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { getStyleTheme } from '../../../core/tableHelper';\nimport type { CellRange } from '../../../ts-types';\n\n/**\n * @description: 创建单元格场景节点\n * @param {Group} columnGroup 列Group\n * @param {number} xOrigin 起始x坐标\n * @param {number} yOrigin 起始y坐标\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @param {number | 'auto'} colWidth 配置列宽\n * @param {number} padding 单元格padding\n * @param {CanvasTextAlign} textAlign\n * @param {CanvasTextBaseline} textBaseline\n * @param {boolean} noWrap 不进行折行(default column type)\n * @param {IThemeSpec} cellTheme 单元格主题\n * @return {Group}\n */\nexport function createCellGroup(\n table: BaseTableAPI,\n value: string,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n // rowHeight: number,\n colWidth: number | 'auto',\n cellWidth: number,\n cellHeight: number,\n padding: number[],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n mayHaveIcon: boolean,\n customElementsGroup: VGroup,\n renderDefault: boolean,\n cellTheme: IThemeSpec,\n range: CellRange | undefined\n): Group {\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n if (cellTheme?.text?.textAlign) {\n textAlign = cellTheme?.text?.textAlign;\n }\n if (cellTheme?.text?.textBaseline) {\n textBaseline = cellTheme?.text?.textBaseline;\n }\n const autoRowHeight = table.heightMode === 'autoHeight';\n const autoColWidth = colWidth === 'auto';\n const autoWrapText = headerStyle.autoWrapText ?? table.internalProps.autoWrapText;\n const lineClamp = headerStyle.lineClamp;\n\n // cell\n const cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width: cellWidth,\n height: cellHeight,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n\n lineCap: 'square',\n\n clip: true,\n\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n // columnGroup?.addChild(cellGroup); // fix promise cell row order in column\n columnGroup?.addCellGroup(cellGroup);\n if (customElementsGroup) {\n cellGroup.appendChild(customElementsGroup);\n }\n if (renderDefault) {\n const textStr: string = value;\n let icons;\n if (mayHaveIcon) {\n let iconCol = col;\n let iconRow = row;\n if (range) {\n iconCol = range.start.col;\n iconRow = range.start.row;\n }\n icons = table.getCellIcons(iconCol, iconRow);\n }\n\n createCellContent(\n cellGroup,\n icons,\n textStr,\n padding as any,\n autoColWidth,\n autoRowHeight,\n autoWrapText,\n typeof lineClamp === 'number' ? lineClamp : undefined,\n // autoColWidth ? 0 : colWidth,\n // table.getRowHeight(row),\n cellWidth,\n cellHeight,\n textAlign,\n textBaseline,\n table,\n cellTheme,\n range\n );\n\n if ((cellTheme as any)?._vtable?.marked) {\n const mark = createArc({\n x: cellGroup.attribute.width,\n y: 0,\n startAngle: Math.PI / 2,\n endAngle: Math.PI,\n outerRadius: 6,\n fill: '#3073F2',\n pickable: false\n });\n mark.name = 'mark';\n\n cellGroup.appendChild(mark);\n }\n }\n if (customElementsGroup) {\n cellGroup.setAttributes({\n width: Math.max(cellGroup.attribute.width, customElementsGroup.attribute.width ?? 0),\n height: Math.max(cellGroup.attribute.height, customElementsGroup.attribute.height ?? 0)\n });\n }\n return cellGroup;\n}\n\n// /**\n// * @description: 获取函数式赋值的样式,记录在cellTheme中\n// * @param {BaseTableAPI} table\n// * @param {number} col\n// * @param {number} row\n// * @param {IThemeSpec} cellTheme\n// * @return {IThemeSpec | undefined}\n// */\n// export function getCellTheme(\n// table: BaseTableAPI,\n// col: number,\n// row: number,\n// cellTheme?: IThemeSpec\n// ): IThemeSpec | undefined {\n// // get column header style\n// const headerStyle = table._getCellStyle(col, row);\n\n// const theme = getStyleTheme(headerStyle, table, col, row, getFunctionalProp).theme;\n\n// for (const prop in theme.group) {\n// if (isValid(theme.group[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!cellTheme.group) {\n// cellTheme.group = {};\n// }\n\n// cellTheme.group[prop] = theme.group[prop];\n// }\n// }\n\n// for (const prop in theme.text) {\n// if (isValid(theme.text[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!cellTheme.text) {\n// cellTheme.text = {};\n// }\n\n// cellTheme.text[prop] = theme.text[prop];\n// }\n// }\n\n// for (const prop in theme._vtable) {\n// if (isValid(theme._vtable[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!(cellTheme as any)._vtable) {\n// (cellTheme as any)._vtable = {};\n// }\n\n// (cellTheme as any)._vtable[prop] = theme._vtable[prop];\n// }\n// }\n// return cellTheme;\n// }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/group-creater/cell-type/text-cell.ts"],"names":[],"mappings":"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","file":"text-cell.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { IThemeSpec, Group as VGroup } from './../../../vrender';\nimport { createArc } from './../../../vrender';\nimport { isValid } from '@visactor/vutils';\nimport { Group } from '../../graphic/group';\n// import { parseFont } from '../../utils/font';\nimport { getFunctionalProp } from '../../utils/get-prop';\nimport { createCellContent } from '../../utils/text-icon-layout';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { getStyleTheme } from '../../../core/tableHelper';\nimport type { CellRange } from '../../../ts-types';\nimport { getCellBorderStrokeWidth } from '../../utils/cell-border-stroke-width';\n\n/**\n * @description: 创建单元格场景节点\n * @param {Group} columnGroup 列Group\n * @param {number} xOrigin 起始x坐标\n * @param {number} yOrigin 起始y坐标\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @param {number | 'auto'} colWidth 配置列宽\n * @param {number} padding 单元格padding\n * @param {CanvasTextAlign} textAlign\n * @param {CanvasTextBaseline} textBaseline\n * @param {boolean} noWrap 不进行折行(default column type)\n * @param {IThemeSpec} cellTheme 单元格主题\n * @return {Group}\n */\nexport function createCellGroup(\n table: BaseTableAPI,\n value: string,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n // rowHeight: number,\n colWidth: number | 'auto',\n cellWidth: number,\n cellHeight: number,\n padding: number[],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n mayHaveIcon: boolean,\n customElementsGroup: VGroup,\n renderDefault: boolean,\n cellTheme: IThemeSpec,\n range: CellRange | undefined\n): Group {\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n if (cellTheme?.text?.textAlign) {\n textAlign = cellTheme?.text?.textAlign;\n }\n if (cellTheme?.text?.textBaseline) {\n textBaseline = cellTheme?.text?.textBaseline;\n }\n const autoRowHeight = table.heightMode === 'autoHeight';\n const autoColWidth = colWidth === 'auto';\n const autoWrapText = headerStyle.autoWrapText ?? table.internalProps.autoWrapText;\n const lineClamp = headerStyle.lineClamp;\n\n // cell\n const strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);\n const cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width: cellWidth,\n height: cellHeight,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n\n lineCap: 'square',\n\n clip: true,\n\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n // columnGroup?.addChild(cellGroup); // fix promise cell row order in column\n columnGroup?.addCellGroup(cellGroup);\n if (customElementsGroup) {\n cellGroup.appendChild(customElementsGroup);\n }\n if (renderDefault) {\n const textStr: string = value;\n let icons;\n if (mayHaveIcon) {\n let iconCol = col;\n let iconRow = row;\n if (range) {\n iconCol = range.start.col;\n iconRow = range.start.row;\n }\n icons = table.getCellIcons(iconCol, iconRow);\n }\n\n createCellContent(\n cellGroup,\n icons,\n textStr,\n padding as any,\n autoColWidth,\n autoRowHeight,\n autoWrapText,\n typeof lineClamp === 'number' ? lineClamp : undefined,\n // autoColWidth ? 0 : colWidth,\n // table.getRowHeight(row),\n cellWidth,\n cellHeight,\n textAlign,\n textBaseline,\n table,\n cellTheme,\n range\n );\n\n if ((cellTheme as any)?._vtable?.marked) {\n const mark = createArc({\n x: cellGroup.attribute.width,\n y: 0,\n startAngle: Math.PI / 2,\n endAngle: Math.PI,\n outerRadius: 6,\n fill: '#3073F2',\n pickable: false\n });\n mark.name = 'mark';\n\n cellGroup.appendChild(mark);\n }\n }\n if (customElementsGroup) {\n cellGroup.setAttributes({\n width: Math.max(cellGroup.attribute.width, customElementsGroup.attribute.width ?? 0),\n height: Math.max(cellGroup.attribute.height, customElementsGroup.attribute.height ?? 0)\n });\n }\n return cellGroup;\n}\n\n// /**\n// * @description: 获取函数式赋值的样式,记录在cellTheme中\n// * @param {BaseTableAPI} table\n// * @param {number} col\n// * @param {number} row\n// * @param {IThemeSpec} cellTheme\n// * @return {IThemeSpec | undefined}\n// */\n// export function getCellTheme(\n// table: BaseTableAPI,\n// col: number,\n// row: number,\n// cellTheme?: IThemeSpec\n// ): IThemeSpec | undefined {\n// // get column header style\n// const headerStyle = table._getCellStyle(col, row);\n\n// const theme = getStyleTheme(headerStyle, table, col, row, getFunctionalProp).theme;\n\n// for (const prop in theme.group) {\n// if (isValid(theme.group[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!cellTheme.group) {\n// cellTheme.group = {};\n// }\n\n// cellTheme.group[prop] = theme.group[prop];\n// }\n// }\n\n// for (const prop in theme.text) {\n// if (isValid(theme.text[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!cellTheme.text) {\n// cellTheme.text = {};\n// }\n\n// cellTheme.text[prop] = theme.text[prop];\n// }\n// }\n\n// for (const prop in theme._vtable) {\n// if (isValid(theme._vtable[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!(cellTheme as any)._vtable) {\n// (cellTheme as any)._vtable = {};\n// }\n\n// (cellTheme as any)._vtable[prop] = theme._vtable[prop];\n// }\n// }\n// return cellTheme;\n// }\n"]}
|
|
@@ -16,14 +16,16 @@ import { getFunctionalProp } from "../../utils/get-prop";
|
|
|
16
16
|
|
|
17
17
|
import { isValid } from "@visactor/vutils";
|
|
18
18
|
|
|
19
|
+
import { getCellBorderStrokeWidth } from "../../utils/cell-border-stroke-width";
|
|
20
|
+
|
|
19
21
|
const regedIcons = icons.get();
|
|
20
22
|
|
|
21
23
|
export function createVideoCellGroup(columnGroup, xOrigin, yOrigin, col, row, width, height, keepAspectRatio, imageAutoSizing, padding, textAlign, textBaseline, table, cellTheme) {
|
|
22
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r
|
|
24
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
23
25
|
const headerStyle = table._getCellStyle(col, row), functionalPadding = getFunctionalProp("padding", headerStyle, col, row, table);
|
|
24
26
|
isValid(functionalPadding) && (padding = functionalPadding), (null === (_a = null == cellTheme ? void 0 : cellTheme.text) || void 0 === _a ? void 0 : _a.textAlign) && (textAlign = null === (_b = null == cellTheme ? void 0 : cellTheme.text) || void 0 === _b ? void 0 : _b.textAlign),
|
|
25
27
|
(null === (_c = null == cellTheme ? void 0 : cellTheme.text) || void 0 === _c ? void 0 : _c.textBaseline) && (textBaseline = null === (_d = null == cellTheme ? void 0 : cellTheme.text) || void 0 === _d ? void 0 : _d.textBaseline);
|
|
26
|
-
const cellGroup = new Group({
|
|
28
|
+
const strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table), cellGroup = new Group({
|
|
27
29
|
x: xOrigin,
|
|
28
30
|
y: yOrigin,
|
|
29
31
|
width: width,
|
|
@@ -31,10 +33,10 @@ export function createVideoCellGroup(columnGroup, xOrigin, yOrigin, col, row, wi
|
|
|
31
33
|
lineWidth: null !== (_f = null === (_e = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _e ? void 0 : _e.lineWidth) && void 0 !== _f ? _f : void 0,
|
|
32
34
|
fill: null !== (_h = null === (_g = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _g ? void 0 : _g.fill) && void 0 !== _h ? _h : void 0,
|
|
33
35
|
stroke: null !== (_k = null === (_j = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _j ? void 0 : _j.stroke) && void 0 !== _k ? _k : void 0,
|
|
34
|
-
strokeArrayWidth:
|
|
35
|
-
strokeArrayColor: null !== (
|
|
36
|
-
cursor: null !== (
|
|
37
|
-
lineDash: null !== (
|
|
36
|
+
strokeArrayWidth: strokeArrayWidth,
|
|
37
|
+
strokeArrayColor: null !== (_m = null === (_l = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _l ? void 0 : _l.strokeArrayColor) && void 0 !== _m ? _m : void 0,
|
|
38
|
+
cursor: null !== (_p = null === (_o = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _o ? void 0 : _o.cursor) && void 0 !== _p ? _p : void 0,
|
|
39
|
+
lineDash: null !== (_r = null === (_q = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _q ? void 0 : _q.lineDash) && void 0 !== _r ? _r : void 0,
|
|
38
40
|
lineCap: "square",
|
|
39
41
|
clip: !0,
|
|
40
42
|
cornerRadius: cellTheme.group.cornerRadius
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/group-creater/cell-type/video-cell.ts"],"names":[],"mappings":"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","file":"video-cell.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { Cursor, IImage, IThemeSpec } from './../../../vrender';\nimport { createRect, createImage } from './../../../vrender';\nimport * as icons from '../../../icons';\nimport { Group } from '../../graphic/group';\nimport { calcKeepAspectRatioSize } from '../../utils/keep-aspect-ratio';\nimport { Icon } from '../../graphic/icon';\nimport { calcStartPosition } from '../../utils/cell-pos';\nimport { _adjustWidthHeight } from './image-cell';\nimport { getFunctionalProp, getProp } from '../../utils/get-prop';\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\n\nconst regedIcons = icons.get();\n\nexport function createVideoCellGroup(\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n keepAspectRatio: boolean,\n imageAutoSizing: boolean,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n // const margin = getProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n if (cellTheme?.text?.textAlign) {\n textAlign = cellTheme?.text?.textAlign;\n }\n if (cellTheme?.text?.textBaseline) {\n textBaseline = cellTheme?.text?.textBaseline;\n }\n\n // cell\n const cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // childrenPickable: false,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n\n lineCap: 'square',\n\n clip: true,\n\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n // columnGroup?.addChild(cellGroup);\n columnGroup?.addCellGroup(cellGroup);\n\n // video\n const value = table.getCellValue(col, row);\n const video = document.createElement('video');\n video.addEventListener('loadeddata', (): void => {\n if (imageAutoSizing) {\n _adjustWidthHeight(col, row, video.videoWidth, video.videoHeight, table.scenegraph, padding, cellGroup);\n }\n const width = cellGroup.attribute.width;\n const height = cellGroup.attribute.height;\n // 更新宽高\n if (keepAspectRatio) {\n const { width: videoWidth, height: videoHeight } = calcKeepAspectRatioSize(\n video.videoWidth,\n video.videoHeight,\n width - padding[1] - padding[3],\n height - padding[0] - padding[2]\n );\n const pos = calcStartPosition(0, 0, width, height, videoWidth, videoHeight, textAlign, textBaseline, padding);\n\n image.setAttributes({\n width: videoWidth,\n height: videoHeight,\n x: pos.x,\n y: pos.y\n });\n } else {\n image.setAttributes({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[2] - padding[0]\n });\n }\n\n const left = 0;\n const top = 0;\n // 播放按钮\n const iconSize = Math.floor(Math.min(width - padding[1] - padding[3], height - padding[2] - padding[0]) / 2);\n const anchorX =\n left + (width > image.attribute.width ? image.attribute.x - left + image.attribute.width / 2 : width / 2);\n const anchorY =\n top + (height > image.attribute.height ? image.attribute.y - top + image.attribute.height / 2 : height / 2);\n\n const playIcon: Icon = new Icon({\n x: anchorX - iconSize / 2,\n y: anchorY - iconSize / 2,\n width: iconSize,\n height: iconSize,\n image: (regedIcons.play as any).svg,\n cursor: (regedIcons.play as any).cursor\n });\n playIcon.name = 'play-icon';\n cellGroup.appendChild(playIcon);\n // 触发重绘\n table.scenegraph.updateNextFrame();\n });\n video.onerror = (): void => {\n // image.setAttribute('image', (regedIcons.damage_pic as any).svg);\n (image as any).image = (regedIcons.damage_pic as any).svg;\n };\n video.src = value;\n video.setAttribute('preload', 'auto');\n\n const image: IImage = createImage({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[2] - padding[0],\n image: video as any,\n cursor: 'pointer' as Cursor\n });\n image.name = 'image';\n cellGroup.appendChild(image);\n\n return cellGroup;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/group-creater/cell-type/video-cell.ts"],"names":[],"mappings":"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","file":"video-cell.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { Cursor, IImage, IThemeSpec } from './../../../vrender';\nimport { createRect, createImage } from './../../../vrender';\nimport * as icons from '../../../icons';\nimport { Group } from '../../graphic/group';\nimport { calcKeepAspectRatioSize } from '../../utils/keep-aspect-ratio';\nimport { Icon } from '../../graphic/icon';\nimport { calcStartPosition } from '../../utils/cell-pos';\nimport { _adjustWidthHeight } from './image-cell';\nimport { getFunctionalProp, getProp } from '../../utils/get-prop';\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { getCellBorderStrokeWidth } from '../../utils/cell-border-stroke-width';\n\nconst regedIcons = icons.get();\n\nexport function createVideoCellGroup(\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n keepAspectRatio: boolean,\n imageAutoSizing: boolean,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n // const margin = getProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n if (cellTheme?.text?.textAlign) {\n textAlign = cellTheme?.text?.textAlign;\n }\n if (cellTheme?.text?.textBaseline) {\n textBaseline = cellTheme?.text?.textBaseline;\n }\n\n // cell\n const strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);\n const cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // childrenPickable: false,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n\n lineCap: 'square',\n\n clip: true,\n\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n // columnGroup?.addChild(cellGroup);\n columnGroup?.addCellGroup(cellGroup);\n\n // video\n const value = table.getCellValue(col, row);\n const video = document.createElement('video');\n video.addEventListener('loadeddata', (): void => {\n if (imageAutoSizing) {\n _adjustWidthHeight(col, row, video.videoWidth, video.videoHeight, table.scenegraph, padding, cellGroup);\n }\n const width = cellGroup.attribute.width;\n const height = cellGroup.attribute.height;\n // 更新宽高\n if (keepAspectRatio) {\n const { width: videoWidth, height: videoHeight } = calcKeepAspectRatioSize(\n video.videoWidth,\n video.videoHeight,\n width - padding[1] - padding[3],\n height - padding[0] - padding[2]\n );\n const pos = calcStartPosition(0, 0, width, height, videoWidth, videoHeight, textAlign, textBaseline, padding);\n\n image.setAttributes({\n width: videoWidth,\n height: videoHeight,\n x: pos.x,\n y: pos.y\n });\n } else {\n image.setAttributes({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[2] - padding[0]\n });\n }\n\n const left = 0;\n const top = 0;\n // 播放按钮\n const iconSize = Math.floor(Math.min(width - padding[1] - padding[3], height - padding[2] - padding[0]) / 2);\n const anchorX =\n left + (width > image.attribute.width ? image.attribute.x - left + image.attribute.width / 2 : width / 2);\n const anchorY =\n top + (height > image.attribute.height ? image.attribute.y - top + image.attribute.height / 2 : height / 2);\n\n const playIcon: Icon = new Icon({\n x: anchorX - iconSize / 2,\n y: anchorY - iconSize / 2,\n width: iconSize,\n height: iconSize,\n image: (regedIcons.play as any).svg,\n cursor: (regedIcons.play as any).cursor\n });\n playIcon.name = 'play-icon';\n cellGroup.appendChild(playIcon);\n // 触发重绘\n table.scenegraph.updateNextFrame();\n });\n video.onerror = (): void => {\n // image.setAttribute('image', (regedIcons.damage_pic as any).svg);\n (image as any).image = (regedIcons.damage_pic as any).svg;\n };\n video.src = value;\n video.setAttribute('preload', 'auto');\n\n const image: IImage = createImage({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[2] - padding[0],\n image: video as any,\n cursor: 'pointer' as Cursor\n });\n image.name = 'image';\n cellGroup.appendChild(image);\n\n return cellGroup;\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { computeColWidth } from "../../layout/compute-col-width";
|
|
2
|
+
|
|
3
|
+
import { computeRowHeight } from "../../layout/compute-row-height";
|
|
4
|
+
|
|
5
|
+
const colSamplingNumber = 10, rowSamplingNumber = 10;
|
|
6
|
+
|
|
7
|
+
export function getDefaultWidth(table) {
|
|
8
|
+
const {rowCount: rowCount, colCount: colCount} = table, widths = [], deltaCol = Math.max(1, Math.ceil(rowCount / 10)), deltaRow = Math.max(1, Math.ceil(colCount / 10));
|
|
9
|
+
for (let col = 0; col < colCount; col += deltaCol) for (let row = 0; row < rowCount; row += deltaRow) widths.push(computeColWidth(col, row, row, table));
|
|
10
|
+
return Math.ceil(widths.reduce(((a, b) => a + b), 0) / widths.length * 1.2);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function getDefaultHeight(table) {
|
|
14
|
+
const {rowCount: rowCount, colCount: colCount} = table, heights = [], deltaCol = Math.max(1, Math.ceil(rowCount / 10)), deltaRow = Math.max(1, Math.ceil(colCount / 10));
|
|
15
|
+
for (let col = 0; col < colCount; col += deltaCol) for (let row = 0; row < rowCount; row += deltaRow) heights.push(computeRowHeight(row, col, col, table));
|
|
16
|
+
return Math.ceil(heights.reduce(((a, b) => a + b), 0) / heights.length * 1.2);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=default-width-height.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/group-creater/progress/default-width-height.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AASnE,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAG7B,MAAM,UAAU,eAAe,CAAC,KAAmB;IACjD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAErC,MAAM,MAAM,GAAG,EAAE,CAAC;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAEtE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,QAAQ,EAAE;QACjD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,QAAQ,EAAE;YACjD,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;SAEpD;KACF;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAGvF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAClD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAGrC,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAEtE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,QAAQ,EAAE;QACjD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,QAAQ,EAAE;YAEjD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;SACtD;KACF;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAE1F,OAAO,UAAU,CAAC;AACpB,CAAC","file":"default-width-height.js","sourcesContent":["import type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { computeColWidth } from '../../layout/compute-col-width';\nimport { computeRowHeight } from '../../layout/compute-row-height';\n\n// defaultRowHeight & defaultColWidth 在自动宽高模式中,\n// 会被用在滚动条跳转时,作为未测量的高(宽)用于计算预估滚动位置;\n// 如果default和实际相差过大,可能导致预估位置与实际位置相差过大,\n// 在相应行(列)计算出实际位置后,显示效果与预期相差较大(向上偏移或向下偏移)。\n// 这里使用采样方式,测量计算出一个预估的defaultRowHeight & defaultColWidth,\n// 优化实际位置与预期位置的差距\n\nconst colSamplingNumber = 10;\nconst rowSamplingNumber = 10;\n// The default row height and column width for proxy\n// use sampling calculation to get closer to the actual situation\nexport function getDefaultWidth(table: BaseTableAPI) {\n const { rowCount, colCount } = table;\n\n const widths = [];\n // const heights = [];\n const deltaCol = Math.max(1, Math.ceil(rowCount / colSamplingNumber));\n const deltaRow = Math.max(1, Math.ceil(colCount / rowSamplingNumber));\n\n for (let col = 0; col < colCount; col += deltaCol) {\n for (let row = 0; row < rowCount; row += deltaRow) {\n widths.push(computeColWidth(col, row, row, table));\n // heights.push(computeRowHeight(row, col, col, table));\n }\n }\n const meanWidth = Math.ceil((widths.reduce((a, b) => a + b, 0) / widths.length) * 1.2); // 1.2为buffer值,让计算结果稍大\n // const meanHeight = heights.reduce((a, b) => a + b, 0) / heights.length;\n\n return meanWidth;\n}\n\nexport function getDefaultHeight(table: BaseTableAPI) {\n const { rowCount, colCount } = table;\n\n // const widths = [];\n const heights = [];\n const deltaCol = Math.max(1, Math.ceil(rowCount / colSamplingNumber));\n const deltaRow = Math.max(1, Math.ceil(colCount / rowSamplingNumber));\n\n for (let col = 0; col < colCount; col += deltaCol) {\n for (let row = 0; row < rowCount; row += deltaRow) {\n // widths.push(computeColWidth(col, row, row, table));\n heights.push(computeRowHeight(row, col, col, table));\n }\n }\n // const meanWidth = widths.reduce((a, b) => a + b, 0) / widths.length;\n const meanHeight = Math.ceil((heights.reduce((a, b) => a + b, 0) / heights.length) * 1.2); // 1.2为buffer值,让计算结果稍大\n\n return meanHeight;\n}\n"]}
|
|
@@ -23,6 +23,7 @@ export declare class SceneProxy {
|
|
|
23
23
|
screenTopRow: number;
|
|
24
24
|
totalActualBodyRowCount: number;
|
|
25
25
|
deltaY: number;
|
|
26
|
+
deltaHeight: number;
|
|
26
27
|
colLimit: number;
|
|
27
28
|
bodyRightCol: number;
|
|
28
29
|
totalCol: number;
|
|
@@ -40,6 +41,7 @@ export declare class SceneProxy {
|
|
|
40
41
|
colUpdateDirection: 'left' | 'right';
|
|
41
42
|
totalActualBodyColCount: number;
|
|
42
43
|
deltaX: number;
|
|
44
|
+
deltaWidth: number;
|
|
43
45
|
cellCache: Map<number, Group>;
|
|
44
46
|
constructor(table: BaseTableAPI);
|
|
45
47
|
get bodyLeftCol(): number;
|
|
@@ -52,10 +54,10 @@ export declare class SceneProxy {
|
|
|
52
54
|
createCol(): Promise<void>;
|
|
53
55
|
createRowCellGroup(onceCount: number): void;
|
|
54
56
|
createColGroup(onceCount: number): void;
|
|
55
|
-
setY(y: number): Promise<void>;
|
|
56
|
-
setX(x: number): Promise<void>;
|
|
57
|
-
dynamicSetY(y: number): Promise<void>;
|
|
58
|
-
dynamicSetX(x: number): Promise<void>;
|
|
57
|
+
setY(y: number, isEnd?: boolean): Promise<void>;
|
|
58
|
+
setX(x: number, isEnd?: boolean): Promise<void>;
|
|
59
|
+
dynamicSetY(y: number, isEnd?: boolean): Promise<void>;
|
|
60
|
+
dynamicSetX(x: number, isEnd?: boolean): Promise<void>;
|
|
59
61
|
updateBody(y: number): void;
|
|
60
62
|
updateRowCellGroupsAsync(): Promise<void>;
|
|
61
63
|
updateCellGroups(count: number): void;
|
|
@@ -68,5 +70,7 @@ export declare class SceneProxy {
|
|
|
68
70
|
sortCellVertical(): Promise<void>;
|
|
69
71
|
sortCellHorizontal(): Promise<void>;
|
|
70
72
|
highPerformanceGetCell(col: number, row: number, getShadow?: boolean): Group;
|
|
73
|
+
updateDeltaY(y: number, screenTopY?: number, screenTopRow?: number): void;
|
|
74
|
+
updateDeltaX(x: number, screenLeftX?: number, screenLeftCol?: number): void;
|
|
71
75
|
release(): void;
|
|
72
76
|
}
|