@retikz/core 0.0.1-rc.3 → 0.1.0-alpha.1

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 (427) hide show
  1. package/LICENSE +21 -21
  2. package/dist/es/compile/compile.d.ts +27 -0
  3. package/dist/es/compile/compile.d.ts.map +1 -0
  4. package/dist/es/compile/compile.js +43 -0
  5. package/dist/es/compile/index.d.ts +9 -0
  6. package/dist/es/compile/index.d.ts.map +1 -0
  7. package/dist/es/compile/node.d.ts +76 -0
  8. package/dist/es/compile/node.d.ts.map +1 -0
  9. package/dist/es/compile/node.js +240 -0
  10. package/dist/es/compile/parseTarget.d.ts +25 -0
  11. package/dist/es/compile/parseTarget.d.ts.map +1 -0
  12. package/dist/es/compile/parseTarget.js +48 -0
  13. package/dist/es/compile/path.d.ts +29 -0
  14. package/dist/es/compile/path.d.ts.map +1 -0
  15. package/dist/es/compile/path.js +298 -0
  16. package/dist/es/compile/position.d.ts +9 -0
  17. package/dist/es/compile/position.d.ts.map +1 -0
  18. package/dist/es/compile/position.js +24 -0
  19. package/dist/es/compile/precision.d.ts +5 -0
  20. package/dist/es/compile/precision.d.ts.map +1 -0
  21. package/dist/es/compile/precision.js +8 -0
  22. package/dist/es/compile/text-metrics.d.ts +32 -0
  23. package/dist/es/compile/text-metrics.d.ts.map +1 -0
  24. package/dist/es/compile/text-metrics.js +8 -0
  25. package/dist/es/compile/view-box.d.ts +8 -0
  26. package/dist/es/compile/view-box.d.ts.map +1 -0
  27. package/dist/es/compile/view-box.js +31 -0
  28. package/dist/es/geometry/circle.d.ts +32 -0
  29. package/dist/es/geometry/circle.d.ts.map +1 -0
  30. package/dist/es/geometry/circle.js +79 -0
  31. package/dist/es/geometry/diamond.d.ts +44 -0
  32. package/dist/es/geometry/diamond.d.ts.map +1 -0
  33. package/dist/es/geometry/diamond.js +87 -0
  34. package/dist/es/geometry/ellipse.d.ts +38 -0
  35. package/dist/es/geometry/ellipse.d.ts.map +1 -0
  36. package/dist/es/geometry/ellipse.js +86 -0
  37. package/dist/es/geometry/index.d.ts +7 -0
  38. package/dist/es/geometry/index.d.ts.map +1 -0
  39. package/dist/es/geometry/point.d.ts +25 -0
  40. package/dist/es/geometry/point.d.ts.map +1 -0
  41. package/dist/es/geometry/point.js +34 -0
  42. package/dist/es/geometry/polar.d.ts +44 -0
  43. package/dist/es/geometry/polar.d.ts.map +1 -0
  44. package/dist/es/geometry/polar.js +45 -0
  45. package/dist/es/geometry/rect.d.ts +59 -0
  46. package/dist/es/geometry/rect.d.ts.map +1 -0
  47. package/dist/es/geometry/rect.js +120 -0
  48. package/dist/es/index.d.ts +20 -10
  49. package/dist/es/index.d.ts.map +1 -0
  50. package/dist/es/index.js +18 -12
  51. package/dist/es/ir/index.d.ts +5 -0
  52. package/dist/es/ir/index.d.ts.map +1 -0
  53. package/dist/es/ir/node.d.ts +73 -0
  54. package/dist/es/ir/node.d.ts.map +1 -0
  55. package/dist/es/ir/node.js +41 -0
  56. package/dist/es/ir/path/arrow.d.ts +26 -0
  57. package/dist/es/ir/path/arrow.d.ts.map +1 -0
  58. package/dist/es/ir/path/arrow.js +25 -0
  59. package/dist/es/ir/path/index.d.ts +5 -0
  60. package/dist/es/ir/path/index.d.ts.map +1 -0
  61. package/dist/es/ir/path/path.d.ts +123 -0
  62. package/dist/es/ir/path/path.d.ts.map +1 -0
  63. package/dist/es/ir/path/path.js +22 -0
  64. package/dist/es/ir/path/step.d.ts +116 -0
  65. package/dist/es/ir/path/step.d.ts.map +1 -0
  66. package/dist/es/ir/path/step.js +31 -0
  67. package/dist/es/ir/path/target.d.ts +5 -0
  68. package/dist/es/ir/path/target.d.ts.map +1 -0
  69. package/dist/es/ir/path/target.js +11 -0
  70. package/dist/es/ir/position/index.d.ts +3 -0
  71. package/dist/es/ir/position/index.d.ts.map +1 -0
  72. package/dist/es/ir/position/polar-position.d.ts +9 -0
  73. package/dist/es/ir/position/polar-position.d.ts.map +1 -0
  74. package/dist/es/ir/position/polar-position.js +18 -0
  75. package/dist/es/ir/position/position.d.ts +5 -0
  76. package/dist/es/ir/position/position.d.ts.map +1 -0
  77. package/dist/es/ir/position/position.js +5 -0
  78. package/dist/es/ir/scene.d.ts +424 -0
  79. package/dist/es/ir/scene.d.ts.map +1 -0
  80. package/dist/es/ir/scene.js +14 -0
  81. package/dist/es/parsers/index.d.ts +2 -0
  82. package/dist/es/parsers/index.d.ts.map +1 -0
  83. package/dist/es/parsers/parseWay.d.ts +71 -0
  84. package/dist/es/parsers/parseWay.d.ts.map +1 -0
  85. package/dist/es/parsers/parseWay.js +92 -0
  86. package/dist/es/primitive/ellipse.d.ts +32 -0
  87. package/dist/es/primitive/ellipse.d.ts.map +1 -0
  88. package/dist/es/primitive/group.d.ts +11 -0
  89. package/dist/es/primitive/group.d.ts.map +1 -0
  90. package/dist/es/primitive/index.d.ts +8 -0
  91. package/dist/es/primitive/index.d.ts.map +1 -0
  92. package/dist/es/primitive/path.d.ts +29 -0
  93. package/dist/es/primitive/path.d.ts.map +1 -0
  94. package/dist/es/primitive/rect.d.ts +28 -0
  95. package/dist/es/primitive/rect.d.ts.map +1 -0
  96. package/dist/es/primitive/scene.d.ts +21 -0
  97. package/dist/es/primitive/scene.d.ts.map +1 -0
  98. package/dist/es/primitive/text.d.ts +32 -0
  99. package/dist/es/primitive/text.d.ts.map +1 -0
  100. package/dist/es/primitive/view-box.d.ts +12 -0
  101. package/dist/es/primitive/view-box.d.ts.map +1 -0
  102. package/dist/es/types.d.ts +3 -0
  103. package/dist/es/types.d.ts.map +1 -0
  104. package/dist/lib/compile/compile.cjs +43 -0
  105. package/dist/lib/compile/compile.d.ts +27 -0
  106. package/dist/lib/compile/compile.d.ts.map +1 -0
  107. package/dist/lib/compile/index.d.ts +9 -0
  108. package/dist/lib/compile/index.d.ts.map +1 -0
  109. package/dist/lib/compile/node.cjs +244 -0
  110. package/dist/lib/compile/node.d.ts +76 -0
  111. package/dist/lib/compile/node.d.ts.map +1 -0
  112. package/dist/lib/compile/parseTarget.cjs +48 -0
  113. package/dist/lib/compile/parseTarget.d.ts +25 -0
  114. package/dist/lib/compile/parseTarget.d.ts.map +1 -0
  115. package/dist/lib/compile/path.cjs +298 -0
  116. package/dist/lib/compile/path.d.ts +29 -0
  117. package/dist/lib/compile/path.d.ts.map +1 -0
  118. package/dist/lib/compile/position.cjs +24 -0
  119. package/dist/lib/compile/position.d.ts +9 -0
  120. package/dist/lib/compile/position.d.ts.map +1 -0
  121. package/dist/lib/compile/precision.cjs +8 -0
  122. package/dist/lib/compile/precision.d.ts +5 -0
  123. package/dist/lib/compile/precision.d.ts.map +1 -0
  124. package/dist/lib/compile/text-metrics.cjs +8 -0
  125. package/dist/lib/compile/text-metrics.d.ts +32 -0
  126. package/dist/lib/compile/text-metrics.d.ts.map +1 -0
  127. package/dist/lib/compile/view-box.cjs +31 -0
  128. package/dist/lib/compile/view-box.d.ts +8 -0
  129. package/dist/lib/compile/view-box.d.ts.map +1 -0
  130. package/dist/lib/geometry/circle.cjs +79 -0
  131. package/dist/lib/geometry/circle.d.ts +32 -0
  132. package/dist/lib/geometry/circle.d.ts.map +1 -0
  133. package/dist/lib/geometry/diamond.cjs +87 -0
  134. package/dist/lib/geometry/diamond.d.ts +44 -0
  135. package/dist/lib/geometry/diamond.d.ts.map +1 -0
  136. package/dist/lib/geometry/ellipse.cjs +86 -0
  137. package/dist/lib/geometry/ellipse.d.ts +38 -0
  138. package/dist/lib/geometry/ellipse.d.ts.map +1 -0
  139. package/dist/lib/geometry/index.d.ts +7 -0
  140. package/dist/lib/geometry/index.d.ts.map +1 -0
  141. package/dist/lib/geometry/point.cjs +34 -0
  142. package/dist/lib/geometry/point.d.ts +25 -0
  143. package/dist/lib/geometry/point.d.ts.map +1 -0
  144. package/dist/lib/geometry/polar.cjs +45 -0
  145. package/dist/lib/geometry/polar.d.ts +44 -0
  146. package/dist/lib/geometry/polar.d.ts.map +1 -0
  147. package/dist/lib/geometry/rect.cjs +121 -0
  148. package/dist/lib/geometry/rect.d.ts +59 -0
  149. package/dist/lib/geometry/rect.d.ts.map +1 -0
  150. package/dist/lib/index.cjs +43 -11
  151. package/dist/lib/index.d.ts +20 -10
  152. package/dist/lib/index.d.ts.map +1 -0
  153. package/dist/lib/ir/index.d.ts +5 -0
  154. package/dist/lib/ir/index.d.ts.map +1 -0
  155. package/dist/lib/ir/node.cjs +42 -0
  156. package/dist/lib/ir/node.d.ts +73 -0
  157. package/dist/lib/ir/node.d.ts.map +1 -0
  158. package/dist/lib/ir/path/arrow.cjs +25 -0
  159. package/dist/lib/ir/path/arrow.d.ts +26 -0
  160. package/dist/lib/ir/path/arrow.d.ts.map +1 -0
  161. package/dist/lib/ir/path/index.d.ts +5 -0
  162. package/dist/lib/ir/path/index.d.ts.map +1 -0
  163. package/dist/lib/ir/path/path.cjs +22 -0
  164. package/dist/lib/ir/path/path.d.ts +123 -0
  165. package/dist/lib/ir/path/path.d.ts.map +1 -0
  166. package/dist/lib/ir/path/step.cjs +35 -0
  167. package/dist/lib/ir/path/step.d.ts +116 -0
  168. package/dist/lib/ir/path/step.d.ts.map +1 -0
  169. package/dist/lib/ir/path/target.cjs +11 -0
  170. package/dist/lib/ir/path/target.d.ts +5 -0
  171. package/dist/lib/ir/path/target.d.ts.map +1 -0
  172. package/dist/lib/ir/position/index.d.ts +3 -0
  173. package/dist/lib/ir/position/index.d.ts.map +1 -0
  174. package/dist/lib/ir/position/polar-position.cjs +18 -0
  175. package/dist/lib/ir/position/polar-position.d.ts +9 -0
  176. package/dist/lib/ir/position/polar-position.d.ts.map +1 -0
  177. package/dist/lib/ir/position/position.cjs +5 -0
  178. package/dist/lib/ir/position/position.d.ts +5 -0
  179. package/dist/lib/ir/position/position.d.ts.map +1 -0
  180. package/dist/lib/ir/scene.cjs +16 -0
  181. package/dist/lib/ir/scene.d.ts +424 -0
  182. package/dist/lib/ir/scene.d.ts.map +1 -0
  183. package/dist/lib/parsers/index.d.ts +2 -0
  184. package/dist/lib/parsers/index.d.ts.map +1 -0
  185. package/dist/lib/parsers/parseWay.cjs +93 -0
  186. package/dist/lib/parsers/parseWay.d.ts +71 -0
  187. package/dist/lib/parsers/parseWay.d.ts.map +1 -0
  188. package/dist/lib/primitive/ellipse.d.ts +32 -0
  189. package/dist/lib/primitive/ellipse.d.ts.map +1 -0
  190. package/dist/lib/primitive/group.d.ts +11 -0
  191. package/dist/lib/primitive/group.d.ts.map +1 -0
  192. package/dist/lib/primitive/index.d.ts +8 -0
  193. package/dist/lib/primitive/index.d.ts.map +1 -0
  194. package/dist/lib/primitive/path.d.ts +29 -0
  195. package/dist/lib/primitive/path.d.ts.map +1 -0
  196. package/dist/lib/primitive/rect.d.ts +28 -0
  197. package/dist/lib/primitive/rect.d.ts.map +1 -0
  198. package/dist/lib/primitive/scene.d.ts +21 -0
  199. package/dist/lib/primitive/scene.d.ts.map +1 -0
  200. package/dist/lib/primitive/text.d.ts +32 -0
  201. package/dist/lib/primitive/text.d.ts.map +1 -0
  202. package/dist/lib/primitive/view-box.d.ts +12 -0
  203. package/dist/lib/primitive/view-box.d.ts.map +1 -0
  204. package/dist/lib/types.d.ts +3 -0
  205. package/dist/lib/types.d.ts.map +1 -0
  206. package/package.json +26 -34
  207. package/README.md +0 -2
  208. package/dist/es/components/Scope.d.ts +0 -6
  209. package/dist/es/components/Scope.js +0 -12
  210. package/dist/es/components/TikZ.d.ts +0 -9
  211. package/dist/es/components/TikZ.js +0 -12
  212. package/dist/es/components/draw/Draw.d.ts +0 -26
  213. package/dist/es/components/draw/Draw.js +0 -59
  214. package/dist/es/components/draw/InnerDraw.d.ts +0 -17
  215. package/dist/es/components/draw/InnerDraw.js +0 -52
  216. package/dist/es/components/draw/arrow/circle.d.ts +0 -7
  217. package/dist/es/components/draw/arrow/circle.js +0 -20
  218. package/dist/es/components/draw/arrow/index.d.ts +0 -9
  219. package/dist/es/components/draw/arrow/index.js +0 -13
  220. package/dist/es/components/draw/arrow/stealth.d.ts +0 -7
  221. package/dist/es/components/draw/arrow/stealth.js +0 -29
  222. package/dist/es/components/draw/arrow/types.d.ts +0 -21
  223. package/dist/es/components/draw/common.d.ts +0 -4
  224. package/dist/es/components/draw/common.js +0 -12
  225. package/dist/es/components/draw/index.d.ts +0 -3
  226. package/dist/es/components/draw/index.js +0 -4
  227. package/dist/es/components/draw/segment/Segment.d.ts +0 -12
  228. package/dist/es/components/draw/segment/Segment.js +0 -41
  229. package/dist/es/components/draw/segment/index.d.ts +0 -15
  230. package/dist/es/components/draw/segment/index.js +0 -41
  231. package/dist/es/components/draw/segment/useArrow.d.ts +0 -12
  232. package/dist/es/components/draw/segment/useArrow.js +0 -52
  233. package/dist/es/components/draw/segment/useConvertWay.d.ts +0 -14
  234. package/dist/es/components/draw/segment/useConvertWay.js +0 -117
  235. package/dist/es/components/draw/types.d.ts +0 -29
  236. package/dist/es/components/node/InnerNode.d.ts +0 -33
  237. package/dist/es/components/node/InnerNode.js +0 -88
  238. package/dist/es/components/node/Node.d.ts +0 -93
  239. package/dist/es/components/node/Node.js +0 -88
  240. package/dist/es/components/node/_hooks/useNodeConfig.d.ts +0 -3
  241. package/dist/es/components/node/_hooks/useNodeConfig.js +0 -13
  242. package/dist/es/components/node/_hooks/useNodeContent.d.ts +0 -4
  243. package/dist/es/components/node/_hooks/useNodeContent.js +0 -30
  244. package/dist/es/components/node/_hooks/useNodeShape.d.ts +0 -4
  245. package/dist/es/components/node/_hooks/useNodeShape.js +0 -34
  246. package/dist/es/components/node/index.d.ts +0 -3
  247. package/dist/es/components/node/index.js +0 -4
  248. package/dist/es/components/path-node/PathNode.d.ts +0 -48
  249. package/dist/es/components/path-node/PathNode.js +0 -76
  250. package/dist/es/components/path-node/index.d.ts +0 -3
  251. package/dist/es/components/path-node/index.js +0 -4
  252. package/dist/es/components/path-node/useAnchor.d.ts +0 -6
  253. package/dist/es/components/path-node/useAnchor.js +0 -49
  254. package/dist/es/container/Group.d.ts +0 -6
  255. package/dist/es/container/Group.js +0 -8
  256. package/dist/es/container/Surface.d.ts +0 -19
  257. package/dist/es/container/Surface.js +0 -23
  258. package/dist/es/elements/Path.d.ts +0 -4
  259. package/dist/es/elements/Path.js +0 -14
  260. package/dist/es/elements/Rect.d.ts +0 -4
  261. package/dist/es/elements/Rect.js +0 -9
  262. package/dist/es/elements/Text.d.ts +0 -18
  263. package/dist/es/elements/Text.js +0 -35
  264. package/dist/es/hooks/context/useCalculate.d.ts +0 -7
  265. package/dist/es/hooks/context/useCalculate.js +0 -9
  266. package/dist/es/hooks/context/useNodes.d.ts +0 -9
  267. package/dist/es/hooks/context/useNodes.js +0 -33
  268. package/dist/es/hooks/context/usePath.d.ts +0 -13
  269. package/dist/es/hooks/context/usePath.js +0 -20
  270. package/dist/es/hooks/context/useScope.d.ts +0 -11
  271. package/dist/es/hooks/context/useScope.js +0 -7
  272. package/dist/es/hooks/useForceUpdate.d.ts +0 -2
  273. package/dist/es/hooks/useForceUpdate.js +0 -8
  274. package/dist/es/model/component/node.d.ts +0 -45
  275. package/dist/es/model/component/node.js +0 -164
  276. package/dist/es/model/component/path.d.ts +0 -19
  277. package/dist/es/model/component/path.js +0 -47
  278. package/dist/es/model/equation/line.d.ts +0 -21
  279. package/dist/es/model/equation/line.js +0 -76
  280. package/dist/es/model/geometry/point/DescartesPoint.d.ts +0 -21
  281. package/dist/es/model/geometry/point/DescartesPoint.js +0 -50
  282. package/dist/es/model/geometry/point/PolarPoint.d.ts +0 -14
  283. package/dist/es/model/geometry/point/PolarPoint.js +0 -27
  284. package/dist/es/node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js +0 -338
  285. package/dist/es/node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js +0 -13
  286. package/dist/es/node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.js +0 -88
  287. package/dist/es/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/array.js +0 -6
  288. package/dist/es/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js +0 -8
  289. package/dist/es/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.js +0 -39
  290. package/dist/es/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/line.js +0 -41
  291. package/dist/es/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.js +0 -19
  292. package/dist/es/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/point.js +0 -10
  293. package/dist/es/test.d.ts +0 -3
  294. package/dist/es/types/coordinate/descartes.d.ts +0 -23
  295. package/dist/es/types/coordinate/index.d.ts +0 -5
  296. package/dist/es/types/coordinate/polar.d.ts +0 -5
  297. package/dist/es/types/distance/index.d.ts +0 -8
  298. package/dist/es/types/distance/sep.d.ts +0 -9
  299. package/dist/es/types/shape/index.d.ts +0 -8
  300. package/dist/es/types/shape/index.js +0 -9
  301. package/dist/es/types/shape/rect.d.ts +0 -25
  302. package/dist/es/types/shape/rect.js +0 -30
  303. package/dist/es/types/svg/font.d.ts +0 -10
  304. package/dist/es/types/svg/stroke.d.ts +0 -10
  305. package/dist/es/types/tikz/index.d.ts +0 -6
  306. package/dist/es/utils/compare.d.ts +0 -4
  307. package/dist/es/utils/compare.js +0 -20
  308. package/dist/es/utils/css.d.ts +0 -6
  309. package/dist/es/utils/css.js +0 -26
  310. package/dist/es/utils/math.d.ts +0 -9
  311. package/dist/es/utils/math.js +0 -26
  312. package/dist/es/utils/string.d.ts +0 -7
  313. package/dist/es/utils/string.js +0 -7
  314. package/dist/es/utils/style/font.d.ts +0 -17
  315. package/dist/es/utils/style/font.js +0 -34
  316. package/dist/es/utils/style/stroke.d.ts +0 -20
  317. package/dist/es/utils/style/stroke.js +0 -42
  318. package/dist/lib/components/Scope.cjs +0 -12
  319. package/dist/lib/components/Scope.d.ts +0 -6
  320. package/dist/lib/components/TikZ.cjs +0 -12
  321. package/dist/lib/components/TikZ.d.ts +0 -9
  322. package/dist/lib/components/draw/Draw.cjs +0 -59
  323. package/dist/lib/components/draw/Draw.d.ts +0 -26
  324. package/dist/lib/components/draw/InnerDraw.cjs +0 -52
  325. package/dist/lib/components/draw/InnerDraw.d.ts +0 -17
  326. package/dist/lib/components/draw/arrow/circle.cjs +0 -20
  327. package/dist/lib/components/draw/arrow/circle.d.ts +0 -7
  328. package/dist/lib/components/draw/arrow/index.cjs +0 -13
  329. package/dist/lib/components/draw/arrow/index.d.ts +0 -9
  330. package/dist/lib/components/draw/arrow/stealth.cjs +0 -29
  331. package/dist/lib/components/draw/arrow/stealth.d.ts +0 -7
  332. package/dist/lib/components/draw/arrow/types.d.ts +0 -21
  333. package/dist/lib/components/draw/common.cjs +0 -12
  334. package/dist/lib/components/draw/common.d.ts +0 -4
  335. package/dist/lib/components/draw/index.cjs +0 -4
  336. package/dist/lib/components/draw/index.d.ts +0 -3
  337. package/dist/lib/components/draw/segment/Segment.cjs +0 -41
  338. package/dist/lib/components/draw/segment/Segment.d.ts +0 -12
  339. package/dist/lib/components/draw/segment/index.cjs +0 -41
  340. package/dist/lib/components/draw/segment/index.d.ts +0 -15
  341. package/dist/lib/components/draw/segment/useArrow.cjs +0 -52
  342. package/dist/lib/components/draw/segment/useArrow.d.ts +0 -12
  343. package/dist/lib/components/draw/segment/useConvertWay.cjs +0 -117
  344. package/dist/lib/components/draw/segment/useConvertWay.d.ts +0 -14
  345. package/dist/lib/components/draw/types.d.ts +0 -29
  346. package/dist/lib/components/node/InnerNode.cjs +0 -88
  347. package/dist/lib/components/node/InnerNode.d.ts +0 -33
  348. package/dist/lib/components/node/Node.cjs +0 -88
  349. package/dist/lib/components/node/Node.d.ts +0 -93
  350. package/dist/lib/components/node/_hooks/useNodeConfig.cjs +0 -13
  351. package/dist/lib/components/node/_hooks/useNodeConfig.d.ts +0 -3
  352. package/dist/lib/components/node/_hooks/useNodeContent.cjs +0 -30
  353. package/dist/lib/components/node/_hooks/useNodeContent.d.ts +0 -4
  354. package/dist/lib/components/node/_hooks/useNodeShape.cjs +0 -34
  355. package/dist/lib/components/node/_hooks/useNodeShape.d.ts +0 -4
  356. package/dist/lib/components/node/index.cjs +0 -4
  357. package/dist/lib/components/node/index.d.ts +0 -3
  358. package/dist/lib/components/path-node/PathNode.cjs +0 -76
  359. package/dist/lib/components/path-node/PathNode.d.ts +0 -48
  360. package/dist/lib/components/path-node/index.cjs +0 -4
  361. package/dist/lib/components/path-node/index.d.ts +0 -3
  362. package/dist/lib/components/path-node/useAnchor.cjs +0 -49
  363. package/dist/lib/components/path-node/useAnchor.d.ts +0 -6
  364. package/dist/lib/container/Group.cjs +0 -8
  365. package/dist/lib/container/Group.d.ts +0 -6
  366. package/dist/lib/container/Surface.cjs +0 -23
  367. package/dist/lib/container/Surface.d.ts +0 -19
  368. package/dist/lib/elements/Path.cjs +0 -14
  369. package/dist/lib/elements/Path.d.ts +0 -4
  370. package/dist/lib/elements/Rect.cjs +0 -9
  371. package/dist/lib/elements/Rect.d.ts +0 -4
  372. package/dist/lib/elements/Text.cjs +0 -35
  373. package/dist/lib/elements/Text.d.ts +0 -18
  374. package/dist/lib/hooks/context/useCalculate.cjs +0 -9
  375. package/dist/lib/hooks/context/useCalculate.d.ts +0 -7
  376. package/dist/lib/hooks/context/useNodes.cjs +0 -33
  377. package/dist/lib/hooks/context/useNodes.d.ts +0 -9
  378. package/dist/lib/hooks/context/usePath.cjs +0 -20
  379. package/dist/lib/hooks/context/usePath.d.ts +0 -13
  380. package/dist/lib/hooks/context/useScope.cjs +0 -7
  381. package/dist/lib/hooks/context/useScope.d.ts +0 -11
  382. package/dist/lib/hooks/useForceUpdate.cjs +0 -8
  383. package/dist/lib/hooks/useForceUpdate.d.ts +0 -2
  384. package/dist/lib/model/component/node.cjs +0 -164
  385. package/dist/lib/model/component/node.d.ts +0 -45
  386. package/dist/lib/model/component/path.cjs +0 -47
  387. package/dist/lib/model/component/path.d.ts +0 -19
  388. package/dist/lib/model/equation/line.cjs +0 -76
  389. package/dist/lib/model/equation/line.d.ts +0 -21
  390. package/dist/lib/model/geometry/point/DescartesPoint.cjs +0 -50
  391. package/dist/lib/model/geometry/point/DescartesPoint.d.ts +0 -21
  392. package/dist/lib/model/geometry/point/PolarPoint.cjs +0 -27
  393. package/dist/lib/model/geometry/point/PolarPoint.d.ts +0 -14
  394. package/dist/lib/node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.cjs +0 -338
  395. package/dist/lib/node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.cjs +0 -13
  396. package/dist/lib/node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.cjs +0 -88
  397. package/dist/lib/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/array.cjs +0 -6
  398. package/dist/lib/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.cjs +0 -8
  399. package/dist/lib/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.cjs +0 -39
  400. package/dist/lib/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/line.cjs +0 -41
  401. package/dist/lib/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.cjs +0 -19
  402. package/dist/lib/node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/point.cjs +0 -10
  403. package/dist/lib/test.d.ts +0 -3
  404. package/dist/lib/types/coordinate/descartes.d.ts +0 -23
  405. package/dist/lib/types/coordinate/index.d.ts +0 -5
  406. package/dist/lib/types/coordinate/polar.d.ts +0 -5
  407. package/dist/lib/types/distance/index.d.ts +0 -8
  408. package/dist/lib/types/distance/sep.d.ts +0 -9
  409. package/dist/lib/types/shape/index.cjs +0 -9
  410. package/dist/lib/types/shape/index.d.ts +0 -8
  411. package/dist/lib/types/shape/rect.cjs +0 -30
  412. package/dist/lib/types/shape/rect.d.ts +0 -25
  413. package/dist/lib/types/svg/font.d.ts +0 -10
  414. package/dist/lib/types/svg/stroke.d.ts +0 -10
  415. package/dist/lib/types/tikz/index.d.ts +0 -6
  416. package/dist/lib/utils/compare.cjs +0 -20
  417. package/dist/lib/utils/compare.d.ts +0 -4
  418. package/dist/lib/utils/css.cjs +0 -26
  419. package/dist/lib/utils/css.d.ts +0 -6
  420. package/dist/lib/utils/math.cjs +0 -26
  421. package/dist/lib/utils/math.d.ts +0 -9
  422. package/dist/lib/utils/string.cjs +0 -7
  423. package/dist/lib/utils/string.d.ts +0 -7
  424. package/dist/lib/utils/style/font.cjs +0 -34
  425. package/dist/lib/utils/style/font.d.ts +0 -17
  426. package/dist/lib/utils/style/stroke.cjs +0 -42
  427. package/dist/lib/utils/style/stroke.d.ts +0 -20
@@ -1,12 +0,0 @@
1
- const offsetReg = /\+[[(]?[+-]?\d+(?:\.\d+)?,\s*[+-]?\d+(?:\.\d+)?[)\]]?/;
2
- const moveReg = /\+\+[[(]?[+-]?\d+(?:\.\d+)?,\s*[+-]?\d+(?:\.\d+)?[)\]]?/;
3
- const getDrawPointType = (point) => {
4
- if (typeof point !== "string") return "coordinate";
5
- if (["-|", "|-", "-|-", "|-|"].includes(point)) return "vertical";
6
- if (point.match(moveReg)) return "move";
7
- if (point.match(offsetReg)) return "offset";
8
- return "node";
9
- };
10
- export {
11
- getDrawPointType
12
- };
@@ -1,3 +0,0 @@
1
- import { default as Draw } from './Draw';
2
- export type { DrawProps } from './Draw';
3
- export default Draw;
@@ -1,4 +0,0 @@
1
- import Draw from "./Draw.js";
2
- export {
3
- Draw as default
4
- };
@@ -1,12 +0,0 @@
1
- import { FC } from 'react';
2
- import { Position } from '../../../types/coordinate/descartes';
3
- import { StrokeProps } from '../../../types/svg/stroke';
4
- import { ArrowConfig } from '../types';
5
- export type InnerDrawSegmentProps = {
6
- /** 路径,始末节点为 undefined 表示临近点在 node 外边界内 */
7
- way: Position[];
8
- startArrow?: ArrowConfig;
9
- endArrow?: ArrowConfig;
10
- } & StrokeProps;
11
- declare const InnerDrawSegment: FC<InnerDrawSegmentProps>;
12
- export default InnerDrawSegment;
@@ -1,41 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { useMemo } from "react";
3
- import Path from "../../../elements/Path.js";
4
- import Group from "../../../container/Group.js";
5
- import useArrow from "./useArrow.js";
6
- import line from "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/line.js";
7
- const InnerDrawSegment = (props) => {
8
- const { way, startArrow, endArrow, ...strokeProps } = props;
9
- const pickedArrowStrokeProps = {
10
- stroke: strokeProps.stroke,
11
- strokeWidth: Number(strokeProps.strokeWidth),
12
- strokeOpacity: strokeProps.strokeOpacity
13
- };
14
- const startArrowPath = useArrow(
15
- { position: way[0], nearPosition: way[1], arrowType: "start" },
16
- startArrow ? { ...pickedArrowStrokeProps, ...startArrow } : void 0
17
- );
18
- const endArrowPath = useArrow(
19
- { position: way[way.length - 1], nearPosition: way[way.length - 2], arrowType: "end" },
20
- endArrow ? { ...pickedArrowStrokeProps, ...endArrow } : void 0
21
- );
22
- const d = useMemo(() => {
23
- const realWay = [...way];
24
- if (startArrowPath) {
25
- realWay[0] = startArrowPath.linkPoint;
26
- }
27
- if (endArrowPath) {
28
- realWay[realWay.length - 1] = endArrowPath.linkPoint;
29
- }
30
- const straightLine = line().x((d2) => d2[0]).y((d2) => d2[1]);
31
- return straightLine(realWay);
32
- }, [way]);
33
- return endArrowPath || startArrowPath ? /* @__PURE__ */ jsxs(Group, { children: [
34
- /* @__PURE__ */ jsx(Path, { d: d ?? "", ...strokeProps }),
35
- startArrowPath ? startArrowPath.arrowPath : null,
36
- endArrowPath ? endArrowPath.arrowPath : null
37
- ] }) : /* @__PURE__ */ jsx(Path, { d: d ?? "", ...strokeProps });
38
- };
39
- export {
40
- InnerDrawSegment as default
41
- };
@@ -1,15 +0,0 @@
1
- import { FC } from 'react';
2
- import { StrokeProps } from '../../../types/svg/stroke';
3
- import { ArrowConfig, DrawWaySegmentType } from '../types';
4
- export type DrawSegmentProps = {
5
- /** 路径,首位可以是 Node,其他必须是坐标 */
6
- way: DrawWaySegmentType;
7
- index: number;
8
- /** 线段样式 */
9
- strokeType?: 'solid' | 'dashed' | 'dotted';
10
- startArrow?: ArrowConfig;
11
- endArrow?: ArrowConfig;
12
- } & StrokeProps;
13
- /** 单条连续的路径 */
14
- declare const DrawSegment: FC<DrawSegmentProps>;
15
- export default DrawSegment;
@@ -1,41 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useMemo } from "react";
3
- import NodeModel from "../../../model/component/node.js";
4
- import { convertStrokeType } from "../../../utils/style/stroke.js";
5
- import InnerDrawSegment from "./Segment.js";
6
- import useConvertWay from "./useConvertWay.js";
7
- import usePath from "../../../hooks/context/usePath.js";
8
- const DrawSegment = (props) => {
9
- const { way, index, startArrow, endArrow, ...resProps } = props;
10
- const { strokeType = "solid", strokeWidth = 1, ...strokeProps } = resProps;
11
- const [convertedWay, nodesInit] = useConvertWay(way);
12
- const { model, updateModel } = usePath();
13
- const pointWay = useMemo(() => {
14
- const realWay = convertedWay.map((wayPoint, index2) => {
15
- if (wayPoint instanceof NodeModel) {
16
- const neighborPoint = index2 === 0 ? convertedWay[1] : convertedWay[index2 - 1];
17
- return wayPoint.getCrossPoint(neighborPoint instanceof NodeModel ? neighborPoint.center : neighborPoint);
18
- }
19
- return wayPoint;
20
- });
21
- const newWay = [...model.ways];
22
- newWay[index] = realWay;
23
- updateModel({ ways: newWay, init: nodesInit });
24
- return realWay;
25
- }, [convertedWay]);
26
- if (!nodesInit) return null;
27
- return /* @__PURE__ */ jsx(
28
- InnerDrawSegment,
29
- {
30
- way: pointWay,
31
- startArrow,
32
- endArrow,
33
- strokeWidth,
34
- ...convertStrokeType(strokeType, strokeWidth),
35
- ...strokeProps
36
- }
37
- );
38
- };
39
- export {
40
- DrawSegment as default
41
- };
@@ -1,12 +0,0 @@
1
- import { ArrowConfig } from '../types';
2
- import { Position } from '../../../types/coordinate/descartes';
3
- export type ArrowLinkConfig = {
4
- nearPosition: Position;
5
- position: Position;
6
- arrowType: 'start' | 'end';
7
- };
8
- declare const useArrow: (linkConfig: ArrowLinkConfig, arrowConfig?: ArrowConfig) => {
9
- linkPoint: Position;
10
- arrowPath: import("react/jsx-runtime").JSX.Element;
11
- } | null;
12
- export default useArrow;
@@ -1,52 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useMemo } from "react";
3
- import useCalculate from "../../../hooks/context/useCalculate.js";
4
- import getArrowPath from "../arrow/index.js";
5
- import Path from "../../../elements/Path.js";
6
- import Line from "../../../model/equation/line.js";
7
- import { convertPrecision } from "../../../utils/math.js";
8
- const useArrow = (linkConfig, arrowConfig) => {
9
- const { precision } = useCalculate();
10
- return useMemo(() => {
11
- if (!arrowConfig) return null;
12
- const { position, nearPosition } = linkConfig;
13
- const { type, stroke, linkType = "end", round, strokeLinejoin, strokeWidth, ...strokeProps } = arrowConfig;
14
- const degree = Line.getDegree(nearPosition, position);
15
- const isRound = round || strokeLinejoin === "round";
16
- const realStrokeWidth = strokeWidth ?? 1;
17
- const { d, offsetDistance, insertDistance } = getArrowPath(type, arrowConfig);
18
- const endOffset = [
19
- (isRound ? realStrokeWidth : offsetDistance) * Math.cos(degree),
20
- (isRound ? realStrokeWidth : offsetDistance) * Math.sin(degree)
21
- ];
22
- const translatePosition = linkType === "end" ? [position[0] - endOffset[0], position[1] - endOffset[1]] : [position[0] + insertDistance * Math.cos(degree), position[1] + insertDistance * Math.sin(degree)];
23
- const linkPoint = linkType === "end" ? [
24
- position[0] - insertDistance * Math.cos(degree) - endOffset[0],
25
- position[1] - insertDistance * Math.sin(degree) - endOffset[1]
26
- ] : position;
27
- const transform = `translate(
28
- ${convertPrecision(translatePosition[0], precision)}, ${convertPrecision(
29
- translatePosition[1],
30
- precision
31
- )}) rotate(${convertPrecision(degree * (180 / Math.PI), precision)})`;
32
- return {
33
- linkPoint,
34
- arrowPath: /* @__PURE__ */ jsx(
35
- Path,
36
- {
37
- d,
38
- strokeWidth,
39
- strokeLinejoin: round ? "round" : "miter",
40
- strokeMiterlimit: 10,
41
- fill: stroke || "currentColor",
42
- stroke,
43
- transform,
44
- ...strokeProps
45
- }
46
- )
47
- };
48
- }, [arrowConfig, linkConfig]);
49
- };
50
- export {
51
- useArrow as default
52
- };
@@ -1,14 +0,0 @@
1
- import { default as NodeModel } from '../../../model/component/node';
2
- import { PointPosition } from '../../../types/coordinate';
3
- import { Position } from '../../../types/coordinate/descartes';
4
- import { DrawWaySegmentType } from '../types';
5
- /** 将坐标格式转换为笛卡尔坐标数组形式 */
6
- export declare const formatPointPosition: (point: PointPosition) => Position;
7
- /** 获取两点间的垂直点 */
8
- export declare const getVerticalPoint: (point1: PointPosition, point2: PointPosition, type: "-|" | "|-" | "-|-" | "|-|") => Position | Position[];
9
- /**
10
- * 将特殊路径点转换为坐标,Node 节点转换为对应的 Model
11
- * 目前支持的节点类型:node,各种坐标,垂点,位移点
12
- */
13
- declare const useConvertWay: (way: DrawWaySegmentType) => [Array<Position | NodeModel>, boolean];
14
- export default useConvertWay;
@@ -1,117 +0,0 @@
1
- import { useRef, useMemo, useLayoutEffect } from "react";
2
- import useNodes from "../../../hooks/context/useNodes.js";
3
- import useForceUpdate from "../../../hooks/useForceUpdate.js";
4
- import DescartesPoint from "../../../model/geometry/point/DescartesPoint.js";
5
- import PolarPoint from "../../../model/geometry/point/PolarPoint.js";
6
- import { getDrawPointType } from "../common.js";
7
- const formatPointPosition = (point) => {
8
- if (Array.isArray(point)) return point;
9
- if ("x" in point && "y" in point) {
10
- const p = point;
11
- return [p.x, p.y];
12
- }
13
- return PolarPoint.convertPolarToDescartesPosition(point);
14
- };
15
- const getVerticalPoint = (point1, point2, type) => {
16
- const p1 = formatPointPosition(point1);
17
- const p2 = formatPointPosition(point2);
18
- if (["-|", "|-"].includes(type)) return type === "-|" ? [p2[0], p1[1]] : [p1[0], p2[1]];
19
- if (type === "-|-") {
20
- const centerX = (p1[0] + p2[0]) / 2;
21
- return [[centerX, p1[1]], [centerX, p2[1]]];
22
- }
23
- const centerY = (p1[1] + p2[1]) / 2;
24
- return [[p1[0], centerY], [p2[0], centerY]];
25
- };
26
- const convertOffsetAndMovePoint = (point) => {
27
- const filterPoint = point.replace(/[+()[\]\s]/g, "");
28
- return filterPoint.split(",").map((item) => parseFloat(item));
29
- };
30
- const useConvertWay = (way) => {
31
- const { getModel, subscribeModel } = useNodes();
32
- const forceUpdate = useForceUpdate();
33
- const nodeUpdateCount = useRef(0);
34
- let cursor = [0, 0];
35
- const tryGetModel = (name) => {
36
- const model = getModel(name);
37
- if (!model) {
38
- throw new Error(`Node ${name} is not defined`);
39
- }
40
- cursor = model.center;
41
- return model;
42
- };
43
- const subscribeCbs = [];
44
- let allNodeInit = true;
45
- const result = useMemo(
46
- () => way.reduce((acc, item, index) => {
47
- const type = getDrawPointType(item);
48
- switch (type) {
49
- case "coordinate": {
50
- const corPosition = formatPointPosition(item);
51
- cursor = corPosition;
52
- acc.push(corPosition);
53
- return acc;
54
- }
55
- case "node": {
56
- if (![0, way.length - 1].includes(index)) {
57
- throw new Error(
58
- "Node can only be the first or last point on DrawSegment component, this may be a retikz bug, please report it."
59
- );
60
- }
61
- const nodeModel = tryGetModel(item);
62
- if (!nodeModel.init) allNodeInit = false;
63
- const cb = subscribeModel(item, () => {
64
- nodeUpdateCount.current += 1;
65
- forceUpdate();
66
- });
67
- if (cb) subscribeCbs.push(cb);
68
- cursor = nodeModel.center;
69
- acc.push(nodeModel);
70
- return acc;
71
- }
72
- case "vertical": {
73
- if ([0, way.length - 1].includes(index)) {
74
- throw new Error("Vertical point can not be the first point on path.");
75
- }
76
- const beforePosition = cursor;
77
- const afterPoint = way[index + 1];
78
- const afterPointType = getDrawPointType(afterPoint);
79
- if (["vertical", "offset", "move"].includes(afterPointType)) {
80
- throw new Error("Vertical point can not be followed by these point type: vertical offset move.");
81
- }
82
- const afterPosition = afterPointType === "node" ? tryGetModel(afterPoint).center : formatPointPosition(afterPoint);
83
- const verPosition = getVerticalPoint(beforePosition, afterPosition, item);
84
- if (Array.isArray(verPosition[0])) {
85
- const realVerPosition = verPosition;
86
- cursor = realVerPosition[realVerPosition.length - 1];
87
- for (const point of realVerPosition) {
88
- acc.push(point);
89
- }
90
- return acc;
91
- }
92
- cursor = verPosition;
93
- acc.push(verPosition);
94
- return acc;
95
- }
96
- default: {
97
- if (index === 0) throw new Error("offset/move point can not be the first point on path.");
98
- const convertedPos = convertOffsetAndMovePoint(item);
99
- const curPos = DescartesPoint.plus(convertedPos, cursor);
100
- if (type === "move") cursor = curPos;
101
- acc.push(curPos);
102
- return acc;
103
- }
104
- }
105
- }, []),
106
- [way, nodeUpdateCount.current]
107
- );
108
- useLayoutEffect(() => () => {
109
- subscribeCbs.forEach((cb) => cb && cb());
110
- });
111
- return [result, allNodeInit];
112
- };
113
- export {
114
- useConvertWay as default,
115
- formatPointPosition,
116
- getVerticalPoint
117
- };
@@ -1,29 +0,0 @@
1
- import { PointPosition } from '../../types/coordinate';
2
- import { StrokeProps } from '../../types/svg/stroke';
3
- import { TikZKey } from '../../types/tikz';
4
- import { ArrowPositionAttributes, ArrowType } from './arrow';
5
- export type ArrowConfig = {
6
- type: ArrowType;
7
- fill?: string;
8
- } & ArrowPositionAttributes & StrokeProps;
9
- /** 垂直路径点,临近的节点不能都是特殊路径点 */
10
- export type VerticalDrawPosition = '-|' | '|-' | '-|-' | '|-|';
11
- /** 偏移与移动点 */
12
- export type OffSetOrMovePosition = string;
13
- /** 路径点类型:节点,坐标,垂点,偏移点,移动点 */
14
- export type DrawPointType = 'node' | 'coordinate' | 'vertical' | 'offset' | 'move';
15
- /** 路径节点类型 */
16
- export type DrawWayType = TikZKey | PointPosition | VerticalDrawPosition | OffSetOrMovePosition;
17
- /** 路径片段节点类型 */
18
- export type DrawWaySegmentType = [
19
- TikZKey | PointPosition,
20
- ...Array<PointPosition | VerticalDrawPosition | OffSetOrMovePosition>,
21
- TikZKey | PointPosition
22
- ];
23
- /** 箭头属性 */
24
- export type ArrowProps<T = ArrowType | ArrowConfig> = {
25
- startArrow?: T;
26
- startArrows?: T;
27
- endArrow?: T;
28
- endArrows?: T;
29
- };
@@ -1,33 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { Position } from '../../types/coordinate/descartes';
3
- import { StrokeProps } from '../../types/svg/stroke';
4
- import { TikZProps } from '../../types/tikz';
5
- import { DirectionDistance } from '../../types/distance';
6
- import { FontProps } from '../../types/svg/font';
7
- /** 节点外边框形状 */
8
- export type NodeShape = 'rectangle';
9
- /** 外层形状相关属性 */
10
- export type ShapeProps = {
11
- shape: NodeShape;
12
- rx?: number | string;
13
- ry?: number | string;
14
- fill?: string;
15
- fillOpacity?: number;
16
- } & StrokeProps;
17
- /** 内容相关属性 */
18
- export type ContentProps = {
19
- color: string;
20
- opacity?: number;
21
- children?: ReactNode;
22
- size?: string | number;
23
- } & FontProps;
24
- export type InnerNodeProps = {
25
- position: Position;
26
- width?: number;
27
- height?: number;
28
- innerSep: DirectionDistance<number | string>;
29
- outerSep: DirectionDistance<number | string>;
30
- rotate?: number;
31
- } & TikZProps & ContentProps & ShapeProps;
32
- declare const InnerNode: import('react').ForwardRefExoticComponent<Omit<InnerNodeProps, "ref"> & import('react').RefAttributes<SVGGElement>>;
33
- export default InnerNode;
@@ -1,88 +0,0 @@
1
- import { jsxs } from "react/jsx-runtime";
2
- import { forwardRef, useRef, useLayoutEffect } from "react";
3
- import Group from "../../container/Group.js";
4
- import useNodeShape from "./_hooks/useNodeShape.js";
5
- import useNodeContent from "./_hooks/useNodeContent.js";
6
- import useNodeConfig from "./_hooks/useNodeConfig.js";
7
- import { convertCssToPx } from "../../utils/css.js";
8
- import useNodes from "../../hooks/context/useNodes.js";
9
- import useCalculate from "../../hooks/context/useCalculate.js";
10
- import { convertPrecision } from "../../utils/math.js";
11
- const InnerNode = forwardRef((props, ref) => {
12
- const { name, position, width, height, innerSep, outerSep, rotate } = props;
13
- const nodeRef = useRef(null);
14
- const shapeRef = useRef(null);
15
- const contentRef = useRef(null);
16
- const { getModel, updateModel, deleteModel } = useNodes();
17
- const { precision } = useCalculate();
18
- const nodeConfig = useNodeConfig();
19
- nodeConfig.current.position = position;
20
- if (name && !getModel(name)) {
21
- updateModel(name, nodeConfig.current, false);
22
- }
23
- const groupElement = ref && "current" in ref ? ref.current : nodeRef.current;
24
- useLayoutEffect(() => {
25
- const contentElement = contentRef.current;
26
- if (!contentElement) return;
27
- const { width: elementWidth, height: elementHeight } = contentElement.getBoundingClientRect();
28
- nodeConfig.current.contentSize = [Math.max(elementWidth, width || 0), Math.max(elementHeight, height || 0)];
29
- });
30
- const getSep = (sep) => {
31
- const { width: width2 = 100, height: height2 = 100 } = (groupElement == null ? void 0 : groupElement.getBoundingClientRect()) || {};
32
- const remPx = parseFloat(getComputedStyle(document.documentElement).fontSize);
33
- const emPx = groupElement ? parseFloat(getComputedStyle(groupElement).fontSize) : remPx;
34
- return {
35
- left: convertCssToPx(sep.left, { remPx, emPx, parentPx: width2 }),
36
- right: convertCssToPx(sep.right, { remPx, emPx, parentPx: width2 }),
37
- top: convertCssToPx(sep.top, { remPx, emPx, parentPx: height2 }),
38
- bottom: convertCssToPx(sep.bottom, { remPx, emPx, parentPx: height2 })
39
- };
40
- };
41
- useLayoutEffect(() => {
42
- nodeConfig.current.innerSep = getSep(innerSep);
43
- }, [innerSep]);
44
- useLayoutEffect(() => {
45
- nodeConfig.current.outerSep = getSep(outerSep);
46
- }, [outerSep]);
47
- useLayoutEffect(() => {
48
- var _a, _b, _c, _d;
49
- const {
50
- contentSize: [width2, height2],
51
- innerSep: innerSep2
52
- } = nodeConfig.current;
53
- const realX = -width2 / 2 - innerSep2.left;
54
- (_a = shapeRef.current) == null ? void 0 : _a.setAttribute("x", convertPrecision(realX, precision).toString());
55
- const realY = -height2 / 2 - innerSep2.top;
56
- (_b = shapeRef.current) == null ? void 0 : _b.setAttribute("y", convertPrecision(realY, precision).toString());
57
- const realWidth = width2 + innerSep2.left + innerSep2.right;
58
- (_c = shapeRef.current) == null ? void 0 : _c.setAttribute("width", convertPrecision(realWidth, precision).toString());
59
- const realHeight = height2 + innerSep2.top + innerSep2.bottom;
60
- (_d = shapeRef.current) == null ? void 0 : _d.setAttribute("height", convertPrecision(realHeight, precision).toString());
61
- }, [nodeConfig.current.position, nodeConfig.current.contentSize, nodeConfig.current.innerSep]);
62
- useLayoutEffect(() => {
63
- if (name) updateModel(name, nodeConfig.current);
64
- });
65
- useLayoutEffect(
66
- () => () => {
67
- if (name) {
68
- deleteModel(name);
69
- }
70
- },
71
- [name]
72
- );
73
- return /* @__PURE__ */ jsxs(
74
- Group,
75
- {
76
- ref: ref || nodeRef,
77
- id: name,
78
- transform: `translate(${position[0]}, ${position[1]}) ${rotate ? `rotate(${rotate})` : ""}`,
79
- children: [
80
- useNodeShape(props, shapeRef),
81
- useNodeContent(props, contentRef)
82
- ]
83
- }
84
- );
85
- });
86
- export {
87
- InnerNode as default
88
- };
@@ -1,93 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { NodeShape } from './InnerNode';
3
- import { CssDistanceType } from '../../types/distance';
4
- import { SepProps } from '../../types/distance/sep';
5
- import { StrokeProps } from '../../types/svg/stroke';
6
- import { TikZKey } from '../../types/tikz';
7
- import { StrokeShortcutProps, StrokeType } from '../../utils/style/stroke';
8
- import { PointPosition } from '../../types/coordinate';
9
- import { TikZFontSize } from '../../utils/style/font';
10
- import { FontProps } from '../../types/svg/font';
11
- export type NodeProps = {
12
- name?: TikZKey;
13
- /** 位置 */
14
- position?: PointPosition;
15
- /** 位置偏移 */
16
- offset?: PointPosition;
17
- /** 内容宽度 */
18
- width?: CssDistanceType;
19
- /** 内容高度 */
20
- height?: CssDistanceType;
21
- /** 内容(文本)颜色 */
22
- color?: 'currentColor' | 'auto' | string;
23
- /** 内容(文本)透明度 */
24
- opacity?: number;
25
- /** 内容(文本)字体大小 */
26
- size?: string | TikZFontSize | number;
27
- /** 内容 */
28
- children?: ReactNode;
29
- /** 边框形状 */
30
- shape?: NodeShape;
31
- /** 边框圆角 */
32
- r?: CssDistanceType;
33
- /** 边框圆角-x */
34
- rx?: CssDistanceType;
35
- /** 边框圆角-y */
36
- ry?: CssDistanceType;
37
- /** 背景填充色,默认为 auto */
38
- fill?: string | 'auto';
39
- /** 背景填充色透明度 */
40
- fillOpacity?: number;
41
- /** 边框样式 */
42
- strokeType?: StrokeType;
43
- /** 内边距 */
44
- innerSep?: CssDistanceType | SepProps;
45
- /** 外边距 */
46
- outerSep?: CssDistanceType | SepProps;
47
- /** 旋转 */
48
- rotate?: number;
49
- /** 样式 */
50
- style?: 'bold' | 'italic' | 'serif' | 'sans-serif';
51
- } & Partial<FontProps> & Partial<StrokeProps> & StrokeShortcutProps;
52
- declare const Node: import('react').ForwardRefExoticComponent<{
53
- name?: TikZKey;
54
- /** 位置 */
55
- position?: PointPosition;
56
- /** 位置偏移 */
57
- offset?: PointPosition;
58
- /** 内容宽度 */
59
- width?: CssDistanceType;
60
- /** 内容高度 */
61
- height?: CssDistanceType;
62
- /** 内容(文本)颜色 */
63
- color?: "currentColor" | "auto" | string;
64
- /** 内容(文本)透明度 */
65
- opacity?: number;
66
- /** 内容(文本)字体大小 */
67
- size?: string | TikZFontSize | number;
68
- /** 内容 */
69
- children?: ReactNode;
70
- /** 边框形状 */
71
- shape?: NodeShape;
72
- /** 边框圆角 */
73
- r?: CssDistanceType;
74
- /** 边框圆角-x */
75
- rx?: CssDistanceType;
76
- /** 边框圆角-y */
77
- ry?: CssDistanceType;
78
- /** 背景填充色,默认为 auto */
79
- fill?: string | "auto";
80
- /** 背景填充色透明度 */
81
- fillOpacity?: number;
82
- /** 边框样式 */
83
- strokeType?: StrokeType;
84
- /** 内边距 */
85
- innerSep?: CssDistanceType | SepProps;
86
- /** 外边距 */
87
- outerSep?: CssDistanceType | SepProps;
88
- /** 旋转 */
89
- rotate?: number;
90
- /** 样式 */
91
- style?: "bold" | "italic" | "serif" | "sans-serif";
92
- } & Partial<FontProps> & Partial<StrokeProps> & StrokeShortcutProps & import('react').RefAttributes<SVGGElement>>;
93
- export default Node;
@@ -1,88 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { forwardRef, useMemo } from "react";
3
- import InnerNode from "./InnerNode.js";
4
- import { convertCssToPx } from "../../utils/css.js";
5
- import { convertStrokeType, convertStrokeShortcut } from "../../utils/style/stroke.js";
6
- import { convertFontSize, convertFontStyle } from "../../utils/style/font.js";
7
- import DescartesPoint from "../../model/geometry/point/DescartesPoint.js";
8
- import useScope from "../../hooks/context/useScope.js";
9
- import color, { hsl } from "../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js";
10
- const Node = forwardRef((props, ref) => {
11
- const { offset: scopeOffset, node } = useScope();
12
- const nodeScopeProps = { offset: scopeOffset, ...node };
13
- const realProps = {
14
- ...nodeScopeProps,
15
- ...props,
16
- offset: DescartesPoint.plus(scopeOffset || [0, 0], props.offset || [0, 0])
17
- };
18
- const { shape = "rectangle", width, height, position, offset, innerSep, outerSep, ...res1Props } = realProps;
19
- const { r, rx, ry, fill, fillOpacity, stroke = "transparent", strokeWidth = 1, strokeType, ...res2Props } = res1Props;
20
- const { color: color$1 = "currentColor", size, fontSize, style, ...otherProps } = res2Props;
21
- const realPosition = useMemo(() => {
22
- const formatPosition = position ? DescartesPoint.formatPosition(position) : [0, 0];
23
- const formatOffset = offset ? DescartesPoint.formatPosition(offset) : [0, 0];
24
- return [formatPosition[0] + formatOffset[0], formatPosition[1] + formatOffset[1]];
25
- }, [position]);
26
- const realColor = useMemo(() => {
27
- if (color$1 === "auto" && fill && fill !== "currentColor") {
28
- const fillColor = color(fill);
29
- if (!fillColor) return color$1 || "currentColor";
30
- fillColor.opacity = fillOpacity || 1;
31
- const lightness = hsl(fillColor).l;
32
- return lightness < 0.5 ? "white" : "black";
33
- }
34
- return color$1 || "currentColor";
35
- }, [color$1, fill, fillOpacity]);
36
- const realRx = rx || r;
37
- const realRy = ry || r;
38
- const getStrokeAttributes = () => strokeType ? convertStrokeType(strokeType, strokeWidth) : convertStrokeShortcut(otherProps, strokeWidth);
39
- const getSep = (sep, defaultVal) => {
40
- if (typeof sep !== "object") {
41
- return {
42
- left: sep ?? defaultVal,
43
- right: sep ?? defaultVal,
44
- top: sep ?? defaultVal,
45
- bottom: sep ?? defaultVal
46
- };
47
- }
48
- return {
49
- left: sep.left ?? sep.x ?? defaultVal,
50
- right: sep.right ?? sep.x ?? defaultVal,
51
- top: sep.top ?? sep.y ?? defaultVal,
52
- bottom: sep.bottom ?? sep.y ?? defaultVal
53
- };
54
- };
55
- const getFontStyle = () => convertFontStyle(style);
56
- const adjustFontSize = useMemo(() => convertFontSize(size || fontSize), [size, fontSize]);
57
- const adjustedInnerSep = useMemo(
58
- () => getSep(innerSep, convertCssToPx(adjustFontSize) / 3 || "0.3333em"),
59
- [innerSep]
60
- );
61
- const adjustedOuterSep = useMemo(() => getSep(outerSep, 0), [outerSep]);
62
- return /* @__PURE__ */ jsx(
63
- InnerNode,
64
- {
65
- ref,
66
- width: convertCssToPx(width),
67
- height: convertCssToPx(height),
68
- shape,
69
- position: realPosition,
70
- color: realColor,
71
- fill: fill || "transparent",
72
- fillOpacity,
73
- rx: realRx,
74
- ry: realRy,
75
- stroke,
76
- strokeWidth,
77
- innerSep: adjustedInnerSep,
78
- outerSep: adjustedOuterSep,
79
- size: adjustFontSize,
80
- ...getFontStyle(),
81
- ...getStrokeAttributes(),
82
- ...otherProps
83
- }
84
- );
85
- });
86
- export {
87
- Node as default
88
- };