@visactor/vrender-core 0.19.4-alpha.4 → 0.19.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (776) hide show
  1. package/cjs/allocator/allocator-modules.js +0 -2
  2. package/cjs/allocator/bounds-allocate.js +1 -1
  3. package/cjs/allocator/bounds-allocate.js.map +1 -1
  4. package/cjs/allocator/canvas-allocate.js +11 -9
  5. package/cjs/allocator/canvas-allocate.js.map +1 -1
  6. package/cjs/allocator/graphic-allocate.js +5 -9
  7. package/cjs/allocator/graphic-allocate.js.map +1 -1
  8. package/cjs/allocator/matrix-allocate.js +2 -6
  9. package/cjs/allocator/matrix-allocate.js.map +1 -1
  10. package/cjs/animate/Ticker/default-ticker.js +25 -14
  11. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  12. package/cjs/animate/animate.js +8 -7
  13. package/cjs/animate/animate.js.map +1 -1
  14. package/cjs/animate/config.js +1 -2
  15. package/cjs/animate/custom-animate.js +54 -51
  16. package/cjs/animate/custom-animate.js.map +1 -1
  17. package/cjs/animate/easing.js +19 -8
  18. package/cjs/animate/easing.js.map +1 -1
  19. package/cjs/animate/morphing.js +20 -23
  20. package/cjs/animate/morphing.js.map +1 -1
  21. package/cjs/application.js +7 -1
  22. package/cjs/application.js.map +1 -1
  23. package/cjs/canvas/conical-gradient.js +12 -5
  24. package/cjs/canvas/conical-gradient.js.map +1 -1
  25. package/cjs/canvas/contributions/base-canvas.js +19 -7
  26. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  27. package/cjs/color-string/interpolate.js +5 -3
  28. package/cjs/color-string/interpolate.js.map +1 -1
  29. package/cjs/color-string/store.js +3 -1
  30. package/cjs/color-string/store.js.map +1 -1
  31. package/cjs/common/bounds-context.js +1 -0
  32. package/cjs/common/bounds-context.js.map +1 -1
  33. package/cjs/common/canvas-utils.js +3 -6
  34. package/cjs/common/canvas-utils.js.map +1 -1
  35. package/cjs/common/contribution-provider.js +3 -0
  36. package/cjs/common/contribution-provider.js.map +1 -1
  37. package/cjs/common/custom-path2d.js +7 -1
  38. package/cjs/common/custom-path2d.js.map +1 -1
  39. package/cjs/common/generator.js +2 -1
  40. package/cjs/common/generator.js.map +1 -1
  41. package/cjs/common/inversify/binding.js +12 -0
  42. package/cjs/common/inversify/binding.js.map +1 -1
  43. package/cjs/common/inversify/container.js +4 -0
  44. package/cjs/common/inversify/container.js.map +1 -1
  45. package/cjs/common/inversify/cotainer-module.js +2 -0
  46. package/cjs/common/inversify/cotainer-module.js.map +1 -1
  47. package/cjs/common/inversify/meta-data.js +2 -0
  48. package/cjs/common/inversify/meta-data.js.map +1 -1
  49. package/cjs/common/inversify/syntax/binding_in_syntax.js +1 -0
  50. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  51. package/cjs/common/inversify/syntax/binding_to_syntax.js +1 -0
  52. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  53. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js +1 -0
  54. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  55. package/cjs/common/inversify-lite/bindings/binding.js +14 -0
  56. package/cjs/common/inversify-lite/bindings/binding.js.map +1 -1
  57. package/cjs/common/inversify-lite/container/container.js +22 -46
  58. package/cjs/common/inversify-lite/container/container.js.map +1 -1
  59. package/cjs/common/inversify-lite/container/container_module.js +4 -0
  60. package/cjs/common/inversify-lite/container/container_module.js.map +1 -1
  61. package/cjs/common/inversify-lite/container/lookup.js +1 -0
  62. package/cjs/common/inversify-lite/container/lookup.js.map +1 -1
  63. package/cjs/common/inversify-lite/planning/context.js +4 -0
  64. package/cjs/common/inversify-lite/planning/context.js.map +1 -1
  65. package/cjs/common/inversify-lite/planning/metadata.js +2 -0
  66. package/cjs/common/inversify-lite/planning/metadata.js.map +1 -1
  67. package/cjs/common/inversify-lite/planning/plan.js +2 -0
  68. package/cjs/common/inversify-lite/planning/plan.js.map +1 -1
  69. package/cjs/common/inversify-lite/planning/queryable_string.js +1 -0
  70. package/cjs/common/inversify-lite/planning/queryable_string.js.map +1 -1
  71. package/cjs/common/inversify-lite/planning/request.js +8 -0
  72. package/cjs/common/inversify-lite/planning/request.js.map +1 -1
  73. package/cjs/common/inversify-lite/planning/target.js +7 -0
  74. package/cjs/common/inversify-lite/planning/target.js.map +1 -1
  75. package/cjs/common/inversify-lite/resolution/instantiation.js +16 -42
  76. package/cjs/common/inversify-lite/resolution/instantiation.js.map +1 -1
  77. package/cjs/common/inversify-lite/scope/scope.js +3 -29
  78. package/cjs/common/inversify-lite/scope/scope.js.map +1 -1
  79. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js +1 -0
  80. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  81. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js +3 -0
  82. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  83. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js +1 -0
  84. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  85. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js +1 -0
  86. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  87. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js +2 -0
  88. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  89. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js +1 -0
  90. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  91. package/cjs/common/polygon.js +1 -2
  92. package/cjs/common/polygon.js.map +1 -1
  93. package/cjs/common/render-area.js +2 -3
  94. package/cjs/common/render-area.js.map +1 -1
  95. package/cjs/common/render-curve.js +4 -8
  96. package/cjs/common/render-curve.js.map +1 -1
  97. package/cjs/common/seg-context.js +12 -3
  98. package/cjs/common/seg-context.js.map +1 -1
  99. package/cjs/common/segment/basis.js +13 -0
  100. package/cjs/common/segment/basis.js.map +1 -1
  101. package/cjs/common/segment/common.js +2 -2
  102. package/cjs/common/segment/common.js.map +1 -1
  103. package/cjs/common/segment/curve/arc.js +2 -2
  104. package/cjs/common/segment/curve/arc.js.map +1 -1
  105. package/cjs/common/segment/curve/base.js +4 -0
  106. package/cjs/common/segment/curve/base.js.map +1 -1
  107. package/cjs/common/segment/curve/cubic-bezier.js +2 -2
  108. package/cjs/common/segment/curve/cubic-bezier.js.map +1 -1
  109. package/cjs/common/segment/curve/curve-context.js +4 -0
  110. package/cjs/common/segment/curve/curve-context.js.map +1 -1
  111. package/cjs/common/segment/curve/ellipse.js +3 -3
  112. package/cjs/common/segment/curve/ellipse.js.map +1 -1
  113. package/cjs/common/segment/curve/line.js +2 -1
  114. package/cjs/common/segment/curve/line.js.map +1 -1
  115. package/cjs/common/segment/curve/move.js +2 -1
  116. package/cjs/common/segment/curve/move.js.map +1 -1
  117. package/cjs/common/segment/curve/path.js +2 -0
  118. package/cjs/common/segment/curve/path.js.map +1 -1
  119. package/cjs/common/segment/curve/quadratic-bezier.js +2 -2
  120. package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -1
  121. package/cjs/common/segment/linear-closed.js.map +1 -1
  122. package/cjs/common/segment/linear.js +10 -0
  123. package/cjs/common/segment/linear.js.map +1 -1
  124. package/cjs/common/segment/monotone.js +13 -0
  125. package/cjs/common/segment/monotone.js.map +1 -1
  126. package/cjs/common/segment/step.js +13 -2
  127. package/cjs/common/segment/step.js.map +1 -1
  128. package/cjs/common/sort.js +3 -34
  129. package/cjs/common/sort.js.map +1 -1
  130. package/cjs/common/split-path.js +4 -11
  131. package/cjs/common/split-path.js.map +1 -1
  132. package/cjs/common/utils.d.ts +1 -1
  133. package/cjs/common/utils.js +10 -6
  134. package/cjs/common/utils.js.map +1 -1
  135. package/cjs/common/xml/parser.js +3 -2
  136. package/cjs/common/xml/parser.js.map +1 -1
  137. package/cjs/core/camera.js +11 -4
  138. package/cjs/core/camera.js.map +1 -1
  139. package/cjs/core/contributions/env/base-contribution.js +6 -0
  140. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  141. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +20 -11
  142. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  143. package/cjs/core/contributions/layerHandler/empty-contribution.js +8 -8
  144. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  145. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +5 -6
  146. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  147. package/cjs/core/contributions/textMeasure/AtextMeasure.js +11 -8
  148. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  149. package/cjs/core/contributions/textMeasure/layout.js +3 -0
  150. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  151. package/cjs/core/contributions/window/base-contribution.js +2 -0
  152. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  153. package/cjs/core/global.js +8 -0
  154. package/cjs/core/global.js.map +1 -1
  155. package/cjs/core/graphic-utils.js +16 -5
  156. package/cjs/core/graphic-utils.js.map +1 -1
  157. package/cjs/core/layer-service.js +7 -7
  158. package/cjs/core/layer-service.js.map +1 -1
  159. package/cjs/core/layer.js +7 -9
  160. package/cjs/core/layer.js.map +1 -1
  161. package/cjs/core/stage.js +79 -35
  162. package/cjs/core/stage.js.map +1 -1
  163. package/cjs/core/window.js +16 -13
  164. package/cjs/core/window.js.map +1 -1
  165. package/cjs/event/event-manager.js +152 -143
  166. package/cjs/event/event-manager.js.map +1 -1
  167. package/cjs/event/event-system.js +60 -43
  168. package/cjs/event/event-system.js.map +1 -1
  169. package/cjs/event/event-target.js +1 -3
  170. package/cjs/event/event-target.js.map +1 -1
  171. package/cjs/event/federated-event/base-event.js +43 -15
  172. package/cjs/event/federated-event/base-event.js.map +1 -1
  173. package/cjs/event/federated-event/mouse-event.js +27 -18
  174. package/cjs/event/federated-event/mouse-event.js.map +1 -1
  175. package/cjs/event/federated-event/pointer-event.js +13 -8
  176. package/cjs/event/federated-event/pointer-event.js.map +1 -1
  177. package/cjs/event/federated-event/wheel-event.js +14 -10
  178. package/cjs/event/federated-event/wheel-event.js.map +1 -1
  179. package/cjs/graphic/arc.js +10 -5
  180. package/cjs/graphic/arc.js.map +1 -1
  181. package/cjs/graphic/arc3d.js +7 -4
  182. package/cjs/graphic/arc3d.js.map +1 -1
  183. package/cjs/graphic/area.js +14 -9
  184. package/cjs/graphic/area.js.map +1 -1
  185. package/cjs/graphic/builtin-symbol/arrow.js +2 -3
  186. package/cjs/graphic/builtin-symbol/arrow.js.map +1 -1
  187. package/cjs/graphic/builtin-symbol/arrow2-down.js +2 -3
  188. package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  189. package/cjs/graphic/builtin-symbol/arrow2-left.js +2 -3
  190. package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  191. package/cjs/graphic/builtin-symbol/arrow2-right.js +2 -3
  192. package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  193. package/cjs/graphic/builtin-symbol/arrow2-up.js +2 -3
  194. package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  195. package/cjs/graphic/builtin-symbol/circle.js +2 -3
  196. package/cjs/graphic/builtin-symbol/circle.js.map +1 -1
  197. package/cjs/graphic/builtin-symbol/close.js +2 -3
  198. package/cjs/graphic/builtin-symbol/close.js.map +1 -1
  199. package/cjs/graphic/builtin-symbol/cross.js +2 -3
  200. package/cjs/graphic/builtin-symbol/cross.js.map +1 -1
  201. package/cjs/graphic/builtin-symbol/diamond.js +2 -3
  202. package/cjs/graphic/builtin-symbol/diamond.js.map +1 -1
  203. package/cjs/graphic/builtin-symbol/line-h.js +2 -3
  204. package/cjs/graphic/builtin-symbol/line-h.js.map +1 -1
  205. package/cjs/graphic/builtin-symbol/line-v.js +2 -3
  206. package/cjs/graphic/builtin-symbol/line-v.js.map +1 -1
  207. package/cjs/graphic/builtin-symbol/rect.js +2 -3
  208. package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
  209. package/cjs/graphic/builtin-symbol/square.js +2 -3
  210. package/cjs/graphic/builtin-symbol/square.js.map +1 -1
  211. package/cjs/graphic/builtin-symbol/star.js +2 -3
  212. package/cjs/graphic/builtin-symbol/star.js.map +1 -1
  213. package/cjs/graphic/builtin-symbol/stroke.js +2 -3
  214. package/cjs/graphic/builtin-symbol/stroke.js.map +1 -1
  215. package/cjs/graphic/builtin-symbol/thin-triangle.js +2 -3
  216. package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  217. package/cjs/graphic/builtin-symbol/triangle-down.js +2 -3
  218. package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
  219. package/cjs/graphic/builtin-symbol/triangle-left.js +2 -3
  220. package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
  221. package/cjs/graphic/builtin-symbol/triangle-right.js +2 -3
  222. package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
  223. package/cjs/graphic/builtin-symbol/triangle-up.js +2 -3
  224. package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
  225. package/cjs/graphic/builtin-symbol/triangle.js +1 -3
  226. package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
  227. package/cjs/graphic/builtin-symbol/utils.js +6 -1
  228. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  229. package/cjs/graphic/builtin-symbol/wedge.js +2 -3
  230. package/cjs/graphic/builtin-symbol/wedge.js.map +1 -1
  231. package/cjs/graphic/builtin-symbol/wye.js +2 -3
  232. package/cjs/graphic/builtin-symbol/wye.js.map +1 -1
  233. package/cjs/graphic/circle.js +8 -6
  234. package/cjs/graphic/circle.js.map +1 -1
  235. package/cjs/graphic/config.js +59 -32
  236. package/cjs/graphic/config.js.map +1 -1
  237. package/cjs/graphic/glyph.js +10 -9
  238. package/cjs/graphic/glyph.js.map +1 -1
  239. package/cjs/graphic/graphic-service/graphic-service.js +12 -8
  240. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  241. package/cjs/graphic/graphic.d.ts +1 -0
  242. package/cjs/graphic/graphic.js +32 -42
  243. package/cjs/graphic/graphic.js.map +1 -1
  244. package/cjs/graphic/group.js +9 -5
  245. package/cjs/graphic/group.js.map +1 -1
  246. package/cjs/graphic/image.js +18 -16
  247. package/cjs/graphic/image.js.map +1 -1
  248. package/cjs/graphic/line.js +11 -6
  249. package/cjs/graphic/line.js.map +1 -1
  250. package/cjs/graphic/node-tree.js +25 -44
  251. package/cjs/graphic/node-tree.js.map +1 -1
  252. package/cjs/graphic/path.js +12 -6
  253. package/cjs/graphic/path.js.map +1 -1
  254. package/cjs/graphic/polygon.js +7 -4
  255. package/cjs/graphic/polygon.js.map +1 -1
  256. package/cjs/graphic/pyramid3d.js +4 -3
  257. package/cjs/graphic/pyramid3d.js.map +1 -1
  258. package/cjs/graphic/rect.js +7 -3
  259. package/cjs/graphic/rect.js.map +1 -1
  260. package/cjs/graphic/rect3d.js +5 -4
  261. package/cjs/graphic/rect3d.js.map +1 -1
  262. package/cjs/graphic/richtext/frame.js +19 -0
  263. package/cjs/graphic/richtext/frame.js.map +1 -1
  264. package/cjs/graphic/richtext/icon.js +14 -6
  265. package/cjs/graphic/richtext/icon.js.map +1 -1
  266. package/cjs/graphic/richtext/line.js +14 -2
  267. package/cjs/graphic/richtext/line.js.map +1 -1
  268. package/cjs/graphic/richtext/paragraph.js +22 -0
  269. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  270. package/cjs/graphic/richtext/utils.js +1 -2
  271. package/cjs/graphic/richtext/utils.js.map +1 -1
  272. package/cjs/graphic/richtext/wrapper.js +12 -0
  273. package/cjs/graphic/richtext/wrapper.js.map +1 -1
  274. package/cjs/graphic/richtext.js +38 -45
  275. package/cjs/graphic/richtext.js.map +1 -1
  276. package/cjs/graphic/shadow-root.js +2 -1
  277. package/cjs/graphic/shadow-root.js.map +1 -1
  278. package/cjs/graphic/symbol.js +12 -5
  279. package/cjs/graphic/symbol.js.map +1 -1
  280. package/cjs/graphic/text.js +45 -45
  281. package/cjs/graphic/text.js.map +1 -1
  282. package/cjs/graphic/theme.js +4 -0
  283. package/cjs/graphic/theme.js.map +1 -1
  284. package/cjs/graphic/tools.js +16 -44
  285. package/cjs/graphic/tools.js.map +1 -1
  286. package/cjs/graphic/wrap-text.js +7 -7
  287. package/cjs/graphic/wrap-text.js.map +1 -1
  288. package/cjs/interface/global.d.ts +2 -1
  289. package/cjs/interface/global.js.map +1 -1
  290. package/cjs/interface/graphic.d.ts +1 -0
  291. package/cjs/interface/graphic.js.map +1 -1
  292. package/cjs/picker/global-picker-service.js +1 -0
  293. package/cjs/picker/global-picker-service.js.map +1 -1
  294. package/cjs/picker/pick-interceptor.js +5 -15
  295. package/cjs/picker/pick-interceptor.js.map +1 -1
  296. package/cjs/picker/picker-service.js +5 -5
  297. package/cjs/picker/picker-service.js.map +1 -1
  298. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js +26 -20
  299. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  300. package/cjs/plugins/builtin-plugin/auto-render-plugin.js +5 -4
  301. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  302. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +5 -4
  303. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  304. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +11 -8
  305. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  306. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +28 -19
  307. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  308. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js +12 -8
  309. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  310. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js +6 -7
  311. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  312. package/cjs/plugins/plugin-service.js +1 -0
  313. package/cjs/plugins/plugin-service.js.map +1 -1
  314. package/cjs/render/contributions/render/arc-render.js +6 -4
  315. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  316. package/cjs/render/contributions/render/arc3d-render.js +5 -7
  317. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  318. package/cjs/render/contributions/render/area-render.js +21 -23
  319. package/cjs/render/contributions/render/area-render.js.map +1 -1
  320. package/cjs/render/contributions/render/base-render.js +5 -0
  321. package/cjs/render/contributions/render/base-render.js.map +1 -1
  322. package/cjs/render/contributions/render/circle-render.js +6 -4
  323. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  324. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +3 -4
  325. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  326. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js +6 -9
  327. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  328. package/cjs/render/contributions/render/contributions/base-contribution-render.js +10 -8
  329. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  330. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +4 -4
  331. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  332. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +3 -4
  333. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  334. package/cjs/render/contributions/render/contributions/group-contribution-render.js +1 -3
  335. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  336. package/cjs/render/contributions/render/contributions/image-contribution-render.js +1 -3
  337. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  338. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +11 -14
  339. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  340. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +3 -4
  341. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  342. package/cjs/render/contributions/render/contributions/text-contribution-render.js +6 -8
  343. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  344. package/cjs/render/contributions/render/draw-contribution.js +12 -14
  345. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  346. package/cjs/render/contributions/render/draw-interceptor.js +11 -21
  347. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  348. package/cjs/render/contributions/render/glyph-render.js +2 -3
  349. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  350. package/cjs/render/contributions/render/graphic-render.js +4 -1
  351. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  352. package/cjs/render/contributions/render/group-render.js +7 -3
  353. package/cjs/render/contributions/render/group-render.js.map +1 -1
  354. package/cjs/render/contributions/render/image-render.js +4 -2
  355. package/cjs/render/contributions/render/image-render.js.map +1 -1
  356. package/cjs/render/contributions/render/incremental-area-render.js +1 -3
  357. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  358. package/cjs/render/contributions/render/incremental-draw-contribution.js +80 -109
  359. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  360. package/cjs/render/contributions/render/incremental-line-render.js +1 -3
  361. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  362. package/cjs/render/contributions/render/line-render.js +12 -16
  363. package/cjs/render/contributions/render/line-render.js.map +1 -1
  364. package/cjs/render/contributions/render/path-render.js +8 -7
  365. package/cjs/render/contributions/render/path-render.js.map +1 -1
  366. package/cjs/render/contributions/render/polygon-render.js +6 -4
  367. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  368. package/cjs/render/contributions/render/pyramid3d-render.js +3 -5
  369. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  370. package/cjs/render/contributions/render/rect-render.js +8 -7
  371. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  372. package/cjs/render/contributions/render/rect3d-render.js +5 -7
  373. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  374. package/cjs/render/contributions/render/richtext-render.js +4 -3
  375. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  376. package/cjs/render/contributions/render/symbol-render.js +11 -14
  377. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  378. package/cjs/render/contributions/render/text-render.js +8 -8
  379. package/cjs/render/contributions/render/text-render.js.map +1 -1
  380. package/cjs/render/contributions/render/utils.js +1 -1
  381. package/cjs/render/contributions/render/utils.js.map +1 -1
  382. package/cjs/render/render-service.js +11 -2
  383. package/cjs/render/render-service.js.map +1 -1
  384. package/cjs/resource-loader/loader.js +13 -16
  385. package/cjs/resource-loader/loader.js.map +1 -1
  386. package/cjs/tapable/Hook.js +3 -0
  387. package/cjs/tapable/Hook.js.map +1 -1
  388. package/dist/index.es.js +28908 -0
  389. package/es/allocator/allocator-modules.js +0 -2
  390. package/es/allocator/bounds-allocate.js +1 -1
  391. package/es/allocator/bounds-allocate.js.map +1 -1
  392. package/es/allocator/canvas-allocate.js +11 -9
  393. package/es/allocator/canvas-allocate.js.map +1 -1
  394. package/es/allocator/graphic-allocate.js +5 -9
  395. package/es/allocator/graphic-allocate.js.map +1 -1
  396. package/es/allocator/matrix-allocate.js +2 -6
  397. package/es/allocator/matrix-allocate.js.map +1 -1
  398. package/es/animate/Ticker/default-ticker.js +25 -14
  399. package/es/animate/Ticker/default-ticker.js.map +1 -1
  400. package/es/animate/animate.js +7 -8
  401. package/es/animate/animate.js.map +1 -1
  402. package/es/animate/config.js +1 -2
  403. package/es/animate/custom-animate.js +52 -50
  404. package/es/animate/custom-animate.js.map +1 -1
  405. package/es/animate/easing.js +18 -8
  406. package/es/animate/easing.js.map +1 -1
  407. package/es/animate/morphing.js +20 -23
  408. package/es/animate/morphing.js.map +1 -1
  409. package/es/application.js +7 -1
  410. package/es/application.js.map +1 -1
  411. package/es/canvas/conical-gradient.js +12 -6
  412. package/es/canvas/conical-gradient.js.map +1 -1
  413. package/es/canvas/contributions/base-canvas.js +19 -7
  414. package/es/canvas/contributions/base-canvas.js.map +1 -1
  415. package/es/color-string/interpolate.js +5 -3
  416. package/es/color-string/interpolate.js.map +1 -1
  417. package/es/color-string/store.js +2 -2
  418. package/es/color-string/store.js.map +1 -1
  419. package/es/common/bounds-context.js +1 -0
  420. package/es/common/bounds-context.js.map +1 -1
  421. package/es/common/canvas-utils.js +3 -6
  422. package/es/common/canvas-utils.js.map +1 -1
  423. package/es/common/contribution-provider.js +3 -0
  424. package/es/common/contribution-provider.js.map +1 -1
  425. package/es/common/custom-path2d.js +7 -1
  426. package/es/common/custom-path2d.js.map +1 -1
  427. package/es/common/generator.js +1 -2
  428. package/es/common/generator.js.map +1 -1
  429. package/es/common/inversify/binding.js +12 -0
  430. package/es/common/inversify/binding.js.map +1 -1
  431. package/es/common/inversify/container.js +4 -0
  432. package/es/common/inversify/container.js.map +1 -1
  433. package/es/common/inversify/cotainer-module.js +2 -0
  434. package/es/common/inversify/cotainer-module.js.map +1 -1
  435. package/es/common/inversify/meta-data.js +2 -0
  436. package/es/common/inversify/meta-data.js.map +1 -1
  437. package/es/common/inversify/syntax/binding_in_syntax.js +1 -0
  438. package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  439. package/es/common/inversify/syntax/binding_to_syntax.js +1 -0
  440. package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  441. package/es/common/inversify-lite/annotation/lazy_service_identifier.js +1 -0
  442. package/es/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  443. package/es/common/inversify-lite/bindings/binding.js +14 -0
  444. package/es/common/inversify-lite/bindings/binding.js.map +1 -1
  445. package/es/common/inversify-lite/container/container.js +22 -48
  446. package/es/common/inversify-lite/container/container.js.map +1 -1
  447. package/es/common/inversify-lite/container/container_module.js +4 -0
  448. package/es/common/inversify-lite/container/container_module.js.map +1 -1
  449. package/es/common/inversify-lite/container/lookup.js +1 -0
  450. package/es/common/inversify-lite/container/lookup.js.map +1 -1
  451. package/es/common/inversify-lite/planning/context.js +4 -0
  452. package/es/common/inversify-lite/planning/context.js.map +1 -1
  453. package/es/common/inversify-lite/planning/metadata.js +2 -0
  454. package/es/common/inversify-lite/planning/metadata.js.map +1 -1
  455. package/es/common/inversify-lite/planning/plan.js +2 -0
  456. package/es/common/inversify-lite/planning/plan.js.map +1 -1
  457. package/es/common/inversify-lite/planning/queryable_string.js +1 -0
  458. package/es/common/inversify-lite/planning/queryable_string.js.map +1 -1
  459. package/es/common/inversify-lite/planning/request.js +8 -0
  460. package/es/common/inversify-lite/planning/request.js.map +1 -1
  461. package/es/common/inversify-lite/planning/target.js +7 -0
  462. package/es/common/inversify-lite/planning/target.js.map +1 -1
  463. package/es/common/inversify-lite/resolution/instantiation.js +16 -44
  464. package/es/common/inversify-lite/resolution/instantiation.js.map +1 -1
  465. package/es/common/inversify-lite/scope/scope.js +3 -29
  466. package/es/common/inversify-lite/scope/scope.js.map +1 -1
  467. package/es/common/inversify-lite/syntax/binding_in_syntax.js +1 -0
  468. package/es/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  469. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js +3 -0
  470. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  471. package/es/common/inversify-lite/syntax/binding_on_syntax.js +1 -0
  472. package/es/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  473. package/es/common/inversify-lite/syntax/binding_to_syntax.js +1 -0
  474. package/es/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  475. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js +2 -0
  476. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  477. package/es/common/inversify-lite/syntax/binding_when_syntax.js +1 -0
  478. package/es/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  479. package/es/common/polygon.js +1 -2
  480. package/es/common/polygon.js.map +1 -1
  481. package/es/common/render-area.js +2 -3
  482. package/es/common/render-area.js.map +1 -1
  483. package/es/common/render-curve.js +4 -8
  484. package/es/common/render-curve.js.map +1 -1
  485. package/es/common/seg-context.js +12 -3
  486. package/es/common/seg-context.js.map +1 -1
  487. package/es/common/segment/basis.js +13 -0
  488. package/es/common/segment/basis.js.map +1 -1
  489. package/es/common/segment/common.js +1 -1
  490. package/es/common/segment/common.js.map +1 -1
  491. package/es/common/segment/curve/arc.js +2 -1
  492. package/es/common/segment/curve/arc.js.map +1 -1
  493. package/es/common/segment/curve/base.js +4 -0
  494. package/es/common/segment/curve/base.js.map +1 -1
  495. package/es/common/segment/curve/cubic-bezier.js +2 -2
  496. package/es/common/segment/curve/cubic-bezier.js.map +1 -1
  497. package/es/common/segment/curve/curve-context.js +4 -0
  498. package/es/common/segment/curve/curve-context.js.map +1 -1
  499. package/es/common/segment/curve/ellipse.js +3 -3
  500. package/es/common/segment/curve/ellipse.js.map +1 -1
  501. package/es/common/segment/curve/line.js +2 -1
  502. package/es/common/segment/curve/line.js.map +1 -1
  503. package/es/common/segment/curve/move.js +2 -1
  504. package/es/common/segment/curve/move.js.map +1 -1
  505. package/es/common/segment/curve/path.js +2 -0
  506. package/es/common/segment/curve/path.js.map +1 -1
  507. package/es/common/segment/curve/quadratic-bezier.js +2 -2
  508. package/es/common/segment/curve/quadratic-bezier.js.map +1 -1
  509. package/es/common/segment/linear-closed.js.map +1 -1
  510. package/es/common/segment/linear.js +10 -0
  511. package/es/common/segment/linear.js.map +1 -1
  512. package/es/common/segment/monotone.js +13 -0
  513. package/es/common/segment/monotone.js.map +1 -1
  514. package/es/common/segment/step.js +12 -1
  515. package/es/common/segment/step.js.map +1 -1
  516. package/es/common/sort.js +3 -34
  517. package/es/common/sort.js.map +1 -1
  518. package/es/common/split-path.js +4 -11
  519. package/es/common/split-path.js.map +1 -1
  520. package/es/common/utils.d.ts +1 -1
  521. package/es/common/utils.js +9 -7
  522. package/es/common/utils.js.map +1 -1
  523. package/es/common/xml/parser.js +2 -2
  524. package/es/common/xml/parser.js.map +1 -1
  525. package/es/core/camera.js +11 -4
  526. package/es/core/camera.js.map +1 -1
  527. package/es/core/contributions/env/base-contribution.js +6 -0
  528. package/es/core/contributions/env/base-contribution.js.map +1 -1
  529. package/es/core/contributions/layerHandler/canvas2d-contribution.js +20 -11
  530. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  531. package/es/core/contributions/layerHandler/empty-contribution.js +8 -8
  532. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  533. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +5 -6
  534. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  535. package/es/core/contributions/textMeasure/AtextMeasure.js +11 -8
  536. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  537. package/es/core/contributions/textMeasure/layout.js +3 -0
  538. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  539. package/es/core/contributions/window/base-contribution.js +2 -0
  540. package/es/core/contributions/window/base-contribution.js.map +1 -1
  541. package/es/core/global.js +8 -0
  542. package/es/core/global.js.map +1 -1
  543. package/es/core/graphic-utils.js +16 -5
  544. package/es/core/graphic-utils.js.map +1 -1
  545. package/es/core/layer-service.js +7 -7
  546. package/es/core/layer-service.js.map +1 -1
  547. package/es/core/layer.js +7 -9
  548. package/es/core/layer.js.map +1 -1
  549. package/es/core/stage.js +79 -35
  550. package/es/core/stage.js.map +1 -1
  551. package/es/core/window.js +16 -14
  552. package/es/core/window.js.map +1 -1
  553. package/es/event/event-manager.js +152 -143
  554. package/es/event/event-manager.js.map +1 -1
  555. package/es/event/event-system.js +60 -43
  556. package/es/event/event-system.js.map +1 -1
  557. package/es/event/event-target.js +1 -3
  558. package/es/event/event-target.js.map +1 -1
  559. package/es/event/federated-event/base-event.js +43 -15
  560. package/es/event/federated-event/base-event.js.map +1 -1
  561. package/es/event/federated-event/mouse-event.js +27 -18
  562. package/es/event/federated-event/mouse-event.js.map +1 -1
  563. package/es/event/federated-event/pointer-event.js +13 -8
  564. package/es/event/federated-event/pointer-event.js.map +1 -1
  565. package/es/event/federated-event/wheel-event.js +13 -11
  566. package/es/event/federated-event/wheel-event.js.map +1 -1
  567. package/es/graphic/arc.js +9 -6
  568. package/es/graphic/arc.js.map +1 -1
  569. package/es/graphic/arc3d.js +6 -5
  570. package/es/graphic/arc3d.js.map +1 -1
  571. package/es/graphic/area.js +13 -10
  572. package/es/graphic/area.js.map +1 -1
  573. package/es/graphic/builtin-symbol/arrow.js +2 -3
  574. package/es/graphic/builtin-symbol/arrow.js.map +1 -1
  575. package/es/graphic/builtin-symbol/arrow2-down.js +2 -3
  576. package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  577. package/es/graphic/builtin-symbol/arrow2-left.js +2 -3
  578. package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  579. package/es/graphic/builtin-symbol/arrow2-right.js +2 -3
  580. package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  581. package/es/graphic/builtin-symbol/arrow2-up.js +2 -3
  582. package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  583. package/es/graphic/builtin-symbol/circle.js +2 -3
  584. package/es/graphic/builtin-symbol/circle.js.map +1 -1
  585. package/es/graphic/builtin-symbol/close.js +2 -3
  586. package/es/graphic/builtin-symbol/close.js.map +1 -1
  587. package/es/graphic/builtin-symbol/cross.js +2 -3
  588. package/es/graphic/builtin-symbol/cross.js.map +1 -1
  589. package/es/graphic/builtin-symbol/diamond.js +2 -3
  590. package/es/graphic/builtin-symbol/diamond.js.map +1 -1
  591. package/es/graphic/builtin-symbol/line-h.js +2 -3
  592. package/es/graphic/builtin-symbol/line-h.js.map +1 -1
  593. package/es/graphic/builtin-symbol/line-v.js +2 -3
  594. package/es/graphic/builtin-symbol/line-v.js.map +1 -1
  595. package/es/graphic/builtin-symbol/rect.js +2 -3
  596. package/es/graphic/builtin-symbol/rect.js.map +1 -1
  597. package/es/graphic/builtin-symbol/square.js +2 -3
  598. package/es/graphic/builtin-symbol/square.js.map +1 -1
  599. package/es/graphic/builtin-symbol/star.js +2 -3
  600. package/es/graphic/builtin-symbol/star.js.map +1 -1
  601. package/es/graphic/builtin-symbol/stroke.js +2 -3
  602. package/es/graphic/builtin-symbol/stroke.js.map +1 -1
  603. package/es/graphic/builtin-symbol/thin-triangle.js +2 -3
  604. package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  605. package/es/graphic/builtin-symbol/triangle-down.js +2 -3
  606. package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
  607. package/es/graphic/builtin-symbol/triangle-left.js +2 -3
  608. package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
  609. package/es/graphic/builtin-symbol/triangle-right.js +2 -3
  610. package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
  611. package/es/graphic/builtin-symbol/triangle-up.js +2 -3
  612. package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
  613. package/es/graphic/builtin-symbol/triangle.js +1 -3
  614. package/es/graphic/builtin-symbol/triangle.js.map +1 -1
  615. package/es/graphic/builtin-symbol/utils.js +6 -2
  616. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  617. package/es/graphic/builtin-symbol/wedge.js +2 -3
  618. package/es/graphic/builtin-symbol/wedge.js.map +1 -1
  619. package/es/graphic/builtin-symbol/wye.js +2 -3
  620. package/es/graphic/builtin-symbol/wye.js.map +1 -1
  621. package/es/graphic/circle.js +7 -6
  622. package/es/graphic/circle.js.map +1 -1
  623. package/es/graphic/config.js +73 -44
  624. package/es/graphic/config.js.map +1 -1
  625. package/es/graphic/glyph.js +9 -9
  626. package/es/graphic/glyph.js.map +1 -1
  627. package/es/graphic/graphic-service/graphic-service.js +12 -8
  628. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  629. package/es/graphic/graphic.d.ts +1 -0
  630. package/es/graphic/graphic.js +32 -42
  631. package/es/graphic/graphic.js.map +1 -1
  632. package/es/graphic/group.js +8 -5
  633. package/es/graphic/group.js.map +1 -1
  634. package/es/graphic/image.js +17 -16
  635. package/es/graphic/image.js.map +1 -1
  636. package/es/graphic/line.js +10 -7
  637. package/es/graphic/line.js.map +1 -1
  638. package/es/graphic/node-tree.js +25 -44
  639. package/es/graphic/node-tree.js.map +1 -1
  640. package/es/graphic/path.js +11 -7
  641. package/es/graphic/path.js.map +1 -1
  642. package/es/graphic/polygon.js +6 -4
  643. package/es/graphic/polygon.js.map +1 -1
  644. package/es/graphic/pyramid3d.js +3 -3
  645. package/es/graphic/pyramid3d.js.map +1 -1
  646. package/es/graphic/rect.js +6 -4
  647. package/es/graphic/rect.js.map +1 -1
  648. package/es/graphic/rect3d.js +4 -4
  649. package/es/graphic/rect3d.js.map +1 -1
  650. package/es/graphic/richtext/frame.js +19 -0
  651. package/es/graphic/richtext/frame.js.map +1 -1
  652. package/es/graphic/richtext/icon.js +14 -6
  653. package/es/graphic/richtext/icon.js.map +1 -1
  654. package/es/graphic/richtext/line.js +14 -2
  655. package/es/graphic/richtext/line.js.map +1 -1
  656. package/es/graphic/richtext/paragraph.js +22 -0
  657. package/es/graphic/richtext/paragraph.js.map +1 -1
  658. package/es/graphic/richtext/utils.js +1 -2
  659. package/es/graphic/richtext/utils.js.map +1 -1
  660. package/es/graphic/richtext/wrapper.js +12 -0
  661. package/es/graphic/richtext/wrapper.js.map +1 -1
  662. package/es/graphic/richtext.js +37 -46
  663. package/es/graphic/richtext.js.map +1 -1
  664. package/es/graphic/shadow-root.js +2 -1
  665. package/es/graphic/shadow-root.js.map +1 -1
  666. package/es/graphic/symbol.js +11 -6
  667. package/es/graphic/symbol.js.map +1 -1
  668. package/es/graphic/text.js +39 -40
  669. package/es/graphic/text.js.map +1 -1
  670. package/es/graphic/theme.js +4 -0
  671. package/es/graphic/theme.js.map +1 -1
  672. package/es/graphic/tools.js +16 -44
  673. package/es/graphic/tools.js.map +1 -1
  674. package/es/graphic/wrap-text.js +6 -6
  675. package/es/graphic/wrap-text.js.map +1 -1
  676. package/es/interface/global.d.ts +2 -1
  677. package/es/interface/global.js.map +1 -1
  678. package/es/interface/graphic.d.ts +1 -0
  679. package/es/interface/graphic.js.map +1 -1
  680. package/es/picker/global-picker-service.js +1 -0
  681. package/es/picker/global-picker-service.js.map +1 -1
  682. package/es/picker/pick-interceptor.js +5 -15
  683. package/es/picker/pick-interceptor.js.map +1 -1
  684. package/es/picker/picker-service.js +5 -5
  685. package/es/picker/picker-service.js.map +1 -1
  686. package/es/plugins/builtin-plugin/3dview-transform-plugin.js +26 -20
  687. package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  688. package/es/plugins/builtin-plugin/auto-render-plugin.js +5 -4
  689. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  690. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +5 -4
  691. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  692. package/es/plugins/builtin-plugin/flex-layout-plugin.js +11 -8
  693. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  694. package/es/plugins/builtin-plugin/html-attribute-plugin.js +28 -17
  695. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  696. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js +12 -8
  697. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  698. package/es/plugins/builtin-plugin/react-attribute-plugin.js +6 -6
  699. package/es/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  700. package/es/plugins/plugin-service.js +1 -0
  701. package/es/plugins/plugin-service.js.map +1 -1
  702. package/es/render/contributions/render/arc-render.js +6 -4
  703. package/es/render/contributions/render/arc-render.js.map +1 -1
  704. package/es/render/contributions/render/arc3d-render.js +5 -7
  705. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  706. package/es/render/contributions/render/area-render.js +21 -23
  707. package/es/render/contributions/render/area-render.js.map +1 -1
  708. package/es/render/contributions/render/base-render.js +5 -0
  709. package/es/render/contributions/render/base-render.js.map +1 -1
  710. package/es/render/contributions/render/circle-render.js +6 -4
  711. package/es/render/contributions/render/circle-render.js.map +1 -1
  712. package/es/render/contributions/render/contributions/arc-contribution-render.js +3 -3
  713. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  714. package/es/render/contributions/render/contributions/area-texture-contribution-render.js +2 -5
  715. package/es/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  716. package/es/render/contributions/render/contributions/base-contribution-render.js +10 -7
  717. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  718. package/es/render/contributions/render/contributions/base-texture-contribution-render.js +4 -3
  719. package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  720. package/es/render/contributions/render/contributions/circle-contribution-render.js +3 -3
  721. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  722. package/es/render/contributions/render/contributions/group-contribution-render.js +1 -3
  723. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  724. package/es/render/contributions/render/contributions/image-contribution-render.js +1 -3
  725. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  726. package/es/render/contributions/render/contributions/rect-contribution-render.js +11 -11
  727. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  728. package/es/render/contributions/render/contributions/symbol-contribution-render.js +3 -3
  729. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  730. package/es/render/contributions/render/contributions/text-contribution-render.js +6 -8
  731. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  732. package/es/render/contributions/render/draw-contribution.js +12 -14
  733. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  734. package/es/render/contributions/render/draw-interceptor.js +11 -21
  735. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  736. package/es/render/contributions/render/glyph-render.js +2 -3
  737. package/es/render/contributions/render/glyph-render.js.map +1 -1
  738. package/es/render/contributions/render/graphic-render.js +4 -1
  739. package/es/render/contributions/render/graphic-render.js.map +1 -1
  740. package/es/render/contributions/render/group-render.js +7 -3
  741. package/es/render/contributions/render/group-render.js.map +1 -1
  742. package/es/render/contributions/render/image-render.js +5 -2
  743. package/es/render/contributions/render/image-render.js.map +1 -1
  744. package/es/render/contributions/render/incremental-area-render.js +1 -3
  745. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  746. package/es/render/contributions/render/incremental-draw-contribution.js +80 -109
  747. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  748. package/es/render/contributions/render/incremental-line-render.js +1 -3
  749. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  750. package/es/render/contributions/render/line-render.js +12 -16
  751. package/es/render/contributions/render/line-render.js.map +1 -1
  752. package/es/render/contributions/render/path-render.js +8 -6
  753. package/es/render/contributions/render/path-render.js.map +1 -1
  754. package/es/render/contributions/render/polygon-render.js +6 -4
  755. package/es/render/contributions/render/polygon-render.js.map +1 -1
  756. package/es/render/contributions/render/pyramid3d-render.js +3 -5
  757. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  758. package/es/render/contributions/render/rect-render.js +8 -6
  759. package/es/render/contributions/render/rect-render.js.map +1 -1
  760. package/es/render/contributions/render/rect3d-render.js +5 -7
  761. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  762. package/es/render/contributions/render/richtext-render.js +4 -3
  763. package/es/render/contributions/render/richtext-render.js.map +1 -1
  764. package/es/render/contributions/render/symbol-render.js +11 -14
  765. package/es/render/contributions/render/symbol-render.js.map +1 -1
  766. package/es/render/contributions/render/text-render.js +9 -8
  767. package/es/render/contributions/render/text-render.js.map +1 -1
  768. package/es/render/contributions/render/utils.js +1 -1
  769. package/es/render/contributions/render/utils.js.map +1 -1
  770. package/es/render/render-service.js +11 -2
  771. package/es/render/render-service.js.map +1 -1
  772. package/es/resource-loader/loader.js +12 -17
  773. package/es/resource-loader/loader.js.map +1 -1
  774. package/es/tapable/Hook.js +3 -0
  775. package/es/tapable/Hook.js.map +1 -1
  776. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/ellipse.ts"],"names":[],"mappings":";;;AAEA,iCAA+B;AAC/B,uCAA4C;AAE5C,MAAa,YAAa,SAAQ,YAAK;IASrC,YACE,EAAU,EACV,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,UAAkB,EAClB,QAAgB,EAChB,aAAuB;QAEvB,KAAK,EAAE,CAAC;QAjBV,SAAI,GAAW,qBAAa,CAAC,YAAY,CAAC;QAkBxC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF;AAvCD,oCAuCC","file":"ellipse.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { IEllipseCurve, IDirection } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum } from '../../enums';\n\nexport class EllipseCurve extends Curve implements IEllipseCurve {\n type: number = CurveTypeEnum.EllipseCurve;\n declare p0: IPoint;\n declare radiusX: number;\n declare radiusY: number;\n declare rotation: number;\n declare startAngle: number;\n declare endAngle: number;\n declare anticlockwise?: boolean;\n constructor(\n p0: IPoint,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) {\n super();\n this.p0 = p0;\n this.radiusX = radiusX;\n this.radiusY = radiusY;\n this.rotation = rotation;\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n this.anticlockwise = anticlockwise;\n }\n getPointAt(t: number): IPointLike {\n throw new Error('EllipseCurve暂不支持getPointAt');\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n protected calcLength(): number {\n throw new Error('EllipseCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/ellipse.ts"],"names":[],"mappings":";;;AAEA,iCAA+B;AAC/B,uCAA4C;AAE5C,MAAa,YAAa,SAAQ,YAAK;IACrC,IAAI,GAAW,qBAAa,CAAC,YAAY,CAAC;IAQ1C,YACE,EAAU,EACV,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,UAAkB,EAClB,QAAgB,EAChB,aAAuB;QAEvB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF;AAvCD,oCAuCC","file":"ellipse.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { IEllipseCurve, IDirection } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum } from '../../enums';\n\nexport class EllipseCurve extends Curve implements IEllipseCurve {\n type: number = CurveTypeEnum.EllipseCurve;\n declare p0: IPoint;\n declare radiusX: number;\n declare radiusY: number;\n declare rotation: number;\n declare startAngle: number;\n declare endAngle: number;\n declare anticlockwise?: boolean;\n constructor(\n p0: IPoint,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) {\n super();\n this.p0 = p0;\n this.radiusX = radiusX;\n this.radiusY = radiusY;\n this.rotation = rotation;\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n this.anticlockwise = anticlockwise;\n }\n getPointAt(t: number): IPointLike {\n throw new Error('EllipseCurve暂不支持getPointAt');\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n protected calcLength(): number {\n throw new Error('EllipseCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n}\n"]}
@@ -14,8 +14,9 @@ function divideLinear(curve, t) {
14
14
  exports.divideLinear = divideLinear;
15
15
 
16
16
  class LineCurve extends base_1.Curve {
17
+ type=enums_1.CurveTypeEnum.LineCurve;
17
18
  constructor(p0, p1) {
18
- super(), this.type = enums_1.CurveTypeEnum.LineCurve, this.p0 = p0, this.p1 = p1;
19
+ super(), this.p0 = p0, this.p1 = p1;
19
20
  }
20
21
  getPointAt(t) {
21
22
  if (!1 !== this.defined) return vutils_1.PointService.pointAtPP(this.p0, this.p1, t);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/line.ts"],"names":[],"mappings":";;;AACA,6CAA4D;AAE5D,iCAA+B;AAC/B,uCAAuD;AAEvD,SAAgB,YAAY,CAAC,KAAiB,EAAE,CAAS;IACvD,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IAGzB,MAAM,EAAE,GAAG,qBAAY,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAG7C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAErC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AAXD,oCAWC;AAED,MAAa,SAAU,SAAQ,YAAK;IAOlC,YAAY,EAAU,EAAE,EAAU;QAChC,KAAK,EAAE,CAAC;QAPV,SAAI,GAAW,qBAAa,CAAC,SAAS,CAAC;QAQrC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC1B,OAAO,qBAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACpD;QACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,CAAS;QAClB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAClE;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAES,WAAW;QACnB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAES,UAAU;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,OAAO,qBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SAClD;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,cAAc,CAAC,SAAqB;QAC5C,IAAI,SAAS,KAAK,iBAAS,CAAC,GAAG,EAAE;YAC/B,OAAO,IAAA,YAAG,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACnC;aAAM,IAAI,SAAS,KAAK,iBAAS,CAAC,MAAM,EAAE;YACzC,OAAO,IAAA,YAAG,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACnC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AA9CD,8BA8CC","file":"line.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport { abs, atan2, PointService } from '@visactor/vutils';\nimport type { ILineCurve, IDirection } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum, Direction } from '../../enums';\n\nexport function divideLinear(curve: ILineCurve, t: number): ILineCurve[] {\n const { p0, p1 } = curve;\n\n // 计算两点之间的差值点\n const c1 = PointService.pointAtPP(p0, p1, t);\n // const direction = p1.x1 ? p1.y > p0.y ? 0 : 1 : p1.x > p0.x ? 0 : 1;\n\n const curve1 = new LineCurve(p0, c1);\n const curve2 = new LineCurve(c1, p1);\n\n return [curve1, curve2];\n}\n\nexport class LineCurve extends Curve implements ILineCurve {\n type: number = CurveTypeEnum.LineCurve;\n declare originP1?: IPointLike;\n declare originP2?: IPointLike;\n declare p0: IPoint;\n declare p1: IPoint;\n declare angle: number;\n constructor(p0: IPoint, p1: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n }\n getPointAt(t: number): IPointLike {\n if (this.defined !== false) {\n return PointService.pointAtPP(this.p0, this.p1, t);\n }\n throw new Error('defined为false的点不能getPointAt');\n }\n\n getAngleAt(t: number): number {\n if (this.angle == null) {\n this.angle = atan2(this.p1.y - this.p0.y, this.p1.x - this.p0.x);\n }\n return this.angle;\n }\n\n protected _validPoint() {\n return Number.isFinite(this.p0.x + this.p0.y + this.p1.x + this.p1.y);\n }\n\n protected calcLength(): number {\n if (this._validPoint()) {\n return PointService.distancePP(this.p0, this.p1);\n }\n // TODO 默认长度不好给,只能给个差不多的长度\n return 60;\n }\n\n protected calcProjLength(direction: IDirection): number {\n if (direction === Direction.ROW) {\n return abs(this.p0.x - this.p1.x);\n } else if (direction === Direction.COLUMN) {\n return abs(this.p0.y - this.p1.y);\n }\n return 0;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/line.ts"],"names":[],"mappings":";;;AACA,6CAA4D;AAE5D,iCAA+B;AAC/B,uCAAuD;AAEvD,SAAgB,YAAY,CAAC,KAAiB,EAAE,CAAS;IACvD,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IAGzB,MAAM,EAAE,GAAG,qBAAY,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAG7C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAErC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AAXD,oCAWC;AAED,MAAa,SAAU,SAAQ,YAAK;IAClC,IAAI,GAAW,qBAAa,CAAC,SAAS,CAAC;IAMvC,YAAY,EAAU,EAAE,EAAU;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC1B,OAAO,qBAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACpD;QACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,CAAS;QAClB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAClE;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAES,WAAW;QACnB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAES,UAAU;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,OAAO,qBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SAClD;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,cAAc,CAAC,SAAqB;QAC5C,IAAI,SAAS,KAAK,iBAAS,CAAC,GAAG,EAAE;YAC/B,OAAO,IAAA,YAAG,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACnC;aAAM,IAAI,SAAS,KAAK,iBAAS,CAAC,MAAM,EAAE;YACzC,OAAO,IAAA,YAAG,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACnC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AA9CD,8BA8CC","file":"line.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport { abs, atan2, PointService } from '@visactor/vutils';\nimport type { ILineCurve, IDirection } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum, Direction } from '../../enums';\n\nexport function divideLinear(curve: ILineCurve, t: number): ILineCurve[] {\n const { p0, p1 } = curve;\n\n // 计算两点之间的差值点\n const c1 = PointService.pointAtPP(p0, p1, t);\n // const direction = p1.x1 ? p1.y > p0.y ? 0 : 1 : p1.x > p0.x ? 0 : 1;\n\n const curve1 = new LineCurve(p0, c1);\n const curve2 = new LineCurve(c1, p1);\n\n return [curve1, curve2];\n}\n\nexport class LineCurve extends Curve implements ILineCurve {\n type: number = CurveTypeEnum.LineCurve;\n declare originP1?: IPointLike;\n declare originP2?: IPointLike;\n declare p0: IPoint;\n declare p1: IPoint;\n declare angle: number;\n constructor(p0: IPoint, p1: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n }\n getPointAt(t: number): IPointLike {\n if (this.defined !== false) {\n return PointService.pointAtPP(this.p0, this.p1, t);\n }\n throw new Error('defined为false的点不能getPointAt');\n }\n\n getAngleAt(t: number): number {\n if (this.angle == null) {\n this.angle = atan2(this.p1.y - this.p0.y, this.p1.x - this.p0.x);\n }\n return this.angle;\n }\n\n protected _validPoint() {\n return Number.isFinite(this.p0.x + this.p0.y + this.p1.x + this.p1.y);\n }\n\n protected calcLength(): number {\n if (this._validPoint()) {\n return PointService.distancePP(this.p0, this.p1);\n }\n // TODO 默认长度不好给,只能给个差不多的长度\n return 60;\n }\n\n protected calcProjLength(direction: IDirection): number {\n if (direction === Direction.ROW) {\n return abs(this.p0.x - this.p1.x);\n } else if (direction === Direction.COLUMN) {\n return abs(this.p0.y - this.p1.y);\n }\n return 0;\n }\n}\n"]}
@@ -7,8 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const base_1 = require("./base"), enums_1 = require("../../enums");
8
8
 
9
9
  class MoveCurve extends base_1.Curve {
10
+ type=enums_1.CurveTypeEnum.MoveCurve;
10
11
  constructor(p0, p1) {
11
- super(), this.type = enums_1.CurveTypeEnum.MoveCurve, this.p0 = p0, this.p1 = p1;
12
+ super(), this.p0 = p0, this.p1 = p1;
12
13
  }
13
14
  getAngleAt(t) {
14
15
  throw new Error("ArcCurve暂不支持getAngleAt");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/move.ts"],"names":[],"mappings":";;;AAEA,iCAA+B;AAC/B,uCAA4C;AAE5C,MAAa,SAAU,SAAQ,YAAK;IAIlC,YAAY,EAAU,EAAE,EAAU;QAChC,KAAK,EAAE,CAAC;QAJV,SAAI,GAAW,qBAAa,CAAC,SAAS,CAAC;QAKrC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF;AArBD,8BAqBC","file":"move.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { IMoveCurve, IDirection } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum } from '../../enums';\n\nexport class MoveCurve extends Curve implements IMoveCurve {\n type: number = CurveTypeEnum.MoveCurve;\n declare p0: IPoint;\n declare p1: IPoint;\n constructor(p0: IPoint, p1: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n getPointAt(t: number): IPointLike {\n throw new Error('MoveCurve暂不支持getPointAt');\n }\n protected calcLength(): number {\n throw new Error('MoveCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/move.ts"],"names":[],"mappings":";;;AAEA,iCAA+B;AAC/B,uCAA4C;AAE5C,MAAa,SAAU,SAAQ,YAAK;IAClC,IAAI,GAAW,qBAAa,CAAC,SAAS,CAAC;IAGvC,YAAY,EAAU,EAAE,EAAU;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF;AArBD,8BAqBC","file":"move.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { IMoveCurve, IDirection } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum } from '../../enums';\n\nexport class MoveCurve extends Curve implements IMoveCurve {\n type: number = CurveTypeEnum.MoveCurve;\n declare p0: IPoint;\n declare p1: IPoint;\n constructor(p0: IPoint, p1: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n getPointAt(t: number): IPointLike {\n throw new Error('MoveCurve暂不支持getPointAt');\n }\n protected calcLength(): number {\n throw new Error('MoveCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n}\n"]}
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const vutils_1 = require("@visactor/vutils");
8
8
 
9
9
  class CurvePath {
10
+ curves;
11
+ bounds;
10
12
  constructor() {
11
13
  this.curves = [], this.bounds = new vutils_1.AABBBounds;
12
14
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/path.ts"],"names":[],"mappings":";;;AACA,6CAA8C;AAG9C,MAAa,SAAS;IAGpB;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAU,EAAE,CAAC;IACjC,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,SAAS;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAnBD,8BAmBC","file":"path.js","sourcesContent":["import type { IAABBBounds, IPoint, IPointLike } from '@visactor/vutils';\nimport { AABBBounds } from '@visactor/vutils';\nimport type { ICurvePath, ICurve } from '../../../interface';\n\nexport class CurvePath implements ICurvePath<IPoint> {\n curves: ICurve<IPoint>[];\n bounds: IAABBBounds;\n constructor() {\n this.curves = [];\n this.bounds = new AABBBounds();\n }\n getCurveLengths(): number[] {\n return this.curves.map(curve => curve.getLength());\n }\n getPointAt(t: number): IPointLike {\n return { x: 0, y: 0 };\n }\n getLength(): number {\n return 0;\n }\n getBounds() {\n return this.bounds;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/path.ts"],"names":[],"mappings":";;;AACA,6CAA8C;AAG9C,MAAa,SAAS;IACpB,MAAM,CAAmB;IACzB,MAAM,CAAc;IACpB;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAU,EAAE,CAAC;IACjC,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,SAAS;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAnBD,8BAmBC","file":"path.js","sourcesContent":["import type { IAABBBounds, IPoint, IPointLike } from '@visactor/vutils';\nimport { AABBBounds } from '@visactor/vutils';\nimport type { ICurvePath, ICurve } from '../../../interface';\n\nexport class CurvePath implements ICurvePath<IPoint> {\n curves: ICurve<IPoint>[];\n bounds: IAABBBounds;\n constructor() {\n this.curves = [];\n this.bounds = new AABBBounds();\n }\n getCurveLengths(): number[] {\n return this.curves.map(curve => curve.getLength());\n }\n getPointAt(t: number): IPointLike {\n return { x: 0, y: 0 };\n }\n getLength(): number {\n return 0;\n }\n getBounds() {\n return this.bounds;\n }\n}\n"]}
@@ -7,9 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const enums_1 = require("src/common/enums"), base_1 = require("./base");
8
8
 
9
9
  class QuadraticBezierCurve extends base_1.Curve {
10
+ type=enums_1.CurveTypeEnum.QuadraticBezierCurve;
10
11
  constructor(p0, p1, p2) {
11
- super(), this.type = enums_1.CurveTypeEnum.QuadraticBezierCurve, this.p0 = p0, this.p1 = p1,
12
- this.p2 = p2;
12
+ super(), this.p0 = p0, this.p1 = p1, this.p2 = p2;
13
13
  }
14
14
  getPointAt(t) {
15
15
  throw new Error("QuadraticBezierCurve暂不支持getPointAt");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/quadratic-bezier.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAEjD,iCAA+B;AAG/B,MAAa,oBAAqB,SAAQ,YAAK;IAQ7C,YAAY,EAAU,EAAE,EAAU,EAAE,EAAU;QAC5C,KAAK,EAAE,CAAC;QARV,SAAI,GAAW,qBAAa,CAAC,oBAAoB,CAAC;QAShD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;CACF;AA1BD,oDA0BC","file":"quadratic-bezier.js","sourcesContent":["import { CurveTypeEnum } from 'src/common/enums';\nimport type { IDirection, IQuadraticBezierCurve } from '../../../interface';\nimport { Curve } from './base';\nimport type { IPoint, IPointLike } from '@visactor/vutils';\n\nexport class QuadraticBezierCurve extends Curve implements IQuadraticBezierCurve {\n type: number = CurveTypeEnum.QuadraticBezierCurve;\n declare originP1?: IPointLike;\n declare originP2?: IPointLike;\n\n declare readonly p0: IPoint;\n declare readonly p1: IPoint;\n declare readonly p2: IPoint;\n constructor(p0: IPoint, p1: IPoint, p2: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n this.p2 = p2;\n }\n getPointAt(t: number): IPointLike {\n throw new Error('QuadraticBezierCurve暂不支持getPointAt');\n }\n protected calcLength(): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/quadratic-bezier.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAEjD,iCAA+B;AAG/B,MAAa,oBAAqB,SAAQ,YAAK;IAC7C,IAAI,GAAW,qBAAa,CAAC,oBAAoB,CAAC;IAOlD,YAAY,EAAU,EAAE,EAAU,EAAE,EAAU;QAC5C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;CACF;AA1BD,oDA0BC","file":"quadratic-bezier.js","sourcesContent":["import { CurveTypeEnum } from 'src/common/enums';\nimport type { IDirection, IQuadraticBezierCurve } from '../../../interface';\nimport { Curve } from './base';\nimport type { IPoint, IPointLike } from '@visactor/vutils';\n\nexport class QuadraticBezierCurve extends Curve implements IQuadraticBezierCurve {\n type: number = CurveTypeEnum.QuadraticBezierCurve;\n declare originP1?: IPointLike;\n declare originP2?: IPointLike;\n\n declare readonly p0: IPoint;\n declare readonly p1: IPoint;\n declare readonly p2: IPoint;\n constructor(p0: IPoint, p1: IPoint, p2: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n this.p2 = p2;\n }\n getPointAt(t: number): IPointLike {\n throw new Error('QuadraticBezierCurve暂不支持getPointAt');\n }\n protected calcLength(): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/linear-closed.ts"],"names":[],"mappings":";;;AACA,qCAA2D;AAE3D,qCAAkC;AAqBlC,MAAa,YAAa,SAAQ,eAAM;IAKtC,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC;CACF;AARD,oCAQC;AAED,SAAgB,uBAAuB,CAAC,MAAoB,EAAE,SAA4B,EAAE;IAC1F,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;QAC5C,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAExD,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5C,OAAO,UAAU,CAAC;AACpB,CAAC;AAbD,0DAaC;AAED,SAAgB,2BAA2B,CAAC,IAAoB,EAAE,MAAoB;IACpF,OAAO,IAAA,yBAAgB,EAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAFD,kEAEC","file":"linear-closed.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { genCurveSegments, genSegContext } from './common';\nimport type { IGenSegmentParams, ILinearSegment, ISegPath2D } from '../../interface/curve';\nimport { Linear } from './linear';\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/linear.js\nexport class LinearClosed extends Linear implements ILinearSegment {\n declare context: ISegPath2D;\n\n protected startPoint?: IPointLike;\n\n lineEnd() {\n this.context.closePath();\n }\n}\n\nexport function genLinearClosedSegments(points: IPointLike[], params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n\n const segContext = genSegContext('linear', direction, points);\n\n const linear = new LinearClosed(segContext, startPoint);\n\n genLinearClosedTypeSegments(linear, points);\n\n return segContext;\n}\n\nexport function genLinearClosedTypeSegments(path: ILinearSegment, points: IPointLike[]): void {\n return genCurveSegments(path, points, 1);\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/linear-closed.ts"],"names":[],"mappings":";;;AACA,qCAA2D;AAE3D,qCAAkC;AAqBlC,MAAa,YAAa,SAAQ,eAAM;IAKtC,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC;CACF;AARD,oCAQC;AAED,SAAgB,uBAAuB,CAAC,MAAoB,EAAE,SAA4B,EAAE;IAC1F,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;QAC5C,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAExD,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5C,OAAO,UAAU,CAAC;AACpB,CAAC;AAbD,0DAaC;AAED,SAAgB,2BAA2B,CAAC,IAAoB,EAAE,MAAoB;IACpF,OAAO,IAAA,yBAAgB,EAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAFD,kEAEC","file":"linear-closed.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { genCurveSegments, genSegContext } from './common';\nimport type { IGenSegmentParams, ILinearSegment, ISegPath2D } from '../../interface/curve';\nimport { Linear } from './linear';\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/linear.js\nexport class LinearClosed extends Linear implements ILinearSegment {\n declare context: ISegPath2D;\n\n protected declare startPoint?: IPointLike;\n\n lineEnd() {\n this.context.closePath();\n }\n}\n\nexport function genLinearClosedSegments(points: IPointLike[], params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n\n const segContext = genSegContext('linear', direction, points);\n\n const linear = new LinearClosed(segContext, startPoint);\n\n genLinearClosedTypeSegments(linear, points);\n\n return segContext;\n}\n\nexport function genLinearClosedTypeSegments(path: ILinearSegment, points: IPointLike[]): void {\n return genCurveSegments(path, points, 1);\n}\n"]}
@@ -7,9 +7,19 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const common_1 = require("./common");
8
8
 
9
9
  class Linear {
10
+ _lastDefined;
11
+ startPoint;
10
12
  constructor(context, startPoint) {
11
13
  this.context = context, startPoint && (this.startPoint = startPoint);
12
14
  }
15
+ _x;
16
+ _y;
17
+ _x0;
18
+ _x1;
19
+ _y0;
20
+ _y1;
21
+ _line;
22
+ _point;
13
23
  areaStart() {
14
24
  this._line = 0;
15
25
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/linear.ts"],"names":[],"mappings":";;;AACA,qCAA2D;AAsB3D,MAAa,MAAM;IAMjB,YAAY,OAAmB,EAAE,UAAuB;QACtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAC/C,CAAC;IAUD,SAAS;QACP,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IACnB,CAAC;IACD,SAAS;QACP,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IACD,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YACzD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC9B,CAAC;IACD,KAAK,CAAC,CAAa;QACjB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACd,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,CAAC;gBACJ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,KAAK;oBACR,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;oBAClF,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,CAAC;gBACJ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAClB;gBACE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;gBACjF,MAAM;SACT;QAED,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;CACF;AA1DD,wBA0DC;AAED,SAAgB,iBAAiB,CAAC,MAAoB,EAAE,SAA4B,EAAE;IACpF,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;QAC5C,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAElD,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,OAAO,UAAU,CAAC;AACpB,CAAC;AAbD,8CAaC;AAED,SAAgB,qBAAqB,CAAC,IAAoB,EAAE,MAAoB;IAC9E,OAAO,IAAA,yBAAgB,EAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAFD,sDAEC","file":"linear.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { genCurveSegments, genSegContext } from './common';\nimport type { IGenSegmentParams, ILinearSegment, ISegPath2D } from '../../interface/curve';\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/linear.js\nexport class Linear implements ILinearSegment {\n declare context: ISegPath2D;\n protected _lastDefined?: boolean;\n\n protected startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n this.context = context;\n startPoint && (this.startPoint = startPoint);\n }\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _line: number;\n _point: number;\n\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n this.startPoint && this.point(this.startPoint);\n }\n lineEnd() {\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 = p.x;\n const y = p.y;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line\n ? this.context.lineTo(x, y, this._lastDefined !== false && p.defined !== false, p)\n : this.context.moveTo(x, y, p);\n break;\n case 1:\n this._point = 2; // falls through\n default:\n this.context.lineTo(x, y, this._lastDefined !== false && p.defined !== false, p);\n break;\n }\n\n this._lastDefined = p.defined;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport function genLinearSegments(points: IPointLike[], params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n\n const segContext = genSegContext('linear', direction, points);\n\n const linear = new Linear(segContext, startPoint);\n\n genLinearTypeSegments(linear, points);\n\n return segContext;\n}\n\nexport function genLinearTypeSegments(path: ILinearSegment, points: IPointLike[]): void {\n return genCurveSegments(path, points, 1);\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/linear.ts"],"names":[],"mappings":"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","file":"linear.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { genCurveSegments, genSegContext } from './common';\nimport type { IGenSegmentParams, ILinearSegment, ISegPath2D } from '../../interface/curve';\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/linear.js\nexport class Linear implements ILinearSegment {\n declare context: ISegPath2D;\n protected _lastDefined?: boolean;\n\n protected startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n this.context = context;\n startPoint && (this.startPoint = startPoint);\n }\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _line: number;\n _point: number;\n\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n this.startPoint && this.point(this.startPoint);\n }\n lineEnd() {\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 = p.x;\n const y = p.y;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line\n ? this.context.lineTo(x, y, this._lastDefined !== false && p.defined !== false, p)\n : this.context.moveTo(x, y, p);\n break;\n case 1:\n this._point = 2; // falls through\n default:\n this.context.lineTo(x, y, this._lastDefined !== false && p.defined !== false, p);\n break;\n }\n\n this._lastDefined = p.defined;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport function genLinearSegments(points: IPointLike[], params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n\n const segContext = genSegContext('linear', direction, points);\n\n const linear = new Linear(segContext, startPoint);\n\n genLinearTypeSegments(linear, points);\n\n return segContext;\n}\n\nexport function genLinearTypeSegments(path: ILinearSegment, points: IPointLike[]): void {\n return genCurveSegments(path, points, 1);\n}\n"]}
@@ -26,9 +26,22 @@ function point(curveClass, t0, t1, defined, p) {
26
26
  }
27
27
 
28
28
  class MonotoneX {
29
+ _lastDefined1;
30
+ _lastDefined2;
31
+ startPoint;
32
+ lastPoint0;
33
+ lastPoint1;
29
34
  constructor(context, startPoint) {
30
35
  this.context = context, this.startPoint = startPoint;
31
36
  }
37
+ _x;
38
+ _y;
39
+ _x0;
40
+ _x1;
41
+ _y0;
42
+ _y1;
43
+ _line;
44
+ _point;
32
45
  areaStart() {
33
46
  this._line = 0;
34
47
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/monotone.ts"],"names":[],"mappings":";;;AACA,qCAA6C;AAC7C,qCAA2D;AAsB3D,SAAS,IAAI,CAAC,CAAS;IACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAMD,SAAS,MAAM,CAAC,UAAiC,EAAE,EAAU,EAAE,EAAU;IACvE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC3C,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC;IAC/B,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9F,CAAC;AAGD,SAAS,MAAM,CAAC,UAAiC,EAAE,CAAS;IAC1D,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC1C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAKD,SAAS,KAAK,CAAC,UAAiC,EAAE,EAAU,EAAE,EAAU,EAAE,OAAgB,EAAE,CAAa;IACvG,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC;IAC1B,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC;IAC1B,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC;IAC1B,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACzB,UAAU,CAAC,OAAO,CAAC,aAAa,CAC9B,EAAE,GAAG,EAAE,EACP,EAAE,GAAG,EAAE,GAAG,EAAE,EACZ,EAAE,GAAG,EAAE,EACP,EAAE,GAAG,EAAE,GAAG,EAAE,EACZ,EAAE,EACF,EAAE,EACF,OAAO,EACP,UAAU,CAAC,UAAU,CACtB,CAAC;AACJ,CAAC;AAED,MAAa,SAAS;IAUpB,YAAY,OAAmB,EAAE,UAAuB;QACtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAUD,SAAS;QACP,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IACnB,CAAC;IACD,SAAS;QACP,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IACD,OAAO;QACL,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAC5D,IAAI,CAAC,UAAU,CAChB,CAAC;gBACF,MAAM;YACR,KAAK,CAAC;gBACJ,KAAK,CACH,IAAI,EACJ,IAAI,CAAC,GAAG,EACR,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EACtB,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAC5D,IAAI,CAAC,UAAU,CAChB,CAAC;gBACF,MAAM;SACT;QACD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YACzD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC9B,CAAC;IACD,KAAK,CAAC,CAAa;QACjB,IAAI,EAAE,GAAG,GAAG,CAAC;QACb,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAId,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,CAAC;gBACJ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,KAAK;oBACR,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC,CAAC;oBAC5F,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,CAAC;gBACJ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,MAAM;YACR,KAAK,CAAC;gBACJ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,KAAK,CACH,IAAI,EACJ,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EACvC,EAAE,EACF,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAC5D,CAAC,CACF,CAAC;gBACF,MAAM;YACR;gBACE,KAAK,CACH,IAAI,EACJ,IAAI,CAAC,GAAG,EACR,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EACzB,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAC5D,CAAC,CACF,CAAC;gBACF,MAAM;SACT;QAED,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;CACF;AA7GD,8BA6GC;AAED,MAAa,SAAU,SAAQ,SAAS;IAKtC,YAAY,OAAmB,EAAE,UAAuB;QACtD,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,CAAa;QACjB,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAS,CAAC,CAAC;IACpE,CAAC;CACF;AAZD,8BAYC;AAED,SAAgB,wBAAwB,CAAC,IAAe,EAAE,MAAoB;IAC5E,OAAO,IAAA,yBAAgB,EAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAFD,4DAEC;AAED,SAAgB,oBAAoB,CAAC,MAAoB,EAAE,SAA4B,EAAE;IACvF,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAEzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;QAC5C,OAAO,IAAA,0BAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC1C;IACD,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEjE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAExD,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAE5C,OAAO,UAAU,CAAC;AACpB,CAAC;AAhBD,oDAgBC;AAED,SAAgB,wBAAwB,CAAC,IAAe,EAAE,MAAoB;IAC5E,OAAO,IAAA,yBAAgB,EAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAFD,4DAEC;AAED,SAAgB,oBAAoB,CAAC,MAAoB,EAAE,SAA4B,EAAE;IACvF,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;QAC5C,OAAO,IAAA,0BAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC1C;IACD,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAExD,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAE5C,OAAO,UAAU,CAAC;AACpB,CAAC;AAdD,oDAcC","file":"monotone.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { genLinearSegments } from './linear';\nimport { genCurveSegments, genSegContext } from './common';\nimport type { ICurvedSegment, IGenSegmentParams, ISegPath2D } from '../../interface/curve';\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/monotone.js\nfunction sign(x: number): number {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(curveClass: MonotoneX | MonotoneY, x2: number, y2: number) {\n const h0 = curveClass._x1 - curveClass._x0;\n const h1 = x2 - curveClass._x1;\n const s0 = (curveClass._y1 - curveClass._y0) / (h0 || Number(h1 < 0 && -0));\n const s1 = (y2 - curveClass._y1) / (h1 || Number(h0 < 0 && -0));\n const p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(curveClass: MonotoneX | MonotoneY, t: number) {\n const h = curveClass._x1 - curveClass._x0;\n return h ? ((3 * (curveClass._y1 - curveClass._y0)) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(curveClass: MonotoneX | MonotoneY, t0: number, t1: number, defined: boolean, p: IPointLike) {\n const x0 = curveClass._x0;\n const y0 = curveClass._y0;\n const x1 = curveClass._x1;\n const y1 = curveClass._y1;\n const dx = (x1 - x0) / 3;\n curveClass.context.bezierCurveTo(\n x0 + dx,\n y0 + dx * t0,\n x1 - dx,\n y1 - dx * t1,\n x1,\n y1,\n defined,\n curveClass.lastPoint1\n );\n}\n\nexport class MonotoneX implements ICurvedSegment {\n protected _lastDefined1?: boolean;\n protected _lastDefined2?: boolean;\n declare context: ISegPath2D;\n declare _t0: number;\n\n protected startPoint?: IPointLike;\n lastPoint0?: IPointLike;\n lastPoint1?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n this.context = context;\n this.startPoint = startPoint;\n }\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _line: number;\n _point: number;\n\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n this.startPoint && this.point(this.startPoint);\n }\n lineEnd() {\n switch (this._point) {\n case 2:\n this.context.lineTo(\n this._x1,\n this._y1,\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n this.lastPoint1\n );\n break;\n case 3:\n point(\n this,\n this._t0,\n slope2(this, this._t0),\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n this.lastPoint1\n );\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 let t1 = NaN;\n const x = p.x;\n const y = p.y;\n // if (x === this._x1 && y === this._y1) {\n // return;\n // } // Ignore coincident points.\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, p)\n : this.context.moveTo(x, y, p);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n point(\n this,\n slope2(this, (t1 = slope3(this, x, y))),\n t1,\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n p\n );\n break;\n default:\n point(\n this,\n this._t0,\n (t1 = slope3(this, x, y)),\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n p\n );\n break;\n }\n\n (this._x0 = this._x1), (this._x1 = x);\n (this._y0 = this._y1), (this._y1 = y);\n this._t0 = t1;\n this._lastDefined1 = this._lastDefined2;\n this._lastDefined2 = p.defined !== false;\n this.lastPoint0 = this.lastPoint1;\n this.lastPoint1 = p;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport class MonotoneY extends MonotoneX {\n declare context: ISegPath2D;\n\n protected declare startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super(context, startPoint);\n }\n\n point(p: IPointLike): void {\n return super.point({ y: p.x, x: p.y, defined: p.defined } as any);\n }\n}\n\nexport function genMonotoneXTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneXSegments(points: IPointLike[], params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n\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 const segContext = genSegContext('monotoneX', direction, points);\n\n const monotoneX = new MonotoneX(segContext, startPoint);\n\n genMonotoneXTypeSegments(monotoneX, points);\n\n return segContext;\n}\n\nexport function genMonotoneYTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneYSegments(points: IPointLike[], params: IGenSegmentParams = {}): 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 const segContext = genSegContext('monotoneY', direction, points);\n const monotoneY = new MonotoneY(segContext, startPoint);\n\n genMonotoneYTypeSegments(monotoneY, points);\n\n return segContext;\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/monotone.ts"],"names":[],"mappings":"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","file":"monotone.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { genLinearSegments } from './linear';\nimport { genCurveSegments, genSegContext } from './common';\nimport type { ICurvedSegment, IGenSegmentParams, ISegPath2D } from '../../interface/curve';\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/monotone.js\nfunction sign(x: number): number {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(curveClass: MonotoneX | MonotoneY, x2: number, y2: number) {\n const h0 = curveClass._x1 - curveClass._x0;\n const h1 = x2 - curveClass._x1;\n const s0 = (curveClass._y1 - curveClass._y0) / (h0 || Number(h1 < 0 && -0));\n const s1 = (y2 - curveClass._y1) / (h1 || Number(h0 < 0 && -0));\n const p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(curveClass: MonotoneX | MonotoneY, t: number) {\n const h = curveClass._x1 - curveClass._x0;\n return h ? ((3 * (curveClass._y1 - curveClass._y0)) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(curveClass: MonotoneX | MonotoneY, t0: number, t1: number, defined: boolean, p: IPointLike) {\n const x0 = curveClass._x0;\n const y0 = curveClass._y0;\n const x1 = curveClass._x1;\n const y1 = curveClass._y1;\n const dx = (x1 - x0) / 3;\n curveClass.context.bezierCurveTo(\n x0 + dx,\n y0 + dx * t0,\n x1 - dx,\n y1 - dx * t1,\n x1,\n y1,\n defined,\n curveClass.lastPoint1\n );\n}\n\nexport class MonotoneX implements ICurvedSegment {\n protected _lastDefined1?: boolean;\n protected _lastDefined2?: boolean;\n declare context: ISegPath2D;\n declare _t0: number;\n\n protected startPoint?: IPointLike;\n lastPoint0?: IPointLike;\n lastPoint1?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n this.context = context;\n this.startPoint = startPoint;\n }\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _line: number;\n _point: number;\n\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n this.startPoint && this.point(this.startPoint);\n }\n lineEnd() {\n switch (this._point) {\n case 2:\n this.context.lineTo(\n this._x1,\n this._y1,\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n this.lastPoint1\n );\n break;\n case 3:\n point(\n this,\n this._t0,\n slope2(this, this._t0),\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n this.lastPoint1\n );\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 let t1 = NaN;\n const x = p.x;\n const y = p.y;\n // if (x === this._x1 && y === this._y1) {\n // return;\n // } // Ignore coincident points.\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, p)\n : this.context.moveTo(x, y, p);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n point(\n this,\n slope2(this, (t1 = slope3(this, x, y))),\n t1,\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n p\n );\n break;\n default:\n point(\n this,\n this._t0,\n (t1 = slope3(this, x, y)),\n this._lastDefined1 !== false && this._lastDefined2 !== false,\n p\n );\n break;\n }\n\n (this._x0 = this._x1), (this._x1 = x);\n (this._y0 = this._y1), (this._y1 = y);\n this._t0 = t1;\n this._lastDefined1 = this._lastDefined2;\n this._lastDefined2 = p.defined !== false;\n this.lastPoint0 = this.lastPoint1;\n this.lastPoint1 = p;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport class MonotoneY extends MonotoneX {\n declare context: ISegPath2D;\n\n protected declare startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super(context, startPoint);\n }\n\n point(p: IPointLike): void {\n return super.point({ y: p.x, x: p.y, defined: p.defined } as any);\n }\n}\n\nexport function genMonotoneXTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneXSegments(points: IPointLike[], params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n\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 const segContext = genSegContext('monotoneX', direction, points);\n\n const monotoneX = new MonotoneX(segContext, startPoint);\n\n genMonotoneXTypeSegments(monotoneX, points);\n\n return segContext;\n}\n\nexport function genMonotoneYTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneYSegments(points: IPointLike[], params: IGenSegmentParams = {}): 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 const segContext = genSegContext('monotoneY', direction, points);\n const monotoneY = new MonotoneY(segContext, startPoint);\n\n genMonotoneYTypeSegments(monotoneY, points);\n\n return segContext;\n}\n"]}
@@ -7,9 +7,20 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const vutils_1 = require("@visactor/vutils"), seg_context_1 = require("../seg-context"), common_1 = require("./common"), enums_1 = require("../enums");
8
8
 
9
9
  class Step {
10
+ _lastDefined;
11
+ startPoint;
12
+ lastPoint;
10
13
  constructor(context, t = .5, startPoint) {
11
14
  this.context = context, this._t = t, this.startPoint = startPoint;
12
15
  }
16
+ _x;
17
+ _y;
18
+ _x0;
19
+ _x1;
20
+ _y0;
21
+ _y1;
22
+ _line;
23
+ _point;
13
24
  areaStart() {
14
25
  this._line = 0;
15
26
  }
@@ -52,8 +63,8 @@ class Step {
52
63
  function genStepSegments(points, t, params = {}) {
53
64
  const {direction: direction, startPoint: startPoint} = params;
54
65
  if (points.length < 2 - Number(!!startPoint)) return null;
55
- const segContext = new seg_context_1.SegContext("step", null != direction ? direction : (0,
56
- vutils_1.abs)(points[points.length - 1].x - points[0].x) > (0, vutils_1.abs)(points[points.length - 1].y - points[0].y) ? enums_1.Direction.ROW : enums_1.Direction.COLUMN);
66
+ const segContext = new seg_context_1.SegContext("step", direction ?? ((0, vutils_1.abs)(points[points.length - 1].x - points[0].x) > (0,
67
+ vutils_1.abs)(points[points.length - 1].y - points[0].y) ? enums_1.Direction.ROW : enums_1.Direction.COLUMN));
57
68
  return genStepTypeSegments(new Step(segContext, t, startPoint), points), segContext;
58
69
  }
59
70
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/step.ts"],"names":[],"mappings":"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","file":"step.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { abs } from '@visactor/vutils';\nimport { SegContext } from '../seg-context';\nimport { genCurveSegments } from './common';\nimport { Direction } from '../enums';\nimport type { ICurvedSegment, IGenSegmentParams, ILinearSegment, ISegPath2D } from '../../interface/curve';\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/step.js\nexport class Step implements ICurvedSegment {\n declare context: ISegPath2D;\n declare _t: number;\n private _lastDefined?: boolean;\n\n protected startPoint?: IPointLike;\n protected lastPoint?: IPointLike;\n\n constructor(context: ISegPath2D, t: number = 0.5, startPoint?: IPointLike) {\n this.context = context;\n this._t = t;\n this.startPoint = startPoint;\n }\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _line: number;\n _point: number;\n\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._x = this._y = NaN;\n this._point = 0;\n this.startPoint && this.point(this.startPoint);\n }\n lineEnd() {\n if (0 < this._t && this._t < 1 && this._point === 2) {\n this.context.lineTo(this._x, this._y, this._lastDefined !== false, this.lastPoint);\n }\n if (this._line || (this._line !== 0 && this._point === 1)) {\n this.context.closePath();\n }\n if (this._line >= 0) {\n (this._t = 1 - this._t), (this._line = 1 - this._line);\n }\n }\n point(p: IPointLike): void {\n const x = p.x;\n const y = p.y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line\n ? this.context.lineTo(x, y, this._lastDefined !== false && p.defined !== false, p)\n : this.context.moveTo(x, y, p);\n break;\n case 1:\n this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this.context.lineTo(this._x, y, this._lastDefined !== false && p.defined !== false, this.lastPoint);\n this.context.lineTo(x, y, this._lastDefined !== false && p.defined !== false, p);\n } else {\n const x1 = this._x * (1 - this._t) + x * this._t;\n this.context.lineTo(x1, this._y, this._lastDefined !== false && p.defined !== false, this.lastPoint);\n this.context.lineTo(x1, y, this._lastDefined !== false && p.defined !== false, p);\n }\n break;\n }\n }\n this._lastDefined = p.defined;\n (this._x = x), (this._y = y);\n this.lastPoint = p;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport function genStepSegments(points: IPointLike[], t: number, params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n const segContext = new SegContext(\n 'step',\n direction ??\n (abs(points[points.length - 1].x - points[0].x) > abs(points[points.length - 1].y - points[0].y)\n ? Direction.ROW\n : Direction.COLUMN)\n );\n const step = new Step(segContext, t, startPoint);\n\n genStepTypeSegments(step, points);\n\n return segContext;\n}\n\nexport function genStepTypeSegments(path: ILinearSegment, points: IPointLike[]): void {\n return genCurveSegments(path, points, 1);\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/step.ts"],"names":[],"mappings":"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","file":"step.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { abs } from '@visactor/vutils';\nimport { SegContext } from '../seg-context';\nimport { genCurveSegments } from './common';\nimport { Direction } from '../enums';\nimport type { ICurvedSegment, IGenSegmentParams, ILinearSegment, ISegPath2D } from '../../interface/curve';\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/step.js\nexport class Step implements ICurvedSegment {\n declare context: ISegPath2D;\n declare _t: number;\n private _lastDefined?: boolean;\n\n protected startPoint?: IPointLike;\n protected lastPoint?: IPointLike;\n\n constructor(context: ISegPath2D, t: number = 0.5, startPoint?: IPointLike) {\n this.context = context;\n this._t = t;\n this.startPoint = startPoint;\n }\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _line: number;\n _point: number;\n\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._x = this._y = NaN;\n this._point = 0;\n this.startPoint && this.point(this.startPoint);\n }\n lineEnd() {\n if (0 < this._t && this._t < 1 && this._point === 2) {\n this.context.lineTo(this._x, this._y, this._lastDefined !== false, this.lastPoint);\n }\n if (this._line || (this._line !== 0 && this._point === 1)) {\n this.context.closePath();\n }\n if (this._line >= 0) {\n (this._t = 1 - this._t), (this._line = 1 - this._line);\n }\n }\n point(p: IPointLike): void {\n const x = p.x;\n const y = p.y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line\n ? this.context.lineTo(x, y, this._lastDefined !== false && p.defined !== false, p)\n : this.context.moveTo(x, y, p);\n break;\n case 1:\n this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this.context.lineTo(this._x, y, this._lastDefined !== false && p.defined !== false, this.lastPoint);\n this.context.lineTo(x, y, this._lastDefined !== false && p.defined !== false, p);\n } else {\n const x1 = this._x * (1 - this._t) + x * this._t;\n this.context.lineTo(x1, this._y, this._lastDefined !== false && p.defined !== false, this.lastPoint);\n this.context.lineTo(x1, y, this._lastDefined !== false && p.defined !== false, p);\n }\n break;\n }\n }\n this._lastDefined = p.defined;\n (this._x = x), (this._y = y);\n this.lastPoint = p;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport function genStepSegments(points: IPointLike[], t: number, params: IGenSegmentParams = {}): ISegPath2D | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n const segContext = new SegContext(\n 'step',\n direction ??\n (abs(points[points.length - 1].x - points[0].x) > abs(points[points.length - 1].y - points[0].y)\n ? Direction.ROW\n : Direction.COLUMN)\n );\n const step = new Step(segContext, t, startPoint);\n\n genStepTypeSegments(step, points);\n\n return segContext;\n}\n\nexport function genStepTypeSegments(path: ILinearSegment, points: IPointLike[]): void {\n return genCurveSegments(path, points, 1);\n}\n"]}
@@ -1,31 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
4
- return new (P || (P = Promise))((function(resolve, reject) {
5
- function fulfilled(value) {
6
- try {
7
- step(generator.next(value));
8
- } catch (e) {
9
- reject(e);
10
- }
11
- }
12
- function rejected(value) {
13
- try {
14
- step(generator.throw(value));
15
- } catch (e) {
16
- reject(e);
17
- }
18
- }
19
- function step(result) {
20
- var value;
21
- result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
22
- resolve(value);
23
- }))).then(fulfilled, rejected);
24
- }
25
- step((generator = generator.apply(thisArg, _arguments || [])).next());
26
- }));
27
- };
28
-
29
3
  function foreach(graphic, defaultZIndex, cb, reverse = !1, sort3d = !1) {
30
4
  const childMap = {}, zIdxArray = [];
31
5
  let needSort = !1;
@@ -46,10 +20,7 @@ function foreach(graphic, defaultZIndex, cb, reverse = !1, sort3d = !1) {
46
20
  let skip = !1;
47
21
  for (let i = 0; i < zIdxArray.length && !skip; i++) {
48
22
  const idx = zIdxArray[i], children = childMap[idx];
49
- sort3d && children.sort(((a, b) => {
50
- var _a, _b;
51
- return (reverse ? -1 : 1) * ((null !== (_a = b.attribute.z) && void 0 !== _a ? _a : 0) - (null !== (_b = a.attribute.z) && void 0 !== _b ? _b : 0));
52
- }));
23
+ sort3d && children.sort(((a, b) => (reverse ? -1 : 1) * ((b.attribute.z ?? 0) - (a.attribute.z ?? 0))));
53
24
  for (let i = 0; i < children.length; i++) if (cb(children[i], i)) {
54
25
  skip = !0;
55
26
  break;
@@ -58,10 +29,8 @@ function foreach(graphic, defaultZIndex, cb, reverse = !1, sort3d = !1) {
58
29
  } else graphic.forEachChildren(cb, reverse);
59
30
  }
60
31
 
61
- function foreachAsync(graphic, defaultZIndex, cb, reverse = !1) {
62
- return __awaiter(this, void 0, void 0, (function*() {
63
- yield graphic.forEachChildrenAsync(cb, reverse);
64
- }));
32
+ async function foreachAsync(graphic, defaultZIndex, cb, reverse = !1) {
33
+ await graphic.forEachChildrenAsync(cb, reverse);
65
34
  }
66
35
 
67
36
  function findNextGraphic(graphic, id, defaultZIndex, reverse = !1) {
@@ -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\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"]}
@@ -91,14 +91,10 @@ const samplingPoints = (points, count) => {
91
91
  }
92
92
  return res;
93
93
  }, splitArea = (area, count) => {
94
- var _a, _b;
95
94
  const attribute = area.attribute;
96
95
  let points = attribute.points;
97
96
  const segements = attribute.segments;
98
- points || (points = segements.reduce(((res, seg) => {
99
- var _a;
100
- return res.concat(null !== (_a = seg.points) && void 0 !== _a ? _a : []);
101
- }), []));
97
+ points || (points = segements.reduce(((res, seg) => res.concat(seg.points ?? [])), []));
102
98
  const validatePoints = points.filter((point => !1 !== point.defined && (0, vutils_1.isNumber)(point.x) && (0,
103
99
  vutils_1.isNumber)(point.y)));
104
100
  if (!validatePoints.length) return [];
@@ -112,8 +108,8 @@ const samplingPoints = (points, count) => {
112
108
  for (let i = validatePoints.length - 1; i >= 0; i--) {
113
109
  const point = validatePoints[i];
114
110
  allPoints.push({
115
- x: null !== (_a = point.x1) && void 0 !== _a ? _a : point.x,
116
- y: null !== (_b = point.y1) && void 0 !== _b ? _b : point.y
111
+ x: point.x1 ?? point.x,
112
+ y: point.y1 ?? point.y
117
113
  });
118
114
  }
119
115
  const res = [];
@@ -126,10 +122,7 @@ const splitLine = (line, count) => {
126
122
  const attribute = line.attribute, points = attribute.points;
127
123
  if (points) return samplingPoints(points, count);
128
124
  if (attribute.segments) {
129
- const allPoints = attribute.segments.reduce(((res, seg) => {
130
- var _a;
131
- return res.concat(null !== (_a = seg.points) && void 0 !== _a ? _a : []);
132
- }), []);
125
+ const allPoints = attribute.segments.reduce(((res, seg) => res.concat(seg.points ?? [])), []);
133
126
  return samplingPoints(allPoints, count);
134
127
  }
135
128
  return [];