@antv/infographic 0.2.11 → 0.2.13

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 (328) hide show
  1. package/dist/infographic.min.js +98 -94
  2. package/dist/infographic.min.js.map +1 -1
  3. package/esm/designs/components/Btn.js +15 -4
  4. package/esm/designs/components/BtnsGroup.js +1 -1
  5. package/esm/designs/components/Illus.js +15 -3
  6. package/esm/designs/components/ItemDesc.js +17 -11
  7. package/esm/designs/components/ItemIcon.js +17 -18
  8. package/esm/designs/components/ItemLabel.js +17 -11
  9. package/esm/designs/components/ItemValue.js +17 -12
  10. package/esm/designs/components/ItemsGroup.js +1 -1
  11. package/esm/designs/components/ShapesGroup.js +1 -1
  12. package/esm/designs/components/Title.js +2 -2
  13. package/esm/designs/decorations/simple-arrow.js +14 -2
  14. package/esm/designs/decorations/triangle.js +14 -2
  15. package/esm/designs/defs/DropShadow.js +13 -2
  16. package/esm/designs/defs/LinearGradient.js +1 -1
  17. package/esm/designs/items/BadgeCard.js +2 -2
  18. package/esm/designs/items/CandyCardLite.js +1 -1
  19. package/esm/designs/items/CapsuleItem.js +3 -3
  20. package/esm/designs/items/CircleNode.js +1 -1
  21. package/esm/designs/items/CircularProgress.js +3 -2
  22. package/esm/designs/items/CompactCard.js +1 -1
  23. package/esm/designs/items/DoneList.js +1 -1
  24. package/esm/designs/items/HorizontalIconArrow.js +2 -2
  25. package/esm/designs/items/HorizontalIconLine.js +2 -2
  26. package/esm/designs/items/IconBadge.js +4 -3
  27. package/esm/designs/items/IndexedCard.js +1 -1
  28. package/esm/designs/items/LCornerCard.js +1 -1
  29. package/esm/designs/items/LetterCard.js +4 -3
  30. package/esm/designs/items/LinedText.js +6 -5
  31. package/esm/designs/items/PillBadge.js +2 -2
  32. package/esm/designs/items/PlainText.js +4 -4
  33. package/esm/designs/items/ProgressCard.js +4 -4
  34. package/esm/designs/items/QuarterCircular.js +1 -1
  35. package/esm/designs/items/QuarterSimpleCard.js +1 -1
  36. package/esm/designs/items/RibbonCard.js +2 -2
  37. package/esm/designs/items/RoundedRectNode.js +2 -2
  38. package/esm/designs/items/SimpleCircleNode.js +1 -1
  39. package/esm/designs/items/SimpleHorizontalArrow.js +2 -2
  40. package/esm/designs/items/SimpleIllusItem.js +1 -1
  41. package/esm/designs/items/SimpleItem.js +3 -3
  42. package/esm/designs/items/SimpleVerticalArrow.js +2 -2
  43. package/esm/designs/items/UnderlineText.js +1 -1
  44. package/esm/designs/items/VerticalIconArrow.js +2 -2
  45. package/esm/designs/layouts/Align.js +22 -15
  46. package/esm/designs/layouts/Flex.js +23 -16
  47. package/esm/designs/structures/chart-bar.js +7 -5
  48. package/esm/designs/structures/chart-column.js +3 -2
  49. package/esm/designs/structures/chart-line.js +7 -5
  50. package/esm/designs/structures/chart-pie.d.ts +25 -0
  51. package/esm/designs/structures/chart-pie.js +186 -26
  52. package/esm/designs/structures/chart-wordcloud.js +5 -14
  53. package/esm/designs/structures/compare-binary-horizontal/dividers/pros-cons-arrow.js +1 -1
  54. package/esm/designs/structures/compare-binary-horizontal/dividers/pros-cons-fold.js +1 -1
  55. package/esm/designs/structures/compare-binary-horizontal/dividers/types.js +2 -1
  56. package/esm/designs/structures/compare-hierarchy-left-right.js +6 -5
  57. package/esm/designs/structures/compare-hierarchy-row.js +3 -2
  58. package/esm/designs/structures/compare-quadrant.js +2 -3
  59. package/esm/designs/structures/hierarchy-mindmap.js +19 -19
  60. package/esm/designs/structures/hierarchy-structure.js +1 -1
  61. package/esm/designs/structures/hierarchy-tree.js +15 -24
  62. package/esm/designs/structures/list-sector.js +5 -6
  63. package/esm/designs/structures/list-zigzag.js +2 -1
  64. package/esm/designs/structures/relation-dagre-flow.js +30 -35
  65. package/esm/designs/structures/relation-network.js +2 -2
  66. package/esm/designs/structures/sequence-funnel.js +1 -1
  67. package/esm/designs/structures/sequence-mountain.js +4 -4
  68. package/esm/designs/structures/sequence-pyramid.js +1 -1
  69. package/esm/designs/structures/sequence-zigzag-steps.js +2 -1
  70. package/esm/designs/utils/color.js +8 -4
  71. package/esm/designs/utils/index.d.ts +1 -0
  72. package/esm/designs/utils/index.js +1 -0
  73. package/esm/designs/utils/item.js +3 -2
  74. package/esm/designs/utils/normalize-percent.d.ts +19 -0
  75. package/esm/designs/utils/normalize-percent.js +32 -0
  76. package/esm/editor/commands/Batch.js +21 -8
  77. package/esm/editor/commands/UpdateElement.js +25 -22
  78. package/esm/editor/commands/UpdateOptions.js +23 -10
  79. package/esm/editor/commands/UpdateText.js +24 -11
  80. package/esm/editor/interactions/brush-select.js +27 -13
  81. package/esm/editor/interactions/click-select.js +13 -3
  82. package/esm/editor/interactions/dblclick-edit-text.js +36 -20
  83. package/esm/editor/interactions/drag-element.js +23 -9
  84. package/esm/editor/interactions/hotkey-history.js +17 -7
  85. package/esm/editor/interactions/select-highlight.js +5 -9
  86. package/esm/editor/interactions/zoom-wheel.d.ts +3 -0
  87. package/esm/editor/interactions/zoom-wheel.js +46 -22
  88. package/esm/editor/managers/command.js +45 -27
  89. package/esm/editor/managers/interaction.js +46 -33
  90. package/esm/editor/managers/state.js +9 -3
  91. package/esm/editor/plugins/edit-bar/components/color-picker.js +9 -6
  92. package/esm/editor/plugins/edit-bar/components/popover.js +15 -12
  93. package/esm/editor/plugins/edit-bar/components/select.js +10 -8
  94. package/esm/editor/plugins/edit-bar/edit-bar.js +7 -25
  95. package/esm/editor/plugins/edit-bar/edit-items/align-elements.js +5 -3
  96. package/esm/editor/plugins/edit-bar/edit-items/font-align.js +1 -1
  97. package/esm/editor/plugins/edit-bar/edit-items/font-color.js +2 -2
  98. package/esm/editor/plugins/edit-bar/edit-items/icon-color.js +2 -2
  99. package/esm/editor/plugins/resize-element.js +6 -4
  100. package/esm/editor/utils/click-handler.js +6 -3
  101. package/esm/editor/utils/coordinate.js +2 -1
  102. package/esm/editor/utils/element.js +2 -1
  103. package/esm/editor/utils/event.js +2 -1
  104. package/esm/editor/utils/extension.js +1 -1
  105. package/esm/editor/utils/hotkey.js +2 -1
  106. package/esm/exporter/font.js +106 -90
  107. package/esm/exporter/png.js +49 -37
  108. package/esm/exporter/svg.js +55 -38
  109. package/esm/jsx/components/Ellipse.js +5 -4
  110. package/esm/jsx/components/Path.js +2 -4
  111. package/esm/jsx/components/Polygon.js +15 -6
  112. package/esm/jsx/components/Text.js +21 -41
  113. package/esm/jsx/renderer.js +15 -7
  114. package/esm/jsx/utils/bounds.js +18 -16
  115. package/esm/jsx/utils/children.js +2 -1
  116. package/esm/jsx/utils/clone.js +13 -2
  117. package/esm/jsx/utils/element.js +2 -1
  118. package/esm/options/parser.js +45 -46
  119. package/esm/renderer/composites/background.js +3 -2
  120. package/esm/renderer/composites/icon.js +14 -19
  121. package/esm/renderer/composites/illus.js +17 -22
  122. package/esm/renderer/composites/shape.js +4 -2
  123. package/esm/renderer/composites/svg.js +2 -1
  124. package/esm/renderer/composites/text.js +5 -3
  125. package/esm/renderer/fonts/loader.js +4 -3
  126. package/esm/renderer/fonts/registry.js +1 -1
  127. package/esm/renderer/palettes/utils.js +3 -2
  128. package/esm/renderer/renderer.js +7 -5
  129. package/esm/renderer/stylize/gradient.js +3 -2
  130. package/esm/renderer/stylize/pattern.js +15 -8
  131. package/esm/renderer/stylize/rough.js +1 -1
  132. package/esm/resource/load-tracker.js +22 -10
  133. package/esm/resource/loader.js +80 -67
  134. package/esm/resource/loaders/image.js +71 -59
  135. package/esm/resource/loaders/remote.js +26 -15
  136. package/esm/resource/loaders/search.js +38 -25
  137. package/esm/resource/utils/parser.js +2 -1
  138. package/esm/runtime/Infographic.js +26 -13
  139. package/esm/runtime/utils.js +5 -8
  140. package/esm/ssr/renderer.js +42 -35
  141. package/esm/syntax/index.js +19 -6
  142. package/esm/syntax/mapper.js +2 -2
  143. package/esm/templates/built-in.js +91 -269
  144. package/esm/templates/chart-pie.d.ts +2 -0
  145. package/esm/templates/chart-pie.js +87 -0
  146. package/esm/templates/hierarchy-mindmap.js +1 -5
  147. package/esm/templates/hierarchy-tree.js +1 -5
  148. package/esm/templates/relation-dagre-flow.js +4 -28
  149. package/esm/themes/generator.js +8 -14
  150. package/esm/utils/fetch.js +48 -35
  151. package/esm/utils/icon.js +1 -4
  152. package/esm/utils/is-browser.js +2 -2
  153. package/esm/utils/measure-text.js +2 -1
  154. package/esm/utils/padding.js +1 -1
  155. package/esm/utils/recognizer.js +2 -1
  156. package/esm/utils/text.js +14 -3
  157. package/esm/utils/viewbox.d.ts +20 -0
  158. package/esm/utils/viewbox.js +10 -0
  159. package/esm/version.d.ts +1 -1
  160. package/esm/version.js +1 -1
  161. package/lib/designs/components/Btn.js +15 -4
  162. package/lib/designs/components/BtnsGroup.js +1 -1
  163. package/lib/designs/components/Illus.js +15 -3
  164. package/lib/designs/components/ItemDesc.js +17 -11
  165. package/lib/designs/components/ItemIcon.js +17 -18
  166. package/lib/designs/components/ItemLabel.js +17 -11
  167. package/lib/designs/components/ItemValue.js +17 -12
  168. package/lib/designs/components/ItemsGroup.js +1 -1
  169. package/lib/designs/components/ShapesGroup.js +1 -1
  170. package/lib/designs/components/Title.js +2 -2
  171. package/lib/designs/decorations/simple-arrow.js +14 -2
  172. package/lib/designs/decorations/triangle.js +14 -2
  173. package/lib/designs/defs/DropShadow.js +13 -2
  174. package/lib/designs/defs/LinearGradient.js +1 -1
  175. package/lib/designs/items/BadgeCard.js +2 -2
  176. package/lib/designs/items/CandyCardLite.js +1 -1
  177. package/lib/designs/items/CapsuleItem.js +3 -3
  178. package/lib/designs/items/CircleNode.js +1 -1
  179. package/lib/designs/items/CircularProgress.js +3 -2
  180. package/lib/designs/items/CompactCard.js +1 -1
  181. package/lib/designs/items/DoneList.js +1 -1
  182. package/lib/designs/items/HorizontalIconArrow.js +2 -2
  183. package/lib/designs/items/HorizontalIconLine.js +2 -2
  184. package/lib/designs/items/IconBadge.js +4 -3
  185. package/lib/designs/items/IndexedCard.js +1 -1
  186. package/lib/designs/items/LCornerCard.js +1 -1
  187. package/lib/designs/items/LetterCard.js +4 -3
  188. package/lib/designs/items/LinedText.js +6 -5
  189. package/lib/designs/items/PillBadge.js +2 -2
  190. package/lib/designs/items/PlainText.js +4 -4
  191. package/lib/designs/items/ProgressCard.js +4 -4
  192. package/lib/designs/items/QuarterCircular.js +1 -1
  193. package/lib/designs/items/QuarterSimpleCard.js +1 -1
  194. package/lib/designs/items/RibbonCard.js +2 -2
  195. package/lib/designs/items/RoundedRectNode.js +2 -2
  196. package/lib/designs/items/SimpleCircleNode.js +1 -1
  197. package/lib/designs/items/SimpleHorizontalArrow.js +2 -2
  198. package/lib/designs/items/SimpleIllusItem.js +1 -1
  199. package/lib/designs/items/SimpleItem.js +3 -3
  200. package/lib/designs/items/SimpleVerticalArrow.js +2 -2
  201. package/lib/designs/items/UnderlineText.js +1 -1
  202. package/lib/designs/items/VerticalIconArrow.js +2 -2
  203. package/lib/designs/layouts/Align.js +22 -15
  204. package/lib/designs/layouts/Flex.js +23 -16
  205. package/lib/designs/structures/chart-bar.js +7 -5
  206. package/lib/designs/structures/chart-column.js +3 -2
  207. package/lib/designs/structures/chart-line.js +7 -5
  208. package/lib/designs/structures/chart-pie.d.ts +25 -0
  209. package/lib/designs/structures/chart-pie.js +186 -25
  210. package/lib/designs/structures/chart-wordcloud.js +5 -14
  211. package/lib/designs/structures/compare-binary-horizontal/dividers/pros-cons-arrow.js +1 -1
  212. package/lib/designs/structures/compare-binary-horizontal/dividers/pros-cons-fold.js +1 -1
  213. package/lib/designs/structures/compare-binary-horizontal/dividers/types.js +2 -1
  214. package/lib/designs/structures/compare-hierarchy-left-right.js +6 -5
  215. package/lib/designs/structures/compare-hierarchy-row.js +3 -2
  216. package/lib/designs/structures/compare-quadrant.js +2 -3
  217. package/lib/designs/structures/hierarchy-mindmap.js +19 -19
  218. package/lib/designs/structures/hierarchy-structure.js +1 -1
  219. package/lib/designs/structures/hierarchy-tree.js +15 -24
  220. package/lib/designs/structures/list-sector.js +5 -6
  221. package/lib/designs/structures/list-zigzag.js +2 -1
  222. package/lib/designs/structures/relation-dagre-flow.js +30 -35
  223. package/lib/designs/structures/relation-network.js +2 -2
  224. package/lib/designs/structures/sequence-funnel.js +1 -1
  225. package/lib/designs/structures/sequence-mountain.js +4 -4
  226. package/lib/designs/structures/sequence-pyramid.js +1 -1
  227. package/lib/designs/structures/sequence-zigzag-steps.js +2 -1
  228. package/lib/designs/utils/color.js +8 -4
  229. package/lib/designs/utils/index.d.ts +1 -0
  230. package/lib/designs/utils/index.js +1 -0
  231. package/lib/designs/utils/item.js +3 -2
  232. package/lib/designs/utils/normalize-percent.d.ts +19 -0
  233. package/lib/designs/utils/normalize-percent.js +35 -0
  234. package/lib/editor/commands/Batch.js +21 -8
  235. package/lib/editor/commands/UpdateElement.js +25 -22
  236. package/lib/editor/commands/UpdateOptions.js +23 -10
  237. package/lib/editor/commands/UpdateText.js +24 -11
  238. package/lib/editor/interactions/brush-select.js +27 -13
  239. package/lib/editor/interactions/click-select.js +13 -3
  240. package/lib/editor/interactions/dblclick-edit-text.js +36 -20
  241. package/lib/editor/interactions/drag-element.js +23 -9
  242. package/lib/editor/interactions/hotkey-history.js +17 -7
  243. package/lib/editor/interactions/select-highlight.js +5 -9
  244. package/lib/editor/interactions/zoom-wheel.d.ts +3 -0
  245. package/lib/editor/interactions/zoom-wheel.js +45 -21
  246. package/lib/editor/managers/command.js +43 -25
  247. package/lib/editor/managers/interaction.js +46 -33
  248. package/lib/editor/managers/state.js +9 -3
  249. package/lib/editor/plugins/edit-bar/components/color-picker.js +9 -6
  250. package/lib/editor/plugins/edit-bar/components/popover.js +15 -12
  251. package/lib/editor/plugins/edit-bar/components/select.js +10 -8
  252. package/lib/editor/plugins/edit-bar/edit-bar.js +7 -25
  253. package/lib/editor/plugins/edit-bar/edit-items/align-elements.js +5 -3
  254. package/lib/editor/plugins/edit-bar/edit-items/font-align.js +1 -1
  255. package/lib/editor/plugins/edit-bar/edit-items/font-color.js +2 -2
  256. package/lib/editor/plugins/edit-bar/edit-items/icon-color.js +2 -2
  257. package/lib/editor/plugins/resize-element.js +6 -4
  258. package/lib/editor/utils/click-handler.js +6 -3
  259. package/lib/editor/utils/coordinate.js +2 -1
  260. package/lib/editor/utils/element.js +2 -1
  261. package/lib/editor/utils/event.js +2 -1
  262. package/lib/editor/utils/extension.js +1 -1
  263. package/lib/editor/utils/hotkey.js +2 -1
  264. package/lib/exporter/font.js +106 -90
  265. package/lib/exporter/png.js +49 -37
  266. package/lib/exporter/svg.js +55 -38
  267. package/lib/jsx/components/Ellipse.js +5 -4
  268. package/lib/jsx/components/Path.js +2 -4
  269. package/lib/jsx/components/Polygon.js +15 -6
  270. package/lib/jsx/components/Text.js +21 -41
  271. package/lib/jsx/renderer.js +15 -7
  272. package/lib/jsx/utils/bounds.js +18 -16
  273. package/lib/jsx/utils/children.js +2 -1
  274. package/lib/jsx/utils/clone.js +13 -2
  275. package/lib/jsx/utils/element.js +2 -1
  276. package/lib/options/parser.js +45 -46
  277. package/lib/renderer/composites/background.js +3 -2
  278. package/lib/renderer/composites/icon.js +14 -19
  279. package/lib/renderer/composites/illus.js +17 -22
  280. package/lib/renderer/composites/shape.js +4 -2
  281. package/lib/renderer/composites/svg.js +2 -1
  282. package/lib/renderer/composites/text.js +5 -3
  283. package/lib/renderer/fonts/loader.js +4 -3
  284. package/lib/renderer/fonts/registry.js +1 -1
  285. package/lib/renderer/palettes/utils.js +3 -2
  286. package/lib/renderer/renderer.js +7 -5
  287. package/lib/renderer/stylize/gradient.js +3 -2
  288. package/lib/renderer/stylize/pattern.js +15 -8
  289. package/lib/renderer/stylize/rough.js +1 -1
  290. package/lib/resource/load-tracker.js +22 -10
  291. package/lib/resource/loader.js +80 -67
  292. package/lib/resource/loaders/image.js +71 -59
  293. package/lib/resource/loaders/remote.js +26 -15
  294. package/lib/resource/loaders/search.js +38 -25
  295. package/lib/resource/utils/parser.js +2 -1
  296. package/lib/runtime/Infographic.js +26 -13
  297. package/lib/runtime/utils.js +5 -8
  298. package/lib/ssr/renderer.js +42 -35
  299. package/lib/syntax/index.js +19 -6
  300. package/lib/syntax/mapper.js +2 -2
  301. package/lib/templates/built-in.js +91 -269
  302. package/lib/templates/chart-pie.d.ts +2 -0
  303. package/lib/templates/chart-pie.js +90 -0
  304. package/lib/templates/hierarchy-mindmap.js +1 -5
  305. package/lib/templates/hierarchy-tree.js +1 -5
  306. package/lib/templates/relation-dagre-flow.js +4 -28
  307. package/lib/themes/generator.js +8 -14
  308. package/lib/utils/fetch.js +48 -35
  309. package/lib/utils/icon.js +1 -4
  310. package/lib/utils/is-browser.js +2 -2
  311. package/lib/utils/measure-text.js +2 -1
  312. package/lib/utils/padding.js +1 -1
  313. package/lib/utils/recognizer.js +2 -1
  314. package/lib/utils/text.js +14 -3
  315. package/lib/utils/viewbox.d.ts +20 -0
  316. package/lib/utils/viewbox.js +12 -0
  317. package/lib/version.d.ts +1 -1
  318. package/lib/version.js +1 -1
  319. package/package.json +1 -2
  320. package/src/designs/structures/chart-pie.tsx +259 -26
  321. package/src/designs/utils/index.ts +1 -0
  322. package/src/designs/utils/normalize-percent.ts +33 -0
  323. package/src/editor/interactions/zoom-wheel.ts +64 -22
  324. package/src/editor/managers/state.ts +10 -5
  325. package/src/templates/built-in.ts +2 -81
  326. package/src/templates/chart-pie.ts +89 -0
  327. package/src/utils/viewbox.ts +23 -0
  328. package/src/version.ts +1 -1
@@ -31,9 +31,10 @@ export const HierarchyTree = (props) => {
31
31
  let nextGroupColorIndex = 0;
32
32
  // 内置工具方法:数据预处理
33
33
  const normalizeItems = (items) => {
34
+ var _a;
34
35
  const list = [...items];
35
- if (!list[0]?.children) {
36
- list[0] = { ...list[0], children: list.slice(1) };
36
+ if (!((_a = list[0]) === null || _a === void 0 ? void 0 : _a.children)) {
37
+ list[0] = Object.assign(Object.assign({}, list[0]), { children: list.slice(1) });
37
38
  list.splice(1);
38
39
  }
39
40
  return list;
@@ -87,34 +88,22 @@ export const HierarchyTree = (props) => {
87
88
  };
88
89
  // 内置工具方法:构建层级数据
89
90
  const buildHierarchyData = (list) => {
91
+ var _a;
90
92
  if (!list.length)
91
93
  return null;
92
94
  const rootItem = list[0];
93
95
  const buildNode = (node, parentIndexes = [], idx = 0) => {
96
+ var _a, _b;
94
97
  const indexes = [...parentIndexes, idx];
95
- return {
96
- ...node,
97
- _originalIndex: indexes,
98
- _depth: indexes.length - 1,
99
- children: node.children?.map((c, i) => buildNode(c, indexes, i)) ??
100
- [],
101
- };
98
+ return Object.assign(Object.assign({}, node), { _originalIndex: indexes, _depth: indexes.length - 1, children: (_b = (_a = node.children) === null || _a === void 0 ? void 0 : _a.map((c, i) => buildNode(c, indexes, i))) !== null && _b !== void 0 ? _b : [] });
102
99
  };
103
- return rootItem.children?.length
100
+ return ((_a = rootItem.children) === null || _a === void 0 ? void 0 : _a.length)
104
101
  ? buildNode(rootItem)
105
- : {
106
- ...rootItem,
107
- _originalIndex: [0],
108
- _depth: 0,
109
- children: list.slice(1).map((child, i) => ({
110
- ...child,
111
- _originalIndex: [i + 1],
112
- _depth: 1,
113
- })),
114
- };
102
+ : Object.assign(Object.assign({}, rootItem), { _originalIndex: [0], _depth: 0, children: list.slice(1).map((child, i) => (Object.assign(Object.assign({}, child), { _originalIndex: [i + 1], _depth: 1 }))) });
115
103
  };
116
104
  // 内置工具方法:计算各层节点边界
117
105
  const computeLevelBounds = (rootNode) => {
106
+ var _a, _b;
118
107
  let maxWidth = 0, maxHeight = 0;
119
108
  const levelBounds = new Map();
120
109
  const sampleDatumByLevel = new Map();
@@ -126,8 +115,8 @@ export const HierarchyTree = (props) => {
126
115
  });
127
116
  for (let level = 0; level < rootNode.height + 1; level++) {
128
117
  const ItemComponent = getItemComponent(Items, level);
129
- const sampleDatum = sampleDatumByLevel.get(level) ?? {};
130
- const indexes = sampleDatum._originalIndex ?? Array(level + 1).fill(0);
118
+ const sampleDatum = (_a = sampleDatumByLevel.get(level)) !== null && _a !== void 0 ? _a : {};
119
+ const indexes = (_b = sampleDatum._originalIndex) !== null && _b !== void 0 ? _b : Array(level + 1).fill(0);
131
120
  const bounds = getElementBounds(_jsx(ItemComponent, { indexes: indexes, data: data, datum: sampleDatum, positionH: "center" }));
132
121
  levelBounds.set(level, bounds);
133
122
  maxWidth = Math.max(maxWidth, bounds.width);
@@ -136,8 +125,9 @@ export const HierarchyTree = (props) => {
136
125
  return { levelBounds, maxWidth, maxHeight };
137
126
  };
138
127
  const getNodeColorIndexes = (nodeData, depth) => {
128
+ var _a;
139
129
  if (colorMode === 'group') {
140
- const groupKey = String(nodeData?.group ?? '');
130
+ const groupKey = String((_a = nodeData === null || nodeData === void 0 ? void 0 : nodeData.group) !== null && _a !== void 0 ? _a : '');
141
131
  let groupIndex = groupColorIndexMap.get(groupKey);
142
132
  if (groupIndex == null) {
143
133
  groupIndex = nextGroupColorIndex;
@@ -344,10 +334,11 @@ export const HierarchyTree = (props) => {
344
334
  const renderSiblingBtns = (nodes, btnBounds, offsets) => {
345
335
  const nodesByParent = new Map();
346
336
  nodes.forEach((node) => {
337
+ var _a;
347
338
  const key = node.parent
348
339
  ? node.parent.data._originalIndex.join('-')
349
340
  : 'root';
350
- (nodesByParent.get(key) ?? nodesByParent.set(key, []).get(key)).push(node);
341
+ ((_a = nodesByParent.get(key)) !== null && _a !== void 0 ? _a : nodesByParent.set(key, []).get(key)).push(node);
351
342
  });
352
343
  const btns = [];
353
344
  nodesByParent.forEach((siblings) => {
@@ -22,6 +22,7 @@ export const ListSector = (props) => {
22
22
  const totalUsableAngle = totalAngle - totalGapAngle;
23
23
  const anglePerSector = items.length > 0 ? totalUsableAngle / items.length : 0;
24
24
  items.forEach((item, index) => {
25
+ var _a;
25
26
  const indexes = [index];
26
27
  const currentStartAngle = startAngle + (anglePerSector + gapAngle) * index;
27
28
  const currentEndAngle = currentStartAngle + anglePerSector;
@@ -65,12 +66,10 @@ export const ListSector = (props) => {
65
66
  const itemBounds = getElementBounds(_jsx(Item, { indexes: [0], data: data, datum: items[0], positionH: "center", width: maxWidth, height: maxHeight }));
66
67
  const itemX = centerX + midRadius * Math.cos(midAngleRad) - itemBounds.width / 2;
67
68
  const itemY = centerY + midRadius * Math.sin(midAngleRad) - itemBounds.height / 2;
68
- itemElements.push(_jsx(Item, { indexes: indexes, datum: item, data: data, x: itemX, y: itemY, positionH: "center", width: maxWidth, height: maxHeight, themeColors: {
69
- ...getThemeColors({
70
- colorBg: getPaletteColor(options, indexes),
71
- colorPrimary: options.themeConfig?.colorBg || 'white',
72
- }),
73
- } }));
69
+ itemElements.push(_jsx(Item, { indexes: indexes, datum: item, data: data, x: itemX, y: itemY, positionH: "center", width: maxWidth, height: maxHeight, themeColors: Object.assign({}, getThemeColors({
70
+ colorBg: getPaletteColor(options, indexes),
71
+ colorPrimary: ((_a = options.themeConfig) === null || _a === void 0 ? void 0 : _a.colorBg) || 'white',
72
+ })) }));
74
73
  const btnRemoveRadius = outerRadius + 10;
75
74
  const btnRemoveX = centerX + btnRemoveRadius * Math.cos(midAngleRad) - btnBounds.width / 2;
76
75
  const btnRemoveY = centerY + btnRemoveRadius * Math.sin(midAngleRad) - btnBounds.height / 2;
@@ -135,6 +135,7 @@ const getUnitVector = (from, to) => {
135
135
  const createListZigzag = (config) => {
136
136
  const { presetRatios, arrowHeight, Arrow } = config;
137
137
  const ListZigzag = (props) => {
138
+ var _a;
138
139
  const { Title, Item, data, options, itemGap = 24 } = props;
139
140
  const { title, desc, items = [] } = data;
140
141
  const layoutCount = Math.min(items.length, MAX_ITEMS);
@@ -145,7 +146,7 @@ const createListZigzag = (config) => {
145
146
  const colorShadow = themeColors.colorTextSecondary || '#737373';
146
147
  const btnBounds = getElementBounds(_jsx(BtnAdd, { indexes: [0] }));
147
148
  if (items.length === 0) {
148
- const anchor = getPresetPoints(1, presetRatios, arrowHeight)?.[0];
149
+ const anchor = (_a = getPresetPoints(1, presetRatios, arrowHeight)) === null || _a === void 0 ? void 0 : _a[0];
149
150
  if (!anchor) {
150
151
  return (_jsxs(FlexLayout, { id: "infographic-container", flexDirection: "column", justifyContent: "center", alignItems: "center", children: [titleContent, _jsx(Group, { children: _jsx(Arrow, { colorPrimary: colorPrimary, colorShadow: colorShadow }) })] }));
151
152
  }
@@ -11,13 +11,14 @@ const DEFAULT_EDGE_SEP = 10;
11
11
  const DEFAULT_EDGE_WIDTH = 2;
12
12
  const DEFAULT_PADDING = 30;
13
13
  const checkUndirectedCycle = (nodeIds, edges) => {
14
+ var _a, _b;
14
15
  const adj = new Map();
15
16
  nodeIds.forEach((id) => adj.set(id, []));
16
17
  for (const edge of edges) {
17
18
  if (edge.source === edge.target)
18
19
  return true;
19
- adj.get(edge.source)?.push({ target: edge.target, edgeId: edge.id });
20
- adj.get(edge.target)?.push({ target: edge.source, edgeId: edge.id });
20
+ (_a = adj.get(edge.source)) === null || _a === void 0 ? void 0 : _a.push({ target: edge.target, edgeId: edge.id });
21
+ (_b = adj.get(edge.target)) === null || _b === void 0 ? void 0 : _b.push({ target: edge.source, edgeId: edge.id });
21
22
  }
22
23
  const visited = new Set();
23
24
  const dfs = (u, parentEdgeId) => {
@@ -42,6 +43,7 @@ const checkUndirectedCycle = (nodeIds, edges) => {
42
43
  return false;
43
44
  };
44
45
  export const RelationDagreFlow = (props) => {
46
+ var _a, _b;
45
47
  const { Title, Item, data, rankdir = 'TB', nodesep = DEFAULT_NODE_SEP, ranksep = DEFAULT_RANK_SEP, edgesep = DEFAULT_EDGE_SEP, edgeWidth = DEFAULT_EDGE_WIDTH, showConnections = true, edgeColorMode = 'gradient', edgeStyle = 'solid', edgeDashPattern = '5,5', edgeCornerRadius = 12, edgeRouting = 'orth', showArrow = true, arrowType = 'triangle', padding = DEFAULT_PADDING, edgeAnimation = 'none', edgeAnimationSpeed = 1, options, } = props;
46
48
  const { title, desc, items = [], relations = [] } = data;
47
49
  const titleContent = Title ? _jsx(Title, { title: title, desc: desc }) : null;
@@ -56,11 +58,12 @@ export const RelationDagreFlow = (props) => {
56
58
  const colorGroupIndexMap = new Map();
57
59
  let nextColorGroupIndex = 0;
58
60
  const nodes = items.map((item, index) => {
61
+ var _a, _b;
59
62
  const datum = item;
60
- const id = String(datum.id ?? index);
63
+ const id = String((_a = datum.id) !== null && _a !== void 0 ? _a : index);
61
64
  const indexes = [index];
62
65
  let primary;
63
- const groupKey = String(datum.group ?? '');
66
+ const groupKey = String((_b = datum.group) !== null && _b !== void 0 ? _b : '');
64
67
  if (groupKey) {
65
68
  let groupIndex = colorGroupIndexMap.get(groupKey);
66
69
  if (groupIndex == null) {
@@ -123,7 +126,8 @@ export const RelationDagreFlow = (props) => {
123
126
  edgesep,
124
127
  controlPoints: true,
125
128
  nodeSize: (node) => {
126
- const id = String(node.id ?? '');
129
+ var _a;
130
+ const id = String((_a = node.id) !== null && _a !== void 0 ? _a : '');
127
131
  const bounds = nodeSizeMap.get(id);
128
132
  return bounds ? [bounds.width, bounds.height] : [0, 0];
129
133
  },
@@ -131,24 +135,20 @@ export const RelationDagreFlow = (props) => {
131
135
  layout.execute({ nodes, edges });
132
136
  const nodeLayouts = [];
133
137
  layout.forEachNode((node) => {
138
+ var _a, _b, _c, _d;
134
139
  const id = String(node.id);
135
140
  const meta = nodeMetaMap.get(id);
136
141
  if (!meta)
137
142
  return;
138
143
  const bounds = nodeSizeMap.get(id);
139
- const width = bounds?.width ?? 0;
140
- const height = bounds?.height ?? 0;
141
- const x = (node.x ?? 0) - width / 2;
142
- const y = (node.y ?? 0) - height / 2;
143
- nodeLayouts.push({
144
- ...meta,
145
- x,
144
+ const width = (_a = bounds === null || bounds === void 0 ? void 0 : bounds.width) !== null && _a !== void 0 ? _a : 0;
145
+ const height = (_b = bounds === null || bounds === void 0 ? void 0 : bounds.height) !== null && _b !== void 0 ? _b : 0;
146
+ const x = ((_c = node.x) !== null && _c !== void 0 ? _c : 0) - width / 2;
147
+ const y = ((_d = node.y) !== null && _d !== void 0 ? _d : 0) - height / 2;
148
+ nodeLayouts.push(Object.assign(Object.assign({}, meta), { x,
146
149
  y,
147
150
  width,
148
- height,
149
- centerX: x + width / 2,
150
- centerY: y + height / 2,
151
- });
151
+ height, centerX: x + width / 2, centerY: y + height / 2 }));
152
152
  });
153
153
  if (nodeLayouts.length === 0) {
154
154
  return (_jsxs(FlexLayout, { id: "infographic-container", flexDirection: "column", justifyContent: "center", alignItems: "center", children: [titleContent, _jsx(Group, { children: _jsx(BtnAdd, { indexes: [0], x: 0, y: 0 }) })] }));
@@ -165,21 +165,15 @@ export const RelationDagreFlow = (props) => {
165
165
  const positionH = rankdir === 'LR' ? 'normal' : rankdir === 'RL' ? 'flipped' : 'center';
166
166
  const positionV = rankdir === 'TB' ? 'normal' : rankdir === 'BT' ? 'flipped' : 'middle';
167
167
  itemElements.push(_jsx(Item, { indexes: node.indexes, datum: node.datum, data: data, x: displayX, y: displayY, positionH: positionH, positionV: positionV, themeColors: node.themeColors }));
168
- nodeLayoutById.set(node.id, {
169
- ...node,
170
- x: displayX,
171
- y: displayY,
172
- centerX: displayX + node.width / 2,
173
- centerY: displayY + node.height / 2,
174
- });
168
+ nodeLayoutById.set(node.id, Object.assign(Object.assign({}, node), { x: displayX, y: displayY, centerX: displayX + node.width / 2, centerY: displayY + node.height / 2 }));
175
169
  });
176
170
  const defsElements = [];
177
171
  const decorElements = [];
178
172
  if (showConnections) {
179
173
  const defaultStroke = getColorPrimary(options);
180
174
  const themeColors = getThemeColors(options.themeConfig, options);
181
- const labelBackground = themeColors?.colorBg ?? '#ffffff';
182
- const labelTextColor = themeColors?.colorText ?? defaultStroke;
175
+ const labelBackground = (_a = themeColors === null || themeColors === void 0 ? void 0 : themeColors.colorBg) !== null && _a !== void 0 ? _a : '#ffffff';
176
+ const labelTextColor = (_b = themeColors === null || themeColors === void 0 ? void 0 : themeColors.colorText) !== null && _b !== void 0 ? _b : defaultStroke;
183
177
  const arrowSize = Math.max(10, edgeWidth * 4);
184
178
  const isVertical = rankdir === 'TB' || rankdir === 'BT';
185
179
  const enableAnimation = edgeAnimation === 'ant-line';
@@ -381,6 +375,7 @@ export const RelationDagreFlow = (props) => {
381
375
  };
382
376
  };
383
377
  layout.forEachEdge((edge) => {
378
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
384
379
  const normalizePoints = (rawPoints) => {
385
380
  if (!Array.isArray(rawPoints))
386
381
  return [];
@@ -411,7 +406,7 @@ export const RelationDagreFlow = (props) => {
411
406
  : null;
412
407
  const normalized = useOrthRouting ? [] : normalizePoints(edge.points);
413
408
  const points = useOrthRouting
414
- ? (orthEdge?.points ?? [])
409
+ ? ((_a = orthEdge === null || orthEdge === void 0 ? void 0 : orthEdge.points) !== null && _a !== void 0 ? _a : [])
415
410
  : normalized.length
416
411
  ? normalized
417
412
  : fallbackPoints();
@@ -420,14 +415,14 @@ export const RelationDagreFlow = (props) => {
420
415
  const pointsOffsetX = useOrthRouting ? 0 : offsetX;
421
416
  const pointsOffsetY = useOrthRouting ? 0 : offsetY;
422
417
  const startPoint = useOrthRouting
423
- ? (orthEdge?.start ?? points[0])
418
+ ? ((_b = orthEdge === null || orthEdge === void 0 ? void 0 : orthEdge.start) !== null && _b !== void 0 ? _b : points[0])
424
419
  : points[0];
425
420
  const endPoint = useOrthRouting
426
- ? (orthEdge?.end ?? points[points.length - 1])
421
+ ? ((_c = orthEdge === null || orthEdge === void 0 ? void 0 : orthEdge.end) !== null && _c !== void 0 ? _c : points[points.length - 1])
427
422
  : points[points.length - 1];
428
- const relation = edge._original?.relation;
429
- const sourceColor = nodeColorMap.get(String(edge.source)) ?? defaultStroke;
430
- const targetColor = nodeColorMap.get(String(edge.target)) ?? defaultStroke;
423
+ const relation = (_d = edge._original) === null || _d === void 0 ? void 0 : _d.relation;
424
+ const sourceColor = (_e = nodeColorMap.get(String(edge.source))) !== null && _e !== void 0 ? _e : defaultStroke;
425
+ const targetColor = (_f = nodeColorMap.get(String(edge.target))) !== null && _f !== void 0 ? _f : defaultStroke;
431
426
  const gradientKey = `edge-gradient-${String(sourceColor)}-${String(targetColor)}`.replace(/[^a-zA-Z0-9_-]/g, '');
432
427
  const edgeStroke = edgeColorMode === 'gradient' ? `url(#${gradientKey})` : defaultStroke;
433
428
  let pathD = '';
@@ -446,7 +441,7 @@ export const RelationDagreFlow = (props) => {
446
441
  const end = endPoint;
447
442
  defsElements.push(_jsxs("linearGradient", { id: gradientKey, gradientUnits: "userSpaceOnUse", x1: start[0] + pointsOffsetX, y1: start[1] + pointsOffsetY, x2: end[0] + pointsOffsetX, y2: end[1] + pointsOffsetY, children: [_jsx("stop", { offset: "0%", stopColor: sourceColor }), _jsx("stop", { offset: "100%", stopColor: targetColor })] }));
448
443
  }
449
- if (relation?.label) {
444
+ if (relation === null || relation === void 0 ? void 0 : relation.label) {
450
445
  let labelPoint = null;
451
446
  const midPoint = getMidPoint(points);
452
447
  if (midPoint) {
@@ -463,9 +458,9 @@ export const RelationDagreFlow = (props) => {
463
458
  decorElements.push(_jsx(Text, { x: labelX, y: labelY, width: labelBounds.width, height: labelBounds.height, fontSize: 14, fontWeight: "normal", alignHorizontal: "center", alignVertical: "middle", fill: labelTextColor, backgroundColor: labelBackground, children: labelText }));
464
459
  }
465
460
  }
466
- const effectiveShowArrow = relation?.showArrow ?? showArrow;
467
- const direction = relation?.direction ?? 'forward';
468
- const edgeArrowType = relation?.arrowType ?? arrowType;
461
+ const effectiveShowArrow = (_g = relation === null || relation === void 0 ? void 0 : relation.showArrow) !== null && _g !== void 0 ? _g : showArrow;
462
+ const direction = (_h = relation === null || relation === void 0 ? void 0 : relation.direction) !== null && _h !== void 0 ? _h : 'forward';
463
+ const edgeArrowType = (_j = relation === null || relation === void 0 ? void 0 : relation.arrowType) !== null && _j !== void 0 ? _j : arrowType;
469
464
  const lastIndex = points.length - 1;
470
465
  if (effectiveShowArrow && points.length > 1) {
471
466
  if (direction === 'forward' || direction === 'both') {
@@ -42,8 +42,8 @@ export const RelationNetwork = (props) => {
42
42
  }
43
43
  const { nodes, links } = runForceLayout();
44
44
  /** --- 偏移 --- */
45
- const minX = Math.min(...nodes.map((d) => d.x ?? 0));
46
- const minY = Math.min(...nodes.map((d) => d.y ?? 0));
45
+ const minX = Math.min(...nodes.map((d) => { var _a; return (_a = d.x) !== null && _a !== void 0 ? _a : 0; }));
46
+ const minY = Math.min(...nodes.map((d) => { var _a; return (_a = d.y) !== null && _a !== void 0 ? _a : 0; }));
47
47
  const offsetX = Math.max(0, -minX + itemBounds.width / 2);
48
48
  const offsetY = Math.max(0, -minY + itemBounds.height / 2);
49
49
  const positionBy = (x, y) => ({
@@ -28,7 +28,7 @@ export const SequenceFunnel = (props) => {
28
28
  }
29
29
  const themeColors = getThemeColors(options.themeConfig);
30
30
  // 计算各区域尺寸
31
- const actualFunnelWidth = funnelWidth ?? width * 0.55; // 稍微调窄一点漏斗,给右侧留更多空间
31
+ const actualFunnelWidth = funnelWidth !== null && funnelWidth !== void 0 ? funnelWidth : width * 0.55; // 稍微调窄一点漏斗,给右侧留更多空间
32
32
  const itemAreaWidth = width - actualFunnelWidth;
33
33
  // 漏斗层高度
34
34
  const funnelLayerHeight = itemHeight * FUNNEL_LAYER_HEIGHT_RATIO;
@@ -96,7 +96,7 @@ function Mountain(props) {
96
96
  centerBottom,
97
97
  ];
98
98
  const toPointsString = (points) => points.map((p) => `${p.x},${p.y}`).join(' ');
99
- return (_jsxs(ShapesGroup, { ...props, children: [_jsx("polygon", { points: toPointsString(leftTopShape), fill: leftTopColor }), _jsx("polygon", { points: toPointsString(rightTopShape), fill: rightTopColor }), _jsx("polygon", { points: toPointsString(leftBottomShape), fill: leftBottomColor }), _jsx("polygon", { points: toPointsString(rightBottomShape), fill: rightBottomColor })] }));
99
+ return (_jsxs(ShapesGroup, Object.assign({}, props, { children: [_jsx("polygon", { points: toPointsString(leftTopShape), fill: leftTopColor }), _jsx("polygon", { points: toPointsString(rightTopShape), fill: rightTopColor }), _jsx("polygon", { points: toPointsString(leftBottomShape), fill: leftBottomColor }), _jsx("polygon", { points: toPointsString(rightBottomShape), fill: rightBottomColor })] })));
100
100
  }
101
101
  function Tree(size) {
102
102
  const heightMap = {
@@ -135,13 +135,13 @@ function Sun(props) {
135
135
  const angle = (360 / rayCount) * i;
136
136
  return (_jsx("rect", { x: rayX, y: rayY, width: rayWidth, height: rayHeight, rx: cornerRadius, ry: cornerRadius, fill: "#FFCB0E", transform: `rotate(${angle}, ${centerX}, ${centerY})` }));
137
137
  });
138
- return (_jsxs(ShapesGroup, { ...props, children: [_jsx("circle", { cx: centerX, cy: centerY, r: radius, fill: "#FFCB0E" }), ...rays] }));
138
+ return (_jsxs(ShapesGroup, Object.assign({}, props, { children: [_jsx("circle", { cx: centerX, cy: centerY, r: radius, fill: "#FFCB0E" }), ...rays] })));
139
139
  }
140
140
  function Cloud(props) {
141
141
  if (props.type === 'single') {
142
- return (_jsx(ShapesGroup, { ...props, width: 54, height: 36, children: _jsx("path", { d: "M10.2635 13.3806C11.0019 9.99045 12.7381 6.91002 15.2405 4.55004C17.743 2.19007 20.8929 0.662716 24.2701 0.171643C27.6473 -0.31943 31.0914 0.24912 34.143 1.80148C37.1946 3.35385 39.7087 5.81625 41.3501 8.86031C44.8835 9.0468 48.1994 10.6544 50.5684 13.3294C52.9373 16.0044 54.1653 19.5277 53.9821 23.1242C53.7989 26.7207 52.2195 30.0959 49.5914 32.5071C46.9634 34.9184 43.5019 36.1683 39.9684 35.9818H11.1517C4.93436 35.9818 0 30.9593 0 24.6309C0.0598447 21.8016 1.13799 19.093 3.02989 17.0192C4.9218 14.9454 7.49584 13.6506 10.2635 13.3806Z", fill: "#70CAF8" }) }));
142
+ return (_jsx(ShapesGroup, Object.assign({}, props, { width: 54, height: 36, children: _jsx("path", { d: "M10.2635 13.3806C11.0019 9.99045 12.7381 6.91002 15.2405 4.55004C17.743 2.19007 20.8929 0.662716 24.2701 0.171643C27.6473 -0.31943 31.0914 0.24912 34.143 1.80148C37.1946 3.35385 39.7087 5.81625 41.3501 8.86031C44.8835 9.0468 48.1994 10.6544 50.5684 13.3294C52.9373 16.0044 54.1653 19.5277 53.9821 23.1242C53.7989 26.7207 52.2195 30.0959 49.5914 32.5071C46.9634 34.9184 43.5019 36.1683 39.9684 35.9818H11.1517C4.93436 35.9818 0 30.9593 0 24.6309C0.0598447 21.8016 1.13799 19.093 3.02989 17.0192C4.9218 14.9454 7.49584 13.6506 10.2635 13.3806Z", fill: "#70CAF8" }) })));
143
143
  }
144
- return (_jsxs(ShapesGroup, { ...props, width: 73, height: 40, children: [_jsx("path", { d: "M61.6461 14.9716C60.8681 11.1875 58.9581 7.73823 56.1763 5.09315C53.3944 2.44806 49.8758 0.735682 46.0992 0.189041C42.3226 -0.357601 38.4714 0.288046 35.0699 2.03812C31.6683 3.7882 28.8815 6.5577 27.0889 9.96971C23.161 10.1687 19.4719 11.9405 16.8333 14.8953C14.1947 17.8502 12.8227 21.746 13.0191 25.7258C13.2155 29.7055 14.9642 33.4433 17.8806 36.1167C20.7969 38.7901 24.642 40.1802 28.5699 39.9812H60.6588C67.5702 39.9812 73.0006 34.4791 73.0006 27.4764C73.0006 20.9739 67.8664 15.4718 61.6461 14.9716Z", fill: "#70CAF8" }), _jsx("path", { d: "M21.9691 6.47136e-09C25.9369 6.47136e-09 29.5264 1.62125 32.0003 4.21094C30.0604 5.7917 28.4423 7.75571 27.2581 10C23.3149 10.1989 19.6111 11.9702 16.9622 14.9238C14.3136 17.8774 12.936 21.772 13.1331 25.75C13.2057 27.2131 13.4902 28.6432 13.9652 30H10.7689C7.96116 29.8907 5.29664 28.7203 3.30402 26.7217C1.31144 24.7231 0.135825 22.0419 0.0110544 19.21C-0.113702 16.378 0.821178 13.6017 2.63019 11.4326C4.43921 9.26356 6.99065 7.8602 9.77766 7.5C11.9582 3.00012 16.6168 8.76701e-05 21.9691 6.47136e-09Z", fill: "#5BA2C6" })] }));
144
+ return (_jsxs(ShapesGroup, Object.assign({}, props, { width: 73, height: 40, children: [_jsx("path", { d: "M61.6461 14.9716C60.8681 11.1875 58.9581 7.73823 56.1763 5.09315C53.3944 2.44806 49.8758 0.735682 46.0992 0.189041C42.3226 -0.357601 38.4714 0.288046 35.0699 2.03812C31.6683 3.7882 28.8815 6.5577 27.0889 9.96971C23.161 10.1687 19.4719 11.9405 16.8333 14.8953C14.1947 17.8502 12.8227 21.746 13.0191 25.7258C13.2155 29.7055 14.9642 33.4433 17.8806 36.1167C20.7969 38.7901 24.642 40.1802 28.5699 39.9812H60.6588C67.5702 39.9812 73.0006 34.4791 73.0006 27.4764C73.0006 20.9739 67.8664 15.4718 61.6461 14.9716Z", fill: "#70CAF8" }), _jsx("path", { d: "M21.9691 6.47136e-09C25.9369 6.47136e-09 29.5264 1.62125 32.0003 4.21094C30.0604 5.7917 28.4423 7.75571 27.2581 10C23.3149 10.1989 19.6111 11.9702 16.9622 14.9238C14.3136 17.8774 12.936 21.772 13.1331 25.75C13.2057 27.2131 13.4902 28.6432 13.9652 30H10.7689C7.96116 29.8907 5.29664 28.7203 3.30402 26.7217C1.31144 24.7231 0.135825 22.0419 0.0110544 19.21C-0.113702 16.378 0.821178 13.6017 2.63019 11.4326C4.43921 9.26356 6.99065 7.8602 9.77766 7.5C11.9582 3.00012 16.6168 8.76701e-05 21.9691 6.47136e-09Z", fill: "#5BA2C6" })] })));
145
145
  }
146
146
  export const SequenceMountain = (props) => {
147
147
  const { Title, Item, data, gap = 20, minHeight = 100, maxHeight = 200, minWidth = 260, maxWidth = 300, options, } = props;
@@ -21,7 +21,7 @@ export const SequencePyramid = (props) => {
21
21
  const backgroundElements = [];
22
22
  const iconElements = [];
23
23
  // Calculate dimensions
24
- const actualPyramidWidth = pyramidWidth ?? width * 0.6;
24
+ const actualPyramidWidth = pyramidWidth !== null && pyramidWidth !== void 0 ? pyramidWidth : width * 0.6;
25
25
  const itemAreaWidth = width - actualPyramidWidth;
26
26
  // Pyramid layer height should be greater than itemHeight
27
27
  const pyramidLayerHeight = itemHeight * 1.2; // Magic number: 20% larger than itemHeight
@@ -23,6 +23,7 @@ const DECO_OFFSET_Y = 40 + W_PATH_W / 2;
23
23
  // 滤镜定义
24
24
  const GlowFilter = (_jsx("filter", { id: "sequence-zigzag-glow-filter", x: "-50%", y: "-50%", width: "200%", height: "200%", children: _jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "15", result: "blur" }) }));
25
25
  export const SequenceZigzagSteps = (props) => {
26
+ var _a;
26
27
  const { Title, Item, data, options, dx = DX, dy = DY, iconSize = 30 } = props;
27
28
  const { title, desc, items = [] } = data;
28
29
  const titleContent = Title ? _jsx(Title, { title: title, desc: desc }) : null;
@@ -115,7 +116,7 @@ export const SequenceZigzagSteps = (props) => {
115
116
  }
116
117
  });
117
118
  if (pathD) {
118
- const finalX = (pathPoints[pathPoints.length - 1]?.x || 0) + offsetX;
119
+ const finalX = (((_a = pathPoints[pathPoints.length - 1]) === null || _a === void 0 ? void 0 : _a.x) || 0) + offsetX;
119
120
  pathElements.push(_jsx(Path, { d: pathD, stroke: "#f3f2f1", strokeWidth: W_PATH_W, fill: "none", width: finalX, height: maxItemY - Math.min(minPathY + offsetY, 0) }));
120
121
  }
121
122
  return (_jsxs(FlexLayout, { id: "infographic-container", flexDirection: "column", justifyContent: "center", alignItems: "center", gap: 30, children: [_jsx(Defs, { children: GlowFilter }), titleContent, _jsxs(Group, { x: 0, y: 0, children: [_jsx(Group, { children: [...pathElements, ...decoElements, ...iconElements] }), _jsx(ItemsGroup, { children: itemElements }), _jsx(BtnsGroup, { children: btnElements })] })] }));
@@ -3,21 +3,25 @@ import { generateThemeColors } from '../../themes/index.js';
3
3
  import { isDarkColor } from '../../utils/index.js';
4
4
  const DEFAULT_COLOR = '#FF356A';
5
5
  export function getColorPrimary(options) {
6
- return options?.themeConfig?.colorPrimary || DEFAULT_COLOR;
6
+ var _a;
7
+ return ((_a = options === null || options === void 0 ? void 0 : options.themeConfig) === null || _a === void 0 ? void 0 : _a.colorPrimary) || DEFAULT_COLOR;
7
8
  }
8
9
  export function getPaletteColors(options) {
10
+ var _a;
9
11
  const { themeConfig = {}, data } = options;
10
12
  const { colorPrimary, palette } = themeConfig;
11
13
  if (!palette || palette.length === 0) {
12
- return Array(data?.items?.length || 1).fill(colorPrimary || DEFAULT_COLOR);
14
+ return Array(((_a = data === null || data === void 0 ? void 0 : data.items) === null || _a === void 0 ? void 0 : _a.length) || 1).fill(colorPrimary || DEFAULT_COLOR);
13
15
  }
14
16
  return data.items.map((_, i) => _getPaletteColor(palette, [i], data.items.length) || DEFAULT_COLOR);
15
17
  }
16
18
  export function getPaletteColor(options, indexes) {
17
- return _getPaletteColor(options?.themeConfig?.palette, indexes, options.data?.items?.length);
19
+ var _a, _b, _c;
20
+ return _getPaletteColor((_a = options === null || options === void 0 ? void 0 : options.themeConfig) === null || _a === void 0 ? void 0 : _a.palette, indexes, (_c = (_b = options.data) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.length);
18
21
  }
19
22
  export function getThemeColors(colors, options) {
20
- const { colorBg = options?.themeConfig?.colorBg || 'white', colorPrimary = options ? getColorPrimary(options) : 'black', } = colors;
23
+ var _a;
24
+ const { colorBg = ((_a = options === null || options === void 0 ? void 0 : options.themeConfig) === null || _a === void 0 ? void 0 : _a.colorBg) || 'white', colorPrimary = options ? getColorPrimary(options) : 'black', } = colors;
21
25
  return generateThemeColors({
22
26
  colorPrimary: colorPrimary,
23
27
  isDarkMode: isDarkColor(colorBg),
@@ -1,3 +1,4 @@
1
1
  export * from './color';
2
2
  export * from './hierarchy-color';
3
3
  export * from './item';
4
+ export * from './normalize-percent';
@@ -1,3 +1,4 @@
1
1
  export * from './color.js';
2
2
  export * from './hierarchy-color.js';
3
3
  export * from './item.js';
4
+ export * from './normalize-percent.js';
@@ -5,7 +5,7 @@
5
5
  * @returns
6
6
  */
7
7
  export function getItemProps(props, extKeys = []) {
8
- const restProps = { ...props };
8
+ const restProps = Object.assign({}, props);
9
9
  const extProps = {};
10
10
  const keys = [
11
11
  'indexes',
@@ -35,9 +35,10 @@ export function getItemProps(props, extKeys = []) {
35
35
  * 针对层级结构,获取当前层级对应的组件
36
36
  */
37
37
  export function getItemComponent(Items, level) {
38
+ var _a;
38
39
  if (Items.length === 0)
39
40
  return () => null;
40
41
  if (level === undefined)
41
42
  return Items[0];
42
- return Items[level] ?? Items[0];
43
+ return (_a = Items[level]) !== null && _a !== void 0 ? _a : Items[0];
43
44
  }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 规范化百分比输入
3
+ *
4
+ * 支持以下格式:
5
+ * - "2%" 或 "2.5%" → 2 或 2.5
6
+ * - 2 或 2.5 (数字直接作为百分比) → 2 或 2.5
7
+ *
8
+ * @param value - 百分比值,可以是数字或带 "%" 的字符串
9
+ * @returns 规范化后的百分比数值
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * normalizePercent("2%"); // 返回 2
14
+ * normalizePercent("2.5%"); // 返回 2.5
15
+ * normalizePercent(2); // 返回 2
16
+ * normalizePercent(2.5); // 返回 2.5
17
+ * ```
18
+ */
19
+ export declare function normalizePercent(value: number | string | undefined): number;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * 规范化百分比输入
3
+ *
4
+ * 支持以下格式:
5
+ * - "2%" 或 "2.5%" → 2 或 2.5
6
+ * - 2 或 2.5 (数字直接作为百分比) → 2 或 2.5
7
+ *
8
+ * @param value - 百分比值,可以是数字或带 "%" 的字符串
9
+ * @returns 规范化后的百分比数值
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * normalizePercent("2%"); // 返回 2
14
+ * normalizePercent("2.5%"); // 返回 2.5
15
+ * normalizePercent(2); // 返回 2
16
+ * normalizePercent(2.5); // 返回 2.5
17
+ * ```
18
+ */
19
+ export function normalizePercent(value) {
20
+ if (value === undefined || value === null)
21
+ return 0;
22
+ // 处理字符串格式 (如 "2%" 或 "2.5%")
23
+ if (typeof value === 'string') {
24
+ const trimmed = value.trim();
25
+ // 移除可能的 '%' 后缀,然后解析
26
+ const numStr = trimmed.endsWith('%') ? trimmed.slice(0, -1) : trimmed;
27
+ const num = parseFloat(numStr);
28
+ return isNaN(num) ? 0 : num;
29
+ }
30
+ // 数字直接作为百分比使用
31
+ return value;
32
+ }
@@ -1,16 +1,29 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  export class BatchCommand {
2
11
  constructor(commands) {
3
12
  this.commands = commands;
4
13
  }
5
- async apply(state) {
6
- for (const command of this.commands) {
7
- await command.apply(state);
8
- }
14
+ apply(state) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ for (const command of this.commands) {
17
+ yield command.apply(state);
18
+ }
19
+ });
9
20
  }
10
- async undo(state) {
11
- for (let i = this.commands.length - 1; i >= 0; i--) {
12
- await this.commands[i].undo(state);
13
- }
21
+ undo(state) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ for (let i = this.commands.length - 1; i >= 0; i--) {
24
+ yield this.commands[i].undo(state);
25
+ }
26
+ });
14
27
  }
15
28
  serialize() {
16
29
  return {
@@ -1,3 +1,12 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  import { getAttributes, getIconAttrs, getIconEntity, getTextElementProps, isEditableText, isIconElement, setAttributes, updateIconElement, updateTextElement, } from '../../utils/index.js';
2
11
  export class UpdateElementCommand {
3
12
  constructor(element, modified, original) {
@@ -6,15 +15,19 @@ export class UpdateElementCommand {
6
15
  const computedOriginal = getOriginalProps(element, modified);
7
16
  this.original = mergeOriginalProps(computedOriginal, original);
8
17
  }
9
- async apply(state) {
10
- updateElement(this.element, this.modified);
11
- state.updateElement(this.element, this.modified);
18
+ apply(state) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ updateElement(this.element, this.modified);
21
+ state.updateElement(this.element, this.modified);
22
+ });
12
23
  }
13
- async undo(state) {
14
- if (this.original) {
15
- updateElement(this.element, this.original);
16
- state.updateElement(this.element, this.original);
17
- }
24
+ undo(state) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ if (this.original) {
27
+ updateElement(this.element, this.original);
28
+ state.updateElement(this.element, this.original);
29
+ }
30
+ });
18
31
  }
19
32
  serialize() {
20
33
  return {
@@ -47,10 +60,7 @@ function getOriginalProps(element, modified) {
47
60
  originalAttributes[key] = attrs[key];
48
61
  });
49
62
  };
50
- const original = {
51
- ...modified,
52
- attributes: originalAttributes,
53
- };
63
+ const original = Object.assign(Object.assign({}, modified), { attributes: originalAttributes });
54
64
  if (isEditableText(element)) {
55
65
  const { attributes } = getTextElementProps(element);
56
66
  assignModifiedAttributes(attributes);
@@ -69,15 +79,8 @@ function mergeOriginalProps(computed, provided) {
69
79
  return provided;
70
80
  if (!provided)
71
81
  return computed;
72
- const mergedAttributes = {
73
- ...(computed.attributes || {}),
74
- ...(provided.attributes || {}),
75
- };
76
- return {
77
- ...computed,
78
- ...provided,
79
- attributes: Object.keys(mergedAttributes).length
82
+ const mergedAttributes = Object.assign(Object.assign({}, (computed.attributes || {})), (provided.attributes || {}));
83
+ return Object.assign(Object.assign(Object.assign({}, computed), provided), { attributes: Object.keys(mergedAttributes).length
80
84
  ? mergedAttributes
81
- : undefined,
82
- };
85
+ : undefined });
83
86
  }