@visactor/vtable 0.13.4-alpha.3 → 0.13.4-alpha.4

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 (227) hide show
  1. package/cjs/PivotChart.d.ts +3 -0
  2. package/cjs/PivotChart.js +44 -40
  3. package/cjs/PivotChart.js.map +1 -1
  4. package/cjs/components/axis/get-axis-attributes.d.ts +7 -0
  5. package/cjs/components/axis/get-axis-attributes.js +13 -17
  6. package/cjs/components/axis/get-axis-attributes.js.map +1 -1
  7. package/cjs/components/legend/continue-legend/continue-legend.js +1 -0
  8. package/cjs/components/legend/continue-legend/continue-legend.js.map +1 -1
  9. package/cjs/components/legend/discrete-legend/discrete-legend.js +1 -0
  10. package/cjs/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  11. package/cjs/components/menu/dom/logic/MenuElementStyle.js +1 -1
  12. package/cjs/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  13. package/cjs/components/title/title.js +7 -6
  14. package/cjs/components/title/title.js.map +1 -1
  15. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js +1 -1
  16. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  17. package/cjs/core/BaseTable.d.ts +14 -0
  18. package/cjs/core/BaseTable.js +29 -3
  19. package/cjs/core/BaseTable.js.map +1 -1
  20. package/cjs/core/style.js +1 -1
  21. package/cjs/core/style.js.map +1 -1
  22. package/cjs/dataset/dataset.d.ts +0 -1
  23. package/cjs/dataset/dataset.js +3 -43
  24. package/cjs/dataset/dataset.js.map +1 -1
  25. package/cjs/event/event.d.ts +1 -1
  26. package/cjs/event/event.js +5 -4
  27. package/cjs/event/event.js.map +1 -1
  28. package/cjs/event/listener/table-group.js +9 -6
  29. package/cjs/event/listener/table-group.js.map +1 -1
  30. package/cjs/event/listener/touch.js +1 -1
  31. package/cjs/event/listener/touch.js.map +1 -1
  32. package/cjs/event/scroll.js +1 -1
  33. package/cjs/event/scroll.js.map +1 -1
  34. package/cjs/index.d.ts +1 -1
  35. package/cjs/index.js +1 -1
  36. package/cjs/index.js.map +1 -1
  37. package/cjs/layout/chart-helper/get-axis-config.js +71 -35
  38. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  39. package/cjs/layout/chart-helper/get-axis-domain.d.ts +1 -1
  40. package/cjs/layout/chart-helper/get-axis-domain.js +18 -8
  41. package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
  42. package/cjs/layout/chart-helper/get-chart-spec.js +33 -17
  43. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  44. package/cjs/layout/chart-helper/zero-align.js.map +1 -0
  45. package/cjs/render/layout/arc.d.ts +21 -10
  46. package/cjs/render/layout/arc.js +9 -7
  47. package/cjs/render/layout/arc.js.map +1 -1
  48. package/cjs/render/layout/circle.d.ts +17 -10
  49. package/cjs/render/layout/circle.js +6 -5
  50. package/cjs/render/layout/circle.js.map +1 -1
  51. package/cjs/render/layout/container.d.ts +48 -10
  52. package/cjs/render/layout/container.js +100 -15
  53. package/cjs/render/layout/container.js.map +1 -1
  54. package/cjs/render/layout/group-element.d.ts +24 -4
  55. package/cjs/render/layout/group-element.js +40 -4
  56. package/cjs/render/layout/group-element.js.map +1 -1
  57. package/cjs/render/layout/icon.d.ts +10 -10
  58. package/cjs/render/layout/icon.js +9 -11
  59. package/cjs/render/layout/icon.js.map +1 -1
  60. package/cjs/render/layout/image.d.ts +17 -10
  61. package/cjs/render/layout/image.js +7 -6
  62. package/cjs/render/layout/image.js.map +1 -1
  63. package/cjs/render/layout/index.d.ts +0 -2
  64. package/cjs/render/layout/index.js +1 -2
  65. package/cjs/render/layout/index.js.map +1 -1
  66. package/cjs/render/layout/percent-calc.d.ts +4 -1
  67. package/cjs/render/layout/percent-calc.js.map +1 -1
  68. package/cjs/render/layout/rect.d.ts +20 -10
  69. package/cjs/render/layout/rect.js +6 -5
  70. package/cjs/render/layout/rect.js.map +1 -1
  71. package/cjs/render/layout/text.d.ts +46 -9
  72. package/cjs/render/layout/text.js +18 -7
  73. package/cjs/render/layout/text.js.map +1 -1
  74. package/cjs/scenegraph/component/custom.d.ts +2 -2
  75. package/cjs/scenegraph/component/custom.js +6 -14
  76. package/cjs/scenegraph/component/custom.js.map +1 -1
  77. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
  78. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  79. package/cjs/scenegraph/group-creater/init-scenegraph.js +3 -3
  80. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  81. package/cjs/scenegraph/layout/compute-col-width.js +8 -5
  82. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  83. package/cjs/scenegraph/layout/update-height.js +2 -4
  84. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  85. package/cjs/scenegraph/scenegraph.d.ts +5 -4
  86. package/cjs/scenegraph/scenegraph.js +4 -2
  87. package/cjs/scenegraph/scenegraph.js.map +1 -1
  88. package/cjs/scenegraph/select/create-select-border.d.ts +2 -2
  89. package/cjs/scenegraph/select/create-select-border.js +6 -15
  90. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  91. package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
  92. package/cjs/scenegraph/select/update-select-border.js +84 -31
  93. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  94. package/cjs/tools/LimitPromiseQueue.js +1 -1
  95. package/cjs/tools/NumberMap.js +1 -1
  96. package/cjs/tools/Rect.js +1 -1
  97. package/cjs/ts-types/base-table.d.ts +16 -0
  98. package/cjs/ts-types/base-table.js +1 -1
  99. package/cjs/ts-types/base-table.js.map +1 -1
  100. package/cjs/ts-types/common.js +1 -1
  101. package/cjs/ts-types/customElement.js +1 -1
  102. package/cjs/ts-types/table-engine.d.ts +2 -1
  103. package/cjs/ts-types/table-engine.js.map +1 -1
  104. package/dist/vtable.js +1385 -785
  105. package/dist/vtable.min.js +2 -2
  106. package/es/PivotChart.d.ts +3 -0
  107. package/es/PivotChart.js +44 -40
  108. package/es/PivotChart.js.map +1 -1
  109. package/es/components/axis/get-axis-attributes.d.ts +7 -0
  110. package/es/components/axis/get-axis-attributes.js +1 -1
  111. package/es/components/axis/get-axis-attributes.js.map +1 -1
  112. package/es/components/legend/continue-legend/continue-legend.js +1 -0
  113. package/es/components/legend/continue-legend/continue-legend.js.map +1 -1
  114. package/es/components/legend/discrete-legend/discrete-legend.js +1 -0
  115. package/es/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  116. package/es/components/menu/dom/logic/MenuElementStyle.js +1 -1
  117. package/es/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  118. package/es/components/title/title.js +6 -6
  119. package/es/components/title/title.js.map +1 -1
  120. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js +1 -1
  121. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  122. package/es/core/BaseTable.d.ts +14 -0
  123. package/es/core/BaseTable.js +37 -12
  124. package/es/core/BaseTable.js.map +1 -1
  125. package/es/core/style.js +1 -1
  126. package/es/core/style.js.map +1 -1
  127. package/es/dataset/dataset.d.ts +0 -1
  128. package/es/dataset/dataset.js +2 -46
  129. package/es/dataset/dataset.js.map +1 -1
  130. package/es/event/event.d.ts +1 -1
  131. package/es/event/event.js +5 -4
  132. package/es/event/event.js.map +1 -1
  133. package/es/event/listener/table-group.js +9 -6
  134. package/es/event/listener/table-group.js.map +1 -1
  135. package/es/event/listener/touch.js +1 -1
  136. package/es/event/listener/touch.js.map +1 -1
  137. package/es/event/scroll.js +1 -1
  138. package/es/event/scroll.js.map +1 -1
  139. package/es/index.d.ts +1 -1
  140. package/es/index.js +1 -1
  141. package/es/index.js.map +1 -1
  142. package/es/layout/chart-helper/get-axis-config.js +72 -33
  143. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  144. package/es/layout/chart-helper/get-axis-domain.d.ts +1 -1
  145. package/es/layout/chart-helper/get-axis-domain.js +20 -8
  146. package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
  147. package/es/layout/chart-helper/get-chart-spec.js +33 -12
  148. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  149. package/es/layout/chart-helper/zero-align.js.map +1 -0
  150. package/es/render/layout/arc.d.ts +21 -10
  151. package/es/render/layout/arc.js +7 -7
  152. package/es/render/layout/arc.js.map +1 -1
  153. package/es/render/layout/circle.d.ts +17 -10
  154. package/es/render/layout/circle.js +6 -7
  155. package/es/render/layout/circle.js.map +1 -1
  156. package/es/render/layout/container.d.ts +48 -10
  157. package/es/render/layout/container.js +107 -16
  158. package/es/render/layout/container.js.map +1 -1
  159. package/es/render/layout/group-element.d.ts +24 -4
  160. package/es/render/layout/group-element.js +42 -4
  161. package/es/render/layout/group-element.js.map +1 -1
  162. package/es/render/layout/icon.d.ts +10 -10
  163. package/es/render/layout/icon.js +10 -12
  164. package/es/render/layout/icon.js.map +1 -1
  165. package/es/render/layout/image.d.ts +17 -10
  166. package/es/render/layout/image.js +7 -8
  167. package/es/render/layout/image.js.map +1 -1
  168. package/es/render/layout/index.d.ts +0 -2
  169. package/es/render/layout/index.js +0 -4
  170. package/es/render/layout/index.js.map +1 -1
  171. package/es/render/layout/percent-calc.d.ts +4 -1
  172. package/es/render/layout/percent-calc.js.map +1 -1
  173. package/es/render/layout/rect.d.ts +20 -10
  174. package/es/render/layout/rect.js +6 -7
  175. package/es/render/layout/rect.js.map +1 -1
  176. package/es/render/layout/text.d.ts +46 -9
  177. package/es/render/layout/text.js +18 -9
  178. package/es/render/layout/text.js.map +1 -1
  179. package/es/scenegraph/component/custom.d.ts +2 -2
  180. package/es/scenegraph/component/custom.js +7 -15
  181. package/es/scenegraph/component/custom.js.map +1 -1
  182. package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
  183. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  184. package/es/scenegraph/group-creater/init-scenegraph.js +3 -3
  185. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  186. package/es/scenegraph/layout/compute-col-width.js +8 -5
  187. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  188. package/es/scenegraph/layout/update-height.js +2 -4
  189. package/es/scenegraph/layout/update-height.js.map +1 -1
  190. package/es/scenegraph/scenegraph.d.ts +5 -4
  191. package/es/scenegraph/scenegraph.js +3 -2
  192. package/es/scenegraph/scenegraph.js.map +1 -1
  193. package/es/scenegraph/select/create-select-border.d.ts +2 -2
  194. package/es/scenegraph/select/create-select-border.js +6 -15
  195. package/es/scenegraph/select/create-select-border.js.map +1 -1
  196. package/es/scenegraph/select/delete-select-border.js.map +1 -1
  197. package/es/scenegraph/select/update-select-border.js +84 -31
  198. package/es/scenegraph/select/update-select-border.js.map +1 -1
  199. package/es/tools/LimitPromiseQueue.js +1 -1
  200. package/es/tools/NumberMap.js +1 -1
  201. package/es/tools/Rect.js +1 -1
  202. package/es/ts-types/base-table.d.ts +16 -0
  203. package/es/ts-types/base-table.js +1 -1
  204. package/es/ts-types/base-table.js.map +1 -1
  205. package/es/ts-types/common.js +1 -1
  206. package/es/ts-types/customElement.js +1 -1
  207. package/es/ts-types/table-engine.d.ts +2 -1
  208. package/es/ts-types/table-engine.js.map +1 -1
  209. package/package.json +6 -6
  210. package/cjs/dataset/util/zero-align.js.map +0 -1
  211. package/cjs/render/layout/group.d.ts +0 -12
  212. package/cjs/render/layout/group.js +0 -18
  213. package/cjs/render/layout/group.js.map +0 -1
  214. package/cjs/render/layout/tag.d.ts +0 -14
  215. package/cjs/render/layout/tag.js +0 -21
  216. package/cjs/render/layout/tag.js.map +0 -1
  217. package/es/dataset/util/zero-align.js.map +0 -1
  218. package/es/render/layout/group.d.ts +0 -12
  219. package/es/render/layout/group.js +0 -12
  220. package/es/render/layout/group.js.map +0 -1
  221. package/es/render/layout/tag.d.ts +0 -14
  222. package/es/render/layout/tag.js +0 -15
  223. package/es/render/layout/tag.js.map +0 -1
  224. /package/cjs/{dataset/util → layout/chart-helper}/zero-align.d.ts +0 -0
  225. /package/cjs/{dataset/util → layout/chart-helper}/zero-align.js +0 -0
  226. /package/es/{dataset/util → layout/chart-helper}/zero-align.d.ts +0 -0
  227. /package/es/{dataset/util → layout/chart-helper}/zero-align.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["render/layout/icon.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAA0C;AAC1C,6CAAqD;AACrD,2DAA6C;AAc7C,MAAa,IAAK,SAAQ,eAAK;IAM7B,YAAY,OAAqB;;QAC/B,IAAI,KAAK,CAAC;QACV,IAAI,IAAA,iBAAQ,EAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC9B,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;YACvC,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE;gBACT,OAAO,CAAC,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,KAAK,CAAC,KAAK,CAAC;gBAC7C,OAAO,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,KAAK,CAAC,MAAM,CAAC;gBAChD,OAAO,CAAC,GAAG,GAAI,KAAa,CAAC,GAAG,CAAC;gBACjC,OAAO,CAAC,MAAM,GAAI,KAAa,CAAC,MAAM,CAAC;aACxC;SACF;QACD,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;SAC7B;QAED,MAAM,eAAe,GAAG,IAAA,gBAAO,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG;YACd,MAAA,MAAA,OAAO,CAAC,SAAS,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAC9F,MAAA,MAAA,OAAO,CAAC,WAAW,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAChG,MAAA,MAAA,OAAO,CAAC,YAAY,mCAClB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;YACH,MAAA,MAAA,OAAO,CAAC,UAAU,mCAChB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;SACJ,CAAC;QACF,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAtCD,oBAsCC","file":"icon.js","sourcesContent":["import type { IImageGraphicAttribute } from '@visactor/vrender';\nimport { Image } from '@visactor/vrender';\nimport { isArray, isString } from '@visactor/vutils';\nimport * as registerIcons from '../../icons';\nimport type { ColumnIconOption } from '../../ts-types';\n\ntype IIconOptions = {\n width: number;\n height: number;\n svg?: string;\n iconName?: string;\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n} & IImageGraphicAttribute;\n\nexport class Icon extends Image {\n declare id: string;\n svg: string;\n iconName: string;\n cache?: ColumnIconOption;\n\n constructor(options: IIconOptions) {\n let cache;\n if (isString(options.iconName)) {\n const regedIcons = registerIcons.get();\n cache = regedIcons[options.iconName];\n if (cache) {\n options.width = options.width ?? cache.width;\n options.height = options.height ?? cache.height;\n options.svg = (cache as any).svg;\n options.cursor = (cache as any).cursor;\n }\n }\n if (options.svg) {\n options.image = options.svg;\n }\n\n const isPaddingNumber = isArray(options.boundsPadding);\n const padding = [\n options.marginTop ?? (isPaddingNumber ? options.boundsPadding[0] : options.boundsPadding) ?? 0,\n options.marginRight ?? (isPaddingNumber ? options.boundsPadding[1] : options.boundsPadding) ?? 0,\n options.marginBottom ??\n (isPaddingNumber ? options.boundsPadding[2] ?? options.boundsPadding[0] : options.boundsPadding) ??\n 0,\n options.marginLeft ??\n (isPaddingNumber ? options.boundsPadding[3] ?? options.boundsPadding[1] : options.boundsPadding) ??\n 0\n ];\n options.boundsPadding = padding;\n\n super(options);\n this.cache = cache;\n }\n}\n"]}
1
+ {"version":3,"sources":["render/layout/icon.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA4C;AAE5C,uCAAwC;AACxC,2DAA6C;AAU7C,MAAa,IAAK,SAAQ,qBAAW;IAUnC,YAAY,OAAoB;;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC;QATjB,SAAI,GAAW,MAAM,CAAC;QAUpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC3B,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,GAAG,GAAI,KAAa,CAAC,GAAG,CAAC;gBAC9B,IAAI,CAAC,MAAM,GAAI,KAAa,CAAC,MAAM,CAAC;aACrC;SACF;QAGD,IAAI,CAAC,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,IAAI,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,MAAA,OAAO,CAAC,GAAG,mCAAI,IAAI,CAAC,GAAG,CAAC;QAEnC,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;CACF;AAhCD,oBAgCC","file":"icon.js","sourcesContent":["import { isString } from '@visactor/vutils';\nimport type { ElementOptions } from './element';\nimport { BaseElement } from './element';\nimport * as registerIcons from '../../icons';\nimport type { ColumnIconOption } from '../../ts-types';\n\ntype IconOptions = {\n width: number;\n height: number;\n svg?: string;\n iconName?: string;\n} & ElementOptions;\n\nexport class Icon extends BaseElement {\n declare id: string;\n type: 'icon' = 'icon';\n declare width: number;\n declare height: number;\n svg: string;\n iconName: string;\n cursor?: string;\n cache?: ColumnIconOption;\n\n constructor(options: IconOptions) {\n super(options);\n this.iconName = options.iconName;\n if (isString(this.iconName)) {\n const regedIcons = registerIcons.get();\n const cache = regedIcons[this.iconName];\n if (cache) {\n this.cache = cache;\n this.width = cache.width;\n this.height = cache.height;\n this.svg = (cache as any).svg;\n this.cursor = (cache as any).cursor;\n }\n }\n\n // options中的配置可以覆盖cache\n this.width = options.width ?? this.width;\n this.height = options.height ?? this.height;\n this.svg = options.svg ?? this.svg;\n\n this.initLayoutSize();\n }\n}\n"]}
@@ -1,14 +1,21 @@
1
- import type { IImageGraphicAttribute } from '@visactor/vrender';
2
- import { Image as VImage } from '@visactor/vrender';
3
- type IImageOptions = {
1
+ import type { ElementOptions } from './element';
2
+ import { BaseElement } from './element';
3
+ import type { ColumnIconOption } from '../../ts-types';
4
+ type ImageOptions = {
5
+ width: number;
6
+ height: number;
4
7
  src?: string;
5
8
  shape?: 'circle' | 'square';
6
- marginTop?: number;
7
- marginRight?: number;
8
- marginBottom?: number;
9
- marginLeft?: number;
10
- } & IImageGraphicAttribute;
11
- export declare class Image extends VImage {
12
- constructor(options: IImageOptions);
9
+ } & ElementOptions;
10
+ export declare class Image extends BaseElement {
11
+ id: string;
12
+ type: 'image';
13
+ width: number;
14
+ height: number;
15
+ src: string;
16
+ cursor?: string;
17
+ cache?: ColumnIconOption;
18
+ shape?: 'circle' | 'square';
19
+ constructor(options: ImageOptions);
13
20
  }
14
21
  export {};
@@ -4,14 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Image = void 0;
6
6
 
7
- const vrender_1 = require("@visactor/vrender"), vutils_1 = require("@visactor/vutils");
7
+ const element_1 = require("./element");
8
8
 
9
- class Image extends vrender_1.Image {
9
+ class Image extends element_1.BaseElement {
10
10
  constructor(options) {
11
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
12
- options.src && (options.image = options.src), "circle" === options.shape && (options.cornerRadius = options.width / 2);
13
- const isPaddingNumber = (0, vutils_1.isArray)(options.boundsPadding), padding = [ null !== (_b = null !== (_a = options.marginTop) && void 0 !== _a ? _a : isPaddingNumber ? options.boundsPadding[0] : options.boundsPadding) && void 0 !== _b ? _b : 0, null !== (_d = null !== (_c = options.marginRight) && void 0 !== _c ? _c : isPaddingNumber ? options.boundsPadding[1] : options.boundsPadding) && void 0 !== _d ? _d : 0, null !== (_g = null !== (_e = options.marginBottom) && void 0 !== _e ? _e : isPaddingNumber ? null !== (_f = options.boundsPadding[2]) && void 0 !== _f ? _f : options.boundsPadding[0] : options.boundsPadding) && void 0 !== _g ? _g : 0, null !== (_k = null !== (_h = options.marginLeft) && void 0 !== _h ? _h : isPaddingNumber ? null !== (_j = options.boundsPadding[3]) && void 0 !== _j ? _j : options.boundsPadding[1] : options.boundsPadding) && void 0 !== _k ? _k : 0 ];
14
- options.boundsPadding = padding, super(options);
11
+ var _a, _b, _c, _d;
12
+ super(options), this.type = "image", this.width = null !== (_a = options.width) && void 0 !== _a ? _a : this.width,
13
+ this.height = null !== (_b = options.height) && void 0 !== _b ? _b : this.height,
14
+ this.src = null !== (_c = options.src) && void 0 !== _c ? _c : this.src, this.shape = null !== (_d = options.shape) && void 0 !== _d ? _d : this.shape,
15
+ this.initLayoutSize();
15
16
  }
16
17
  }
17
18
 
@@ -1 +1 @@
1
- {"version":3,"sources":["render/layout/image.ts"],"names":[],"mappings":";;;AACA,+CAAoD;AACpD,6CAA2C;AAU3C,MAAa,KAAM,SAAQ,eAAM;IAC/B,YAAY,OAAsB;;QAChC,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;SAC7B;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;YAC9B,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;SAC1C;QAED,MAAM,eAAe,GAAG,IAAA,gBAAO,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG;YACd,MAAA,MAAA,OAAO,CAAC,SAAS,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAC9F,MAAA,MAAA,OAAO,CAAC,WAAW,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAChG,MAAA,MAAA,OAAO,CAAC,YAAY,mCAClB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;YACH,MAAA,MAAA,OAAO,CAAC,UAAU,mCAChB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;SACJ,CAAC;QACF,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAxBD,sBAwBC","file":"image.js","sourcesContent":["import type { IImageGraphicAttribute } from '@visactor/vrender';\nimport { Image as VImage } from '@visactor/vrender';\nimport { isArray } from '@visactor/vutils';\n\ntype IImageOptions = {\n src?: string;\n shape?: 'circle' | 'square';\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n} & IImageGraphicAttribute;\nexport class Image extends VImage {\n constructor(options: IImageOptions) {\n if (options.src) {\n options.image = options.src;\n }\n if (options.shape === 'circle') {\n options.cornerRadius = options.width / 2;\n }\n\n const isPaddingNumber = isArray(options.boundsPadding);\n const padding = [\n options.marginTop ?? (isPaddingNumber ? options.boundsPadding[0] : options.boundsPadding) ?? 0,\n options.marginRight ?? (isPaddingNumber ? options.boundsPadding[1] : options.boundsPadding) ?? 0,\n options.marginBottom ??\n (isPaddingNumber ? options.boundsPadding[2] ?? options.boundsPadding[0] : options.boundsPadding) ??\n 0,\n options.marginLeft ??\n (isPaddingNumber ? options.boundsPadding[3] ?? options.boundsPadding[1] : options.boundsPadding) ??\n 0\n ];\n options.boundsPadding = padding;\n\n super(options);\n }\n}\n"]}
1
+ {"version":3,"sources":["render/layout/image.ts"],"names":[],"mappings":";;;AACA,uCAAwC;AAUxC,MAAa,KAAM,SAAQ,qBAAW;IASpC,YAAY,OAAqB;;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;QARjB,SAAI,GAAY,OAAO,CAAC;QAUtB,IAAI,CAAC,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,IAAI,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,MAAA,OAAO,CAAC,GAAG,mCAAI,IAAI,CAAC,GAAG,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,IAAI,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;CACF;AAlBD,sBAkBC","file":"image.js","sourcesContent":["import type { ElementOptions } from './element';\nimport { BaseElement } from './element';\nimport type { ColumnIconOption } from '../../ts-types';\n\ntype ImageOptions = {\n width: number;\n height: number;\n src?: string;\n shape?: 'circle' | 'square';\n} & ElementOptions;\n\nexport class Image extends BaseElement {\n declare id: string;\n type: 'image' = 'image';\n declare width: number;\n declare height: number;\n src: string;\n cursor?: string;\n cache?: ColumnIconOption;\n shape?: 'circle' | 'square';\n constructor(options: ImageOptions) {\n super(options);\n // options中的配置可以覆盖cache\n this.width = options.width ?? this.width;\n this.height = options.height ?? this.height;\n this.src = options.src ?? this.src;\n this.shape = options.shape ?? this.shape;\n this.initLayoutSize();\n }\n}\n"]}
@@ -7,5 +7,3 @@ export * from './rect';
7
7
  export * from './text';
8
8
  export * from './percent-calc';
9
9
  export * from './arc';
10
- export * from './tag';
11
- export * from './group';
@@ -21,6 +21,5 @@ Object.defineProperty(exports, "__esModule", {
21
21
  __exportStar(require("./group-element"), exports), __exportStar(require("./icon"), exports),
22
22
  __exportStar(require("./image"), exports), __exportStar(require("./rect"), exports),
23
23
  __exportStar(require("./text"), exports), __exportStar(require("./percent-calc"), exports),
24
- __exportStar(require("./arc"), exports), __exportStar(require("./tag"), exports),
25
- __exportStar(require("./group"), exports);
24
+ __exportStar(require("./arc"), exports);
26
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["render/layout/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,kDAAgC;AAChC,yCAAuB;AACvB,0CAAwB;AACxB,yCAAuB;AACvB,yCAAuB;AACvB,iDAA+B;AAC/B,wCAAsB;AACtB,wCAAsB;AACtB,0CAAwB","file":"index.js","sourcesContent":["export * from './circle';\nexport * from './container';\nexport * from './group-element';\nexport * from './icon';\nexport * from './image';\nexport * from './rect';\nexport * from './text';\nexport * from './percent-calc';\nexport * from './arc';\nexport * from './tag';\nexport * from './group';\n"]}
1
+ {"version":3,"sources":["render/layout/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,kDAAgC;AAChC,yCAAuB;AACvB,0CAAwB;AACxB,yCAAuB;AACvB,yCAAuB;AACvB,iDAA+B;AAC/B,wCAAsB","file":"index.js","sourcesContent":["export * from './circle';\nexport * from './container';\nexport * from './group-element';\nexport * from './icon';\nexport * from './image';\nexport * from './rect';\nexport * from './text';\nexport * from './percent-calc';\nexport * from './arc';\n"]}
@@ -2,4 +2,7 @@ export type percentCalcObj = {
2
2
  percent: number;
3
3
  delta: number;
4
4
  };
5
- export declare function percentCalc(percent: number, delta?: number): percentCalcObj;
5
+ export declare function percentCalc(percent: number, delta?: number): {
6
+ percent: number;
7
+ delta: number;
8
+ };
@@ -1 +1 @@
1
- {"version":3,"sources":["render/layout/percent-calc.ts"],"names":[],"mappings":";;;AAKA,SAAgB,WAAW,CAAC,OAAe,EAAE,KAAK,GAAG,CAAC;IACpD,OAAO;QACL,OAAO;QACP,KAAK;KACN,CAAC;AACJ,CAAC;AALD,kCAKC","file":"percent-calc.js","sourcesContent":["export type percentCalcObj = {\n percent: number;\n delta: number;\n};\n\nexport function percentCalc(percent: number, delta = 0): percentCalcObj {\n return {\n percent,\n delta\n };\n}\n"]}
1
+ {"version":3,"sources":["render/layout/percent-calc.ts"],"names":[],"mappings":";;;AAKA,SAAgB,WAAW,CAAC,OAAe,EAAE,KAAK,GAAG,CAAC;IACpD,OAAO;QACL,OAAO;QACP,KAAK;KACN,CAAC;AACJ,CAAC;AALD,kCAKC","file":"percent-calc.js","sourcesContent":["export type percentCalcObj = {\n percent: number;\n delta: number;\n};\n\nexport function percentCalc(percent: number, delta = 0) {\n return {\n percent,\n delta\n };\n}\n"]}
@@ -1,12 +1,22 @@
1
- import type { IRectGraphicAttribute } from '@visactor/vrender';
2
- import { Rect as VRect } from '@visactor/vrender';
3
- type IRectOption = {
4
- marginTop?: number;
5
- marginRight?: number;
6
- marginBottom?: number;
7
- marginLeft?: number;
8
- } & IRectGraphicAttribute;
9
- export declare class Rect extends VRect {
10
- constructor(options: IRectOption);
1
+ import type { ElementOptions } from './element';
2
+ import { BaseElement } from './element';
3
+ type RectOptions = {
4
+ width: number;
5
+ height: number;
6
+ lineWidth?: number;
7
+ cornerRadius?: number;
8
+ fill?: string | boolean;
9
+ stroke?: string | boolean;
10
+ } & ElementOptions;
11
+ export declare class Rect extends BaseElement {
12
+ type: 'rect';
13
+ width: number;
14
+ height: number;
15
+ lineWidth: number;
16
+ cornerRadius: number;
17
+ radius: number;
18
+ fill: string | boolean;
19
+ stroke: string | boolean;
20
+ constructor(options: RectOptions);
11
21
  }
12
22
  export {};
@@ -4,13 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Rect = void 0;
6
6
 
7
- const vrender_1 = require("@visactor/vrender"), vutils_1 = require("@visactor/vutils");
7
+ const element_1 = require("./element");
8
8
 
9
- class Rect extends vrender_1.Rect {
9
+ class Rect extends element_1.BaseElement {
10
10
  constructor(options) {
11
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
12
- const isPaddingNumber = (0, vutils_1.isArray)(options.boundsPadding), padding = [ null !== (_b = null !== (_a = options.marginTop) && void 0 !== _a ? _a : isPaddingNumber ? options.boundsPadding[0] : options.boundsPadding) && void 0 !== _b ? _b : 0, null !== (_d = null !== (_c = options.marginRight) && void 0 !== _c ? _c : isPaddingNumber ? options.boundsPadding[1] : options.boundsPadding) && void 0 !== _d ? _d : 0, null !== (_g = null !== (_e = options.marginBottom) && void 0 !== _e ? _e : isPaddingNumber ? null !== (_f = options.boundsPadding[2]) && void 0 !== _f ? _f : options.boundsPadding[0] : options.boundsPadding) && void 0 !== _g ? _g : 0, null !== (_k = null !== (_h = options.marginLeft) && void 0 !== _h ? _h : isPaddingNumber ? null !== (_j = options.boundsPadding[3]) && void 0 !== _j ? _j : options.boundsPadding[1] : options.boundsPadding) && void 0 !== _k ? _k : 0 ];
13
- options.boundsPadding = padding, super(options);
11
+ super(options), this.type = "rect", this.width = options.width, this.height = options.height,
12
+ this.lineWidth = options.lineWidth || 0, this.cornerRadius = options.cornerRadius || 0,
13
+ this.radius = this.cornerRadius, this.fill = options.fill || "#777", this.stroke = options.stroke || void 0,
14
+ this.initLayoutSize();
14
15
  }
15
16
  }
16
17
 
@@ -1 +1 @@
1
- {"version":3,"sources":["render/layout/rect.ts"],"names":[],"mappings":";;;AACA,+CAAkD;AAClD,6CAA2C;AAS3C,MAAa,IAAK,SAAQ,cAAK;IAC7B,YAAY,OAAoB;;QAC9B,MAAM,eAAe,GAAG,IAAA,gBAAO,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG;YACd,MAAA,MAAA,OAAO,CAAC,SAAS,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAC9F,MAAA,MAAA,OAAO,CAAC,WAAW,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAChG,MAAA,MAAA,OAAO,CAAC,YAAY,mCAClB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;YACH,MAAA,MAAA,OAAO,CAAC,UAAU,mCAChB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;SACJ,CAAC;QACF,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAjBD,oBAiBC","file":"rect.js","sourcesContent":["import type { IRectGraphicAttribute } from '@visactor/vrender';\nimport { Rect as VRect } from '@visactor/vrender';\nimport { isArray } from '@visactor/vutils';\n\ntype IRectOption = {\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n} & IRectGraphicAttribute;\n\nexport class Rect extends VRect {\n constructor(options: IRectOption) {\n const isPaddingNumber = isArray(options.boundsPadding);\n const padding = [\n options.marginTop ?? (isPaddingNumber ? options.boundsPadding[0] : options.boundsPadding) ?? 0,\n options.marginRight ?? (isPaddingNumber ? options.boundsPadding[1] : options.boundsPadding) ?? 0,\n options.marginBottom ??\n (isPaddingNumber ? options.boundsPadding[2] ?? options.boundsPadding[0] : options.boundsPadding) ??\n 0,\n options.marginLeft ??\n (isPaddingNumber ? options.boundsPadding[3] ?? options.boundsPadding[1] : options.boundsPadding) ??\n 0\n ];\n options.boundsPadding = padding;\n\n super(options);\n }\n}\n"]}
1
+ {"version":3,"sources":["render/layout/rect.ts"],"names":[],"mappings":";;;AACA,uCAAwC;AAWxC,MAAa,IAAK,SAAQ,qBAAW;IAUnC,YAAY,OAAoB;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAVjB,SAAI,GAAW,MAAM,CAAC;QAWpB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;QAE1C,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;CACF;AAtBD,oBAsBC","file":"rect.js","sourcesContent":["import type { ElementOptions } from './element';\nimport { BaseElement } from './element';\n\ntype RectOptions = {\n width: number;\n height: number;\n lineWidth?: number;\n cornerRadius?: number;\n fill?: string | boolean;\n stroke?: string | boolean;\n} & ElementOptions;\n\nexport class Rect extends BaseElement {\n type: 'rect' = 'rect';\n declare width: number;\n declare height: number;\n lineWidth: number;\n cornerRadius: number;\n radius: number;\n fill: string | boolean;\n stroke: string | boolean;\n\n constructor(options: RectOptions) {\n super(options);\n this.width = options.width;\n this.height = options.height;\n this.lineWidth = options.lineWidth || 0;\n this.cornerRadius = options.cornerRadius || 0;\n this.radius = this.cornerRadius;\n this.fill = options.fill || '#777';\n this.stroke = options.stroke || undefined;\n\n this.initLayoutSize();\n }\n}\n"]}
@@ -1,13 +1,50 @@
1
- import { WrapText, type IWrapTextGraphicAttribute } from '@visactor/vrender';
1
+ import type { TextAlignType, TextBaselineType } from '../../ts-types';
2
2
  import type { BaseTableAPI } from '../../ts-types/base-table';
3
- type ITextOption = {
4
- marginTop?: number;
5
- marginRight?: number;
6
- marginBottom?: number;
7
- marginLeft?: number;
8
- } & IWrapTextGraphicAttribute;
9
- export declare class Text extends WrapText {
10
- constructor(options: ITextOption);
3
+ import type { ElementOptions } from './element';
4
+ import { BaseElement } from './element';
5
+ type TextOptions = {
6
+ text: string;
7
+ fill?: string | boolean;
8
+ color?: string | boolean;
9
+ stroke?: string | boolean;
10
+ lineWidth: number;
11
+ fontSize?: number;
12
+ fontFamily?: string;
13
+ fontWeight?: string | number;
14
+ fontVariant?: string;
15
+ fontStyle?: string;
16
+ ellipsis?: boolean | string;
17
+ maxLineWidth?: number;
18
+ textAlign?: TextAlignType;
19
+ textBaseline?: TextBaselineType;
20
+ lineHeight?: number;
21
+ underline?: number;
22
+ lineThrough?: number;
23
+ heightLimit?: number;
24
+ lineClamp?: number;
25
+ } & ElementOptions;
26
+ export declare class Text extends BaseElement {
27
+ type: 'text';
28
+ text: string;
29
+ fill: string | boolean;
30
+ color?: string | boolean;
31
+ stroke?: string | boolean;
32
+ lineWidth: number;
33
+ fontSize: number;
34
+ fontFamily: string;
35
+ fontWeight?: string | number;
36
+ fontVariant?: string;
37
+ fontStyle?: string;
38
+ ellipsis?: boolean | string;
39
+ maxLineWidth?: number;
40
+ textAlign?: TextAlignType;
41
+ textBaseline?: TextBaselineType;
42
+ lineHeight?: number;
43
+ underline?: number;
44
+ lineThrough?: number;
45
+ heightLimit?: number;
46
+ lineClamp?: number;
47
+ constructor(options: TextOptions);
11
48
  getSize(table: BaseTableAPI): void;
12
49
  }
13
50
  export {};
@@ -4,17 +4,28 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Text = void 0;
6
6
 
7
- const vrender_1 = require("@visactor/vrender"), vutils_1 = require("@visactor/vutils");
7
+ const element_1 = require("./element");
8
8
 
9
- class Text extends vrender_1.WrapText {
9
+ class Text extends element_1.BaseElement {
10
10
  constructor(options) {
11
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
12
- options.textBaseline || (options.textBaseline = "top");
13
- const isPaddingNumber = (0, vutils_1.isArray)(options.boundsPadding), padding = [ null !== (_b = null !== (_a = options.marginTop) && void 0 !== _a ? _a : isPaddingNumber ? options.boundsPadding[0] : options.boundsPadding) && void 0 !== _b ? _b : 0, null !== (_d = null !== (_c = options.marginRight) && void 0 !== _c ? _c : isPaddingNumber ? options.boundsPadding[1] : options.boundsPadding) && void 0 !== _d ? _d : 0, null !== (_g = null !== (_e = options.marginBottom) && void 0 !== _e ? _e : isPaddingNumber ? null !== (_f = options.boundsPadding[2]) && void 0 !== _f ? _f : options.boundsPadding[0] : options.boundsPadding) && void 0 !== _g ? _g : 0, null !== (_k = null !== (_h = options.marginLeft) && void 0 !== _h ? _h : isPaddingNumber ? null !== (_j = options.boundsPadding[3]) && void 0 !== _j ? _j : options.boundsPadding[1] : options.boundsPadding) && void 0 !== _k ? _k : 0 ];
14
- options.boundsPadding = padding, super(options);
11
+ super(options), this.type = "text", this.text = options.text, this.fontSize = options.fontSize || 12,
12
+ this.fontFamily = options.fontFamily || "Arial,sans-serif", this.fill = options.color || options.fill || "black",
13
+ this.textBaseline = options.textBaseline || "top", this.textAlign = options.textAlign || "left",
14
+ options.stroke && (this.stroke = options.stroke), options.lineWidth && (this.lineWidth = options.lineWidth),
15
+ options.fontWeight && (this.fontWeight = options.fontWeight), options.fontVariant && (this.fontVariant = options.fontVariant),
16
+ options.fontStyle && (this.fontStyle = options.fontStyle), options.ellipsis && (this.ellipsis = options.ellipsis),
17
+ options.maxLineWidth && (this.maxLineWidth = options.maxLineWidth), options.lineHeight && (this.lineHeight = options.lineHeight),
18
+ options.underline && (this.underline = options.underline), options.lineThrough && (this.lineThrough = options.lineThrough),
19
+ options.heightLimit && (this.heightLimit = options.heightLimit), options.lineClamp && (this.lineClamp = options.lineClamp);
15
20
  }
16
21
  getSize(table) {
17
- this.AABBBounds.width();
22
+ const {width: width, height: height} = table.measureText(this.text, {
23
+ fontSize: this.fontSize,
24
+ fontWeight: this.fontWeight,
25
+ fontFamily: this.fontFamily
26
+ });
27
+ this.width = width, this.height = height, this.initLayoutSize(), this.background && (this.dx += this.background.expandX || 0,
28
+ this.dy += this.background.expandY || 0);
18
29
  }
19
30
  }
20
31
 
@@ -1 +1 @@
1
- {"version":3,"sources":["render/layout/text.ts"],"names":[],"mappings":";;;AAAA,+CAA6E;AAG7E,6CAA2C;AAS3C,MAAa,IAAK,SAAQ,kBAAQ;IAChC,YAAY,OAAoB;;QAC9B,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YACzB,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;SAC9B;QACD,MAAM,eAAe,GAAG,IAAA,gBAAO,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG;YACd,MAAA,MAAA,OAAO,CAAC,SAAS,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAC9F,MAAA,MAAA,OAAO,CAAC,WAAW,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAChG,MAAA,MAAA,OAAO,CAAC,YAAY,mCAClB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;YACH,MAAA,MAAA,OAAO,CAAC,UAAU,mCAChB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;SACJ,CAAC;QACF,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,KAAmB;QACzB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF;AAvBD,oBAuBC","file":"text.js","sourcesContent":["import { WrapText, type IWrapTextGraphicAttribute } from '@visactor/vrender';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { TagAttributes } from '@visactor/vrender-components';\nimport { isArray } from '@visactor/vutils';\n\ntype ITextOption = {\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n} & IWrapTextGraphicAttribute;\n\nexport class Text extends WrapText {\n constructor(options: ITextOption) {\n if (!options.textBaseline) {\n options.textBaseline = 'top';\n }\n const isPaddingNumber = isArray(options.boundsPadding);\n const padding = [\n options.marginTop ?? (isPaddingNumber ? options.boundsPadding[0] : options.boundsPadding) ?? 0,\n options.marginRight ?? (isPaddingNumber ? options.boundsPadding[1] : options.boundsPadding) ?? 0,\n options.marginBottom ??\n (isPaddingNumber ? options.boundsPadding[2] ?? options.boundsPadding[0] : options.boundsPadding) ??\n 0,\n options.marginLeft ??\n (isPaddingNumber ? options.boundsPadding[3] ?? options.boundsPadding[1] : options.boundsPadding) ??\n 0\n ];\n options.boundsPadding = padding;\n\n super(options);\n }\n getSize(table: BaseTableAPI) {\n this.AABBBounds.width();\n }\n}\n"]}
1
+ {"version":3,"sources":["render/layout/text.ts"],"names":[],"mappings":";;;AAGA,uCAAwC;AAwBxC,MAAa,IAAK,SAAQ,qBAAW;IAsBnC,YAAY,OAAoB;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAtBjB,SAAI,GAAW,MAAM,CAAC;QAuBpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;QAE7C,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7D,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACnE,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7D,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,CAAC,KAAmB;QACzB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE;YACrD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;SACzC;IACH,CAAC;CACF;AA5DD,oBA4DC","file":"text.js","sourcesContent":["import type { TextAlignType, TextBaselineType } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { ElementOptions } from './element';\nimport { BaseElement } from './element';\n\ntype TextOptions = {\n text: string;\n fill?: string | boolean;\n color?: string | boolean;\n stroke?: string | boolean;\n lineWidth: number;\n fontSize?: number;\n fontFamily?: string;\n fontWeight?: string | number;\n fontVariant?: string;\n fontStyle?: string;\n ellipsis?: boolean | string;\n maxLineWidth?: number;\n textAlign?: TextAlignType;\n textBaseline?: TextBaselineType;\n lineHeight?: number;\n underline?: number;\n lineThrough?: number;\n heightLimit?: number;\n lineClamp?: number;\n} & ElementOptions;\n\nexport class Text extends BaseElement {\n type: 'text' = 'text';\n text: string;\n fill: string | boolean;\n color?: string | boolean;\n stroke?: string | boolean;\n lineWidth: number;\n fontSize: number;\n fontFamily: string;\n fontWeight?: string | number;\n fontVariant?: string;\n fontStyle?: string;\n ellipsis?: boolean | string;\n maxLineWidth?: number;\n textAlign?: TextAlignType;\n textBaseline?: TextBaselineType;\n lineHeight?: number;\n underline?: number;\n lineThrough?: number;\n heightLimit?: number;\n lineClamp?: number;\n\n constructor(options: TextOptions) {\n super(options);\n this.text = options.text;\n this.fontSize = options.fontSize || 12;\n this.fontFamily = options.fontFamily || 'Arial,sans-serif';\n this.fill = options.color || options.fill || 'black';\n this.textBaseline = options.textBaseline || 'top';\n this.textAlign = options.textAlign || 'left';\n\n options.stroke && (this.stroke = options.stroke);\n options.lineWidth && (this.lineWidth = options.lineWidth);\n options.fontWeight && (this.fontWeight = options.fontWeight);\n options.fontVariant && (this.fontVariant = options.fontVariant);\n options.fontStyle && (this.fontStyle = options.fontStyle);\n options.ellipsis && (this.ellipsis = options.ellipsis);\n options.maxLineWidth && (this.maxLineWidth = options.maxLineWidth);\n options.lineHeight && (this.lineHeight = options.lineHeight);\n options.underline && (this.underline = options.underline);\n options.lineThrough && (this.lineThrough = options.lineThrough);\n options.heightLimit && (this.heightLimit = options.heightLimit);\n options.lineClamp && (this.lineClamp = options.lineClamp);\n }\n\n getSize(table: BaseTableAPI) {\n const { width, height } = table.measureText(this.text, {\n fontSize: this.fontSize,\n fontWeight: this.fontWeight,\n fontFamily: this.fontFamily\n });\n this.width = width;\n this.height = height;\n this.initLayoutSize();\n\n if (this.background) {\n this.dx += this.background.expandX || 0;\n this.dy += this.background.expandY || 0;\n }\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
- import { Group as VGroup } from '@visactor/vrender';
2
1
  import type { ICustomLayout, ICustomRender } from '../../ts-types';
2
+ import { Group } from '../graphic/group';
3
3
  import type { BaseTableAPI } from '../../ts-types/base-table';
4
4
  export declare function dealWithCustom(customLayout: ICustomLayout, customRender: ICustomRender, col: number, row: number, width: number, height: number, autoWidth: boolean, autoHeight: boolean, table: BaseTableAPI): {
5
- elementsGroup: VGroup;
5
+ elementsGroup: Group;
6
6
  renderDefault: boolean;
7
7
  };
8
8
  export declare function decodeReactDom(dom: any): any;
@@ -25,8 +25,9 @@ function dealWithCustom(customLayout, customRender, col, row, width, height, aut
25
25
  table: table
26
26
  });
27
27
  customRenderObj.rootContainer && (customRenderObj.rootContainer = decodeReactDom(customRenderObj.rootContainer)),
28
- customRenderObj.rootContainer instanceof vrender_1.Group && (elementsGroup = customRenderObj.rootContainer,
29
- elementsGroup.name = "custom-container"), renderDefault = customRenderObj.renderDefault;
28
+ customRenderObj.rootContainer instanceof vrender_1.Group ? (elementsGroup = customRenderObj.rootContainer,
29
+ elementsGroup.name = "custom-container") : customRenderObj.rootContainer && (customElements = customRenderObj.rootContainer.getElements(void 0, !1, !1)),
30
+ renderDefault = customRenderObj.renderDefault;
30
31
  } else if ("function" == typeof customRender) {
31
32
  const customRenderObj = customRender({
32
33
  col: col,
@@ -50,7 +51,7 @@ 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), {
54
+ return {
54
55
  elementsGroup: elementsGroup,
55
56
  renderDefault: renderDefault
56
57
  };
@@ -196,8 +197,8 @@ function adjustElementsPos(originalElements, width, height, value) {
196
197
  const originalElement = originalElements[i], element = Object.assign({}, originalElement);
197
198
  for (const name in element) element.hasOwnProperty(name) && (0, vutils_1.isFunction)(element[name]) && (element[name] = element[name](value));
198
199
  const rect = element;
199
- (0, vutils_1.isValid)(rect.x) && (rect.x = (0, vutils_1.isString)(rect.x) ? transformString(rect.x, width - borderLineWidths[1]) : Number(rect.x)),
200
- (0, vutils_1.isValid)(rect.y) && (rect.y = (0, vutils_1.isString)(rect.y) ? transformString(rect.y, height - borderLineWidths[2]) : Number(rect.y)),
200
+ (0, vutils_1.isValid)(rect.x) && (rect.x = (0, vutils_1.isString)(rect.x) ? transformString(rect.x, width - borderLineWidths[1]) : Number(rect.x),
201
+ rect.y = (0, vutils_1.isString)(rect.y) ? transformString(rect.y, height - borderLineWidths[2]) : Number(rect.y)),
201
202
  "width" in element && (element.width = (0, vutils_1.isString)(element.width) ? transformString(element.width, width - borderLineWidths[1]) : Number(element.width)),
202
203
  "height" in element && (element.height = (0, vutils_1.isString)(element.height) ? transformString(element.height, height - borderLineWidths[2]) : Number(element.height)),
203
204
  "radius" in element && (element.radius = (0, vutils_1.isString)(element.radius) ? transformString(element.radius, Math.min(width - borderLineWidths[1], height - borderLineWidths[2])) : Number(element.radius)),
@@ -215,15 +216,6 @@ function transformString(str, size) {
215
216
  return str.endsWith("px") ? parseInt(str, 10) : str.endsWith("%") && size ? parseInt(str, 10) / 100 * size : parseInt(str, 10);
216
217
  }
217
218
 
218
- function dealPercentCalc(group) {
219
- group && group.forEachChildren((child => {
220
- var _a, _b;
221
- (0, vutils_1.isObject)(child.attribute.width) && child.attribute.width.percent && child.setAttribute("width", child.attribute.width.percent / 100 * group.attribute.width + (null !== (_a = child.attribute.width.delta) && void 0 !== _a ? _a : 0)),
222
- (0, vutils_1.isObject)(child.attribute.height) && child.attribute.height.percent && child.setAttribute("height", child.attribute.height.percent / 100 * group.attribute.height + (null !== (_b = child.attribute.height.delta) && void 0 !== _b ? _b : 0)),
223
- "group" === child.type && dealPercentCalc(child);
224
- }));
225
- }
226
-
227
219
  function decodeReactDom(dom) {
228
220
  if (!dom.$$typeof) return dom;
229
221
  const type = dom.type, {attribute: attribute, children: children} = dom.props, g = type({
@@ -1 +1 @@
1
- {"version":3,"sources":["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);\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): Group | undefined {\n const customGroup = new Group({\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\nfunction dealPercentCalc(group: VGroup) {\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) * group.attribute.width +\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) * group.attribute.height +\n ((child.attribute.height as percentCalcObj).delta ?? 0)\n );\n }\n\n if (child.type === 'group') {\n dealPercentCalc(child);\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":["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, isString, isValid } from '@visactor/vutils';\nimport type { ICustomLayout, ICustomRender, ICustomRenderElement, ICustomRenderElements } 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 { 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: Group;\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 return {\n elementsGroup,\n renderDefault\n };\n}\n\nfunction adjustElementToGroup(\n elements: ICustomRenderElements,\n width: number,\n height: number,\n value: any\n): Group | undefined {\n const customGroup = new Group({\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 Rect;\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 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\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"]}
@@ -32,7 +32,7 @@ Object.defineProperty(exports, "__esModule", {
32
32
  const group_1 = require("../../graphic/group"), chart_1 = require("../../graphic/chart"), registerChartTypes = __importStar(require("../../../chartModule")), get_prop_1 = require("../../utils/get-prop"), vutils_1 = require("@visactor/vutils");
33
33
 
34
34
  function createChartCellGroup(cellGroup, columnGroup, xOrigin, yOrigin, col, row, width, height, padding, dataValue, chartModule, chartSpec, chartInstance, dataId, table, cellTheme) {
35
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
35
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
36
36
  const ClassType = registerChartTypes.get()[chartModule], headerStyle = table._getCellStyle(col, row), functionalPadding = (0,
37
37
  get_prop_1.getFunctionalProp)("padding", headerStyle, col, row, table);
38
38
  (0, vutils_1.isValid)(functionalPadding) && (padding = functionalPadding), cellGroup || ((cellGroup = new group_1.Group({
@@ -54,7 +54,7 @@ function createChartCellGroup(cellGroup, columnGroup, xOrigin, yOrigin, col, row
54
54
  stroke: !1,
55
55
  x: padding[3],
56
56
  y: padding[0],
57
- canvas: table.canvas,
57
+ canvas: null !== (_o = table.canvas) && void 0 !== _o ? _o : table.scenegraph.stage.window.getContext().canvas,
58
58
  mode: table.options.mode,
59
59
  modeParams: table.options.modeParams,
60
60
  spec: chartSpec,
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/group-creater/cell-type/chart-cell.ts"],"names":[],"mappings":"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","file":"chart-cell.js","sourcesContent":["import { Group } from '../../graphic/group';\nimport { Chart } from '../../graphic/chart';\nimport * as registerChartTypes from '../../../chartModule';\nimport { getFunctionalProp } from '../../utils/get-prop';\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport type { IThemeSpec } from '@visactor/vrender';\nexport function createChartCellGroup(\n cellGroup: Group | null,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n dataValue: string,\n chartModule: any,\n chartSpec: any,\n chartInstance: any,\n dataId: string | Record<string, string>,\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n // 获取注册的chart图表类型\n const registerCharts = registerChartTypes.get();\n const ClassType = registerCharts[chartModule];\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n // cell\n if (!cellGroup) {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n }\n cellGroup.AABBBounds.width(); // TODO 需要底层VRender修改\n // chart\n const chartGroup = new Chart({\n stroke: false,\n x: padding[3],\n y: padding[0],\n canvas: table.canvas,\n mode: table.options.mode,\n modeParams: table.options.modeParams,\n spec: chartSpec,\n ClassType,\n width: width - padding[3] - padding[1],\n height: height - padding[2] - padding[0],\n chartInstance,\n dataId,\n data: table.getCellValue(col, row),\n cellPadding: padding,\n // viewBox: {\n // x1: Math.ceil(cellGroup.globalAABBBounds.x1 + padding[3] + table.scrollLeft),\n // x2: Math.ceil(cellGroup.globalAABBBounds.x1 + width - padding[1] + table.scrollLeft),\n // y1: Math.ceil(cellGroup.globalAABBBounds.y1 + padding[0] + table.scrollTop),\n // y2: Math.ceil(cellGroup.globalAABBBounds.y1 + height - padding[2] + table.scrollTop)\n // },\n axes: table.isPivotChart() ? table.internalProps.layoutMap.getChartAxes(col, row) : []\n // clipRect: {\n // left: cellGroup.globalAABBBounds.x1 + (table as any).tableX + padding[3],\n // top: cellGroup.globalAABBBounds.y1 + (table as any).tableY + padding[0],\n // width: width - padding[1] - padding[3], //cellGroup.globalAABBBounds.width() - padding[1] - padding[3],\n // height: height - padding[0] - padding[2],\n // },\n });\n cellGroup.appendChild(chartGroup);\n // 将生成的实例存到layoutMap中 共享\n table.internalProps.layoutMap.setChartInstance(col, row, chartGroup.chartInstance);\n\n return cellGroup;\n}\n"]}
1
+ {"version":3,"sources":["scenegraph/group-creater/cell-type/chart-cell.ts"],"names":[],"mappings":"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","file":"chart-cell.js","sourcesContent":["import { Group } from '../../graphic/group';\nimport { Chart } from '../../graphic/chart';\nimport * as registerChartTypes from '../../../chartModule';\nimport { getFunctionalProp } from '../../utils/get-prop';\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport type { IThemeSpec } from '@visactor/vrender';\nexport function createChartCellGroup(\n cellGroup: Group | null,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n dataValue: string,\n chartModule: any,\n chartSpec: any,\n chartInstance: any,\n dataId: string | Record<string, string>,\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n // 获取注册的chart图表类型\n const registerCharts = registerChartTypes.get();\n const ClassType = registerCharts[chartModule];\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n // cell\n if (!cellGroup) {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n }\n cellGroup.AABBBounds.width(); // TODO 需要底层VRender修改\n // chart\n const chartGroup = new Chart({\n stroke: false,\n x: padding[3],\n y: padding[0],\n // canvas: table.canvas,\n canvas: table.canvas ?? (table.scenegraph.stage.window.getContext().canvas as unknown as HTMLCanvasElement),\n mode: table.options.mode,\n modeParams: table.options.modeParams,\n spec: chartSpec,\n ClassType,\n width: width - padding[3] - padding[1],\n height: height - padding[2] - padding[0],\n chartInstance,\n dataId,\n data: table.getCellValue(col, row),\n cellPadding: padding,\n // viewBox: {\n // x1: Math.ceil(cellGroup.globalAABBBounds.x1 + padding[3] + table.scrollLeft),\n // x2: Math.ceil(cellGroup.globalAABBBounds.x1 + width - padding[1] + table.scrollLeft),\n // y1: Math.ceil(cellGroup.globalAABBBounds.y1 + padding[0] + table.scrollTop),\n // y2: Math.ceil(cellGroup.globalAABBBounds.y1 + height - padding[2] + table.scrollTop)\n // },\n axes: table.isPivotChart() ? table.internalProps.layoutMap.getChartAxes(col, row) : []\n // clipRect: {\n // left: cellGroup.globalAABBBounds.x1 + (table as any).tableX + padding[3],\n // top: cellGroup.globalAABBBounds.y1 + (table as any).tableY + padding[0],\n // width: width - padding[1] - padding[3], //cellGroup.globalAABBBounds.width() - padding[1] - padding[3],\n // height: height - padding[0] - padding[2],\n // },\n });\n cellGroup.appendChild(chartGroup);\n // 将生成的实例存到layoutMap中 共享\n table.internalProps.layoutMap.setChartInstance(col, row, chartGroup.chartInstance);\n\n return cellGroup;\n}\n"]}
@@ -39,9 +39,9 @@ function initSceneGraph(scene) {
39
39
  scene.table.isPivotChart() && ((0, corner_cell_1.createCornerCell)(rightTopCornerGroup, scene.table.theme.cornerRightTopCellStyle || scene.table.theme.cornerHeaderStyle),
40
40
  (0, corner_cell_1.createCornerCell)(leftBottomCornerGroup, scene.table.theme.cornerLeftBottomCellStyle || scene.table.theme.cornerHeaderStyle),
41
41
  (0, corner_cell_1.createCornerCell)(rightBottomCornerGroup, scene.table.theme.cornerRightBottomCellStyle || scene.table.theme.cornerHeaderStyle)),
42
- scene.tableGroup.addChild(bodyGroup), scene.tableGroup.addChild(rightFrozenGroup),
43
- scene.tableGroup.addChild(bottomFrozenGroup), scene.tableGroup.addChild(rowHeaderGroup),
44
- scene.tableGroup.addChild(colHeaderGroup), scene.tableGroup.addChild(rightBottomCornerGroup),
42
+ scene.tableGroup.addChild(bodyGroup), scene.tableGroup.addChild(rowHeaderGroup),
43
+ scene.tableGroup.addChild(bottomFrozenGroup), scene.tableGroup.addChild(colHeaderGroup),
44
+ scene.tableGroup.addChild(rightFrozenGroup), scene.tableGroup.addChild(rightBottomCornerGroup),
45
45
  scene.tableGroup.addChild(rightTopCornerGroup), scene.tableGroup.addChild(leftBottomCornerGroup),
46
46
  scene.tableGroup.addChild(cornerHeaderGroup), scene.tableGroup.addChild(componentGroup);
47
47
  }