@visactor/vtable 0.16.2 → 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 (133) hide show
  1. package/cjs/components/axis/axis.d.ts +1 -1
  2. package/cjs/components/axis/axis.js +2 -2
  3. package/cjs/components/axis/axis.js.map +1 -1
  4. package/cjs/core/BaseTable.js +2 -1
  5. package/cjs/core/BaseTable.js.map +1 -1
  6. package/cjs/dataset/dataset.js +2 -1
  7. package/cjs/dataset/dataset.js.map +1 -1
  8. package/cjs/dataset/statistics-helper.d.ts +9 -0
  9. package/cjs/dataset/statistics-helper.js +18 -1
  10. package/cjs/dataset/statistics-helper.js.map +1 -1
  11. package/cjs/event/scroll.js +1 -0
  12. package/cjs/event/util.js +0 -1
  13. package/cjs/index.d.ts +1 -1
  14. package/cjs/index.js +1 -1
  15. package/cjs/index.js.map +1 -1
  16. package/cjs/layout/chart-helper/get-axis-config.d.ts +2 -0
  17. package/cjs/layout/chart-helper/get-axis-config.js +25 -16
  18. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  19. package/cjs/layout/pivot-header-layout.js +15 -5
  20. package/cjs/layout/pivot-header-layout.js.map +1 -1
  21. package/cjs/layout/pivot-layout-helper.js +3 -1
  22. package/cjs/layout/pivot-layout-helper.js.map +1 -1
  23. package/cjs/scenegraph/component/custom.d.ts +1 -1
  24. package/cjs/scenegraph/component/custom.js +10 -4
  25. package/cjs/scenegraph/component/custom.js.map +1 -1
  26. package/cjs/scenegraph/graphic/chart.js +4 -2
  27. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  28. package/cjs/scenegraph/group-creater/cell-helper.js +2 -2
  29. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  30. package/cjs/scenegraph/layout/compute-col-width.js +7 -2
  31. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  32. package/cjs/scenegraph/layout/compute-row-height.js +8 -3
  33. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  34. package/cjs/scenegraph/layout/update-height.js +3 -1
  35. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  36. package/cjs/scenegraph/layout/update-width.js +4 -2
  37. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  38. package/cjs/scenegraph/refresh-node/update-chart.js +1 -1
  39. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  40. package/cjs/scenegraph/scenegraph.d.ts +1 -0
  41. package/cjs/scenegraph/scenegraph.js +3 -2
  42. package/cjs/scenegraph/scenegraph.js.map +1 -1
  43. package/cjs/scenegraph/select/update-select-border.js +12 -0
  44. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  45. package/cjs/state/hover/is-cell-hover.js +12 -9
  46. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  47. package/cjs/themes/BRIGHT.js +2 -1
  48. package/cjs/themes/DARK.js +1 -2
  49. package/cjs/ts-types/component/axis.d.ts +2 -0
  50. package/cjs/ts-types/component/axis.js.map +1 -1
  51. package/cjs/ts-types/customLayout.d.ts +1 -0
  52. package/cjs/ts-types/customLayout.js.map +1 -1
  53. package/cjs/ts-types/list-table/define/basic-define.d.ts +0 -1
  54. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  55. package/cjs/ts-types/new-data-set.d.ts +1 -0
  56. package/cjs/ts-types/new-data-set.js +3 -2
  57. package/cjs/ts-types/new-data-set.js.map +1 -1
  58. package/cjs/ts-types/pivot-table/corner.d.ts +2 -0
  59. package/cjs/ts-types/pivot-table/corner.js.map +1 -1
  60. package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +2 -0
  61. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  62. package/cjs/ts-types/pivot-table/indicator/basic-indicator.d.ts +4 -0
  63. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  64. package/cjs/ts-types/pivot-table/title.d.ts +2 -0
  65. package/cjs/ts-types/pivot-table/title.js.map +1 -1
  66. package/dist/vtable.js +160 -47
  67. package/dist/vtable.min.js +2 -2
  68. package/es/components/axis/axis.d.ts +1 -1
  69. package/es/components/axis/axis.js +2 -2
  70. package/es/components/axis/axis.js.map +1 -1
  71. package/es/core/BaseTable.js +2 -1
  72. package/es/core/BaseTable.js.map +1 -1
  73. package/es/dataset/dataset.js +3 -2
  74. package/es/dataset/dataset.js.map +1 -1
  75. package/es/dataset/statistics-helper.d.ts +9 -0
  76. package/es/dataset/statistics-helper.js +15 -0
  77. package/es/dataset/statistics-helper.js.map +1 -1
  78. package/es/event/scroll.js +2 -1
  79. package/es/event/util.js +1 -2
  80. package/es/index.d.ts +1 -1
  81. package/es/index.js +1 -1
  82. package/es/index.js.map +1 -1
  83. package/es/layout/chart-helper/get-axis-config.d.ts +2 -0
  84. package/es/layout/chart-helper/get-axis-config.js +25 -16
  85. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  86. package/es/layout/pivot-header-layout.js +15 -5
  87. package/es/layout/pivot-header-layout.js.map +1 -1
  88. package/es/layout/pivot-layout-helper.js +3 -1
  89. package/es/layout/pivot-layout-helper.js.map +1 -1
  90. package/es/scenegraph/component/custom.d.ts +1 -1
  91. package/es/scenegraph/component/custom.js +10 -4
  92. package/es/scenegraph/component/custom.js.map +1 -1
  93. package/es/scenegraph/graphic/chart.js +4 -2
  94. package/es/scenegraph/graphic/chart.js.map +1 -1
  95. package/es/scenegraph/group-creater/cell-helper.js +2 -2
  96. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  97. package/es/scenegraph/layout/compute-col-width.js +6 -2
  98. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  99. package/es/scenegraph/layout/compute-row-height.js +7 -3
  100. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  101. package/es/scenegraph/layout/update-height.js +1 -1
  102. package/es/scenegraph/layout/update-height.js.map +1 -1
  103. package/es/scenegraph/layout/update-width.js +2 -2
  104. package/es/scenegraph/layout/update-width.js.map +1 -1
  105. package/es/scenegraph/refresh-node/update-chart.js +1 -1
  106. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  107. package/es/scenegraph/scenegraph.d.ts +1 -0
  108. package/es/scenegraph/scenegraph.js +3 -2
  109. package/es/scenegraph/scenegraph.js.map +1 -1
  110. package/es/scenegraph/select/update-select-border.js +12 -0
  111. package/es/scenegraph/select/update-select-border.js.map +1 -1
  112. package/es/state/hover/is-cell-hover.js +12 -9
  113. package/es/state/hover/is-cell-hover.js.map +1 -1
  114. package/es/themes/BRIGHT.js +2 -1
  115. package/es/themes/DARK.js +1 -2
  116. package/es/ts-types/component/axis.d.ts +2 -0
  117. package/es/ts-types/component/axis.js.map +1 -1
  118. package/es/ts-types/customLayout.d.ts +1 -0
  119. package/es/ts-types/customLayout.js.map +1 -1
  120. package/es/ts-types/list-table/define/basic-define.d.ts +0 -1
  121. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  122. package/es/ts-types/new-data-set.d.ts +1 -0
  123. package/es/ts-types/new-data-set.js +3 -2
  124. package/es/ts-types/new-data-set.js.map +1 -1
  125. package/es/ts-types/pivot-table/corner.d.ts +2 -0
  126. package/es/ts-types/pivot-table/corner.js.map +1 -1
  127. package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +2 -0
  128. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  129. package/es/ts-types/pivot-table/indicator/basic-indicator.d.ts +4 -0
  130. package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  131. package/es/ts-types/pivot-table/title.d.ts +2 -0
  132. package/es/ts-types/pivot-table/title.js.map +1 -1
  133. package/package.json +4 -4
@@ -189,7 +189,9 @@ function dealHeaderForTreeMode(hd, _headerCellIds, results, roots, row, totalLev
189
189
  imageAutoSizing: null == dimensionInfo ? void 0 : dimensionInfo.imageAutoSizing,
190
190
  headerCustomRender: null == dimensionInfo ? void 0 : dimensionInfo.headerCustomRender,
191
191
  headerCustomLayout: null == dimensionInfo ? void 0 : dimensionInfo.headerCustomLayout,
192
- dragHeader: null == dimensionInfo ? void 0 : dimensionInfo.dragHeader
192
+ dragHeader: null == dimensionInfo ? void 0 : dimensionInfo.dragHeader,
193
+ disableHeaderHover: !!(null == dimensionInfo ? void 0 : dimensionInfo.disableHeaderHover),
194
+ disableHeaderSelect: !!(null == dimensionInfo ? void 0 : dimensionInfo.disableHeaderSelect)
193
195
  }),
194
196
  fieldFormat: null == dimensionInfo ? void 0 : dimensionInfo.headerFormat,
195
197
  dropDownMenu: null == dimensionInfo ? void 0 : dimensionInfo.dropDownMenu,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/layout/pivot-layout-helper.ts"],"names":[],"mappings":"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","file":"pivot-layout-helper.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport { NumberMap } from '../tools/NumberMap';\nimport { IndicatorDimensionKeyPlaceholder } from '../tools/global';\nimport type { Either } from '../tools/helper';\nimport type {\n CellInfo,\n ColumnIconOption,\n FieldData,\n HeaderData,\n ICustomRender,\n IDimension,\n IIndicator,\n IRowDimension,\n LayoutObjectId\n} from '../ts-types';\nimport { HierarchyState } from '../ts-types';\nimport type { PivotHeaderLayoutMap } from './pivot-header-layout';\nimport type { ILinkDimension } from '../ts-types/pivot-table/dimension/link-dimension';\nimport type { IImageDimension } from '../ts-types/pivot-table/dimension/image-dimension';\n// import { sharedVar } from './pivot-header-layout';\n\ninterface IPivotLayoutBaseHeadNode {\n id: number;\n // dimensionKey: string;\n // // title: string;\n // indicatorKey?: string;\n value: string;\n children: IPivotLayoutHeadNode[] | undefined;\n level: number;\n startIndex: number;\n size: number; //对应到colSpan或者rowSpan\n // parsing?: 'img' | 'link' | 'video' | 'templateLink';\n startInTotal: number;\n // headerStyle:HeaderStyleOption| null;\n customRender?: ICustomRender;\n\n hierarchyState: HierarchyState;\n headerIcon?: (string | ColumnIconOption)[] | ((args: CellInfo) => (string | ColumnIconOption)[]);\n}\n\ninterface IPivotLayoutDimensionHeadNode extends IPivotLayoutBaseHeadNode {\n dimensionKey: string;\n}\ninterface IPivotLayoutIndicatorHeadNode extends IPivotLayoutBaseHeadNode {\n indicatorKey: string;\n}\nexport type IPivotLayoutHeadNode = Either<IPivotLayoutDimensionHeadNode, IPivotLayoutIndicatorHeadNode>;\nexport class DimensionTree {\n sharedVar: { seqId: number };\n // 每一个值对应的序号 结果缓存\n // cache: {\n // [propName: string]: any;\n // };\n //树形展示 会将非叶子节点单独展示一行 所以size会增加非叶子节点的个数\n sizeIncludeParent = false;\n rowExpandLevel: number;\n hierarchyType: 'grid' | 'tree';\n tree: IPivotLayoutHeadNode = {\n id: 0,\n dimensionKey: '',\n // title: '',\n value: '',\n children: [],\n level: -1,\n startIndex: 0,\n size: 0,\n startInTotal: 0,\n hierarchyState: undefined\n };\n\n totalLevel = 0;\n\n // blockLevel: number = 0;\n\n // blockStartIndexMap: Map<number, boolean> = new Map();\n // blockEndIndexMap: Map<number, boolean> = new Map();\n dimensionKeys: NumberMap<string> = new NumberMap<string>();\n // dimensions: IDimension[] | undefined;//目前用不到这个\n constructor(\n tree: IPivotLayoutHeadNode[],\n sharedVar: { seqId: number },\n hierarchyType: 'grid' | 'tree' = 'grid',\n rowExpandLevel: number = undefined\n ) {\n this.sizeIncludeParent = rowExpandLevel !== null && rowExpandLevel !== undefined;\n this.rowExpandLevel = rowExpandLevel;\n this.hierarchyType = hierarchyType;\n this.sharedVar = sharedVar;\n this.reset(tree);\n }\n\n reset(tree: IPivotLayoutHeadNode[], updateTreeNode = false) {\n // 清空缓存的计算\n // this.cache = {};\n // this.dimensions = dimensions;\n this.dimensionKeys = new NumberMap<string>();\n this.tree.children = tree as IPivotLayoutHeadNode[];\n // const re = { totalLevel: 0 };\n // if (updateTreeNode) this.updateTreeNode(this.tree, 0, re, this.tree);\n // else\n this.setTreeNode(this.tree, 0, this.tree);\n this.totalLevel = this.dimensionKeys.count();\n }\n setTreeNode(node: IPivotLayoutHeadNode, startIndex: number, parent: IPivotLayoutHeadNode): number {\n node.startIndex = startIndex;\n node.startInTotal = (parent.startInTotal ?? 0) + node.startIndex;\n // if (node.dimensionKey) {\n // !this.dimensionKeys.contain(node.dimensionKey) &&\n // this.dimensionKeys.put(node.level, node.dimensionKey);\n // if (!node.id) node.id = ++seqId;\n // }\n if (node.dimensionKey ?? node.indicatorKey) {\n !this.dimensionKeys.contain(node.indicatorKey ? IndicatorDimensionKeyPlaceholder : node.dimensionKey) &&\n this.dimensionKeys.put(node.level, node.indicatorKey ? IndicatorDimensionKeyPlaceholder : node.dimensionKey);\n if (!node.id) {\n node.id = ++this.sharedVar.seqId;\n }\n }\n let size = node.dimensionKey ? (this.sizeIncludeParent ? 1 : 0) : 0;\n //平铺展示 分析所有层级\n if (this.hierarchyType === 'grid') {\n if (node.children?.length >= 1) {\n node.children.forEach(n => {\n n.level = (node.level ?? 0) + 1;\n size += this.setTreeNode(n, size, node);\n });\n } else {\n size = 1;\n // re.totalLevel = Math.max(re.totalLevel, (node.level ?? -1) + 1);\n }\n } else if (node.hierarchyState === HierarchyState.expand && node.children?.length >= 1) {\n //树形展示 有子节点 且下一层需要展开\n node.children.forEach(n => {\n n.level = (node.level ?? 0) + 1;\n size += this.setTreeNode(n, size, node);\n });\n } else if (node.hierarchyState === HierarchyState.collapse && node.children?.length >= 1) {\n //树形展示 有子节点 且下一层不需要展开\n node.children.forEach(n => {\n n.level = (node.level ?? 0) + 1;\n this.setTreeNode(n, size, node);\n });\n } else if (!node.hierarchyState && node.level + 1 < this.rowExpandLevel && node.children?.length >= 1) {\n //树形展示 有子节点 且下一层需要展开\n node.hierarchyState = HierarchyState.expand;\n node.children.forEach(n => {\n n.level = (node.level ?? 0) + 1;\n size += this.setTreeNode(n, size, node);\n });\n } else if (node.children?.length >= 1) {\n //树形展示 有子节点 且下一层不需要展开\n node.hierarchyState = HierarchyState.collapse;\n node.children.forEach(n => {\n n.level = (node.level ?? 0) + 1;\n this.setTreeNode(n, size, node);\n });\n } else {\n //树形展示 无children子节点。但不能确定是最后一层的叶子节点 totalLevel还不能确定是计算完整棵树的整体深度\n node.hierarchyState = HierarchyState.none;\n size = 1;\n // re.totalLevel = Math.max(re.totalLevel, (node.level ?? -1) + 1);\n }\n\n node.size = size;\n // startInTotal = parent.startIndex + prevStartIndex\n return size;\n }\n getTreePath(index: number, maxDeep = 30): Array<IPivotLayoutHeadNode> {\n const path: any[] = [];\n this.searchPath(index, this.tree, path, maxDeep);\n path.shift();\n return path;\n }\n\n getTreePathByCellIds(ids: LayoutObjectId[]): Array<IPivotLayoutHeadNode> {\n const path: any[] = [];\n let nodes = this.tree.children;\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n const pathNode = this.findNodeById(nodes, id);\n if (pathNode) {\n path.push(pathNode);\n nodes = pathNode.children;\n } else {\n break;\n }\n }\n // path.shift();\n return path;\n }\n findNodeById(nodes: IPivotLayoutHeadNode[], id: LayoutObjectId) {\n return nodes.find(node => {\n return node.id === id;\n });\n }\n searchPath(index: number, node: IPivotLayoutHeadNode, path: Array<IPivotLayoutHeadNode>, maxDeep: number) {\n if (!node) {\n return false;\n }\n if (index < node.startIndex || index >= node.startIndex + node.size) {\n return false;\n }\n path.push(node);\n if (!node.children || node.children.length === 0) {\n return true;\n }\n if (node.level >= maxDeep) {\n return true;\n }\n // 这里按照 数据填充时,序号时同级序号 还是全局序号\n const cIndex = index - node.startIndex;\n node.children.some(n => this.searchPath(cIndex, n, path, maxDeep));\n return true;\n }\n /**\n * 将该树中 层级为level 的sourceIndex处的节点移动到targetIndex位置\n * @param level\n * @param sourceIndex\n * @param targetIndex\n */\n movePosition(level: number, sourceIndex: number, targetIndex: number) {\n // let sourceNode: IPivotLayoutHeadNode;\n let parNode: IPivotLayoutHeadNode;\n let sourceSubIndex: number;\n let targetSubIndex: number;\n /**\n * 对parNode的子节点第subIndex处的node节点 进行判断是否为sourceIndex或者targetIndex\n * 如果是 则记录下subIndex 以对parNode中个节点位置进行移位\n * @param node\n * @param subIndex\n * @returns\n */\n const findTargetNode = (node: IPivotLayoutHeadNode, subIndex: number) => {\n if (sourceSubIndex !== undefined && targetSubIndex !== undefined) {\n return;\n }\n if (node.level === level) {\n if (node.startInTotal === sourceIndex) {\n // sourceNode = node;\n sourceSubIndex = subIndex;\n }\n // if (node.startInTotal === targetIndex) targetSubIndex = subIndex;\n // 判断targetIndex是否在node的范围内 将当前node的subIndex记为targetSubIndex\n if (node.startInTotal <= targetIndex && targetIndex <= node.startInTotal + node.size - 1) {\n targetSubIndex = subIndex;\n }\n }\n\n if (node.children && node.level < level) {\n parNode = node;\n for (let i = 0; i < node.children.length; i++) {\n if (\n (sourceIndex >= node.children[i].startInTotal &&\n sourceIndex <= node.children[i].startInTotal + node.children[i].size) ||\n (targetIndex >= node.children[i].startInTotal &&\n targetIndex <= node.children[i].startInTotal + node.children[i].size)\n ) {\n findTargetNode(node.children[i], i);\n }\n }\n }\n };\n findTargetNode(this.tree, 0);\n\n //对parNode子节点位置进行移位【根据sourceSubIndex和targetSubIndex】\n const sourceColumns = parNode.children.splice(sourceSubIndex, 1);\n sourceColumns.unshift(targetSubIndex as any, 0 as any);\n Array.prototype.splice.apply(parNode.children, sourceColumns);\n }\n}\n\n//#region 为方法getLayoutRowTree提供的类型和工具方法\nexport type LayouTreeNode = {\n dimensionKey?: string;\n indicatorKey?: string;\n value: string;\n hierarchyState: HierarchyState;\n children?: LayouTreeNode[];\n};\n\nexport function generateLayoutTree(tree: LayouTreeNode[], children: IPivotLayoutHeadNode[]) {\n children?.forEach((node: IPivotLayoutHeadNode) => {\n const diemnsonNode: {\n dimensionKey?: string;\n indicatorKey?: string;\n value: string;\n hierarchyState: HierarchyState;\n children: any;\n } = {\n dimensionKey: node.dimensionKey,\n indicatorKey: node.indicatorKey,\n value: node.value,\n hierarchyState: node.hierarchyState,\n children: undefined\n };\n tree.push(diemnsonNode);\n if (node.children) {\n diemnsonNode.children = [];\n generateLayoutTree(diemnsonNode.children, node.children);\n }\n });\n}\n//#endregion\n\n//#region 为方法getLayoutRowTreeCount提的工具方法\nexport function countLayoutTree(children: { children?: any }[], countParentNode: boolean) {\n let count = 0;\n children?.forEach((node: IPivotLayoutHeadNode) => {\n if (countParentNode) {\n count++;\n } else {\n if (!node.children || node.children.length === 0) {\n count++;\n }\n }\n if (node.children) {\n count += countLayoutTree(node.children, countParentNode);\n }\n });\n return count;\n}\n//#endregion\n\nexport function dealHeader(\n hd: IPivotLayoutHeadNode,\n _headerCellIds: number[][],\n results: HeaderData[],\n roots: number[],\n row: number,\n layoutMap: PivotHeaderLayoutMap\n) {\n // const col = this._columns.length;\n const id = hd.id;\n const dimensionInfo: IDimension =\n (layoutMap.rowsDefine?.find(dimension =>\n typeof dimension === 'string' ? false : dimension.dimensionKey === hd.dimensionKey\n ) as IDimension) ??\n (layoutMap.columnsDefine?.find(dimension =>\n typeof dimension === 'string' ? false : dimension.dimensionKey === hd.dimensionKey\n ) as IDimension);\n const indicatorInfo = layoutMap.indicatorsDefine?.find(indicator => {\n if (typeof indicator === 'string') {\n return false;\n }\n if (hd.indicatorKey) {\n return indicator.indicatorKey === hd.indicatorKey;\n }\n return indicator.title === hd.value;\n }) as IIndicator;\n const cell: HeaderData = {\n id,\n title: hd.value ?? indicatorInfo?.title,\n field: hd.dimensionKey,\n style:\n typeof (indicatorInfo ?? dimensionInfo)?.headerStyle === 'function'\n ? (indicatorInfo ?? dimensionInfo)?.headerStyle\n : Object.assign({}, (indicatorInfo ?? dimensionInfo)?.headerStyle),\n headerType: indicatorInfo?.headerType ?? dimensionInfo?.headerType ?? 'text',\n headerIcon: indicatorInfo?.headerIcon ?? dimensionInfo?.headerIcon,\n // define: <any>hd,\n define: Object.assign({}, <any>hd, indicatorInfo ?? dimensionInfo),\n fieldFormat: indicatorInfo?.headerFormat ?? dimensionInfo?.headerFormat,\n // iconPositionList:[]\n dropDownMenu: indicatorInfo?.dropDownMenu ?? dimensionInfo?.dropDownMenu,\n pivotInfo: {\n value: hd.value,\n dimensionKey: hd.dimensionKey,\n isPivotCorner: false\n // customInfo: dimensionInfo?.customInfo\n },\n width: (dimensionInfo as IRowDimension)?.width,\n minWidth: (dimensionInfo as IRowDimension)?.minWidth,\n maxWidth: (dimensionInfo as IRowDimension)?.maxWidth,\n showSort: indicatorInfo?.showSort ?? dimensionInfo?.showSort,\n description: dimensionInfo?.description\n };\n\n if (indicatorInfo) {\n //收集indicatorDimensionKey 提到了构造函数中\n // this.indicatorDimensionKey = dimensionInfo.dimensionKey;\n if (indicatorInfo.customRender) {\n hd.customRender = indicatorInfo.customRender;\n }\n if (!isValid(layoutMap._indicators?.find(indicator => indicator.indicatorKey === indicatorInfo.indicatorKey))) {\n layoutMap._indicators?.push({\n id: ++layoutMap.sharedVar.seqId,\n indicatorKey: indicatorInfo.indicatorKey,\n field: indicatorInfo.indicatorKey,\n fieldFormat: indicatorInfo?.format,\n cellType: indicatorInfo?.cellType ?? (indicatorInfo as any)?.columnType ?? 'text',\n chartModule: 'chartModule' in indicatorInfo ? indicatorInfo.chartModule : null,\n chartSpec: 'chartSpec' in indicatorInfo ? indicatorInfo.chartSpec : null,\n sparklineSpec: 'sparklineSpec' in indicatorInfo ? indicatorInfo.sparklineSpec : null,\n style: indicatorInfo?.style,\n icon: indicatorInfo?.icon,\n define: Object.assign({}, <any>hd, indicatorInfo, {\n dragHeader: dimensionInfo?.dragHeader\n }),\n width: indicatorInfo?.width,\n minWidth: indicatorInfo?.minWidth,\n maxWidth: indicatorInfo?.maxWidth,\n disableColumnResize: indicatorInfo?.disableColumnResize\n });\n }\n } else if (hd.indicatorKey) {\n //兼容当某个指标没有设置在dimension.indicators中\n if (!isValid(layoutMap._indicators?.find(indicator => indicator.indicatorKey === hd.indicatorKey))) {\n layoutMap._indicators?.push({\n id: ++layoutMap.sharedVar.seqId,\n indicatorKey: hd.indicatorKey,\n field: hd.indicatorKey,\n cellType: 'text',\n define: Object.assign({}, <any>hd)\n });\n }\n }\n // if (dimensionInfo.indicators) {\n // layoutMap.hideIndicatorName = dimensionInfo.hideIndicatorName ?? false;\n // layoutMap.indicatorsAsCol = dimensionInfo.indicatorsAsCol ?? true;\n // }\n results[id] = cell;\n layoutMap._headerObjects[id] = cell;\n _headerCellIds[row][layoutMap.colIndex] = id;\n for (let r = row - 1; r >= 0; r--) {\n _headerCellIds[r][layoutMap.colIndex] = roots[r];\n }\n if ((hd as IPivotLayoutHeadNode).children?.length >= 1) {\n layoutMap\n ._addHeaders(_headerCellIds, row + 1, (hd as IPivotLayoutHeadNode).children ?? [], [...roots, id])\n .forEach(c => results.push(c));\n } else {\n // columns.push([\"\"])//代码一个路径\n for (let r = row + 1; r < _headerCellIds.length; r++) {\n _headerCellIds[r][layoutMap.colIndex] = id;\n }\n layoutMap.colIndex++;\n }\n}\n\nexport function dealHeaderForTreeMode(\n hd: IPivotLayoutHeadNode,\n _headerCellIds: number[][],\n results: HeaderData[],\n roots: number[],\n row: number,\n totalLevel: number,\n show: boolean,\n dimensions: (IDimension | string)[],\n layoutMap: PivotHeaderLayoutMap\n) {\n const id = hd.id;\n // const dimensionInfo: IDimension =\n // (this.rowsDefine?.find(dimension =>\n // typeof dimension === 'string' ? false : dimension.dimensionKey === hd.dimensionKey\n // ) as IDimension) ??\n // (this.columnsDefine?.find(dimension =>\n // typeof dimension === 'string' ? false : dimension.dimensionKey === hd.dimensionKey\n // ) as IDimension);\n const dimensionInfo: IDimension = dimensions.find(dimension =>\n typeof dimension === 'string' ? false : dimension.dimensionKey === hd.dimensionKey\n ) as IDimension;\n\n const cell: HeaderData = {\n id,\n title: hd.value,\n field: hd.dimensionKey as FieldData,\n //如果不是整棵树的叶子节点,都靠左显示\n style:\n hd.level + 1 === totalLevel || typeof dimensionInfo?.headerStyle === 'function'\n ? dimensionInfo?.headerStyle\n : Object.assign({}, dimensionInfo?.headerStyle, { textAlign: 'left' }),\n headerType: dimensionInfo?.headerType ?? 'text',\n headerIcon: dimensionInfo?.headerIcon,\n define: Object.assign(<any>hd, {\n linkJump: (dimensionInfo as ILinkDimension)?.linkJump,\n linkDetect: (dimensionInfo as ILinkDimension)?.linkDetect,\n templateLink: (dimensionInfo as ILinkDimension)?.templateLink,\n\n // image相关 to be fixed\n keepAspectRatio: (dimensionInfo as IImageDimension)?.keepAspectRatio ?? false,\n imageAutoSizing: (dimensionInfo as IImageDimension)?.imageAutoSizing,\n\n headerCustomRender: dimensionInfo?.headerCustomRender,\n headerCustomLayout: dimensionInfo?.headerCustomLayout,\n dragHeader: dimensionInfo?.dragHeader\n }), //这里不能新建对象,要用hd保持引用关系\n fieldFormat: dimensionInfo?.headerFormat,\n // iconPositionList:[]\n dropDownMenu: dimensionInfo?.dropDownMenu,\n pivotInfo: {\n value: hd.value,\n dimensionKey: hd.dimensionKey as string,\n isPivotCorner: false\n // customInfo: dimensionInfo?.customInfo\n },\n hierarchyLevel: hd.level,\n dimensionTotalLevel: totalLevel,\n hierarchyState: hd.level + 1 === totalLevel ? undefined : hd.hierarchyState,\n width: (dimensionInfo as IRowDimension)?.width,\n minWidth: (dimensionInfo as IRowDimension)?.minWidth,\n maxWidth: (dimensionInfo as IRowDimension)?.maxWidth,\n parentCellId: roots[roots.length - 1]\n };\n\n results[id] = cell;\n // this._cellIdDiemnsionMap.set(id, {\n // dimensionKey: hd.dimensionKey,\n // value: hd.value\n // });\n layoutMap._headerObjects[id] = cell;\n _headerCellIds[row][layoutMap.colIndex] = id;\n for (let r = row - 1; r >= 0; r--) {\n _headerCellIds[r][layoutMap.colIndex] = roots[r];\n }\n if (hd.hierarchyState === HierarchyState.expand && (hd as IPivotLayoutHeadNode).children?.length >= 1) {\n //row传值 colIndex++和_addHeaders有区别\n show && layoutMap.colIndex++;\n layoutMap\n ._addHeadersForTreeMode(\n _headerCellIds,\n row,\n (hd as IPivotLayoutHeadNode).children ?? [],\n [...roots, id],\n totalLevel,\n show && hd.hierarchyState === HierarchyState.expand, //当前节点show 且当前节点状态为展开 则传给子节点为show:true\n dimensions\n )\n .forEach(c => results.push(c));\n } else {\n // columns.push([\"\"])//代码一个路径\n show && layoutMap.colIndex++;\n for (let r = row + 1; r < _headerCellIds.length; r++) {\n _headerCellIds[r][layoutMap.colIndex] = id;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/layout/pivot-layout-helper.ts"],"names":[],"mappings":"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","file":"pivot-layout-helper.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport { NumberMap } from '../tools/NumberMap';\nimport { IndicatorDimensionKeyPlaceholder } from '../tools/global';\nimport type { Either } from '../tools/helper';\nimport type {\n CellInfo,\n ColumnIconOption,\n FieldData,\n HeaderData,\n ICustomRender,\n IDimension,\n IIndicator,\n IRowDimension,\n LayoutObjectId\n} from '../ts-types';\nimport { HierarchyState } from '../ts-types';\nimport type { PivotHeaderLayoutMap } from './pivot-header-layout';\nimport type { ILinkDimension } from '../ts-types/pivot-table/dimension/link-dimension';\nimport type { IImageDimension } from '../ts-types/pivot-table/dimension/image-dimension';\n// import { sharedVar } from './pivot-header-layout';\n\ninterface IPivotLayoutBaseHeadNode {\n id: number;\n // dimensionKey: string;\n // // title: string;\n // indicatorKey?: string;\n value: string;\n children: IPivotLayoutHeadNode[] | undefined;\n level: number;\n startIndex: number;\n size: number; //对应到colSpan或者rowSpan\n // parsing?: 'img' | 'link' | 'video' | 'templateLink';\n startInTotal: number;\n // headerStyle:HeaderStyleOption| null;\n customRender?: ICustomRender;\n\n hierarchyState: HierarchyState;\n headerIcon?: (string | ColumnIconOption)[] | ((args: CellInfo) => (string | ColumnIconOption)[]);\n}\n\ninterface IPivotLayoutDimensionHeadNode extends IPivotLayoutBaseHeadNode {\n dimensionKey: string;\n}\ninterface IPivotLayoutIndicatorHeadNode extends IPivotLayoutBaseHeadNode {\n indicatorKey: string;\n}\nexport type IPivotLayoutHeadNode = Either<IPivotLayoutDimensionHeadNode, IPivotLayoutIndicatorHeadNode>;\nexport class DimensionTree {\n sharedVar: { seqId: number };\n // 每一个值对应的序号 结果缓存\n // cache: {\n // [propName: string]: any;\n // };\n //树形展示 会将非叶子节点单独展示一行 所以size会增加非叶子节点的个数\n sizeIncludeParent = false;\n rowExpandLevel: number;\n hierarchyType: 'grid' | 'tree';\n tree: IPivotLayoutHeadNode = {\n id: 0,\n dimensionKey: '',\n // title: '',\n value: '',\n children: [],\n level: -1,\n startIndex: 0,\n size: 0,\n startInTotal: 0,\n hierarchyState: undefined\n };\n\n totalLevel = 0;\n\n // blockLevel: number = 0;\n\n // blockStartIndexMap: Map<number, boolean> = new Map();\n // blockEndIndexMap: Map<number, boolean> = new Map();\n dimensionKeys: NumberMap<string> = new NumberMap<string>();\n // dimensions: IDimension[] | undefined;//目前用不到这个\n constructor(\n tree: IPivotLayoutHeadNode[],\n sharedVar: { seqId: number },\n hierarchyType: 'grid' | 'tree' = 'grid',\n rowExpandLevel: number = undefined\n ) {\n this.sizeIncludeParent = rowExpandLevel !== null && rowExpandLevel !== undefined;\n this.rowExpandLevel = rowExpandLevel;\n this.hierarchyType = hierarchyType;\n this.sharedVar = sharedVar;\n this.reset(tree);\n }\n\n reset(tree: IPivotLayoutHeadNode[], updateTreeNode = false) {\n // 清空缓存的计算\n // this.cache = {};\n // this.dimensions = dimensions;\n this.dimensionKeys = new NumberMap<string>();\n this.tree.children = tree as IPivotLayoutHeadNode[];\n // const re = { totalLevel: 0 };\n // if (updateTreeNode) this.updateTreeNode(this.tree, 0, re, this.tree);\n // else\n this.setTreeNode(this.tree, 0, this.tree);\n this.totalLevel = this.dimensionKeys.count();\n }\n setTreeNode(node: IPivotLayoutHeadNode, startIndex: number, parent: IPivotLayoutHeadNode): number {\n node.startIndex = startIndex;\n node.startInTotal = (parent.startInTotal ?? 0) + node.startIndex;\n // if (node.dimensionKey) {\n // !this.dimensionKeys.contain(node.dimensionKey) &&\n // this.dimensionKeys.put(node.level, node.dimensionKey);\n // if (!node.id) node.id = ++seqId;\n // }\n if (node.dimensionKey ?? node.indicatorKey) {\n !this.dimensionKeys.contain(node.indicatorKey ? IndicatorDimensionKeyPlaceholder : node.dimensionKey) &&\n this.dimensionKeys.put(node.level, node.indicatorKey ? IndicatorDimensionKeyPlaceholder : node.dimensionKey);\n if (!node.id) {\n node.id = ++this.sharedVar.seqId;\n }\n }\n let size = node.dimensionKey ? (this.sizeIncludeParent ? 1 : 0) : 0;\n //平铺展示 分析所有层级\n if (this.hierarchyType === 'grid') {\n if (node.children?.length >= 1) {\n node.children.forEach(n => {\n n.level = (node.level ?? 0) + 1;\n size += this.setTreeNode(n, size, node);\n });\n } else {\n size = 1;\n // re.totalLevel = Math.max(re.totalLevel, (node.level ?? -1) + 1);\n }\n } else if (node.hierarchyState === HierarchyState.expand && node.children?.length >= 1) {\n //树形展示 有子节点 且下一层需要展开\n node.children.forEach(n => {\n n.level = (node.level ?? 0) + 1;\n size += this.setTreeNode(n, size, node);\n });\n } else if (node.hierarchyState === HierarchyState.collapse && node.children?.length >= 1) {\n //树形展示 有子节点 且下一层不需要展开\n node.children.forEach(n => {\n n.level = (node.level ?? 0) + 1;\n this.setTreeNode(n, size, node);\n });\n } else if (!node.hierarchyState && node.level + 1 < this.rowExpandLevel && node.children?.length >= 1) {\n //树形展示 有子节点 且下一层需要展开\n node.hierarchyState = HierarchyState.expand;\n node.children.forEach(n => {\n n.level = (node.level ?? 0) + 1;\n size += this.setTreeNode(n, size, node);\n });\n } else if (node.children?.length >= 1) {\n //树形展示 有子节点 且下一层不需要展开\n node.hierarchyState = HierarchyState.collapse;\n node.children.forEach(n => {\n n.level = (node.level ?? 0) + 1;\n this.setTreeNode(n, size, node);\n });\n } else {\n //树形展示 无children子节点。但不能确定是最后一层的叶子节点 totalLevel还不能确定是计算完整棵树的整体深度\n node.hierarchyState = HierarchyState.none;\n size = 1;\n // re.totalLevel = Math.max(re.totalLevel, (node.level ?? -1) + 1);\n }\n\n node.size = size;\n // startInTotal = parent.startIndex + prevStartIndex\n return size;\n }\n getTreePath(index: number, maxDeep = 30): Array<IPivotLayoutHeadNode> {\n const path: any[] = [];\n this.searchPath(index, this.tree, path, maxDeep);\n path.shift();\n return path;\n }\n\n getTreePathByCellIds(ids: LayoutObjectId[]): Array<IPivotLayoutHeadNode> {\n const path: any[] = [];\n let nodes = this.tree.children;\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n const pathNode = this.findNodeById(nodes, id);\n if (pathNode) {\n path.push(pathNode);\n nodes = pathNode.children;\n } else {\n break;\n }\n }\n // path.shift();\n return path;\n }\n findNodeById(nodes: IPivotLayoutHeadNode[], id: LayoutObjectId) {\n return nodes.find(node => {\n return node.id === id;\n });\n }\n searchPath(index: number, node: IPivotLayoutHeadNode, path: Array<IPivotLayoutHeadNode>, maxDeep: number) {\n if (!node) {\n return false;\n }\n if (index < node.startIndex || index >= node.startIndex + node.size) {\n return false;\n }\n path.push(node);\n if (!node.children || node.children.length === 0) {\n return true;\n }\n if (node.level >= maxDeep) {\n return true;\n }\n // 这里按照 数据填充时,序号时同级序号 还是全局序号\n const cIndex = index - node.startIndex;\n node.children.some(n => this.searchPath(cIndex, n, path, maxDeep));\n return true;\n }\n /**\n * 将该树中 层级为level 的sourceIndex处的节点移动到targetIndex位置\n * @param level\n * @param sourceIndex\n * @param targetIndex\n */\n movePosition(level: number, sourceIndex: number, targetIndex: number) {\n // let sourceNode: IPivotLayoutHeadNode;\n let parNode: IPivotLayoutHeadNode;\n let sourceSubIndex: number;\n let targetSubIndex: number;\n /**\n * 对parNode的子节点第subIndex处的node节点 进行判断是否为sourceIndex或者targetIndex\n * 如果是 则记录下subIndex 以对parNode中个节点位置进行移位\n * @param node\n * @param subIndex\n * @returns\n */\n const findTargetNode = (node: IPivotLayoutHeadNode, subIndex: number) => {\n if (sourceSubIndex !== undefined && targetSubIndex !== undefined) {\n return;\n }\n if (node.level === level) {\n if (node.startInTotal === sourceIndex) {\n // sourceNode = node;\n sourceSubIndex = subIndex;\n }\n // if (node.startInTotal === targetIndex) targetSubIndex = subIndex;\n // 判断targetIndex是否在node的范围内 将当前node的subIndex记为targetSubIndex\n if (node.startInTotal <= targetIndex && targetIndex <= node.startInTotal + node.size - 1) {\n targetSubIndex = subIndex;\n }\n }\n\n if (node.children && node.level < level) {\n parNode = node;\n for (let i = 0; i < node.children.length; i++) {\n if (\n (sourceIndex >= node.children[i].startInTotal &&\n sourceIndex <= node.children[i].startInTotal + node.children[i].size) ||\n (targetIndex >= node.children[i].startInTotal &&\n targetIndex <= node.children[i].startInTotal + node.children[i].size)\n ) {\n findTargetNode(node.children[i], i);\n }\n }\n }\n };\n findTargetNode(this.tree, 0);\n\n //对parNode子节点位置进行移位【根据sourceSubIndex和targetSubIndex】\n const sourceColumns = parNode.children.splice(sourceSubIndex, 1);\n sourceColumns.unshift(targetSubIndex as any, 0 as any);\n Array.prototype.splice.apply(parNode.children, sourceColumns);\n }\n}\n\n//#region 为方法getLayoutRowTree提供的类型和工具方法\nexport type LayouTreeNode = {\n dimensionKey?: string;\n indicatorKey?: string;\n value: string;\n hierarchyState: HierarchyState;\n children?: LayouTreeNode[];\n};\n\nexport function generateLayoutTree(tree: LayouTreeNode[], children: IPivotLayoutHeadNode[]) {\n children?.forEach((node: IPivotLayoutHeadNode) => {\n const diemnsonNode: {\n dimensionKey?: string;\n indicatorKey?: string;\n value: string;\n hierarchyState: HierarchyState;\n children: any;\n } = {\n dimensionKey: node.dimensionKey,\n indicatorKey: node.indicatorKey,\n value: node.value,\n hierarchyState: node.hierarchyState,\n children: undefined\n };\n tree.push(diemnsonNode);\n if (node.children) {\n diemnsonNode.children = [];\n generateLayoutTree(diemnsonNode.children, node.children);\n }\n });\n}\n//#endregion\n\n//#region 为方法getLayoutRowTreeCount提的工具方法\nexport function countLayoutTree(children: { children?: any }[], countParentNode: boolean) {\n let count = 0;\n children?.forEach((node: IPivotLayoutHeadNode) => {\n if (countParentNode) {\n count++;\n } else {\n if (!node.children || node.children.length === 0) {\n count++;\n }\n }\n if (node.children) {\n count += countLayoutTree(node.children, countParentNode);\n }\n });\n return count;\n}\n//#endregion\n\nexport function dealHeader(\n hd: IPivotLayoutHeadNode,\n _headerCellIds: number[][],\n results: HeaderData[],\n roots: number[],\n row: number,\n layoutMap: PivotHeaderLayoutMap\n) {\n // const col = this._columns.length;\n const id = hd.id;\n const dimensionInfo: IDimension =\n (layoutMap.rowsDefine?.find(dimension =>\n typeof dimension === 'string' ? false : dimension.dimensionKey === hd.dimensionKey\n ) as IDimension) ??\n (layoutMap.columnsDefine?.find(dimension =>\n typeof dimension === 'string' ? false : dimension.dimensionKey === hd.dimensionKey\n ) as IDimension);\n const indicatorInfo = layoutMap.indicatorsDefine?.find(indicator => {\n if (typeof indicator === 'string') {\n return false;\n }\n if (hd.indicatorKey) {\n return indicator.indicatorKey === hd.indicatorKey;\n }\n return indicator.title === hd.value;\n }) as IIndicator;\n const cell: HeaderData = {\n id,\n title: hd.value ?? indicatorInfo?.title,\n field: hd.dimensionKey,\n style:\n typeof (indicatorInfo ?? dimensionInfo)?.headerStyle === 'function'\n ? (indicatorInfo ?? dimensionInfo)?.headerStyle\n : Object.assign({}, (indicatorInfo ?? dimensionInfo)?.headerStyle),\n headerType: indicatorInfo?.headerType ?? dimensionInfo?.headerType ?? 'text',\n headerIcon: indicatorInfo?.headerIcon ?? dimensionInfo?.headerIcon,\n // define: <any>hd,\n define: Object.assign({}, <any>hd, indicatorInfo ?? dimensionInfo),\n fieldFormat: indicatorInfo?.headerFormat ?? dimensionInfo?.headerFormat,\n // iconPositionList:[]\n dropDownMenu: indicatorInfo?.dropDownMenu ?? dimensionInfo?.dropDownMenu,\n pivotInfo: {\n value: hd.value,\n dimensionKey: hd.dimensionKey,\n isPivotCorner: false\n // customInfo: dimensionInfo?.customInfo\n },\n width: (dimensionInfo as IRowDimension)?.width,\n minWidth: (dimensionInfo as IRowDimension)?.minWidth,\n maxWidth: (dimensionInfo as IRowDimension)?.maxWidth,\n showSort: indicatorInfo?.showSort ?? dimensionInfo?.showSort,\n description: dimensionInfo?.description\n };\n\n if (indicatorInfo) {\n //收集indicatorDimensionKey 提到了构造函数中\n // this.indicatorDimensionKey = dimensionInfo.dimensionKey;\n if (indicatorInfo.customRender) {\n hd.customRender = indicatorInfo.customRender;\n }\n if (!isValid(layoutMap._indicators?.find(indicator => indicator.indicatorKey === indicatorInfo.indicatorKey))) {\n layoutMap._indicators?.push({\n id: ++layoutMap.sharedVar.seqId,\n indicatorKey: indicatorInfo.indicatorKey,\n field: indicatorInfo.indicatorKey,\n fieldFormat: indicatorInfo?.format,\n cellType: indicatorInfo?.cellType ?? (indicatorInfo as any)?.columnType ?? 'text',\n chartModule: 'chartModule' in indicatorInfo ? indicatorInfo.chartModule : null,\n chartSpec: 'chartSpec' in indicatorInfo ? indicatorInfo.chartSpec : null,\n sparklineSpec: 'sparklineSpec' in indicatorInfo ? indicatorInfo.sparklineSpec : null,\n style: indicatorInfo?.style,\n icon: indicatorInfo?.icon,\n define: Object.assign({}, <any>hd, indicatorInfo, {\n dragHeader: dimensionInfo?.dragHeader\n }),\n width: indicatorInfo?.width,\n minWidth: indicatorInfo?.minWidth,\n maxWidth: indicatorInfo?.maxWidth,\n disableColumnResize: indicatorInfo?.disableColumnResize\n });\n }\n } else if (hd.indicatorKey) {\n //兼容当某个指标没有设置在dimension.indicators中\n if (!isValid(layoutMap._indicators?.find(indicator => indicator.indicatorKey === hd.indicatorKey))) {\n layoutMap._indicators?.push({\n id: ++layoutMap.sharedVar.seqId,\n indicatorKey: hd.indicatorKey,\n field: hd.indicatorKey,\n cellType: 'text',\n define: Object.assign({}, <any>hd)\n });\n }\n }\n // if (dimensionInfo.indicators) {\n // layoutMap.hideIndicatorName = dimensionInfo.hideIndicatorName ?? false;\n // layoutMap.indicatorsAsCol = dimensionInfo.indicatorsAsCol ?? true;\n // }\n results[id] = cell;\n layoutMap._headerObjects[id] = cell;\n _headerCellIds[row][layoutMap.colIndex] = id;\n for (let r = row - 1; r >= 0; r--) {\n _headerCellIds[r][layoutMap.colIndex] = roots[r];\n }\n if ((hd as IPivotLayoutHeadNode).children?.length >= 1) {\n layoutMap\n ._addHeaders(_headerCellIds, row + 1, (hd as IPivotLayoutHeadNode).children ?? [], [...roots, id])\n .forEach(c => results.push(c));\n } else {\n // columns.push([\"\"])//代码一个路径\n for (let r = row + 1; r < _headerCellIds.length; r++) {\n _headerCellIds[r][layoutMap.colIndex] = id;\n }\n layoutMap.colIndex++;\n }\n}\n\nexport function dealHeaderForTreeMode(\n hd: IPivotLayoutHeadNode,\n _headerCellIds: number[][],\n results: HeaderData[],\n roots: number[],\n row: number,\n totalLevel: number,\n show: boolean,\n dimensions: (IDimension | string)[],\n layoutMap: PivotHeaderLayoutMap\n) {\n const id = hd.id;\n // const dimensionInfo: IDimension =\n // (this.rowsDefine?.find(dimension =>\n // typeof dimension === 'string' ? false : dimension.dimensionKey === hd.dimensionKey\n // ) as IDimension) ??\n // (this.columnsDefine?.find(dimension =>\n // typeof dimension === 'string' ? false : dimension.dimensionKey === hd.dimensionKey\n // ) as IDimension);\n const dimensionInfo: IDimension = dimensions.find(dimension =>\n typeof dimension === 'string' ? false : dimension.dimensionKey === hd.dimensionKey\n ) as IDimension;\n\n const cell: HeaderData = {\n id,\n title: hd.value,\n field: hd.dimensionKey as FieldData,\n //如果不是整棵树的叶子节点,都靠左显示\n style:\n hd.level + 1 === totalLevel || typeof dimensionInfo?.headerStyle === 'function'\n ? dimensionInfo?.headerStyle\n : Object.assign({}, dimensionInfo?.headerStyle, { textAlign: 'left' }),\n headerType: dimensionInfo?.headerType ?? 'text',\n headerIcon: dimensionInfo?.headerIcon,\n define: Object.assign(<any>hd, {\n linkJump: (dimensionInfo as ILinkDimension)?.linkJump,\n linkDetect: (dimensionInfo as ILinkDimension)?.linkDetect,\n templateLink: (dimensionInfo as ILinkDimension)?.templateLink,\n\n // image相关 to be fixed\n keepAspectRatio: (dimensionInfo as IImageDimension)?.keepAspectRatio ?? false,\n imageAutoSizing: (dimensionInfo as IImageDimension)?.imageAutoSizing,\n\n headerCustomRender: dimensionInfo?.headerCustomRender,\n headerCustomLayout: dimensionInfo?.headerCustomLayout,\n dragHeader: dimensionInfo?.dragHeader,\n disableHeaderHover: !!dimensionInfo?.disableHeaderHover,\n disableHeaderSelect: !!dimensionInfo?.disableHeaderSelect\n }), //这里不能新建对象,要用hd保持引用关系\n fieldFormat: dimensionInfo?.headerFormat,\n // iconPositionList:[]\n dropDownMenu: dimensionInfo?.dropDownMenu,\n pivotInfo: {\n value: hd.value,\n dimensionKey: hd.dimensionKey as string,\n isPivotCorner: false\n // customInfo: dimensionInfo?.customInfo\n },\n hierarchyLevel: hd.level,\n dimensionTotalLevel: totalLevel,\n hierarchyState: hd.level + 1 === totalLevel ? undefined : hd.hierarchyState,\n width: (dimensionInfo as IRowDimension)?.width,\n minWidth: (dimensionInfo as IRowDimension)?.minWidth,\n maxWidth: (dimensionInfo as IRowDimension)?.maxWidth,\n parentCellId: roots[roots.length - 1]\n };\n\n results[id] = cell;\n // this._cellIdDiemnsionMap.set(id, {\n // dimensionKey: hd.dimensionKey,\n // value: hd.value\n // });\n layoutMap._headerObjects[id] = cell;\n _headerCellIds[row][layoutMap.colIndex] = id;\n for (let r = row - 1; r >= 0; r--) {\n _headerCellIds[r][layoutMap.colIndex] = roots[r];\n }\n if (hd.hierarchyState === HierarchyState.expand && (hd as IPivotLayoutHeadNode).children?.length >= 1) {\n //row传值 colIndex++和_addHeaders有区别\n show && layoutMap.colIndex++;\n layoutMap\n ._addHeadersForTreeMode(\n _headerCellIds,\n row,\n (hd as IPivotLayoutHeadNode).children ?? [],\n [...roots, id],\n totalLevel,\n show && hd.hierarchyState === HierarchyState.expand, //当前节点show 且当前节点状态为展开 则传给子节点为show:true\n dimensions\n )\n .forEach(c => results.push(c));\n } else {\n // columns.push([\"\"])//代码一个路径\n show && layoutMap.colIndex++;\n for (let r = row + 1; r < _headerCellIds.length; r++) {\n _headerCellIds[r][layoutMap.colIndex] = id;\n }\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Group as VGroup } from '@visactor/vrender';
2
2
  import type { ICustomLayout, ICustomRender } from '../../ts-types';
3
3
  import type { BaseTableAPI } from '../../ts-types/base-table';
4
- export declare function dealWithCustom(customLayout: ICustomLayout, customRender: ICustomRender, col: number, row: number, width: number, height: number, autoWidth: boolean, autoHeight: boolean, table: BaseTableAPI): {
4
+ export declare function dealWithCustom(customLayout: ICustomLayout, customRender: ICustomRender, col: number, row: number, width: number, height: number, autoWidth: boolean, autoHeight: boolean, padding: [number, number, number, number], table: BaseTableAPI): {
5
5
  elementsGroup: VGroup;
6
6
  renderDefault: boolean;
7
7
  };
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
 
7
7
  const vrender_1 = require("@visactor/vrender"), vutils_1 = require("@visactor/vutils"), icon_1 = require("../graphic/icon"), text_1 = require("../graphic/text");
8
8
 
9
- function dealWithCustom(customLayout, customRender, col, row, width, height, autoWidth, autoHeight, table) {
10
- let expectedWidth, expectedHeight, customElements, elementsGroup, renderDefault = !0;
9
+ function dealWithCustom(customLayout, customRender, col, row, width, height, autoWidth, autoHeight, padding, table) {
10
+ let expectedWidth, expectedHeight, customElements, elementsGroup, renderDefault = !0, enableCellPadding = !1;
11
11
  if ("function" == typeof customLayout) {
12
12
  const customRenderObj = customLayout({
13
13
  col: col,
@@ -26,7 +26,8 @@ function dealWithCustom(customLayout, customRender, col, row, width, height, aut
26
26
  });
27
27
  customRenderObj.rootContainer && (customRenderObj.rootContainer = decodeReactDom(customRenderObj.rootContainer)),
28
28
  customRenderObj.rootContainer instanceof vrender_1.Group && (elementsGroup = customRenderObj.rootContainer,
29
- elementsGroup.name = "custom-container"), renderDefault = customRenderObj.renderDefault;
29
+ elementsGroup.name = "custom-container"), renderDefault = customRenderObj.renderDefault,
30
+ enableCellPadding = customRenderObj.enableCellPadding;
30
31
  } else if ("function" == typeof customRender) {
31
32
  const customRenderObj = customRender({
32
33
  col: col,
@@ -50,7 +51,12 @@ function dealWithCustom(customLayout, customRender, col, row, width, height, aut
50
51
  if (customElements) {
51
52
  elementsGroup = adjustElementToGroup(customElements, autoWidth ? expectedWidth : width, autoHeight ? expectedHeight : height, table.getCellValue(col, row));
52
53
  }
53
- return dealPercentCalc(elementsGroup, width, height), {
54
+ return enableCellPadding && elementsGroup.setAttributes({
55
+ x: padding[3],
56
+ y: padding[0],
57
+ width: width - padding[1] - padding[3],
58
+ height: height - padding[0] - padding[2]
59
+ }), dealPercentCalc(elementsGroup, width, height), {
54
60
  elementsGroup: elementsGroup,
55
61
  renderDefault: renderDefault
56
62
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/component/custom.ts"],"names":[],"mappings":"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","file":"custom.js","sourcesContent":["import type { Cursor } from '@visactor/vrender';\nimport { createArc, createCircle, createLine, createRect, Group as VGroup } from '@visactor/vrender';\nimport { isFunction, isObject, isString, isValid } from '@visactor/vutils';\nimport type {\n ICustomLayout,\n ICustomRender,\n ICustomRenderElement,\n ICustomRenderElements,\n RectElement\n} from '../../ts-types';\nimport { Group } from '../graphic/group';\nimport { Icon } from '../graphic/icon';\nimport { WrapText } from '../graphic/text';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { percentCalcObj, Rect } from '../../render/layout';\n\nexport function dealWithCustom(\n customLayout: ICustomLayout,\n customRender: ICustomRender,\n col: number,\n row: number,\n width: number,\n height: number,\n autoWidth: boolean,\n autoHeight: boolean,\n table: BaseTableAPI\n) {\n let renderDefault = true;\n let expectedWidth: number;\n let expectedHeight: number;\n let customElements;\n let elementsGroup: VGroup;\n\n if (typeof customLayout === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customLayout(arg);\n if (customRenderObj.rootContainer) {\n customRenderObj.rootContainer = decodeReactDom(customRenderObj.rootContainer);\n }\n // expectedWidth = customRenderObj.expectedWidth;\n // expectedHeight = customRenderObj.expectedHeight;\n if (customRenderObj.rootContainer instanceof VGroup) {\n elementsGroup = customRenderObj.rootContainer;\n elementsGroup.name = 'custom-container';\n // } else if (customRenderObj.rootContainer) {\n // customElements = customRenderObj.rootContainer.getElements(undefined, false, false);\n }\n renderDefault = customRenderObj.renderDefault;\n } else if (typeof customRender === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customRender(arg);\n if (customRenderObj) {\n customElements = customRenderObj.elements;\n renderDefault = customRenderObj.renderDefault;\n expectedWidth = customRenderObj.expectedWidth;\n expectedHeight = customRenderObj.expectedHeight;\n }\n } else if (customRender) {\n expectedWidth = customRender.expectedWidth;\n expectedHeight = customRender.expectedHeight;\n customElements = customRender.elements;\n renderDefault = customRender.renderDefault;\n }\n\n if (customElements) {\n const value = table.getCellValue(col, row);\n elementsGroup = adjustElementToGroup(\n customElements,\n autoWidth ? expectedWidth : width,\n autoHeight ? expectedHeight : height,\n value\n );\n }\n\n // for percent calc\n dealPercentCalc(elementsGroup, width, height);\n\n return {\n elementsGroup,\n renderDefault\n };\n}\n\nfunction adjustElementToGroup(\n elements: ICustomRenderElements,\n width: number,\n height: number,\n value: any\n): VGroup | undefined {\n const customGroup = new VGroup({\n x: 0,\n y: 0,\n width,\n height,\n fill: false,\n stroke: false,\n pickable: false\n });\n customGroup.name = 'custom-container';\n\n const elementsAdjusted = adjustElementsPos(elements, width, height, value);\n elementsAdjusted.forEach(element => {\n switch (element.type) {\n case 'arc':\n const arc = createArc({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n outerRadius: element.radius as number,\n startAngle: element.startAngle as number,\n endAngle: element.endAngle as number,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(arc);\n break;\n case 'text':\n if (element.background) {\n const expandX = element.background?.expandX ?? 0;\n const expandY = element.background?.expandY ?? 0;\n const textBackRect = createRect({\n x: (element.x as number) - expandX,\n y: (element.y as number) - expandY,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width + expandX * 2,\n height: element.height + expandY * 2,\n cornerRadius: element.background?.cornerRadius ?? 0,\n // fill: true,\n fill: element.background?.fill ?? '#888'\n });\n customGroup.appendChild(textBackRect);\n }\n const text = new WrapText(\n Object.assign(\n {\n pickable: !!element.clickable,\n fill: element.color ?? element.fill\n },\n element as any\n )\n );\n customGroup.appendChild(text);\n break;\n case 'rect':\n const rect = createRect({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n cornerRadius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(rect);\n break;\n case 'circle':\n const circle = createCircle({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n radius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(circle);\n break;\n case 'icon':\n const icon = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.svg as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n icon.role = 'icon-custom';\n customGroup.appendChild(icon);\n break;\n case 'image':\n const image = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.src as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor,\n shape: element.shape\n });\n image.role = 'image-custom';\n customGroup.appendChild(image);\n break;\n\n case 'line':\n const line = createLine({\n points: element.points,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(line);\n break;\n }\n });\n\n return customGroup;\n}\n\nfunction adjustElementsPos(\n originalElements: ICustomRenderElements,\n // rect: RectProps,\n width: number,\n height: number,\n // borderLineWidths: number[],\n value: any\n): ICustomRenderElements {\n const result: ICustomRenderElements = [];\n // const { left, top, width, height } = rect;\n const left = 0;\n const top = 0;\n const borderLineWidths = [0, 0, 0, 0];\n\n for (let i = 0; i < originalElements.length; i++) {\n const originalElement = originalElements[i];\n const element = Object.assign({}, originalElement);\n // 执行相关函数\n for (const name in element) {\n if (element.hasOwnProperty(name) && isFunction(element[name])) {\n element[name] = (element[name] as Function)(value);\n }\n }\n\n // 转换字符串值(百分比、px)\n const rect = element as RectElement;\n if (isValid(rect.x)) {\n rect.x = isString(rect.x)\n ? transformString((rect as any).x as string, width - borderLineWidths[1])\n : Number(rect.x);\n }\n if (isValid(rect.y)) {\n rect.y = isString(rect.y)\n ? transformString((rect as any).y as string, height - borderLineWidths[2])\n : Number(rect.y);\n }\n if ('width' in element) {\n element.width = isString(element.width)\n ? transformString(element.width as string, width - borderLineWidths[1])\n : Number(element.width);\n }\n if ('height' in element) {\n element.height = isString(element.height)\n ? transformString(element.height as string, height - borderLineWidths[2])\n : Number(element.height);\n }\n if ('radius' in element) {\n element.radius = isString(element.radius)\n ? transformString(element.radius as string, Math.min(width - borderLineWidths[1], height - borderLineWidths[2]))\n : Number(element.radius);\n }\n if ('hover' in element) {\n // 转换字符串值(百分比、px)\n element.hover.x = isString(element.hover.x)\n ? transformString(element.hover.x as string, width - borderLineWidths[1])\n : Number(element.hover.x);\n element.hover.y = isString(element.hover.y)\n ? transformString(element.hover.y as string, height - borderLineWidths[2])\n : Number(element.hover.y);\n element.hover.width = isString(element.hover.width)\n ? transformString(element.hover.width as string, width - borderLineWidths[1])\n : Number(element.hover.width);\n\n element.hover.height = isString(element.hover.height)\n ? transformString(element.hover.height as string, height - borderLineWidths[2])\n : Number(element.hover.height);\n element.hover.x += left;\n element.hover.y += top;\n }\n // 矫正位置\n rect.x = rect.x + left;\n rect.y = rect.y + top;\n\n result.push(element as unknown as ICustomRenderElement);\n }\n\n return result;\n}\n\nfunction transformString(str: string, size?: number): number {\n if (str.endsWith('px')) {\n return parseInt(str, 10);\n } else if (str.endsWith('%') && size) {\n return (parseInt(str, 10) / 100) * size;\n }\n return parseInt(str, 10);\n}\n\nexport function dealPercentCalc(group: VGroup, parentWidth: number, parentHeight: number) {\n if (!group) {\n return;\n }\n group.forEachChildren((child: VGroup) => {\n if (isObject(child.attribute.width) && (child.attribute.width as percentCalcObj).percent) {\n child.setAttribute(\n 'width',\n ((child.attribute.width as percentCalcObj).percent / 100) * parentWidth +\n ((child.attribute.width as percentCalcObj).delta ?? 0)\n );\n }\n\n if (isObject(child.attribute.height) && (child.attribute.height as percentCalcObj).percent) {\n child.setAttribute(\n 'height',\n ((child.attribute.height as percentCalcObj).percent / 100) * parentHeight +\n ((child.attribute.height as percentCalcObj).delta ?? 0)\n );\n }\n\n if (child.type === 'group') {\n dealPercentCalc(child, child.attribute.width, child.attribute.height);\n }\n });\n}\n\n// temp devode for react jsx customLayout\nexport function decodeReactDom(dom: any) {\n if (!dom.$$typeof) {\n // not react\n return dom;\n }\n const type = dom.type;\n const { attribute, children } = dom.props;\n const g = type({ attribute });\n g.id = attribute.id;\n g.name = attribute.name;\n children &&\n children.length &&\n children.forEach((item: any) => {\n const c = decodeReactDom(item);\n g.add(c);\n });\n return g;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/component/custom.ts"],"names":[],"mappings":"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","file":"custom.js","sourcesContent":["import type { Cursor } from '@visactor/vrender';\nimport { createArc, createCircle, createLine, createRect, Group as VGroup } from '@visactor/vrender';\nimport { isFunction, isObject, isString, isValid } from '@visactor/vutils';\nimport type {\n ICustomLayout,\n ICustomRender,\n ICustomRenderElement,\n ICustomRenderElements,\n RectElement\n} from '../../ts-types';\nimport { Group } from '../graphic/group';\nimport { Icon } from '../graphic/icon';\nimport { WrapText } from '../graphic/text';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { percentCalcObj, Rect } from '../../render/layout';\n\nexport function dealWithCustom(\n customLayout: ICustomLayout,\n customRender: ICustomRender,\n col: number,\n row: number,\n width: number,\n height: number,\n autoWidth: boolean,\n autoHeight: boolean,\n padding: [number, number, number, number],\n table: BaseTableAPI\n) {\n let renderDefault = true;\n let enableCellPadding = false;\n let expectedWidth: number;\n let expectedHeight: number;\n let customElements;\n let elementsGroup: VGroup;\n\n if (typeof customLayout === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customLayout(arg);\n if (customRenderObj.rootContainer) {\n customRenderObj.rootContainer = decodeReactDom(customRenderObj.rootContainer);\n }\n // expectedWidth = customRenderObj.expectedWidth;\n // expectedHeight = customRenderObj.expectedHeight;\n if (customRenderObj.rootContainer instanceof VGroup) {\n elementsGroup = customRenderObj.rootContainer;\n elementsGroup.name = 'custom-container';\n // } else if (customRenderObj.rootContainer) {\n // customElements = customRenderObj.rootContainer.getElements(undefined, false, false);\n }\n renderDefault = customRenderObj.renderDefault;\n enableCellPadding = customRenderObj.enableCellPadding;\n } else if (typeof customRender === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customRender(arg);\n if (customRenderObj) {\n customElements = customRenderObj.elements;\n renderDefault = customRenderObj.renderDefault;\n expectedWidth = customRenderObj.expectedWidth;\n expectedHeight = customRenderObj.expectedHeight;\n }\n } else if (customRender) {\n expectedWidth = customRender.expectedWidth;\n expectedHeight = customRender.expectedHeight;\n customElements = customRender.elements;\n renderDefault = customRender.renderDefault;\n }\n\n if (customElements) {\n const value = table.getCellValue(col, row);\n elementsGroup = adjustElementToGroup(\n customElements,\n autoWidth ? expectedWidth : width,\n autoHeight ? expectedHeight : height,\n value\n );\n }\n\n if (enableCellPadding) {\n elementsGroup.setAttributes({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[0] - padding[2]\n });\n }\n\n // for percent calc\n dealPercentCalc(elementsGroup, width, height);\n\n return {\n elementsGroup,\n renderDefault\n };\n}\n\nfunction adjustElementToGroup(\n elements: ICustomRenderElements,\n width: number,\n height: number,\n value: any\n): VGroup | undefined {\n const customGroup = new VGroup({\n x: 0,\n y: 0,\n width,\n height,\n fill: false,\n stroke: false,\n pickable: false\n });\n customGroup.name = 'custom-container';\n\n const elementsAdjusted = adjustElementsPos(elements, width, height, value);\n elementsAdjusted.forEach(element => {\n switch (element.type) {\n case 'arc':\n const arc = createArc({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n outerRadius: element.radius as number,\n startAngle: element.startAngle as number,\n endAngle: element.endAngle as number,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(arc);\n break;\n case 'text':\n if (element.background) {\n const expandX = element.background?.expandX ?? 0;\n const expandY = element.background?.expandY ?? 0;\n const textBackRect = createRect({\n x: (element.x as number) - expandX,\n y: (element.y as number) - expandY,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width + expandX * 2,\n height: element.height + expandY * 2,\n cornerRadius: element.background?.cornerRadius ?? 0,\n // fill: true,\n fill: element.background?.fill ?? '#888'\n });\n customGroup.appendChild(textBackRect);\n }\n const text = new WrapText(\n Object.assign(\n {\n pickable: !!element.clickable,\n fill: element.color ?? element.fill\n },\n element as any\n )\n );\n customGroup.appendChild(text);\n break;\n case 'rect':\n const rect = createRect({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n cornerRadius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(rect);\n break;\n case 'circle':\n const circle = createCircle({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n radius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(circle);\n break;\n case 'icon':\n const icon = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.svg as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n icon.role = 'icon-custom';\n customGroup.appendChild(icon);\n break;\n case 'image':\n const image = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.src as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor,\n shape: element.shape\n });\n image.role = 'image-custom';\n customGroup.appendChild(image);\n break;\n\n case 'line':\n const line = createLine({\n points: element.points,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(line);\n break;\n }\n });\n\n return customGroup;\n}\n\nfunction adjustElementsPos(\n originalElements: ICustomRenderElements,\n // rect: RectProps,\n width: number,\n height: number,\n // borderLineWidths: number[],\n value: any\n): ICustomRenderElements {\n const result: ICustomRenderElements = [];\n // const { left, top, width, height } = rect;\n const left = 0;\n const top = 0;\n const borderLineWidths = [0, 0, 0, 0];\n\n for (let i = 0; i < originalElements.length; i++) {\n const originalElement = originalElements[i];\n const element = Object.assign({}, originalElement);\n // 执行相关函数\n for (const name in element) {\n if (element.hasOwnProperty(name) && isFunction(element[name])) {\n element[name] = (element[name] as Function)(value);\n }\n }\n\n // 转换字符串值(百分比、px)\n const rect = element as RectElement;\n if (isValid(rect.x)) {\n rect.x = isString(rect.x)\n ? transformString((rect as any).x as string, width - borderLineWidths[1])\n : Number(rect.x);\n }\n if (isValid(rect.y)) {\n rect.y = isString(rect.y)\n ? transformString((rect as any).y as string, height - borderLineWidths[2])\n : Number(rect.y);\n }\n if ('width' in element) {\n element.width = isString(element.width)\n ? transformString(element.width as string, width - borderLineWidths[1])\n : Number(element.width);\n }\n if ('height' in element) {\n element.height = isString(element.height)\n ? transformString(element.height as string, height - borderLineWidths[2])\n : Number(element.height);\n }\n if ('radius' in element) {\n element.radius = isString(element.radius)\n ? transformString(element.radius as string, Math.min(width - borderLineWidths[1], height - borderLineWidths[2]))\n : Number(element.radius);\n }\n if ('hover' in element) {\n // 转换字符串值(百分比、px)\n element.hover.x = isString(element.hover.x)\n ? transformString(element.hover.x as string, width - borderLineWidths[1])\n : Number(element.hover.x);\n element.hover.y = isString(element.hover.y)\n ? transformString(element.hover.y as string, height - borderLineWidths[2])\n : Number(element.hover.y);\n element.hover.width = isString(element.hover.width)\n ? transformString(element.hover.width as string, width - borderLineWidths[1])\n : Number(element.hover.width);\n\n element.hover.height = isString(element.hover.height)\n ? transformString(element.hover.height as string, height - borderLineWidths[2])\n : Number(element.hover.height);\n element.hover.x += left;\n element.hover.y += top;\n }\n // 矫正位置\n rect.x = rect.x + left;\n rect.y = rect.y + top;\n\n result.push(element as unknown as ICustomRenderElement);\n }\n\n return result;\n}\n\nfunction transformString(str: string, size?: number): number {\n if (str.endsWith('px')) {\n return parseInt(str, 10);\n } else if (str.endsWith('%') && size) {\n return (parseInt(str, 10) / 100) * size;\n }\n return parseInt(str, 10);\n}\n\nexport function dealPercentCalc(group: VGroup, parentWidth: number, parentHeight: number) {\n if (!group) {\n return;\n }\n group.forEachChildren((child: VGroup) => {\n if (isObject(child.attribute.width) && (child.attribute.width as percentCalcObj).percent) {\n child.setAttribute(\n 'width',\n ((child.attribute.width as percentCalcObj).percent / 100) * parentWidth +\n ((child.attribute.width as percentCalcObj).delta ?? 0)\n );\n }\n\n if (isObject(child.attribute.height) && (child.attribute.height as percentCalcObj).percent) {\n child.setAttribute(\n 'height',\n ((child.attribute.height as percentCalcObj).percent / 100) * parentHeight +\n ((child.attribute.height as percentCalcObj).delta ?? 0)\n );\n }\n\n if (child.type === 'group') {\n dealPercentCalc(child, child.attribute.width, child.attribute.height);\n }\n });\n}\n\n// temp devode for react jsx customLayout\nexport function decodeReactDom(dom: any) {\n if (!dom.$$typeof) {\n // not react\n return dom;\n }\n const type = dom.type;\n const { attribute, children } = dom.props;\n const g = type({ attribute });\n g.id = attribute.id;\n g.name = attribute.name;\n children &&\n children.length &&\n children.forEach((item: any) => {\n const c = decodeReactDom(item);\n g.add(c);\n });\n return g;\n}\n"]}
@@ -75,12 +75,14 @@ class Chart extends vrender_1.Group {
75
75
  })), null === (_d = (_c = table)._bindChartEvent) || void 0 === _d || _d.call(_c, this.activeChartInstance);
76
76
  }
77
77
  deactivate() {
78
- this.active = !1, this.activeChartInstance.updateViewBox({
78
+ var _a, _b;
79
+ this.active = !1, null === (_a = this.activeChartInstance) || void 0 === _a || _a.updateViewBox({
79
80
  x1: -1e3,
80
81
  x2: -800,
81
82
  y1: -1e3,
82
83
  y2: -800
83
- }, !1, !1), this.activeChartInstance.release(), this.activeChartInstance = null;
84
+ }, !1, !1), null === (_b = this.activeChartInstance) || void 0 === _b || _b.release(),
85
+ this.activeChartInstance = null;
84
86
  }
85
87
  updateData(data) {
86
88
  this.attribute.data = data;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/graphic/chart.ts"],"names":[],"mappings":"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","file":"chart.js","sourcesContent":["import type { GraphicType, IGroupGraphicAttribute } from '@visactor/vrender';\nimport { genNumberType, Group } from '@visactor/vrender';\nimport { Bounds } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { PivotChart } from '../../PivotChart';\n\ninterface IChartGraphicAttribute extends IGroupGraphicAttribute {\n canvas: HTMLCanvasElement;\n dataId: string | Record<string, string>; //如果是spec外层的dataId,则是string,否则通过series获取到的是Record<string, string> <dataId, series-chart的指标key用于过滤数据>\n data: any;\n spec: any;\n axes: any;\n ClassType: any;\n chartInstance: any;\n cellPadding: number[];\n mode: string;\n modeParams: any;\n dpr: number;\n // viewBox: {\n // x1: number;\n // y1: number;\n // x2: number;\n // y2: number;\n // };\n}\n\nexport const CHART_NUMBER_TYPE = genNumberType();\n\nexport class Chart extends Group {\n type: GraphicType = 'chart' as any;\n declare attribute: IChartGraphicAttribute;\n chartInstance: any;\n activeChartInstance: any;\n active: boolean;\n cacheCanvas: HTMLCanvasElement | { x: number; y: number; width: number; height: number; canvas: HTMLCanvasElement }[]; // HTMLCanvasElement\n\n constructor(params: IChartGraphicAttribute) {\n super(params);\n this.numberType = CHART_NUMBER_TYPE;\n\n // 创建chart\n if (!params.chartInstance) {\n params.chartInstance = this.chartInstance = new params.ClassType(params.spec, {\n renderCanvas: params.canvas,\n mode: this.attribute.mode === 'node' ? 'node' : 'desktop-browser',\n modeParams: this.attribute.modeParams,\n canvasControled: false,\n viewBox: { x1: 0, x2: 0, y1: 0, y2: 0 },\n dpr: params.dpr,\n // viewBox: params.viewBox,\n // viewBox: this.getViewBox(),\n // viewBox: {\n // x1: params.cellPadding[3],\n // x2: params.width - params.cellPadding[1],\n // y1: params.cellPadding[0],\n // y2: params.height - params.cellPadding[2]\n // },\n interactive: false,\n animation: false,\n autoFit: false\n });\n this.chartInstance.renderSync();\n } else {\n this.chartInstance = params.chartInstance;\n }\n\n // this.chart.load().then((cache) => {\n // this.cacheCanvas = cache;\n // this.deactivate();\n // });\n }\n\n // onBeforeAttributeUpdate() {\n // if (arguments[2] === y) {\n // debugger;\n // }\n // }\n /**\n * 激活该图表元素\n * @param table\n */\n activate(table: BaseTableAPI) {\n this.active = true;\n // this.chart = new TestChart(this.attribute.spec);\n // const ctx = this.attribute.canvas.getContext('2d');\n // const { x1, y1, x2, y2 } = this.attribute.viewBox;\n const { x1, y1, x2, y2 } = this.getViewBox();\n //获取渲染区域的bound 考虑被表头遮住部分的情况\n const tableBound = table.scenegraph.tableGroup.globalAABBBounds;\n const bodyBound = new Bounds();\n bodyBound.x1 = tableBound.x1 + table.getFrozenColsWidth();\n bodyBound.x2 = tableBound.x2 - table.getRightFrozenColsWidth();\n bodyBound.y1 = tableBound.y1 + table.getFrozenRowsHeight();\n bodyBound.y2 = tableBound.y2 - table.getBottomFrozenRowsHeight();\n const clipBound = bodyBound.intersect({\n x1: x1 - table.scrollLeft,\n x2: x2 - table.scrollLeft,\n y1: y1 - table.scrollTop,\n y2: y2 - table.scrollTop\n });\n this.activeChartInstance = new this.attribute.ClassType(this.attribute.spec, {\n // disableDirtyBounds: true,\n renderCanvas: this.attribute.canvas,\n mode: 'desktop-browser',\n canvasControled: false,\n viewBox: {\n x1: x1 - table.scrollLeft,\n x2: x2 - table.scrollLeft,\n y1: y1 - table.scrollTop,\n y2: y2 - table.scrollTop\n },\n dpr: table.internalProps.pixelRatio,\n animation: false,\n interactive: true,\n autoFit: false, //控制当容器变化大小时vchart实例不应响应事件进行内部处理\n beforeRender: (stage: any) => {\n const ctx = stage.window.getContext();\n ctx.inuse = true;\n ctx.clearMatrix();\n ctx.setTransformForCurrent(true);\n ctx.beginPath();\n ctx.rect(clipBound.x1, clipBound.y1, clipBound.x2 - clipBound.x1, clipBound.y2 - clipBound.y1);\n ctx.clip();\n },\n afterRender(stage: any) {\n const ctx = stage.window.getContext();\n ctx.inuse = false;\n }\n });\n // this.activeChartInstance.updateData('data', this.attribute.data);\n this.activeChartInstance.renderSync();\n\n (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(this.activeChartInstance);\n this.activeChartInstance.on('click', (params: any) => {\n if (Chart.temp) {\n table.scenegraph.updateChartState(params?.datum);\n }\n });\n this.activeChartInstance.on('brushEnd', (params: any) => {\n table.scenegraph.updateChartState(params?.value?.inBrushData);\n Chart.temp = 0;\n setTimeout(() => {\n Chart.temp = 1;\n }, 0);\n });\n (table as PivotChart)._bindChartEvent?.(this.activeChartInstance);\n }\n static temp: number = 1;\n /**\n * 图表失去焦点\n * @param table\n */\n deactivate() {\n this.active = false;\n // move active chart view box out of broswer view\n // to avoid async render when chart is releasd\n this.activeChartInstance.updateViewBox(\n {\n x1: -1000,\n x2: -800,\n y1: -1000,\n y2: -800\n },\n false,\n false\n );\n this.activeChartInstance.release();\n this.activeChartInstance = null;\n }\n /** 更新图表对应数据 */\n updateData(data: any) {\n this.attribute.data = data;\n }\n\n getViewBox(): {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n } {\n const cellGroup = this.parent as Group;\n const padding = this.attribute.cellPadding;\n const table = (this.stage as any).table as BaseTableAPI;\n return {\n x1: Math.ceil(cellGroup.globalAABBBounds.x1 + padding[3] + table.scrollLeft),\n x2: Math.ceil(cellGroup.globalAABBBounds.x1 + cellGroup.attribute.width - padding[1] + table.scrollLeft),\n y1: Math.ceil(cellGroup.globalAABBBounds.y1 + padding[0] + table.scrollTop),\n y2: Math.ceil(cellGroup.globalAABBBounds.y1 + cellGroup.attribute.height - padding[2] + table.scrollTop)\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/graphic/chart.ts"],"names":[],"mappings":"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","file":"chart.js","sourcesContent":["import type { GraphicType, IGroupGraphicAttribute } from '@visactor/vrender';\nimport { genNumberType, Group } from '@visactor/vrender';\nimport { Bounds } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { PivotChart } from '../../PivotChart';\n\ninterface IChartGraphicAttribute extends IGroupGraphicAttribute {\n canvas: HTMLCanvasElement;\n dataId: string | Record<string, string>; //如果是spec外层的dataId,则是string,否则通过series获取到的是Record<string, string> <dataId, series-chart的指标key用于过滤数据>\n data: any;\n spec: any;\n axes: any;\n ClassType: any;\n chartInstance: any;\n cellPadding: number[];\n mode: string;\n modeParams: any;\n dpr: number;\n // viewBox: {\n // x1: number;\n // y1: number;\n // x2: number;\n // y2: number;\n // };\n}\n\nexport const CHART_NUMBER_TYPE = genNumberType();\n\nexport class Chart extends Group {\n type: GraphicType = 'chart' as any;\n declare attribute: IChartGraphicAttribute;\n chartInstance: any;\n activeChartInstance: any;\n active: boolean;\n cacheCanvas: HTMLCanvasElement | { x: number; y: number; width: number; height: number; canvas: HTMLCanvasElement }[]; // HTMLCanvasElement\n\n constructor(params: IChartGraphicAttribute) {\n super(params);\n this.numberType = CHART_NUMBER_TYPE;\n\n // 创建chart\n if (!params.chartInstance) {\n params.chartInstance = this.chartInstance = new params.ClassType(params.spec, {\n renderCanvas: params.canvas,\n mode: this.attribute.mode === 'node' ? 'node' : 'desktop-browser',\n modeParams: this.attribute.modeParams,\n canvasControled: false,\n viewBox: { x1: 0, x2: 0, y1: 0, y2: 0 },\n dpr: params.dpr,\n // viewBox: params.viewBox,\n // viewBox: this.getViewBox(),\n // viewBox: {\n // x1: params.cellPadding[3],\n // x2: params.width - params.cellPadding[1],\n // y1: params.cellPadding[0],\n // y2: params.height - params.cellPadding[2]\n // },\n interactive: false,\n animation: false,\n autoFit: false\n });\n this.chartInstance.renderSync();\n } else {\n this.chartInstance = params.chartInstance;\n }\n\n // this.chart.load().then((cache) => {\n // this.cacheCanvas = cache;\n // this.deactivate();\n // });\n }\n\n // onBeforeAttributeUpdate() {\n // if (arguments[2] === y) {\n // debugger;\n // }\n // }\n /**\n * 激活该图表元素\n * @param table\n */\n activate(table: BaseTableAPI) {\n this.active = true;\n // this.chart = new TestChart(this.attribute.spec);\n // const ctx = this.attribute.canvas.getContext('2d');\n // const { x1, y1, x2, y2 } = this.attribute.viewBox;\n const { x1, y1, x2, y2 } = this.getViewBox();\n //获取渲染区域的bound 考虑被表头遮住部分的情况\n const tableBound = table.scenegraph.tableGroup.globalAABBBounds;\n const bodyBound = new Bounds();\n bodyBound.x1 = tableBound.x1 + table.getFrozenColsWidth();\n bodyBound.x2 = tableBound.x2 - table.getRightFrozenColsWidth();\n bodyBound.y1 = tableBound.y1 + table.getFrozenRowsHeight();\n bodyBound.y2 = tableBound.y2 - table.getBottomFrozenRowsHeight();\n const clipBound = bodyBound.intersect({\n x1: x1 - table.scrollLeft,\n x2: x2 - table.scrollLeft,\n y1: y1 - table.scrollTop,\n y2: y2 - table.scrollTop\n });\n this.activeChartInstance = new this.attribute.ClassType(this.attribute.spec, {\n // disableDirtyBounds: true,\n renderCanvas: this.attribute.canvas,\n mode: 'desktop-browser',\n canvasControled: false,\n viewBox: {\n x1: x1 - table.scrollLeft,\n x2: x2 - table.scrollLeft,\n y1: y1 - table.scrollTop,\n y2: y2 - table.scrollTop\n },\n dpr: table.internalProps.pixelRatio,\n animation: false,\n interactive: true,\n autoFit: false, //控制当容器变化大小时vchart实例不应响应事件进行内部处理\n beforeRender: (stage: any) => {\n const ctx = stage.window.getContext();\n ctx.inuse = true;\n ctx.clearMatrix();\n ctx.setTransformForCurrent(true);\n ctx.beginPath();\n ctx.rect(clipBound.x1, clipBound.y1, clipBound.x2 - clipBound.x1, clipBound.y2 - clipBound.y1);\n ctx.clip();\n },\n afterRender(stage: any) {\n const ctx = stage.window.getContext();\n ctx.inuse = false;\n }\n });\n // this.activeChartInstance.updateData('data', this.attribute.data);\n this.activeChartInstance.renderSync();\n\n (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(this.activeChartInstance);\n this.activeChartInstance.on('click', (params: any) => {\n if (Chart.temp) {\n table.scenegraph.updateChartState(params?.datum);\n }\n });\n this.activeChartInstance.on('brushEnd', (params: any) => {\n table.scenegraph.updateChartState(params?.value?.inBrushData);\n Chart.temp = 0;\n setTimeout(() => {\n Chart.temp = 1;\n }, 0);\n });\n (table as PivotChart)._bindChartEvent?.(this.activeChartInstance);\n }\n static temp: number = 1;\n /**\n * 图表失去焦点\n * @param table\n */\n deactivate() {\n this.active = false;\n // move active chart view box out of broswer view\n // to avoid async render when chart is releasd\n this.activeChartInstance?.updateViewBox(\n {\n x1: -1000,\n x2: -800,\n y1: -1000,\n y2: -800\n },\n false,\n false\n );\n this.activeChartInstance?.release();\n this.activeChartInstance = null;\n }\n /** 更新图表对应数据 */\n updateData(data: any) {\n this.attribute.data = data;\n }\n\n getViewBox(): {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n } {\n const cellGroup = this.parent as Group;\n const padding = this.attribute.cellPadding;\n const table = (this.stage as any).table as BaseTableAPI;\n return {\n x1: Math.ceil(cellGroup.globalAABBBounds.x1 + padding[3] + table.scrollLeft),\n x2: Math.ceil(cellGroup.globalAABBBounds.x1 + cellGroup.attribute.width - padding[1] + table.scrollLeft),\n y1: Math.ceil(cellGroup.globalAABBBounds.y1 + padding[0] + table.scrollTop),\n y2: Math.ceil(cellGroup.globalAABBBounds.y1 + cellGroup.attribute.height - padding[2] + table.scrollTop)\n };\n }\n}\n"]}
@@ -36,13 +36,13 @@ function createCell(type, value, define, table, col, row, colWidth, cellWidth, c
36
36
  if ("body" !== table.getCellLocation(col, row) ? (customRender = null == define ? void 0 : define.headerCustomRender,
37
37
  customLayout = null == define ? void 0 : define.headerCustomLayout) : (customRender = (null == define ? void 0 : define.customRender) || table.customRender,
38
38
  customLayout = null == define ? void 0 : define.customLayout), customLayout || customRender) {
39
- const customResult = (0, custom_1.dealWithCustom)(customLayout, customRender, col, row, cellWidth, cellHeight, !1, "autoHeight" === table.heightMode, table);
39
+ const customResult = (0, custom_1.dealWithCustom)(customLayout, customRender, col, row, cellWidth, cellHeight, !1, "autoHeight" === table.heightMode, padding, table);
40
40
  customElementsGroup = customResult.elementsGroup, renderDefault = customResult.renderDefault;
41
41
  }
42
42
  cellGroup = (0, text_cell_1.createCellGroup)(table, value, columnGroup, 0, y, col, row, colWidth, cellWidth, cellHeight, padding, textAlign, textBaseline, mayHaveIcon, customElementsGroup, renderDefault, cellTheme);
43
43
  const axisConfig = table.internalProps.layoutMap.getAxisConfigInPivotChart(col, row);
44
44
  if (axisConfig) {
45
- const spec = table.internalProps.layoutMap.getRawChartSpec(col, row), axis = new axis_1.CartesianAxis(axisConfig, cellGroup.attribute.width, cellGroup.attribute.height, padding, null == spec ? void 0 : spec.theme, table);
45
+ const axis = new axis_1.CartesianAxis(axisConfig, cellGroup.attribute.width, cellGroup.attribute.height, padding, table);
46
46
  cellGroup.clear(), cellGroup.appendChild(axis.component), axis.overlap();
47
47
  } else table.internalProps.layoutMap.isEmpty(col, row) ? (cellGroup.setAttributes({
48
48
  fill: !1,