@visactor/vrender-components 0.17.1-alpha.4 → 0.17.2-alpha.0

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 (587) hide show
  1. package/cjs/axis/animate/group-fade.d.ts +2 -2
  2. package/cjs/axis/animate/group-fade.js +3 -3
  3. package/cjs/axis/animate/group-fade.js.map +1 -1
  4. package/cjs/axis/animate/group-transition.d.ts +2 -2
  5. package/cjs/axis/animate/group-transition.js +3 -3
  6. package/cjs/axis/animate/group-transition.js.map +1 -1
  7. package/cjs/axis/base.d.ts +1 -1
  8. package/cjs/axis/base.js +15 -13
  9. package/cjs/axis/base.js.map +1 -1
  10. package/cjs/axis/circle.d.ts +1 -1
  11. package/cjs/axis/circle.js +2 -4
  12. package/cjs/axis/circle.js.map +1 -1
  13. package/cjs/axis/grid/base.d.ts +1 -1
  14. package/cjs/axis/grid/base.js +7 -5
  15. package/cjs/axis/grid/base.js.map +1 -1
  16. package/cjs/axis/grid/circle.js +1 -3
  17. package/cjs/axis/grid/circle.js.map +1 -1
  18. package/cjs/axis/grid/line.js +1 -3
  19. package/cjs/axis/grid/line.js.map +1 -1
  20. package/cjs/axis/grid/type.d.ts +1 -1
  21. package/cjs/axis/grid/type.js.map +1 -1
  22. package/cjs/axis/line.d.ts +2 -1
  23. package/cjs/axis/line.js +4 -5
  24. package/cjs/axis/line.js.map +1 -1
  25. package/cjs/axis/overlap/auto-hide.d.ts +1 -1
  26. package/cjs/axis/overlap/auto-hide.js.map +1 -1
  27. package/cjs/axis/overlap/auto-limit.d.ts +1 -1
  28. package/cjs/axis/overlap/auto-limit.js.map +1 -1
  29. package/cjs/axis/overlap/auto-rotate.d.ts +1 -1
  30. package/cjs/axis/overlap/auto-rotate.js.map +1 -1
  31. package/cjs/axis/overlap/util.d.ts +1 -1
  32. package/cjs/axis/overlap/util.js.map +1 -1
  33. package/cjs/axis/type.d.ts +1 -1
  34. package/cjs/axis/type.js.map +1 -1
  35. package/cjs/axis/util.d.ts +1 -1
  36. package/cjs/axis/util.js +4 -3
  37. package/cjs/axis/util.js.map +1 -1
  38. package/cjs/brush/brush.d.ts +3 -12
  39. package/cjs/brush/brush.js +32 -32
  40. package/cjs/brush/brush.js.map +1 -1
  41. package/cjs/brush/type.d.ts +1 -1
  42. package/cjs/brush/type.js.map +1 -1
  43. package/cjs/checkbox/checkbox.d.ts +1 -1
  44. package/cjs/checkbox/checkbox.js +9 -15
  45. package/cjs/checkbox/checkbox.js.map +1 -1
  46. package/cjs/checkbox/index.js +1 -2
  47. package/cjs/checkbox/type.d.ts +1 -1
  48. package/cjs/checkbox/type.js.map +1 -1
  49. package/cjs/core/base.d.ts +4 -2
  50. package/cjs/core/base.js +8 -2
  51. package/cjs/core/base.js.map +1 -1
  52. package/cjs/core/type.d.ts +1 -1
  53. package/cjs/core/type.js.map +1 -1
  54. package/cjs/crosshair/base.d.ts +1 -1
  55. package/cjs/crosshair/base.js.map +1 -1
  56. package/cjs/crosshair/circle.d.ts +2 -2
  57. package/cjs/crosshair/circle.js +1 -3
  58. package/cjs/crosshair/circle.js.map +1 -1
  59. package/cjs/crosshair/line.d.ts +2 -2
  60. package/cjs/crosshair/line.js +1 -3
  61. package/cjs/crosshair/line.js.map +1 -1
  62. package/cjs/crosshair/polygon.d.ts +2 -2
  63. package/cjs/crosshair/polygon.js +3 -4
  64. package/cjs/crosshair/polygon.js.map +1 -1
  65. package/cjs/crosshair/rect.d.ts +2 -2
  66. package/cjs/crosshair/rect.js +1 -3
  67. package/cjs/crosshair/rect.js.map +1 -1
  68. package/cjs/crosshair/sector.d.ts +2 -2
  69. package/cjs/crosshair/sector.js +1 -3
  70. package/cjs/crosshair/sector.js.map +1 -1
  71. package/cjs/crosshair/type.d.ts +1 -1
  72. package/cjs/crosshair/type.js.map +1 -1
  73. package/cjs/data-zoom/data-zoom.d.ts +1 -4
  74. package/cjs/data-zoom/data-zoom.js +23 -32
  75. package/cjs/data-zoom/data-zoom.js.map +1 -1
  76. package/cjs/data-zoom/type.d.ts +1 -1
  77. package/cjs/data-zoom/type.js.map +1 -1
  78. package/cjs/index.d.ts +1 -1
  79. package/cjs/index.js +1 -1
  80. package/cjs/index.js.map +1 -1
  81. package/cjs/indicator/config.js +1 -2
  82. package/cjs/indicator/indicator.js +1 -3
  83. package/cjs/indicator/indicator.js.map +1 -1
  84. package/cjs/indicator/type.d.ts +1 -1
  85. package/cjs/indicator/type.js.map +1 -1
  86. package/cjs/interface.d.ts +1 -1
  87. package/cjs/interface.js.map +1 -1
  88. package/cjs/jsx/component-type.d.ts +1 -1
  89. package/cjs/jsx/component-type.js.map +1 -1
  90. package/cjs/label/animate/animate.d.ts +1 -1
  91. package/cjs/label/animate/animate.js +2 -2
  92. package/cjs/label/animate/animate.js.map +1 -1
  93. package/cjs/label/arc.d.ts +2 -1
  94. package/cjs/label/arc.js +3 -2
  95. package/cjs/label/arc.js.map +1 -1
  96. package/cjs/label/area.d.ts +1 -1
  97. package/cjs/label/area.js.map +1 -1
  98. package/cjs/label/base.d.ts +2 -2
  99. package/cjs/label/base.js +8 -10
  100. package/cjs/label/base.js.map +1 -1
  101. package/cjs/label/dataLabel.js.map +1 -1
  102. package/cjs/label/index.js +2 -1
  103. package/cjs/label/line.d.ts +1 -1
  104. package/cjs/label/line.js.map +1 -1
  105. package/cjs/label/overlap/place.d.ts +1 -1
  106. package/cjs/label/overlap/place.js.map +1 -1
  107. package/cjs/label/type.d.ts +1 -1
  108. package/cjs/label/type.js +1 -2
  109. package/cjs/label/type.js.map +1 -1
  110. package/cjs/label/util.d.ts +1 -1
  111. package/cjs/label/util.js +1 -1
  112. package/cjs/label/util.js.map +1 -1
  113. package/cjs/legend/base.d.ts +1 -1
  114. package/cjs/legend/base.js +3 -3
  115. package/cjs/legend/base.js.map +1 -1
  116. package/cjs/legend/color/color.js +1 -3
  117. package/cjs/legend/color/color.js.map +1 -1
  118. package/cjs/legend/constant.js +1 -1
  119. package/cjs/legend/discrete/discrete.d.ts +1 -1
  120. package/cjs/legend/discrete/discrete.js +22 -24
  121. package/cjs/legend/discrete/discrete.js.map +1 -1
  122. package/cjs/legend/discrete/type.d.ts +1 -1
  123. package/cjs/legend/discrete/type.js.map +1 -1
  124. package/cjs/legend/index.js +1 -1
  125. package/cjs/legend/size/size.js +4 -5
  126. package/cjs/legend/size/size.js.map +1 -1
  127. package/cjs/legend/size/type.d.ts +1 -1
  128. package/cjs/legend/size/type.js.map +1 -1
  129. package/cjs/legend/type.d.ts +1 -1
  130. package/cjs/legend/type.js +1 -1
  131. package/cjs/legend/type.js.map +1 -1
  132. package/cjs/legend/util.js +1 -1
  133. package/cjs/link-path/index.js +1 -1
  134. package/cjs/link-path/link-path.js +2 -2
  135. package/cjs/link-path/link-path.js.map +1 -1
  136. package/cjs/link-path/type.d.ts +1 -1
  137. package/cjs/link-path/type.js.map +1 -1
  138. package/cjs/marker/area.d.ts +1 -1
  139. package/cjs/marker/area.js +3 -4
  140. package/cjs/marker/area.js.map +1 -1
  141. package/cjs/marker/base.d.ts +1 -1
  142. package/cjs/marker/base.js +4 -4
  143. package/cjs/marker/base.js.map +1 -1
  144. package/cjs/marker/config.d.ts +1 -1
  145. package/cjs/marker/config.js.map +1 -1
  146. package/cjs/marker/line.d.ts +1 -1
  147. package/cjs/marker/line.js +1 -3
  148. package/cjs/marker/line.js.map +1 -1
  149. package/cjs/marker/point.d.ts +1 -1
  150. package/cjs/marker/point.js +5 -5
  151. package/cjs/marker/point.js.map +1 -1
  152. package/cjs/marker/type.d.ts +1 -1
  153. package/cjs/marker/type.js.map +1 -1
  154. package/cjs/pager/pager.d.ts +1 -1
  155. package/cjs/pager/pager.js +10 -16
  156. package/cjs/pager/pager.js.map +1 -1
  157. package/cjs/pager/type.d.ts +1 -1
  158. package/cjs/pager/type.js.map +1 -1
  159. package/cjs/player/base-player.js +2 -5
  160. package/cjs/player/base-player.js.map +1 -1
  161. package/cjs/player/continuous-player.js +6 -8
  162. package/cjs/player/continuous-player.js.map +1 -1
  163. package/cjs/player/controller/controller.d.ts +1 -2
  164. package/cjs/player/controller/controller.js +5 -16
  165. package/cjs/player/controller/controller.js.map +1 -1
  166. package/cjs/player/controller/icon/icon.d.ts +2 -2
  167. package/cjs/player/controller/icon/icon.js +2 -2
  168. package/cjs/player/controller/icon/icon.js.map +1 -1
  169. package/cjs/player/controller/type.d.ts +1 -1
  170. package/cjs/player/controller/type.js.map +1 -1
  171. package/cjs/player/discrete-player.js +5 -7
  172. package/cjs/player/discrete-player.js.map +1 -1
  173. package/cjs/player/type/base.d.ts +1 -1
  174. package/cjs/player/type/base.js.map +1 -1
  175. package/cjs/player/type/layout.d.ts +1 -1
  176. package/cjs/player/type/layout.js.map +1 -1
  177. package/cjs/poptip/contribution.d.ts +1 -1
  178. package/cjs/poptip/contribution.js +2 -2
  179. package/cjs/poptip/contribution.js.map +1 -1
  180. package/cjs/poptip/index.d.ts +1 -1
  181. package/cjs/poptip/index.js +2 -16
  182. package/cjs/poptip/index.js.map +1 -1
  183. package/cjs/poptip/poptip-plugin.d.ts +1 -1
  184. package/cjs/poptip/poptip-plugin.js +5 -5
  185. package/cjs/poptip/poptip-plugin.js.map +1 -1
  186. package/cjs/poptip/poptip.js +1 -3
  187. package/cjs/poptip/poptip.js.map +1 -1
  188. package/cjs/poptip/register.d.ts +1 -2
  189. package/cjs/poptip/register.js +9 -14
  190. package/cjs/poptip/register.js.map +1 -1
  191. package/cjs/poptip/type.d.ts +1 -1
  192. package/cjs/poptip/type.js.map +1 -1
  193. package/cjs/scrollbar/index.d.ts +1 -0
  194. package/cjs/scrollbar/index.js +2 -1
  195. package/cjs/scrollbar/index.js.map +1 -1
  196. package/cjs/scrollbar/register.d.ts +1 -2
  197. package/cjs/scrollbar/register.js +6 -10
  198. package/cjs/scrollbar/register.js.map +1 -1
  199. package/cjs/scrollbar/scrollbar-plugin.d.ts +1 -1
  200. package/cjs/scrollbar/scrollbar-plugin.js +3 -3
  201. package/cjs/scrollbar/scrollbar-plugin.js.map +1 -1
  202. package/cjs/scrollbar/scrollbar.d.ts +0 -1
  203. package/cjs/scrollbar/scrollbar.js +7 -15
  204. package/cjs/scrollbar/scrollbar.js.map +1 -1
  205. package/cjs/scrollbar/type.d.ts +1 -1
  206. package/cjs/scrollbar/type.js.map +1 -1
  207. package/cjs/segment/segment.d.ts +1 -1
  208. package/cjs/segment/segment.js +4 -6
  209. package/cjs/segment/segment.js.map +1 -1
  210. package/cjs/segment/type.d.ts +1 -1
  211. package/cjs/segment/type.js.map +1 -1
  212. package/cjs/slider/slider.d.ts +3 -3
  213. package/cjs/slider/slider.js +22 -25
  214. package/cjs/slider/slider.js.map +1 -1
  215. package/cjs/slider/type.d.ts +1 -1
  216. package/cjs/slider/type.js.map +1 -1
  217. package/cjs/tag/tag.js +1 -3
  218. package/cjs/tag/tag.js.map +1 -1
  219. package/cjs/tag/type.d.ts +1 -1
  220. package/cjs/tag/type.js.map +1 -1
  221. package/cjs/title/title.js +1 -3
  222. package/cjs/title/title.js.map +1 -1
  223. package/cjs/title/type.d.ts +1 -1
  224. package/cjs/title/type.js.map +1 -1
  225. package/cjs/tooltip/tooltip.js +4 -6
  226. package/cjs/tooltip/tooltip.js.map +1 -1
  227. package/cjs/tooltip/type.d.ts +1 -1
  228. package/cjs/tooltip/type.js.map +1 -1
  229. package/cjs/tooltip/util.d.ts +1 -1
  230. package/cjs/tooltip/util.js.map +1 -1
  231. package/cjs/util/align.d.ts +1 -1
  232. package/cjs/util/align.js.map +1 -1
  233. package/cjs/util/common.d.ts +1 -1
  234. package/cjs/util/common.js.map +1 -1
  235. package/cjs/util/label-smartInvert.d.ts +1 -1
  236. package/cjs/util/label-smartInvert.js.map +1 -1
  237. package/cjs/util/limit-shape.d.ts +1 -1
  238. package/cjs/util/limit-shape.js.map +1 -1
  239. package/cjs/util/text.d.ts +3 -3
  240. package/cjs/util/text.js +3 -3
  241. package/cjs/util/text.js.map +1 -1
  242. package/dist/index.js +3378 -2544
  243. package/dist/index.min.js +1 -1
  244. package/es/axis/animate/group-fade.d.ts +2 -2
  245. package/es/axis/animate/group-fade.js +1 -1
  246. package/es/axis/animate/group-fade.js.map +1 -1
  247. package/es/axis/animate/group-transition.d.ts +2 -2
  248. package/es/axis/animate/group-transition.js +1 -1
  249. package/es/axis/animate/group-transition.js.map +1 -1
  250. package/es/axis/base.d.ts +1 -1
  251. package/es/axis/base.js +11 -11
  252. package/es/axis/base.js.map +1 -1
  253. package/es/axis/circle.d.ts +1 -1
  254. package/es/axis/circle.js +2 -6
  255. package/es/axis/circle.js.map +1 -1
  256. package/es/axis/grid/base.d.ts +1 -1
  257. package/es/axis/grid/base.js +5 -5
  258. package/es/axis/grid/base.js.map +1 -1
  259. package/es/axis/grid/circle.js +0 -4
  260. package/es/axis/grid/circle.js.map +1 -1
  261. package/es/axis/grid/line.js +0 -4
  262. package/es/axis/grid/line.js.map +1 -1
  263. package/es/axis/grid/type.d.ts +1 -1
  264. package/es/axis/grid/type.js.map +1 -1
  265. package/es/axis/line.d.ts +2 -1
  266. package/es/axis/line.js +3 -7
  267. package/es/axis/line.js.map +1 -1
  268. package/es/axis/overlap/auto-hide.d.ts +1 -1
  269. package/es/axis/overlap/auto-hide.js.map +1 -1
  270. package/es/axis/overlap/auto-limit.d.ts +1 -1
  271. package/es/axis/overlap/auto-limit.js.map +1 -1
  272. package/es/axis/overlap/auto-rotate.d.ts +1 -1
  273. package/es/axis/overlap/auto-rotate.js.map +1 -1
  274. package/es/axis/overlap/util.d.ts +1 -1
  275. package/es/axis/overlap/util.js.map +1 -1
  276. package/es/axis/type.d.ts +1 -1
  277. package/es/axis/type.js.map +1 -1
  278. package/es/axis/util.d.ts +1 -1
  279. package/es/axis/util.js +3 -2
  280. package/es/axis/util.js.map +1 -1
  281. package/es/brush/brush.d.ts +3 -12
  282. package/es/brush/brush.js +32 -35
  283. package/es/brush/brush.js.map +1 -1
  284. package/es/brush/type.d.ts +1 -1
  285. package/es/brush/type.js.map +1 -1
  286. package/es/checkbox/checkbox.d.ts +1 -1
  287. package/es/checkbox/checkbox.js +5 -13
  288. package/es/checkbox/checkbox.js.map +1 -1
  289. package/es/checkbox/index.js +1 -2
  290. package/es/checkbox/type.d.ts +1 -1
  291. package/es/checkbox/type.js.map +1 -1
  292. package/es/core/base.d.ts +4 -2
  293. package/es/core/base.js +7 -1
  294. package/es/core/base.js.map +1 -1
  295. package/es/core/type.d.ts +1 -1
  296. package/es/core/type.js.map +1 -1
  297. package/es/crosshair/base.d.ts +1 -1
  298. package/es/crosshair/base.js.map +1 -1
  299. package/es/crosshair/circle.d.ts +2 -2
  300. package/es/crosshair/circle.js +0 -4
  301. package/es/crosshair/circle.js.map +1 -1
  302. package/es/crosshair/line.d.ts +2 -2
  303. package/es/crosshair/line.js +0 -4
  304. package/es/crosshair/line.js.map +1 -1
  305. package/es/crosshair/polygon.d.ts +2 -2
  306. package/es/crosshair/polygon.js +2 -5
  307. package/es/crosshair/polygon.js.map +1 -1
  308. package/es/crosshair/rect.d.ts +2 -2
  309. package/es/crosshair/rect.js +0 -4
  310. package/es/crosshair/rect.js.map +1 -1
  311. package/es/crosshair/sector.d.ts +2 -2
  312. package/es/crosshair/sector.js +0 -4
  313. package/es/crosshair/sector.js.map +1 -1
  314. package/es/crosshair/type.d.ts +1 -1
  315. package/es/crosshair/type.js.map +1 -1
  316. package/es/data-zoom/data-zoom.d.ts +1 -4
  317. package/es/data-zoom/data-zoom.js +21 -31
  318. package/es/data-zoom/data-zoom.js.map +1 -1
  319. package/es/data-zoom/type.d.ts +1 -1
  320. package/es/data-zoom/type.js.map +1 -1
  321. package/es/index.d.ts +1 -1
  322. package/es/index.js +1 -1
  323. package/es/index.js.map +1 -1
  324. package/es/indicator/config.js +1 -2
  325. package/es/indicator/indicator.js +0 -4
  326. package/es/indicator/indicator.js.map +1 -1
  327. package/es/indicator/type.d.ts +1 -1
  328. package/es/indicator/type.js.map +1 -1
  329. package/es/interface.d.ts +1 -1
  330. package/es/interface.js.map +1 -1
  331. package/es/jsx/component-type.d.ts +1 -1
  332. package/es/jsx/component-type.js.map +1 -1
  333. package/es/label/animate/animate.d.ts +1 -1
  334. package/es/label/animate/animate.js +1 -1
  335. package/es/label/animate/animate.js.map +1 -1
  336. package/es/label/arc.d.ts +2 -1
  337. package/es/label/arc.js +2 -2
  338. package/es/label/arc.js.map +1 -1
  339. package/es/label/area.d.ts +1 -1
  340. package/es/label/area.js.map +1 -1
  341. package/es/label/base.d.ts +2 -2
  342. package/es/label/base.js +4 -8
  343. package/es/label/base.js.map +1 -1
  344. package/es/label/dataLabel.js.map +1 -1
  345. package/es/label/index.js +2 -1
  346. package/es/label/line.d.ts +1 -1
  347. package/es/label/line.js.map +1 -1
  348. package/es/label/overlap/place.d.ts +1 -1
  349. package/es/label/overlap/place.js.map +1 -1
  350. package/es/label/type.d.ts +1 -1
  351. package/es/label/type.js +1 -2
  352. package/es/label/type.js.map +1 -1
  353. package/es/label/util.d.ts +1 -1
  354. package/es/label/util.js +1 -1
  355. package/es/label/util.js.map +1 -1
  356. package/es/legend/base.d.ts +1 -1
  357. package/es/legend/base.js +3 -3
  358. package/es/legend/base.js.map +1 -1
  359. package/es/legend/color/color.js +0 -4
  360. package/es/legend/color/color.js.map +1 -1
  361. package/es/legend/constant.js +1 -1
  362. package/es/legend/discrete/discrete.d.ts +1 -1
  363. package/es/legend/discrete/discrete.js +20 -26
  364. package/es/legend/discrete/discrete.js.map +1 -1
  365. package/es/legend/discrete/type.d.ts +1 -1
  366. package/es/legend/discrete/type.js.map +1 -1
  367. package/es/legend/index.js +1 -1
  368. package/es/legend/size/size.js +3 -7
  369. package/es/legend/size/size.js.map +1 -1
  370. package/es/legend/size/type.d.ts +1 -1
  371. package/es/legend/size/type.js.map +1 -1
  372. package/es/legend/type.d.ts +1 -1
  373. package/es/legend/type.js +1 -1
  374. package/es/legend/type.js.map +1 -1
  375. package/es/legend/util.js +1 -1
  376. package/es/link-path/index.js +1 -1
  377. package/es/link-path/link-path.js +0 -4
  378. package/es/link-path/link-path.js.map +1 -1
  379. package/es/link-path/type.d.ts +1 -1
  380. package/es/link-path/type.js.map +1 -1
  381. package/es/marker/area.d.ts +1 -1
  382. package/es/marker/area.js +2 -6
  383. package/es/marker/area.js.map +1 -1
  384. package/es/marker/base.d.ts +1 -1
  385. package/es/marker/base.js +4 -4
  386. package/es/marker/base.js.map +1 -1
  387. package/es/marker/config.d.ts +1 -1
  388. package/es/marker/config.js.map +1 -1
  389. package/es/marker/line.d.ts +1 -1
  390. package/es/marker/line.js +0 -4
  391. package/es/marker/line.js.map +1 -1
  392. package/es/marker/point.d.ts +1 -1
  393. package/es/marker/point.js +3 -7
  394. package/es/marker/point.js.map +1 -1
  395. package/es/marker/type.d.ts +1 -1
  396. package/es/marker/type.js.map +1 -1
  397. package/es/pager/pager.d.ts +1 -1
  398. package/es/pager/pager.js +9 -18
  399. package/es/pager/pager.js.map +1 -1
  400. package/es/pager/type.d.ts +1 -1
  401. package/es/pager/type.js.map +1 -1
  402. package/es/player/base-player.js +1 -6
  403. package/es/player/base-player.js.map +1 -1
  404. package/es/player/continuous-player.js +1 -5
  405. package/es/player/continuous-player.js.map +1 -1
  406. package/es/player/controller/controller.d.ts +1 -2
  407. package/es/player/controller/controller.js +5 -18
  408. package/es/player/controller/controller.js.map +1 -1
  409. package/es/player/controller/icon/icon.d.ts +2 -2
  410. package/es/player/controller/icon/icon.js +1 -1
  411. package/es/player/controller/icon/icon.js.map +1 -1
  412. package/es/player/controller/type.d.ts +1 -1
  413. package/es/player/controller/type.js.map +1 -1
  414. package/es/player/discrete-player.js +1 -5
  415. package/es/player/discrete-player.js.map +1 -1
  416. package/es/player/type/base.d.ts +1 -1
  417. package/es/player/type/base.js.map +1 -1
  418. package/es/player/type/layout.d.ts +1 -1
  419. package/es/player/type/layout.js.map +1 -1
  420. package/es/poptip/contribution.d.ts +1 -1
  421. package/es/poptip/contribution.js +1 -1
  422. package/es/poptip/contribution.js.map +1 -1
  423. package/es/poptip/index.d.ts +1 -1
  424. package/es/poptip/index.js +1 -1
  425. package/es/poptip/index.js.map +1 -1
  426. package/es/poptip/poptip-plugin.d.ts +1 -1
  427. package/es/poptip/poptip-plugin.js +1 -1
  428. package/es/poptip/poptip-plugin.js.map +1 -1
  429. package/es/poptip/poptip.js +0 -4
  430. package/es/poptip/poptip.js.map +1 -1
  431. package/es/poptip/register.d.ts +1 -2
  432. package/es/poptip/register.js +1 -7
  433. package/es/poptip/register.js.map +1 -1
  434. package/es/poptip/type.d.ts +1 -1
  435. package/es/poptip/type.js.map +1 -1
  436. package/es/scrollbar/index.d.ts +1 -0
  437. package/es/scrollbar/index.js +2 -0
  438. package/es/scrollbar/index.js.map +1 -1
  439. package/es/scrollbar/register.d.ts +1 -2
  440. package/es/scrollbar/register.js +1 -7
  441. package/es/scrollbar/register.js.map +1 -1
  442. package/es/scrollbar/scrollbar-plugin.d.ts +1 -1
  443. package/es/scrollbar/scrollbar-plugin.js +1 -1
  444. package/es/scrollbar/scrollbar-plugin.js.map +1 -1
  445. package/es/scrollbar/scrollbar.d.ts +0 -1
  446. package/es/scrollbar/scrollbar.js +3 -13
  447. package/es/scrollbar/scrollbar.js.map +1 -1
  448. package/es/scrollbar/type.d.ts +1 -1
  449. package/es/scrollbar/type.js.map +1 -1
  450. package/es/segment/segment.d.ts +1 -1
  451. package/es/segment/segment.js +4 -8
  452. package/es/segment/segment.js.map +1 -1
  453. package/es/segment/type.d.ts +1 -1
  454. package/es/segment/type.js.map +1 -1
  455. package/es/slider/slider.d.ts +3 -3
  456. package/es/slider/slider.js +13 -19
  457. package/es/slider/slider.js.map +1 -1
  458. package/es/slider/type.d.ts +1 -1
  459. package/es/slider/type.js.map +1 -1
  460. package/es/tag/tag.js +0 -4
  461. package/es/tag/tag.js.map +1 -1
  462. package/es/tag/type.d.ts +1 -1
  463. package/es/tag/type.js.map +1 -1
  464. package/es/title/title.js +0 -4
  465. package/es/title/title.js.map +1 -1
  466. package/es/title/type.d.ts +1 -1
  467. package/es/title/type.js.map +1 -1
  468. package/es/tooltip/tooltip.js +1 -5
  469. package/es/tooltip/tooltip.js.map +1 -1
  470. package/es/tooltip/type.d.ts +1 -1
  471. package/es/tooltip/type.js.map +1 -1
  472. package/es/tooltip/util.d.ts +1 -1
  473. package/es/tooltip/util.js.map +1 -1
  474. package/es/util/align.d.ts +1 -1
  475. package/es/util/align.js.map +1 -1
  476. package/es/util/common.d.ts +1 -1
  477. package/es/util/common.js.map +1 -1
  478. package/es/util/label-smartInvert.d.ts +1 -1
  479. package/es/util/label-smartInvert.js.map +1 -1
  480. package/es/util/limit-shape.d.ts +1 -1
  481. package/es/util/limit-shape.js.map +1 -1
  482. package/es/util/text.d.ts +3 -3
  483. package/es/util/text.js +1 -1
  484. package/es/util/text.js.map +1 -1
  485. package/package.json +4 -4
  486. package/cjs/axis/register.d.ts +0 -4
  487. package/cjs/axis/register.js +0 -32
  488. package/cjs/axis/register.js.map +0 -1
  489. package/cjs/brush/register.d.ts +0 -1
  490. package/cjs/brush/register.js +0 -14
  491. package/cjs/brush/register.js.map +0 -1
  492. package/cjs/checkbox/register.d.ts +0 -1
  493. package/cjs/checkbox/register.js +0 -15
  494. package/cjs/checkbox/register.js.map +0 -1
  495. package/cjs/crosshair/register.d.ts +0 -5
  496. package/cjs/crosshair/register.js +0 -32
  497. package/cjs/crosshair/register.js.map +0 -1
  498. package/cjs/data-zoom/register.d.ts +0 -1
  499. package/cjs/data-zoom/register.js +0 -15
  500. package/cjs/data-zoom/register.js.map +0 -1
  501. package/cjs/indicator/register.d.ts +0 -1
  502. package/cjs/indicator/register.js +0 -14
  503. package/cjs/indicator/register.js.map +0 -1
  504. package/cjs/label/register.d.ts +0 -1
  505. package/cjs/label/register.js +0 -15
  506. package/cjs/label/register.js.map +0 -1
  507. package/cjs/legend/register.d.ts +0 -3
  508. package/cjs/legend/register.js +0 -27
  509. package/cjs/legend/register.js.map +0 -1
  510. package/cjs/link-path/register.d.ts +0 -1
  511. package/cjs/link-path/register.js +0 -14
  512. package/cjs/link-path/register.js.map +0 -1
  513. package/cjs/marker/register.d.ts +0 -3
  514. package/cjs/marker/register.js +0 -28
  515. package/cjs/marker/register.js.map +0 -1
  516. package/cjs/pager/register.d.ts +0 -1
  517. package/cjs/pager/register.js +0 -14
  518. package/cjs/pager/register.js.map +0 -1
  519. package/cjs/player/register.d.ts +0 -2
  520. package/cjs/player/register.js +0 -22
  521. package/cjs/player/register.js.map +0 -1
  522. package/cjs/segment/register.d.ts +0 -1
  523. package/cjs/segment/register.js +0 -15
  524. package/cjs/segment/register.js.map +0 -1
  525. package/cjs/slider/register.d.ts +0 -1
  526. package/cjs/slider/register.js +0 -15
  527. package/cjs/slider/register.js.map +0 -1
  528. package/cjs/tag/register.d.ts +0 -1
  529. package/cjs/tag/register.js +0 -15
  530. package/cjs/tag/register.js.map +0 -1
  531. package/cjs/title/register.d.ts +0 -1
  532. package/cjs/title/register.js +0 -14
  533. package/cjs/title/register.js.map +0 -1
  534. package/cjs/tooltip/register.d.ts +0 -1
  535. package/cjs/tooltip/register.js +0 -15
  536. package/cjs/tooltip/register.js.map +0 -1
  537. package/es/axis/register.d.ts +0 -4
  538. package/es/axis/register.js +0 -22
  539. package/es/axis/register.js.map +0 -1
  540. package/es/brush/register.d.ts +0 -1
  541. package/es/brush/register.js +0 -6
  542. package/es/brush/register.js.map +0 -1
  543. package/es/checkbox/register.d.ts +0 -1
  544. package/es/checkbox/register.js +0 -6
  545. package/es/checkbox/register.js.map +0 -1
  546. package/es/crosshair/register.d.ts +0 -5
  547. package/es/crosshair/register.js +0 -22
  548. package/es/crosshair/register.js.map +0 -1
  549. package/es/data-zoom/register.d.ts +0 -1
  550. package/es/data-zoom/register.js +0 -8
  551. package/es/data-zoom/register.js.map +0 -1
  552. package/es/indicator/register.d.ts +0 -1
  553. package/es/indicator/register.js +0 -6
  554. package/es/indicator/register.js.map +0 -1
  555. package/es/label/register.d.ts +0 -1
  556. package/es/label/register.js +0 -6
  557. package/es/label/register.js.map +0 -1
  558. package/es/legend/register.d.ts +0 -3
  559. package/es/legend/register.js +0 -24
  560. package/es/legend/register.js.map +0 -1
  561. package/es/link-path/register.d.ts +0 -1
  562. package/es/link-path/register.js +0 -6
  563. package/es/link-path/register.js.map +0 -1
  564. package/es/marker/register.d.ts +0 -3
  565. package/es/marker/register.js +0 -22
  566. package/es/marker/register.js.map +0 -1
  567. package/es/pager/register.d.ts +0 -1
  568. package/es/pager/register.js +0 -6
  569. package/es/pager/register.js.map +0 -1
  570. package/es/player/register.d.ts +0 -2
  571. package/es/player/register.js +0 -16
  572. package/es/player/register.js.map +0 -1
  573. package/es/segment/register.d.ts +0 -1
  574. package/es/segment/register.js +0 -6
  575. package/es/segment/register.js.map +0 -1
  576. package/es/slider/register.d.ts +0 -1
  577. package/es/slider/register.js +0 -6
  578. package/es/slider/register.js.map +0 -1
  579. package/es/tag/register.d.ts +0 -1
  580. package/es/tag/register.js +0 -6
  581. package/es/tag/register.js.map +0 -1
  582. package/es/title/register.d.ts +0 -1
  583. package/es/title/register.js +0 -6
  584. package/es/title/register.js.map +0 -1
  585. package/es/tooltip/register.d.ts +0 -1
  586. package/es/tooltip/register.js +0 -6
  587. package/es/tooltip/register.js.map +0 -1
@@ -4,13 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.ScrollBar = void 0;
6
6
 
7
- const core_1 = require("@visactor/vrender/es/core"), vutils_1 = require("@visactor/vutils"), base_1 = require("../core/base"), register_1 = require("./register"), delayMap = {
7
+ const vrender_core_1 = require("@visactor/vrender-core"), vutils_1 = require("@visactor/vutils"), base_1 = require("../core/base"), delayMap = {
8
8
  debounce: vutils_1.debounce,
9
9
  throttle: vutils_1.throttle
10
10
  };
11
11
 
12
- (0, register_1.loadScrollbarComponent)();
13
-
14
12
  class ScrollBar extends base_1.AbstractComponent {
15
13
  constructor(attributes, options) {
16
14
  super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, ScrollBar.defaultAttributes, attributes)),
@@ -30,9 +28,9 @@ class ScrollBar extends base_1.AbstractComponent {
30
28
  }, this._onSliderPointerDown = e => {
31
29
  e.stopPropagation();
32
30
  const {direction: direction} = this.attribute;
33
- this._prePos = "horizontal" === direction ? e.clientX : e.clientY, "browser" === core_1.vglobal.env ? (core_1.vglobal.addEventListener("pointermove", this._onSliderPointerMove, {
31
+ this._prePos = "horizontal" === direction ? e.clientX : e.clientY, "browser" === vrender_core_1.vglobal.env ? (vrender_core_1.vglobal.addEventListener("pointermove", this._onSliderPointerMove, {
34
32
  capture: !0
35
- }), core_1.vglobal.addEventListener("pointerup", this._onSliderPointerUp)) : (this.stage.addEventListener("pointermove", this._onSliderPointerMove, {
33
+ }), vrender_core_1.vglobal.addEventListener("pointerup", this._onSliderPointerUp)) : (this.stage.addEventListener("pointermove", this._onSliderPointerMove, {
36
34
  capture: !0
37
35
  }), this.stage.addEventListener("pointerup", this._onSliderPointerUp), this.stage.addEventListener("pointerupoutside", this._onSliderPointerUp));
38
36
  }, this._computeScrollValue = e => {
@@ -50,12 +48,12 @@ class ScrollBar extends base_1.AbstractComponent {
50
48
  }), this.attribute.delayTime), this._onSliderPointerUp = e => {
51
49
  e.preventDefault();
52
50
  const {realTime: realTime = !0, range: preRange, limitRange: limitRange = [ 0, 1 ]} = this.attribute, preScrollRange = this.getScrollRange(), [currentPos, currentScrollValue] = this._computeScrollValue(e), range = [ preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue ];
53
- realTime || this._onChange({
51
+ realTime || this._dispatchEvent("scroll", {
54
52
  pre: preRange,
55
53
  value: (0, vutils_1.clampRange)(range, limitRange[0], limitRange[1])
56
- }), "browser" === core_1.vglobal.env ? (core_1.vglobal.removeEventListener("pointermove", this._onSliderPointerMove, {
54
+ }), "browser" === vrender_core_1.vglobal.env ? (vrender_core_1.vglobal.removeEventListener("pointermove", this._onSliderPointerMove, {
57
55
  capture: !0
58
- }), core_1.vglobal.removeEventListener("pointerup", this._onSliderPointerUp)) : (this.stage.removeEventListener("pointermove", this._onSliderPointerMove, {
56
+ }), vrender_core_1.vglobal.removeEventListener("pointerup", this._onSliderPointerUp)) : (this.stage.removeEventListener("pointermove", this._onSliderPointerMove, {
59
57
  capture: !0
60
58
  }), this.stage.removeEventListener("pointerup", this._onSliderPointerUp), this.stage.removeEventListener("pointerupoutside", this._onSliderPointerUp));
61
59
  };
@@ -69,7 +67,7 @@ class ScrollBar extends base_1.AbstractComponent {
69
67
  this._slider && ("horizontal" === direction ? this._slider.setAttribute("x", sliderPos[0], !0) : this._slider.setAttribute("y", sliderPos[0], !0),
70
68
  (null === (_a = this.stage) || void 0 === _a ? void 0 : _a.autoRender) || null === (_b = this.stage) || void 0 === _b || _b.renderNextFrame());
71
69
  }
72
- this.attribute.range = currScrollRange, realTime && this._onChange({
70
+ this.attribute.range = currScrollRange, realTime && this._dispatchEvent("scroll", {
73
71
  pre: preRange,
74
72
  value: currScrollRange
75
73
  });
@@ -151,12 +149,6 @@ class ScrollBar extends base_1.AbstractComponent {
151
149
  return "horizontal" === direction ? (0, vutils_1.clampRange)([ x1 + min * width, x1 + max * width ], x1, width - sliderSize) : (0,
152
150
  vutils_1.clampRange)([ y1 + min * height, y1 + max * height ], y1, height - sliderSize);
153
151
  }
154
- _onChange(detail) {
155
- var _a;
156
- const changeEvent = new core_1.CustomEvent("scroll", detail);
157
- changeEvent.manager = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventSystem.manager,
158
- this.dispatchEvent(changeEvent);
159
- }
160
152
  _reset() {
161
153
  this._sliderRenderBounds = null, this._sliderLimitRange = null;
162
154
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scrollbar/scrollbar.ts"],"names":[],"mappings":"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","file":"scrollbar.js","sourcesContent":["/**\n * @description 滚动条组件\n */\nimport type { IRectGraphicAttribute, FederatedPointerEvent, IGroup, IRect } from '@visactor/vrender/es/core';\n// eslint-disable-next-line no-duplicate-imports\nimport { CustomEvent, vglobal } from '@visactor/vrender/es/core';\nimport { merge, normalizePadding, clamp, clampRange, debounce, throttle } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\n\nimport type { ScrollBarAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadScrollbarComponent } from './register';\n\ntype ComponentBounds = {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n width: number;\n height: number;\n};\n\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\n\nloadScrollbarComponent();\n\nexport class ScrollBar extends AbstractComponent<Required<ScrollBarAttributes>> {\n name = 'scrollbar';\n\n static defaultAttributes = {\n direction: 'horizontal',\n round: true,\n sliderSize: 20,\n sliderStyle: {\n fill: 'rgba(0, 0, 0, .5)'\n },\n railStyle: {\n fill: 'rgba(0, 0, 0, .0)'\n },\n padding: 2,\n scrollRange: [0, 1],\n delayType: 'throttle',\n delayTime: 0,\n realTime: true\n };\n\n private _container!: IGroup;\n // 滚动条滑块\n private _slider!: IRect;\n // 滚动条滑轨\n private _rail!: IRect;\n // 滑块可渲染的区域包围盒\n private _sliderRenderBounds!: ComponentBounds | null;\n // 滑块滑动的范围\n private _sliderLimitRange!: [number, number] | null;\n // 保留滑块上一次的位置\n private _prePos!: number;\n // TODO: 临时方案\n private _viewPosition!: { x: number; y: number };\n private _sliderSize!: number;\n\n constructor(attributes: ScrollBarAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, ScrollBar.defaultAttributes, attributes));\n }\n\n setScrollRange(range: [number, number], render = true) {\n const {\n direction = 'horizontal',\n limitRange = [0, 1],\n range: preRange,\n realTime = true\n } = this.attribute as ScrollBarAttributes;\n\n const currScrollRange = clampRange(range, limitRange[0], limitRange[1]);\n if (render) {\n // 更新图形\n const sliderPos = this._getSliderPos(currScrollRange);\n if (this._slider) {\n if (direction === 'horizontal') {\n this._slider.setAttribute('x', sliderPos[0], true);\n } else {\n this._slider.setAttribute('y', sliderPos[0], true);\n }\n\n if (!this.stage?.autoRender) {\n this.stage?.renderNextFrame();\n }\n }\n }\n (this.attribute as ScrollBarAttributes).range = currScrollRange;\n // 发射 change 事件\n if (realTime) {\n this._onChange({\n pre: preRange,\n value: currScrollRange\n });\n }\n }\n\n getScrollRange(): [number, number] {\n return (this.attribute as ScrollBarAttributes).range;\n }\n\n // public setLocation(point: PointLocationCfg) {\n // this.translateTo(point.x, point.y);\n // }\n\n // 绑定事件\n protected bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n const { delayType = 'throttle', delayTime = 0 } = this.attribute as ScrollBarAttributes;\n // TODO: wheel 事件支持\n if (this._rail) {\n this._rail.addEventListener(\n 'pointerdown',\n delayMap[delayType](this._onRailPointerDown, delayTime) as EventListener\n );\n }\n if (this._slider) {\n this._slider.addEventListener('pointerdown', this._onSliderPointerDown as EventListener);\n }\n }\n\n protected render() {\n this._reset();\n const {\n direction = 'horizontal',\n width,\n height,\n range,\n limitRange = [0, 1],\n // sliderSize = 20,\n // scrollValue = 0,\n // scrollRange = [0, 1],\n railStyle,\n sliderStyle,\n padding = 2\n } = this.attribute as ScrollBarAttributes;\n\n const group = this.createOrUpdateChild('scrollbar-container', {}, 'group') as IGroup;\n // 绘制轨道\n\n const rail = group.createOrUpdateChild(\n 'scrollbar-rail',\n {\n x: 0,\n y: 0,\n width,\n height,\n ...railStyle\n },\n 'rect'\n ) as IRect;\n this._rail = rail;\n\n // 滑块\n const sliderRenderBounds = this._getSliderRenderBounds();\n const sliderPos = this._getSliderPos(clampRange(range, limitRange[0], limitRange[1]));\n const sliderSize = sliderPos[1] - sliderPos[0];\n this._sliderSize = sliderSize;\n // const sliderRangePos = this._getScrollRange();\n\n let sliderAttribute: IRectGraphicAttribute;\n if (direction === 'horizontal') {\n sliderAttribute = {\n x: sliderPos[0],\n y: sliderRenderBounds.y1,\n width: sliderSize,\n height: sliderRenderBounds.height\n };\n } else {\n sliderAttribute = {\n x: sliderRenderBounds.x1,\n y: sliderPos[0],\n width: sliderRenderBounds.width,\n height: sliderSize\n };\n }\n\n const slider = group.createOrUpdateChild(\n 'slider',\n {\n ...sliderAttribute,\n cornerRadius: this._getDefaultSliderCornerRadius(),\n ...sliderStyle,\n boundsPadding: normalizePadding(padding),\n pickMode: 'imprecise'\n },\n 'rect'\n ) as IRect;\n this._slider = slider;\n this._container = group;\n\n const containerAABBBounds = this._container.AABBBounds;\n this._viewPosition = {\n x: containerAABBBounds.x1,\n y: containerAABBBounds.y1\n };\n }\n\n // 获取滑块渲染的包围盒区域\n private _getSliderRenderBounds() {\n if (this._sliderRenderBounds) {\n return this._sliderRenderBounds;\n }\n const { width, height, padding = 2 } = this.attribute as ScrollBarAttributes;\n const [top, right, bottom, left] = normalizePadding(padding);\n const renderBounds = {\n x1: left,\n y1: top,\n x2: width - right,\n y2: height - bottom,\n width: width - (left + right),\n height: height - (top + bottom)\n };\n this._sliderRenderBounds = renderBounds;\n return renderBounds;\n }\n\n // 获取默认的滑块圆角\n private _getDefaultSliderCornerRadius() {\n const { direction, round } = this.attribute as ScrollBarAttributes;\n\n if (round) {\n const { width, height } = this._getSliderRenderBounds();\n return direction === 'horizontal' ? height : width;\n }\n\n return 0;\n }\n\n // 计算滑块在轨道的位置\n private _getSliderPos(range: [number, number]) {\n const { direction } = this.attribute as ScrollBarAttributes;\n const { width, height, x1, y1 } = this._getSliderRenderBounds();\n\n if (direction === 'horizontal') {\n return [width * range[0] + x1, width * range[1] + x1];\n }\n return [height * range[0] + y1, height * range[1] + y1];\n }\n\n private _getScrollRange() {\n if (this._sliderLimitRange) {\n return this._sliderLimitRange;\n }\n const { limitRange = [0, 1], direction } = this.attribute as ScrollBarAttributes;\n const [min, max] = clampRange(limitRange, 0, 1);\n const { width, height, x1, y1 } = this._getSliderRenderBounds();\n const sliderSize = this._sliderSize;\n\n return direction === 'horizontal'\n ? clampRange([x1 + min * width, x1 + max * width], x1, width - sliderSize)\n : clampRange([y1 + min * height, y1 + max * height], y1, height - sliderSize);\n }\n\n private _onRailPointerDown = (e: FederatedPointerEvent) => {\n // 将事件坐标转换为实际的滑块位置\n // TODO: 这里有问题,应该拿 viewX viewY,同时 graphic 要提供接口获取它的 相对 view 的坐标\n const { viewX, viewY } = e;\n const { direction, width, height, range } = this.attribute as ScrollBarAttributes;\n const sliderSize = this._sliderSize;\n const [min, max] = this._getScrollRange();\n let currentScrollValue;\n if (direction === 'vertical') {\n const relativeY = viewY - this._viewPosition.y;\n const currentYPos = clamp(relativeY - sliderSize / 2, min, max);\n currentScrollValue = relativeY / height;\n this._slider.setAttribute('y', currentYPos, true);\n } else {\n const relativeX = viewX - this._viewPosition.x;\n const currentXPos = clamp(relativeX - sliderSize / 2, min, max);\n currentScrollValue = relativeX / width;\n this._slider.setAttribute('x', currentXPos, true);\n }\n\n this.setScrollRange(\n [currentScrollValue - (range[1] - range[0]) / 2, currentScrollValue + (range[1] - range[0]) / 2],\n false\n );\n\n if (!this.stage?.autoRender) {\n this.stage?.renderNextFrame();\n }\n };\n\n private _onSliderPointerDown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { direction } = this.attribute as ScrollBarAttributes;\n this._prePos = direction === 'horizontal' ? e.clientX : e.clientY;\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onSliderPointerMove, { capture: true });\n vglobal.addEventListener('pointerup', this._onSliderPointerUp);\n } else {\n this.stage.addEventListener('pointermove', this._onSliderPointerMove, { capture: true });\n this.stage.addEventListener('pointerup', this._onSliderPointerUp);\n this.stage.addEventListener('pointerupoutside', this._onSliderPointerUp);\n }\n };\n\n private _computeScrollValue = (e: any) => {\n const { direction } = this.attribute as ScrollBarAttributes;\n let currentScrollValue;\n let currentPos;\n let delta = 0;\n\n const { width, height } = this._getSliderRenderBounds();\n if (direction === 'vertical') {\n currentPos = e.clientY;\n delta = currentPos - this._prePos;\n currentScrollValue = delta / height;\n } else {\n currentPos = e.clientX;\n delta = currentPos - this._prePos;\n currentScrollValue = delta / width;\n }\n return [currentPos, currentScrollValue];\n };\n\n private _onSliderPointerMove = delayMap[this.attribute.delayType]((e: any) => {\n e.stopPropagation();\n const preScrollRange = this.getScrollRange();\n const [currentPos, currentScrollValue] = this._computeScrollValue(e);\n this.setScrollRange([preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue], true);\n this._prePos = currentPos;\n }, this.attribute.delayTime);\n\n private _onSliderPointerUp = (e: any) => {\n e.preventDefault();\n const { realTime = true, range: preRange, limitRange = [0, 1] } = this.attribute as ScrollBarAttributes;\n // 发射 change 事件\n const preScrollRange = this.getScrollRange();\n const [currentPos, currentScrollValue] = this._computeScrollValue(e);\n const range: [number, number] = [preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue];\n if (!realTime) {\n this._onChange({\n pre: preRange,\n value: clampRange(range, limitRange[0], limitRange[1])\n });\n }\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onSliderPointerMove, { capture: true });\n vglobal.removeEventListener('pointerup', this._onSliderPointerUp);\n } else {\n this.stage.removeEventListener('pointermove', this._onSliderPointerMove, { capture: true });\n this.stage.removeEventListener('pointerup', this._onSliderPointerUp);\n this.stage.removeEventListener('pointerupoutside', this._onSliderPointerUp);\n }\n };\n\n private _onChange(detail: any) {\n const changeEvent = new CustomEvent('scroll', detail);\n // FIXME: 需要在 vrender 的事件系统支持\n // @ts-ignore\n changeEvent.manager = this.stage?.eventSystem.manager;\n this.dispatchEvent(changeEvent);\n }\n\n private _reset() {\n this._sliderRenderBounds = null;\n this._sliderLimitRange = null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scrollbar/scrollbar.ts"],"names":[],"mappings":"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","file":"scrollbar.js","sourcesContent":["/**\n * @description 滚动条组件\n */\nimport type { IRectGraphicAttribute, FederatedPointerEvent, IGroup, IRect } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { vglobal } from '@visactor/vrender-core';\nimport { merge, normalizePadding, clamp, clampRange, debounce, throttle } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\n\nimport type { ScrollBarAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\n\ntype ComponentBounds = {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n width: number;\n height: number;\n};\n\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\n\nexport class ScrollBar extends AbstractComponent<Required<ScrollBarAttributes>> {\n name = 'scrollbar';\n\n static defaultAttributes = {\n direction: 'horizontal',\n round: true,\n sliderSize: 20,\n sliderStyle: {\n fill: 'rgba(0, 0, 0, .5)'\n },\n railStyle: {\n fill: 'rgba(0, 0, 0, .0)'\n },\n padding: 2,\n scrollRange: [0, 1],\n delayType: 'throttle',\n delayTime: 0,\n realTime: true\n };\n\n private _container!: IGroup;\n // 滚动条滑块\n private _slider!: IRect;\n // 滚动条滑轨\n private _rail!: IRect;\n // 滑块可渲染的区域包围盒\n private _sliderRenderBounds!: ComponentBounds | null;\n // 滑块滑动的范围\n private _sliderLimitRange!: [number, number] | null;\n // 保留滑块上一次的位置\n private _prePos!: number;\n // TODO: 临时方案\n private _viewPosition!: { x: number; y: number };\n private _sliderSize!: number;\n\n constructor(attributes: ScrollBarAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, ScrollBar.defaultAttributes, attributes));\n }\n\n setScrollRange(range: [number, number], render = true) {\n const {\n direction = 'horizontal',\n limitRange = [0, 1],\n range: preRange,\n realTime = true\n } = this.attribute as ScrollBarAttributes;\n\n const currScrollRange = clampRange(range, limitRange[0], limitRange[1]);\n if (render) {\n // 更新图形\n const sliderPos = this._getSliderPos(currScrollRange);\n if (this._slider) {\n if (direction === 'horizontal') {\n this._slider.setAttribute('x', sliderPos[0], true);\n } else {\n this._slider.setAttribute('y', sliderPos[0], true);\n }\n\n if (!this.stage?.autoRender) {\n this.stage?.renderNextFrame();\n }\n }\n }\n (this.attribute as ScrollBarAttributes).range = currScrollRange;\n // 发射 change 事件\n if (realTime) {\n this._dispatchEvent('scroll', {\n pre: preRange,\n value: currScrollRange\n });\n }\n }\n\n getScrollRange(): [number, number] {\n return (this.attribute as ScrollBarAttributes).range;\n }\n\n // public setLocation(point: PointLocationCfg) {\n // this.translateTo(point.x, point.y);\n // }\n\n // 绑定事件\n protected bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n const { delayType = 'throttle', delayTime = 0 } = this.attribute as ScrollBarAttributes;\n // TODO: wheel 事件支持\n if (this._rail) {\n this._rail.addEventListener(\n 'pointerdown',\n delayMap[delayType](this._onRailPointerDown, delayTime) as EventListener\n );\n }\n if (this._slider) {\n this._slider.addEventListener('pointerdown', this._onSliderPointerDown as EventListener);\n }\n }\n\n protected render() {\n this._reset();\n const {\n direction = 'horizontal',\n width,\n height,\n range,\n limitRange = [0, 1],\n // sliderSize = 20,\n // scrollValue = 0,\n // scrollRange = [0, 1],\n railStyle,\n sliderStyle,\n padding = 2\n } = this.attribute as ScrollBarAttributes;\n\n const group = this.createOrUpdateChild('scrollbar-container', {}, 'group') as IGroup;\n // 绘制轨道\n\n const rail = group.createOrUpdateChild(\n 'scrollbar-rail',\n {\n x: 0,\n y: 0,\n width,\n height,\n ...railStyle\n },\n 'rect'\n ) as IRect;\n this._rail = rail;\n\n // 滑块\n const sliderRenderBounds = this._getSliderRenderBounds();\n const sliderPos = this._getSliderPos(clampRange(range, limitRange[0], limitRange[1]));\n const sliderSize = sliderPos[1] - sliderPos[0];\n this._sliderSize = sliderSize;\n // const sliderRangePos = this._getScrollRange();\n\n let sliderAttribute: IRectGraphicAttribute;\n if (direction === 'horizontal') {\n sliderAttribute = {\n x: sliderPos[0],\n y: sliderRenderBounds.y1,\n width: sliderSize,\n height: sliderRenderBounds.height\n };\n } else {\n sliderAttribute = {\n x: sliderRenderBounds.x1,\n y: sliderPos[0],\n width: sliderRenderBounds.width,\n height: sliderSize\n };\n }\n\n const slider = group.createOrUpdateChild(\n 'slider',\n {\n ...sliderAttribute,\n cornerRadius: this._getDefaultSliderCornerRadius(),\n ...sliderStyle,\n boundsPadding: normalizePadding(padding),\n pickMode: 'imprecise'\n },\n 'rect'\n ) as IRect;\n this._slider = slider;\n this._container = group;\n\n const containerAABBBounds = this._container.AABBBounds;\n this._viewPosition = {\n x: containerAABBBounds.x1,\n y: containerAABBBounds.y1\n };\n }\n\n // 获取滑块渲染的包围盒区域\n private _getSliderRenderBounds() {\n if (this._sliderRenderBounds) {\n return this._sliderRenderBounds;\n }\n const { width, height, padding = 2 } = this.attribute as ScrollBarAttributes;\n const [top, right, bottom, left] = normalizePadding(padding);\n const renderBounds = {\n x1: left,\n y1: top,\n x2: width - right,\n y2: height - bottom,\n width: width - (left + right),\n height: height - (top + bottom)\n };\n this._sliderRenderBounds = renderBounds;\n return renderBounds;\n }\n\n // 获取默认的滑块圆角\n private _getDefaultSliderCornerRadius() {\n const { direction, round } = this.attribute as ScrollBarAttributes;\n\n if (round) {\n const { width, height } = this._getSliderRenderBounds();\n return direction === 'horizontal' ? height : width;\n }\n\n return 0;\n }\n\n // 计算滑块在轨道的位置\n private _getSliderPos(range: [number, number]) {\n const { direction } = this.attribute as ScrollBarAttributes;\n const { width, height, x1, y1 } = this._getSliderRenderBounds();\n\n if (direction === 'horizontal') {\n return [width * range[0] + x1, width * range[1] + x1];\n }\n return [height * range[0] + y1, height * range[1] + y1];\n }\n\n private _getScrollRange() {\n if (this._sliderLimitRange) {\n return this._sliderLimitRange;\n }\n const { limitRange = [0, 1], direction } = this.attribute as ScrollBarAttributes;\n const [min, max] = clampRange(limitRange, 0, 1);\n const { width, height, x1, y1 } = this._getSliderRenderBounds();\n const sliderSize = this._sliderSize;\n\n return direction === 'horizontal'\n ? clampRange([x1 + min * width, x1 + max * width], x1, width - sliderSize)\n : clampRange([y1 + min * height, y1 + max * height], y1, height - sliderSize);\n }\n\n private _onRailPointerDown = (e: FederatedPointerEvent) => {\n // 将事件坐标转换为实际的滑块位置\n // TODO: 这里有问题,应该拿 viewX viewY,同时 graphic 要提供接口获取它的 相对 view 的坐标\n const { viewX, viewY } = e;\n const { direction, width, height, range } = this.attribute as ScrollBarAttributes;\n const sliderSize = this._sliderSize;\n const [min, max] = this._getScrollRange();\n let currentScrollValue;\n if (direction === 'vertical') {\n const relativeY = viewY - this._viewPosition.y;\n const currentYPos = clamp(relativeY - sliderSize / 2, min, max);\n currentScrollValue = relativeY / height;\n this._slider.setAttribute('y', currentYPos, true);\n } else {\n const relativeX = viewX - this._viewPosition.x;\n const currentXPos = clamp(relativeX - sliderSize / 2, min, max);\n currentScrollValue = relativeX / width;\n this._slider.setAttribute('x', currentXPos, true);\n }\n\n this.setScrollRange(\n [currentScrollValue - (range[1] - range[0]) / 2, currentScrollValue + (range[1] - range[0]) / 2],\n false\n );\n\n if (!this.stage?.autoRender) {\n this.stage?.renderNextFrame();\n }\n };\n\n private _onSliderPointerDown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { direction } = this.attribute as ScrollBarAttributes;\n this._prePos = direction === 'horizontal' ? e.clientX : e.clientY;\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onSliderPointerMove, { capture: true });\n vglobal.addEventListener('pointerup', this._onSliderPointerUp);\n } else {\n this.stage.addEventListener('pointermove', this._onSliderPointerMove, { capture: true });\n this.stage.addEventListener('pointerup', this._onSliderPointerUp);\n this.stage.addEventListener('pointerupoutside', this._onSliderPointerUp);\n }\n };\n\n private _computeScrollValue = (e: any) => {\n const { direction } = this.attribute as ScrollBarAttributes;\n let currentScrollValue;\n let currentPos;\n let delta = 0;\n\n const { width, height } = this._getSliderRenderBounds();\n if (direction === 'vertical') {\n currentPos = e.clientY;\n delta = currentPos - this._prePos;\n currentScrollValue = delta / height;\n } else {\n currentPos = e.clientX;\n delta = currentPos - this._prePos;\n currentScrollValue = delta / width;\n }\n return [currentPos, currentScrollValue];\n };\n\n private _onSliderPointerMove = delayMap[this.attribute.delayType]((e: any) => {\n e.stopPropagation();\n const preScrollRange = this.getScrollRange();\n const [currentPos, currentScrollValue] = this._computeScrollValue(e);\n this.setScrollRange([preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue], true);\n this._prePos = currentPos;\n }, this.attribute.delayTime);\n\n private _onSliderPointerUp = (e: any) => {\n e.preventDefault();\n const { realTime = true, range: preRange, limitRange = [0, 1] } = this.attribute as ScrollBarAttributes;\n // 发射 change 事件\n const preScrollRange = this.getScrollRange();\n const [currentPos, currentScrollValue] = this._computeScrollValue(e);\n const range: [number, number] = [preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue];\n if (!realTime) {\n this._dispatchEvent('scroll', {\n pre: preRange,\n value: clampRange(range, limitRange[0], limitRange[1])\n });\n }\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onSliderPointerMove, { capture: true });\n vglobal.removeEventListener('pointerup', this._onSliderPointerUp);\n } else {\n this.stage.removeEventListener('pointermove', this._onSliderPointerMove, { capture: true });\n this.stage.removeEventListener('pointerup', this._onSliderPointerUp);\n this.stage.removeEventListener('pointerupoutside', this._onSliderPointerUp);\n }\n };\n\n private _reset() {\n this._sliderRenderBounds = null;\n this._sliderLimitRange = null;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { IGroupGraphicAttribute, IRectGraphicAttribute } from '@visactor/vrender/es/core';
1
+ import type { IGroupGraphicAttribute, IRectGraphicAttribute } from '@visactor/vrender-core';
2
2
  import type { Direction, IDelayType } from '../interface';
3
3
  import type { Padding } from '../core/type';
4
4
  export interface ScrollBarAttributes extends IGroupGraphicAttribute {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scrollbar/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type { IGroupGraphicAttribute, IRectGraphicAttribute } from '@visactor/vrender/es/core';\nimport type { Direction, IDelayType } from '../interface';\nimport type { Padding } from '../core/type';\nexport interface ScrollBarAttributes extends IGroupGraphicAttribute {\n x: number;\n y: number;\n /**\n * 滚动条的布局方向,默认为 `horizontal`,水平布局。\n * @default horizontal\n */\n direction?: Direction;\n /** 滚动条的宽度。 */\n width: number;\n /** 滚动条的高度。 */\n height: number;\n /** 滑块是否圆角。 */\n round?: boolean;\n /**\n * 滚动条轨道样式。\n */\n railStyle?: Omit<IRectGraphicAttribute, 'width' | 'height'>;\n /**\n * 滚动条滑块样式。\n */\n sliderStyle?: Omit<IRectGraphicAttribute, 'width' | 'height'>;\n /**\n * 滚动条内边距,影响滑轨的实际可用空间 [top, right, bottom, left]\n */\n padding?: Padding;\n /** 滑块当前的可视范围,数值为 0 - 1 */\n range: [number, number];\n /**\n * 滑块限制的滚动范围,数值为 0 - 1\n */\n limitRange?: [number, number];\n /**\n * 关闭交互效果\n * @default false\n */\n disableTriggerEvent?: boolean;\n /*\n * 事件触发延迟类型\n * @default 'throttle'\n */\n delayType?: IDelayType;\n\n /**\n * 事件触发延迟时长\n * @default 0\n */\n delayTime?: number;\n /**\n * 是否在操作时动态更新视图\n * @default true\n */\n realTime?: boolean;\n}\n"]}
1
+ {"version":3,"sources":["../src/scrollbar/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type { IGroupGraphicAttribute, IRectGraphicAttribute } from '@visactor/vrender-core';\nimport type { Direction, IDelayType } from '../interface';\nimport type { Padding } from '../core/type';\nexport interface ScrollBarAttributes extends IGroupGraphicAttribute {\n x: number;\n y: number;\n /**\n * 滚动条的布局方向,默认为 `horizontal`,水平布局。\n * @default horizontal\n */\n direction?: Direction;\n /** 滚动条的宽度。 */\n width: number;\n /** 滚动条的高度。 */\n height: number;\n /** 滑块是否圆角。 */\n round?: boolean;\n /**\n * 滚动条轨道样式。\n */\n railStyle?: Omit<IRectGraphicAttribute, 'width' | 'height'>;\n /**\n * 滚动条滑块样式。\n */\n sliderStyle?: Omit<IRectGraphicAttribute, 'width' | 'height'>;\n /**\n * 滚动条内边距,影响滑轨的实际可用空间 [top, right, bottom, left]\n */\n padding?: Padding;\n /** 滑块当前的可视范围,数值为 0 - 1 */\n range: [number, number];\n /**\n * 滑块限制的滚动范围,数值为 0 - 1\n */\n limitRange?: [number, number];\n /**\n * 关闭交互效果\n * @default false\n */\n disableTriggerEvent?: boolean;\n /*\n * 事件触发延迟类型\n * @default 'throttle'\n */\n delayType?: IDelayType;\n\n /**\n * 事件触发延迟时长\n * @default 0\n */\n delayTime?: number;\n /**\n * 是否在操作时动态更新视图\n * @default true\n */\n realTime?: boolean;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { ISymbol } from '@visactor/vrender/es/core';
1
+ import type { ISymbol } from '@visactor/vrender-core';
2
2
  import { AbstractComponent } from '../core/base';
3
3
  import type { SegmentAttributes } from './type';
4
4
  import type { Point } from '../core/type';
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Segment = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), core_1 = require("@visactor/vrender/es/core"), base_1 = require("../core/base"), register_1 = require("./register");
8
-
9
- (0, register_1.loadSegmentComponent)();
7
+ const vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core"), base_1 = require("../core/base");
10
8
 
11
9
  class Segment extends base_1.AbstractComponent {
12
10
  getStartAngle() {
@@ -36,7 +34,7 @@ class Segment extends base_1.AbstractComponent {
36
34
  }
37
35
  points.forEach(((point, index) => {
38
36
  var _a, _b;
39
- const line = core_1.graphicCreator.line(Object.assign(Object.assign({
37
+ const line = (0, vrender_core_1.createLine)(Object.assign(Object.assign({
40
38
  points: point
41
39
  }, (0, vutils_1.isArray)(lineStyle) ? null !== (_a = lineStyle[index]) && void 0 !== _a ? _a : lineStyle[lineStyle.length - 1] : lineStyle), {
42
40
  fill: !1
@@ -46,7 +44,7 @@ class Segment extends base_1.AbstractComponent {
46
44
  this.add(line);
47
45
  }));
48
46
  } else {
49
- const line = core_1.graphicCreator.polygon(Object.assign(Object.assign({
47
+ const line = (0, vrender_core_1.createPolygon)(Object.assign(Object.assign({
50
48
  points: this._clipPoints(this.attribute.points)
51
49
  }, (0, vutils_1.array)(lineStyle)[0]), {
52
50
  fill: !1,
@@ -70,7 +68,7 @@ class Segment extends base_1.AbstractComponent {
70
68
  }, rotate = startAngle + Math.PI / 2) : (position = {
71
69
  x: end.x + ((0, vutils_1.isValidNumber)(endAngle) ? refX * Math.cos(endAngle) + refY * Math.cos(endAngle - Math.PI / 2) : 0),
72
70
  y: end.y + ((0, vutils_1.isValidNumber)(endAngle) ? refX * Math.sin(endAngle) + refY * Math.sin(endAngle - Math.PI / 2) : 0)
73
- }, rotate = endAngle + Math.PI / 2), symbol = core_1.graphicCreator.symbol(Object.assign(Object.assign(Object.assign({}, position), {
71
+ }, rotate = endAngle + Math.PI / 2), symbol = (0, vrender_core_1.createSymbol)(Object.assign(Object.assign(Object.assign({}, position), {
74
72
  symbolType: symbolType,
75
73
  size: size,
76
74
  angle: autoRotate ? rotate + refAngle : 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/segment/segment.ts"],"names":[],"mappings":"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","file":"segment.js","sourcesContent":["/**\n * @description 标签组件\n */\nimport { array, flattenArray, isArray, isEmpty, isValidNumber, merge } from '@visactor/vutils';\nimport type { ISymbol } from '@visactor/vrender/es/core';\nimport { graphicCreator } from '@visactor/vrender/es/core';\nimport { AbstractComponent } from '../core/base';\nimport type { SegmentAttributes, SymbolAttributes } from './type';\nimport type { Point } from '../core/type';\nimport type { ComponentOptions } from '../interface';\nimport { loadSegmentComponent } from './register';\n\nloadSegmentComponent();\nexport class Segment extends AbstractComponent<Required<SegmentAttributes>> {\n name = 'segment';\n\n startSymbol?: ISymbol;\n endSymbol?: ISymbol;\n\n private _startAngle!: number;\n /**\n * 外部获取segment起点正方向\n */\n getStartAngle() {\n return this._startAngle;\n }\n\n private _endAngle!: number;\n /**\n * 外部获取segment终点正方向\n */\n getEndAngle() {\n return this._endAngle;\n }\n\n private _mainSegmentPoints: Point[]; // 组成主线段的点\n getMainSegmentPoints() {\n return this._mainSegmentPoints;\n }\n\n static defaultAttributes: Partial<SegmentAttributes> = {\n visible: true,\n lineStyle: {\n lineWidth: 1,\n stroke: '#000'\n },\n startSymbol: {\n visible: false,\n autoRotate: true,\n symbolType: 'triangle',\n size: 12,\n refX: 0,\n refY: 0,\n refAngle: 0,\n style: {\n fill: '#000',\n zIndex: 1 // 默认 symbol 绘制在 line 上面\n }\n },\n endSymbol: {\n visible: false,\n autoRotate: true,\n symbolType: 'triangle',\n size: 12,\n refX: 0,\n refY: 0,\n refAngle: 0,\n style: {\n fill: '#000',\n zIndex: 1 // 默认 symbol 绘制在 line 上面\n }\n }\n };\n\n constructor(attributes: SegmentAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Segment.defaultAttributes, attributes));\n }\n\n protected render() {\n this.removeAllChild();\n this._reset();\n const {\n // points,\n startSymbol,\n endSymbol,\n lineStyle,\n state,\n visible = true,\n multiSegment,\n mainSegmentIndex\n } = this.attribute as SegmentAttributes;\n\n if (!visible) {\n return;\n }\n\n // 计算线的起点和终点角度\n // 计算角度的原因:\n // 1. segment symbol的自动旋转提供参数\n // 2. 使用segment时,需要根据line的角度对附加元素进行自动旋转(比如:markLine的标签, markPoint的装饰线)\n this._computeLineAngle();\n\n // 绘制start和end symbol\n const startSymbolShape = this._renderSymbol(startSymbol as SymbolAttributes, 'start');\n const endSymbolShape = this._renderSymbol(endSymbol as SymbolAttributes, 'end');\n\n this.startSymbol = startSymbolShape;\n this.endSymbol = endSymbolShape;\n\n if (multiSegment) {\n const points = [...this.attribute.points];\n if (isValidNumber(mainSegmentIndex)) {\n points[mainSegmentIndex] = this._clipPoints(points[mainSegmentIndex] as Point[]);\n } else {\n const clipPoints = this._clipPoints(flattenArray(points) as Point[]);\n points[0][0] = clipPoints[0];\n (points[points.length - 1] as Point[])[(points[points.length - 1] as Point[]).length - 1] =\n clipPoints[clipPoints.length - 1];\n }\n points.forEach((point: Point[], index) => {\n const line = graphicCreator.line({\n points: point,\n ...(isArray(lineStyle) ? lineStyle[index] ?? lineStyle[lineStyle.length - 1] : lineStyle),\n fill: false\n });\n\n line.name = `${this.name}-line`;\n line.id = this._getNodeId('line' + index);\n if (!isEmpty(state?.line)) {\n line.states = isArray(state.line) ? state.line[index] ?? state.line[state.line.length - 1] : state.line;\n }\n this.add(line);\n });\n } else {\n const line = graphicCreator.polygon({\n points: this._clipPoints(this.attribute.points as Point[]),\n ...array(lineStyle)[0],\n fill: false,\n closePath: false\n });\n\n line.name = `${this.name}-line`;\n line.id = this._getNodeId('line');\n if (!isEmpty(state?.line)) {\n line.states = [].concat(state.line)[0];\n }\n this.add(line);\n }\n }\n\n private _renderSymbol(attribute: SymbolAttributes, dim: string): ISymbol | undefined {\n const points = this._getMainSegmentPoints();\n if (!points.length) {\n return;\n }\n\n const { autoRotate = true } = attribute;\n let symbol;\n if (attribute?.visible) {\n const startAngle = this._startAngle;\n const endAngle = this._endAngle;\n const { state } = this.attribute as SegmentAttributes;\n const start = points[0];\n const end = points[points.length - 1];\n const { refX = 0, refY = 0, refAngle = 0, style, symbolType, size = 12 } = attribute;\n let position;\n let rotate;\n if (dim === 'start') {\n position = {\n x:\n start.x +\n (isValidNumber(startAngle) ? refX * Math.cos(startAngle) + refY * Math.cos(startAngle - Math.PI / 2) : 0),\n y:\n start.y +\n (isValidNumber(startAngle) ? refX * Math.sin(startAngle) + refY * Math.sin(startAngle - Math.PI / 2) : 0)\n };\n rotate = startAngle + Math.PI / 2; // @chensiji - 加Math.PI / 2是因为:默认symbol的包围盒垂直于line,所以在做自动旋转时需要在line正方向基础上做90度偏移\n } else {\n position = {\n x:\n end.x + (isValidNumber(endAngle) ? refX * Math.cos(endAngle) + refY * Math.cos(endAngle - Math.PI / 2) : 0),\n y: end.y + (isValidNumber(endAngle) ? refX * Math.sin(endAngle) + refY * Math.sin(endAngle - Math.PI / 2) : 0)\n };\n rotate = endAngle + Math.PI / 2;\n }\n\n symbol = graphicCreator.symbol({\n ...position,\n symbolType: symbolType as string,\n size,\n angle: autoRotate ? rotate + refAngle : 0,\n strokeBoundsBuffer: 0,\n ...style\n });\n symbol.name = `${this.name}-${dim}-symbol`;\n symbol.id = this._getNodeId(`${dim}-symbol`);\n\n if (!isEmpty(state?.symbol)) {\n symbol.states = state.symbol;\n }\n\n this.add(symbol);\n }\n return symbol;\n }\n\n private _getMainSegmentPoints(): Point[] {\n if (this._mainSegmentPoints) {\n return this._mainSegmentPoints;\n }\n const { points: originPoints, multiSegment, mainSegmentIndex } = this.attribute as SegmentAttributes;\n\n let points: Point[];\n // 需要做下约束判断\n if (multiSegment) {\n if (isValidNumber(mainSegmentIndex)) {\n points = originPoints[mainSegmentIndex] as Point[];\n } else {\n points = flattenArray(originPoints);\n }\n } else {\n points = originPoints as Point[];\n }\n this._mainSegmentPoints = points;\n\n return points;\n }\n\n private _clipPoints(points: Point[]) {\n const { startSymbol, endSymbol } = this.attribute as SegmentAttributes;\n // 通过改变line起点和终点的方式达到symbol在fill为false的情况下,也可以遮盖line的效果\n let pointsAfterClip = points;\n if (startSymbol?.visible) {\n const startSize = startSymbol?.clip ? startSymbol?.size || 10 : 0;\n const pointsStart = {\n x: points[0].x - (startSize / 2) * (Math.cos(this._startAngle) || 0),\n y: points[0].y - (startSize / 2) * (Math.sin(this._startAngle) || 0)\n };\n pointsAfterClip = [pointsStart, ...pointsAfterClip.slice(1)];\n }\n if (endSymbol?.visible) {\n const endSize = endSymbol?.clip ? endSymbol?.size || 10 : 0;\n const pointsEnd = {\n x: points[points.length - 1].x - (endSize / 2) * (Math.cos(this._endAngle) || 0),\n y: points[points.length - 1].y - (endSize / 2) * (Math.sin(this._endAngle) || 0)\n };\n pointsAfterClip = [...pointsAfterClip.slice(0, pointsAfterClip.length - 1), pointsEnd];\n }\n\n return pointsAfterClip;\n }\n\n private _computeLineAngle() {\n const points = this._getMainSegmentPoints();\n if (points.length <= 1) {\n return;\n }\n const start = points[0];\n const startInside = points[1];\n const endInside = points[points.length - 2];\n const end = points[points.length - 1];\n const startVector = [start.x - startInside.x, start.y - startInside.y]; // 起点正方向向量\n const startAngle = Math.atan2(startVector[1], startVector[0]); // 起点正方向角度\n const endVector = [end.x - endInside.x, end.y - endInside.y]; // 终点正方向向量\n const endAngle = Math.atan2(endVector[1], endVector[0]); // 终点正方向角度\n\n this._startAngle = startAngle;\n this._endAngle = endAngle;\n }\n\n private _reset() {\n this.startSymbol = null;\n this.endSymbol = null;\n this._startAngle = null;\n this._endAngle = null;\n this._mainSegmentPoints = null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/segment/segment.ts"],"names":[],"mappings":"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","file":"segment.js","sourcesContent":["/**\n * @description 标签组件\n */\nimport { array, flattenArray, isArray, isEmpty, isValidNumber, merge } from '@visactor/vutils';\nimport type { ISymbol } from '@visactor/vrender-core';\nimport { createSymbol, createLine, createPolygon } from '@visactor/vrender-core';\nimport { AbstractComponent } from '../core/base';\nimport type { SegmentAttributes, SymbolAttributes } from './type';\nimport type { Point } from '../core/type';\nimport type { ComponentOptions } from '../interface';\n\nexport class Segment extends AbstractComponent<Required<SegmentAttributes>> {\n name = 'segment';\n\n startSymbol?: ISymbol;\n endSymbol?: ISymbol;\n\n private _startAngle!: number;\n /**\n * 外部获取segment起点正方向\n */\n getStartAngle() {\n return this._startAngle;\n }\n\n private _endAngle!: number;\n /**\n * 外部获取segment终点正方向\n */\n getEndAngle() {\n return this._endAngle;\n }\n\n private _mainSegmentPoints: Point[]; // 组成主线段的点\n getMainSegmentPoints() {\n return this._mainSegmentPoints;\n }\n\n static defaultAttributes: Partial<SegmentAttributes> = {\n visible: true,\n lineStyle: {\n lineWidth: 1,\n stroke: '#000'\n },\n startSymbol: {\n visible: false,\n autoRotate: true,\n symbolType: 'triangle',\n size: 12,\n refX: 0,\n refY: 0,\n refAngle: 0,\n style: {\n fill: '#000',\n zIndex: 1 // 默认 symbol 绘制在 line 上面\n }\n },\n endSymbol: {\n visible: false,\n autoRotate: true,\n symbolType: 'triangle',\n size: 12,\n refX: 0,\n refY: 0,\n refAngle: 0,\n style: {\n fill: '#000',\n zIndex: 1 // 默认 symbol 绘制在 line 上面\n }\n }\n };\n\n constructor(attributes: SegmentAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Segment.defaultAttributes, attributes));\n }\n\n protected render() {\n this.removeAllChild();\n this._reset();\n const {\n // points,\n startSymbol,\n endSymbol,\n lineStyle,\n state,\n visible = true,\n multiSegment,\n mainSegmentIndex\n } = this.attribute as SegmentAttributes;\n\n if (!visible) {\n return;\n }\n\n // 计算线的起点和终点角度\n // 计算角度的原因:\n // 1. segment symbol的自动旋转提供参数\n // 2. 使用segment时,需要根据line的角度对附加元素进行自动旋转(比如:markLine的标签, markPoint的装饰线)\n this._computeLineAngle();\n\n // 绘制start和end symbol\n const startSymbolShape = this._renderSymbol(startSymbol as SymbolAttributes, 'start');\n const endSymbolShape = this._renderSymbol(endSymbol as SymbolAttributes, 'end');\n\n this.startSymbol = startSymbolShape;\n this.endSymbol = endSymbolShape;\n\n if (multiSegment) {\n const points = [...this.attribute.points];\n if (isValidNumber(mainSegmentIndex)) {\n points[mainSegmentIndex] = this._clipPoints(points[mainSegmentIndex] as Point[]);\n } else {\n const clipPoints = this._clipPoints(flattenArray(points) as Point[]);\n points[0][0] = clipPoints[0];\n (points[points.length - 1] as Point[])[(points[points.length - 1] as Point[]).length - 1] =\n clipPoints[clipPoints.length - 1];\n }\n points.forEach((point: Point[], index) => {\n const line = createLine({\n points: point,\n ...(isArray(lineStyle) ? lineStyle[index] ?? lineStyle[lineStyle.length - 1] : lineStyle),\n fill: false\n });\n\n line.name = `${this.name}-line`;\n line.id = this._getNodeId('line' + index);\n if (!isEmpty(state?.line)) {\n line.states = isArray(state.line) ? state.line[index] ?? state.line[state.line.length - 1] : state.line;\n }\n this.add(line);\n });\n } else {\n const line = createPolygon({\n points: this._clipPoints(this.attribute.points as Point[]),\n ...array(lineStyle)[0],\n fill: false,\n closePath: false\n });\n\n line.name = `${this.name}-line`;\n line.id = this._getNodeId('line');\n if (!isEmpty(state?.line)) {\n line.states = [].concat(state.line)[0];\n }\n this.add(line);\n }\n }\n\n private _renderSymbol(attribute: SymbolAttributes, dim: string): ISymbol | undefined {\n const points = this._getMainSegmentPoints();\n if (!points.length) {\n return;\n }\n\n const { autoRotate = true } = attribute;\n let symbol;\n if (attribute?.visible) {\n const startAngle = this._startAngle;\n const endAngle = this._endAngle;\n const { state } = this.attribute as SegmentAttributes;\n const start = points[0];\n const end = points[points.length - 1];\n const { refX = 0, refY = 0, refAngle = 0, style, symbolType, size = 12 } = attribute;\n let position;\n let rotate;\n if (dim === 'start') {\n position = {\n x:\n start.x +\n (isValidNumber(startAngle) ? refX * Math.cos(startAngle) + refY * Math.cos(startAngle - Math.PI / 2) : 0),\n y:\n start.y +\n (isValidNumber(startAngle) ? refX * Math.sin(startAngle) + refY * Math.sin(startAngle - Math.PI / 2) : 0)\n };\n rotate = startAngle + Math.PI / 2; // @chensiji - 加Math.PI / 2是因为:默认symbol的包围盒垂直于line,所以在做自动旋转时需要在line正方向基础上做90度偏移\n } else {\n position = {\n x:\n end.x + (isValidNumber(endAngle) ? refX * Math.cos(endAngle) + refY * Math.cos(endAngle - Math.PI / 2) : 0),\n y: end.y + (isValidNumber(endAngle) ? refX * Math.sin(endAngle) + refY * Math.sin(endAngle - Math.PI / 2) : 0)\n };\n rotate = endAngle + Math.PI / 2;\n }\n\n symbol = createSymbol({\n ...position,\n symbolType: symbolType as string,\n size,\n angle: autoRotate ? rotate + refAngle : 0,\n strokeBoundsBuffer: 0,\n ...style\n });\n symbol.name = `${this.name}-${dim}-symbol`;\n symbol.id = this._getNodeId(`${dim}-symbol`);\n\n if (!isEmpty(state?.symbol)) {\n symbol.states = state.symbol;\n }\n\n this.add(symbol);\n }\n return symbol;\n }\n\n private _getMainSegmentPoints(): Point[] {\n if (this._mainSegmentPoints) {\n return this._mainSegmentPoints;\n }\n const { points: originPoints, multiSegment, mainSegmentIndex } = this.attribute as SegmentAttributes;\n\n let points: Point[];\n // 需要做下约束判断\n if (multiSegment) {\n if (isValidNumber(mainSegmentIndex)) {\n points = originPoints[mainSegmentIndex] as Point[];\n } else {\n points = flattenArray(originPoints);\n }\n } else {\n points = originPoints as Point[];\n }\n this._mainSegmentPoints = points;\n\n return points;\n }\n\n private _clipPoints(points: Point[]) {\n const { startSymbol, endSymbol } = this.attribute as SegmentAttributes;\n // 通过改变line起点和终点的方式达到symbol在fill为false的情况下,也可以遮盖line的效果\n let pointsAfterClip = points;\n if (startSymbol?.visible) {\n const startSize = startSymbol?.clip ? startSymbol?.size || 10 : 0;\n const pointsStart = {\n x: points[0].x - (startSize / 2) * (Math.cos(this._startAngle) || 0),\n y: points[0].y - (startSize / 2) * (Math.sin(this._startAngle) || 0)\n };\n pointsAfterClip = [pointsStart, ...pointsAfterClip.slice(1)];\n }\n if (endSymbol?.visible) {\n const endSize = endSymbol?.clip ? endSymbol?.size || 10 : 0;\n const pointsEnd = {\n x: points[points.length - 1].x - (endSize / 2) * (Math.cos(this._endAngle) || 0),\n y: points[points.length - 1].y - (endSize / 2) * (Math.sin(this._endAngle) || 0)\n };\n pointsAfterClip = [...pointsAfterClip.slice(0, pointsAfterClip.length - 1), pointsEnd];\n }\n\n return pointsAfterClip;\n }\n\n private _computeLineAngle() {\n const points = this._getMainSegmentPoints();\n if (points.length <= 1) {\n return;\n }\n const start = points[0];\n const startInside = points[1];\n const endInside = points[points.length - 2];\n const end = points[points.length - 1];\n const startVector = [start.x - startInside.x, start.y - startInside.y]; // 起点正方向向量\n const startAngle = Math.atan2(startVector[1], startVector[0]); // 起点正方向角度\n const endVector = [end.x - endInside.x, end.y - endInside.y]; // 终点正方向向量\n const endAngle = Math.atan2(endVector[1], endVector[0]); // 终点正方向角度\n\n this._startAngle = startAngle;\n this._endAngle = endAngle;\n }\n\n private _reset() {\n this.startSymbol = null;\n this.endSymbol = null;\n this._startAngle = null;\n this._endAngle = null;\n this._mainSegmentPoints = null;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { IGraphicAttribute, IGroupGraphicAttribute, ILineGraphicAttribute, ISymbolGraphicAttribute, SymbolType } from '@visactor/vrender/es/core';
1
+ import type { IGraphicAttribute, IGroupGraphicAttribute, ILineGraphicAttribute, ISymbolGraphicAttribute, SymbolType } from '@visactor/vrender-core';
2
2
  import type { Point, State } from '../core/type';
3
3
  export type SymbolAttributes = {
4
4
  visible: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/segment/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IGraphicAttribute,\n IGroupGraphicAttribute,\n ILineGraphicAttribute,\n ISymbolGraphicAttribute,\n SymbolType\n} from '@visactor/vrender/es/core';\nimport type { Point, State } from '../core/type';\n\nexport type SymbolAttributes = {\n /** 是否展示 symbol */\n visible: boolean;\n /**\n * symbol 形状,默认为带左右方向的箭头\n */\n symbolType?: SymbolType;\n /**\n * symbol 大小\n */\n size?: number;\n /**\n * 自动旋转,沿着线的方向,默认 true\n */\n autoRotate?: boolean;\n /**\n * symbol 相对line平行方向上的偏移\n */\n refX?: number;\n /**\n * symbol 相对line正交方向上的偏移\n */\n refY?: number;\n /**\n * symbol 相对默认角度的偏移\n * @description (@chensiji: 默认角度为笛卡尔坐标系y正方向,即默认symbol包围盒的角度为笛卡尔坐标系y正方向, 做自动旋转时, 会在此基础上,将包围盒转换到line平行方向上。)\n */\n refAngle?: number;\n /**\n * symbol 是否clip line,即当symbol fill为false时,line在symbol内部的部分是否展示\n * @defalut false\n */\n clip?: boolean;\n /**\n * symbol 样式配置\n */\n style?: Partial<IGraphicAttribute>;\n};\n\nexport interface SegmentAttributes extends IGroupGraphicAttribute {\n /**\n * 可见性\n * @default true\n */\n visible?: boolean;\n /**\n * 是否对 points 进行多段处理,默认为 false,即直接将所有的点连接成线。\n * 如果需要进行多段处理,需要将 points 属性配置为 Point[][] 类型\n * @default false\n */\n multiSegment?: boolean;\n /**\n * 在 `multiSegment` 属性开启的前提下,用于声明那一段线段用来作为主线段,如果不声明,默认全段为主线段\n */\n mainSegmentIndex?: number;\n points: Point[] | Point[][];\n /** 轴线起始点 symbol 配置 */\n startSymbol?: SymbolAttributes;\n /** 轴线末端 symbol 配置 */\n endSymbol?: SymbolAttributes;\n /**\n * 线样式配置\n */\n lineStyle?: ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[];\n\n state?: {\n line?: State<ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[]>;\n symbol?: State<Partial<ISymbolGraphicAttribute>>;\n };\n}\n\ninterface ILineGraphicWithCornerRadius extends Partial<ILineGraphicAttribute> {\n /**\n * 折现拐角处的圆角配置\n */\n cornerRadius?: number;\n}\n"]}
1
+ {"version":3,"sources":["../src/segment/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IGraphicAttribute,\n IGroupGraphicAttribute,\n ILineGraphicAttribute,\n ISymbolGraphicAttribute,\n SymbolType\n} from '@visactor/vrender-core';\nimport type { Point, State } from '../core/type';\n\nexport type SymbolAttributes = {\n /** 是否展示 symbol */\n visible: boolean;\n /**\n * symbol 形状,默认为带左右方向的箭头\n */\n symbolType?: SymbolType;\n /**\n * symbol 大小\n */\n size?: number;\n /**\n * 自动旋转,沿着线的方向,默认 true\n */\n autoRotate?: boolean;\n /**\n * symbol 相对line平行方向上的偏移\n */\n refX?: number;\n /**\n * symbol 相对line正交方向上的偏移\n */\n refY?: number;\n /**\n * symbol 相对默认角度的偏移\n * @description (@chensiji: 默认角度为笛卡尔坐标系y正方向,即默认symbol包围盒的角度为笛卡尔坐标系y正方向, 做自动旋转时, 会在此基础上,将包围盒转换到line平行方向上。)\n */\n refAngle?: number;\n /**\n * symbol 是否clip line,即当symbol fill为false时,line在symbol内部的部分是否展示\n * @defalut false\n */\n clip?: boolean;\n /**\n * symbol 样式配置\n */\n style?: Partial<IGraphicAttribute>;\n};\n\nexport interface SegmentAttributes extends IGroupGraphicAttribute {\n /**\n * 可见性\n * @default true\n */\n visible?: boolean;\n /**\n * 是否对 points 进行多段处理,默认为 false,即直接将所有的点连接成线。\n * 如果需要进行多段处理,需要将 points 属性配置为 Point[][] 类型\n * @default false\n */\n multiSegment?: boolean;\n /**\n * 在 `multiSegment` 属性开启的前提下,用于声明那一段线段用来作为主线段,如果不声明,默认全段为主线段\n */\n mainSegmentIndex?: number;\n points: Point[] | Point[][];\n /** 轴线起始点 symbol 配置 */\n startSymbol?: SymbolAttributes;\n /** 轴线末端 symbol 配置 */\n endSymbol?: SymbolAttributes;\n /**\n * 线样式配置\n */\n lineStyle?: ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[];\n\n state?: {\n line?: State<ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[]>;\n symbol?: State<Partial<ISymbolGraphicAttribute>>;\n };\n}\n\ninterface ILineGraphicWithCornerRadius extends Partial<ILineGraphicAttribute> {\n /**\n * 折现拐角处的圆角配置\n */\n cornerRadius?: number;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { IGroup, ISymbol, IGraphic, ISymbolGraphicAttribute, IText } from '@visactor/vrender/es/core';
1
+ import type { IGroup, ISymbol, IGraphic, ISymbolGraphicAttribute, IText } from '@visactor/vrender-core';
2
2
  import { AbstractComponent } from '../core/base';
3
3
  import type { SliderAttributes } from './type';
4
4
  import type { ComponentOptions } from '../interface';
@@ -62,7 +62,7 @@ export declare class Slider extends AbstractComponent<Required<SliderAttributes>
62
62
  private _prePos;
63
63
  private _currentHandler;
64
64
  private _currentValue;
65
- get track(): IGraphic<Partial<import("@visactor/vrender/es/core").IGraphicAttribute>>;
65
+ get track(): IGraphic<Partial<import("@visactor/vrender-core").IGraphicAttribute>>;
66
66
  get currentValue(): {
67
67
  startValue?: number;
68
68
  endValue?: number;
@@ -74,7 +74,7 @@ export declare class Slider extends AbstractComponent<Required<SliderAttributes>
74
74
  constructor(attributes: SliderAttributes, options?: ComponentOptions);
75
75
  setValue(value: number | number[]): void;
76
76
  render(): void;
77
- protected _renderRail(container: IGroup): import("@visactor/vrender/es/core").IRect;
77
+ protected _renderRail(container: IGroup): import("@visactor/vrender-core").IRect;
78
78
  protected _renderHandlers(container: IGroup): void;
79
79
  protected _renderTrack(container: IGroup): void;
80
80
  protected _renderHandler(style: Partial<ISymbolGraphicAttribute>): ISymbol;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Slider = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), core_1 = require("@visactor/vrender/es/core"), base_1 = require("../core/base"), constant_1 = require("./constant"), register_1 = require("./register");
7
+ const vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core"), base_1 = require("../core/base"), constant_1 = require("./constant");
8
8
 
9
9
  function convertValueToRange(value) {
10
10
  return (0, vutils_1.isArray)(value) ? value : [ value, value ];
@@ -14,8 +14,6 @@ function getDefaultCursor(isHorizontal) {
14
14
  return isHorizontal ? "ew-resize" : "ns-resize";
15
15
  }
16
16
 
17
- (0, register_1.loadSliderComponent)();
18
-
19
17
  class Slider extends base_1.AbstractComponent {
20
18
  get track() {
21
19
  return this._track;
@@ -35,9 +33,9 @@ class Slider extends base_1.AbstractComponent {
35
33
  this._startHandlerText = null, this._endHandlerText = null, this._currentHandler = null,
36
34
  this._currentValue = {}, this._onHandlerPointerdown = e => {
37
35
  e.stopPropagation(), this._currentHandler = e.target, this._prePos = this._isHorizontal ? e.clientX : e.clientY,
38
- "browser" === core_1.vglobal.env ? (core_1.vglobal.addEventListener("pointermove", this._onHandlerPointerMove, {
36
+ "browser" === vrender_core_1.vglobal.env ? (vrender_core_1.vglobal.addEventListener("pointermove", this._onHandlerPointerMove, {
39
37
  capture: !0
40
- }), core_1.vglobal.addEventListener("pointerup", this._onHandlerPointerUp)) : (this.stage.addEventListener("pointermove", this._onHandlerPointerMove, {
38
+ }), vrender_core_1.vglobal.addEventListener("pointerup", this._onHandlerPointerUp)) : (this.stage.addEventListener("pointermove", this._onHandlerPointerMove, {
41
39
  capture: !0
42
40
  }), this.stage.addEventListener("pointerup", this._onHandlerPointerUp), this.stage.addEventListener("pointerupoutside", this._onHandlerPointerUp));
43
41
  }, this._onHandlerPointerMove = e => {
@@ -55,16 +53,16 @@ class Slider extends base_1.AbstractComponent {
55
53
  "text" === this._currentHandler.type ? this._updateHandlerText(this._currentHandler, newPos, currentValue) : this._updateHandler(this._currentHandler, newPos, currentValue),
56
54
  this._updateTrack(), this._prePos = currentPos, this._dispatchChangeEvent();
57
55
  }, this._onHandlerPointerUp = e => {
58
- e.preventDefault(), this._currentHandler = null, "browser" === core_1.vglobal.env ? (core_1.vglobal.removeEventListener("pointermove", this._onHandlerPointerMove, {
56
+ e.preventDefault(), this._currentHandler = null, "browser" === vrender_core_1.vglobal.env ? (vrender_core_1.vglobal.removeEventListener("pointermove", this._onHandlerPointerMove, {
59
57
  capture: !0
60
- }), core_1.vglobal.removeEventListener("pointerup", this._onHandlerPointerUp)) : (this.stage.removeEventListener("pointermove", this._onHandlerPointerMove, {
58
+ }), vrender_core_1.vglobal.removeEventListener("pointerup", this._onHandlerPointerUp)) : (this.stage.removeEventListener("pointermove", this._onHandlerPointerMove, {
61
59
  capture: !0
62
60
  }), this.stage.removeEventListener("pointerup", this._onHandlerPointerUp), this.stage.removeEventListener("pointerupoutside", this._onHandlerPointerUp));
63
61
  }, this._onTrackPointerdown = e => {
64
62
  e.stopPropagation(), this._prePos = this._isHorizontal ? e.clientX : e.clientY,
65
- "browser" === core_1.vglobal.env ? (core_1.vglobal.addEventListener("pointermove", this._onTrackPointerMove, {
63
+ "browser" === vrender_core_1.vglobal.env ? (vrender_core_1.vglobal.addEventListener("pointermove", this._onTrackPointerMove, {
66
64
  capture: !0
67
- }), core_1.vglobal.addEventListener("pointerup", this._onTrackPointerUp)) : (this.stage.addEventListener("pointermove", this._onTrackPointerMove, {
65
+ }), vrender_core_1.vglobal.addEventListener("pointerup", this._onTrackPointerUp)) : (this.stage.addEventListener("pointermove", this._onTrackPointerMove, {
68
66
  capture: !0
69
67
  }), this.stage.addEventListener("pointerup", this._onTrackPointerUp), this.stage.addEventListener("pointerupoutside", this._onTrackPointerUp));
70
68
  }, this._onTrackPointerMove = e => {
@@ -95,9 +93,9 @@ class Slider extends base_1.AbstractComponent {
95
93
  }
96
94
  this._prePos = currentPos, this._dispatchChangeEvent();
97
95
  }, this._onTrackPointerUp = e => {
98
- e.preventDefault(), "browser" === core_1.vglobal.env ? (core_1.vglobal.removeEventListener("pointermove", this._onTrackPointerMove, {
96
+ e.preventDefault(), "browser" === vrender_core_1.vglobal.env ? (vrender_core_1.vglobal.removeEventListener("pointermove", this._onTrackPointerMove, {
99
97
  capture: !0
100
- }), core_1.vglobal.removeEventListener("pointerup", this._onTrackPointerUp)) : (this.stage.removeEventListener("pointermove", this._onTrackPointerMove, {
98
+ }), vrender_core_1.vglobal.removeEventListener("pointerup", this._onTrackPointerUp)) : (this.stage.removeEventListener("pointermove", this._onTrackPointerMove, {
101
99
  capture: !0
102
100
  }), this.stage.removeEventListener("pointerup", this._onTrackPointerUp), this.stage.removeEventListener("pointerupoutside", this._onTrackPointerUp));
103
101
  }, this._onRailPointerDown = e => {
@@ -139,7 +137,7 @@ class Slider extends base_1.AbstractComponent {
139
137
  };
140
138
  const isHorizontal = "horizontal" === layout;
141
139
  this._isHorizontal = isHorizontal;
142
- const innerView = core_1.graphicCreator.group({
140
+ const innerView = (0, vrender_core_1.createGroup)({
143
141
  x: 0,
144
142
  y: 0
145
143
  });
@@ -147,7 +145,7 @@ class Slider extends base_1.AbstractComponent {
147
145
  this._innerView = innerView;
148
146
  let startTextShape, startLen = 0;
149
147
  if (startText && startText.visible) {
150
- startTextShape = core_1.graphicCreator.text(Object.assign({
148
+ startTextShape = (0, vrender_core_1.createText)(Object.assign({
151
149
  x: isHorizontal ? 0 : railWidth / 2,
152
150
  y: isHorizontal ? railHeight / 2 : 0,
153
151
  textAlign: isHorizontal ? "start" : "center",
@@ -159,12 +157,12 @@ class Slider extends base_1.AbstractComponent {
159
157
  const space = (0, vutils_1.isValid)(startText.space) ? startText.space : 0;
160
158
  startLen += (isHorizontal ? startTextShape.AABBBounds.width() : startTextShape.AABBBounds.height()) + space;
161
159
  }
162
- const mainContainer = core_1.graphicCreator.group({
160
+ const mainContainer = (0, vrender_core_1.createGroup)({
163
161
  x: isHorizontal ? startLen : 0,
164
162
  y: isHorizontal ? 0 : startLen
165
163
  });
166
164
  innerView.add(mainContainer);
167
- const railContainer = core_1.graphicCreator.group({
165
+ const railContainer = (0, vrender_core_1.createGroup)({
168
166
  x: 0,
169
167
  y: 0
170
168
  });
@@ -173,7 +171,7 @@ class Slider extends base_1.AbstractComponent {
173
171
  mainContainer.add(railContainer), this._renderRail(railContainer), startLen += isHorizontal ? railWidth : railHeight,
174
172
  endText && endText.visible) {
175
173
  const space = (0, vutils_1.isValid)(endText.space) ? endText.space : 0;
176
- endTextShape = core_1.graphicCreator.text(Object.assign({
174
+ endTextShape = (0, vrender_core_1.createText)(Object.assign({
177
175
  x: isHorizontal ? startLen + space : railWidth / 2,
178
176
  y: isHorizontal ? railHeight / 2 : startLen + space,
179
177
  textAlign: isHorizontal ? "start" : "center",
@@ -190,7 +188,7 @@ class Slider extends base_1.AbstractComponent {
190
188
  const {railWidth: railWidth, railHeight: railHeight, railStyle: railStyle, slidable: slidable} = this.attribute;
191
189
  let cursor = "default";
192
190
  !1 !== slidable && (cursor = "pointer");
193
- const railShape = core_1.graphicCreator.rect(Object.assign({
191
+ const railShape = (0, vrender_core_1.createRect)(Object.assign({
194
192
  x: 0,
195
193
  y: 0,
196
194
  width: railWidth,
@@ -242,7 +240,7 @@ class Slider extends base_1.AbstractComponent {
242
240
  } else startValue = min, endValue = (0, vutils_1.clamp)(value, min, max);
243
241
  const isHorizontal = this._isHorizontal, railLen = isHorizontal ? railWidth : railHeight;
244
242
  range || (startValue = min);
245
- const trackContainer = core_1.graphicCreator.group({
243
+ const trackContainer = (0, vrender_core_1.createGroup)({
246
244
  x: 0,
247
245
  y: 0,
248
246
  width: railWidth,
@@ -255,7 +253,8 @@ class Slider extends base_1.AbstractComponent {
255
253
  const draggableTrack = (0, vutils_1.isObject)(range) && !0 === range.draggableTrack;
256
254
  let cursor;
257
255
  cursor = !1 === slidable ? "default" : !1 === range || !1 === draggableTrack ? "pointer" : getDefaultCursor(isHorizontal);
258
- const trackWidth = max === min ? railLen : (endValue - startValue) / (max - min) * railLen, startPos = max === min ? 0 : (startValue - min) / (max - min) * railLen, track = core_1.graphicCreator.rect(Object.assign({
256
+ const trackWidth = max === min ? railLen : (endValue - startValue) / (max - min) * railLen, startPos = max === min ? 0 : (startValue - min) / (max - min) * railLen, track = (0,
257
+ vrender_core_1.createRect)(Object.assign({
259
258
  x: isHorizontal ? startPos : 0,
260
259
  y: isHorizontal ? 0 : startPos,
261
260
  width: isHorizontal ? trackWidth : railWidth,
@@ -266,7 +265,7 @@ class Slider extends base_1.AbstractComponent {
266
265
  container.add(trackContainer);
267
266
  }
268
267
  _renderHandler(style) {
269
- return core_1.graphicCreator.symbol(style);
268
+ return (0, vrender_core_1.createSymbol)(style);
270
269
  }
271
270
  _renderHandlerText(value, position) {
272
271
  var _a, _b, _c;
@@ -281,7 +280,7 @@ class Slider extends base_1.AbstractComponent {
281
280
  textStyle.textAlign = "end", textStyle.x = (railWidth - handlerSize) / 2 - textSpace,
282
281
  textStyle.y = handlerStart) : (textStyle.textBaseline = "middle", textStyle.textAlign = "start",
283
282
  textStyle.x = (railWidth + handlerSize) / 2 + textSpace, textStyle.y = handlerStart);
284
- return core_1.graphicCreator.text(Object.assign(Object.assign({}, textStyle), handlerText.style));
283
+ return (0, vrender_core_1.createText)(Object.assign(Object.assign({}, textStyle), handlerText.style));
285
284
  }
286
285
  _bindEvents() {
287
286
  if (this.attribute.disableTriggerEvent) return;
@@ -350,13 +349,11 @@ class Slider extends base_1.AbstractComponent {
350
349
  this._currentValue.endPos = position);
351
350
  }
352
351
  _dispatchChangeEvent() {
353
- var _a;
354
- const isRange = !!this.attribute.range, currentValue = this._currentValue, changeEvent = new core_1.CustomEvent("change", {
352
+ const isRange = !!this.attribute.range, currentValue = this._currentValue;
353
+ this._dispatchEvent("change", {
355
354
  value: isRange ? [ Math.min(currentValue.endValue, currentValue.startValue), Math.max(currentValue.endValue, currentValue.startValue) ] : currentValue.startValue,
356
355
  position: isRange ? [ Math.min(currentValue.endPos, currentValue.startPos), Math.max(currentValue.endPos, currentValue.startPos) ] : currentValue.startPos
357
356
  });
358
- changeEvent.manager = null === (_a = this.stage) || void 0 === _a ? void 0 : _a.eventSystem.manager,
359
- this.dispatchEvent(changeEvent);
360
357
  }
361
358
  _getHandlers() {
362
359
  let temp, startHandler = this._startHandler, endHandler = this._endHandler;