@visactor/vtable 0.16.3-alpha.0 → 0.16.3

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.
Files changed (93) hide show
  1. package/cjs/core/BaseTable.js +1 -1
  2. package/cjs/core/BaseTable.js.map +1 -1
  3. package/cjs/core/tableHelper.js +1 -2
  4. package/cjs/dataset/flatDataToObject.js +2 -1
  5. package/cjs/event/scroll.js +1 -0
  6. package/cjs/event/util.js +0 -1
  7. package/cjs/index.d.ts +1 -1
  8. package/cjs/index.js +1 -1
  9. package/cjs/index.js.map +1 -1
  10. package/cjs/layout/pivot-header-layout.js +15 -5
  11. package/cjs/layout/pivot-header-layout.js.map +1 -1
  12. package/cjs/layout/pivot-layout-helper.js +3 -1
  13. package/cjs/layout/pivot-layout-helper.js.map +1 -1
  14. package/cjs/scenegraph/component/custom.d.ts +1 -1
  15. package/cjs/scenegraph/component/custom.js +10 -4
  16. package/cjs/scenegraph/component/custom.js.map +1 -1
  17. package/cjs/scenegraph/group-creater/cell-helper.js +1 -1
  18. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  19. package/cjs/scenegraph/layout/compute-col-width.js +7 -2
  20. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  21. package/cjs/scenegraph/layout/compute-row-height.js +8 -3
  22. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  23. package/cjs/scenegraph/layout/update-height.js +3 -1
  24. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  25. package/cjs/scenegraph/layout/update-width.js +3 -1
  26. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  27. package/cjs/scenegraph/scenegraph.d.ts +1 -0
  28. package/cjs/scenegraph/scenegraph.js +3 -2
  29. package/cjs/scenegraph/scenegraph.js.map +1 -1
  30. package/cjs/scenegraph/select/update-select-border.js +12 -0
  31. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  32. package/cjs/state/hover/is-cell-hover.js +12 -9
  33. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  34. package/cjs/ts-types/customLayout.d.ts +1 -0
  35. package/cjs/ts-types/customLayout.js.map +1 -1
  36. package/cjs/ts-types/list-table/define/basic-define.d.ts +0 -1
  37. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  38. package/cjs/ts-types/pivot-table/corner.d.ts +2 -0
  39. package/cjs/ts-types/pivot-table/corner.js.map +1 -1
  40. package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +2 -0
  41. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  42. package/cjs/ts-types/pivot-table/indicator/basic-indicator.d.ts +4 -0
  43. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  44. package/cjs/ts-types/pivot-table/title.d.ts +2 -0
  45. package/cjs/ts-types/pivot-table/title.js.map +1 -1
  46. package/dist/vtable.js +102 -21
  47. package/dist/vtable.min.js +2 -2
  48. package/es/core/BaseTable.js +1 -1
  49. package/es/core/BaseTable.js.map +1 -1
  50. package/es/core/tableHelper.js +1 -2
  51. package/es/dataset/flatDataToObject.js +2 -1
  52. package/es/event/scroll.js +2 -1
  53. package/es/event/util.js +1 -2
  54. package/es/index.d.ts +1 -1
  55. package/es/index.js +1 -1
  56. package/es/index.js.map +1 -1
  57. package/es/layout/pivot-header-layout.js +15 -5
  58. package/es/layout/pivot-header-layout.js.map +1 -1
  59. package/es/layout/pivot-layout-helper.js +3 -1
  60. package/es/layout/pivot-layout-helper.js.map +1 -1
  61. package/es/scenegraph/component/custom.d.ts +1 -1
  62. package/es/scenegraph/component/custom.js +10 -4
  63. package/es/scenegraph/component/custom.js.map +1 -1
  64. package/es/scenegraph/group-creater/cell-helper.js +1 -1
  65. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  66. package/es/scenegraph/layout/compute-col-width.js +6 -2
  67. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  68. package/es/scenegraph/layout/compute-row-height.js +7 -3
  69. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  70. package/es/scenegraph/layout/update-height.js +1 -1
  71. package/es/scenegraph/layout/update-height.js.map +1 -1
  72. package/es/scenegraph/layout/update-width.js +1 -1
  73. package/es/scenegraph/layout/update-width.js.map +1 -1
  74. package/es/scenegraph/scenegraph.d.ts +1 -0
  75. package/es/scenegraph/scenegraph.js +3 -2
  76. package/es/scenegraph/scenegraph.js.map +1 -1
  77. package/es/scenegraph/select/update-select-border.js +12 -0
  78. package/es/scenegraph/select/update-select-border.js.map +1 -1
  79. package/es/state/hover/is-cell-hover.js +12 -9
  80. package/es/state/hover/is-cell-hover.js.map +1 -1
  81. package/es/ts-types/customLayout.d.ts +1 -0
  82. package/es/ts-types/customLayout.js.map +1 -1
  83. package/es/ts-types/list-table/define/basic-define.d.ts +0 -1
  84. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  85. package/es/ts-types/pivot-table/corner.d.ts +2 -0
  86. package/es/ts-types/pivot-table/corner.js.map +1 -1
  87. package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +2 -0
  88. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  89. package/es/ts-types/pivot-table/indicator/basic-indicator.d.ts +4 -0
  90. package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  91. package/es/ts-types/pivot-table/title.d.ts +2 -0
  92. package/es/ts-types/pivot-table/title.js.map +1 -1
  93. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/select/update-select-border.ts"],"names":[],"mappings":"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","file":"update-select-border.js","sourcesContent":["import type { IRect } from '@visactor/vrender';\nimport type { Scenegraph } from '../scenegraph';\nimport type { CellSubLocation } from '../../ts-types';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\n\nexport function updateAllSelectComponent(scene: Scenegraph) {\n scene.selectingRangeComponents.forEach((selectComp: { rect: IRect; role: CellSubLocation }, key: string) => {\n updateComponent(selectComp, key, scene);\n });\n scene.selectedRangeComponents.forEach((selectComp: { rect: IRect; role: CellSubLocation }, key: string) => {\n updateComponent(selectComp, key, scene);\n });\n}\n\nfunction updateComponent(selectComp: { rect: IRect; role: CellSubLocation }, key: string, scene: Scenegraph) {\n const [startColStr, startRowStr, endColStr, endRowStr] = key.split('-');\n const startCol = parseInt(startColStr, 10);\n const startRow = parseInt(startRowStr, 10);\n const endCol = parseInt(endColStr, 10);\n const endRow = parseInt(endRowStr, 10);\n // 下面为计算选中区域使用的行列值\n let computeRectCellRangeStartCol = startCol;\n let computeRectCellRangeStartRow = startRow;\n let computeRectCellRangeEndCol = endCol;\n let computeRectCellRangeEndRow = endRow;\n // 下面逻辑根据选中区域所属表格部分 来判断可视区域内容的选中单元格范围\n let visibleCellRange;\n switch (selectComp.role) {\n case 'rowHeader':\n visibleCellRange = scene.table.getBodyVisibleRowRange();\n if (visibleCellRange) {\n computeRectCellRangeStartRow = Math.max(startRow, visibleCellRange.rowStart - 1);\n computeRectCellRangeEndRow = Math.min(endRow, visibleCellRange.rowEnd + 1);\n }\n break;\n case 'columnHeader':\n visibleCellRange = scene.table.getBodyVisibleCellRange();\n if (visibleCellRange) {\n computeRectCellRangeStartCol = Math.max(startCol, visibleCellRange.colStart - 1);\n computeRectCellRangeEndCol = Math.min(endCol, visibleCellRange.colEnd + 1);\n }\n break;\n case 'cornerHeader':\n break;\n case 'bottomFrozen':\n visibleCellRange = scene.table.getBodyVisibleCellRange();\n if (visibleCellRange) {\n computeRectCellRangeStartCol = Math.max(startCol, visibleCellRange.colStart - 1);\n computeRectCellRangeEndCol = Math.min(endCol, visibleCellRange.colEnd + 1);\n }\n break;\n case 'rightFrozen':\n visibleCellRange = scene.table.getBodyVisibleCellRange();\n if (visibleCellRange) {\n computeRectCellRangeStartRow = Math.max(startRow, visibleCellRange.rowStart - 1);\n computeRectCellRangeEndRow = Math.min(endRow, visibleCellRange.rowEnd + 1);\n }\n break;\n case 'rightTopCorner':\n break;\n case 'leftBottomCorner':\n break;\n case 'rightBottomCorner':\n break;\n default:\n visibleCellRange = scene.table.getBodyVisibleCellRange();\n if (visibleCellRange) {\n computeRectCellRangeStartRow = Math.max(startRow, visibleCellRange.rowStart - 1);\n computeRectCellRangeEndRow = Math.min(endRow, visibleCellRange.rowEnd + 1);\n computeRectCellRangeStartCol = Math.max(startCol, visibleCellRange.colStart - 1);\n computeRectCellRangeEndCol = Math.min(endCol, visibleCellRange.colEnd + 1);\n }\n break;\n }\n // const cellRange = scene.table.getCellRange(startCol, startRow);\n // const colsWidth = scene.table.getColsWidth(cellRange.start.col, endCol);\n // const rowsHeight = scene.table.getRowsHeight(cellRange.start.row, endRow);\n const colsWidth = scene.table.getColsWidth(computeRectCellRangeStartCol, computeRectCellRangeEndCol);\n const rowsHeight = scene.table.getRowsHeight(computeRectCellRangeStartRow, computeRectCellRangeEndRow);\n const firstCellBound = scene.highPerformanceGetCell(\n computeRectCellRangeStartCol,\n computeRectCellRangeStartRow\n ).globalAABBBounds;\n\n selectComp.rect.setAttributes({\n x: firstCellBound.x1 - scene.tableGroup.attribute.x, //坐标xy在下面的逻辑中会做适当调整\n y: firstCellBound.y1 - scene.tableGroup.attribute.y,\n width: colsWidth,\n height: rowsHeight,\n visible: true\n });\n\n //#region 判断是不是按着表头部分的选中框 因为绘制层级的原因 线宽会被遮住一半,因此需要动态调整层级\n const isNearRowHeader = scene.table.frozenColCount ? startCol === scene.table.frozenColCount : false;\n const isNearRightRowHeader = scene.table.rightFrozenColCount\n ? scene.table.rightFrozenColCount > 0 && endCol === scene.table.colCount - scene.table.rightFrozenColCount - 1\n : false;\n const isNearColHeader = scene.table.frozenRowCount ? startRow === scene.table.frozenRowCount : true;\n const isNearBottomColHeader = scene.table.bottomFrozenRowCount\n ? endRow === scene.table.rowCount - scene.table.bottomFrozenRowCount - 1\n : false;\n if (\n (isNearRowHeader && selectComp.rect.attribute.stroke[3]) ||\n (isNearRightRowHeader && selectComp.rect.attribute.stroke[1]) ||\n (isNearColHeader && selectComp.rect.attribute.stroke[0]) ||\n (isNearBottomColHeader && selectComp.rect.attribute.stroke[2])\n ) {\n if (isNearRowHeader && selectComp.rect.attribute.stroke[3]) {\n scene.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'columnHeader'\n ? scene.cornerHeaderGroup\n : selectComp.role === 'bottomFrozen'\n ? scene.leftBottomCornerGroup\n : scene.rowHeaderGroup\n );\n }\n\n if (isNearBottomColHeader && selectComp.rect.attribute.stroke[2]) {\n scene.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'rowHeader'\n ? scene.leftBottomCornerGroup\n : selectComp.role === 'rightFrozen'\n ? scene.rightBottomCornerGroup\n : scene.bottomFrozenGroup\n );\n }\n\n if (isNearColHeader && selectComp.rect.attribute.stroke[0]) {\n scene.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'rowHeader'\n ? scene.cornerHeaderGroup\n : selectComp.role === 'rightFrozen'\n ? scene.rightTopCornerGroup\n : scene.colHeaderGroup\n );\n }\n if (isNearRightRowHeader && selectComp.rect.attribute.stroke[1]) {\n scene.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'columnHeader'\n ? scene.rightTopCornerGroup\n : selectComp.role === 'bottomFrozen'\n ? scene.rightBottomCornerGroup\n : scene.rightFrozenGroup\n );\n }\n\n //#region 调整层级后 滚动情况下会出现绘制范围出界 如body的选中框 渲染在了rowheader上面,所有需要调整选中框rect的 边界\n if (\n selectComp.rect.attribute.x < scene.table.getFrozenColsWidth() &&\n // selectComp.rect.attribute.x + selectComp.rect.attribute.width > scene.rowHeaderGroup.attribute.width &&\n scene.table.scrollLeft > 0 &&\n (selectComp.role === 'body' || selectComp.role === 'columnHeader' || selectComp.role === 'bottomFrozen')\n ) {\n selectComp.rect.setAttributes({\n x: selectComp.rect.attribute.x + (scene.table.getFrozenColsWidth() - selectComp.rect.attribute.x),\n width: selectComp.rect.attribute.width - (scene.table.getFrozenColsWidth() - selectComp.rect.attribute.x)\n });\n }\n if (\n // selectComp.rect.attribute.x < scene.rightFrozenGroup.attribute.x &&\n scene.table.getRightFrozenColsWidth() > 0 && // right冻结列存在的情况下\n scene.rightFrozenGroup.attribute.height > 0 &&\n selectComp.rect.attribute.x + selectComp.rect.attribute.width > scene.rightFrozenGroup.attribute.x &&\n (selectComp.role === 'body' || selectComp.role === 'columnHeader' || selectComp.role === 'bottomFrozen')\n ) {\n selectComp.rect.setAttributes({\n x: selectComp.rect.attribute.x,\n width: scene.rightFrozenGroup.attribute.x - selectComp.rect.attribute.x\n });\n }\n if (\n selectComp.rect.attribute.y < scene.colHeaderGroup.attribute.height &&\n scene.table.scrollTop > 0 &&\n (selectComp.role === 'body' || selectComp.role === 'rowHeader' || selectComp.role === 'rightFrozen')\n ) {\n selectComp.rect.setAttributes({\n y: selectComp.rect.attribute.y + (scene.colHeaderGroup.attribute.height - selectComp.rect.attribute.y),\n height: selectComp.rect.attribute.height - (scene.colHeaderGroup.attribute.height - selectComp.rect.attribute.y)\n });\n }\n if (\n scene.bottomFrozenGroup.attribute.width > 0 &&\n scene.bottomFrozenGroup.attribute.height > 0 &&\n selectComp.rect.attribute.y + selectComp.rect.attribute.height > scene.bottomFrozenGroup.attribute.y &&\n (selectComp.role === 'body' || selectComp.role === 'rowHeader' || selectComp.role === 'rightFrozen')\n ) {\n selectComp.rect.setAttributes({\n y: selectComp.rect.attribute.y,\n height: scene.bottomFrozenGroup.attribute.y - selectComp.rect.attribute.y\n });\n }\n //#endregion\n } else {\n scene.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'body'\n ? scene.bodyGroup\n : selectComp.role === 'columnHeader'\n ? scene.colHeaderGroup\n : selectComp.role === 'rowHeader'\n ? scene.rowHeaderGroup\n : selectComp.role === 'cornerHeader'\n ? scene.cornerHeaderGroup\n : selectComp.role === 'rightTopCorner'\n ? scene.rightTopCornerGroup\n : selectComp.role === 'rightFrozen'\n ? scene.rightFrozenGroup\n : selectComp.role === 'leftBottomCorner'\n ? scene.leftBottomCornerGroup\n : selectComp.role === 'bottomFrozen'\n ? scene.bottomFrozenGroup\n : scene.rightBottomCornerGroup\n );\n }\n //#endregion\n}\n\nexport function updateCellSelectBorder(\n scene: Scenegraph,\n newStartCol: number,\n newStartRow: number,\n newEndCol: number,\n newEndRow: number\n) {\n let startCol = Math.min(newEndCol, newStartCol);\n let startRow = Math.min(newEndRow, newStartRow);\n let endCol = Math.max(newEndCol, newStartCol);\n let endRow = Math.max(newEndRow, newStartRow);\n //#region region 校验四周的单元格有没有合并的情况,如有则扩大范围\n const extendSelectRange = () => {\n let isExtend = false;\n for (let col = startCol; col <= endCol; col++) {\n if (col === startCol) {\n for (let row = startRow; row <= endRow; row++) {\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo && mergeInfo.start.col < startCol) {\n startCol = mergeInfo.start.col;\n isExtend = true;\n break;\n }\n }\n }\n if (!isExtend && col === endCol) {\n for (let row = startRow; row <= endRow; row++) {\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo && mergeInfo.end.col > endCol) {\n endCol = mergeInfo.end.col;\n isExtend = true;\n break;\n }\n }\n }\n\n if (isExtend) {\n break;\n }\n }\n if (!isExtend) {\n for (let row = startRow; row <= endRow; row++) {\n if (row === startRow) {\n for (let col = startCol; col <= endCol; col++) {\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo && mergeInfo.start.row < startRow) {\n startRow = mergeInfo.start.row;\n isExtend = true;\n break;\n }\n }\n }\n if (!isExtend && row === endRow) {\n for (let col = startCol; col <= endCol; col++) {\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo && mergeInfo.end.row > endRow) {\n endRow = mergeInfo.end.row;\n isExtend = true;\n break;\n }\n }\n }\n\n if (isExtend) {\n break;\n }\n }\n }\n if (isExtend) {\n extendSelectRange();\n }\n };\n extendSelectRange();\n //#endregion\n scene.selectingRangeComponents.forEach((selectComp: { rect: IRect; role: CellSubLocation }, key: string) => {\n selectComp.rect.delete();\n });\n scene.selectingRangeComponents = new Map();\n\n let needRowHeader = false;\n let needRightRowHeader = false; // 右侧冻结\n let needColumnHeader = false;\n let needBottomColumnHeader = false; // 底部冻结\n let needBody = false;\n let needCornerHeader = false;\n let needRightTopCornerHeader = false;\n let needRightBottomCornerHeader = false;\n let needLeftBottomCornerHeader = false;\n if (startCol <= scene.table.frozenColCount - 1 && startRow <= scene.table.frozenRowCount - 1) {\n needCornerHeader = true;\n }\n if (endCol >= scene.table.colCount - scene.table.rightFrozenColCount && startRow <= scene.table.frozenRowCount - 1) {\n needRightTopCornerHeader = true;\n }\n\n if (startCol <= scene.table.frozenColCount - 1 && endRow >= scene.table.rowCount - scene.table.bottomFrozenRowCount) {\n needLeftBottomCornerHeader = true;\n }\n\n if (\n endCol >= scene.table.colCount - scene.table.rightFrozenColCount &&\n endRow >= scene.table.rowCount - scene.table.bottomFrozenRowCount\n ) {\n needRightBottomCornerHeader = true;\n }\n\n if (\n startCol <= scene.table.frozenColCount - 1 &&\n endRow >= scene.table.frozenRowCount &&\n startRow <= scene.table.rowCount - scene.table.bottomFrozenRowCount - 1\n ) {\n needRowHeader = true;\n }\n if (\n endCol >= scene.table.colCount - scene.table.rightFrozenColCount &&\n endRow >= scene.table.frozenRowCount &&\n startRow <= scene.table.rowCount - scene.table.bottomFrozenRowCount - 1\n ) {\n needRightRowHeader = true;\n }\n\n if (\n startRow <= scene.table.frozenRowCount - 1 &&\n endCol >= scene.table.frozenColCount &&\n startCol <= scene.table.colCount - scene.table.rightFrozenColCount - 1\n ) {\n needColumnHeader = true;\n }\n if (\n endRow >= scene.table.rowCount - scene.table.bottomFrozenRowCount &&\n endCol >= scene.table.frozenColCount &&\n startCol <= scene.table.colCount - scene.table.rightFrozenColCount - 1\n ) {\n needBottomColumnHeader = true;\n }\n if (\n startCol <= scene.table.colCount - scene.table.rightFrozenColCount - 1 &&\n endCol >= scene.table.frozenColCount &&\n startRow <= scene.table.rowCount - scene.table.bottomFrozenRowCount - 1 &&\n endRow >= scene.table.frozenRowCount\n ) {\n needBody = true;\n }\n\n // TODO 可以尝试不拆分三个表头和body【前提是theme中合并配置】 用一个SelectBorder 需要结合clip,并动态设置border的范围【依据区域范围 已经是否跨表头及body】\n if (needCornerHeader) {\n const cornerEndCol = Math.min(endCol, scene.table.frozenColCount - 1);\n const cornerEndRow = Math.min(endRow, scene.table.frozenRowCount - 1);\n const strokeArray = [true, !needColumnHeader, !needRowHeader, true];\n scene.createCellSelectBorder(\n startCol,\n startRow,\n cornerEndCol,\n cornerEndRow,\n 'cornerHeader',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needRightTopCornerHeader) {\n const cornerStartCol = Math.max(startCol, scene.table.colCount - scene.table.rightFrozenColCount);\n const cornerEndRow = Math.min(endRow, scene.table.frozenRowCount - 1);\n const strokeArray = [true, true, !needRightRowHeader, !needColumnHeader];\n scene.createCellSelectBorder(\n cornerStartCol,\n startRow,\n endCol,\n cornerEndRow,\n 'rightTopCorner',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n\n if (needLeftBottomCornerHeader) {\n const cornerEndCol = Math.min(endCol, scene.table.frozenColCount - 1);\n const cornerStartRow = Math.max(startRow, scene.table.rowCount - scene.table.bottomFrozenRowCount);\n const strokeArray = [!needRowHeader, !needBottomColumnHeader, true, true];\n scene.createCellSelectBorder(\n startCol,\n cornerStartRow,\n cornerEndCol,\n endRow,\n 'leftBottomCorner',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needRightBottomCornerHeader) {\n const cornerStartCol = Math.max(startCol, scene.table.colCount - scene.table.rightFrozenColCount);\n const cornerStartRow = Math.max(startRow, scene.table.rowCount - scene.table.bottomFrozenRowCount);\n const strokeArray = [!needRightRowHeader, true, true, !needBottomColumnHeader];\n scene.createCellSelectBorder(\n cornerStartCol,\n cornerStartRow,\n endCol,\n endRow,\n 'rightBottomCorner',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needColumnHeader) {\n const columnHeaderStartCol = Math.max(startCol, scene.table.frozenColCount);\n const columnHeaderEndCol = Math.min(endCol, scene.table.colCount - scene.table.rightFrozenColCount - 1);\n const columnHeaderEndRow = Math.min(endRow, scene.table.frozenRowCount - 1);\n const strokeArray = [true, !needRightTopCornerHeader, !needBody, !needCornerHeader];\n scene.createCellSelectBorder(\n columnHeaderStartCol,\n startRow,\n columnHeaderEndCol,\n columnHeaderEndRow,\n 'columnHeader',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needBottomColumnHeader) {\n const columnHeaderStartCol = Math.max(startCol, scene.table.frozenColCount);\n const columnHeaderEndCol = Math.min(endCol, scene.table.colCount - scene.table.rightFrozenColCount - 1);\n const columnHeaderStartRow = Math.max(startRow, scene.table.rowCount - scene.table.bottomFrozenRowCount);\n const strokeArray = [!needBody, !needRightBottomCornerHeader, true, !needLeftBottomCornerHeader];\n scene.createCellSelectBorder(\n columnHeaderStartCol,\n columnHeaderStartRow,\n columnHeaderEndCol,\n endRow,\n 'bottomFrozen',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needRowHeader) {\n const columnHeaderStartRow = Math.max(startRow, scene.table.frozenRowCount);\n const columnHeaderEndRow = Math.min(endRow, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1);\n const columnHeaderEndCol = Math.min(endCol, scene.table.frozenColCount - 1);\n const strokeArray = [!needCornerHeader, !needBody, !needLeftBottomCornerHeader, true];\n scene.createCellSelectBorder(\n startCol,\n columnHeaderStartRow,\n columnHeaderEndCol,\n columnHeaderEndRow,\n 'rowHeader',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needRightRowHeader) {\n const columnHeaderStartRow = Math.max(startRow, scene.table.frozenRowCount);\n const columnHeaderEndRow = Math.min(endRow, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1);\n const columnHeaderStartCol = Math.max(startCol, scene.table.colCount - scene.table.rightFrozenColCount);\n const strokeArray = [!needRightTopCornerHeader, true, !needRightBottomCornerHeader, !needBody];\n scene.createCellSelectBorder(\n columnHeaderStartCol,\n columnHeaderStartRow,\n endCol,\n columnHeaderEndRow,\n 'rightFrozen',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needBody) {\n const columnHeaderStartCol = Math.max(startCol, scene.table.frozenColCount);\n const columnHeaderStartRow = Math.max(startRow, scene.table.frozenRowCount);\n const columnHeaderEndCol = Math.min(endCol, scene.table.colCount - scene.table.rightFrozenColCount - 1);\n const columnHeaderEndRow = Math.min(endRow, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1);\n const strokeArray = [!needColumnHeader, !needRightRowHeader, !needBottomColumnHeader, !needRowHeader];\n scene.createCellSelectBorder(\n columnHeaderStartCol,\n columnHeaderStartRow,\n columnHeaderEndCol,\n columnHeaderEndRow,\n 'body',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/select/update-select-border.ts"],"names":[],"mappings":"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","file":"update-select-border.js","sourcesContent":["import type { IRect } from '@visactor/vrender';\nimport type { Scenegraph } from '../scenegraph';\nimport type { CellSubLocation } from '../../ts-types';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\n\nexport function updateAllSelectComponent(scene: Scenegraph) {\n scene.selectingRangeComponents.forEach((selectComp: { rect: IRect; role: CellSubLocation }, key: string) => {\n updateComponent(selectComp, key, scene);\n });\n scene.selectedRangeComponents.forEach((selectComp: { rect: IRect; role: CellSubLocation }, key: string) => {\n updateComponent(selectComp, key, scene);\n });\n}\n\nfunction updateComponent(selectComp: { rect: IRect; role: CellSubLocation }, key: string, scene: Scenegraph) {\n const [startColStr, startRowStr, endColStr, endRowStr] = key.split('-');\n const startCol = parseInt(startColStr, 10);\n const startRow = parseInt(startRowStr, 10);\n const endCol = parseInt(endColStr, 10);\n const endRow = parseInt(endRowStr, 10);\n // 下面为计算选中区域使用的行列值\n let computeRectCellRangeStartCol = startCol;\n let computeRectCellRangeStartRow = startRow;\n let computeRectCellRangeEndCol = endCol;\n let computeRectCellRangeEndRow = endRow;\n // 下面逻辑根据选中区域所属表格部分 来判断可视区域内容的选中单元格范围\n let visibleCellRange;\n switch (selectComp.role) {\n case 'rowHeader':\n visibleCellRange = scene.table.getBodyVisibleRowRange();\n if (visibleCellRange) {\n computeRectCellRangeStartRow = Math.max(startRow, visibleCellRange.rowStart - 1);\n computeRectCellRangeEndRow = Math.min(endRow, visibleCellRange.rowEnd + 1);\n }\n break;\n case 'columnHeader':\n visibleCellRange = scene.table.getBodyVisibleCellRange();\n if (visibleCellRange) {\n computeRectCellRangeStartCol = Math.max(startCol, visibleCellRange.colStart - 1);\n computeRectCellRangeEndCol = Math.min(endCol, visibleCellRange.colEnd + 1);\n }\n break;\n case 'cornerHeader':\n break;\n case 'bottomFrozen':\n visibleCellRange = scene.table.getBodyVisibleCellRange();\n if (visibleCellRange) {\n computeRectCellRangeStartCol = Math.max(startCol, visibleCellRange.colStart - 1);\n computeRectCellRangeEndCol = Math.min(endCol, visibleCellRange.colEnd + 1);\n }\n break;\n case 'rightFrozen':\n visibleCellRange = scene.table.getBodyVisibleCellRange();\n if (visibleCellRange) {\n computeRectCellRangeStartRow = Math.max(startRow, visibleCellRange.rowStart - 1);\n computeRectCellRangeEndRow = Math.min(endRow, visibleCellRange.rowEnd + 1);\n }\n break;\n case 'rightTopCorner':\n break;\n case 'leftBottomCorner':\n break;\n case 'rightBottomCorner':\n break;\n default:\n visibleCellRange = scene.table.getBodyVisibleCellRange();\n if (visibleCellRange) {\n computeRectCellRangeStartRow = Math.max(startRow, visibleCellRange.rowStart - 1);\n computeRectCellRangeEndRow = Math.min(endRow, visibleCellRange.rowEnd + 1);\n computeRectCellRangeStartCol = Math.max(startCol, visibleCellRange.colStart - 1);\n computeRectCellRangeEndCol = Math.min(endCol, visibleCellRange.colEnd + 1);\n }\n break;\n }\n // const cellRange = scene.table.getCellRange(startCol, startRow);\n // const colsWidth = scene.table.getColsWidth(cellRange.start.col, endCol);\n // const rowsHeight = scene.table.getRowsHeight(cellRange.start.row, endRow);\n const colsWidth = scene.table.getColsWidth(computeRectCellRangeStartCol, computeRectCellRangeEndCol);\n const rowsHeight = scene.table.getRowsHeight(computeRectCellRangeStartRow, computeRectCellRangeEndRow);\n const firstCellBound = scene.highPerformanceGetCell(\n computeRectCellRangeStartCol,\n computeRectCellRangeStartRow\n ).globalAABBBounds;\n\n selectComp.rect.setAttributes({\n x: firstCellBound.x1 - scene.tableGroup.attribute.x, //坐标xy在下面的逻辑中会做适当调整\n y: firstCellBound.y1 - scene.tableGroup.attribute.y,\n width: colsWidth,\n height: rowsHeight,\n visible: true\n });\n\n //#region 判断是不是按着表头部分的选中框 因为绘制层级的原因 线宽会被遮住一半,因此需要动态调整层级\n const isNearRowHeader = scene.table.frozenColCount ? startCol === scene.table.frozenColCount : false;\n const isNearRightRowHeader = scene.table.rightFrozenColCount\n ? scene.table.rightFrozenColCount > 0 && endCol === scene.table.colCount - scene.table.rightFrozenColCount - 1\n : false;\n const isNearColHeader = scene.table.frozenRowCount ? startRow === scene.table.frozenRowCount : true;\n const isNearBottomColHeader = scene.table.bottomFrozenRowCount\n ? endRow === scene.table.rowCount - scene.table.bottomFrozenRowCount - 1\n : false;\n if (\n (isNearRowHeader && selectComp.rect.attribute.stroke[3]) ||\n (isNearRightRowHeader && selectComp.rect.attribute.stroke[1]) ||\n (isNearColHeader && selectComp.rect.attribute.stroke[0]) ||\n (isNearBottomColHeader && selectComp.rect.attribute.stroke[2])\n ) {\n if (isNearRowHeader && selectComp.rect.attribute.stroke[3]) {\n scene.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'columnHeader'\n ? scene.cornerHeaderGroup\n : selectComp.role === 'bottomFrozen'\n ? scene.leftBottomCornerGroup\n : scene.rowHeaderGroup\n );\n }\n\n if (isNearBottomColHeader && selectComp.rect.attribute.stroke[2]) {\n scene.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'rowHeader'\n ? scene.leftBottomCornerGroup\n : selectComp.role === 'rightFrozen'\n ? scene.rightBottomCornerGroup\n : scene.bottomFrozenGroup\n );\n }\n\n if (isNearColHeader && selectComp.rect.attribute.stroke[0]) {\n scene.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'rowHeader'\n ? scene.cornerHeaderGroup\n : selectComp.role === 'rightFrozen'\n ? scene.rightTopCornerGroup\n : scene.colHeaderGroup\n );\n }\n if (isNearRightRowHeader && selectComp.rect.attribute.stroke[1]) {\n scene.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'columnHeader'\n ? scene.rightTopCornerGroup\n : selectComp.role === 'bottomFrozen'\n ? scene.rightBottomCornerGroup\n : scene.rightFrozenGroup\n );\n }\n\n //#region 调整层级后 滚动情况下会出现绘制范围出界 如body的选中框 渲染在了rowheader上面,所有需要调整选中框rect的 边界\n if (\n selectComp.rect.attribute.x < scene.table.getFrozenColsWidth() &&\n // selectComp.rect.attribute.x + selectComp.rect.attribute.width > scene.rowHeaderGroup.attribute.width &&\n scene.table.scrollLeft > 0 &&\n (selectComp.role === 'body' || selectComp.role === 'columnHeader' || selectComp.role === 'bottomFrozen')\n ) {\n selectComp.rect.setAttributes({\n x: selectComp.rect.attribute.x + (scene.table.getFrozenColsWidth() - selectComp.rect.attribute.x),\n width: selectComp.rect.attribute.width - (scene.table.getFrozenColsWidth() - selectComp.rect.attribute.x)\n });\n }\n if (\n // selectComp.rect.attribute.x < scene.rightFrozenGroup.attribute.x &&\n scene.table.getRightFrozenColsWidth() > 0 && // right冻结列存在的情况下\n scene.rightFrozenGroup.attribute.height > 0 &&\n selectComp.rect.attribute.x + selectComp.rect.attribute.width > scene.rightFrozenGroup.attribute.x &&\n (selectComp.role === 'body' || selectComp.role === 'columnHeader' || selectComp.role === 'bottomFrozen')\n ) {\n selectComp.rect.setAttributes({\n x: selectComp.rect.attribute.x,\n width: scene.rightFrozenGroup.attribute.x - selectComp.rect.attribute.x\n });\n }\n if (\n selectComp.rect.attribute.y < scene.colHeaderGroup.attribute.height &&\n scene.table.scrollTop > 0 &&\n (selectComp.role === 'body' || selectComp.role === 'rowHeader' || selectComp.role === 'rightFrozen')\n ) {\n selectComp.rect.setAttributes({\n y: selectComp.rect.attribute.y + (scene.colHeaderGroup.attribute.height - selectComp.rect.attribute.y),\n height: selectComp.rect.attribute.height - (scene.colHeaderGroup.attribute.height - selectComp.rect.attribute.y)\n });\n }\n if (\n scene.bottomFrozenGroup.attribute.width > 0 &&\n scene.bottomFrozenGroup.attribute.height > 0 &&\n selectComp.rect.attribute.y + selectComp.rect.attribute.height > scene.bottomFrozenGroup.attribute.y &&\n (selectComp.role === 'body' || selectComp.role === 'rowHeader' || selectComp.role === 'rightFrozen')\n ) {\n selectComp.rect.setAttributes({\n y: selectComp.rect.attribute.y,\n height: scene.bottomFrozenGroup.attribute.y - selectComp.rect.attribute.y\n });\n }\n //#endregion\n } else {\n scene.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'body'\n ? scene.bodyGroup\n : selectComp.role === 'columnHeader'\n ? scene.colHeaderGroup\n : selectComp.role === 'rowHeader'\n ? scene.rowHeaderGroup\n : selectComp.role === 'cornerHeader'\n ? scene.cornerHeaderGroup\n : selectComp.role === 'rightTopCorner'\n ? scene.rightTopCornerGroup\n : selectComp.role === 'rightFrozen'\n ? scene.rightFrozenGroup\n : selectComp.role === 'leftBottomCorner'\n ? scene.leftBottomCornerGroup\n : selectComp.role === 'bottomFrozen'\n ? scene.bottomFrozenGroup\n : scene.rightBottomCornerGroup\n );\n }\n //#endregion\n\n //#region 处理边缘被截问题\n const diffSize = Math.ceil(selectComp.rect.attribute.lineWidth / 2);\n if (endCol === scene.table.colCount - 1) {\n selectComp.rect.setAttributes({\n width: selectComp.rect.attribute.width - diffSize\n });\n }\n if (startCol === 0) {\n selectComp.rect.setAttributes({\n x: selectComp.rect.attribute.x + diffSize,\n width: selectComp.rect.attribute.width - diffSize\n });\n }\n if (endRow === scene.table.rowCount - 1) {\n selectComp.rect.setAttributes({\n height: selectComp.rect.attribute.height - diffSize\n });\n }\n if (startRow === 0) {\n selectComp.rect.setAttributes({\n y: selectComp.rect.attribute.y + diffSize,\n height: selectComp.rect.attribute.height - diffSize\n });\n }\n //#endregion\n}\n\nexport function updateCellSelectBorder(\n scene: Scenegraph,\n newStartCol: number,\n newStartRow: number,\n newEndCol: number,\n newEndRow: number\n) {\n let startCol = Math.min(newEndCol, newStartCol);\n let startRow = Math.min(newEndRow, newStartRow);\n let endCol = Math.max(newEndCol, newStartCol);\n let endRow = Math.max(newEndRow, newStartRow);\n //#region region 校验四周的单元格有没有合并的情况,如有则扩大范围\n const extendSelectRange = () => {\n let isExtend = false;\n for (let col = startCol; col <= endCol; col++) {\n if (col === startCol) {\n for (let row = startRow; row <= endRow; row++) {\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo && mergeInfo.start.col < startCol) {\n startCol = mergeInfo.start.col;\n isExtend = true;\n break;\n }\n }\n }\n if (!isExtend && col === endCol) {\n for (let row = startRow; row <= endRow; row++) {\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo && mergeInfo.end.col > endCol) {\n endCol = mergeInfo.end.col;\n isExtend = true;\n break;\n }\n }\n }\n\n if (isExtend) {\n break;\n }\n }\n if (!isExtend) {\n for (let row = startRow; row <= endRow; row++) {\n if (row === startRow) {\n for (let col = startCol; col <= endCol; col++) {\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo && mergeInfo.start.row < startRow) {\n startRow = mergeInfo.start.row;\n isExtend = true;\n break;\n }\n }\n }\n if (!isExtend && row === endRow) {\n for (let col = startCol; col <= endCol; col++) {\n const mergeInfo = getCellMergeInfo(scene.table, col, row);\n if (mergeInfo && mergeInfo.end.row > endRow) {\n endRow = mergeInfo.end.row;\n isExtend = true;\n break;\n }\n }\n }\n\n if (isExtend) {\n break;\n }\n }\n }\n if (isExtend) {\n extendSelectRange();\n }\n };\n extendSelectRange();\n //#endregion\n scene.selectingRangeComponents.forEach((selectComp: { rect: IRect; role: CellSubLocation }, key: string) => {\n selectComp.rect.delete();\n });\n scene.selectingRangeComponents = new Map();\n\n let needRowHeader = false;\n let needRightRowHeader = false; // 右侧冻结\n let needColumnHeader = false;\n let needBottomColumnHeader = false; // 底部冻结\n let needBody = false;\n let needCornerHeader = false;\n let needRightTopCornerHeader = false;\n let needRightBottomCornerHeader = false;\n let needLeftBottomCornerHeader = false;\n if (startCol <= scene.table.frozenColCount - 1 && startRow <= scene.table.frozenRowCount - 1) {\n needCornerHeader = true;\n }\n if (endCol >= scene.table.colCount - scene.table.rightFrozenColCount && startRow <= scene.table.frozenRowCount - 1) {\n needRightTopCornerHeader = true;\n }\n\n if (startCol <= scene.table.frozenColCount - 1 && endRow >= scene.table.rowCount - scene.table.bottomFrozenRowCount) {\n needLeftBottomCornerHeader = true;\n }\n\n if (\n endCol >= scene.table.colCount - scene.table.rightFrozenColCount &&\n endRow >= scene.table.rowCount - scene.table.bottomFrozenRowCount\n ) {\n needRightBottomCornerHeader = true;\n }\n\n if (\n startCol <= scene.table.frozenColCount - 1 &&\n endRow >= scene.table.frozenRowCount &&\n startRow <= scene.table.rowCount - scene.table.bottomFrozenRowCount - 1\n ) {\n needRowHeader = true;\n }\n if (\n endCol >= scene.table.colCount - scene.table.rightFrozenColCount &&\n endRow >= scene.table.frozenRowCount &&\n startRow <= scene.table.rowCount - scene.table.bottomFrozenRowCount - 1\n ) {\n needRightRowHeader = true;\n }\n\n if (\n startRow <= scene.table.frozenRowCount - 1 &&\n endCol >= scene.table.frozenColCount &&\n startCol <= scene.table.colCount - scene.table.rightFrozenColCount - 1\n ) {\n needColumnHeader = true;\n }\n if (\n endRow >= scene.table.rowCount - scene.table.bottomFrozenRowCount &&\n endCol >= scene.table.frozenColCount &&\n startCol <= scene.table.colCount - scene.table.rightFrozenColCount - 1\n ) {\n needBottomColumnHeader = true;\n }\n if (\n startCol <= scene.table.colCount - scene.table.rightFrozenColCount - 1 &&\n endCol >= scene.table.frozenColCount &&\n startRow <= scene.table.rowCount - scene.table.bottomFrozenRowCount - 1 &&\n endRow >= scene.table.frozenRowCount\n ) {\n needBody = true;\n }\n\n // TODO 可以尝试不拆分三个表头和body【前提是theme中合并配置】 用一个SelectBorder 需要结合clip,并动态设置border的范围【依据区域范围 已经是否跨表头及body】\n if (needCornerHeader) {\n const cornerEndCol = Math.min(endCol, scene.table.frozenColCount - 1);\n const cornerEndRow = Math.min(endRow, scene.table.frozenRowCount - 1);\n const strokeArray = [true, !needColumnHeader, !needRowHeader, true];\n scene.createCellSelectBorder(\n startCol,\n startRow,\n cornerEndCol,\n cornerEndRow,\n 'cornerHeader',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needRightTopCornerHeader) {\n const cornerStartCol = Math.max(startCol, scene.table.colCount - scene.table.rightFrozenColCount);\n const cornerEndRow = Math.min(endRow, scene.table.frozenRowCount - 1);\n const strokeArray = [true, true, !needRightRowHeader, !needColumnHeader];\n scene.createCellSelectBorder(\n cornerStartCol,\n startRow,\n endCol,\n cornerEndRow,\n 'rightTopCorner',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n\n if (needLeftBottomCornerHeader) {\n const cornerEndCol = Math.min(endCol, scene.table.frozenColCount - 1);\n const cornerStartRow = Math.max(startRow, scene.table.rowCount - scene.table.bottomFrozenRowCount);\n const strokeArray = [!needRowHeader, !needBottomColumnHeader, true, true];\n scene.createCellSelectBorder(\n startCol,\n cornerStartRow,\n cornerEndCol,\n endRow,\n 'leftBottomCorner',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needRightBottomCornerHeader) {\n const cornerStartCol = Math.max(startCol, scene.table.colCount - scene.table.rightFrozenColCount);\n const cornerStartRow = Math.max(startRow, scene.table.rowCount - scene.table.bottomFrozenRowCount);\n const strokeArray = [!needRightRowHeader, true, true, !needBottomColumnHeader];\n scene.createCellSelectBorder(\n cornerStartCol,\n cornerStartRow,\n endCol,\n endRow,\n 'rightBottomCorner',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needColumnHeader) {\n const columnHeaderStartCol = Math.max(startCol, scene.table.frozenColCount);\n const columnHeaderEndCol = Math.min(endCol, scene.table.colCount - scene.table.rightFrozenColCount - 1);\n const columnHeaderEndRow = Math.min(endRow, scene.table.frozenRowCount - 1);\n const strokeArray = [true, !needRightTopCornerHeader, !needBody, !needCornerHeader];\n scene.createCellSelectBorder(\n columnHeaderStartCol,\n startRow,\n columnHeaderEndCol,\n columnHeaderEndRow,\n 'columnHeader',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needBottomColumnHeader) {\n const columnHeaderStartCol = Math.max(startCol, scene.table.frozenColCount);\n const columnHeaderEndCol = Math.min(endCol, scene.table.colCount - scene.table.rightFrozenColCount - 1);\n const columnHeaderStartRow = Math.max(startRow, scene.table.rowCount - scene.table.bottomFrozenRowCount);\n const strokeArray = [!needBody, !needRightBottomCornerHeader, true, !needLeftBottomCornerHeader];\n scene.createCellSelectBorder(\n columnHeaderStartCol,\n columnHeaderStartRow,\n columnHeaderEndCol,\n endRow,\n 'bottomFrozen',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needRowHeader) {\n const columnHeaderStartRow = Math.max(startRow, scene.table.frozenRowCount);\n const columnHeaderEndRow = Math.min(endRow, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1);\n const columnHeaderEndCol = Math.min(endCol, scene.table.frozenColCount - 1);\n const strokeArray = [!needCornerHeader, !needBody, !needLeftBottomCornerHeader, true];\n scene.createCellSelectBorder(\n startCol,\n columnHeaderStartRow,\n columnHeaderEndCol,\n columnHeaderEndRow,\n 'rowHeader',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needRightRowHeader) {\n const columnHeaderStartRow = Math.max(startRow, scene.table.frozenRowCount);\n const columnHeaderEndRow = Math.min(endRow, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1);\n const columnHeaderStartCol = Math.max(startCol, scene.table.colCount - scene.table.rightFrozenColCount);\n const strokeArray = [!needRightTopCornerHeader, true, !needRightBottomCornerHeader, !needBody];\n scene.createCellSelectBorder(\n columnHeaderStartCol,\n columnHeaderStartRow,\n endCol,\n columnHeaderEndRow,\n 'rightFrozen',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needBody) {\n const columnHeaderStartCol = Math.max(startCol, scene.table.frozenColCount);\n const columnHeaderStartRow = Math.max(startRow, scene.table.frozenRowCount);\n const columnHeaderEndCol = Math.min(endCol, scene.table.colCount - scene.table.rightFrozenColCount - 1);\n const columnHeaderEndRow = Math.min(endRow, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1);\n const strokeArray = [!needColumnHeader, !needRightRowHeader, !needBottomColumnHeader, !needRowHeader];\n scene.createCellSelectBorder(\n columnHeaderStartCol,\n columnHeaderStartRow,\n columnHeaderEndCol,\n columnHeaderEndRow,\n 'body',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n}\n"]}
@@ -22,17 +22,20 @@ function getCellHoverColor(cellGroup, table) {
22
22
  }
23
23
 
24
24
  function isCellHover(state, col, row) {
25
- const {highlightScope: highlightScope, disableHeader: disableHeader, cellPos: cellPos} = state.hover;
26
- if (!state.table.isHeader(col, row) || !disableHeader) {
27
- if (highlightScope === ts_types_1.HighlightScope.single && cellPos.col === col && cellPos.row === row) return "cellBgColor";
28
- if (highlightScope === ts_types_1.HighlightScope.column && cellPos.col === col) return "inlineColumnBgColor";
29
- if (highlightScope === ts_types_1.HighlightScope.row && cellPos.row === row) return "inlineRowBgColor";
30
- if (highlightScope === ts_types_1.HighlightScope.cross) {
31
- if (cellPos.col === col && cellPos.row === row) return "cellBgColor";
32
- if (cellPos.col === col) return "inlineColumnBgColor";
33
- if (cellPos.row === row) return "inlineRowBgColor";
25
+ const {highlightScope: highlightScope, disableHeader: disableHeader, cellPos: cellPos} = state.hover, table = state.table, isHeader = table.isHeader(col, row);
26
+ if (isHeader && disableHeader) return;
27
+ let hoverMode;
28
+ if (highlightScope === ts_types_1.HighlightScope.single && cellPos.col === col && cellPos.row === row ? hoverMode = "cellBgColor" : highlightScope === ts_types_1.HighlightScope.column && cellPos.col === col ? hoverMode = "inlineColumnBgColor" : highlightScope === ts_types_1.HighlightScope.row && cellPos.row === row ? hoverMode = "inlineRowBgColor" : highlightScope === ts_types_1.HighlightScope.cross && (cellPos.col === col && cellPos.row === row ? hoverMode = "cellBgColor" : cellPos.col === col ? hoverMode = "inlineColumnBgColor" : cellPos.row === row && (hoverMode = "inlineRowBgColor")),
29
+ hoverMode) {
30
+ let cellDisable;
31
+ if (isHeader) {
32
+ cellDisable = table.getHeaderDefine(col, row).disableHeaderHover;
33
+ } else {
34
+ cellDisable = table.getBodyColumnDefine(col, row).disableHover;
34
35
  }
36
+ cellDisable && (hoverMode = void 0);
35
37
  }
38
+ return hoverMode;
36
39
  }
37
40
 
38
41
  exports.getCellHoverColor = getCellHoverColor, exports.isCellHover = isCellHover;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/state/hover/is-cell-hover.ts"],"names":[],"mappings":"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","file":"is-cell-hover.js","sourcesContent":["import type { StateManager } from '../state';\nimport type { Group } from '../../scenegraph/graphic/group';\nimport { getProp } from '../../scenegraph/utils/get-prop';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { HighlightScope } from '../../ts-types';\nimport { isValid } from '@visactor/vutils';\n\nexport function getCellHoverColor(cellGroup: Group, table: BaseTableAPI): string | undefined {\n let colorKey;\n if (\n cellGroup.role === 'cell' &&\n isValid(cellGroup.mergeStartCol) &&\n isValid(cellGroup.mergeStartRow) &&\n isValid(cellGroup.mergeEndCol) &&\n isValid(cellGroup.mergeEndRow)\n ) {\n for (let col = cellGroup.mergeStartCol; col <= cellGroup.mergeEndCol; col++) {\n for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {\n const key = isCellHover(table.stateManager, col, row);\n if (key && (!colorKey || key === 'cellBgColor')) {\n colorKey = key;\n }\n }\n }\n } else if (cellGroup.role === 'cell') {\n colorKey = isCellHover(table.stateManager, cellGroup.col, cellGroup.row);\n }\n\n if (!colorKey) {\n return undefined;\n }\n\n let hoverStyle;\n const layout = table.internalProps.layoutMap;\n if (layout.isCornerHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.cornerHeaderStyle?.hover || table.theme.headerStyle?.hover;\n } else if (layout.isColumnHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.headerStyle?.hover;\n } else if (layout.isRowHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.rowHeaderStyle?.hover;\n } else if (layout.isBottomFrozenRow(cellGroup.col, cellGroup.row)) {\n hoverStyle =\n table.theme.bottomFrozenStyle?.hover ||\n (table.isListTable() ? table.theme.bodyStyle?.hover : table.theme.headerStyle?.hover);\n } else if (layout.isRightFrozenColumn(cellGroup.col, cellGroup.row)) {\n hoverStyle =\n table.theme.rightFrozenStyle?.hover ||\n (table.isListTable() ? table.theme.bodyStyle?.hover : table.theme.rowHeaderStyle?.hover);\n } else if (!table.isHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.bodyStyle?.hover;\n }\n const fillColor = getProp(colorKey, hoverStyle, cellGroup.col, cellGroup.row, table);\n return fillColor;\n}\n\nexport function isCellHover(state: StateManager, col: number, row: number): string | undefined {\n const { highlightScope, disableHeader, cellPos } = state.hover;\n const table = state.table;\n\n const isHeader = table.isHeader(col, row);\n if (isHeader && disableHeader) {\n return undefined;\n }\n\n if (highlightScope === HighlightScope.single && cellPos.col === col && cellPos.row === row) {\n return 'cellBgColor';\n } else if (highlightScope === HighlightScope.column && cellPos.col === col) {\n return 'inlineColumnBgColor';\n } else if (highlightScope === HighlightScope.row && cellPos.row === row) {\n return 'inlineRowBgColor';\n } else if (highlightScope === HighlightScope.cross) {\n if (cellPos.col === col && cellPos.row === row) {\n return 'cellBgColor';\n } else if (cellPos.col === col) {\n return 'inlineColumnBgColor';\n } else if (cellPos.row === row) {\n return 'inlineRowBgColor';\n }\n }\n\n return undefined;\n}\n"]}
1
+ {"version":3,"sources":["../src/state/hover/is-cell-hover.ts"],"names":[],"mappings":"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","file":"is-cell-hover.js","sourcesContent":["import type { StateManager } from '../state';\nimport type { Group } from '../../scenegraph/graphic/group';\nimport { getProp } from '../../scenegraph/utils/get-prop';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { HighlightScope } from '../../ts-types';\nimport { isValid } from '@visactor/vutils';\n\nexport function getCellHoverColor(cellGroup: Group, table: BaseTableAPI): string | undefined {\n let colorKey;\n if (\n cellGroup.role === 'cell' &&\n isValid(cellGroup.mergeStartCol) &&\n isValid(cellGroup.mergeStartRow) &&\n isValid(cellGroup.mergeEndCol) &&\n isValid(cellGroup.mergeEndRow)\n ) {\n for (let col = cellGroup.mergeStartCol; col <= cellGroup.mergeEndCol; col++) {\n for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {\n const key = isCellHover(table.stateManager, col, row);\n if (key && (!colorKey || key === 'cellBgColor')) {\n colorKey = key;\n }\n }\n }\n } else if (cellGroup.role === 'cell') {\n colorKey = isCellHover(table.stateManager, cellGroup.col, cellGroup.row);\n }\n\n if (!colorKey) {\n return undefined;\n }\n\n let hoverStyle;\n const layout = table.internalProps.layoutMap;\n if (layout.isCornerHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.cornerHeaderStyle?.hover || table.theme.headerStyle?.hover;\n } else if (layout.isColumnHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.headerStyle?.hover;\n } else if (layout.isRowHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.rowHeaderStyle?.hover;\n } else if (layout.isBottomFrozenRow(cellGroup.col, cellGroup.row)) {\n hoverStyle =\n table.theme.bottomFrozenStyle?.hover ||\n (table.isListTable() ? table.theme.bodyStyle?.hover : table.theme.headerStyle?.hover);\n } else if (layout.isRightFrozenColumn(cellGroup.col, cellGroup.row)) {\n hoverStyle =\n table.theme.rightFrozenStyle?.hover ||\n (table.isListTable() ? table.theme.bodyStyle?.hover : table.theme.rowHeaderStyle?.hover);\n } else if (!table.isHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.bodyStyle?.hover;\n }\n const fillColor = getProp(colorKey, hoverStyle, cellGroup.col, cellGroup.row, table);\n return fillColor;\n}\n\nexport function isCellHover(state: StateManager, col: number, row: number): string | undefined {\n const { highlightScope, disableHeader, cellPos } = state.hover;\n const table = state.table;\n\n const isHeader = table.isHeader(col, row);\n if (isHeader && disableHeader) {\n return undefined;\n }\n\n let hoverMode;\n if (highlightScope === HighlightScope.single && cellPos.col === col && cellPos.row === row) {\n hoverMode = 'cellBgColor';\n } else if (highlightScope === HighlightScope.column && cellPos.col === col) {\n hoverMode = 'inlineColumnBgColor';\n } else if (highlightScope === HighlightScope.row && cellPos.row === row) {\n hoverMode = 'inlineRowBgColor';\n } else if (highlightScope === HighlightScope.cross) {\n if (cellPos.col === col && cellPos.row === row) {\n hoverMode = 'cellBgColor';\n } else if (cellPos.col === col) {\n hoverMode = 'inlineColumnBgColor';\n } else if (cellPos.row === row) {\n hoverMode = 'inlineRowBgColor';\n }\n }\n\n if (hoverMode) {\n let cellDisable;\n if (isHeader) {\n const define = table.getHeaderDefine(col, row);\n cellDisable = define.disableHeaderHover;\n } else {\n const define = table.getBodyColumnDefine(col, row);\n cellDisable = define.disableHover;\n }\n\n if (cellDisable) {\n hoverMode = undefined;\n }\n }\n\n return hoverMode;\n}\n"]}
@@ -3,6 +3,7 @@ import type { CustomRenderFunctionArg } from './customElement';
3
3
  export type ICustomLayoutObj = {
4
4
  rootContainer: Container;
5
5
  renderDefault?: boolean;
6
+ enableCellPadding?: boolean;
6
7
  };
7
8
  export type ICustomLayoutFuc = (args: CustomRenderFunctionArg) => ICustomLayoutObj;
8
9
  export type ICustomLayout = ICustomLayoutFuc;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/customLayout.ts"],"names":[],"mappings":"","file":"customLayout.js","sourcesContent":["import type { Container } from '../render/layout';\nimport type { CustomRenderFunctionArg } from './customElement';\n\nexport type ICustomLayoutObj = {\n rootContainer: Container;\n /**\n * 是否还需要默认渲染内容 只有配置true才绘制 默认 不绘制\n */\n renderDefault?: boolean;\n};\n\nexport type ICustomLayoutFuc = (args: CustomRenderFunctionArg) => ICustomLayoutObj;\n\nexport type ICustomLayout = ICustomLayoutFuc;\n"]}
1
+ {"version":3,"sources":["../src/ts-types/customLayout.ts"],"names":[],"mappings":"","file":"customLayout.js","sourcesContent":["import type { Container } from '../render/layout';\nimport type { CustomRenderFunctionArg } from './customElement';\n\nexport type ICustomLayoutObj = {\n rootContainer: Container;\n /**\n * 是否还需要默认渲染内容 只有配置true才绘制 默认 不绘制\n */\n renderDefault?: boolean;\n /**\n * 是否还启用style中的padding\n */\n enableCellPadding?: boolean;\n};\n\nexport type ICustomLayoutFuc = (args: CustomRenderFunctionArg) => ICustomLayoutObj;\n\nexport type ICustomLayout = ICustomLayoutFuc;\n"]}
@@ -12,7 +12,6 @@ export interface IBasicHeaderDefine {
12
12
  sort?: SortOption;
13
13
  showSort?: boolean;
14
14
  disableHover?: boolean;
15
- headerSelectMode?: 'inline' | 'cell';
16
15
  disableSelect?: boolean;
17
16
  disableHeaderHover?: boolean;
18
17
  disableHeaderSelect?: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/list-table/define/basic-define.ts"],"names":[],"mappings":"","file":"basic-define.js","sourcesContent":["import type { BaseCellInfo, CellInfo, SortOption } from '../../common';\nimport type { ICustomRender } from '../../customElement';\nimport type { ICustomLayout } from '../../customLayout';\nimport type { FieldDef, FieldFormat, FieldKeyDef } from '../../table-engine';\nimport type { ColumnIconOption } from '../../icon';\nimport type { MenuListItem } from '../../menu';\nimport type { BaseTableAPI } from '../../base-table';\nimport type { IEditor } from '@visactor/vtable-editors';\n\n// eslint-disable-next-line no-unused-vars\nexport interface IBasicHeaderDefine {\n // 表头的标题\n title?: string | (() => string); //支持图文混合\n /** @deprecated\n * 已废除该配置 标题中显示图标 现在请使用headerIcon进行配置\n */\n // captionIcon?: ColumnIconOption;\n /** 表头Icon配置 */\n headerIcon?: string | ColumnIconOption | (string | ColumnIconOption)[];\n // | ((args: CellInfo) => string | ColumnIconOption | (string | ColumnIconOption)[]);\n\n // headerStyle?: HeaderStyleOption | null;\n // style?: ColumnStyleOption | null;\n // headerType?: HeaderTypeOption | headerType.BaseHeader | null;\n /** sort排序规则 */\n sort?: SortOption;\n /** 显示sort排序icon。为了仅仅显示图标,无排序逻辑。如果设置了sort字段 肯定会显示图标,会省略这个配置 */\n showSort?: boolean;\n /** 该列不支持hover交互行为 */\n disableHover?: boolean;\n /** 点击表头单元格时连带body整行或整列选中 或仅选中当前单元格,默认或整行或整列选中*/\n headerSelectMode?: 'inline' | 'cell';\n /** 该列不支持选中 */\n disableSelect?: boolean;\n /** 该列表头不支持hover交互行为 */\n disableHeaderHover?: boolean;\n /** 该列表头不支持选中 */\n disableHeaderSelect?: boolean;\n /** 表头hover时的描述信息 会以tooltip形式展示出来 */\n description?: string;\n /** 下拉菜单项配置 */\n dropDownMenu?: MenuListItem[];\n /** 表头自定义渲染函数 */\n headerCustomRender?: ICustomRender;\n /** 表头自定义渲染元素定义 */\n headerCustomLayout?: ICustomLayout;\n /** 是否可以拖拽表头 */\n dragHeader?: boolean;\n /**\n * 列宽计算模式,only-header只考虑表头的内容 only-body只考虑body的内容 normal能被显示出来的所有内容\n */\n columnWidthComputeMode?: 'normal' | 'only-header' | 'only-body';\n /**\n * 是否禁用调整列宽,如果是转置表格或者是透视表的指标是行方向指定 那该配置不生效\n */\n disableColumnResize?: boolean;\n}\n\nexport interface IBasicColumnBodyDefine {\n field: FieldDef;\n /** @deprecated 已不维护 */\n fieldKey?: FieldKeyDef;\n fieldFormat?: FieldFormat;\n width?: number | string;\n minWidth?: number | string;\n maxWidth?: number | string;\n //是否展示为树形结构\n tree?: boolean;\n icon?:\n | string\n | ColumnIconOption\n | (string | ColumnIconOption)[]\n | ((args: CellInfo & { table: BaseTableAPI }) => string | ColumnIconOption | (string | ColumnIconOption)[]);\n\n // cellType?: ColumnTypeOption | BaseColumn<T, any> | null;\n\n // /** 如果是绘制图表库组件的图表类型 需要将注入的组件名称 写到chartType */\n // chartModule?: string;\n // /** 如果是绘制图表库组件的图表类型 统一图表配置chartSpec */\n // chartSpec?: any | ((arg0: CellInfo) => any);\n // sparklineSpec?: SparklineSpec | ((arg0: CellInfo) => SparklineSpec);\n // style?: ColumnStyleOption | null;\n\n customRender?: ICustomRender;\n customLayout?: ICustomLayout;\n editor?: string | IEditor | ((args: BaseCellInfo & { table: BaseTableAPI }) => string | IEditor);\n}\n"]}
1
+ {"version":3,"sources":["../src/ts-types/list-table/define/basic-define.ts"],"names":[],"mappings":"","file":"basic-define.js","sourcesContent":["import type { BaseCellInfo, CellInfo, SortOption } from '../../common';\nimport type { ICustomRender } from '../../customElement';\nimport type { ICustomLayout } from '../../customLayout';\nimport type { FieldDef, FieldFormat, FieldKeyDef } from '../../table-engine';\nimport type { ColumnIconOption } from '../../icon';\nimport type { MenuListItem } from '../../menu';\nimport type { BaseTableAPI } from '../../base-table';\nimport type { IEditor } from '@visactor/vtable-editors';\n\n// eslint-disable-next-line no-unused-vars\nexport interface IBasicHeaderDefine {\n // 表头的标题\n title?: string | (() => string); //支持图文混合\n /** @deprecated\n * 已废除该配置 标题中显示图标 现在请使用headerIcon进行配置\n */\n // captionIcon?: ColumnIconOption;\n /** 表头Icon配置 */\n headerIcon?: string | ColumnIconOption | (string | ColumnIconOption)[];\n // | ((args: CellInfo) => string | ColumnIconOption | (string | ColumnIconOption)[]);\n\n // headerStyle?: HeaderStyleOption | null;\n // style?: ColumnStyleOption | null;\n // headerType?: HeaderTypeOption | headerType.BaseHeader | null;\n /** sort排序规则 */\n sort?: SortOption;\n /** 显示sort排序icon。为了仅仅显示图标,无排序逻辑。如果设置了sort字段 肯定会显示图标,会省略这个配置 */\n showSort?: boolean;\n /** 该列不支持hover交互行为 */\n disableHover?: boolean;\n // /** 点击表头单元格时连带body整行或整列选中 或仅选中当前单元格,默认或整行或整列选中*/\n // headerSelectMode?: 'inline' | 'cell';\n /** 该列不支持选中 */\n disableSelect?: boolean;\n /** 该列表头不支持hover交互行为 */\n disableHeaderHover?: boolean;\n /** 该列表头不支持选中 */\n disableHeaderSelect?: boolean;\n /** 表头hover时的描述信息 会以tooltip形式展示出来 */\n description?: string;\n /** 下拉菜单项配置 */\n dropDownMenu?: MenuListItem[];\n /** 表头自定义渲染函数 */\n headerCustomRender?: ICustomRender;\n /** 表头自定义渲染元素定义 */\n headerCustomLayout?: ICustomLayout;\n /** 是否可以拖拽表头 */\n dragHeader?: boolean;\n /**\n * 列宽计算模式,only-header只考虑表头的内容 only-body只考虑body的内容 normal能被显示出来的所有内容\n */\n columnWidthComputeMode?: 'normal' | 'only-header' | 'only-body';\n /**\n * 是否禁用调整列宽,如果是转置表格或者是透视表的指标是行方向指定 那该配置不生效\n */\n disableColumnResize?: boolean;\n}\n\nexport interface IBasicColumnBodyDefine {\n field: FieldDef;\n /** @deprecated 已不维护 */\n fieldKey?: FieldKeyDef;\n fieldFormat?: FieldFormat;\n width?: number | string;\n minWidth?: number | string;\n maxWidth?: number | string;\n //是否展示为树形结构\n tree?: boolean;\n icon?:\n | string\n | ColumnIconOption\n | (string | ColumnIconOption)[]\n | ((args: CellInfo & { table: BaseTableAPI }) => string | ColumnIconOption | (string | ColumnIconOption)[]);\n\n // cellType?: ColumnTypeOption | BaseColumn<T, any> | null;\n\n // /** 如果是绘制图表库组件的图表类型 需要将注入的组件名称 写到chartType */\n // chartModule?: string;\n // /** 如果是绘制图表库组件的图表类型 统一图表配置chartSpec */\n // chartSpec?: any | ((arg0: CellInfo) => any);\n // sparklineSpec?: SparklineSpec | ((arg0: CellInfo) => SparklineSpec);\n // style?: ColumnStyleOption | null;\n\n customRender?: ICustomRender;\n customLayout?: ICustomLayout;\n editor?: string | IEditor | ((args: BaseCellInfo & { table: BaseTableAPI }) => string | IEditor);\n}\n"]}
@@ -2,6 +2,8 @@ import type { IImageStyleOption, ITextStyleOption } from '../column';
2
2
  import type { ShowColumnRowType } from '../table-engine';
3
3
  interface IBasicCornerDefine {
4
4
  titleOnDimension?: ShowColumnRowType;
5
+ disableHeaderHover?: boolean;
6
+ disableHeaderSelect?: boolean;
5
7
  }
6
8
  interface ITextCornerDefine extends IBasicCornerDefine {
7
9
  headerType?: 'text';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/pivot-table/corner.ts"],"names":[],"mappings":"","file":"corner.js","sourcesContent":["import type { IImageStyleOption, ITextStyleOption, IStyleOption } from '../column';\nimport type { ShowColumnRowType } from '../table-engine';\n\ninterface IBasicCornerDefine {\n titleOnDimension?: ShowColumnRowType; //角头标题是否显示列维度名称 否则显示行维度名称\n // headerStyle?: HeaderStyleOption | null; //角头标题的样式\n // headerType?: HeaderTypeOption | null; //角头标题的类型\n}\n\ninterface ITextCornerDefine extends IBasicCornerDefine {\n headerType?: 'text';\n headerStyle?: Omit<ITextStyleOption, 'textStick'>;\n}\n\ninterface IImageCornerDefine extends IBasicCornerDefine {\n headerType: 'image';\n headerStyle?: Omit<IImageStyleOption, 'textStick'>;\n}\n\ninterface ILinkCornerDefine extends IBasicCornerDefine {\n headerType: 'link';\n headerStyle?: Omit<ITextStyleOption, 'textStick'>;\n}\n\nexport type ICornerDefine = IImageCornerDefine | ILinkCornerDefine | ITextCornerDefine;\n"]}
1
+ {"version":3,"sources":["../src/ts-types/pivot-table/corner.ts"],"names":[],"mappings":"","file":"corner.js","sourcesContent":["import type { IImageStyleOption, ITextStyleOption, IStyleOption } from '../column';\nimport type { ShowColumnRowType } from '../table-engine';\n\ninterface IBasicCornerDefine {\n titleOnDimension?: ShowColumnRowType; //角头标题是否显示列维度名称 否则显示行维度名称\n // headerStyle?: HeaderStyleOption | null; //角头标题的样式\n // headerType?: HeaderTypeOption | null; //角头标题的类型\n\n /** 该表头单元格不支持hover交互行为 */\n disableHeaderHover?: boolean;\n /** 该表头单元格不支持选中 */\n disableHeaderSelect?: boolean;\n}\n\ninterface ITextCornerDefine extends IBasicCornerDefine {\n headerType?: 'text';\n headerStyle?: Omit<ITextStyleOption, 'textStick'>;\n}\n\ninterface IImageCornerDefine extends IBasicCornerDefine {\n headerType: 'image';\n headerStyle?: Omit<IImageStyleOption, 'textStick'>;\n}\n\ninterface ILinkCornerDefine extends IBasicCornerDefine {\n headerType: 'link';\n headerStyle?: Omit<ITextStyleOption, 'textStick'>;\n}\n\nexport type ICornerDefine = IImageCornerDefine | ILinkCornerDefine | ITextCornerDefine;\n"]}
@@ -22,4 +22,6 @@ export interface IBasicDimension {
22
22
  headerCustomLayout?: ICustomLayout;
23
23
  description?: string | ((args: CellInfo) => string);
24
24
  cornerDescription?: string;
25
+ disableHeaderHover?: boolean;
26
+ disableHeaderSelect?: boolean;
25
27
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/pivot-table/dimension/basic-dimension.ts"],"names":[],"mappings":"","file":"basic-dimension.js","sourcesContent":["import type { ICustomRender, ICustomRenderFuc } from '../../customElement';\nimport type { ICustomLayout } from '../../customLayout';\nimport type { FieldFormat } from '../../table-engine';\nimport type { ColumnIconOption } from '../../icon';\nimport type { MenuListItem } from '../../menu';\nimport type { CellInfo } from '../../common';\n\nexport interface IBasicDimension {\n /** 维度的唯一标识 对应数据集的字段名称 */\n dimensionKey: string; //\n /** 维度名称 角头可配置显示维度名称 */\n title: string;\n /** 维度值的format */\n headerFormat?: FieldFormat;\n /** 定义表头上的icon */\n headerIcon?:\n | string\n | ColumnIconOption\n | (string | ColumnIconOption)[]\n | ((args: CellInfo) => string | ColumnIconOption | (string | ColumnIconOption)[]);\n /** 维度作为行表头时起作用,表示该维度单元格的宽度 */\n width?: number | string;\n /** 维度作为行表头时起作用,表示该维度单元格的最小宽度 */\n minWidth?: number | string;\n /** 维度作为行表头时起作用,表示该维度单元格的最大宽度 */\n maxWidth?: number | string;\n\n // indicators?: IIndicator[]; //维度下的指标具体展示配置\n\n /** 显示向下钻取图标 点击后会有对应事件 */\n drillDown?: boolean;\n /** 显示向上钻取图标 点击后会有对应事件 */\n drillUp?: boolean;\n /** 单元格显示下拉按钮及下拉菜单*/\n dropDownMenu?: MenuListItem[];\n /** 角头单元格显示下拉按钮及下拉菜单*/\n cornerDropDownMenu?: MenuListItem[];\n /** 是否显示排序icon */\n showSort?: boolean;\n /** 是否可以拖拽表头换位置 */\n dragHeader?: boolean;\n /** 表头自定义渲染内容定义 */\n headerCustomRender?: ICustomRender;\n /** 表头自定义布局元素 */\n headerCustomLayout?: ICustomLayout;\n\n /**\n * 描述信息 hover时提示信息\n */\n description?: string | ((args: CellInfo) => string);\n /**\n * 描述信息 hover时提示信息\n */\n cornerDescription?: string;\n}\n"]}
1
+ {"version":3,"sources":["../src/ts-types/pivot-table/dimension/basic-dimension.ts"],"names":[],"mappings":"","file":"basic-dimension.js","sourcesContent":["import type { ICustomRender, ICustomRenderFuc } from '../../customElement';\nimport type { ICustomLayout } from '../../customLayout';\nimport type { FieldFormat } from '../../table-engine';\nimport type { ColumnIconOption } from '../../icon';\nimport type { MenuListItem } from '../../menu';\nimport type { CellInfo } from '../../common';\n\nexport interface IBasicDimension {\n /** 维度的唯一标识 对应数据集的字段名称 */\n dimensionKey: string; //\n /** 维度名称 角头可配置显示维度名称 */\n title: string;\n /** 维度值的format */\n headerFormat?: FieldFormat;\n /** 定义表头上的icon */\n headerIcon?:\n | string\n | ColumnIconOption\n | (string | ColumnIconOption)[]\n | ((args: CellInfo) => string | ColumnIconOption | (string | ColumnIconOption)[]);\n /** 维度作为行表头时起作用,表示该维度单元格的宽度 */\n width?: number | string;\n /** 维度作为行表头时起作用,表示该维度单元格的最小宽度 */\n minWidth?: number | string;\n /** 维度作为行表头时起作用,表示该维度单元格的最大宽度 */\n maxWidth?: number | string;\n\n // indicators?: IIndicator[]; //维度下的指标具体展示配置\n\n /** 显示向下钻取图标 点击后会有对应事件 */\n drillDown?: boolean;\n /** 显示向上钻取图标 点击后会有对应事件 */\n drillUp?: boolean;\n /** 单元格显示下拉按钮及下拉菜单*/\n dropDownMenu?: MenuListItem[];\n /** 角头单元格显示下拉按钮及下拉菜单*/\n cornerDropDownMenu?: MenuListItem[];\n /** 是否显示排序icon */\n showSort?: boolean;\n /** 是否可以拖拽表头换位置 */\n dragHeader?: boolean;\n /** 表头自定义渲染内容定义 */\n headerCustomRender?: ICustomRender;\n /** 表头自定义布局元素 */\n headerCustomLayout?: ICustomLayout;\n\n /**\n * 描述信息 hover时提示信息\n */\n description?: string | ((args: CellInfo) => string);\n /**\n * 描述信息 hover时提示信息\n */\n cornerDescription?: string;\n\n // /** 点击表头单元格时连带body整行或整列选中 或仅选中当前单元格,默认或整行或整列选中*/\n // headerSelectMode?: 'inline' | 'cell';\n /** 该维度单元格不支持hover交互行为 */\n disableHeaderHover?: boolean;\n /** 该维度单元格不支持选中 */\n disableHeaderSelect?: boolean;\n}\n"]}
@@ -18,6 +18,8 @@ export interface IBasicHeaderIndicator {
18
18
  editor?: string | IEditor | ((args: BaseCellInfo & {
19
19
  table: BaseTableAPI;
20
20
  }) => string | IEditor);
21
+ disableHeaderHover?: boolean;
22
+ disableHeaderSelect?: boolean;
21
23
  }
22
24
  export interface IBasicColumnIndicator {
23
25
  width?: string | number;
@@ -28,4 +30,6 @@ export interface IBasicColumnIndicator {
28
30
  icon?: string | ColumnIconOption | (string | ColumnIconOption)[] | ((args: CellInfo) => string | ColumnIconOption | (string | ColumnIconOption)[]);
29
31
  customRender?: ICustomRender;
30
32
  customLayout?: ICustomLayout;
33
+ disableHover?: boolean;
34
+ disableSelect?: boolean;
31
35
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/pivot-table/indicator/basic-indicator.ts"],"names":[],"mappings":"","file":"basic-indicator.js","sourcesContent":["import type { ICustomRender } from '../../customElement';\nimport type { ICustomLayout } from '../../customLayout';\nimport type { FieldFormat } from '../../table-engine';\nimport type { ColumnIconOption } from '../../icon';\nimport type { MenuListItem } from '../../menu';\nimport type { BaseCellInfo, CellInfo } from '../../common';\nimport type { IEditor } from '@visactor/vtable-editors';\nimport type { BaseTableAPI } from '../../base-table';\n\nexport interface IBasicHeaderIndicator {\n // 单种指标属性配置\n indicatorKey: string; // 指标的唯一标识 用处对应到具体数据查询阶段 flat数据\n title?: string; // 指标名\n // headerType?: HeaderTypeOption | null; //指标表头类型\n // headerStyle?: HeaderStyleOption | null; //指标名称在表头部分显示类型\n headerIcon?: (string | ColumnIconOption)[] | ((args: CellInfo) => (string | ColumnIconOption)[]);\n\n // linkJump?: boolean;\n // linkDetect?: boolean;\n // templateLink?: string;\n\n // chartSpec?: any | ((arg0: CustomRenderFunctionArg) => any);\n // chartModule?: string; // 如果配置了columnType未chart,chartType来指定图表组件类型 如'vchart' 需要从预先register的图表类型获取\n // sparklineSpec?: SparklineSpec | ((arg0: CustomRenderFunctionArg) => SparklineSpec);\n\n dropDownMenu?: MenuListItem[]; // 针对单独指标上配置下拉按钮\n showSort?: boolean; // 否显示排序icon\n disableColumnResize?: boolean; // 是否禁用调整列宽,如果是转置表格或者是透视表的指标是行方向指定 那该配置不生效\n\n /** 指标名称表头自定义渲染内容定义 */\n headerCustomRender?: ICustomRender; // header单元格的自定义内容\n /** 指标名称表头自定义布局元素 */\n headerCustomLayout?: ICustomLayout;\n editor?: string | IEditor | ((args: BaseCellInfo & { table: BaseTableAPI }) => string | IEditor);\n}\n\nexport interface IBasicColumnIndicator {\n width?: string | number;\n minWidth?: number | string;\n maxWidth?: number | string;\n format?: FieldFormat; // 指标值格式化\n headerFormat?: FieldFormat; // 指标名称格式化\n // cellType?: ColumnTypeOption | BaseColumn<any, any> | null; // body指标值显示类型\n // style?: ColumnStyleOption | null; // body部分指标值显示样式\n icon?:\n | string\n | ColumnIconOption\n | (string | ColumnIconOption)[]\n | ((args: CellInfo) => string | ColumnIconOption | (string | ColumnIconOption)[]);\n\n /** 指标值body单元格自定义渲染内容定义 */\n customRender?: ICustomRender; // body单元格的自定义内容\n /** 指标值body单元格自定义布局元素 */\n customLayout?: ICustomLayout;\n}\n"]}
1
+ {"version":3,"sources":["../src/ts-types/pivot-table/indicator/basic-indicator.ts"],"names":[],"mappings":"","file":"basic-indicator.js","sourcesContent":["import type { ICustomRender } from '../../customElement';\nimport type { ICustomLayout } from '../../customLayout';\nimport type { FieldFormat } from '../../table-engine';\nimport type { ColumnIconOption } from '../../icon';\nimport type { MenuListItem } from '../../menu';\nimport type { BaseCellInfo, CellInfo } from '../../common';\nimport type { IEditor } from '@visactor/vtable-editors';\nimport type { BaseTableAPI } from '../../base-table';\n\nexport interface IBasicHeaderIndicator {\n // 单种指标属性配置\n indicatorKey: string; // 指标的唯一标识 用处对应到具体数据查询阶段 flat数据\n title?: string; // 指标名\n // headerType?: HeaderTypeOption | null; //指标表头类型\n // headerStyle?: HeaderStyleOption | null; //指标名称在表头部分显示类型\n headerIcon?: (string | ColumnIconOption)[] | ((args: CellInfo) => (string | ColumnIconOption)[]);\n\n // linkJump?: boolean;\n // linkDetect?: boolean;\n // templateLink?: string;\n\n // chartSpec?: any | ((arg0: CustomRenderFunctionArg) => any);\n // chartModule?: string; // 如果配置了columnType未chart,chartType来指定图表组件类型 如'vchart' 需要从预先register的图表类型获取\n // sparklineSpec?: SparklineSpec | ((arg0: CustomRenderFunctionArg) => SparklineSpec);\n\n dropDownMenu?: MenuListItem[]; // 针对单独指标上配置下拉按钮\n showSort?: boolean; // 否显示排序icon\n disableColumnResize?: boolean; // 是否禁用调整列宽,如果是转置表格或者是透视表的指标是行方向指定 那该配置不生效\n\n /** 指标名称表头自定义渲染内容定义 */\n headerCustomRender?: ICustomRender; // header单元格的自定义内容\n /** 指标名称表头自定义布局元素 */\n headerCustomLayout?: ICustomLayout;\n editor?: string | IEditor | ((args: BaseCellInfo & { table: BaseTableAPI }) => string | IEditor);\n\n // /** 点击表头单元格时连带body整行或整列选中 或仅选中当前单元格,默认或整行或整列选中*/\n // headerSelectMode?: 'inline' | 'cell';\n /** 该指标表头单元格不支持hover交互行为 */\n disableHeaderHover?: boolean;\n /** 该指标表头单元格不支持选中 */\n disableHeaderSelect?: boolean;\n}\n\nexport interface IBasicColumnIndicator {\n width?: string | number;\n minWidth?: number | string;\n maxWidth?: number | string;\n format?: FieldFormat; // 指标值格式化\n headerFormat?: FieldFormat; // 指标名称格式化\n // cellType?: ColumnTypeOption | BaseColumn<any, any> | null; // body指标值显示类型\n // style?: ColumnStyleOption | null; // body部分指标值显示样式\n icon?:\n | string\n | ColumnIconOption\n | (string | ColumnIconOption)[]\n | ((args: CellInfo) => string | ColumnIconOption | (string | ColumnIconOption)[]);\n\n /** 指标值body单元格自定义渲染内容定义 */\n customRender?: ICustomRender; // body单元格的自定义内容\n /** 指标值body单元格自定义布局元素 */\n customLayout?: ICustomLayout;\n\n /** 该指标内容不支持hover交互行为 */\n disableHover?: boolean;\n /** 该指标内容不支持选中 */\n disableSelect?: boolean;\n}\n"]}
@@ -1,6 +1,8 @@
1
1
  import type { IImageStyleOption, ITextStyleOption } from '../column';
2
2
  type IBasicTitleDefine = {
3
3
  title: true | string;
4
+ disableHeaderHover?: boolean;
5
+ disableHeaderSelect?: boolean;
4
6
  };
5
7
  type ITextTitleDefine = IBasicTitleDefine & {
6
8
  headerType?: 'text';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/pivot-table/title.ts"],"names":[],"mappings":"","file":"title.js","sourcesContent":["import type { IImageStyleOption, ITextStyleOption } from '../column';\n\ntype IBasicTitleDefine = {\n /** 显示表头标题。默认为true,显示内容则由各级的维度名称组合而成,如'地区|省份'。 */\n title: true | string;\n};\n\ntype ITextTitleDefine = IBasicTitleDefine & {\n headerType?: 'text';\n headerStyle: ITextStyleOption;\n};\n\ntype IImageTitleDefine = IBasicTitleDefine & {\n headerType: 'image';\n headerStyle: IImageStyleOption;\n};\n\ntype ILinkTitleDefine = IBasicTitleDefine & {\n headerType: 'link';\n headerStyle: ITextStyleOption;\n};\n\nexport type ITitleDefine = ITextTitleDefine | IImageTitleDefine | ILinkTitleDefine;\n"]}
1
+ {"version":3,"sources":["../src/ts-types/pivot-table/title.ts"],"names":[],"mappings":"","file":"title.js","sourcesContent":["import type { IImageStyleOption, ITextStyleOption } from '../column';\n\ntype IBasicTitleDefine = {\n /** 显示表头标题。默认为true,显示内容则由各级的维度名称组合而成,如'地区|省份'。 */\n title: true | string;\n /** 该单元格不支持hover交互行为 */\n disableHeaderHover?: boolean;\n /** 该单元格不支持选中 */\n disableHeaderSelect?: boolean;\n};\n\ntype ITextTitleDefine = IBasicTitleDefine & {\n headerType?: 'text';\n headerStyle: ITextStyleOption;\n};\n\ntype IImageTitleDefine = IBasicTitleDefine & {\n headerType: 'image';\n headerStyle: IImageStyleOption;\n};\n\ntype ILinkTitleDefine = IBasicTitleDefine & {\n headerType: 'link';\n headerStyle: ITextStyleOption;\n};\n\nexport type ITitleDefine = ITextTitleDefine | IImageTitleDefine | ILinkTitleDefine;\n"]}