@visactor/vrender 0.9.0-fillstroke.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (810) hide show
  1. package/cjs/allocator/allocator-modules.js.map +1 -1
  2. package/cjs/allocator/canvas-allocate.js.map +1 -1
  3. package/cjs/allocator/graphic-allocate.js.map +1 -1
  4. package/cjs/allocator/interface.js.map +1 -1
  5. package/cjs/allocator/matrix-allocate.js.map +1 -1
  6. package/cjs/allocator/point-allocate.js.map +1 -1
  7. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  8. package/cjs/animate/Ticker/index.js.map +1 -1
  9. package/cjs/animate/Ticker/interface.js.map +1 -1
  10. package/cjs/animate/animate.js.map +1 -1
  11. package/cjs/animate/config.js.map +1 -1
  12. package/cjs/animate/custom-animate.d.ts +2 -2
  13. package/cjs/animate/custom-animate.js +12 -13
  14. package/cjs/animate/custom-animate.js.map +1 -1
  15. package/cjs/animate/easing.js.map +1 -1
  16. package/cjs/animate/index.js.map +1 -1
  17. package/cjs/animate/morphing.js +5 -4
  18. package/cjs/animate/morphing.js.map +1 -1
  19. package/cjs/animate/timeline.js +2 -1
  20. package/cjs/animate/timeline.js.map +1 -1
  21. package/cjs/canvas/contributions/browser/canvas.js.map +1 -1
  22. package/cjs/canvas/contributions/browser/conical-gradient.js.map +1 -1
  23. package/cjs/canvas/contributions/browser/context.d.ts +4 -2
  24. package/cjs/canvas/contributions/browser/context.js +4 -4
  25. package/cjs/canvas/contributions/browser/context.js.map +1 -1
  26. package/cjs/canvas/contributions/browser/index.js.map +1 -1
  27. package/cjs/canvas/contributions/browser/modules.js.map +1 -1
  28. package/cjs/canvas/contributions/feishu/canvas.js.map +1 -1
  29. package/cjs/canvas/contributions/feishu/context.js.map +1 -1
  30. package/cjs/canvas/contributions/feishu/index.js.map +1 -1
  31. package/cjs/canvas/contributions/feishu/modules.js.map +1 -1
  32. package/cjs/canvas/contributions/lynx/canvas.js.map +1 -1
  33. package/cjs/canvas/contributions/lynx/context.js.map +1 -1
  34. package/cjs/canvas/contributions/lynx/index.js.map +1 -1
  35. package/cjs/canvas/contributions/lynx/modules.js.map +1 -1
  36. package/cjs/canvas/contributions/modules.js.map +1 -1
  37. package/cjs/canvas/contributions/taro/canvas.js.map +1 -1
  38. package/cjs/canvas/contributions/taro/context.js +4 -4
  39. package/cjs/canvas/contributions/taro/context.js.map +1 -1
  40. package/cjs/canvas/contributions/taro/index.js.map +1 -1
  41. package/cjs/canvas/contributions/taro/modules.js.map +1 -1
  42. package/cjs/canvas/contributions/tt/canvas.js.map +1 -1
  43. package/cjs/canvas/contributions/tt/context.js.map +1 -1
  44. package/cjs/canvas/contributions/tt/index.js.map +1 -1
  45. package/cjs/canvas/contributions/tt/modules.js.map +1 -1
  46. package/cjs/canvas/empty-context.js.map +1 -1
  47. package/cjs/canvas/index.js.map +1 -1
  48. package/cjs/canvas/interface.js.map +1 -1
  49. package/cjs/canvas/util.js.map +1 -1
  50. package/cjs/color-string/colorName.js.map +1 -1
  51. package/cjs/color-string/index.js.map +1 -1
  52. package/cjs/color-string/interpolate.js.map +1 -1
  53. package/cjs/common/bezier.js.map +1 -1
  54. package/cjs/common/bounds-context.js.map +1 -1
  55. package/cjs/common/canvas-utils.d.ts +1 -1
  56. package/cjs/common/canvas-utils.js +7 -11
  57. package/cjs/common/canvas-utils.js.map +1 -1
  58. package/cjs/common/contribution-provider.js.map +1 -1
  59. package/cjs/common/curve/basis.js.map +1 -1
  60. package/cjs/common/curve/common.js.map +1 -1
  61. package/cjs/common/curve/index.js.map +1 -1
  62. package/cjs/common/curve/interface.js.map +1 -1
  63. package/cjs/common/curve/linear-closed.js.map +1 -1
  64. package/cjs/common/curve/linear.js.map +1 -1
  65. package/cjs/common/curve/monotone.js.map +1 -1
  66. package/cjs/common/curve/step.js.map +1 -1
  67. package/cjs/common/enums.js.map +1 -1
  68. package/cjs/common/generator.js.map +1 -1
  69. package/cjs/common/index.js.map +1 -1
  70. package/cjs/common/matrix.js.map +1 -1
  71. package/cjs/common/morphing-utils.js.map +1 -1
  72. package/cjs/common/path-svg.js.map +1 -1
  73. package/cjs/common/path.js.map +1 -1
  74. package/cjs/common/polygon.js.map +1 -1
  75. package/cjs/common/render-area.js.map +1 -1
  76. package/cjs/common/render-command-list.js.map +1 -1
  77. package/cjs/common/render-curve.js.map +1 -1
  78. package/cjs/common/seg-context.js.map +1 -1
  79. package/cjs/common/shape/arc.js.map +1 -1
  80. package/cjs/common/shape/rect.d.ts +1 -1
  81. package/cjs/common/shape/rect.js.map +1 -1
  82. package/cjs/common/sort.js.map +1 -1
  83. package/cjs/common/split-path.js.map +1 -1
  84. package/cjs/common/store.js.map +1 -1
  85. package/cjs/common/text.js.map +1 -1
  86. package/cjs/common/utils.d.ts +1 -2
  87. package/cjs/common/utils.js +6 -15
  88. package/cjs/common/utils.js.map +1 -1
  89. package/cjs/core/application.js.map +1 -1
  90. package/cjs/core/camera.js.map +1 -1
  91. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  92. package/cjs/core/contributions/env/browser-contribution.js.map +1 -1
  93. package/cjs/core/contributions/env/feishu-contribution.js.map +1 -1
  94. package/cjs/core/contributions/env/lynx-contribution.js.map +1 -1
  95. package/cjs/core/contributions/env/modules.js.map +1 -1
  96. package/cjs/core/contributions/env/taro-contribution.js.map +1 -1
  97. package/cjs/core/contributions/index.js.map +1 -1
  98. package/cjs/core/contributions/interface.js.map +1 -1
  99. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  100. package/cjs/core/contributions/layerHandler/modules.js.map +1 -1
  101. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  102. package/cjs/core/contributions/modules.js.map +1 -1
  103. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  104. package/cjs/core/contributions/textMeasure/ITextMeasure.js.map +1 -1
  105. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  106. package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
  107. package/cjs/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  108. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  109. package/cjs/core/contributions/window/browser-contribution.js.map +1 -1
  110. package/cjs/core/contributions/window/feishu-contribution.js.map +1 -1
  111. package/cjs/core/contributions/window/lynx-contribution.js.map +1 -1
  112. package/cjs/core/contributions/window/modules.js.map +1 -1
  113. package/cjs/core/contributions/window/native-contribution.js.map +1 -1
  114. package/cjs/core/contributions/window/node-contribution.js.map +1 -1
  115. package/cjs/core/contributions/window/taro-contribution.js.map +1 -1
  116. package/cjs/core/core-modules.js.map +1 -1
  117. package/cjs/core/global.d.ts +2 -2
  118. package/cjs/core/global.js +2 -1
  119. package/cjs/core/global.js.map +1 -1
  120. package/cjs/core/graphic-utils.js +1 -1
  121. package/cjs/core/graphic-utils.js.map +1 -1
  122. package/cjs/core/index.js +1 -1
  123. package/cjs/core/index.js.map +1 -1
  124. package/cjs/core/layer-service.js +1 -1
  125. package/cjs/core/layer-service.js.map +1 -1
  126. package/cjs/core/layer.js +1 -1
  127. package/cjs/core/layer.js.map +1 -1
  128. package/cjs/core/light.js +1 -1
  129. package/cjs/core/light.js.map +1 -1
  130. package/cjs/core/stage.js +1 -1
  131. package/cjs/core/stage.js.map +1 -1
  132. package/cjs/core/window.js +1 -1
  133. package/cjs/core/window.js.map +1 -1
  134. package/cjs/create.js.map +1 -1
  135. package/cjs/event/constant.js +1 -1
  136. package/cjs/event/constant.js.map +1 -1
  137. package/cjs/event/event-manager.js +1 -1
  138. package/cjs/event/event-manager.js.map +1 -1
  139. package/cjs/event/event-system.js +1 -1
  140. package/cjs/event/event-system.js.map +1 -1
  141. package/cjs/event/event-target.js +1 -2
  142. package/cjs/event/event-target.js.map +1 -1
  143. package/cjs/event/extension/drag.js.map +1 -1
  144. package/cjs/event/extension/gesture.js.map +1 -1
  145. package/cjs/event/extension/index.js.map +1 -1
  146. package/cjs/event/federated-event/base-event.js.map +1 -1
  147. package/cjs/event/federated-event/custom-event.js.map +1 -1
  148. package/cjs/event/federated-event/index.js.map +1 -1
  149. package/cjs/event/federated-event/mouse-event.js.map +1 -1
  150. package/cjs/event/federated-event/pointer-event.js.map +1 -1
  151. package/cjs/event/federated-event/wheel-event.js.map +1 -1
  152. package/cjs/event/index.js +1 -1
  153. package/cjs/event/index.js.map +1 -1
  154. package/cjs/event/interface.js +1 -1
  155. package/cjs/event/interface.js.map +1 -1
  156. package/cjs/event/type.js +1 -1
  157. package/cjs/event/type.js.map +1 -1
  158. package/cjs/event/util.js +1 -1
  159. package/cjs/event/util.js.map +1 -1
  160. package/cjs/export.js.map +1 -1
  161. package/cjs/graphic/arc.js.map +1 -1
  162. package/cjs/graphic/arc3d.js.map +1 -1
  163. package/cjs/graphic/area.js.map +1 -1
  164. package/cjs/graphic/bounds.js.map +1 -1
  165. package/cjs/graphic/builtin-symbol/arrow.js.map +1 -1
  166. package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  167. package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  168. package/cjs/graphic/builtin-symbol/circle.js.map +1 -1
  169. package/cjs/graphic/builtin-symbol/cross.js.map +1 -1
  170. package/cjs/graphic/builtin-symbol/diamond.js.map +1 -1
  171. package/cjs/graphic/builtin-symbol/index.js.map +1 -1
  172. package/cjs/graphic/builtin-symbol/interface.js.map +1 -1
  173. package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
  174. package/cjs/graphic/builtin-symbol/square.js.map +1 -1
  175. package/cjs/graphic/builtin-symbol/star.js.map +1 -1
  176. package/cjs/graphic/builtin-symbol/stroke.js.map +1 -1
  177. package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  178. package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
  179. package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
  180. package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
  181. package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
  182. package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
  183. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  184. package/cjs/graphic/builtin-symbol/wedge.js.map +1 -1
  185. package/cjs/graphic/builtin-symbol/wye.js.map +1 -1
  186. package/cjs/graphic/circle.js.map +1 -1
  187. package/cjs/graphic/config.js +4 -2
  188. package/cjs/graphic/config.js.map +1 -1
  189. package/cjs/graphic/glyph.js.map +1 -1
  190. package/cjs/graphic/graphic-creator.js.map +1 -1
  191. package/cjs/graphic/graphic-service/arc-contribution.js.map +1 -1
  192. package/cjs/graphic/graphic-service/area-contribution.js.map +1 -1
  193. package/cjs/graphic/graphic-service/circle-contribution.js.map +1 -1
  194. package/cjs/graphic/graphic-service/common-contribution.js.map +1 -1
  195. package/cjs/graphic/graphic-service/default-theme.js.map +1 -1
  196. package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
  197. package/cjs/graphic/graphic-service/graphic-service.js +30 -25
  198. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  199. package/cjs/graphic/graphic-service/path-contribution.js.map +1 -1
  200. package/cjs/graphic/graphic-service/rect-contribution.js.map +1 -1
  201. package/cjs/graphic/graphic-service/symbol-contribution.js.map +1 -1
  202. package/cjs/graphic/graphic-service/theme-service.js.map +1 -1
  203. package/cjs/graphic/graphic.js +1 -1
  204. package/cjs/graphic/graphic.js.map +1 -1
  205. package/cjs/graphic/group.js.map +1 -1
  206. package/cjs/graphic/image.js.map +1 -1
  207. package/cjs/graphic/index.js.map +1 -1
  208. package/cjs/graphic/line.js.map +1 -1
  209. package/cjs/graphic/node-tree.js.map +1 -1
  210. package/cjs/graphic/path.js.map +1 -1
  211. package/cjs/graphic/polygon.js.map +1 -1
  212. package/cjs/graphic/pyramid3d.js.map +1 -1
  213. package/cjs/graphic/rect.js.map +1 -1
  214. package/cjs/graphic/rect3d.js.map +1 -1
  215. package/cjs/graphic/richtext/frame.js.map +1 -1
  216. package/cjs/graphic/richtext/icon.js.map +1 -1
  217. package/cjs/graphic/richtext/line.js.map +1 -1
  218. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  219. package/cjs/graphic/richtext/utils.js +8 -6
  220. package/cjs/graphic/richtext/utils.js.map +1 -1
  221. package/cjs/graphic/richtext/wrapper.js.map +1 -1
  222. package/cjs/graphic/richtext.js.map +1 -1
  223. package/cjs/graphic/shadow-root.js.map +1 -1
  224. package/cjs/graphic/symbol.js.map +1 -1
  225. package/cjs/graphic/text.js.map +1 -1
  226. package/cjs/graphic/theme.js.map +1 -1
  227. package/cjs/graphic/tools.js.map +1 -1
  228. package/cjs/graphic/wrap-text.js.map +1 -1
  229. package/cjs/index.js.map +1 -1
  230. package/cjs/interface/animate.js.map +1 -1
  231. package/cjs/interface/camera.js.map +1 -1
  232. package/cjs/interface/canvas.js.map +1 -1
  233. package/cjs/interface/color.js.map +1 -1
  234. package/cjs/interface/common.js.map +1 -1
  235. package/cjs/interface/context.d.ts +3 -3
  236. package/cjs/interface/context.js.map +1 -1
  237. package/cjs/interface/contribution.js.map +1 -1
  238. package/cjs/interface/creator.js.map +1 -1
  239. package/cjs/interface/global.js.map +1 -1
  240. package/cjs/interface/graphic/arc.js.map +1 -1
  241. package/cjs/interface/graphic/arc3d.js.map +1 -1
  242. package/cjs/interface/graphic/area.d.ts +1 -1
  243. package/cjs/interface/graphic/area.js.map +1 -1
  244. package/cjs/interface/graphic/bounds.js.map +1 -1
  245. package/cjs/interface/graphic/circle.js.map +1 -1
  246. package/cjs/interface/graphic/creator.js.map +1 -1
  247. package/cjs/interface/graphic/dynamic-path.js.map +1 -1
  248. package/cjs/interface/graphic/ellipse.js.map +1 -1
  249. package/cjs/interface/graphic/face3d.js.map +1 -1
  250. package/cjs/interface/graphic/glyph.js.map +1 -1
  251. package/cjs/interface/graphic/group.js.map +1 -1
  252. package/cjs/interface/graphic/image.js.map +1 -1
  253. package/cjs/interface/graphic/index.js.map +1 -1
  254. package/cjs/interface/graphic/isogon.js.map +1 -1
  255. package/cjs/interface/graphic/line.d.ts +1 -1
  256. package/cjs/interface/graphic/line.js.map +1 -1
  257. package/cjs/interface/graphic/path.js.map +1 -1
  258. package/cjs/interface/graphic/polygon.js.map +1 -1
  259. package/cjs/interface/graphic/polyline.js.map +1 -1
  260. package/cjs/interface/graphic/pyramid3d.js.map +1 -1
  261. package/cjs/interface/graphic/rect.js.map +1 -1
  262. package/cjs/interface/graphic/rect3d.js.map +1 -1
  263. package/cjs/interface/graphic/richText.d.ts +4 -2
  264. package/cjs/interface/graphic/richText.js.map +1 -1
  265. package/cjs/interface/graphic/shadow-root.js.map +1 -1
  266. package/cjs/interface/graphic/svg.js.map +1 -1
  267. package/cjs/interface/graphic/symbol.js.map +1 -1
  268. package/cjs/interface/graphic/text.js.map +1 -1
  269. package/cjs/interface/graphic/theme.js.map +1 -1
  270. package/cjs/interface/graphic/util.js.map +1 -1
  271. package/cjs/interface/graphic-utils.js.map +1 -1
  272. package/cjs/interface/graphic.d.ts +4 -4
  273. package/cjs/interface/graphic.js.map +1 -1
  274. package/cjs/interface/index.js.map +1 -1
  275. package/cjs/interface/layer.js.map +1 -1
  276. package/cjs/interface/light.js.map +1 -1
  277. package/cjs/interface/matrix.js.map +1 -1
  278. package/cjs/interface/node-tree.js.map +1 -1
  279. package/cjs/interface/path.js.map +1 -1
  280. package/cjs/interface/stage.js.map +1 -1
  281. package/cjs/interface/util.js.map +1 -1
  282. package/cjs/kits/env.js.map +1 -1
  283. package/cjs/kits/index.js.map +1 -1
  284. package/cjs/modules.js.map +1 -1
  285. package/cjs/picker/canvas-picker-service.js.map +1 -1
  286. package/cjs/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
  287. package/cjs/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
  288. package/cjs/picker/contributions/canvas-picker/area-picker.js.map +1 -1
  289. package/cjs/picker/contributions/canvas-picker/base-picker.js.map +1 -1
  290. package/cjs/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
  291. package/cjs/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
  292. package/cjs/picker/contributions/canvas-picker/image-picker.js.map +1 -1
  293. package/cjs/picker/contributions/canvas-picker/line-picker.js.map +1 -1
  294. package/cjs/picker/contributions/canvas-picker/module.js.map +1 -1
  295. package/cjs/picker/contributions/canvas-picker/path-picker.js.map +1 -1
  296. package/cjs/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
  297. package/cjs/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
  298. package/cjs/picker/contributions/canvas-picker/rect-picker.js +1 -1
  299. package/cjs/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
  300. package/cjs/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
  301. package/cjs/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
  302. package/cjs/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
  303. package/cjs/picker/contributions/canvas-picker/text-picker.js.map +1 -1
  304. package/cjs/picker/contributions/constants.js.map +1 -1
  305. package/cjs/picker/contributions/math-picker/arc-picker.js.map +1 -1
  306. package/cjs/picker/contributions/math-picker/area-picker.js.map +1 -1
  307. package/cjs/picker/contributions/math-picker/circle-picker.js.map +1 -1
  308. package/cjs/picker/contributions/math-picker/glyph-picker.js.map +1 -1
  309. package/cjs/picker/contributions/math-picker/line-picker.js.map +1 -1
  310. package/cjs/picker/contributions/math-picker/module.js.map +1 -1
  311. package/cjs/picker/contributions/math-picker/path-picker.js.map +1 -1
  312. package/cjs/picker/contributions/math-picker/polygon-picker.js.map +1 -1
  313. package/cjs/picker/contributions/math-picker/rect-picker.js +1 -1
  314. package/cjs/picker/contributions/math-picker/rect-picker.js.map +1 -1
  315. package/cjs/picker/contributions/math-picker/symbol-picker.js.map +1 -1
  316. package/cjs/picker/contributions/math-picker/text-picker.js.map +1 -1
  317. package/cjs/picker/contributions/modules.js.map +1 -1
  318. package/cjs/picker/contributions/old/circle-picker.js.map +1 -1
  319. package/cjs/picker/contributions/old/rect-picker.js.map +1 -1
  320. package/cjs/picker/global-picker-service.js.map +1 -1
  321. package/cjs/picker/index.js.map +1 -1
  322. package/cjs/picker/math-picker-service.js.map +1 -1
  323. package/cjs/picker/pick-interceptor.js.map +1 -1
  324. package/cjs/picker/pick-modules.js.map +1 -1
  325. package/cjs/picker/picker-service.js.map +1 -1
  326. package/cjs/picker/type.js.map +1 -1
  327. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  328. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  329. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  330. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  331. package/cjs/plugins/interface.js.map +1 -1
  332. package/cjs/plugins/plugin-modules.js.map +1 -1
  333. package/cjs/plugins/plugin-service.js.map +1 -1
  334. package/cjs/render/contributions/interface.js.map +1 -1
  335. package/cjs/render/contributions/modules.js.map +1 -1
  336. package/cjs/render/contributions/render/arc-render.d.ts +1 -1
  337. package/cjs/render/contributions/render/arc-render.js +3 -3
  338. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  339. package/cjs/render/contributions/render/arc3d-render.js +6 -6
  340. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  341. package/cjs/render/contributions/render/area-render.js +4 -4
  342. package/cjs/render/contributions/render/area-render.js.map +1 -1
  343. package/cjs/render/contributions/render/base-render.js.map +1 -1
  344. package/cjs/render/contributions/render/circle-render.js +1 -1
  345. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  346. package/cjs/render/contributions/render/clear-screen.js.map +1 -1
  347. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  348. package/cjs/render/contributions/render/contributions/area-contribution-render.js +2 -6
  349. package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  350. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  351. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  352. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  353. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  354. package/cjs/render/contributions/render/contributions/index.js.map +1 -1
  355. package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  356. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  357. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +2 -2
  358. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  359. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  360. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  361. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  362. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  363. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  364. package/cjs/render/contributions/render/group-render.js +1 -1
  365. package/cjs/render/contributions/render/group-render.js.map +1 -1
  366. package/cjs/render/contributions/render/image-render.js.map +1 -1
  367. package/cjs/render/contributions/render/incremental-area-render.js +1 -1
  368. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  369. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  370. package/cjs/render/contributions/render/incremental-line-render.js +1 -1
  371. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  372. package/cjs/render/contributions/render/index.js.map +1 -1
  373. package/cjs/render/contributions/render/line-render.js +4 -4
  374. package/cjs/render/contributions/render/line-render.js.map +1 -1
  375. package/cjs/render/contributions/render/module.js.map +1 -1
  376. package/cjs/render/contributions/render/path-render.js +1 -1
  377. package/cjs/render/contributions/render/path-render.js.map +1 -1
  378. package/cjs/render/contributions/render/polygon-render.js +1 -1
  379. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  380. package/cjs/render/contributions/render/pyramid3d-render.js +3 -3
  381. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  382. package/cjs/render/contributions/render/rect-render.js +1 -1
  383. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  384. package/cjs/render/contributions/render/rect3d-render.js +3 -3
  385. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  386. package/cjs/render/contributions/render/render-slector.js.map +1 -1
  387. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  388. package/cjs/render/contributions/render/symbol-render.js +1 -1
  389. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  390. package/cjs/render/contributions/render/symbol.js.map +1 -1
  391. package/cjs/render/contributions/render/text-render.js +5 -5
  392. package/cjs/render/contributions/render/text-render.js.map +1 -1
  393. package/cjs/render/contributions/render/utils.d.ts +3 -3
  394. package/cjs/render/contributions/render/utils.js +3 -3
  395. package/cjs/render/contributions/render/utils.js.map +1 -1
  396. package/cjs/render/index.js.map +1 -1
  397. package/cjs/render/render-modules.js.map +1 -1
  398. package/cjs/render/render-service.js.map +1 -1
  399. package/cjs/resource-loader/loader.d.ts +1 -1
  400. package/cjs/resource-loader/loader.js.map +1 -1
  401. package/cjs/tapable/Hook.js.map +1 -1
  402. package/cjs/tapable/SyncHook.js.map +1 -1
  403. package/cjs/tapable/index.js.map +1 -1
  404. package/dist/vrender.js.js +1 -1
  405. package/dist/vrender.js.min.js +1 -1
  406. package/es/allocator/allocator-modules.js.map +1 -1
  407. package/es/allocator/canvas-allocate.js.map +1 -1
  408. package/es/allocator/graphic-allocate.js.map +1 -1
  409. package/es/allocator/interface.js.map +1 -1
  410. package/es/allocator/matrix-allocate.js.map +1 -1
  411. package/es/allocator/point-allocate.js.map +1 -1
  412. package/es/animate/Ticker/default-ticker.js.map +1 -1
  413. package/es/animate/Ticker/index.js.map +1 -1
  414. package/es/animate/Ticker/interface.js.map +1 -1
  415. package/es/animate/animate.js.map +1 -1
  416. package/es/animate/config.js.map +1 -1
  417. package/es/animate/custom-animate.d.ts +2 -2
  418. package/es/animate/custom-animate.js +12 -13
  419. package/es/animate/custom-animate.js.map +1 -1
  420. package/es/animate/easing.js.map +1 -1
  421. package/es/animate/index.js.map +1 -1
  422. package/es/animate/morphing.js +5 -4
  423. package/es/animate/morphing.js.map +1 -1
  424. package/es/animate/timeline.js +2 -1
  425. package/es/animate/timeline.js.map +1 -1
  426. package/es/canvas/contributions/browser/canvas.js.map +1 -1
  427. package/es/canvas/contributions/browser/conical-gradient.js.map +1 -1
  428. package/es/canvas/contributions/browser/context.d.ts +4 -2
  429. package/es/canvas/contributions/browser/context.js +6 -5
  430. package/es/canvas/contributions/browser/context.js.map +1 -1
  431. package/es/canvas/contributions/browser/index.js.map +1 -1
  432. package/es/canvas/contributions/browser/modules.js.map +1 -1
  433. package/es/canvas/contributions/feishu/canvas.js.map +1 -1
  434. package/es/canvas/contributions/feishu/context.js.map +1 -1
  435. package/es/canvas/contributions/feishu/index.js.map +1 -1
  436. package/es/canvas/contributions/feishu/modules.js.map +1 -1
  437. package/es/canvas/contributions/lynx/canvas.js.map +1 -1
  438. package/es/canvas/contributions/lynx/context.js.map +1 -1
  439. package/es/canvas/contributions/lynx/index.js.map +1 -1
  440. package/es/canvas/contributions/lynx/modules.js.map +1 -1
  441. package/es/canvas/contributions/modules.js.map +1 -1
  442. package/es/canvas/contributions/taro/canvas.js.map +1 -1
  443. package/es/canvas/contributions/taro/context.js +6 -5
  444. package/es/canvas/contributions/taro/context.js.map +1 -1
  445. package/es/canvas/contributions/taro/index.js.map +1 -1
  446. package/es/canvas/contributions/taro/modules.js.map +1 -1
  447. package/es/canvas/contributions/tt/canvas.js.map +1 -1
  448. package/es/canvas/contributions/tt/context.js.map +1 -1
  449. package/es/canvas/contributions/tt/index.js.map +1 -1
  450. package/es/canvas/contributions/tt/modules.js.map +1 -1
  451. package/es/canvas/empty-context.js.map +1 -1
  452. package/es/canvas/index.js.map +1 -1
  453. package/es/canvas/interface.js.map +1 -1
  454. package/es/canvas/util.js.map +1 -1
  455. package/es/color-string/colorName.js.map +1 -1
  456. package/es/color-string/index.js.map +1 -1
  457. package/es/color-string/interpolate.js.map +1 -1
  458. package/es/common/bezier.js.map +1 -1
  459. package/es/common/bounds-context.js.map +1 -1
  460. package/es/common/canvas-utils.d.ts +1 -1
  461. package/es/common/canvas-utils.js +3 -6
  462. package/es/common/canvas-utils.js.map +1 -1
  463. package/es/common/contribution-provider.js.map +1 -1
  464. package/es/common/curve/basis.js.map +1 -1
  465. package/es/common/curve/common.js.map +1 -1
  466. package/es/common/curve/index.js.map +1 -1
  467. package/es/common/curve/interface.js.map +1 -1
  468. package/es/common/curve/linear-closed.js.map +1 -1
  469. package/es/common/curve/linear.js.map +1 -1
  470. package/es/common/curve/monotone.js.map +1 -1
  471. package/es/common/curve/step.js.map +1 -1
  472. package/es/common/enums.js.map +1 -1
  473. package/es/common/generator.js.map +1 -1
  474. package/es/common/index.js.map +1 -1
  475. package/es/common/matrix.js.map +1 -1
  476. package/es/common/morphing-utils.js.map +1 -1
  477. package/es/common/path-svg.js.map +1 -1
  478. package/es/common/path.js.map +1 -1
  479. package/es/common/polygon.js.map +1 -1
  480. package/es/common/render-area.js.map +1 -1
  481. package/es/common/render-command-list.js.map +1 -1
  482. package/es/common/render-curve.js.map +1 -1
  483. package/es/common/seg-context.js.map +1 -1
  484. package/es/common/shape/arc.js.map +1 -1
  485. package/es/common/shape/rect.d.ts +1 -1
  486. package/es/common/shape/rect.js.map +1 -1
  487. package/es/common/sort.js.map +1 -1
  488. package/es/common/split-path.js.map +1 -1
  489. package/es/common/store.js.map +1 -1
  490. package/es/common/text.js.map +1 -1
  491. package/es/common/utils.d.ts +1 -2
  492. package/es/common/utils.js +5 -14
  493. package/es/common/utils.js.map +1 -1
  494. package/es/core/application.js.map +1 -1
  495. package/es/core/camera.js.map +1 -1
  496. package/es/core/contributions/env/base-contribution.js.map +1 -1
  497. package/es/core/contributions/env/browser-contribution.js.map +1 -1
  498. package/es/core/contributions/env/feishu-contribution.js.map +1 -1
  499. package/es/core/contributions/env/lynx-contribution.js.map +1 -1
  500. package/es/core/contributions/env/modules.js.map +1 -1
  501. package/es/core/contributions/env/taro-contribution.js.map +1 -1
  502. package/es/core/contributions/index.js.map +1 -1
  503. package/es/core/contributions/interface.js.map +1 -1
  504. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  505. package/es/core/contributions/layerHandler/modules.js.map +1 -1
  506. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  507. package/es/core/contributions/modules.js.map +1 -1
  508. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  509. package/es/core/contributions/textMeasure/ITextMeasure.js.map +1 -1
  510. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  511. package/es/core/contributions/textMeasure/modules.js.map +1 -1
  512. package/es/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  513. package/es/core/contributions/window/base-contribution.js.map +1 -1
  514. package/es/core/contributions/window/browser-contribution.js.map +1 -1
  515. package/es/core/contributions/window/feishu-contribution.js.map +1 -1
  516. package/es/core/contributions/window/lynx-contribution.js.map +1 -1
  517. package/es/core/contributions/window/modules.js.map +1 -1
  518. package/es/core/contributions/window/native-contribution.js.map +1 -1
  519. package/es/core/contributions/window/node-contribution.js.map +1 -1
  520. package/es/core/contributions/window/taro-contribution.js.map +1 -1
  521. package/es/core/core-modules.js.map +1 -1
  522. package/es/core/global.d.ts +2 -2
  523. package/es/core/global.js +2 -1
  524. package/es/core/global.js.map +1 -1
  525. package/es/core/graphic-utils.js +1 -1
  526. package/es/core/graphic-utils.js.map +1 -1
  527. package/es/core/index.js +1 -1
  528. package/es/core/index.js.map +1 -1
  529. package/es/core/layer-service.js +1 -1
  530. package/es/core/layer-service.js.map +1 -1
  531. package/es/core/layer.js +1 -1
  532. package/es/core/layer.js.map +1 -1
  533. package/es/core/light.js +1 -1
  534. package/es/core/light.js.map +1 -1
  535. package/es/core/stage.js +1 -1
  536. package/es/core/stage.js.map +1 -1
  537. package/es/core/window.js +1 -1
  538. package/es/core/window.js.map +1 -1
  539. package/es/create.js.map +1 -1
  540. package/es/event/constant.js +1 -1
  541. package/es/event/constant.js.map +1 -1
  542. package/es/event/event-manager.js +1 -1
  543. package/es/event/event-manager.js.map +1 -1
  544. package/es/event/event-system.js +1 -1
  545. package/es/event/event-system.js.map +1 -1
  546. package/es/event/event-target.js +1 -2
  547. package/es/event/event-target.js.map +1 -1
  548. package/es/event/extension/drag.js.map +1 -1
  549. package/es/event/extension/gesture.js.map +1 -1
  550. package/es/event/extension/index.js.map +1 -1
  551. package/es/event/federated-event/base-event.js.map +1 -1
  552. package/es/event/federated-event/custom-event.js.map +1 -1
  553. package/es/event/federated-event/index.js.map +1 -1
  554. package/es/event/federated-event/mouse-event.js.map +1 -1
  555. package/es/event/federated-event/pointer-event.js.map +1 -1
  556. package/es/event/federated-event/wheel-event.js.map +1 -1
  557. package/es/event/index.js +1 -1
  558. package/es/event/index.js.map +1 -1
  559. package/es/event/interface.js +1 -1
  560. package/es/event/interface.js.map +1 -1
  561. package/es/event/type.js +1 -1
  562. package/es/event/type.js.map +1 -1
  563. package/es/event/util.js +1 -1
  564. package/es/event/util.js.map +1 -1
  565. package/es/export.js.map +1 -1
  566. package/es/graphic/arc.js.map +1 -1
  567. package/es/graphic/arc3d.js.map +1 -1
  568. package/es/graphic/area.js.map +1 -1
  569. package/es/graphic/bounds.js.map +1 -1
  570. package/es/graphic/builtin-symbol/arrow.js.map +1 -1
  571. package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  572. package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  573. package/es/graphic/builtin-symbol/circle.js.map +1 -1
  574. package/es/graphic/builtin-symbol/cross.js.map +1 -1
  575. package/es/graphic/builtin-symbol/diamond.js.map +1 -1
  576. package/es/graphic/builtin-symbol/index.js.map +1 -1
  577. package/es/graphic/builtin-symbol/interface.js.map +1 -1
  578. package/es/graphic/builtin-symbol/rect.js.map +1 -1
  579. package/es/graphic/builtin-symbol/square.js.map +1 -1
  580. package/es/graphic/builtin-symbol/star.js.map +1 -1
  581. package/es/graphic/builtin-symbol/stroke.js.map +1 -1
  582. package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  583. package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
  584. package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
  585. package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
  586. package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
  587. package/es/graphic/builtin-symbol/triangle.js.map +1 -1
  588. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  589. package/es/graphic/builtin-symbol/wedge.js.map +1 -1
  590. package/es/graphic/builtin-symbol/wye.js.map +1 -1
  591. package/es/graphic/circle.js.map +1 -1
  592. package/es/graphic/config.js +4 -2
  593. package/es/graphic/config.js.map +1 -1
  594. package/es/graphic/glyph.js.map +1 -1
  595. package/es/graphic/graphic-creator.js.map +1 -1
  596. package/es/graphic/graphic-service/arc-contribution.js.map +1 -1
  597. package/es/graphic/graphic-service/area-contribution.js.map +1 -1
  598. package/es/graphic/graphic-service/circle-contribution.js.map +1 -1
  599. package/es/graphic/graphic-service/common-contribution.js.map +1 -1
  600. package/es/graphic/graphic-service/default-theme.js.map +1 -1
  601. package/es/graphic/graphic-service/graphic-module.js.map +1 -1
  602. package/es/graphic/graphic-service/graphic-service.js +30 -26
  603. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  604. package/es/graphic/graphic-service/path-contribution.js.map +1 -1
  605. package/es/graphic/graphic-service/rect-contribution.js.map +1 -1
  606. package/es/graphic/graphic-service/symbol-contribution.js.map +1 -1
  607. package/es/graphic/graphic-service/theme-service.js.map +1 -1
  608. package/es/graphic/graphic.js +1 -1
  609. package/es/graphic/graphic.js.map +1 -1
  610. package/es/graphic/group.js.map +1 -1
  611. package/es/graphic/image.js.map +1 -1
  612. package/es/graphic/index.js.map +1 -1
  613. package/es/graphic/line.js.map +1 -1
  614. package/es/graphic/node-tree.js.map +1 -1
  615. package/es/graphic/path.js.map +1 -1
  616. package/es/graphic/polygon.js.map +1 -1
  617. package/es/graphic/pyramid3d.js.map +1 -1
  618. package/es/graphic/rect.js.map +1 -1
  619. package/es/graphic/rect3d.js.map +1 -1
  620. package/es/graphic/richtext/frame.js.map +1 -1
  621. package/es/graphic/richtext/icon.js.map +1 -1
  622. package/es/graphic/richtext/line.js.map +1 -1
  623. package/es/graphic/richtext/paragraph.js.map +1 -1
  624. package/es/graphic/richtext/utils.js +8 -6
  625. package/es/graphic/richtext/utils.js.map +1 -1
  626. package/es/graphic/richtext/wrapper.js.map +1 -1
  627. package/es/graphic/richtext.js.map +1 -1
  628. package/es/graphic/shadow-root.js.map +1 -1
  629. package/es/graphic/symbol.js.map +1 -1
  630. package/es/graphic/text.js.map +1 -1
  631. package/es/graphic/theme.js.map +1 -1
  632. package/es/graphic/tools.js.map +1 -1
  633. package/es/graphic/wrap-text.js.map +1 -1
  634. package/es/index.js.map +1 -1
  635. package/es/interface/animate.js.map +1 -1
  636. package/es/interface/camera.js.map +1 -1
  637. package/es/interface/canvas.js.map +1 -1
  638. package/es/interface/color.js.map +1 -1
  639. package/es/interface/common.js.map +1 -1
  640. package/es/interface/context.d.ts +3 -3
  641. package/es/interface/context.js.map +1 -1
  642. package/es/interface/contribution.js.map +1 -1
  643. package/es/interface/creator.js.map +1 -1
  644. package/es/interface/global.js.map +1 -1
  645. package/es/interface/graphic/arc.js.map +1 -1
  646. package/es/interface/graphic/arc3d.js.map +1 -1
  647. package/es/interface/graphic/area.d.ts +1 -1
  648. package/es/interface/graphic/area.js.map +1 -1
  649. package/es/interface/graphic/bounds.js.map +1 -1
  650. package/es/interface/graphic/circle.js.map +1 -1
  651. package/es/interface/graphic/creator.js.map +1 -1
  652. package/es/interface/graphic/dynamic-path.js.map +1 -1
  653. package/es/interface/graphic/ellipse.js.map +1 -1
  654. package/es/interface/graphic/face3d.js.map +1 -1
  655. package/es/interface/graphic/glyph.js.map +1 -1
  656. package/es/interface/graphic/group.js.map +1 -1
  657. package/es/interface/graphic/image.js.map +1 -1
  658. package/es/interface/graphic/index.js.map +1 -1
  659. package/es/interface/graphic/isogon.js.map +1 -1
  660. package/es/interface/graphic/line.d.ts +1 -1
  661. package/es/interface/graphic/line.js.map +1 -1
  662. package/es/interface/graphic/path.js.map +1 -1
  663. package/es/interface/graphic/polygon.js.map +1 -1
  664. package/es/interface/graphic/polyline.js.map +1 -1
  665. package/es/interface/graphic/pyramid3d.js.map +1 -1
  666. package/es/interface/graphic/rect.js.map +1 -1
  667. package/es/interface/graphic/rect3d.js.map +1 -1
  668. package/es/interface/graphic/richText.d.ts +4 -2
  669. package/es/interface/graphic/richText.js.map +1 -1
  670. package/es/interface/graphic/shadow-root.js.map +1 -1
  671. package/es/interface/graphic/svg.js.map +1 -1
  672. package/es/interface/graphic/symbol.js.map +1 -1
  673. package/es/interface/graphic/text.js.map +1 -1
  674. package/es/interface/graphic/theme.js.map +1 -1
  675. package/es/interface/graphic/util.js.map +1 -1
  676. package/es/interface/graphic-utils.js.map +1 -1
  677. package/es/interface/graphic.d.ts +4 -4
  678. package/es/interface/graphic.js.map +1 -1
  679. package/es/interface/index.js.map +1 -1
  680. package/es/interface/layer.js.map +1 -1
  681. package/es/interface/light.js.map +1 -1
  682. package/es/interface/matrix.js.map +1 -1
  683. package/es/interface/node-tree.js.map +1 -1
  684. package/es/interface/path.js.map +1 -1
  685. package/es/interface/stage.js.map +1 -1
  686. package/es/interface/util.js.map +1 -1
  687. package/es/kits/env.js.map +1 -1
  688. package/es/kits/index.js.map +1 -1
  689. package/es/modules.js.map +1 -1
  690. package/es/picker/canvas-picker-service.js.map +1 -1
  691. package/es/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
  692. package/es/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
  693. package/es/picker/contributions/canvas-picker/area-picker.js.map +1 -1
  694. package/es/picker/contributions/canvas-picker/base-picker.js.map +1 -1
  695. package/es/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
  696. package/es/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
  697. package/es/picker/contributions/canvas-picker/image-picker.js.map +1 -1
  698. package/es/picker/contributions/canvas-picker/line-picker.js.map +1 -1
  699. package/es/picker/contributions/canvas-picker/module.js.map +1 -1
  700. package/es/picker/contributions/canvas-picker/path-picker.js.map +1 -1
  701. package/es/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
  702. package/es/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
  703. package/es/picker/contributions/canvas-picker/rect-picker.js +1 -1
  704. package/es/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
  705. package/es/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
  706. package/es/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
  707. package/es/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
  708. package/es/picker/contributions/canvas-picker/text-picker.js.map +1 -1
  709. package/es/picker/contributions/constants.js.map +1 -1
  710. package/es/picker/contributions/math-picker/arc-picker.js.map +1 -1
  711. package/es/picker/contributions/math-picker/area-picker.js.map +1 -1
  712. package/es/picker/contributions/math-picker/circle-picker.js.map +1 -1
  713. package/es/picker/contributions/math-picker/glyph-picker.js.map +1 -1
  714. package/es/picker/contributions/math-picker/line-picker.js.map +1 -1
  715. package/es/picker/contributions/math-picker/module.js.map +1 -1
  716. package/es/picker/contributions/math-picker/path-picker.js.map +1 -1
  717. package/es/picker/contributions/math-picker/polygon-picker.js.map +1 -1
  718. package/es/picker/contributions/math-picker/rect-picker.js +1 -1
  719. package/es/picker/contributions/math-picker/rect-picker.js.map +1 -1
  720. package/es/picker/contributions/math-picker/symbol-picker.js.map +1 -1
  721. package/es/picker/contributions/math-picker/text-picker.js.map +1 -1
  722. package/es/picker/contributions/modules.js.map +1 -1
  723. package/es/picker/contributions/old/circle-picker.js.map +1 -1
  724. package/es/picker/contributions/old/rect-picker.js.map +1 -1
  725. package/es/picker/global-picker-service.js.map +1 -1
  726. package/es/picker/index.js.map +1 -1
  727. package/es/picker/math-picker-service.js.map +1 -1
  728. package/es/picker/pick-interceptor.js.map +1 -1
  729. package/es/picker/pick-modules.js.map +1 -1
  730. package/es/picker/picker-service.js.map +1 -1
  731. package/es/picker/type.js.map +1 -1
  732. package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  733. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  734. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  735. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  736. package/es/plugins/interface.js.map +1 -1
  737. package/es/plugins/plugin-modules.js.map +1 -1
  738. package/es/plugins/plugin-service.js.map +1 -1
  739. package/es/render/contributions/interface.js.map +1 -1
  740. package/es/render/contributions/modules.js.map +1 -1
  741. package/es/render/contributions/render/arc-render.d.ts +1 -1
  742. package/es/render/contributions/render/arc-render.js +3 -3
  743. package/es/render/contributions/render/arc-render.js.map +1 -1
  744. package/es/render/contributions/render/arc3d-render.js +6 -6
  745. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  746. package/es/render/contributions/render/area-render.js +4 -4
  747. package/es/render/contributions/render/area-render.js.map +1 -1
  748. package/es/render/contributions/render/base-render.js.map +1 -1
  749. package/es/render/contributions/render/circle-render.js +1 -1
  750. package/es/render/contributions/render/circle-render.js.map +1 -1
  751. package/es/render/contributions/render/clear-screen.js.map +1 -1
  752. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  753. package/es/render/contributions/render/contributions/area-contribution-render.js +1 -3
  754. package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  755. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  756. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  757. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  758. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  759. package/es/render/contributions/render/contributions/index.js.map +1 -1
  760. package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  761. package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  762. package/es/render/contributions/render/contributions/rect-contribution-render.js +2 -2
  763. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  764. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  765. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  766. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  767. package/es/render/contributions/render/glyph-render.js.map +1 -1
  768. package/es/render/contributions/render/graphic-render.js.map +1 -1
  769. package/es/render/contributions/render/group-render.js +1 -1
  770. package/es/render/contributions/render/group-render.js.map +1 -1
  771. package/es/render/contributions/render/image-render.js.map +1 -1
  772. package/es/render/contributions/render/incremental-area-render.js +1 -1
  773. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  774. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  775. package/es/render/contributions/render/incremental-line-render.js +1 -1
  776. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  777. package/es/render/contributions/render/index.js.map +1 -1
  778. package/es/render/contributions/render/line-render.js +4 -4
  779. package/es/render/contributions/render/line-render.js.map +1 -1
  780. package/es/render/contributions/render/module.js.map +1 -1
  781. package/es/render/contributions/render/path-render.js +1 -1
  782. package/es/render/contributions/render/path-render.js.map +1 -1
  783. package/es/render/contributions/render/polygon-render.js +1 -1
  784. package/es/render/contributions/render/polygon-render.js.map +1 -1
  785. package/es/render/contributions/render/pyramid3d-render.js +3 -3
  786. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  787. package/es/render/contributions/render/rect-render.js +1 -1
  788. package/es/render/contributions/render/rect-render.js.map +1 -1
  789. package/es/render/contributions/render/rect3d-render.js +3 -3
  790. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  791. package/es/render/contributions/render/render-slector.js.map +1 -1
  792. package/es/render/contributions/render/richtext-render.js.map +1 -1
  793. package/es/render/contributions/render/symbol-render.js +1 -1
  794. package/es/render/contributions/render/symbol-render.js.map +1 -1
  795. package/es/render/contributions/render/symbol.js.map +1 -1
  796. package/es/render/contributions/render/text-render.js +5 -5
  797. package/es/render/contributions/render/text-render.js.map +1 -1
  798. package/es/render/contributions/render/utils.d.ts +3 -3
  799. package/es/render/contributions/render/utils.js +3 -4
  800. package/es/render/contributions/render/utils.js.map +1 -1
  801. package/es/render/index.js.map +1 -1
  802. package/es/render/render-modules.js.map +1 -1
  803. package/es/render/render-service.js.map +1 -1
  804. package/es/resource-loader/loader.d.ts +1 -1
  805. package/es/resource-loader/loader.js.map +1 -1
  806. package/es/tapable/Hook.js.map +1 -1
  807. package/es/tapable/SyncHook.js.map +1 -1
  808. package/es/tapable/index.js.map +1 -1
  809. package/es/tsconfig.tsbuildinfo +1 -0
  810. package/package.json +21 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/color-string/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/* MIT license */\n/**\n * Copyright (c) 2011 Heather Arthur <fayearthur@gmail.com>\n\n Permission is hereby granted, free of charge, to any person obtaining\n a copy of this software and associated documentation files (the\n \"Software\"), to deal in the Software without restriction, including\n without limitation the rights to use, copy, modify, merge, publish,\n distribute, sublicense, and/or sell copies of the Software, and to\n permit persons to whom the Software is furnished to do so, subject to\n the following conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n// 基于color-string\n// https://github.com/Qix-/color-string\nimport { has } from '@visactor/vutils';\nimport colorNames from './colorName';\n\nconst reverseNames = {};\n\n// create a list of reverse color names\nfor (const name in colorNames) {\n if (has(colorNames, name)) {\n reverseNames[colorNames[name]] = name;\n }\n}\n\nconst cs: any = {\n to: {},\n get: {}\n};\n\ninterface ColorParseType {\n model: string;\n value: [number, number, number, number];\n}\n\ncs.get = function (str: string, arr: [number, number, number, number] = [0, 0, 0, 1]) {\n const prefix = str.substring(0, 3).toLowerCase();\n let val;\n let model;\n switch (prefix) {\n case 'hsl':\n val = cs.get.hsl(str, arr);\n model = 'hsl';\n break;\n case 'hwb':\n val = cs.get.hwb(str, arr);\n model = 'hwb';\n break;\n default:\n val = cs.get.rgb(str, arr);\n model = 'rgb';\n break;\n }\n\n if (!val) {\n return null;\n }\n\n return { model: model, value: val };\n};\n\ncs.get.rgb = function (str: string, arr: [number, number, number, number] = [0, 0, 0, 1]) {\n if (!str) {\n return null;\n }\n\n const abbr = /^#([a-f0-9]{3,4})$/i;\n const hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n const rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\n const per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\n const keyword = /(\\D+)/;\n\n const rgb = arr;\n let match;\n let i;\n let hexAlpha;\n\n if ((match = str.match(hex))) {\n hexAlpha = match[2];\n match = match[1];\n\n for (i = 0; i < 3; i++) {\n // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n const i2 = i * 2;\n rgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n }\n\n if (hexAlpha) {\n rgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n } else if ((match = str.match(abbr))) {\n match = match[1];\n hexAlpha = match[3];\n\n for (i = 0; i < 3; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n\n if (hexAlpha) {\n rgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n } else if ((match = str.match(rgba))) {\n for (i = 0; i < 3; i++) {\n rgb[i] = parseInt(match[i + 1], 10);\n }\n\n if (match[4]) {\n rgb[3] = parseFloat(match[4]);\n }\n } else if ((match = str.match(per))) {\n for (i = 0; i < 3; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n\n if (match[4]) {\n rgb[3] = parseFloat(match[4]);\n }\n } else if ((match = str.match(keyword))) {\n if (match[1] === 'transparent') {\n return [0, 0, 0, 0];\n }\n\n const _color = colorNames[match[1]];\n rgb[0] = _color[0];\n rgb[1] = _color[1];\n rgb[2] = _color[2];\n rgb[3] = _color[3];\n\n if (!rgb) {\n return null;\n }\n\n rgb[3] = 1;\n\n return rgb;\n } else {\n return null;\n }\n\n for (i = 0; i < 3; i++) {\n rgb[i] = clamp(rgb[i], 0, 255);\n }\n rgb[3] = clamp(rgb[3], 0, 1);\n\n return rgb;\n};\n\ncs.get.hsl = function (str: string, arr: [number, number, number, number] = [0, 0, 0, 1]) {\n if (!str) {\n return null;\n }\n\n const hsl =\n /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\n const match = str.match(hsl);\n\n if (match) {\n const alpha = parseFloat(match[4]);\n // var h = (parseFloat(match[1]) + 360) % 360;\n // var s = clamp(parseFloat(match[2]), 0, 100);\n // var l = clamp(parseFloat(match[3]), 0, 100);\n // var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n // return [h, s, l, a];\n arr[0] = (parseFloat(match[1]) + 360) % 360;\n arr[1] = clamp(parseFloat(match[2]), 0, 100);\n arr[2] = clamp(parseFloat(match[3]), 0, 100);\n arr[3] = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n return arr;\n }\n\n return null;\n};\n\ncs.get.hwb = function (str: string, arr: [number, number, number, number] = [0, 0, 0, 1]) {\n if (!str) {\n return null;\n }\n\n const hwb =\n /^hwb\\(\\s*([+-]?\\d*[.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\n const match = str.match(hwb);\n\n if (match) {\n const alpha = parseFloat(match[4]);\n // var h = ((parseFloat(match[1]) % 360) + 360) % 360;\n // var w = clamp(parseFloat(match[2]), 0, 100);\n // var b = clamp(parseFloat(match[3]), 0, 100);\n // var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n // return [h, w, b, a];\n arr[0] = ((parseFloat(match[1]) % 360) + 360) % 360;\n arr[1] = clamp(parseFloat(match[2]), 0, 100);\n arr[2] = clamp(parseFloat(match[3]), 0, 100);\n arr[3] = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n return arr;\n }\n\n return null;\n};\n\ncs.to.hex = function (...args: number[]) {\n const rgba = args;\n\n return (\n '#' +\n hexDouble(rgba[0]) +\n hexDouble(rgba[1]) +\n hexDouble(rgba[2]) +\n (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : '')\n );\n};\n\ncs.to.rgb = function (...args: number[]) {\n const rgba = args;\n\n return rgba.length < 4 || rgba[3] === 1\n ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function (...args: number[]) {\n const rgba = args;\n\n const r = Math.round((rgba[0] / 255) * 100);\n const g = Math.round((rgba[1] / 255) * 100);\n const b = Math.round((rgba[2] / 255) * 100);\n\n return rgba.length < 4 || rgba[3] === 1\n ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function (...args: any[]) {\n const hsla = args;\n return hsla.length < 4 || hsla[3] === 1\n ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function (...args: any[]) {\n const hwba = args;\n\n let a = '';\n if (hwba.length >= 4 && hwba[3] !== 1) {\n a = ', ' + hwba[3];\n }\n\n return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb: any) {\n return reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num: number) {\n const str = num.toString(16).toUpperCase();\n return str.length < 2 ? '0' + str : str;\n}\n\nexport default cs;\n\nexport const colorString = cs;\n\nexport function colorEqual(color1: string, color2: string): boolean {\n const { value: c1 = [0, 0, 0, 0] } = cs.get(color1) || {};\n const { value: c2 = [0, 0, 0, 0] } = cs.get(color2) || {};\n // console.log(c1, c2)\n return c1.every((item: number, index: number) => item === c2[index]);\n}\n\nexport enum ColorType {\n Color255 = 0,\n Color1 = 1\n}\n\nexport class ColorStore {\n private static store255: { [id: string]: [number, number, number, number] } = {};\n private static store1: { [id: string]: [number, number, number, number] } = {};\n static Get(\n str: string,\n size: number = ColorType.Color1,\n arr: [number, number, number, number] = [0, 0, 0, 1]\n ): [number, number, number, number] {\n if (size === ColorType.Color1) {\n let color: any = ColorStore.store1[str];\n if (color) {\n arr[0] = color[0];\n arr[1] = color[1];\n arr[2] = color[2];\n arr[3] = color[3];\n return arr;\n }\n color = cs.get(str);\n if (color && color.value) {\n const value = color.value;\n const data: [number, number, number, number] = [value[0] / 255, value[1] / 255, value[2] / 255, value[3]];\n ColorStore.store1[str] = data;\n // value[3] *= 255;\n ColorStore.store255[str] = value;\n arr[0] = data[0];\n arr[1] = data[1];\n arr[2] = data[2];\n arr[3] = data[3];\n }\n return arr;\n }\n let color: any = ColorStore.store255[str];\n if (color) {\n arr[0] = color[0];\n arr[1] = color[1];\n arr[2] = color[2];\n arr[3] = color[3];\n return arr;\n }\n\n color = cs.get(str);\n if (color && color.value) {\n const value = color.value;\n ColorStore.store1[str] = [value[0] / 255, value[1] / 255, value[2] / 255, value[3]];\n // value[3] *= 255;\n ColorStore.store255[str] = value;\n arr[0] = value[0];\n arr[1] = value[1];\n arr[2] = value[2];\n arr[3] = value[3];\n }\n return arr;\n }\n\n static Set(str: string, size: number, arr: [number, number, number, number]) {\n if (size === ColorType.Color1) {\n if (ColorStore.store1[str]) {\n return;\n }\n ColorStore.store1[str] = arr;\n ColorStore.store255[str] = [\n Math.floor(arr[0] * 255),\n Math.floor(arr[1] * 255),\n Math.floor(arr[2] * 255),\n Math.floor(arr[3] * 255)\n ];\n } else {\n if (ColorStore.store255[str]) {\n return;\n }\n ColorStore.store255[str] = arr;\n ColorStore.store1[str] = [arr[0] / 255, arr[1] / 255, arr[2] / 255, arr[3]];\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/color-string/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/* MIT license */\n/**\n * Copyright (c) 2011 Heather Arthur <fayearthur@gmail.com>\n\n Permission is hereby granted, free of charge, to any person obtaining\n a copy of this software and associated documentation files (the\n \"Software\"), to deal in the Software without restriction, including\n without limitation the rights to use, copy, modify, merge, publish,\n distribute, sublicense, and/or sell copies of the Software, and to\n permit persons to whom the Software is furnished to do so, subject to\n the following conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n// 基于color-string\n// https://github.com/Qix-/color-string\nimport { has } from '@visactor/vutils';\nimport colorNames from './colorName';\n\nconst reverseNames = {};\n\n// create a list of reverse color names\nfor (const name in colorNames) {\n if (has(colorNames, name)) {\n reverseNames[colorNames[name]] = name;\n }\n}\n\nconst cs: any = {\n to: {},\n get: {}\n};\n\ninterface ColorParseType {\n model: string;\n value: [number, number, number, number];\n}\n\ncs.get = function (str: string, arr: [number, number, number, number] = [0, 0, 0, 1]) {\n const prefix = str.substring(0, 3).toLowerCase();\n let val;\n let model;\n switch (prefix) {\n case 'hsl':\n val = cs.get.hsl(str, arr);\n model = 'hsl';\n break;\n case 'hwb':\n val = cs.get.hwb(str, arr);\n model = 'hwb';\n break;\n default:\n val = cs.get.rgb(str, arr);\n model = 'rgb';\n break;\n }\n\n if (!val) {\n return null;\n }\n\n return { model: model, value: val };\n};\n\ncs.get.rgb = function (str: string, arr: [number, number, number, number] = [0, 0, 0, 1]) {\n if (!str) {\n return null;\n }\n\n const abbr = /^#([a-f0-9]{3,4})$/i;\n const hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n const rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\n const per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\n const keyword = /(\\D+)/;\n\n const rgb = arr;\n let match;\n let i;\n let hexAlpha;\n\n if ((match = str.match(hex))) {\n hexAlpha = match[2];\n match = match[1];\n\n for (i = 0; i < 3; i++) {\n // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n const i2 = i * 2;\n rgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n }\n\n if (hexAlpha) {\n rgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n } else if ((match = str.match(abbr))) {\n match = match[1];\n hexAlpha = match[3];\n\n for (i = 0; i < 3; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n\n if (hexAlpha) {\n rgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n } else if ((match = str.match(rgba))) {\n for (i = 0; i < 3; i++) {\n rgb[i] = parseInt(match[i + 1], 10);\n }\n\n if (match[4]) {\n rgb[3] = parseFloat(match[4]);\n }\n } else if ((match = str.match(per))) {\n for (i = 0; i < 3; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n\n if (match[4]) {\n rgb[3] = parseFloat(match[4]);\n }\n } else if ((match = str.match(keyword))) {\n if (match[1] === 'transparent') {\n return [0, 0, 0, 0];\n }\n\n const _color = colorNames[match[1]];\n rgb[0] = _color[0];\n rgb[1] = _color[1];\n rgb[2] = _color[2];\n rgb[3] = _color[3];\n\n if (!rgb) {\n return null;\n }\n\n rgb[3] = 1;\n\n return rgb;\n } else {\n return null;\n }\n\n for (i = 0; i < 3; i++) {\n rgb[i] = clamp(rgb[i], 0, 255);\n }\n rgb[3] = clamp(rgb[3], 0, 1);\n\n return rgb;\n};\n\ncs.get.hsl = function (str: string, arr: [number, number, number, number] = [0, 0, 0, 1]) {\n if (!str) {\n return null;\n }\n\n const hsl =\n /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\n const match = str.match(hsl);\n\n if (match) {\n const alpha = parseFloat(match[4]);\n // var h = (parseFloat(match[1]) + 360) % 360;\n // var s = clamp(parseFloat(match[2]), 0, 100);\n // var l = clamp(parseFloat(match[3]), 0, 100);\n // var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n // return [h, s, l, a];\n arr[0] = (parseFloat(match[1]) + 360) % 360;\n arr[1] = clamp(parseFloat(match[2]), 0, 100);\n arr[2] = clamp(parseFloat(match[3]), 0, 100);\n arr[3] = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n return arr;\n }\n\n return null;\n};\n\ncs.get.hwb = function (str: string, arr: [number, number, number, number] = [0, 0, 0, 1]) {\n if (!str) {\n return null;\n }\n\n const hwb =\n /^hwb\\(\\s*([+-]?\\d*[.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*(?:,\\s*([+-]?[\\d.]+)\\s*)?\\)$/;\n const match = str.match(hwb);\n\n if (match) {\n const alpha = parseFloat(match[4]);\n // var h = ((parseFloat(match[1]) % 360) + 360) % 360;\n // var w = clamp(parseFloat(match[2]), 0, 100);\n // var b = clamp(parseFloat(match[3]), 0, 100);\n // var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n // return [h, w, b, a];\n arr[0] = ((parseFloat(match[1]) % 360) + 360) % 360;\n arr[1] = clamp(parseFloat(match[2]), 0, 100);\n arr[2] = clamp(parseFloat(match[3]), 0, 100);\n arr[3] = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n return arr;\n }\n\n return null;\n};\n\ncs.to.hex = function (...args: number[]) {\n const rgba = args;\n\n return (\n '#' +\n hexDouble(rgba[0]) +\n hexDouble(rgba[1]) +\n hexDouble(rgba[2]) +\n (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : '')\n );\n};\n\ncs.to.rgb = function (...args: number[]) {\n const rgba = args;\n\n return rgba.length < 4 || rgba[3] === 1\n ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function (...args: number[]) {\n const rgba = args;\n\n const r = Math.round((rgba[0] / 255) * 100);\n const g = Math.round((rgba[1] / 255) * 100);\n const b = Math.round((rgba[2] / 255) * 100);\n\n return rgba.length < 4 || rgba[3] === 1\n ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function (...args: any[]) {\n const hsla = args;\n return hsla.length < 4 || hsla[3] === 1\n ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function (...args: any[]) {\n const hwba = args;\n\n let a = '';\n if (hwba.length >= 4 && hwba[3] !== 1) {\n a = ', ' + hwba[3];\n }\n\n return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb: any) {\n return reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num: number) {\n const str = num.toString(16).toUpperCase();\n return str.length < 2 ? '0' + str : str;\n}\n\nexport default cs;\n\nexport const colorString = cs;\n\nexport function colorEqual(color1: string, color2: string): boolean {\n const { value: c1 = [0, 0, 0, 0] } = cs.get(color1) || {};\n const { value: c2 = [0, 0, 0, 0] } = cs.get(color2) || {};\n // console.log(c1, c2)\n return c1.every((item: number, index: number) => item === c2[index]);\n}\n\nexport enum ColorType {\n Color255 = 0,\n Color1 = 1\n}\n\nexport class ColorStore {\n private static store255: { [id: string]: [number, number, number, number] } = {};\n private static store1: { [id: string]: [number, number, number, number] } = {};\n static Get(\n str: string,\n size: number = ColorType.Color1,\n arr: [number, number, number, number] = [0, 0, 0, 1]\n ): [number, number, number, number] {\n if (size === ColorType.Color1) {\n let color: any = ColorStore.store1[str];\n if (color) {\n arr[0] = color[0];\n arr[1] = color[1];\n arr[2] = color[2];\n arr[3] = color[3];\n return arr;\n }\n color = cs.get(str);\n if (color && color.value) {\n const value = color.value;\n const data: [number, number, number, number] = [value[0] / 255, value[1] / 255, value[2] / 255, value[3]];\n ColorStore.store1[str] = data;\n // value[3] *= 255;\n ColorStore.store255[str] = value;\n arr[0] = data[0];\n arr[1] = data[1];\n arr[2] = data[2];\n arr[3] = data[3];\n }\n return arr;\n }\n let color: any = ColorStore.store255[str];\n if (color) {\n arr[0] = color[0];\n arr[1] = color[1];\n arr[2] = color[2];\n arr[3] = color[3];\n return arr;\n }\n\n color = cs.get(str);\n if (color && color.value) {\n const value = color.value;\n ColorStore.store1[str] = [value[0] / 255, value[1] / 255, value[2] / 255, value[3]];\n // value[3] *= 255;\n ColorStore.store255[str] = value;\n arr[0] = value[0];\n arr[1] = value[1];\n arr[2] = value[2];\n arr[3] = value[3];\n }\n return arr;\n }\n\n static Set(str: string, size: number, arr: [number, number, number, number]) {\n if (size === ColorType.Color1) {\n if (ColorStore.store1[str]) {\n return;\n }\n ColorStore.store1[str] = arr;\n ColorStore.store255[str] = [\n Math.floor(arr[0] * 255),\n Math.floor(arr[1] * 255),\n Math.floor(arr[2] * 255),\n Math.floor(arr[3] * 255)\n ];\n } else {\n if (ColorStore.store255[str]) {\n return;\n }\n ColorStore.store255[str] = arr;\n ColorStore.store1[str] = [arr[0] / 255, arr[1] / 255, arr[2] / 255, arr[3]];\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/color-string/interpolate.ts"],"names":[],"mappings":"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","file":"interpolate.js","sourcesContent":["import { ColorStore, ColorType } from './index';\nimport { IGradientColor, ILinearGradient, IRadialGradient, IConicalGradient } from '../interface';\n\nexport function interpolateColor(\n from: [number, number, number, number] | string | IGradientColor,\n to: [number, number, number, number] | string | IGradientColor,\n ratio: number,\n alphaChannel: boolean,\n cb?: (fromArray: [number, number, number, number], toArray: [number, number, number, number]) => void\n): false | string | IGradientColor {\n let fromArray: [number, number, number, number];\n let toArray: [number, number, number, number];\n let fromGradient: boolean = false;\n let toGradient: boolean = false;\n if (Array.isArray(from)) {\n fromArray = from as [number, number, number, number];\n } else if (typeof from === 'string') {\n fromArray = ColorStore.Get(from, ColorType.Color255);\n } else {\n fromGradient = true;\n }\n if (Array.isArray(to)) {\n toArray = to as [number, number, number, number];\n } else if (typeof to === 'string') {\n toArray = ColorStore.Get(to, ColorType.Color255);\n } else {\n toGradient = true;\n }\n if (fromGradient !== toGradient) {\n return false;\n }\n\n if (fromGradient) {\n if ((from as IGradientColor).gradient === (to as IGradientColor).gradient) {\n const fc: IGradientColor = from as IGradientColor;\n const tc: IGradientColor = to as IGradientColor;\n // 渐变色插值,只支持相同数量stopColor的插值,并且认为当前的stopColor数量是和from、to相同\n const fromStops = fc.stops;\n const toStops = tc.stops;\n if (fromStops.length !== toStops.length) {\n return false;\n }\n if (fc.gradient === 'linear') {\n return interpolateGradientLinearColor(fc, tc as ILinearGradient, ratio);\n } else if (fc.gradient === 'radial') {\n return interpolateGradientRadialColor(fc, tc as IRadialGradient, ratio);\n } else if (fc.gradient === 'conical') {\n return interpolateGradientConicalColor(fc, tc as IConicalGradient, ratio);\n }\n }\n return false;\n }\n cb && cb(fromArray, toArray);\n const result = interpolatePureColorArray(fromArray, toArray, ratio);\n return alphaChannel\n ? `rgb(${Math.round(result[0])},${Math.round(result[1])},${Math.round(result[2])},${result[3].toFixed(2)})`\n : `rgb(${Math.round(result[0])},${Math.round(result[1])},${Math.round(result[2])})`;\n}\n\nexport function interpolateGradientLinearColor(\n fc: ILinearGradient,\n tc: ILinearGradient,\n ratio: number\n): false | ILinearGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: ILinearGradient = {\n gradient: 'linear',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientRadialColor(\n fc: IRadialGradient,\n tc: IRadialGradient,\n ratio: number\n): false | IRadialGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IRadialGradient = {\n gradient: 'radial',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n r0: fc.r0 + (tc.r0 - fc.r0) * ratio,\n r1: fc.r1 + (tc.r1 - fc.r1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientConicalColor(\n fc: IConicalGradient,\n tc: IConicalGradient,\n ratio: number\n): false | IConicalGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IConicalGradient = {\n gradient: 'conical',\n startAngle: fc.startAngle + (tc.startAngle - fc.startAngle) * ratio,\n endAngle: fc.endAngle + (tc.endAngle - fc.endAngle) * ratio,\n x: fc.x + (tc.x - fc.x) * ratio,\n y: fc.y + (tc.y - fc.y) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolatePureColorArray(\n from: [number, number, number, number],\n to: [number, number, number, number],\n ratio: number\n): [number, number, number, number] {\n return [\n from[0] + (to[0] - from[0]) * ratio,\n from[1] + (to[1] - from[1]) * ratio,\n from[2] + (to[2] - from[2]) * ratio,\n from[3] + (to[3] - from[3]) * ratio\n ];\n}\n\nconst _fromColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nconst _toColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nexport function colorStringInterpolationToStr(fromColor: string, toColor: string, ratio: number): string {\n ColorStore.Get(fromColor, ColorType.Color255, _fromColorRGB);\n ColorStore.Get(toColor, ColorType.Color255, _toColorRGB);\n return `rgba(${Math.round(_fromColorRGB[0] + (_toColorRGB[0] - _fromColorRGB[0]) * ratio)},${Math.round(\n _fromColorRGB[1] + (_toColorRGB[1] - _fromColorRGB[1]) * ratio\n )},${Math.round(_fromColorRGB[2] + (_toColorRGB[2] - _fromColorRGB[2]) * ratio)},${\n _fromColorRGB[3] + (_toColorRGB[3] - _fromColorRGB[3]) * ratio\n })`;\n}\n"]}
1
+ {"version":3,"sources":["../../src/color-string/interpolate.ts"],"names":[],"mappings":"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","file":"interpolate.js","sourcesContent":["import { ColorStore, ColorType } from './index';\nimport { IGradientColor, ILinearGradient, IRadialGradient, IConicalGradient } from '../interface';\n\nexport function interpolateColor(\n from: [number, number, number, number] | string | IGradientColor,\n to: [number, number, number, number] | string | IGradientColor,\n ratio: number,\n alphaChannel: boolean,\n cb?: (fromArray: [number, number, number, number], toArray: [number, number, number, number]) => void\n): false | string | IGradientColor {\n let fromArray: [number, number, number, number];\n let toArray: [number, number, number, number];\n let fromGradient: boolean = false;\n let toGradient: boolean = false;\n if (Array.isArray(from)) {\n fromArray = from as [number, number, number, number];\n } else if (typeof from === 'string') {\n fromArray = ColorStore.Get(from, ColorType.Color255);\n } else {\n fromGradient = true;\n }\n if (Array.isArray(to)) {\n toArray = to as [number, number, number, number];\n } else if (typeof to === 'string') {\n toArray = ColorStore.Get(to, ColorType.Color255);\n } else {\n toGradient = true;\n }\n if (fromGradient !== toGradient) {\n return false;\n }\n\n if (fromGradient) {\n if ((from as IGradientColor).gradient === (to as IGradientColor).gradient) {\n const fc: IGradientColor = from as IGradientColor;\n const tc: IGradientColor = to as IGradientColor;\n // 渐变色插值,只支持相同数量stopColor的插值,并且认为当前的stopColor数量是和from、to相同\n const fromStops = fc.stops;\n const toStops = tc.stops;\n if (fromStops.length !== toStops.length) {\n return false;\n }\n if (fc.gradient === 'linear') {\n return interpolateGradientLinearColor(fc, tc as ILinearGradient, ratio);\n } else if (fc.gradient === 'radial') {\n return interpolateGradientRadialColor(fc, tc as IRadialGradient, ratio);\n } else if (fc.gradient === 'conical') {\n return interpolateGradientConicalColor(fc, tc as IConicalGradient, ratio);\n }\n }\n return false;\n }\n cb && cb(fromArray, toArray);\n const result = interpolatePureColorArray(fromArray, toArray, ratio);\n return alphaChannel\n ? `rgb(${Math.round(result[0])},${Math.round(result[1])},${Math.round(result[2])},${result[3].toFixed(2)})`\n : `rgb(${Math.round(result[0])},${Math.round(result[1])},${Math.round(result[2])})`;\n}\n\nexport function interpolateGradientLinearColor(\n fc: ILinearGradient,\n tc: ILinearGradient,\n ratio: number\n): false | ILinearGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: ILinearGradient = {\n gradient: 'linear',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientRadialColor(\n fc: IRadialGradient,\n tc: IRadialGradient,\n ratio: number\n): false | IRadialGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IRadialGradient = {\n gradient: 'radial',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n r0: fc.r0 + (tc.r0 - fc.r0) * ratio,\n r1: fc.r1 + (tc.r1 - fc.r1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientConicalColor(\n fc: IConicalGradient,\n tc: IConicalGradient,\n ratio: number\n): false | IConicalGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IConicalGradient = {\n gradient: 'conical',\n startAngle: fc.startAngle + (tc.startAngle - fc.startAngle) * ratio,\n endAngle: fc.endAngle + (tc.endAngle - fc.endAngle) * ratio,\n x: fc.x + (tc.x - fc.x) * ratio,\n y: fc.y + (tc.y - fc.y) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolatePureColorArray(\n from: [number, number, number, number],\n to: [number, number, number, number],\n ratio: number\n): [number, number, number, number] {\n return [\n from[0] + (to[0] - from[0]) * ratio,\n from[1] + (to[1] - from[1]) * ratio,\n from[2] + (to[2] - from[2]) * ratio,\n from[3] + (to[3] - from[3]) * ratio\n ];\n}\n\nconst _fromColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nconst _toColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nexport function colorStringInterpolationToStr(fromColor: string, toColor: string, ratio: number): string {\n ColorStore.Get(fromColor, ColorType.Color255, _fromColorRGB);\n ColorStore.Get(toColor, ColorType.Color255, _toColorRGB);\n return `rgba(${Math.round(_fromColorRGB[0] + (_toColorRGB[0] - _fromColorRGB[0]) * ratio)},${Math.round(\n _fromColorRGB[1] + (_toColorRGB[1] - _fromColorRGB[1]) * ratio\n )},${Math.round(_fromColorRGB[2] + (_toColorRGB[2] - _fromColorRGB[2]) * ratio)},${\n _fromColorRGB[3] + (_toColorRGB[3] - _fromColorRGB[3]) * ratio\n })`;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/bezier.ts"],"names":[],"mappings":"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","file":"bezier.js","sourcesContent":["import { IPointLike, IPoint, PointService, Point } from '@visactor/vutils';\nimport { CubicBezierCurve, LineCurve } from './path';\n\n// TODO 替换这里的逻辑\n\nexport function snapLength(xArr: number[], yArr: number[]) {\n let totalLength = 0;\n const count = xArr.length;\n for (let i = 0; i < count; i++) {\n const x = xArr[i];\n const y = yArr[i];\n const nextX = xArr[(i + 1) % count];\n const nextY = yArr[(i + 1) % count];\n totalLength += PointService.distanceNN(x, y, nextX, nextY);\n }\n return totalLength / 2;\n}\n\n/**\n * 计算贝塞尔曲线的长度\n * @param p0 起点\n * @param p1 控制点1\n * @param p2 控制点2\n * @param p3 终点\n * @param iterationCount\n */\nexport function cubicLength(p0: IPointLike, p1: IPointLike, p2: IPointLike, p3: IPointLike, iterationCount: number) {\n return snapLength([p0.x, p1.x, p2.x, p3.x], [p0.y, p1.y, p2.y, p3.y]);\n}\n\nexport function cubicCalc(p0: number, p1: number, p2: number, p3: number, t: number): number {\n const one = 1 - t;\n return one * one * one * p0 + 3 * p1 * t * one * one + 3 * p2 * t * t * one + p3 * t * t * t;\n}\n\n/**\n * 根据t计算三次贝塞尔的点\n * example:\n * x: cubicAt(x1, x2, x3, x4, t),\n * y: cubicAt(y1, y2, y3, y4, t),\n * @param p0 起点坐标\n * @param p1 控制点1\n * @param p2 控制点2\n * @param p3 终点坐标\n * @param t\n */\nexport function cubicPointAt(p0: IPointLike, p1: IPointLike, p2: IPointLike, p3: IPointLike, t: number): IPoint {\n const x = cubicCalc(p0.x, p1.x, p2.x, p3.x, t);\n const y = cubicCalc(p0.y, p1.y, p2.y, p3.y, t);\n return new Point(x, y);\n}\n\n/**\n * 对三次贝塞尔曲线进行分割\n * @param p0 起点\n * @param p1 控制点1\n * @param p2 控制点2\n * @param p3 终点\n * @param t\n */\nexport function divideCubic(curve: CubicBezierCurve, t: number): CubicBezierCurve[] {\n const { p0, p1, p2, p3 } = curve;\n\n // 划分点\n const pt = cubicPointAt(p0, p1, p2, p3, t);\n // const xt = pt.x;\n // const yt = pt.y;\n\n // 计算两点之间的差值点\n const c1 = PointService.pointAtPP(p0, p1, t);\n const c2 = PointService.pointAtPP(p1, p2, t);\n const c3 = PointService.pointAtPP(p2, p3, t);\n const c12 = PointService.pointAtPP(c1, c2, t);\n const c23 = PointService.pointAtPP(c2, c3, t);\n // const direction = p1.x1 ? p1.y > p0.y ? 0 : 1 : p1.x > p0.x ? 0 : 1;\n\n const curve1 = new CubicBezierCurve(p0, c1, c12, pt);\n const curve2 = new CubicBezierCurve(pt, c23, c3, p3);\n\n return [curve1, curve2];\n}\n\nexport function divideLinear(curve: LineCurve, t: number): LineCurve[] {\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"]}
1
+ {"version":3,"sources":["../../src/common/bezier.ts"],"names":[],"mappings":"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","file":"bezier.js","sourcesContent":["import { IPointLike, IPoint, PointService, Point } from '@visactor/vutils';\nimport { CubicBezierCurve, LineCurve } from './path';\n\n// TODO 替换这里的逻辑\n\nexport function snapLength(xArr: number[], yArr: number[]) {\n let totalLength = 0;\n const count = xArr.length;\n for (let i = 0; i < count; i++) {\n const x = xArr[i];\n const y = yArr[i];\n const nextX = xArr[(i + 1) % count];\n const nextY = yArr[(i + 1) % count];\n totalLength += PointService.distanceNN(x, y, nextX, nextY);\n }\n return totalLength / 2;\n}\n\n/**\n * 计算贝塞尔曲线的长度\n * @param p0 起点\n * @param p1 控制点1\n * @param p2 控制点2\n * @param p3 终点\n * @param iterationCount\n */\nexport function cubicLength(p0: IPointLike, p1: IPointLike, p2: IPointLike, p3: IPointLike, iterationCount: number) {\n return snapLength([p0.x, p1.x, p2.x, p3.x], [p0.y, p1.y, p2.y, p3.y]);\n}\n\nexport function cubicCalc(p0: number, p1: number, p2: number, p3: number, t: number): number {\n const one = 1 - t;\n return one * one * one * p0 + 3 * p1 * t * one * one + 3 * p2 * t * t * one + p3 * t * t * t;\n}\n\n/**\n * 根据t计算三次贝塞尔的点\n * example:\n * x: cubicAt(x1, x2, x3, x4, t),\n * y: cubicAt(y1, y2, y3, y4, t),\n * @param p0 起点坐标\n * @param p1 控制点1\n * @param p2 控制点2\n * @param p3 终点坐标\n * @param t\n */\nexport function cubicPointAt(p0: IPointLike, p1: IPointLike, p2: IPointLike, p3: IPointLike, t: number): IPoint {\n const x = cubicCalc(p0.x, p1.x, p2.x, p3.x, t);\n const y = cubicCalc(p0.y, p1.y, p2.y, p3.y, t);\n return new Point(x, y);\n}\n\n/**\n * 对三次贝塞尔曲线进行分割\n * @param p0 起点\n * @param p1 控制点1\n * @param p2 控制点2\n * @param p3 终点\n * @param t\n */\nexport function divideCubic(curve: CubicBezierCurve, t: number): CubicBezierCurve[] {\n const { p0, p1, p2, p3 } = curve;\n\n // 划分点\n const pt = cubicPointAt(p0, p1, p2, p3, t);\n // const xt = pt.x;\n // const yt = pt.y;\n\n // 计算两点之间的差值点\n const c1 = PointService.pointAtPP(p0, p1, t);\n const c2 = PointService.pointAtPP(p1, p2, t);\n const c3 = PointService.pointAtPP(p2, p3, t);\n const c12 = PointService.pointAtPP(c1, c2, t);\n const c23 = PointService.pointAtPP(c2, c3, t);\n // const direction = p1.x1 ? p1.y > p0.y ? 0 : 1 : p1.x > p0.x ? 0 : 1;\n\n const curve1 = new CubicBezierCurve(p0, c1, c12, pt);\n const curve2 = new CubicBezierCurve(pt, c23, c3, p3);\n\n return [curve1, curve2];\n}\n\nexport function divideLinear(curve: LineCurve, t: number): LineCurve[] {\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"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/bounds-context.ts"],"names":[],"mappings":"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","file":"bounds-context.js","sourcesContent":["import { halfPi, tau, IBounds } from '@visactor/vutils';\nimport { IPath2D } from '../interface';\n\nconst circleThreshold = tau - 1e-8;\n\n/**\n * 借鉴 https://github.com/vega/vega/blob/b45cf431cd6c0d0c0e1567f087f9b3b55bc236fa/packages/vega-scenegraph/src/bound/boundContext.js\n * Copyright (c) 2015-2023, University of Washington Interactive Data Lab\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n 3. Neither the name of the copyright holder nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE\n FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\nexport class BoundsContext implements IPath2D {\n bounds: IBounds;\n constructor(bounds: IBounds) {\n this.init(bounds);\n }\n\n init(bounds: IBounds) {\n this.bounds = bounds;\n }\n\n // @ts-ignore\n arc(cx: number, cy: number, r: number, sa: number, ea: number, ccw: boolean) {\n if (Math.abs(ea - sa) > circleThreshold) {\n this.bounds.add(cx - r, cy - r);\n this.bounds.add(cx + r, cy + r);\n return;\n }\n\n let xmin = Infinity;\n let xmax = -Infinity;\n let ymin = Infinity;\n let ymax = -Infinity;\n let s;\n let i;\n let x;\n let y;\n\n function update(a: number) {\n x = r * Math.cos(a);\n y = r * Math.sin(a);\n if (x < xmin) {\n xmin = x;\n }\n if (x > xmax) {\n xmax = x;\n }\n if (y < ymin) {\n ymin = y;\n }\n if (y > ymax) {\n ymax = y;\n }\n }\n\n // Sample end points and interior points aligned with 90 degrees\n update(sa);\n update(ea);\n\n if (ea !== sa) {\n sa = sa % tau;\n if (sa < 0) {\n sa += tau;\n }\n ea = ea % tau;\n if (ea < 0) {\n ea += tau;\n }\n\n if (ea < sa) {\n ccw = !ccw; // flip direction\n s = sa;\n sa = ea;\n ea = s; // swap end-points\n }\n\n if (ccw) {\n ea -= tau;\n s = sa - (sa % halfPi);\n for (i = 0; i < 4 && s > ea; ++i, s -= halfPi) {\n update(s);\n }\n } else {\n s = sa - (sa % halfPi) + halfPi;\n for (i = 0; i < 4 && s < ea; ++i, s = s + halfPi) {\n update(s);\n }\n }\n }\n\n this.bounds.add(cx + xmin, cy + ymin);\n this.bounds.add(cx + xmax, cy + ymax);\n }\n // @ts-ignore\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void {\n throw new Error('不支持arcTo');\n }\n // @ts-ignore\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void {\n this.bounds.add(cp1x, cp1y);\n this.bounds.add(cp2x, cp2y);\n this.bounds.add(x, y);\n }\n // @ts-ignore\n closePath(): void {\n // do nothing\n }\n // @ts-ignore\n ellipse(): void {\n throw new Error('不支持ellipse');\n }\n // @ts-ignore\n lineTo(x: number, y: number): void {\n this.bounds.add(x, y);\n }\n // @ts-ignore\n moveTo(x: number, y: number): void {\n this.bounds.add(x, y);\n }\n // @ts-ignore\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void {\n this.bounds.add(cpx, cpy);\n this.bounds.add(x, y);\n }\n // @ts-ignore\n rect(x: number, y: number, w: number, h: number): void {\n this.bounds.add(x, y);\n this.bounds.add(x + w, y + h);\n }\n\n clear() {\n this.bounds.clear();\n }\n\n release(...params: any): void {\n // 不需要dispose\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/bounds-context.ts"],"names":[],"mappings":"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","file":"bounds-context.js","sourcesContent":["import { halfPi, tau, IBounds } from '@visactor/vutils';\nimport { IPath2D } from '../interface';\n\nconst circleThreshold = tau - 1e-8;\n\n/**\n * 借鉴 https://github.com/vega/vega/blob/b45cf431cd6c0d0c0e1567f087f9b3b55bc236fa/packages/vega-scenegraph/src/bound/boundContext.js\n * Copyright (c) 2015-2023, University of Washington Interactive Data Lab\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n 3. Neither the name of the copyright holder nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE\n FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\nexport class BoundsContext implements IPath2D {\n bounds: IBounds;\n constructor(bounds: IBounds) {\n this.init(bounds);\n }\n\n init(bounds: IBounds) {\n this.bounds = bounds;\n }\n\n // @ts-ignore\n arc(cx: number, cy: number, r: number, sa: number, ea: number, ccw: boolean) {\n if (Math.abs(ea - sa) > circleThreshold) {\n this.bounds.add(cx - r, cy - r);\n this.bounds.add(cx + r, cy + r);\n return;\n }\n\n let xmin = Infinity;\n let xmax = -Infinity;\n let ymin = Infinity;\n let ymax = -Infinity;\n let s;\n let i;\n let x;\n let y;\n\n function update(a: number) {\n x = r * Math.cos(a);\n y = r * Math.sin(a);\n if (x < xmin) {\n xmin = x;\n }\n if (x > xmax) {\n xmax = x;\n }\n if (y < ymin) {\n ymin = y;\n }\n if (y > ymax) {\n ymax = y;\n }\n }\n\n // Sample end points and interior points aligned with 90 degrees\n update(sa);\n update(ea);\n\n if (ea !== sa) {\n sa = sa % tau;\n if (sa < 0) {\n sa += tau;\n }\n ea = ea % tau;\n if (ea < 0) {\n ea += tau;\n }\n\n if (ea < sa) {\n ccw = !ccw; // flip direction\n s = sa;\n sa = ea;\n ea = s; // swap end-points\n }\n\n if (ccw) {\n ea -= tau;\n s = sa - (sa % halfPi);\n for (i = 0; i < 4 && s > ea; ++i, s -= halfPi) {\n update(s);\n }\n } else {\n s = sa - (sa % halfPi) + halfPi;\n for (i = 0; i < 4 && s < ea; ++i, s = s + halfPi) {\n update(s);\n }\n }\n }\n\n this.bounds.add(cx + xmin, cy + ymin);\n this.bounds.add(cx + xmax, cy + ymax);\n }\n // @ts-ignore\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void {\n throw new Error('不支持arcTo');\n }\n // @ts-ignore\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void {\n this.bounds.add(cp1x, cp1y);\n this.bounds.add(cp2x, cp2y);\n this.bounds.add(x, y);\n }\n // @ts-ignore\n closePath(): void {\n // do nothing\n }\n // @ts-ignore\n ellipse(): void {\n throw new Error('不支持ellipse');\n }\n // @ts-ignore\n lineTo(x: number, y: number): void {\n this.bounds.add(x, y);\n }\n // @ts-ignore\n moveTo(x: number, y: number): void {\n this.bounds.add(x, y);\n }\n // @ts-ignore\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void {\n this.bounds.add(cpx, cpy);\n this.bounds.add(x, y);\n }\n // @ts-ignore\n rect(x: number, y: number, w: number, h: number): void {\n this.bounds.add(x, y);\n this.bounds.add(x + w, y + h);\n }\n\n clear() {\n this.bounds.clear();\n }\n\n release(...params: any): void {\n // 不需要dispose\n return;\n }\n}\n"]}
@@ -2,6 +2,6 @@ import { IColor } from '../interface/color';
2
2
  import { IContext2d } from '../interface';
3
3
  import { IBoundsLike } from '@visactor/vutils';
4
4
  export declare function getScaledStroke(context: IContext2d, width: number, dpr: number): number;
5
- export declare function createColor(context: IContext2d, c: string | IColor | Array<string | IColor> | boolean, params: {
5
+ export declare function createColor(context: IContext2d, color: string | IColor, params: {
6
6
  AABBBounds?: IBoundsLike;
7
7
  }, offsetX: number, offsetY: number): string | CanvasGradient;
@@ -1,5 +1,3 @@
1
- import { isArray } from "@visactor/vutils";
2
-
3
1
  export function getScaledStroke(context, width, dpr) {
4
2
  let strokeWidth = width;
5
3
  const {a: a, b: b, c: c, d: d} = context.currentMatrix, scaleX = Math.sign(a) * Math.sqrt(a * a + b * b), scaleY = Math.sign(d) * Math.sqrt(c * c + d * d);
@@ -7,10 +5,9 @@ export function getScaledStroke(context, width, dpr) {
7
5
  strokeWidth);
8
6
  }
9
7
 
10
- export function createColor(context, c, params, offsetX, offsetY) {
11
- if (!c || !0 === c) return "black";
12
- let result, color;
13
- if (isArray(c)) for (let i = 0; i < c.length && (color = c[i], !color); i++) ; else color = c;
8
+ export function createColor(context, color, params, offsetX, offsetY) {
9
+ if (!color) return "black";
10
+ let result;
14
11
  return "string" == typeof color ? color : ("linear" === color.gradient ? result = createLinearGradient(context, color, params.AABBBounds, offsetX, offsetY) : "conical" === color.gradient ? result = createConicGradient(context, color, params.AABBBounds, offsetX, offsetY) : "radial" === color.gradient && (result = createRadialGradient(context, color, params.AABBBounds, offsetX, offsetY)),
15
12
  result || "orange");
16
13
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/canvas-utils.ts"],"names":[],"mappings":"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","file":"canvas-utils.js","sourcesContent":["import { IColor, IConicalGradient, ILinearGradient, IRadialGradient } from '../interface/color';\nimport { IContext2d } from '../interface';\nimport { IBoundsLike, isArray } from '@visactor/vutils';\n\nexport function getScaledStroke(context: IContext2d, width: number, dpr: number) {\n let strokeWidth = width;\n const { a, b, c, d } = context.currentMatrix;\n const scaleX = Math.sign(a) * Math.sqrt(a * a + b * b);\n const scaleY = Math.sign(d) * Math.sqrt(c * c + d * d);\n // 如果没有scaleX和scaleY,那么认为什么都不用绘制\n if (scaleX + scaleY === 0) {\n return 0;\n }\n strokeWidth = (strokeWidth / Math.abs(scaleX + scaleY)) * 2 * dpr;\n return strokeWidth;\n}\n\nexport function createColor(\n context: IContext2d,\n c: string | IColor | Array<string | IColor> | boolean,\n params: { AABBBounds?: IBoundsLike },\n offsetX: number,\n offsetY: number\n): string | CanvasGradient {\n if (!c || c === true) {\n return 'black';\n }\n let result: string | CanvasGradient | undefined;\n let color: string | IColor;\n if (isArray(c)) {\n for (let i = 0; i < c.length; i++) {\n color = c[i];\n if (color) {\n break;\n }\n }\n } else {\n color = c;\n }\n if (typeof color === 'string') {\n return color;\n }\n if (color.gradient === 'linear') {\n result = createLinearGradient(context, color, params.AABBBounds, offsetX, offsetY);\n } else if (color.gradient === 'conical') {\n result = createConicGradient(context, color, params.AABBBounds, offsetX, offsetY);\n } else if (color.gradient === 'radial') {\n result = createRadialGradient(context, color, params.AABBBounds, offsetX, offsetY);\n }\n return result || 'orange';\n}\n\nfunction createLinearGradient(\n context: IContext2d,\n color: ILinearGradient,\n bounds: IBoundsLike,\n offsetX: number,\n offsetY: number\n) {\n const w = bounds.x2 - bounds.x1;\n const h = bounds.y2 - bounds.y1;\n const x = bounds.x1;\n const y = bounds.y1;\n const canvasGradient = context.createLinearGradient(\n x + (color.x0 || 0) * w,\n y + (color.y0 || 0) * h,\n x + (color.x1 || 1) * w,\n y + (color.y1 || 0) * h\n );\n color.stops.forEach(stop => {\n canvasGradient.addColorStop(stop.offset, stop.color);\n });\n return canvasGradient;\n}\n\nfunction createRadialGradient(\n context: IContext2d,\n color: IRadialGradient,\n bounds: IBoundsLike,\n offsetX: number,\n offsetY: number\n) {\n const w = bounds.x2 - bounds.x1;\n const h = bounds.y2 - bounds.y1;\n const x = bounds.x1;\n const y = bounds.y1;\n const canvasGradient = context.createRadialGradient(\n x + (color.x0 || 0.5) * w,\n y + (color.y0 || 0.5) * h,\n Math.max(w, h) * (color.r0 || 0),\n x + (color.x1 || 0.5) * w,\n y + (color.y1 || 0.5) * h,\n Math.max(w, h) * (color.r1 || 0.5)\n );\n color.stops.forEach(stop => {\n canvasGradient.addColorStop(stop.offset, stop.color);\n });\n return canvasGradient;\n}\n\nfunction createConicGradient(\n context: IContext2d,\n color: IConicalGradient,\n bounds: IBoundsLike,\n offsetX: number,\n offsetY: number\n) {\n if (!bounds) {\n return;\n }\n const w = bounds.x2 - bounds.x1;\n const h = bounds.y2 - bounds.y1;\n const x = bounds.x1 || 0;\n const y = bounds.y1 || 0;\n\n const canvasGradient = context.createConicGradient(\n x + (color.x || 0) * w,\n y + (color.y || 0) * h,\n color.startAngle,\n color.endAngle\n );\n color.stops.forEach(stop => {\n canvasGradient.addColorStop(stop.offset, stop.color);\n });\n\n let deltaAngle;\n return (canvasGradient as any).GetPattern(w + x, h + y, deltaAngle);\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/canvas-utils.ts"],"names":[],"mappings":"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","file":"canvas-utils.js","sourcesContent":["import { IColor, IConicalGradient, ILinearGradient, IRadialGradient } from '../interface/color';\nimport { IContext2d } from '../interface';\nimport { IBoundsLike } from '@visactor/vutils';\n\nexport function getScaledStroke(context: IContext2d, width: number, dpr: number) {\n let strokeWidth = width;\n const { a, b, c, d } = context.currentMatrix;\n const scaleX = Math.sign(a) * Math.sqrt(a * a + b * b);\n const scaleY = Math.sign(d) * Math.sqrt(c * c + d * d);\n // 如果没有scaleX和scaleY,那么认为什么都不用绘制\n if (scaleX + scaleY === 0) {\n return 0;\n }\n strokeWidth = (strokeWidth / Math.abs(scaleX + scaleY)) * 2 * dpr;\n return strokeWidth;\n}\n\nexport function createColor(\n context: IContext2d,\n color: string | IColor,\n params: { AABBBounds?: IBoundsLike },\n offsetX: number,\n offsetY: number\n): string | CanvasGradient {\n if (!color) {\n return 'black';\n }\n let result: string | CanvasGradient | undefined;\n if (typeof color === 'string') {\n return color;\n }\n if (color.gradient === 'linear') {\n result = createLinearGradient(context, color, params.AABBBounds, offsetX, offsetY);\n } else if (color.gradient === 'conical') {\n result = createConicGradient(context, color, params.AABBBounds, offsetX, offsetY);\n } else if (color.gradient === 'radial') {\n result = createRadialGradient(context, color, params.AABBBounds, offsetX, offsetY);\n }\n return result || 'orange';\n}\n\nfunction createLinearGradient(\n context: IContext2d,\n color: ILinearGradient,\n bounds: IBoundsLike,\n offsetX: number,\n offsetY: number\n) {\n const w = bounds.x2 - bounds.x1;\n const h = bounds.y2 - bounds.y1;\n const x = bounds.x1;\n const y = bounds.y1;\n const canvasGradient = context.createLinearGradient(\n x + (color.x0 || 0) * w,\n y + (color.y0 || 0) * h,\n x + (color.x1 || 1) * w,\n y + (color.y1 || 0) * h\n );\n color.stops.forEach(stop => {\n canvasGradient.addColorStop(stop.offset, stop.color);\n });\n return canvasGradient;\n}\n\nfunction createRadialGradient(\n context: IContext2d,\n color: IRadialGradient,\n bounds: IBoundsLike,\n offsetX: number,\n offsetY: number\n) {\n const w = bounds.x2 - bounds.x1;\n const h = bounds.y2 - bounds.y1;\n const x = bounds.x1;\n const y = bounds.y1;\n const canvasGradient = context.createRadialGradient(\n x + (color.x0 || 0.5) * w,\n y + (color.y0 || 0.5) * h,\n Math.max(w, h) * (color.r0 || 0),\n x + (color.x1 || 0.5) * w,\n y + (color.y1 || 0.5) * h,\n Math.max(w, h) * (color.r1 || 0.5)\n );\n color.stops.forEach(stop => {\n canvasGradient.addColorStop(stop.offset, stop.color);\n });\n return canvasGradient;\n}\n\nfunction createConicGradient(\n context: IContext2d,\n color: IConicalGradient,\n bounds: IBoundsLike,\n offsetX: number,\n offsetY: number\n) {\n if (!bounds) {\n return;\n }\n const w = bounds.x2 - bounds.x1;\n const h = bounds.y2 - bounds.y1;\n const x = bounds.x1 || 0;\n const y = bounds.y1 || 0;\n\n const canvasGradient = context.createConicGradient(\n x + (color.x || 0) * w,\n y + (color.y || 0) * h,\n color.startAngle,\n color.endAngle\n );\n color.stops.forEach(stop => {\n canvasGradient.addColorStop(stop.offset, stop.color);\n });\n\n let deltaAngle;\n return (canvasGradient as any).GetPattern(w + x, h + y, deltaAngle);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/contribution-provider.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAMnE,MAAM,yBAAyB;IAK7B,YAAY,iBAAkD,EAAE,SAA+B;QAC7F,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACtF;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAqB,EAAE,EAAO;IACrE,IAAI,CAAC,oBAAoB,CAAC;SACvB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;SAC/E,gBAAgB,EAAE;SAClB,eAAe,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC","file":"contribution-provider.js","sourcesContent":["import { interfaces } from 'inversify';\n\nexport const ContributionProvider = Symbol('ContributionProvider');\n\nexport interface ContributionProvider<T> {\n getContributions: () => T[];\n}\n\nclass ContributionProviderCache<T> implements ContributionProvider<T> {\n protected caches?: T[];\n protected serviceIdentifier: interfaces.ServiceIdentifier<T>;\n protected container: interfaces.Container;\n\n constructor(serviceIdentifier: interfaces.ServiceIdentifier<T>, container: interfaces.Container) {\n this.serviceIdentifier = serviceIdentifier;\n this.container = container;\n }\n\n getContributions(): T[] {\n if (!this.caches) {\n this.caches = [];\n this.container && this.caches.push(...this.container.getAll(this.serviceIdentifier));\n }\n return this.caches;\n }\n}\n\nexport function bindContributionProvider(bind: interfaces.Bind, id: any): void {\n bind(ContributionProvider)\n .toDynamicValue(({ container }) => new ContributionProviderCache(id, container))\n .inSingletonScope()\n .whenTargetNamed(id);\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/contribution-provider.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAMnE,MAAM,yBAAyB;IAK7B,YAAY,iBAAkD,EAAE,SAA+B;QAC7F,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACtF;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAqB,EAAE,EAAO;IACrE,IAAI,CAAC,oBAAoB,CAAC;SACvB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;SAC/E,gBAAgB,EAAE;SAClB,eAAe,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC","file":"contribution-provider.js","sourcesContent":["import { interfaces } from 'inversify';\n\nexport const ContributionProvider = Symbol('ContributionProvider');\n\nexport interface ContributionProvider<T> {\n getContributions: () => T[];\n}\n\nclass ContributionProviderCache<T> implements ContributionProvider<T> {\n protected caches?: T[];\n protected serviceIdentifier: interfaces.ServiceIdentifier<T>;\n protected container: interfaces.Container;\n\n constructor(serviceIdentifier: interfaces.ServiceIdentifier<T>, container: interfaces.Container) {\n this.serviceIdentifier = serviceIdentifier;\n this.container = container;\n }\n\n getContributions(): T[] {\n if (!this.caches) {\n this.caches = [];\n this.container && this.caches.push(...this.container.getAll(this.serviceIdentifier));\n }\n return this.caches;\n }\n}\n\nexport function bindContributionProvider(bind: interfaces.Bind, id: any): void {\n bind(ContributionProvider)\n .toDynamicValue(({ container }) => new ContributionProviderCache(id, container))\n .inSingletonScope()\n .whenTargetNamed(id);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/curve/basis.ts"],"names":[],"mappings":"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","file":"basis.js","sourcesContent":["import { abs, IPointLike } from '@visactor/vutils';\nimport { genLinearSegments } from './linear';\nimport { genCurveSegments } from './common';\nimport { ACurveTypeClass, ALinearTypeClass, IGenSegmentParams, ISegPath2D } from './interface';\nimport { Direction, SegContext } from '../seg-context';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n// 基于d3-shape重构\n// https://github.com/d3/d3-shape/blob/main/src/curve/basis.js\nexport function point(curveClass: Basis, x: number, y: number, defined: boolean) {\n curveClass.context.bezierCurveTo(\n (2 * curveClass._x0 + curveClass._x1) / 3,\n (2 * curveClass._y0 + curveClass._y1) / 3,\n (curveClass._x0 + 2 * curveClass._x1) / 3,\n (curveClass._y0 + 2 * curveClass._y1) / 3,\n (curveClass._x0 + 4 * curveClass._x1 + x) / 6,\n (curveClass._y0 + 4 * curveClass._y1 + y) / 6,\n defined\n );\n}\n\nexport class Basis extends ACurveTypeClass {\n private _lastDefined?: boolean;\n declare context: ISegPath2D;\n\n protected startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super();\n this.context = context;\n this.startPoint = startPoint;\n }\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 = NaN;\n this._point = 0;\n this.startPoint && this.point(this.startPoint);\n }\n lineEnd() {\n switch (this._point) {\n case 2:\n point(\n this,\n this._x1 * 6 - (this._x0 + 4 * this._x1),\n this._y1 * 6 - (this._y0 + 4 * this._y1),\n this._lastDefined !== false\n ); // falls through\n // case 2: this.context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) {\n this.context.closePath();\n }\n this._line = 1 - this._line;\n }\n point(p: IPointLike): void {\n const x = 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)\n : this.context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n break;\n // case 2: this._point = 3; this.context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6, i, defined1, defined2); // falls through\n default:\n point(this, x, y, this._lastDefined !== false && p.defined !== false);\n break;\n }\n (this._x0 = this._x1), (this._x1 = x);\n (this._y0 = this._y1), (this._y1 = y);\n this._lastDefined = p.defined;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport function genBasisTypeSegments(path: ALinearTypeClass, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genBasisSegments(points: IPointLike[], params: IGenSegmentParams = {}): SegContext | 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 = new SegContext(\n 'basis',\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 basis = new Basis(segContext, startPoint);\n\n genBasisTypeSegments(basis, points);\n\n return segContext;\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/curve/basis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAmD,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAqBvD,MAAM,UAAU,KAAK,CAAC,UAAiB,EAAE,CAAS,EAAE,CAAS,EAAE,OAAgB;IAC7E,UAAU,CAAC,OAAO,CAAC,aAAa,CAC9B,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EACzC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EACzC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EACzC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EACzC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAC7C,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAC7C,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,KAAM,SAAQ,eAAe;IAMxC,YAAY,OAAmB,EAAE,UAAuB;QACtD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,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,GAAG,CAAC;QAChD,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,KAAK,CACH,IAAI,EACJ,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EACxC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EACxC,IAAI,CAAC,YAAY,KAAK,KAAK,CAC5B,CAAC;SAEL;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,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,CAAC;oBAC/E,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,CAAC;gBACJ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,MAAM;YAER;gBACE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;gBACtE,MAAM;SACT;QACD,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,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAsB,EAAE,MAAoB;IAC/E,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAoB,EAAE,SAA4B,EAAE;IACnF,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,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC1C;IACD,MAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,OAAO,EACP,SAAS,aAAT,SAAS,cAAT,SAAS,GACP,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,CAAC,CAAC,SAAS,CAAC,GAAG;QACf,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CACxB,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEhD,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEpC,OAAO,UAAU,CAAC;AACpB,CAAC","file":"basis.js","sourcesContent":["import { abs, IPointLike } from '@visactor/vutils';\nimport { genLinearSegments } from './linear';\nimport { genCurveSegments } from './common';\nimport { ACurveTypeClass, ALinearTypeClass, IGenSegmentParams, ISegPath2D } from './interface';\nimport { Direction, SegContext } from '../seg-context';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n// 基于d3-shape重构\n// https://github.com/d3/d3-shape/blob/main/src/curve/basis.js\nexport function point(curveClass: Basis, x: number, y: number, defined: boolean) {\n curveClass.context.bezierCurveTo(\n (2 * curveClass._x0 + curveClass._x1) / 3,\n (2 * curveClass._y0 + curveClass._y1) / 3,\n (curveClass._x0 + 2 * curveClass._x1) / 3,\n (curveClass._y0 + 2 * curveClass._y1) / 3,\n (curveClass._x0 + 4 * curveClass._x1 + x) / 6,\n (curveClass._y0 + 4 * curveClass._y1 + y) / 6,\n defined\n );\n}\n\nexport class Basis extends ACurveTypeClass {\n private _lastDefined?: boolean;\n declare context: ISegPath2D;\n\n protected startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super();\n this.context = context;\n this.startPoint = startPoint;\n }\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 = NaN;\n this._point = 0;\n this.startPoint && this.point(this.startPoint);\n }\n lineEnd() {\n switch (this._point) {\n case 2:\n point(\n this,\n this._x1 * 6 - (this._x0 + 4 * this._x1),\n this._y1 * 6 - (this._y0 + 4 * this._y1),\n this._lastDefined !== false\n ); // falls through\n // case 2: this.context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) {\n this.context.closePath();\n }\n this._line = 1 - this._line;\n }\n point(p: IPointLike): void {\n const x = 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)\n : this.context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n break;\n // case 2: this._point = 3; this.context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6, i, defined1, defined2); // falls through\n default:\n point(this, x, y, this._lastDefined !== false && p.defined !== false);\n break;\n }\n (this._x0 = this._x1), (this._x1 = x);\n (this._y0 = this._y1), (this._y1 = y);\n this._lastDefined = p.defined;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport function genBasisTypeSegments(path: ALinearTypeClass, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genBasisSegments(points: IPointLike[], params: IGenSegmentParams = {}): SegContext | 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 = new SegContext(\n 'basis',\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 basis = new Basis(segContext, startPoint);\n\n genBasisTypeSegments(basis, points);\n\n return segContext;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/curve/common.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,gBAAgB,CAAC,IAAsB,EAAE,MAAoB,EAAE,OAAe,CAAC;IAC7F,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9C,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;iBAAM;gBACL,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;SACF;QACD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACvB;KACF;AACH,CAAC","file":"common.js","sourcesContent":["import { IPointLike } from '@visactor/vutils';\nimport { ALinearTypeClass } from './interface';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n/**\n * 公用的绘制curve的方法\n * @param path\n * @param points\n * @param step\n */\nexport function genCurveSegments(path: ALinearTypeClass, points: IPointLike[], step: number = 1): void {\n let defined0 = false;\n for (let i = 0, n = points.length; i <= n; i++) {\n if (i >= n === defined0) {\n if ((defined0 = !defined0)) {\n path.lineStart();\n } else {\n path.lineEnd();\n }\n }\n if (defined0) {\n path.point(points[i]);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/curve/common.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,gBAAgB,CAAC,IAAsB,EAAE,MAAoB,EAAE,OAAe,CAAC;IAC7F,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9C,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;iBAAM;gBACL,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;SACF;QACD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACvB;KACF;AACH,CAAC","file":"common.js","sourcesContent":["import { IPointLike } from '@visactor/vutils';\nimport { ALinearTypeClass } from './interface';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n/**\n * 公用的绘制curve的方法\n * @param path\n * @param points\n * @param step\n */\nexport function genCurveSegments(path: ALinearTypeClass, points: IPointLike[], step: number = 1): void {\n let defined0 = false;\n for (let i = 0, n = points.length; i <= n; i++) {\n if (i >= n === defined0) {\n if ((defined0 = !defined0)) {\n path.lineStart();\n } else {\n path.lineEnd();\n }\n }\n if (defined0) {\n path.point(points[i]);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/curve/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAE5B,MAAM,UAAU,aAAa,CAC3B,MAAoB,EACpB,SAAqB,EACrB,MAAmC;IAEnC,QAAQ,SAAS,EAAE;QACjB,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,WAAW;YACd,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,YAAY;YACf,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5C,KAAK,WAAW;YACd,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5C,KAAK,cAAc;YACjB,OAAO,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD;YACE,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC5C;AACH,CAAC","file":"index.js","sourcesContent":["import { IPointLike } from '@visactor/vutils';\nimport { SegContext } from '../seg-context';\nimport { ICurveType } from '../../interface';\nimport { genLinearSegments } from './linear';\nimport { genBasisSegments } from './basis';\nimport { genMonotoneXSegments, genMonotoneYSegments } from './monotone';\nimport { genStepSegments } from './step';\nimport { genLinearClosedSegments } from './linear-closed';\n\nexport * from './linear';\nexport * from './linear-closed';\nexport * from './basis';\nexport * from './monotone';\nexport * from './step';\nexport * from './interface';\n\nexport function calcLineCache(\n points: IPointLike[],\n curveType: ICurveType,\n params?: { startPoint: IPointLike }\n): SegContext | null {\n switch (curveType) {\n case 'linear':\n return genLinearSegments(points, params);\n case 'basis':\n return genBasisSegments(points, params);\n case 'monotoneX':\n return genMonotoneXSegments(points, params);\n case 'monotoneY':\n return genMonotoneYSegments(points, params);\n case 'step':\n return genStepSegments(points, 0.5, params);\n case 'stepBefore':\n return genStepSegments(points, 0, params);\n case 'stepAfter':\n return genStepSegments(points, 1, params);\n case 'linearClosed':\n return genLinearClosedSegments(points, params);\n default:\n return genLinearSegments(points, params);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/curve/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAE5B,MAAM,UAAU,aAAa,CAC3B,MAAoB,EACpB,SAAqB,EACrB,MAAmC;IAEnC,QAAQ,SAAS,EAAE;QACjB,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,WAAW;YACd,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9C,KAAK,YAAY;YACf,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5C,KAAK,WAAW;YACd,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5C,KAAK,cAAc;YACjB,OAAO,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD;YACE,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC5C;AACH,CAAC","file":"index.js","sourcesContent":["import { IPointLike } from '@visactor/vutils';\nimport { SegContext } from '../seg-context';\nimport { ICurveType } from '../../interface';\nimport { genLinearSegments } from './linear';\nimport { genBasisSegments } from './basis';\nimport { genMonotoneXSegments, genMonotoneYSegments } from './monotone';\nimport { genStepSegments } from './step';\nimport { genLinearClosedSegments } from './linear-closed';\n\nexport * from './linear';\nexport * from './linear-closed';\nexport * from './basis';\nexport * from './monotone';\nexport * from './step';\nexport * from './interface';\n\nexport function calcLineCache(\n points: IPointLike[],\n curveType: ICurveType,\n params?: { startPoint: IPointLike }\n): SegContext | null {\n switch (curveType) {\n case 'linear':\n return genLinearSegments(points, params);\n case 'basis':\n return genBasisSegments(points, params);\n case 'monotoneX':\n return genMonotoneXSegments(points, params);\n case 'monotoneY':\n return genMonotoneYSegments(points, params);\n case 'step':\n return genStepSegments(points, 0.5, params);\n case 'stepBefore':\n return genStepSegments(points, 0, params);\n case 'stepAfter':\n return genStepSegments(points, 1, params);\n case 'linearClosed':\n return genLinearClosedSegments(points, params);\n default:\n return genLinearSegments(points, params);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/curve/interface.ts"],"names":[],"mappings":"AAwCA,MAAM,OAAgB,WAAW;CAchC;AACD,MAAM,OAAgB,gBAAiB,SAAQ,WAAW;CAGzD;AAED,MAAM,OAAgB,eAAgB,SAAQ,WAAW;CAExD","file":"interface.js","sourcesContent":["import { IPoint, IPointLike } from '@visactor/vutils';\nimport { ICurvePath, ICurveType } from '../../interface';\nimport { Direction } from '../seg-context';\n\n/**\n * 用于segment的path2d接口,参数比普通的path多,部分path的方法不支持。\n */\nexport interface ISegPath2D extends ICurvePath<IPoint> {\n direction: Direction;\n curveType: ICurveType;\n\n endX: number;\n endY: number;\n\n tryUpdateLength: (direction?: Direction) => number;\n bezierCurveTo: (\n cp1x: number,\n cp1y: number,\n cp2x: number,\n cp2y: number,\n x: number,\n y: number,\n defined: boolean\n ) => void;\n closePath: () => void;\n ellipse: (\n x: number,\n y: number,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n counterclockwise?: boolean\n ) => void;\n lineTo: (x: number, y: number, defined: boolean) => void;\n moveTo: (x: number, y: number) => void;\n quadraticCurveTo: (cpx: number, cpy: number, x: number, y: number) => void;\n}\n\nexport abstract class ACurveClass {\n context: ISegPath2D;\n abstract lineStart(): void;\n abstract lineEnd(): void;\n abstract areaStart(): void;\n abstract areaEnd(): void;\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}\nexport abstract class ALinearTypeClass extends ACurveClass {\n abstract point(point: IPointLike): void;\n abstract tryUpdateLength(): number;\n}\n\nexport abstract class ACurveTypeClass extends ACurveClass {\n abstract point(point: IPointLike): void;\n}\n\nexport interface IGenSegmentParams {\n direction?: Direction;\n startPoint?: IPointLike;\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/curve/interface.ts"],"names":[],"mappings":"AAwCA,MAAM,OAAgB,WAAW;CAchC;AACD,MAAM,OAAgB,gBAAiB,SAAQ,WAAW;CAGzD;AAED,MAAM,OAAgB,eAAgB,SAAQ,WAAW;CAExD","file":"interface.js","sourcesContent":["import { IPoint, IPointLike } from '@visactor/vutils';\nimport { ICurvePath, ICurveType } from '../../interface';\nimport { Direction } from '../seg-context';\n\n/**\n * 用于segment的path2d接口,参数比普通的path多,部分path的方法不支持。\n */\nexport interface ISegPath2D extends ICurvePath<IPoint> {\n direction: Direction;\n curveType: ICurveType;\n\n endX: number;\n endY: number;\n\n tryUpdateLength: (direction?: Direction) => number;\n bezierCurveTo: (\n cp1x: number,\n cp1y: number,\n cp2x: number,\n cp2y: number,\n x: number,\n y: number,\n defined: boolean\n ) => void;\n closePath: () => void;\n ellipse: (\n x: number,\n y: number,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n counterclockwise?: boolean\n ) => void;\n lineTo: (x: number, y: number, defined: boolean) => void;\n moveTo: (x: number, y: number) => void;\n quadraticCurveTo: (cpx: number, cpy: number, x: number, y: number) => void;\n}\n\nexport abstract class ACurveClass {\n context: ISegPath2D;\n abstract lineStart(): void;\n abstract lineEnd(): void;\n abstract areaStart(): void;\n abstract areaEnd(): void;\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}\nexport abstract class ALinearTypeClass extends ACurveClass {\n abstract point(point: IPointLike): void;\n abstract tryUpdateLength(): number;\n}\n\nexport abstract class ACurveTypeClass extends ACurveClass {\n abstract point(point: IPointLike): void;\n}\n\nexport interface IGenSegmentParams {\n direction?: Direction;\n startPoint?: IPointLike;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/curve/linear-closed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAiC,MAAM,aAAa,CAAC;AAqB9E,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IAMhD,YAAY,OAAmB,EAAE,UAAuB;QACtD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,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,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAC3B,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,CAAC;oBAC/E,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,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,CAAC,CAAC;gBAC9E,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;AAED,MAAM,UAAU,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,IAAI,UAAU,CAC/B,QAAQ,EACR,SAAS,aAAT,SAAS,cAAT,SAAS,GACP,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,CAAC,CAAC,SAAS,CAAC,GAAG;QACf,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CACxB,CAAC;IACF,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;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAsB,EAAE,MAAoB;IACtF,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC","file":"linear-closed.js","sourcesContent":["import { abs, IPointLike } from '@visactor/vutils';\nimport { Direction, SegContext } from '../seg-context';\nimport { genCurveSegments } from './common';\nimport { ALinearTypeClass, IGenSegmentParams, ISegPath2D } from './interface';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n// 基于d3-shape重构,定义绘制线段的方法\n// https://github.com/d3/d3-shape/blob/main/src/curve/linear.js\nexport class LinearClosed extends ALinearTypeClass {\n declare context: ISegPath2D;\n private _lastDefined?: boolean;\n\n protected startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super();\n this.context = context;\n startPoint && (this.startPoint = startPoint);\n }\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 this.context.closePath();\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)\n : this.context.moveTo(x, y);\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);\n break;\n }\n\n this._lastDefined = p.defined;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport function genLinearClosedSegments(points: IPointLike[], params: IGenSegmentParams = {}): SegContext | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n\n const segContext = new SegContext(\n 'linear',\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 linear = new LinearClosed(segContext, startPoint);\n\n genLinearClosedTypeSegments(linear, points);\n\n return segContext;\n}\n\nexport function genLinearClosedTypeSegments(path: ALinearTypeClass, points: IPointLike[]): void {\n return genCurveSegments(path, points, 1);\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/curve/linear-closed.ts"],"names":[],"mappings":"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","file":"linear-closed.js","sourcesContent":["import { abs, IPointLike } from '@visactor/vutils';\nimport { Direction, SegContext } from '../seg-context';\nimport { genCurveSegments } from './common';\nimport { ALinearTypeClass, IGenSegmentParams, ISegPath2D } from './interface';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n// 基于d3-shape重构,定义绘制线段的方法\n// https://github.com/d3/d3-shape/blob/main/src/curve/linear.js\nexport class LinearClosed extends ALinearTypeClass {\n declare context: ISegPath2D;\n private _lastDefined?: boolean;\n\n protected startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super();\n this.context = context;\n startPoint && (this.startPoint = startPoint);\n }\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 this.context.closePath();\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)\n : this.context.moveTo(x, y);\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);\n break;\n }\n\n this._lastDefined = p.defined;\n }\n\n tryUpdateLength(): number {\n return this.context.tryUpdateLength();\n }\n}\n\nexport function genLinearClosedSegments(points: IPointLike[], params: IGenSegmentParams = {}): SegContext | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n\n const segContext = new SegContext(\n 'linear',\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 linear = new LinearClosed(segContext, startPoint);\n\n genLinearClosedTypeSegments(linear, points);\n\n return segContext;\n}\n\nexport function genLinearClosedTypeSegments(path: ALinearTypeClass, points: IPointLike[]): void {\n return genCurveSegments(path, points, 1);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/curve/linear.ts"],"names":[],"mappings":"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","file":"linear.js","sourcesContent":["import { abs, IPointLike } from '@visactor/vutils';\nimport { Direction, SegContext } from '../seg-context';\nimport { genCurveSegments } from './common';\nimport { ALinearTypeClass, IGenSegmentParams, ISegPath2D } from './interface';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n// 基于d3-shape重构,定义绘制线段的方法\n// https://github.com/d3/d3-shape/blob/main/src/curve/linear.js\nexport class Linear extends ALinearTypeClass {\n declare context: ISegPath2D;\n private _lastDefined?: boolean;\n\n protected startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super();\n this.context = context;\n startPoint && (this.startPoint = startPoint);\n }\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)\n : this.context.moveTo(x, y);\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);\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 = {}): SegContext | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n\n const segContext = new SegContext(\n 'linear',\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 linear = new Linear(segContext, startPoint);\n\n genLinearTypeSegments(linear, points);\n\n return segContext;\n}\n\nexport function genLinearTypeSegments(path: ALinearTypeClass, points: IPointLike[]): void {\n return genCurveSegments(path, points, 1);\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/curve/linear.ts"],"names":[],"mappings":"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","file":"linear.js","sourcesContent":["import { abs, IPointLike } from '@visactor/vutils';\nimport { Direction, SegContext } from '../seg-context';\nimport { genCurveSegments } from './common';\nimport { ALinearTypeClass, IGenSegmentParams, ISegPath2D } from './interface';\n\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n// 基于d3-shape重构,定义绘制线段的方法\n// https://github.com/d3/d3-shape/blob/main/src/curve/linear.js\nexport class Linear extends ALinearTypeClass {\n declare context: ISegPath2D;\n private _lastDefined?: boolean;\n\n protected startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super();\n this.context = context;\n startPoint && (this.startPoint = startPoint);\n }\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)\n : this.context.moveTo(x, y);\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);\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 = {}): SegContext | null {\n const { direction, startPoint } = params;\n if (points.length < 2 - Number(!!startPoint)) {\n return null;\n }\n\n const segContext = new SegContext(\n 'linear',\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 linear = new Linear(segContext, startPoint);\n\n genLinearTypeSegments(linear, points);\n\n return segContext;\n}\n\nexport function genLinearTypeSegments(path: ALinearTypeClass, points: IPointLike[]): void {\n return genCurveSegments(path, points, 1);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/curve/monotone.ts"],"names":[],"mappings":"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","file":"monotone.js","sourcesContent":["import { IPointLike, abs } from '@visactor/vutils';\nimport { genLinearSegments } from './linear';\nimport { genCurveSegments } from './common';\nimport { ACurveTypeClass, IGenSegmentParams, ISegPath2D } from './interface';\nimport { Direction, ReflectSegContext, SegContext } from '../seg-context';\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) {\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(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1, defined);\n}\n\nexport class MonotoneX extends ACurveTypeClass {\n protected _lastDefined?: boolean;\n declare context: ISegPath2D;\n declare _t0: number;\n\n protected startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super();\n this.context = context;\n this.startPoint = startPoint;\n }\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(this._x1, this._y1, this._lastDefined !== false);\n break;\n case 3:\n point(this, this._t0, slope2(this, this._t0), this._lastDefined !== false);\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\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._lastDefined !== false && p.defined !== false)\n : this.context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n point(this, slope2(this, (t1 = slope3(this, x, y))), t1, this._lastDefined !== false && p.defined !== false);\n break;\n default:\n point(this, this._t0, (t1 = slope3(this, x, y)), this._lastDefined !== false && p.defined !== false);\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._lastDefined = p.defined !== false;\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 genMonotpneXTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneXSegments(points: IPointLike[], params: IGenSegmentParams = {}): SegContext | 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 = new SegContext(\n 'monotoneX',\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 monotoneX = new MonotoneX(segContext, startPoint);\n\n genMonotpneXTypeSegments(monotoneX, points);\n\n return segContext;\n}\n\nexport function genMonotpneYTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneYSegments(points: IPointLike[], params: IGenSegmentParams = {}): SegContext | 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 = new ReflectSegContext(\n 'monotoneY',\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 monotoneY = new MonotoneY(segContext, startPoint);\n\n genMonotpneYTypeSegments(monotoneY, points);\n\n return segContext;\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/curve/monotone.ts"],"names":[],"mappings":"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","file":"monotone.js","sourcesContent":["import { IPointLike, abs } from '@visactor/vutils';\nimport { genLinearSegments } from './linear';\nimport { genCurveSegments } from './common';\nimport { ACurveTypeClass, IGenSegmentParams, ISegPath2D } from './interface';\nimport { Direction, ReflectSegContext, SegContext } from '../seg-context';\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) {\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(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1, defined);\n}\n\nexport class MonotoneX extends ACurveTypeClass {\n protected _lastDefined?: boolean;\n declare context: ISegPath2D;\n declare _t0: number;\n\n protected startPoint?: IPointLike;\n\n constructor(context: ISegPath2D, startPoint?: IPointLike) {\n super();\n this.context = context;\n this.startPoint = startPoint;\n }\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(this._x1, this._y1, this._lastDefined !== false);\n break;\n case 3:\n point(this, this._t0, slope2(this, this._t0), this._lastDefined !== false);\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\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._lastDefined !== false && p.defined !== false)\n : this.context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n point(this, slope2(this, (t1 = slope3(this, x, y))), t1, this._lastDefined !== false && p.defined !== false);\n break;\n default:\n point(this, this._t0, (t1 = slope3(this, x, y)), this._lastDefined !== false && p.defined !== false);\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._lastDefined = p.defined !== false;\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 genMonotpneXTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneXSegments(points: IPointLike[], params: IGenSegmentParams = {}): SegContext | 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 = new SegContext(\n 'monotoneX',\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 monotoneX = new MonotoneX(segContext, startPoint);\n\n genMonotpneXTypeSegments(monotoneX, points);\n\n return segContext;\n}\n\nexport function genMonotpneYTypeSegments(path: MonotoneX, points: IPointLike[]): void {\n return genCurveSegments(path, points, 2);\n}\n\nexport function genMonotoneYSegments(points: IPointLike[], params: IGenSegmentParams = {}): SegContext | 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 = new ReflectSegContext(\n 'monotoneY',\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 monotoneY = new MonotoneY(segContext, startPoint);\n\n genMonotpneYTypeSegments(monotoneY, points);\n\n return segContext;\n}\n"]}