@visactor/vrender-core 0.20.0-alpha.0 → 0.20.0-alpha.2

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 (504) hide show
  1. package/cjs/allocator/matrix-allocate.d.ts +1 -1
  2. package/cjs/allocator/matrix-allocate.js +2 -4
  3. package/cjs/allocator/matrix-allocate.js.map +1 -1
  4. package/cjs/animate/Ticker/default-ticker.d.ts +2 -53
  5. package/cjs/animate/Ticker/default-ticker.js +17 -130
  6. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  7. package/cjs/animate/Ticker/index.d.ts +4 -0
  8. package/cjs/animate/Ticker/index.js +3 -1
  9. package/cjs/animate/Ticker/index.js.map +1 -1
  10. package/cjs/animate/Ticker/manual-ticker-handler.d.ts +15 -0
  11. package/cjs/animate/Ticker/manual-ticker-handler.js +36 -0
  12. package/cjs/animate/Ticker/manual-ticker-handler.js.map +1 -0
  13. package/cjs/animate/Ticker/manual-ticker.d.ts +19 -0
  14. package/cjs/animate/Ticker/manual-ticker.js +37 -0
  15. package/cjs/animate/Ticker/manual-ticker.js.map +1 -0
  16. package/cjs/animate/Ticker/raf-tick-handler.d.ts +9 -0
  17. package/cjs/animate/Ticker/raf-tick-handler.js +30 -0
  18. package/cjs/animate/Ticker/raf-tick-handler.js.map +1 -0
  19. package/cjs/animate/Ticker/timeout-tick-handler.d.ts +9 -0
  20. package/cjs/animate/Ticker/timeout-tick-handler.js +28 -0
  21. package/cjs/animate/Ticker/timeout-tick-handler.js.map +1 -0
  22. package/cjs/animate/Ticker/type.d.ts +6 -0
  23. package/cjs/animate/Ticker/type.js +11 -0
  24. package/cjs/animate/Ticker/type.js.map +1 -0
  25. package/cjs/animate/animate.js +4 -2
  26. package/cjs/animate/animate.js.map +1 -1
  27. package/cjs/animate/custom-animate.d.ts +5 -16
  28. package/cjs/animate/custom-animate.js +9 -62
  29. package/cjs/animate/custom-animate.js.map +1 -1
  30. package/cjs/animate/group-fade.d.ts +16 -0
  31. package/cjs/animate/group-fade.js +66 -0
  32. package/cjs/animate/group-fade.js.map +1 -0
  33. package/cjs/animate/index.d.ts +1 -0
  34. package/cjs/animate/index.js +2 -1
  35. package/cjs/animate/index.js.map +1 -1
  36. package/cjs/canvas/conical-gradient.js.map +1 -1
  37. package/cjs/canvas/contributions/base-canvas.js +4 -13
  38. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  39. package/cjs/canvas/util.d.ts +0 -1
  40. package/cjs/canvas/util.js +7 -17
  41. package/cjs/canvas/util.js.map +1 -1
  42. package/cjs/common/3d-interceptor.d.ts +3 -0
  43. package/cjs/common/3d-interceptor.js +50 -0
  44. package/cjs/common/3d-interceptor.js.map +1 -0
  45. package/cjs/common/bezier-utils.js +2 -1
  46. package/cjs/common/canvas-utils.d.ts +1 -1
  47. package/cjs/common/canvas-utils.js +15 -30
  48. package/cjs/common/canvas-utils.js.map +1 -1
  49. package/cjs/common/matrix.d.ts +11 -3
  50. package/cjs/common/matrix.js +97 -19
  51. package/cjs/common/matrix.js.map +1 -1
  52. package/cjs/common/render-command-list.js +1 -2
  53. package/cjs/common/render-curve.js +22 -32
  54. package/cjs/common/render-curve.js.map +1 -1
  55. package/cjs/common/render-utils.js +2 -1
  56. package/cjs/common/segment/catmull-rom-close.d.ts +41 -0
  57. package/cjs/common/segment/catmull-rom-close.js +81 -0
  58. package/cjs/common/segment/catmull-rom-close.js.map +1 -0
  59. package/cjs/common/segment/catmull-rom.d.ts +38 -0
  60. package/cjs/common/segment/catmull-rom.js +97 -0
  61. package/cjs/common/segment/catmull-rom.js.map +1 -0
  62. package/cjs/common/segment/index.d.ts +5 -2
  63. package/cjs/common/segment/index.js +8 -1
  64. package/cjs/common/segment/index.js.map +1 -1
  65. package/cjs/common/sort.js +15 -12
  66. package/cjs/common/sort.js.map +1 -1
  67. package/cjs/common/text.d.ts +0 -2
  68. package/cjs/common/text.js +8 -14
  69. package/cjs/common/text.js.map +1 -1
  70. package/cjs/common/utils.js +1 -1
  71. package/cjs/common/utils.js.map +1 -1
  72. package/cjs/core/camera.js +3 -3
  73. package/cjs/core/camera.js.map +1 -1
  74. package/cjs/core/contributions/layerHandler/modules.js +2 -5
  75. package/cjs/core/contributions/layerHandler/modules.js.map +1 -1
  76. package/cjs/core/stage.d.ts +2 -2
  77. package/cjs/core/stage.js +23 -11
  78. package/cjs/core/stage.js.map +1 -1
  79. package/cjs/event/federated-event/base-event.js +12 -2
  80. package/cjs/event/federated-event/base-event.js.map +1 -1
  81. package/cjs/graphic/arc.d.ts +6 -4
  82. package/cjs/graphic/arc.js +46 -17
  83. package/cjs/graphic/arc.js.map +1 -1
  84. package/cjs/graphic/arc3d.d.ts +2 -2
  85. package/cjs/graphic/arc3d.js +8 -9
  86. package/cjs/graphic/arc3d.js.map +1 -1
  87. package/cjs/graphic/area.d.ts +5 -3
  88. package/cjs/graphic/area.js +27 -12
  89. package/cjs/graphic/area.js.map +1 -1
  90. package/cjs/graphic/builtin-symbol/index.d.ts +1 -1
  91. package/cjs/graphic/builtin-symbol/thin-triangle.d.ts +2 -2
  92. package/cjs/graphic/builtin-symbol/thin-triangle.js +2 -2
  93. package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  94. package/cjs/graphic/builtin-symbol/triangle-down.d.ts +1 -2
  95. package/cjs/graphic/builtin-symbol/triangle-down.js +4 -9
  96. package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
  97. package/cjs/graphic/builtin-symbol/triangle-left.d.ts +0 -1
  98. package/cjs/graphic/builtin-symbol/triangle-left.js +3 -8
  99. package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
  100. package/cjs/graphic/builtin-symbol/triangle-right.d.ts +1 -2
  101. package/cjs/graphic/builtin-symbol/triangle-right.js +4 -9
  102. package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
  103. package/cjs/graphic/builtin-symbol/triangle-up.d.ts +1 -2
  104. package/cjs/graphic/builtin-symbol/triangle-up.js +4 -9
  105. package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
  106. package/cjs/graphic/builtin-symbol/triangle.d.ts +1 -2
  107. package/cjs/graphic/builtin-symbol/triangle.js +1 -3
  108. package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
  109. package/cjs/graphic/builtin-symbol/utils.js +1 -5
  110. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  111. package/cjs/graphic/circle.d.ts +5 -3
  112. package/cjs/graphic/circle.js +20 -12
  113. package/cjs/graphic/circle.js.map +1 -1
  114. package/cjs/graphic/config.js +7 -3
  115. package/cjs/graphic/config.js.map +1 -1
  116. package/cjs/graphic/glyph.d.ts +4 -2
  117. package/cjs/graphic/glyph.js +9 -2
  118. package/cjs/graphic/glyph.js.map +1 -1
  119. package/cjs/graphic/graphic-creator.js.map +1 -1
  120. package/cjs/graphic/graphic-service/common-outer-boder-bounds.d.ts +3 -0
  121. package/cjs/graphic/graphic-service/common-outer-boder-bounds.js +17 -0
  122. package/cjs/graphic/graphic-service/common-outer-boder-bounds.js.map +1 -0
  123. package/cjs/graphic/graphic-service/graphic-service.d.ts +7 -42
  124. package/cjs/graphic/graphic-service/graphic-service.js +21 -396
  125. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  126. package/cjs/graphic/graphic-service/symbol-outer-border-bounds.d.ts +3 -0
  127. package/cjs/graphic/graphic-service/symbol-outer-border-bounds.js +17 -0
  128. package/cjs/graphic/graphic-service/symbol-outer-border-bounds.js.map +1 -0
  129. package/cjs/graphic/graphic.d.ts +12 -9
  130. package/cjs/graphic/graphic.js +17 -2
  131. package/cjs/graphic/graphic.js.map +1 -1
  132. package/cjs/graphic/group.d.ts +7 -3
  133. package/cjs/graphic/group.js +34 -22
  134. package/cjs/graphic/group.js.map +1 -1
  135. package/cjs/graphic/image.d.ts +3 -2
  136. package/cjs/graphic/image.js +14 -9
  137. package/cjs/graphic/image.js.map +1 -1
  138. package/cjs/graphic/line.d.ts +5 -3
  139. package/cjs/graphic/line.js +24 -11
  140. package/cjs/graphic/line.js.map +1 -1
  141. package/cjs/graphic/node-tree.js.map +1 -1
  142. package/cjs/graphic/path.d.ts +3 -3
  143. package/cjs/graphic/path.js +17 -13
  144. package/cjs/graphic/path.js.map +1 -1
  145. package/cjs/graphic/polygon.d.ts +4 -3
  146. package/cjs/graphic/polygon.js +16 -11
  147. package/cjs/graphic/polygon.js.map +1 -1
  148. package/cjs/graphic/pyramid3d.d.ts +2 -2
  149. package/cjs/graphic/pyramid3d.js +10 -9
  150. package/cjs/graphic/pyramid3d.js.map +1 -1
  151. package/cjs/graphic/rect.d.ts +3 -3
  152. package/cjs/graphic/rect.js +16 -12
  153. package/cjs/graphic/rect.js.map +1 -1
  154. package/cjs/graphic/rect3d.js +2 -2
  155. package/cjs/graphic/rect3d.js.map +1 -1
  156. package/cjs/graphic/richtext/icon.d.ts +2 -2
  157. package/cjs/graphic/richtext/icon.js.map +1 -1
  158. package/cjs/graphic/richtext/utils.js +12 -21
  159. package/cjs/graphic/richtext/utils.js.map +1 -1
  160. package/cjs/graphic/richtext.d.ts +4 -4
  161. package/cjs/graphic/richtext.js +46 -14
  162. package/cjs/graphic/richtext.js.map +1 -1
  163. package/cjs/graphic/shadow-root.d.ts +2 -2
  164. package/cjs/graphic/shadow-root.js.map +1 -1
  165. package/cjs/graphic/symbol.d.ts +5 -3
  166. package/cjs/graphic/symbol.js +25 -12
  167. package/cjs/graphic/symbol.js.map +1 -1
  168. package/cjs/graphic/text.d.ts +10 -10
  169. package/cjs/graphic/text.js +27 -21
  170. package/cjs/graphic/text.js.map +1 -1
  171. package/cjs/graphic/theme.js.map +1 -1
  172. package/cjs/graphic/wrap-text.d.ts +1 -1
  173. package/cjs/graphic/wrap-text.js +2 -2
  174. package/cjs/graphic/wrap-text.js.map +1 -1
  175. package/cjs/index.d.ts +3 -0
  176. package/cjs/index.js +6 -4
  177. package/cjs/index.js.map +1 -1
  178. package/cjs/interface/graphic/arc.d.ts +2 -2
  179. package/cjs/interface/graphic/arc.js.map +1 -1
  180. package/cjs/interface/graphic/arc3d.d.ts +1 -1
  181. package/cjs/interface/graphic/arc3d.js.map +1 -1
  182. package/cjs/interface/graphic/area.d.ts +1 -0
  183. package/cjs/interface/graphic/area.js.map +1 -1
  184. package/cjs/interface/graphic/group.d.ts +1 -1
  185. package/cjs/interface/graphic/group.js.map +1 -1
  186. package/cjs/interface/graphic/line.d.ts +1 -0
  187. package/cjs/interface/graphic/line.js.map +1 -1
  188. package/cjs/interface/graphic/richText.d.ts +1 -0
  189. package/cjs/interface/graphic/richText.js.map +1 -1
  190. package/cjs/interface/graphic-service.d.ts +10 -17
  191. package/cjs/interface/graphic-service.js.map +1 -1
  192. package/cjs/interface/graphic.d.ts +2 -0
  193. package/cjs/interface/graphic.js.map +1 -1
  194. package/cjs/picker/pick-interceptor.d.ts +1 -1
  195. package/cjs/picker/pick-interceptor.js +6 -44
  196. package/cjs/picker/pick-interceptor.js.map +1 -1
  197. package/cjs/picker/picker-service.js +4 -5
  198. package/cjs/picker/picker-service.js.map +1 -1
  199. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.d.ts +1 -0
  200. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js +8 -2
  201. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  202. package/cjs/plugins/builtin-plugin/edit-module.d.ts +22 -0
  203. package/cjs/plugins/builtin-plugin/edit-module.js +94 -0
  204. package/cjs/plugins/builtin-plugin/edit-module.js.map +1 -0
  205. package/cjs/plugins/builtin-plugin/flex-layout-plugin.d.ts +1 -0
  206. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +8 -2
  207. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  208. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +2 -2
  209. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  210. package/cjs/plugins/builtin-plugin/react-attribute-plugin.d.ts +2 -1
  211. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js +15 -7
  212. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  213. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.d.ts +76 -0
  214. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +338 -0
  215. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -0
  216. package/cjs/render/contributions/render/arc-render.js +12 -28
  217. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  218. package/cjs/render/contributions/render/area-render.js +12 -7
  219. package/cjs/render/contributions/render/area-render.js.map +1 -1
  220. package/cjs/render/contributions/render/base-3d-render.d.ts +10 -0
  221. package/cjs/render/contributions/render/base-3d-render.js +63 -0
  222. package/cjs/render/contributions/render/base-3d-render.js.map +1 -0
  223. package/cjs/render/contributions/render/base-render.d.ts +1 -1
  224. package/cjs/render/contributions/render/base-render.js +5 -5
  225. package/cjs/render/contributions/render/base-render.js.map +1 -1
  226. package/cjs/render/contributions/render/draw-interceptor.js +7 -51
  227. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  228. package/cjs/render/contributions/render/group-render.js +4 -5
  229. package/cjs/render/contributions/render/group-render.js.map +1 -1
  230. package/cjs/render/contributions/render/index.d.ts +1 -0
  231. package/cjs/render/contributions/render/index.js +3 -3
  232. package/cjs/render/contributions/render/index.js.map +1 -1
  233. package/cjs/render/contributions/render/line-render.js +6 -3
  234. package/cjs/render/contributions/render/line-render.js.map +1 -1
  235. package/cjs/render/contributions/render/pyramid3d-render.d.ts +3 -5
  236. package/cjs/render/contributions/render/pyramid3d-render.js +4 -54
  237. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  238. package/cjs/render/contributions/render/rect3d-render.d.ts +3 -5
  239. package/cjs/render/contributions/render/rect3d-render.js +4 -53
  240. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  241. package/cjs/render/contributions/render/symbol-render.js +9 -18
  242. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  243. package/cjs/render/contributions/render/utils.d.ts +24 -0
  244. package/cjs/render/contributions/render/utils.js +51 -21
  245. package/cjs/render/contributions/render/utils.js.map +1 -1
  246. package/dist/index.es.js +9760 -9617
  247. package/es/allocator/matrix-allocate.d.ts +1 -1
  248. package/es/allocator/matrix-allocate.js +3 -3
  249. package/es/allocator/matrix-allocate.js.map +1 -1
  250. package/es/animate/Ticker/default-ticker.d.ts +2 -53
  251. package/es/animate/Ticker/default-ticker.js +3 -106
  252. package/es/animate/Ticker/default-ticker.js.map +1 -1
  253. package/es/animate/Ticker/index.d.ts +4 -0
  254. package/es/animate/Ticker/index.js +8 -0
  255. package/es/animate/Ticker/index.js.map +1 -1
  256. package/es/animate/Ticker/manual-ticker-handler.d.ts +15 -0
  257. package/es/animate/Ticker/manual-ticker-handler.js +28 -0
  258. package/es/animate/Ticker/manual-ticker-handler.js.map +1 -0
  259. package/es/animate/Ticker/manual-ticker.d.ts +19 -0
  260. package/es/animate/Ticker/manual-ticker.js +31 -0
  261. package/es/animate/Ticker/manual-ticker.js.map +1 -0
  262. package/es/animate/Ticker/raf-tick-handler.d.ts +9 -0
  263. package/es/animate/Ticker/raf-tick-handler.js +22 -0
  264. package/es/animate/Ticker/raf-tick-handler.js.map +1 -0
  265. package/es/animate/Ticker/timeout-tick-handler.d.ts +9 -0
  266. package/es/animate/Ticker/timeout-tick-handler.js +20 -0
  267. package/es/animate/Ticker/timeout-tick-handler.js.map +1 -0
  268. package/es/animate/Ticker/type.d.ts +6 -0
  269. package/es/animate/Ticker/type.js +7 -0
  270. package/es/animate/Ticker/type.js.map +1 -0
  271. package/es/animate/animate.js +4 -2
  272. package/es/animate/animate.js.map +1 -1
  273. package/es/animate/custom-animate.d.ts +5 -16
  274. package/es/animate/custom-animate.js +9 -58
  275. package/es/animate/custom-animate.js.map +1 -1
  276. package/es/animate/group-fade.d.ts +16 -0
  277. package/es/animate/group-fade.js +56 -0
  278. package/es/animate/group-fade.js.map +1 -0
  279. package/es/animate/index.d.ts +1 -0
  280. package/es/animate/index.js +2 -0
  281. package/es/animate/index.js.map +1 -1
  282. package/es/canvas/conical-gradient.js.map +1 -1
  283. package/es/canvas/contributions/base-canvas.js +3 -15
  284. package/es/canvas/contributions/base-canvas.js.map +1 -1
  285. package/es/canvas/util.d.ts +0 -1
  286. package/es/canvas/util.js +7 -17
  287. package/es/canvas/util.js.map +1 -1
  288. package/es/common/3d-interceptor.d.ts +3 -0
  289. package/es/common/3d-interceptor.js +46 -0
  290. package/es/common/3d-interceptor.js.map +1 -0
  291. package/es/common/bezier-utils.js +2 -1
  292. package/es/common/canvas-utils.d.ts +1 -1
  293. package/es/common/canvas-utils.js +15 -30
  294. package/es/common/canvas-utils.js.map +1 -1
  295. package/es/common/matrix.d.ts +11 -3
  296. package/es/common/matrix.js +90 -17
  297. package/es/common/matrix.js.map +1 -1
  298. package/es/common/render-command-list.js +1 -2
  299. package/es/common/render-curve.js +22 -32
  300. package/es/common/render-curve.js.map +1 -1
  301. package/es/common/render-utils.js +2 -1
  302. package/es/common/segment/catmull-rom-close.d.ts +41 -0
  303. package/es/common/segment/catmull-rom-close.js +74 -0
  304. package/es/common/segment/catmull-rom-close.js.map +1 -0
  305. package/es/common/segment/catmull-rom.d.ts +38 -0
  306. package/es/common/segment/catmull-rom.js +92 -0
  307. package/es/common/segment/catmull-rom.js.map +1 -0
  308. package/es/common/segment/index.d.ts +5 -2
  309. package/es/common/segment/index.js +11 -0
  310. package/es/common/segment/index.js.map +1 -1
  311. package/es/common/sort.js +15 -12
  312. package/es/common/sort.js.map +1 -1
  313. package/es/common/text.d.ts +0 -2
  314. package/es/common/text.js +6 -11
  315. package/es/common/text.js.map +1 -1
  316. package/es/common/utils.js +1 -1
  317. package/es/common/utils.js.map +1 -1
  318. package/es/core/camera.js +5 -3
  319. package/es/core/camera.js.map +1 -1
  320. package/es/core/contributions/layerHandler/modules.js +2 -9
  321. package/es/core/contributions/layerHandler/modules.js.map +1 -1
  322. package/es/core/stage.d.ts +2 -2
  323. package/es/core/stage.js +22 -14
  324. package/es/core/stage.js.map +1 -1
  325. package/es/event/federated-event/base-event.js +12 -2
  326. package/es/event/federated-event/base-event.js.map +1 -1
  327. package/es/graphic/arc.d.ts +6 -4
  328. package/es/graphic/arc.js +47 -16
  329. package/es/graphic/arc.js.map +1 -1
  330. package/es/graphic/arc3d.d.ts +2 -2
  331. package/es/graphic/arc3d.js +7 -10
  332. package/es/graphic/arc3d.js.map +1 -1
  333. package/es/graphic/area.d.ts +5 -3
  334. package/es/graphic/area.js +28 -11
  335. package/es/graphic/area.js.map +1 -1
  336. package/es/graphic/builtin-symbol/index.d.ts +1 -1
  337. package/es/graphic/builtin-symbol/thin-triangle.d.ts +2 -2
  338. package/es/graphic/builtin-symbol/thin-triangle.js +2 -2
  339. package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  340. package/es/graphic/builtin-symbol/triangle-down.d.ts +1 -2
  341. package/es/graphic/builtin-symbol/triangle-down.js +2 -7
  342. package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
  343. package/es/graphic/builtin-symbol/triangle-left.d.ts +0 -1
  344. package/es/graphic/builtin-symbol/triangle-left.js +1 -6
  345. package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
  346. package/es/graphic/builtin-symbol/triangle-right.d.ts +1 -2
  347. package/es/graphic/builtin-symbol/triangle-right.js +2 -7
  348. package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
  349. package/es/graphic/builtin-symbol/triangle-up.d.ts +1 -2
  350. package/es/graphic/builtin-symbol/triangle-up.js +2 -7
  351. package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
  352. package/es/graphic/builtin-symbol/triangle.d.ts +1 -2
  353. package/es/graphic/builtin-symbol/triangle.js +1 -3
  354. package/es/graphic/builtin-symbol/triangle.js.map +1 -1
  355. package/es/graphic/builtin-symbol/utils.js +1 -4
  356. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  357. package/es/graphic/circle.d.ts +5 -3
  358. package/es/graphic/circle.js +23 -9
  359. package/es/graphic/circle.js.map +1 -1
  360. package/es/graphic/config.js +7 -3
  361. package/es/graphic/config.js.map +1 -1
  362. package/es/graphic/glyph.d.ts +4 -2
  363. package/es/graphic/glyph.js +9 -1
  364. package/es/graphic/glyph.js.map +1 -1
  365. package/es/graphic/graphic-creator.js.map +1 -1
  366. package/es/graphic/graphic-service/common-outer-boder-bounds.d.ts +3 -0
  367. package/es/graphic/graphic-service/common-outer-boder-bounds.js +9 -0
  368. package/es/graphic/graphic-service/common-outer-boder-bounds.js.map +1 -0
  369. package/es/graphic/graphic-service/graphic-service.d.ts +7 -42
  370. package/es/graphic/graphic-service/graphic-service.js +14 -388
  371. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  372. package/es/graphic/graphic-service/symbol-outer-border-bounds.d.ts +3 -0
  373. package/es/graphic/graphic-service/symbol-outer-border-bounds.js +11 -0
  374. package/es/graphic/graphic-service/symbol-outer-border-bounds.js.map +1 -0
  375. package/es/graphic/graphic.d.ts +12 -9
  376. package/es/graphic/graphic.js +20 -3
  377. package/es/graphic/graphic.js.map +1 -1
  378. package/es/graphic/group.d.ts +7 -3
  379. package/es/graphic/group.js +32 -22
  380. package/es/graphic/group.js.map +1 -1
  381. package/es/graphic/image.d.ts +3 -2
  382. package/es/graphic/image.js +15 -8
  383. package/es/graphic/image.js.map +1 -1
  384. package/es/graphic/line.d.ts +5 -3
  385. package/es/graphic/line.js +25 -10
  386. package/es/graphic/line.js.map +1 -1
  387. package/es/graphic/node-tree.js.map +1 -1
  388. package/es/graphic/path.d.ts +3 -3
  389. package/es/graphic/path.js +18 -12
  390. package/es/graphic/path.js.map +1 -1
  391. package/es/graphic/polygon.d.ts +4 -3
  392. package/es/graphic/polygon.js +17 -10
  393. package/es/graphic/polygon.js.map +1 -1
  394. package/es/graphic/pyramid3d.d.ts +2 -2
  395. package/es/graphic/pyramid3d.js +8 -10
  396. package/es/graphic/pyramid3d.js.map +1 -1
  397. package/es/graphic/rect.d.ts +3 -3
  398. package/es/graphic/rect.js +16 -10
  399. package/es/graphic/rect.js.map +1 -1
  400. package/es/graphic/rect3d.js +1 -3
  401. package/es/graphic/rect3d.js.map +1 -1
  402. package/es/graphic/richtext/icon.d.ts +2 -2
  403. package/es/graphic/richtext/icon.js.map +1 -1
  404. package/es/graphic/richtext/utils.js +9 -20
  405. package/es/graphic/richtext/utils.js.map +1 -1
  406. package/es/graphic/richtext.d.ts +4 -4
  407. package/es/graphic/richtext.js +45 -13
  408. package/es/graphic/richtext.js.map +1 -1
  409. package/es/graphic/shadow-root.d.ts +2 -2
  410. package/es/graphic/shadow-root.js.map +1 -1
  411. package/es/graphic/symbol.d.ts +5 -3
  412. package/es/graphic/symbol.js +26 -11
  413. package/es/graphic/symbol.js.map +1 -1
  414. package/es/graphic/text.d.ts +10 -10
  415. package/es/graphic/text.js +28 -23
  416. package/es/graphic/text.js.map +1 -1
  417. package/es/graphic/theme.js.map +1 -1
  418. package/es/graphic/wrap-text.d.ts +1 -1
  419. package/es/graphic/wrap-text.js +1 -3
  420. package/es/graphic/wrap-text.js.map +1 -1
  421. package/es/index.d.ts +3 -0
  422. package/es/index.js +6 -0
  423. package/es/index.js.map +1 -1
  424. package/es/interface/graphic/arc.d.ts +2 -2
  425. package/es/interface/graphic/arc.js.map +1 -1
  426. package/es/interface/graphic/arc3d.d.ts +1 -1
  427. package/es/interface/graphic/arc3d.js.map +1 -1
  428. package/es/interface/graphic/area.d.ts +1 -0
  429. package/es/interface/graphic/area.js.map +1 -1
  430. package/es/interface/graphic/group.d.ts +1 -1
  431. package/es/interface/graphic/group.js.map +1 -1
  432. package/es/interface/graphic/line.d.ts +1 -0
  433. package/es/interface/graphic/line.js.map +1 -1
  434. package/es/interface/graphic/richText.d.ts +1 -0
  435. package/es/interface/graphic/richText.js.map +1 -1
  436. package/es/interface/graphic-service.d.ts +10 -17
  437. package/es/interface/graphic-service.js.map +1 -1
  438. package/es/interface/graphic.d.ts +2 -0
  439. package/es/interface/graphic.js.map +1 -1
  440. package/es/picker/pick-interceptor.d.ts +1 -1
  441. package/es/picker/pick-interceptor.js +10 -46
  442. package/es/picker/pick-interceptor.js.map +1 -1
  443. package/es/picker/picker-service.js +1 -1
  444. package/es/picker/picker-service.js.map +1 -1
  445. package/es/plugins/builtin-plugin/3dview-transform-plugin.d.ts +1 -0
  446. package/es/plugins/builtin-plugin/3dview-transform-plugin.js +6 -0
  447. package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  448. package/es/plugins/builtin-plugin/edit-module.d.ts +22 -0
  449. package/es/plugins/builtin-plugin/edit-module.js +86 -0
  450. package/es/plugins/builtin-plugin/edit-module.js.map +1 -0
  451. package/es/plugins/builtin-plugin/flex-layout-plugin.d.ts +1 -0
  452. package/es/plugins/builtin-plugin/flex-layout-plugin.js +6 -0
  453. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  454. package/es/plugins/builtin-plugin/html-attribute-plugin.js +2 -2
  455. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  456. package/es/plugins/builtin-plugin/react-attribute-plugin.d.ts +2 -1
  457. package/es/plugins/builtin-plugin/react-attribute-plugin.js +15 -7
  458. package/es/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  459. package/es/plugins/builtin-plugin/richtext-edit-plugin.d.ts +76 -0
  460. package/es/plugins/builtin-plugin/richtext-edit-plugin.js +334 -0
  461. package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -0
  462. package/es/render/contributions/render/arc-render.js +7 -16
  463. package/es/render/contributions/render/arc-render.js.map +1 -1
  464. package/es/render/contributions/render/area-render.js +12 -6
  465. package/es/render/contributions/render/area-render.js.map +1 -1
  466. package/es/render/contributions/render/base-3d-render.d.ts +10 -0
  467. package/es/render/contributions/render/base-3d-render.js +57 -0
  468. package/es/render/contributions/render/base-3d-render.js.map +1 -0
  469. package/es/render/contributions/render/base-render.d.ts +1 -1
  470. package/es/render/contributions/render/base-render.js +3 -1
  471. package/es/render/contributions/render/base-render.js.map +1 -1
  472. package/es/render/contributions/render/draw-interceptor.js +7 -51
  473. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  474. package/es/render/contributions/render/group-render.js +3 -1
  475. package/es/render/contributions/render/group-render.js.map +1 -1
  476. package/es/render/contributions/render/index.d.ts +1 -0
  477. package/es/render/contributions/render/index.js +2 -0
  478. package/es/render/contributions/render/index.js.map +1 -1
  479. package/es/render/contributions/render/line-render.js +6 -3
  480. package/es/render/contributions/render/line-render.js.map +1 -1
  481. package/es/render/contributions/render/pyramid3d-render.d.ts +3 -5
  482. package/es/render/contributions/render/pyramid3d-render.js +4 -56
  483. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  484. package/es/render/contributions/render/rect3d-render.d.ts +3 -5
  485. package/es/render/contributions/render/rect3d-render.js +4 -55
  486. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  487. package/es/render/contributions/render/symbol-render.js +9 -18
  488. package/es/render/contributions/render/symbol-render.js.map +1 -1
  489. package/es/render/contributions/render/utils.d.ts +24 -0
  490. package/es/render/contributions/render/utils.js +41 -13
  491. package/es/render/contributions/render/utils.js.map +1 -1
  492. package/package.json +4 -4
  493. package/cjs/graphic/graphic-service/common-contribution.d.ts +0 -5
  494. package/cjs/graphic/graphic-service/common-contribution.js +0 -19
  495. package/cjs/graphic/graphic-service/common-contribution.js.map +0 -1
  496. package/cjs/graphic/graphic-service/symbol-contribution.d.ts +0 -6
  497. package/cjs/graphic/graphic-service/symbol-contribution.js +0 -21
  498. package/cjs/graphic/graphic-service/symbol-contribution.js.map +0 -1
  499. package/es/graphic/graphic-service/common-contribution.d.ts +0 -5
  500. package/es/graphic/graphic-service/common-contribution.js +0 -11
  501. package/es/graphic/graphic-service/common-contribution.js.map +0 -1
  502. package/es/graphic/graphic-service/symbol-contribution.d.ts +0 -6
  503. package/es/graphic/graphic-service/symbol-contribution.js +0 -15
  504. package/es/graphic/graphic-service/symbol-contribution.js.map +0 -1
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.genCatmullRomClosedSegments = exports.CatmullRomClosed = void 0;
6
+
7
+ const catmull_rom_1 = require("./catmull-rom");
8
+
9
+ class CatmullRomClosed {
10
+ constructor(context, alpha = .5, startPoint) {
11
+ this.context = context, this.startPoint = startPoint, this._alpha = alpha;
12
+ }
13
+ areaStart() {
14
+ this._line = 0;
15
+ }
16
+ areaEnd() {
17
+ this._line = NaN;
18
+ }
19
+ lineStart() {
20
+ this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN,
21
+ this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
22
+ }
23
+ lineEnd() {
24
+ switch (this._point) {
25
+ case 1:
26
+ this.context.moveTo(this._x3, this._y3, this.lastPoint1), this.context.closePath();
27
+ break;
28
+
29
+ case 2:
30
+ this.context.lineTo(this._x3, this._y3, !1 !== this._lastDefined1 && !1 !== this._lastDefined2, this.lastPoint1),
31
+ this.context.closePath();
32
+ break;
33
+
34
+ case 3:
35
+ this.point({
36
+ x: this._x3,
37
+ y: this._y3
38
+ }), this.point({
39
+ x: this._x4,
40
+ y: this._y4
41
+ }), this.point({
42
+ x: this._x5,
43
+ y: this._y5
44
+ });
45
+ }
46
+ }
47
+ point(p) {
48
+ const {x: x, y: y} = p;
49
+ if (this._point) {
50
+ const x23 = this._x2 - x, y23 = this._y2 - y;
51
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
52
+ }
53
+ switch (this._point) {
54
+ case 0:
55
+ this._point = 1, this._x3 = x, this._y3 = y;
56
+ break;
57
+
58
+ case 1:
59
+ this._point = 2, this.context.moveTo(this._x4 = x, this._y4 = y, p);
60
+ break;
61
+
62
+ case 2:
63
+ this._point = 3, this._x5 = x, this._y5 = y;
64
+ break;
65
+
66
+ default:
67
+ (0, catmull_rom_1.point)(this, x, y, !1 !== this._lastDefined1 && !1 !== this._lastDefined2, p);
68
+ }
69
+ this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a,
70
+ this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = x,
71
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y, this._lastDefined1 = this._lastDefined2,
72
+ this._lastDefined2 = p.defined, this.lastPoint0 = this.lastPoint1, this.lastPoint1 = p;
73
+ }
74
+ tryUpdateLength() {
75
+ return this.context.tryUpdateLength();
76
+ }
77
+ }
78
+
79
+ exports.CatmullRomClosed = CatmullRomClosed, exports.genCatmullRomClosedSegments = (0,
80
+ catmull_rom_1.commonGenCatmullRomSegments)("catmullRomClosed", CatmullRomClosed);
81
+ //# sourceMappingURL=catmull-rom-close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/segment/catmull-rom-close.ts"],"names":[],"mappings":"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","file":"catmull-rom-close.js","sourcesContent":["import { epsilon, type IPointLike } from '@visactor/vutils';\nimport { genLinearSegments } from './linear';\nimport { genCurveSegments, genSegContext } from './common';\nimport type { ICurvedSegment, IGenSegmentParams, ILinearSegment, ISegPath2D } from '../../interface/curve';\nimport { commonGenCatmullRomSegments, point } from './catmull-rom';\n\nexport class CatmullRomClosed implements ICurvedSegment {\n private _lastDefined1?: boolean;\n private _lastDefined2?: boolean;\n declare context: ISegPath2D;\n\n protected startPoint?: IPointLike;\n lastPoint0?: IPointLike;\n lastPoint1?: IPointLike;\n\n constructor(context: ISegPath2D, alpha: number = 0.5, startPoint?: IPointLike) {\n this.context = context;\n this.startPoint = startPoint;\n this._alpha = alpha;\n }\n _alpha: number;\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _x2: number;\n _y2: number;\n _x3: number;\n _y3: number;\n _x4: number;\n _y4: number;\n _x5: number;\n _y5: number;\n _line: number;\n _point: number;\n _l01_a: number;\n _l12_a: number;\n _l23_a: number;\n _l01_2a: number;\n _l12_2a: number;\n _l23_2a: number;\n\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._x0 =\n this._x1 =\n this._x2 =\n this._x3 =\n this._x4 =\n this._x5 =\n this._y0 =\n this._y1 =\n this._y2 =\n this._y3 =\n this._y4 =\n this._y5 =\n NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n }\n lineEnd() {\n switch (this._point) {\n case 1: {\n this.context.moveTo(this._x3, this._y3, this.lastPoint1);\n this.context.closePath();\n break;\n }\n case 2: {\n this.context.lineTo(\n this._x3,\n this._y3,\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n this.lastPoint1\n );\n this.context.closePath();\n break;\n }\n case 3: {\n this.point({ x: this._x3, y: this._y3 });\n this.point({ x: this._x4, y: this._y4 });\n this.point({ x: this._x5, y: this._y5 });\n break;\n }\n }\n }\n point(p: IPointLike): void {\n const { x, y } = p;\n\n if (this._point) {\n const x23 = this._x2 - x;\n const y23 = this._y2 - y;\n this._l23_a = Math.sqrt((this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n (this._x3 = x), (this._y3 = y);\n break;\n case 1:\n this._point = 2;\n this.context.moveTo((this._x4 = x), (this._y4 = y), p);\n break;\n case 2:\n this._point = 3;\n (this._x5 = x), (this._y5 = y);\n break;\n default:\n point(this as any, x, y, this._lastDefined1 !== false && this._lastDefined2 !== false, p);\n break;\n }\n\n (this._l01_a = this._l12_a), (this._l12_a = this._l23_a);\n (this._l01_2a = this._l12_2a), (this._l12_2a = this._l23_2a);\n (this._x0 = this._x1), (this._x1 = this._x2), (this._x2 = x);\n (this._y0 = this._y1), (this._y1 = this._y2), (this._y2 = y);\n\n this._lastDefined1 = this._lastDefined2;\n this._lastDefined2 = p.defined;\n this.lastPoint0 = this.lastPoint1;\n this.lastPoint1 = p;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\n// export function genCatmullRomClosedTypeSegments(path: ILinearSegment, points: IPointLike[]): void {\n// return genCurveSegments(path, points, 2);\n// }\n\nexport const genCatmullRomClosedSegments = commonGenCatmullRomSegments('catmullRomClosed', CatmullRomClosed);\n\n// export function genCatmullRomClosedSegments(\n// points: IPointLike[],\n// alpha: number,\n// params: IGenSegmentParams = {}\n// ): ISegPath2D | null {\n// const { direction, startPoint } = params;\n// if (points.length < 2 - Number(!!startPoint)) {\n// return null;\n// }\n// if (points.length < 3 - Number(!!startPoint)) {\n// return genLinearSegments(points, params);\n// }\n\n// const segContext = genSegContext('catmullRom', direction, points);\n\n// const gatmullRom = new CatmullRomClosed(segContext, alpha, startPoint);\n\n// genCatmullRomClosedTypeSegments(gatmullRom, points);\n\n// return segContext;\n// }\n"]}
@@ -0,0 +1,38 @@
1
+ import { type IPointLike } from '@visactor/vutils';
2
+ import type { ICurvedSegment, IGenSegmentParams, ISegPath2D } from '../../interface/curve';
3
+ import type { ICurveType } from '../../interface';
4
+ export declare function point(curveClass: CatmullRom, x: number, y: number, defined: boolean, p: IPointLike): void;
5
+ export declare class CatmullRom implements ICurvedSegment {
6
+ private _lastDefined1?;
7
+ private _lastDefined2?;
8
+ context: ISegPath2D;
9
+ protected startPoint?: IPointLike;
10
+ lastPoint0?: IPointLike;
11
+ lastPoint1?: IPointLike;
12
+ constructor(context: ISegPath2D, alpha?: number, startPoint?: IPointLike);
13
+ _alpha: number;
14
+ _x: number;
15
+ _y: number;
16
+ _x0: number;
17
+ _x1: number;
18
+ _y0: number;
19
+ _y1: number;
20
+ _x2: number;
21
+ _y2: number;
22
+ _line: number;
23
+ _point: number;
24
+ _l01_a: number;
25
+ _l12_a: number;
26
+ _l23_a: number;
27
+ _l01_2a: number;
28
+ _l12_2a: number;
29
+ _l23_2a: number;
30
+ areaStart(): void;
31
+ areaEnd(): void;
32
+ lineStart(): void;
33
+ lineEnd(): void;
34
+ point(p: IPointLike): void;
35
+ tryUpdateLength(): number;
36
+ }
37
+ export declare function commonGenCatmullRomSegments(type: ICurveType, cons: any): (points: IPointLike[], alpha: number, params?: IGenSegmentParams) => ISegPath2D | null;
38
+ export declare const genCatmullRomSegments: (points: IPointLike[], alpha: number, params?: IGenSegmentParams) => ISegPath2D | null;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.genCatmullRomSegments = exports.commonGenCatmullRomSegments = exports.CatmullRom = exports.point = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils"), linear_1 = require("./linear"), common_1 = require("./common");
8
+
9
+ function point(curveClass, x, y, defined, p) {
10
+ let x1 = curveClass._x1, y1 = curveClass._y1, x2 = curveClass._x2, y2 = curveClass._y2;
11
+ if (curveClass._l01_a > vutils_1.epsilon) {
12
+ const a = 2 * curveClass._l01_2a + 3 * curveClass._l01_a * curveClass._l12_a + curveClass._l12_2a, n = 3 * curveClass._l01_a * (curveClass._l01_a + curveClass._l12_a);
13
+ x1 = (x1 * a - curveClass._x0 * curveClass._l12_2a + curveClass._x2 * curveClass._l01_2a) / n,
14
+ y1 = (y1 * a - curveClass._y0 * curveClass._l12_2a + curveClass._y2 * curveClass._l01_2a) / n;
15
+ }
16
+ if (curveClass._l23_a > vutils_1.epsilon) {
17
+ const b = 2 * curveClass._l23_2a + 3 * curveClass._l23_a * curveClass._l12_a + curveClass._l12_2a, m = 3 * curveClass._l23_a * (curveClass._l23_a + curveClass._l12_a);
18
+ x2 = (x2 * b + curveClass._x1 * curveClass._l23_2a - x * curveClass._l12_2a) / m,
19
+ y2 = (y2 * b + curveClass._y1 * curveClass._l23_2a - y * curveClass._l12_2a) / m;
20
+ }
21
+ curveClass.context.bezierCurveTo(x1, y1, x2, y2, curveClass._x2, curveClass._y2, defined, curveClass.lastPoint1);
22
+ }
23
+
24
+ exports.point = point;
25
+
26
+ class CatmullRom {
27
+ constructor(context, alpha = .5, startPoint) {
28
+ this.context = context, this.startPoint = startPoint, this._alpha = alpha;
29
+ }
30
+ areaStart() {
31
+ this._line = 0;
32
+ }
33
+ areaEnd() {
34
+ this._line = NaN;
35
+ }
36
+ lineStart() {
37
+ this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
38
+ }
39
+ lineEnd() {
40
+ switch (this._point) {
41
+ case 2:
42
+ this.context.lineTo(this._x2, this._y2, !1 !== this._lastDefined1 && !1 !== this._lastDefined2, this.lastPoint1);
43
+ break;
44
+
45
+ case 3:
46
+ this.point({
47
+ x: this._x2,
48
+ y: this._y2
49
+ });
50
+ }
51
+ (this._line || 0 !== this._line && 1 === this._point) && this.context.closePath(),
52
+ this._line = 1 - this._line;
53
+ }
54
+ point(p) {
55
+ const {x: x, y: y} = p;
56
+ if (this._point) {
57
+ const x23 = this._x2 - x, y23 = this._y2 - y;
58
+ this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
59
+ }
60
+ switch (this._point) {
61
+ case 0:
62
+ this._point = 1, this._line ? this.context.lineTo(x, y, !1 !== this._lastDefined1 && !1 !== this._lastDefined2) : this.context.moveTo(x, y);
63
+ break;
64
+
65
+ case 1:
66
+ this._point = 2;
67
+ break;
68
+
69
+ case 2:
70
+ this._point = 3;
71
+
72
+ default:
73
+ point(this, x, y, !1 !== this._lastDefined1 && !1 !== this._lastDefined2, p);
74
+ }
75
+ this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a,
76
+ this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = x,
77
+ this._y0 = this._y1, this._y1 = this._y2, this._y2 = y, this._lastDefined1 = this._lastDefined2,
78
+ this._lastDefined2 = p.defined, this.lastPoint0 = this.lastPoint1, this.lastPoint1 = p;
79
+ }
80
+ tryUpdateLength() {
81
+ return this.context.tryUpdateLength();
82
+ }
83
+ }
84
+
85
+ function commonGenCatmullRomSegments(type, cons) {
86
+ return function(points, alpha, params = {}) {
87
+ const {direction: direction, startPoint: startPoint} = params;
88
+ if (points.length < 2 - Number(!!startPoint)) return null;
89
+ if (points.length < 3 - Number(!!startPoint)) return (0, linear_1.genLinearSegments)(points, params);
90
+ const segContext = (0, common_1.genSegContext)(type, direction, points), gatmullRom = new cons(segContext, alpha, startPoint);
91
+ return (0, common_1.genCurveSegments)(gatmullRom, points, 2), segContext;
92
+ };
93
+ }
94
+
95
+ exports.CatmullRom = CatmullRom, exports.commonGenCatmullRomSegments = commonGenCatmullRomSegments,
96
+ exports.genCatmullRomSegments = commonGenCatmullRomSegments("catmullRom", CatmullRom);
97
+ //# sourceMappingURL=catmull-rom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/segment/catmull-rom.ts"],"names":[],"mappings":"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","file":"catmull-rom.js","sourcesContent":["import { epsilon, type IPointLike } from '@visactor/vutils';\nimport { genLinearSegments } from './linear';\nimport { genCurveSegments, genSegContext } from './common';\nimport type { ICurvedSegment, IGenSegmentParams, ILinearSegment, ISegPath2D } from '../../interface/curve';\nimport type { ICurveType } from '../../interface';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n// 基于d3-shape重构\n// https://github.com/d3/d3-shape/blob/main/src/curve/basis.js\nexport function point(curveClass: CatmullRom, x: number, y: number, defined: boolean, p: IPointLike) {\n let x1 = curveClass._x1;\n let y1 = curveClass._y1;\n let x2 = curveClass._x2;\n let y2 = curveClass._y2;\n\n if (curveClass._l01_a > epsilon) {\n const a = 2 * curveClass._l01_2a + 3 * curveClass._l01_a * curveClass._l12_a + curveClass._l12_2a;\n const n = 3 * curveClass._l01_a * (curveClass._l01_a + curveClass._l12_a);\n x1 = (x1 * a - curveClass._x0 * curveClass._l12_2a + curveClass._x2 * curveClass._l01_2a) / n;\n y1 = (y1 * a - curveClass._y0 * curveClass._l12_2a + curveClass._y2 * curveClass._l01_2a) / n;\n }\n\n if (curveClass._l23_a > epsilon) {\n const b = 2 * curveClass._l23_2a + 3 * curveClass._l23_a * curveClass._l12_a + curveClass._l12_2a;\n const m = 3 * curveClass._l23_a * (curveClass._l23_a + curveClass._l12_a);\n x2 = (x2 * b + curveClass._x1 * curveClass._l23_2a - x * curveClass._l12_2a) / m;\n y2 = (y2 * b + curveClass._y1 * curveClass._l23_2a - y * curveClass._l12_2a) / m;\n }\n\n curveClass.context.bezierCurveTo(x1, y1, x2, y2, curveClass._x2, curveClass._y2, defined, curveClass.lastPoint1);\n}\n\nexport class CatmullRom implements ICurvedSegment {\n private _lastDefined1?: boolean;\n private _lastDefined2?: boolean;\n declare context: ISegPath2D;\n\n protected startPoint?: IPointLike;\n lastPoint0?: IPointLike;\n lastPoint1?: IPointLike;\n\n constructor(context: ISegPath2D, alpha: number = 0.5, startPoint?: IPointLike) {\n this.context = context;\n this.startPoint = startPoint;\n this._alpha = alpha;\n }\n _alpha: number;\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _x2: number;\n _y2: number;\n _line: number;\n _point: number;\n _l01_a: number;\n _l12_a: number;\n _l23_a: number;\n _l01_2a: number;\n _l12_2a: number;\n _l23_2a: number;\n\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n }\n lineEnd() {\n switch (this._point) {\n case 2:\n this.context.lineTo(\n this._x2,\n this._y2,\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n this.lastPoint1\n );\n break;\n case 3:\n this.point({ x: this._x2, y: this._y2 });\n break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) {\n this.context.closePath();\n }\n this._line = 1 - this._line;\n }\n point(p: IPointLike): void {\n const { x, y } = p;\n\n if (this._point) {\n const x23 = this._x2 - x;\n const y23 = this._y2 - y;\n this._l23_a = Math.sqrt((this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line\n ? this.context.lineTo(x, y, this._lastDefined1 !== false && this._lastDefined2 !== false)\n : this.context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3; // falls through\n default:\n point(this, x, y, this._lastDefined1 !== false && this._lastDefined2 !== false, p);\n break;\n }\n\n (this._l01_a = this._l12_a), (this._l12_a = this._l23_a);\n (this._l01_2a = this._l12_2a), (this._l12_2a = this._l23_2a);\n (this._x0 = this._x1), (this._x1 = this._x2), (this._x2 = x);\n (this._y0 = this._y1), (this._y1 = this._y2), (this._y2 = y);\n\n this._lastDefined1 = this._lastDefined2;\n this._lastDefined2 = p.defined;\n this.lastPoint0 = this.lastPoint1;\n this.lastPoint1 = p;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\n// export function genCatmullRomTypeSegments(path: ILinearSegment, points: IPointLike[]): void {\n// return genCurveSegments(path, points, 2);\n// }\n\nexport function commonGenCatmullRomSegments(type: ICurveType, cons: any) {\n return function genCatmullRomSegments(\n points: IPointLike[],\n alpha: number,\n params: IGenSegmentParams = {}\n ): ISegPath2D | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n if (points.length < 3 - Number(!!startPoint)) {\n return genLinearSegments(points, params);\n }\n\n const segContext = genSegContext(type, direction, points);\n\n const gatmullRom = new cons(segContext, alpha, startPoint);\n\n genCurveSegments(gatmullRom, points, 2);\n // genCatmullRomTypeSegments(gatmullRom, points);\n\n return segContext;\n };\n}\n\nexport const genCatmullRomSegments = commonGenCatmullRomSegments('catmullRom', CatmullRom);\n\n// export function genCatmullRomSegments(\n// points: IPointLike[],\n// alpha: number,\n// params: IGenSegmentParams = {}\n// ): ISegPath2D | null {\n// const { direction, startPoint } = params;\n// if (points.length < 2 - Number(!!startPoint)) {\n// return null;\n// }\n// if (points.length < 3 - Number(!!startPoint)) {\n// return genLinearSegments(points, params);\n// }\n\n// const segContext = genSegContext('catmullRom', direction, points);\n\n// const gatmullRom = new CatmullRom(segContext, alpha, startPoint);\n\n// genCatmullRomTypeSegments(gatmullRom, points);\n\n// return segContext;\n// }\n"]}
@@ -1,9 +1,12 @@
1
1
  import type { IPointLike } from '@visactor/vutils';
2
- import type { ICurveType, IGenSegmentParams, ISegPath2D } from '../../interface';
2
+ import type { ICurveType, ISegPath2D } from '../../interface';
3
3
  export * from './linear';
4
4
  export * from './linear-closed';
5
5
  export * from './basis';
6
6
  export * from './monotone';
7
7
  export * from './step';
8
8
  export * from './curve/curve-context';
9
- export declare function calcLineCache(points: IPointLike[], curveType: ICurveType, params?: IGenSegmentParams): ISegPath2D | null;
9
+ export declare function calcLineCache(points: IPointLike[], curveType: ICurveType, params?: {
10
+ startPoint?: IPointLike;
11
+ curveTension?: number;
12
+ }): ISegPath2D | null;
@@ -19,9 +19,10 @@ Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
20
  }), exports.calcLineCache = void 0;
21
21
 
22
- const linear_1 = require("./linear"), basis_1 = require("./basis"), monotone_1 = require("./monotone"), step_1 = require("./step"), linear_closed_1 = require("./linear-closed");
22
+ const linear_1 = require("./linear"), basis_1 = require("./basis"), monotone_1 = require("./monotone"), step_1 = require("./step"), linear_closed_1 = require("./linear-closed"), catmull_rom_1 = require("./catmull-rom"), catmull_rom_close_1 = require("./catmull-rom-close");
23
23
 
24
24
  function calcLineCache(points, curveType, params) {
25
+ var _a, _b;
25
26
  switch (curveType) {
26
27
  case "linear":
27
28
  default:
@@ -45,6 +46,12 @@ function calcLineCache(points, curveType, params) {
45
46
  case "stepAfter":
46
47
  return (0, step_1.genStepSegments)(points, 1, params);
47
48
 
49
+ case "catmullRom":
50
+ return (0, catmull_rom_1.genCatmullRomSegments)(points, null !== (_a = null == params ? void 0 : params.curveTension) && void 0 !== _a ? _a : .5, params);
51
+
52
+ case "catmullRomClosed":
53
+ return (0, catmull_rom_close_1.genCatmullRomClosedSegments)(points, null !== (_b = null == params ? void 0 : params.curveTension) && void 0 !== _b ? _b : .5, params);
54
+
48
55
  case "linearClosed":
49
56
  return (0, linear_closed_1.genLinearClosedSegments)(points, params);
50
57
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,qCAA6C;AAC7C,mCAA2C;AAC3C,yCAAwE;AACxE,iCAAyC;AACzC,mDAA0D;AAE1D,2CAAyB;AACzB,kDAAgC;AAChC,0CAAwB;AACxB,6CAA2B;AAC3B,yCAAuB;AACvB,wDAAsC;AAEtC,SAAgB,aAAa,CAC3B,MAAoB,EACpB,SAAqB,EACrB,MAA0B;IAE1B,QAAQ,SAAS,EAAE;QACjB,KAAK,QAAQ;YACX,OAAO,IAAA,0BAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,IAAA,wBAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO,IAAA,+BAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,WAAW;YACd,OAAO,IAAA,+BAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO,IAAA,sBAAe,EAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,YAAY;YACf,OAAO,IAAA,sBAAe,EAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5C,KAAK,WAAW;YACd,OAAO,IAAA,sBAAe,EAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5C,KAAK,cAAc;YACjB,OAAO,IAAA,uCAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD;YACE,OAAO,IAAA,0BAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC5C;AACH,CAAC;AAzBD,sCAyBC","file":"index.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport type { ICurveType, IGenSegmentParams, ISegPath2D } from '../../interface';\nimport { genLinearSegments } from './linear';\nimport { genBasisSegments } from './basis';\nimport { genMonotoneXSegments, genMonotoneYSegments } from './monotone';\nimport { genStepSegments } from './step';\nimport { genLinearClosedSegments } from './linear-closed';\n\nexport * from './linear';\nexport * from './linear-closed';\nexport * from './basis';\nexport * from './monotone';\nexport * from './step';\nexport * from './curve/curve-context';\n\nexport function calcLineCache(\n points: IPointLike[],\n curveType: ICurveType,\n params?: IGenSegmentParams\n): ISegPath2D | null {\n switch (curveType) {\n case 'linear':\n return genLinearSegments(points, params);\n case 'basis':\n return genBasisSegments(points, params);\n case 'monotoneX':\n return genMonotoneXSegments(points, params);\n case 'monotoneY':\n return genMonotoneYSegments(points, params);\n case 'step':\n return genStepSegments(points, 0.5, params);\n case 'stepBefore':\n return genStepSegments(points, 0, params);\n case 'stepAfter':\n return genStepSegments(points, 1, params);\n case 'linearClosed':\n return genLinearClosedSegments(points, params);\n default:\n return genLinearSegments(points, params);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,qCAA6C;AAC7C,mCAA2C;AAC3C,yCAAwE;AACxE,iCAAyC;AACzC,mDAA0D;AAC1D,+CAAsD;AACtD,2DAAkE;AAElE,2CAAyB;AACzB,kDAAgC;AAChC,0CAAwB;AACxB,6CAA2B;AAC3B,yCAAuB;AACvB,wDAAsC;AAEtC,SAAgB,aAAa,CAC3B,MAAoB,EACpB,SAAqB,EACrB,MAA2D;;IAE3D,QAAQ,SAAS,EAAE;QACjB,KAAK,QAAQ;YACX,OAAO,IAAA,0BAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,IAAA,wBAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO,IAAA,+BAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,WAAW;YACd,OAAO,IAAA,+BAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO,IAAA,sBAAe,EAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,YAAY;YACf,OAAO,IAAA,sBAAe,EAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5C,KAAK,WAAW;YACd,OAAO,IAAA,sBAAe,EAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5C,KAAK,YAAY;YACf,OAAO,IAAA,mCAAqB,EAAC,MAAM,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5E,KAAK,kBAAkB;YACrB,OAAO,IAAA,+CAA2B,EAAC,MAAM,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QAClF,KAAK,cAAc;YACjB,OAAO,IAAA,uCAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD;YACE,OAAO,IAAA,0BAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC5C;AACH,CAAC;AA7BD,sCA6BC","file":"index.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport type { ICurveType, IGenSegmentParams, ISegPath2D } from '../../interface';\nimport { genLinearSegments } from './linear';\nimport { genBasisSegments } from './basis';\nimport { genMonotoneXSegments, genMonotoneYSegments } from './monotone';\nimport { genStepSegments } from './step';\nimport { genLinearClosedSegments } from './linear-closed';\nimport { genCatmullRomSegments } from './catmull-rom';\nimport { genCatmullRomClosedSegments } from './catmull-rom-close';\n\nexport * from './linear';\nexport * from './linear-closed';\nexport * from './basis';\nexport * from './monotone';\nexport * from './step';\nexport * from './curve/curve-context';\n\nexport function calcLineCache(\n points: IPointLike[],\n curveType: ICurveType,\n params?: { startPoint?: IPointLike; curveTension?: number }\n): ISegPath2D | null {\n switch (curveType) {\n case 'linear':\n return genLinearSegments(points, params);\n case 'basis':\n return genBasisSegments(points, params);\n case 'monotoneX':\n return genMonotoneXSegments(points, params);\n case 'monotoneY':\n return genMonotoneYSegments(points, params);\n case 'step':\n return genStepSegments(points, 0.5, params);\n case 'stepBefore':\n return genStepSegments(points, 0, params);\n case 'stepAfter':\n return genStepSegments(points, 1, params);\n case 'catmullRom':\n return genCatmullRomSegments(points, params?.curveTension ?? 0.5, params);\n case 'catmullRomClosed':\n return genCatmullRomClosedSegments(points, params?.curveTension ?? 0.5, params);\n case 'linearClosed':\n return genLinearClosedSegments(points, params);\n default:\n return genLinearSegments(points, params);\n }\n}\n"]}
@@ -26,8 +26,18 @@ var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, gener
26
26
  }));
27
27
  };
28
28
 
29
- function foreach(graphic, defaultZIndex, cb, reverse = !1, sort3d = !1) {
29
+ function parseChildMap(graphic, defaultZIndex, reverse) {
30
30
  const childMap = {}, zIdxArray = [];
31
+ return graphic.forEachChildren((item => {
32
+ const {zIndex: zIndex = defaultZIndex} = item.attribute;
33
+ childMap[zIndex] ? childMap[zIndex].push(item) : (childMap[zIndex] = [ item ], zIdxArray.push(zIndex));
34
+ }), reverse), zIdxArray.sort(((a, b) => reverse ? b - a : a - b)), {
35
+ childMap: childMap,
36
+ zIdxArray: zIdxArray
37
+ };
38
+ }
39
+
40
+ function foreach(graphic, defaultZIndex, cb, reverse = !1, sort3d = !1) {
31
41
  let needSort = !1;
32
42
  if (sort3d) needSort = !0; else {
33
43
  let lastZIndex;
@@ -39,13 +49,10 @@ function foreach(graphic, defaultZIndex, cb, reverse = !1, sort3d = !1) {
39
49
  }), reverse);
40
50
  }
41
51
  if (needSort) {
42
- graphic.forEachChildren((item => {
43
- const {zIndex: zIndex = defaultZIndex} = item.attribute;
44
- childMap[zIndex] ? childMap[zIndex].push(item) : (childMap[zIndex] = [ item ], zIdxArray.push(zIndex));
45
- }), reverse), zIdxArray.sort(((a, b) => reverse ? b - a : a - b));
52
+ const {childMap: childMap, zIdxArray: zIdxArray} = parseChildMap(graphic, defaultZIndex, reverse);
46
53
  let skip = !1;
47
54
  for (let i = 0; i < zIdxArray.length && !skip; i++) {
48
- const idx = zIdxArray[i], children = childMap[idx];
55
+ const children = childMap[zIdxArray[i]];
49
56
  sort3d && children.sort(((a, b) => {
50
57
  var _a, _b;
51
58
  return (reverse ? -1 : 1) * ((null !== (_a = b.attribute.z) && void 0 !== _a ? _a : 0) - (null !== (_b = a.attribute.z) && void 0 !== _b ? _b : 0));
@@ -65,7 +72,6 @@ function foreachAsync(graphic, defaultZIndex, cb, reverse = !1) {
65
72
  }
66
73
 
67
74
  function findNextGraphic(graphic, id, defaultZIndex, reverse = !1) {
68
- const childMap = {}, zIdxArray = [];
69
75
  let needSort = !1;
70
76
  graphic.forEachChildren(((item, i) => {
71
77
  const {zIndex: zIndex = defaultZIndex} = item.attribute;
@@ -74,13 +80,10 @@ function findNextGraphic(graphic, id, defaultZIndex, reverse = !1) {
74
80
  }), reverse);
75
81
  let result = null, next = !1;
76
82
  if (needSort) {
77
- graphic.forEachChildren((item => {
78
- const {zIndex: zIndex = defaultZIndex} = item.attribute;
79
- childMap[zIndex] ? childMap[zIndex].push(item) : (childMap[zIndex] = [ item ], zIdxArray.push(zIndex));
80
- }), reverse), zIdxArray.sort(((a, b) => reverse ? b - a : a - b));
83
+ const {childMap: childMap, zIdxArray: zIdxArray} = parseChildMap(graphic, defaultZIndex, reverse);
81
84
  let skip = !1;
82
85
  for (let i = 0; i < zIdxArray.length && !skip; i++) {
83
- const idx = zIdxArray[i], children = childMap[idx];
86
+ const children = childMap[zIdxArray[i]];
84
87
  for (let i = 0; i < children.length; i++) {
85
88
  if (next) {
86
89
  skip = !0, result = children[i];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/sort.ts"],"names":[],"mappings":"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","file":"sort.js","sourcesContent":["import type { IGraphic } from '../interface';\n\nexport function foreach(\n graphic: IGraphic,\n defaultZIndex: number,\n cb: (...data: any) => boolean | void,\n reverse: boolean = false,\n sort3d: boolean = false\n) {\n const childMap: { [id: number]: IGraphic[] } = {};\n const zIdxArray: number[] = [];\n // 遍历一遍查看是否有zIndex不同的\n let needSort = false;\n if (sort3d) {\n needSort = true;\n } else {\n let lastZIndex: number;\n graphic.forEachChildren((item: IGraphic, i: number) => {\n const { zIndex = defaultZIndex } = item.attribute;\n if (i === 0) {\n lastZIndex = zIndex;\n } else if (lastZIndex !== zIndex) {\n needSort = true;\n return true;\n }\n return false;\n }, reverse);\n }\n if (needSort) {\n graphic.forEachChildren((item: IGraphic) => {\n const { zIndex = defaultZIndex } = item.attribute;\n if (childMap[zIndex]) {\n childMap[zIndex].push(item);\n } else {\n childMap[zIndex] = [item];\n zIdxArray.push(zIndex);\n }\n }, reverse);\n zIdxArray.sort((a, b) => (reverse ? b - a : a - b));\n let skip = false;\n for (let i = 0; i < zIdxArray.length; i++) {\n if (skip) {\n break;\n }\n const idx = zIdxArray[i];\n const children = childMap[idx];\n // 根据z进行排序\n if (sort3d) {\n children.sort((a, b) => {\n return (reverse ? -1 : 1) * ((b.attribute.z ?? 0) - (a.attribute.z ?? 0));\n });\n }\n for (let i = 0; i < children.length; i++) {\n if (cb(children[i], i)) {\n skip = true;\n break;\n }\n }\n }\n } else {\n graphic.forEachChildren(cb, reverse);\n }\n}\n\nexport async function foreachAsync(\n graphic: IGraphic,\n defaultZIndex: number,\n cb: (data: any, i: number) => boolean | void | Promise<boolean | void>,\n reverse: boolean = false\n) {\n // 不支持zIndex\n await graphic.forEachChildrenAsync(cb, reverse);\n // const childMap: { [id: number]: IGraphic[] } = {};\n // const zIdxArray: number[] = [];\n // // 遍历一遍查看是否有zIndex不同的\n // let needSort = false;\n // let lastZIndex: number;\n // graphic.forEachChildren((item: IGraphic, i: number) => {\n // const { zIndex = defaultZIndex } = item.attribute;\n // if (i === 0) {\n // lastZIndex === zIndex;\n // } else if (lastZIndex !== zIndex) {\n // needSort = true;\n // return true;\n // }\n // return false;\n // }, reverse);\n // if (needSort) {\n // graphic.forEachChildren((item: IGraphic) => {\n // const { zIndex = defaultZIndex } = item.attribute;\n // if (childMap[zIndex]) {\n // childMap[zIndex].push(item);\n // } else {\n // childMap[zIndex] = [item];\n // zIdxArray.push(zIndex);\n // }\n // }, reverse);\n // zIdxArray.sort((a, b) => (reverse ? b - a : a - b));\n // let skip = false;\n // for (let i = 0; i < zIdxArray.length; i++) {\n // if (skip) {\n // break;\n // }\n // const idx = zIdxArray[i];\n // const children = childMap[idx];\n // for (let i = 0; i < children.length; i++) {\n // let d = cb(children[i], i);\n // if ((d as any).then) {\n // d = await d;\n // }\n // if (d) {\n // skip = true;\n // break;\n // }\n // }\n // }\n // } else {\n // await graphic.forEachChildrenAsync(cb, reverse);\n // }\n}\n\nexport function findNextGraphic(graphic: IGraphic, id: number, defaultZIndex: number, reverse: boolean = false) {\n const childMap: { [id: number]: IGraphic[] } = {};\n const zIdxArray: number[] = [];\n // 遍历一遍查看是否有zIndex不同的\n let needSort = false;\n let lastZIndex: number;\n graphic.forEachChildren((item: IGraphic, i: number) => {\n const { zIndex = defaultZIndex } = item.attribute;\n if (i === 0) {\n lastZIndex === zIndex;\n } else if (lastZIndex !== zIndex) {\n needSort = true;\n return true;\n }\n return false;\n }, reverse);\n let result: IGraphic | null = null;\n let next: boolean = false;\n if (needSort) {\n graphic.forEachChildren((item: IGraphic) => {\n const { zIndex = defaultZIndex } = item.attribute;\n if (childMap[zIndex]) {\n childMap[zIndex].push(item);\n } else {\n childMap[zIndex] = [item];\n zIdxArray.push(zIndex);\n }\n }, reverse);\n zIdxArray.sort((a, b) => (reverse ? b - a : a - b));\n let skip = false;\n for (let i = 0; i < zIdxArray.length; i++) {\n if (skip) {\n break;\n }\n const idx = zIdxArray[i];\n const children = childMap[idx];\n for (let i = 0; i < children.length; i++) {\n if (next) {\n skip = true;\n result = children[i];\n break;\n }\n if (children[i]._uid === id) {\n next = true;\n continue;\n }\n }\n }\n } else {\n graphic.forEachChildren(item => {\n if (next) {\n result = item as IGraphic;\n return true;\n }\n if (item._uid === id) {\n next = true;\n }\n return false;\n }, reverse);\n }\n\n return result;\n}\n"]}
1
+ {"version":3,"sources":["../src/common/sort.ts"],"names":[],"mappings":"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","file":"sort.js","sourcesContent":["import type { IGraphic } from '../interface';\n\nfunction parseChildMap(graphic: IGraphic, defaultZIndex: number, reverse: boolean) {\n const childMap: { [id: number]: IGraphic[] } = {};\n const zIdxArray: number[] = [];\n\n graphic.forEachChildren((item: IGraphic) => {\n const { zIndex = defaultZIndex } = item.attribute;\n if (childMap[zIndex]) {\n childMap[zIndex].push(item);\n } else {\n childMap[zIndex] = [item];\n zIdxArray.push(zIndex);\n }\n }, reverse);\n zIdxArray.sort((a, b) => (reverse ? b - a : a - b));\n\n return { childMap, zIdxArray };\n}\n\nexport function foreach(\n graphic: IGraphic,\n defaultZIndex: number,\n cb: (...data: any) => boolean | void,\n reverse: boolean = false,\n sort3d: boolean = false\n) {\n // 遍历一遍查看是否有zIndex不同的\n let needSort = false;\n if (sort3d) {\n needSort = true;\n } else {\n let lastZIndex: number;\n graphic.forEachChildren((item: IGraphic, i: number) => {\n const { zIndex = defaultZIndex } = item.attribute;\n if (i === 0) {\n lastZIndex = zIndex;\n } else if (lastZIndex !== zIndex) {\n needSort = true;\n return true;\n }\n return false;\n }, reverse);\n }\n if (needSort) {\n const { childMap, zIdxArray } = parseChildMap(graphic, defaultZIndex, reverse);\n let skip = false;\n for (let i = 0; i < zIdxArray.length; i++) {\n if (skip) {\n break;\n }\n const idx = zIdxArray[i];\n const children = childMap[idx];\n // 根据z进行排序\n if (sort3d) {\n children.sort((a, b) => {\n return (reverse ? -1 : 1) * ((b.attribute.z ?? 0) - (a.attribute.z ?? 0));\n });\n }\n for (let i = 0; i < children.length; i++) {\n if (cb(children[i], i)) {\n skip = true;\n break;\n }\n }\n }\n } else {\n graphic.forEachChildren(cb, reverse);\n }\n}\n\nexport async function foreachAsync(\n graphic: IGraphic,\n defaultZIndex: number,\n cb: (data: any, i: number) => boolean | void | Promise<boolean | void>,\n reverse: boolean = false\n) {\n // 不支持zIndex\n await graphic.forEachChildrenAsync(cb, reverse);\n // const childMap: { [id: number]: IGraphic[] } = {};\n // const zIdxArray: number[] = [];\n // // 遍历一遍查看是否有zIndex不同的\n // let needSort = false;\n // let lastZIndex: number;\n // graphic.forEachChildren((item: IGraphic, i: number) => {\n // const { zIndex = defaultZIndex } = item.attribute;\n // if (i === 0) {\n // lastZIndex === zIndex;\n // } else if (lastZIndex !== zIndex) {\n // needSort = true;\n // return true;\n // }\n // return false;\n // }, reverse);\n // if (needSort) {\n // graphic.forEachChildren((item: IGraphic) => {\n // const { zIndex = defaultZIndex } = item.attribute;\n // if (childMap[zIndex]) {\n // childMap[zIndex].push(item);\n // } else {\n // childMap[zIndex] = [item];\n // zIdxArray.push(zIndex);\n // }\n // }, reverse);\n // zIdxArray.sort((a, b) => (reverse ? b - a : a - b));\n // let skip = false;\n // for (let i = 0; i < zIdxArray.length; i++) {\n // if (skip) {\n // break;\n // }\n // const idx = zIdxArray[i];\n // const children = childMap[idx];\n // for (let i = 0; i < children.length; i++) {\n // let d = cb(children[i], i);\n // if ((d as any).then) {\n // d = await d;\n // }\n // if (d) {\n // skip = true;\n // break;\n // }\n // }\n // }\n // } else {\n // await graphic.forEachChildrenAsync(cb, reverse);\n // }\n}\n\nexport function findNextGraphic(graphic: IGraphic, id: number, defaultZIndex: number, reverse: boolean = false) {\n // 遍历一遍查看是否有zIndex不同的\n let needSort = false;\n let lastZIndex: number;\n graphic.forEachChildren((item: IGraphic, i: number) => {\n const { zIndex = defaultZIndex } = item.attribute;\n if (i === 0) {\n lastZIndex === zIndex;\n } else if (lastZIndex !== zIndex) {\n needSort = true;\n return true;\n }\n return false;\n }, reverse);\n let result: IGraphic | null = null;\n let next: boolean = false;\n if (needSort) {\n const { childMap, zIdxArray } = parseChildMap(graphic, defaultZIndex, reverse);\n let skip = false;\n for (let i = 0; i < zIdxArray.length; i++) {\n if (skip) {\n break;\n }\n const idx = zIdxArray[i];\n const children = childMap[idx];\n for (let i = 0; i < children.length; i++) {\n if (next) {\n skip = true;\n result = children[i];\n break;\n }\n if (children[i]._uid === id) {\n next = true;\n continue;\n }\n }\n }\n } else {\n graphic.forEachChildren(item => {\n if (next) {\n result = item as IGraphic;\n return true;\n }\n if (item._uid === id) {\n next = true;\n }\n return false;\n }, reverse);\n }\n\n return result;\n}\n"]}
@@ -1,6 +1,4 @@
1
- import { type ITextFontParams } from '@visactor/vutils';
2
1
  import type { ITextGraphicAttribute, TextAlignType, TextBaselineType } from '../interface';
3
- export declare function getContextFont(text: Partial<ITextFontParams>, defaultAttr?: Partial<ITextFontParams>, fontSizeScale?: number): string;
4
2
  export declare function textDrawOffsetY(baseline: TextBaselineType, h: number): number;
5
3
  export declare function textDrawOffsetX(textAlign: TextAlignType, width: number): number;
6
4
  export declare function textLayoutOffsetY(baseline: TextBaselineType, lineHeight: number, fontSize: number, buf?: number): number;
@@ -2,16 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.textAttributesToStyle = exports.textLayoutOffsetY = exports.textDrawOffsetX = exports.textDrawOffsetY = exports.getContextFont = void 0;
5
+ }), exports.textAttributesToStyle = exports.textLayoutOffsetY = exports.textDrawOffsetX = exports.textDrawOffsetY = void 0;
6
6
 
7
7
  const vutils_1 = require("@visactor/vutils");
8
8
 
9
- function getContextFont(text, defaultAttr = {}, fontSizeScale) {
10
- fontSizeScale || (fontSizeScale = 1);
11
- const {fontStyle: fontStyle = defaultAttr.fontStyle, fontVariant: fontVariant = defaultAttr.fontVariant, fontWeight: fontWeight = defaultAttr.fontWeight, fontSize: fontSize = defaultAttr.fontSize, fontFamily: fontFamily = defaultAttr.fontFamily} = text;
12
- return (fontStyle ? fontStyle + " " : "") + (fontVariant ? fontVariant + " " : "") + (fontWeight ? fontWeight + " " : "") + fontSize * fontSizeScale + "px " + (fontFamily || "sans-serif");
13
- }
14
-
15
9
  function textDrawOffsetY(baseline, h) {
16
10
  return "top" === baseline ? Math.ceil(.79 * h) : "middle" === baseline ? Math.round(.3 * h) : "bottom" === baseline ? Math.round(-.21 * h) : 0;
17
11
  }
@@ -26,18 +20,18 @@ function textLayoutOffsetY(baseline, lineHeight, fontSize, buf = 0) {
26
20
  }
27
21
 
28
22
  function textAttributesToStyle(attrs) {
29
- const style = {};
23
+ const style = {}, parsePxValue = value => /^\d+(\.\d+)?$/.test(`${value}`) ? `${value}px` : `${value}`;
30
24
  return [ "textAlign", "fontFamily", "fontVariant", "fontStyle", "fontWeight" ].forEach((key => {
31
25
  attrs[key] && (style[(0, vutils_1.lowerCamelCaseToMiddle)(key)] = attrs[key]);
32
26
  })), [ "fontSize", "lineHeight" ].forEach((key => {
33
27
  const styleKey = (0, vutils_1.lowerCamelCaseToMiddle)(key);
34
- (0, vutils_1.isNil)(attrs[key]) || (style[styleKey] = /^[0-9]*$/.test(`${attrs[key]}`) ? `${attrs[key]}px` : `${attrs[key]}`);
35
- })), attrs.underline ? style["text-decoration"] = "underline" : attrs.lineThrough && (style["text-decoration"] = "line-through"),
28
+ (0, vutils_1.isNil)(attrs[key]) || (style[styleKey] = parsePxValue(attrs[key]));
29
+ })), (0, vutils_1.isValid)(attrs.maxLineWidth) && (style["max-width"] = parsePxValue(attrs.maxLineWidth)),
30
+ attrs.underline ? style["text-decoration"] = "underline" : attrs.lineThrough && (style["text-decoration"] = "line-through"),
36
31
  attrs.fill && (0, vutils_1.isString)(attrs.fill) && (style.color = attrs.fill),
37
32
  style;
38
33
  }
39
34
 
40
- exports.getContextFont = getContextFont, exports.textDrawOffsetY = textDrawOffsetY,
41
- exports.textDrawOffsetX = textDrawOffsetX, exports.textLayoutOffsetY = textLayoutOffsetY,
42
- exports.textAttributesToStyle = textAttributesToStyle;
43
- //# sourceMappingURL=text.js.map
35
+ exports.textDrawOffsetY = textDrawOffsetY, exports.textDrawOffsetX = textDrawOffsetX,
36
+ exports.textLayoutOffsetY = textLayoutOffsetY, exports.textAttributesToStyle = textAttributesToStyle;
37
+ //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/text.ts"],"names":[],"mappings":"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","file":"text.js","sourcesContent":["// 存放一些公共方法,公共配置\n\nimport { isNil, isString, type ITextFontParams, lowerCamelCaseToMiddle } from '@visactor/vutils';\nimport type { ITextGraphicAttribute, TextAlignType, TextBaselineType } from '../interface';\n\nexport function getContextFont(\n text: Partial<ITextFontParams>,\n defaultAttr: Partial<ITextFontParams> = {},\n fontSizeScale?: number\n): string {\n if (!fontSizeScale) {\n fontSizeScale = 1;\n }\n const {\n fontStyle = defaultAttr.fontStyle,\n fontVariant = defaultAttr.fontVariant,\n fontWeight = defaultAttr.fontWeight,\n fontSize = defaultAttr.fontSize,\n fontFamily = defaultAttr.fontFamily\n } = text;\n return (\n '' +\n (fontStyle ? fontStyle + ' ' : '') +\n (fontVariant ? fontVariant + ' ' : '') +\n (fontWeight ? fontWeight + ' ' : '') +\n fontSize * fontSizeScale +\n 'px ' +\n (fontFamily ? fontFamily : 'sans-serif')\n );\n}\n// TODO: 更好的方案\n/**\n * 用于绘制的时候偏移\n * 经验值,来源于 https://github.com/vega/vega/blob/b45cf431cd6c0d0c0e1567f087f9b3b55bc236fa/packages/vega-scenegraph/src/util/text.js\n * @param baseline\n * @param h\n * @returns\n */\nexport function textDrawOffsetY(baseline: TextBaselineType, h: number): number {\n const offset =\n baseline === 'top'\n ? Math.ceil(0.79 * h)\n : baseline === 'middle'\n ? Math.round(0.3 * h)\n : baseline === 'bottom'\n ? Math.round(-0.21 * h)\n : 0;\n return offset;\n}\n\n/**\n * 用于绘制的时候偏移\n * @param textAlign\n * @param width\n * @returns\n */\nexport function textDrawOffsetX(textAlign: TextAlignType, width: number): number {\n if (textAlign === 'end' || textAlign === 'right') {\n return -width;\n } else if (textAlign === 'center') {\n return -width / 2;\n }\n return 0;\n}\n\n/**\n * 用于计算布局的偏移\n * 经验值,来源于 https://github.com/vega/vega/blob/b45cf431cd6c0d0c0e1567f087f9b3b55bc236fa/packages/vega-scenegraph/src/util/text.js\n * @param baseline\n * @param lineHeight\n * @returns\n */\nexport function textLayoutOffsetY(\n baseline: TextBaselineType,\n lineHeight: number,\n fontSize: number,\n buf: number = 0\n): number {\n if (baseline === 'middle') {\n return -lineHeight / 2;\n }\n if (baseline === 'top') {\n return 0;\n }\n if (baseline === 'bottom') {\n return buf - lineHeight;\n }\n if (!baseline || baseline === 'alphabetic') {\n if (!fontSize) {\n fontSize = lineHeight;\n }\n return -(lineHeight - fontSize) / 2 - 0.79 * fontSize;\n }\n return 0;\n}\n\nexport function textAttributesToStyle(attrs: ITextGraphicAttribute) {\n const stringTypes = ['textAlign', 'fontFamily', 'fontVariant', 'fontStyle', 'fontWeight'];\n const pxKeys = ['fontSize', 'lineHeight'];\n const style: any = {};\n\n stringTypes.forEach(key => {\n if (attrs[key]) {\n style[lowerCamelCaseToMiddle(key)] = attrs[key];\n }\n });\n\n pxKeys.forEach(key => {\n const styleKey = lowerCamelCaseToMiddle(key);\n if (!isNil(attrs[key])) {\n style[styleKey] = /^[0-9]*$/.test(`${attrs[key]}`) ? `${attrs[key]}px` : `${attrs[key]}`;\n }\n });\n\n if (attrs.underline) {\n style['text-decoration'] = 'underline';\n } else if (attrs.lineThrough) {\n style['text-decoration'] = 'line-through';\n }\n\n if (attrs.fill) {\n if (isString(attrs.fill)) {\n style.color = attrs.fill;\n }\n }\n\n return style;\n}\n"]}
1
+ {"version":3,"sources":["../src/common/text.ts"],"names":[],"mappings":"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","file":"text.js","sourcesContent":["// 存放一些公共方法,公共配置\n\nimport { isNil, isString, isValid, lowerCamelCaseToMiddle } from '@visactor/vutils';\nimport type { ITextGraphicAttribute, TextAlignType, TextBaselineType } from '../interface';\n\n// TODO: 更好的方案\n/**\n * 用于绘制的时候偏移\n * 经验值,来源于 https://github.com/vega/vega/blob/b45cf431cd6c0d0c0e1567f087f9b3b55bc236fa/packages/vega-scenegraph/src/util/text.js\n * @param baseline\n * @param h\n * @returns\n */\nexport function textDrawOffsetY(baseline: TextBaselineType, h: number): number {\n const offset =\n baseline === 'top'\n ? Math.ceil(0.79 * h)\n : baseline === 'middle'\n ? Math.round(0.3 * h)\n : baseline === 'bottom'\n ? Math.round(-0.21 * h)\n : 0;\n return offset;\n}\n\n/**\n * 用于绘制的时候偏移\n * @param textAlign\n * @param width\n * @returns\n */\nexport function textDrawOffsetX(textAlign: TextAlignType, width: number): number {\n if (textAlign === 'end' || textAlign === 'right') {\n return -width;\n } else if (textAlign === 'center') {\n return -width / 2;\n }\n return 0;\n}\n\n/**\n * 用于计算布局的偏移\n * 经验值,来源于 https://github.com/vega/vega/blob/b45cf431cd6c0d0c0e1567f087f9b3b55bc236fa/packages/vega-scenegraph/src/util/text.js\n * @param baseline\n * @param lineHeight\n * @returns\n */\nexport function textLayoutOffsetY(\n baseline: TextBaselineType,\n lineHeight: number,\n fontSize: number,\n buf: number = 0\n): number {\n if (baseline === 'middle') {\n return -lineHeight / 2;\n }\n if (baseline === 'top') {\n return 0;\n }\n if (baseline === 'bottom') {\n return buf - lineHeight;\n }\n if (!baseline || baseline === 'alphabetic') {\n if (!fontSize) {\n fontSize = lineHeight;\n }\n return -(lineHeight - fontSize) / 2 - 0.79 * fontSize;\n }\n return 0;\n}\n\nexport function textAttributesToStyle(attrs: ITextGraphicAttribute) {\n const stringTypes = ['textAlign', 'fontFamily', 'fontVariant', 'fontStyle', 'fontWeight'];\n const pxKeys = ['fontSize', 'lineHeight'];\n const style: any = {};\n const parsePxValue = (value: string | number) => {\n return /^\\d+(\\.\\d+)?$/.test(`${value}`) ? `${value}px` : `${value}`;\n };\n\n stringTypes.forEach(key => {\n if (attrs[key]) {\n style[lowerCamelCaseToMiddle(key)] = attrs[key];\n }\n });\n\n pxKeys.forEach(key => {\n const styleKey = lowerCamelCaseToMiddle(key);\n if (!isNil(attrs[key])) {\n style[styleKey] = parsePxValue(attrs[key]);\n }\n });\n\n if (isValid(attrs.maxLineWidth)) {\n style['max-width'] = parsePxValue(attrs.maxLineWidth);\n }\n\n if (attrs.underline) {\n style['text-decoration'] = 'underline';\n } else if (attrs.lineThrough) {\n style['text-decoration'] = 'line-through';\n }\n\n if (attrs.fill) {\n if (isString(attrs.fill)) {\n style.color = attrs.fill;\n }\n }\n\n return style;\n}\n"]}
@@ -160,4 +160,4 @@ const calculateLineHeight = (lineHeight, fontSize) => {
160
160
  };
161
161
 
162
162
  exports.calculateLineHeight = calculateLineHeight;
163
- //# sourceMappingURL=utils.js.map
163
+ //# sourceMappingURL=utils.js.map