@visactor/vrender-components 0.17.0-alpha.8 → 0.17.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/cjs/axis/base.d.ts +2 -1
  2. package/cjs/axis/base.js +31 -22
  3. package/cjs/axis/base.js.map +1 -1
  4. package/cjs/axis/circle.d.ts +9 -4
  5. package/cjs/axis/circle.js +9 -6
  6. package/cjs/axis/circle.js.map +1 -1
  7. package/cjs/axis/grid/base.js +6 -8
  8. package/cjs/axis/grid/base.js.map +1 -1
  9. package/cjs/axis/grid/circle.d.ts +2 -1
  10. package/cjs/axis/grid/circle.js +2 -2
  11. package/cjs/axis/grid/circle.js.map +1 -1
  12. package/cjs/axis/grid/line.d.ts +2 -1
  13. package/cjs/axis/grid/line.js +2 -3
  14. package/cjs/axis/grid/line.js.map +1 -1
  15. package/cjs/axis/line.d.ts +3 -3
  16. package/cjs/axis/line.js +41 -48
  17. package/cjs/axis/line.js.map +1 -1
  18. package/cjs/axis/overlap/auto-hide.js +8 -7
  19. package/cjs/axis/overlap/auto-hide.js.map +1 -1
  20. package/cjs/axis/overlap/auto-limit.js.map +1 -1
  21. package/cjs/axis/overlap/auto-rotate.js +3 -35
  22. package/cjs/axis/overlap/auto-rotate.js.map +1 -1
  23. package/cjs/axis/overlap/util.d.ts +3 -0
  24. package/cjs/axis/overlap/util.js +44 -0
  25. package/cjs/axis/overlap/util.js.map +1 -0
  26. package/cjs/axis/type.d.ts +6 -6
  27. package/cjs/axis/type.js.map +1 -1
  28. package/cjs/axis/util.d.ts +8 -0
  29. package/cjs/axis/util.js +34 -0
  30. package/cjs/axis/util.js.map +1 -0
  31. package/cjs/brush/brush.d.ts +2 -1
  32. package/cjs/brush/brush.js +9 -6
  33. package/cjs/brush/brush.js.map +1 -1
  34. package/cjs/brush/type.d.ts +2 -1
  35. package/cjs/brush/type.js.map +1 -1
  36. package/cjs/checkbox/checkbox.d.ts +4 -2
  37. package/cjs/checkbox/checkbox.js +26 -12
  38. package/cjs/checkbox/checkbox.js.map +1 -1
  39. package/cjs/checkbox/index.js +1 -2
  40. package/cjs/checkbox/type.d.ts +5 -1
  41. package/cjs/checkbox/type.js +2 -1
  42. package/cjs/checkbox/type.js.map +1 -1
  43. package/cjs/constant.d.ts +6 -0
  44. package/cjs/constant.js +6 -1
  45. package/cjs/constant.js.map +1 -1
  46. package/cjs/core/base.d.ts +4 -2
  47. package/cjs/core/base.js +9 -6
  48. package/cjs/core/base.js.map +1 -1
  49. package/cjs/core/type.d.ts +15 -0
  50. package/cjs/core/type.js.map +1 -1
  51. package/cjs/crosshair/circle.d.ts +2 -1
  52. package/cjs/crosshair/circle.js +2 -2
  53. package/cjs/crosshair/circle.js.map +1 -1
  54. package/cjs/crosshair/line.d.ts +2 -1
  55. package/cjs/crosshair/line.js +2 -2
  56. package/cjs/crosshair/line.js.map +1 -1
  57. package/cjs/crosshair/polygon.d.ts +2 -1
  58. package/cjs/crosshair/polygon.js +2 -2
  59. package/cjs/crosshair/polygon.js.map +1 -1
  60. package/cjs/crosshair/rect.d.ts +2 -1
  61. package/cjs/crosshair/rect.js +2 -2
  62. package/cjs/crosshair/rect.js.map +1 -1
  63. package/cjs/crosshair/sector.d.ts +2 -1
  64. package/cjs/crosshair/sector.js +2 -2
  65. package/cjs/crosshair/sector.js.map +1 -1
  66. package/cjs/data-zoom/config.d.ts +6 -6
  67. package/cjs/data-zoom/config.js +7 -7
  68. package/cjs/data-zoom/config.js.map +1 -1
  69. package/cjs/data-zoom/data-zoom.d.ts +21 -11
  70. package/cjs/data-zoom/data-zoom.js +80 -64
  71. package/cjs/data-zoom/data-zoom.js.map +1 -1
  72. package/cjs/data-zoom/type.d.ts +17 -5
  73. package/cjs/data-zoom/type.js +6 -1
  74. package/cjs/data-zoom/type.js.map +1 -1
  75. package/cjs/index.d.ts +1 -1
  76. package/cjs/index.js +1 -1
  77. package/cjs/index.js.map +1 -1
  78. package/cjs/indicator/config.js +1 -2
  79. package/cjs/indicator/index.js +2 -1
  80. package/cjs/indicator/indicator.js +43 -7
  81. package/cjs/indicator/indicator.js.map +1 -1
  82. package/cjs/indicator/type.d.ts +2 -1
  83. package/cjs/indicator/type.js.map +1 -1
  84. package/cjs/interface.d.ts +5 -0
  85. package/cjs/interface.js.map +1 -1
  86. package/cjs/label/animate/animate.d.ts +8 -2
  87. package/cjs/label/animate/animate.js +37 -3
  88. package/cjs/label/animate/animate.js.map +1 -1
  89. package/cjs/label/arc.d.ts +7 -7
  90. package/cjs/label/arc.js +6 -19
  91. package/cjs/label/arc.js.map +1 -1
  92. package/cjs/label/area.d.ts +15 -0
  93. package/cjs/label/area.js +41 -0
  94. package/cjs/label/area.js.map +1 -0
  95. package/cjs/label/base.d.ts +28 -18
  96. package/cjs/label/base.js +115 -62
  97. package/cjs/label/base.js.map +1 -1
  98. package/cjs/label/dataLabel.d.ts +2 -1
  99. package/cjs/label/dataLabel.js +13 -8
  100. package/cjs/label/dataLabel.js.map +1 -1
  101. package/cjs/label/index.d.ts +2 -0
  102. package/cjs/label/index.js +1 -0
  103. package/cjs/label/index.js.map +1 -1
  104. package/cjs/label/line-data.d.ts +13 -0
  105. package/cjs/label/line-data.js +31 -0
  106. package/cjs/label/line-data.js.map +1 -0
  107. package/cjs/label/line.d.ts +4 -3
  108. package/cjs/label/line.js +8 -14
  109. package/cjs/label/line.js.map +1 -1
  110. package/cjs/label/polygon.d.ts +2 -1
  111. package/cjs/label/polygon.js +3 -2
  112. package/cjs/label/polygon.js.map +1 -1
  113. package/cjs/label/rect.d.ts +2 -1
  114. package/cjs/label/rect.js +29 -3
  115. package/cjs/label/rect.js.map +1 -1
  116. package/cjs/label/symbol.d.ts +2 -1
  117. package/cjs/label/symbol.js +5 -44
  118. package/cjs/label/symbol.js.map +1 -1
  119. package/cjs/label/type.d.ts +42 -8
  120. package/cjs/label/type.js +1 -2
  121. package/cjs/label/type.js.map +1 -1
  122. package/cjs/label/util.d.ts +11 -1
  123. package/cjs/label/util.js +74 -1
  124. package/cjs/label/util.js.map +1 -1
  125. package/cjs/legend/base.js +1 -1
  126. package/cjs/legend/base.js.map +1 -1
  127. package/cjs/legend/color/color.d.ts +2 -1
  128. package/cjs/legend/color/color.js +6 -5
  129. package/cjs/legend/color/color.js.map +1 -1
  130. package/cjs/legend/constant.js +2 -1
  131. package/cjs/legend/discrete/discrete.d.ts +5 -1
  132. package/cjs/legend/discrete/discrete.js +82 -71
  133. package/cjs/legend/discrete/discrete.js.map +1 -1
  134. package/cjs/legend/discrete/type.d.ts +2 -0
  135. package/cjs/legend/discrete/type.js.map +1 -1
  136. package/cjs/legend/index.d.ts +1 -0
  137. package/cjs/legend/index.js +2 -1
  138. package/cjs/legend/index.js.map +1 -1
  139. package/cjs/legend/size/size.d.ts +2 -3
  140. package/cjs/legend/size/size.js +10 -19
  141. package/cjs/legend/size/size.js.map +1 -1
  142. package/cjs/legend/type.d.ts +1 -0
  143. package/cjs/legend/type.js.map +1 -1
  144. package/cjs/legend/util.d.ts +2 -0
  145. package/cjs/legend/util.js +13 -0
  146. package/cjs/legend/util.js.map +1 -0
  147. package/cjs/link-path/link-path.d.ts +2 -1
  148. package/cjs/link-path/link-path.js +3 -3
  149. package/cjs/link-path/link-path.js.map +1 -1
  150. package/cjs/link-path/type.js +1 -1
  151. package/cjs/marker/area.d.ts +8 -2
  152. package/cjs/marker/area.js +15 -5
  153. package/cjs/marker/area.js.map +1 -1
  154. package/cjs/marker/base.d.ts +1 -0
  155. package/cjs/marker/base.js +14 -10
  156. package/cjs/marker/base.js.map +1 -1
  157. package/cjs/marker/line.d.ts +8 -1
  158. package/cjs/marker/line.js +15 -3
  159. package/cjs/marker/line.js.map +1 -1
  160. package/cjs/marker/point.d.ts +7 -4
  161. package/cjs/marker/point.js +10 -7
  162. package/cjs/marker/point.js.map +1 -1
  163. package/cjs/marker/type.d.ts +16 -16
  164. package/cjs/marker/type.js.map +1 -1
  165. package/cjs/pager/pager.d.ts +2 -1
  166. package/cjs/pager/pager.js +9 -10
  167. package/cjs/pager/pager.js.map +1 -1
  168. package/cjs/pager/type.d.ts +1 -0
  169. package/cjs/pager/type.js.map +1 -1
  170. package/cjs/player/base-player.d.ts +2 -1
  171. package/cjs/player/base-player.js +7 -5
  172. package/cjs/player/base-player.js.map +1 -1
  173. package/cjs/player/continuous-player.js +2 -2
  174. package/cjs/player/continuous-player.js.map +1 -1
  175. package/cjs/player/controller/controller.d.ts +2 -1
  176. package/cjs/player/controller/controller.js +5 -5
  177. package/cjs/player/controller/controller.js.map +1 -1
  178. package/cjs/player/controller/type.d.ts +1 -0
  179. package/cjs/player/controller/type.js.map +1 -1
  180. package/cjs/player/discrete-player.d.ts +2 -1
  181. package/cjs/player/discrete-player.js +5 -5
  182. package/cjs/player/discrete-player.js.map +1 -1
  183. package/cjs/player/type/base.d.ts +1 -0
  184. package/cjs/player/type/base.js.map +1 -1
  185. package/cjs/poptip/poptip-plugin.d.ts +1 -0
  186. package/cjs/poptip/poptip-plugin.js +6 -3
  187. package/cjs/poptip/poptip-plugin.js.map +1 -1
  188. package/cjs/poptip/poptip.d.ts +2 -1
  189. package/cjs/poptip/poptip.js +3 -3
  190. package/cjs/poptip/poptip.js.map +1 -1
  191. package/cjs/scrollbar/scrollbar.d.ts +6 -1
  192. package/cjs/scrollbar/scrollbar.js +40 -20
  193. package/cjs/scrollbar/scrollbar.js.map +1 -1
  194. package/cjs/scrollbar/type.d.ts +5 -1
  195. package/cjs/scrollbar/type.js.map +1 -1
  196. package/cjs/segment/segment.d.ts +2 -1
  197. package/cjs/segment/segment.js +8 -6
  198. package/cjs/segment/segment.js.map +1 -1
  199. package/cjs/segment/type.d.ts +6 -2
  200. package/cjs/segment/type.js.map +1 -1
  201. package/cjs/slider/slider.d.ts +2 -1
  202. package/cjs/slider/slider.js +38 -33
  203. package/cjs/slider/slider.js.map +1 -1
  204. package/cjs/slider/type.d.ts +1 -0
  205. package/cjs/slider/type.js.map +1 -1
  206. package/cjs/tag/tag.d.ts +2 -1
  207. package/cjs/tag/tag.js +90 -43
  208. package/cjs/tag/tag.js.map +1 -1
  209. package/cjs/tag/type.d.ts +4 -5
  210. package/cjs/tag/type.js.map +1 -1
  211. package/cjs/title/title.d.ts +2 -1
  212. package/cjs/title/title.js +92 -59
  213. package/cjs/title/title.js.map +1 -1
  214. package/cjs/title/type.d.ts +10 -5
  215. package/cjs/title/type.js.map +1 -1
  216. package/cjs/tooltip/tooltip.d.ts +2 -1
  217. package/cjs/tooltip/tooltip.js +53 -15
  218. package/cjs/tooltip/tooltip.js.map +1 -1
  219. package/cjs/tooltip/type.d.ts +7 -2
  220. package/cjs/tooltip/type.js.map +1 -1
  221. package/cjs/tooltip/util.js +9 -1
  222. package/cjs/tooltip/util.js.map +1 -1
  223. package/cjs/util/label-smartInvert.d.ts +2 -2
  224. package/cjs/util/label-smartInvert.js +9 -5
  225. package/cjs/util/label-smartInvert.js.map +1 -1
  226. package/cjs/util/text.d.ts +2 -2
  227. package/dist/index.js +11581 -15729
  228. package/dist/index.min.js +1 -1
  229. package/es/axis/base.d.ts +2 -1
  230. package/es/axis/base.js +33 -19
  231. package/es/axis/base.js.map +1 -1
  232. package/es/axis/circle.d.ts +9 -4
  233. package/es/axis/circle.js +11 -6
  234. package/es/axis/circle.js.map +1 -1
  235. package/es/axis/grid/base.js +7 -7
  236. package/es/axis/grid/base.js.map +1 -1
  237. package/es/axis/grid/circle.d.ts +2 -1
  238. package/es/axis/grid/circle.js +2 -2
  239. package/es/axis/grid/circle.js.map +1 -1
  240. package/es/axis/grid/line.d.ts +2 -1
  241. package/es/axis/grid/line.js +2 -2
  242. package/es/axis/grid/line.js.map +1 -1
  243. package/es/axis/line.d.ts +3 -3
  244. package/es/axis/line.js +42 -48
  245. package/es/axis/line.js.map +1 -1
  246. package/es/axis/overlap/auto-hide.js +9 -6
  247. package/es/axis/overlap/auto-hide.js.map +1 -1
  248. package/es/axis/overlap/auto-limit.js.map +1 -1
  249. package/es/axis/overlap/auto-rotate.js +3 -33
  250. package/es/axis/overlap/auto-rotate.js.map +1 -1
  251. package/es/axis/overlap/util.d.ts +3 -0
  252. package/es/axis/overlap/util.js +35 -0
  253. package/es/axis/overlap/util.js.map +1 -0
  254. package/es/axis/type.d.ts +6 -6
  255. package/es/axis/type.js.map +1 -1
  256. package/es/axis/util.d.ts +8 -0
  257. package/es/axis/util.js +28 -0
  258. package/es/axis/util.js.map +1 -0
  259. package/es/brush/brush.d.ts +2 -1
  260. package/es/brush/brush.js +13 -9
  261. package/es/brush/brush.js.map +1 -1
  262. package/es/brush/type.d.ts +2 -1
  263. package/es/brush/type.js.map +1 -1
  264. package/es/checkbox/checkbox.d.ts +4 -2
  265. package/es/checkbox/checkbox.js +25 -10
  266. package/es/checkbox/checkbox.js.map +1 -1
  267. package/es/checkbox/index.js +1 -2
  268. package/es/checkbox/type.d.ts +5 -1
  269. package/es/checkbox/type.js +2 -1
  270. package/es/checkbox/type.js.map +1 -1
  271. package/es/constant.d.ts +6 -0
  272. package/es/constant.js +7 -0
  273. package/es/constant.js.map +1 -1
  274. package/es/core/base.d.ts +4 -2
  275. package/es/core/base.js +6 -4
  276. package/es/core/base.js.map +1 -1
  277. package/es/core/type.d.ts +15 -0
  278. package/es/core/type.js.map +1 -1
  279. package/es/crosshair/circle.d.ts +2 -1
  280. package/es/crosshair/circle.js +2 -2
  281. package/es/crosshair/circle.js.map +1 -1
  282. package/es/crosshair/line.d.ts +2 -1
  283. package/es/crosshair/line.js +2 -2
  284. package/es/crosshair/line.js.map +1 -1
  285. package/es/crosshair/polygon.d.ts +2 -1
  286. package/es/crosshair/polygon.js +2 -2
  287. package/es/crosshair/polygon.js.map +1 -1
  288. package/es/crosshair/rect.d.ts +2 -1
  289. package/es/crosshair/rect.js +2 -2
  290. package/es/crosshair/rect.js.map +1 -1
  291. package/es/crosshair/sector.d.ts +2 -1
  292. package/es/crosshair/sector.js +2 -2
  293. package/es/crosshair/sector.js.map +1 -1
  294. package/es/data-zoom/config.d.ts +6 -6
  295. package/es/data-zoom/config.js +6 -7
  296. package/es/data-zoom/config.js.map +1 -1
  297. package/es/data-zoom/data-zoom.d.ts +21 -11
  298. package/es/data-zoom/data-zoom.js +77 -58
  299. package/es/data-zoom/data-zoom.js.map +1 -1
  300. package/es/data-zoom/type.d.ts +17 -5
  301. package/es/data-zoom/type.js +6 -1
  302. package/es/data-zoom/type.js.map +1 -1
  303. package/es/index.d.ts +1 -1
  304. package/es/index.js +1 -1
  305. package/es/index.js.map +1 -1
  306. package/es/indicator/config.js +1 -2
  307. package/es/indicator/index.js +2 -1
  308. package/es/indicator/indicator.js +44 -6
  309. package/es/indicator/indicator.js.map +1 -1
  310. package/es/indicator/type.d.ts +2 -1
  311. package/es/indicator/type.js.map +1 -1
  312. package/es/interface.d.ts +5 -0
  313. package/es/interface.js.map +1 -1
  314. package/es/label/animate/animate.d.ts +8 -2
  315. package/es/label/animate/animate.js +35 -0
  316. package/es/label/animate/animate.js.map +1 -1
  317. package/es/label/arc.d.ts +7 -7
  318. package/es/label/arc.js +7 -19
  319. package/es/label/arc.js.map +1 -1
  320. package/es/label/area.d.ts +15 -0
  321. package/es/label/area.js +39 -0
  322. package/es/label/area.js.map +1 -0
  323. package/es/label/base.d.ts +28 -18
  324. package/es/label/base.js +117 -62
  325. package/es/label/base.js.map +1 -1
  326. package/es/label/dataLabel.d.ts +2 -1
  327. package/es/label/dataLabel.js +18 -7
  328. package/es/label/dataLabel.js.map +1 -1
  329. package/es/label/index.d.ts +2 -0
  330. package/es/label/index.js +4 -0
  331. package/es/label/index.js.map +1 -1
  332. package/es/label/line-data.d.ts +13 -0
  333. package/es/label/line-data.js +29 -0
  334. package/es/label/line-data.js.map +1 -0
  335. package/es/label/line.d.ts +4 -3
  336. package/es/label/line.js +9 -13
  337. package/es/label/line.js.map +1 -1
  338. package/es/label/polygon.d.ts +2 -1
  339. package/es/label/polygon.js +3 -2
  340. package/es/label/polygon.js.map +1 -1
  341. package/es/label/rect.d.ts +2 -1
  342. package/es/label/rect.js +29 -3
  343. package/es/label/rect.js.map +1 -1
  344. package/es/label/symbol.d.ts +2 -1
  345. package/es/label/symbol.js +6 -43
  346. package/es/label/symbol.js.map +1 -1
  347. package/es/label/type.d.ts +42 -8
  348. package/es/label/type.js +1 -2
  349. package/es/label/type.js.map +1 -1
  350. package/es/label/util.d.ts +11 -1
  351. package/es/label/util.js +69 -0
  352. package/es/label/util.js.map +1 -1
  353. package/es/legend/base.js +2 -2
  354. package/es/legend/base.js.map +1 -1
  355. package/es/legend/color/color.d.ts +2 -1
  356. package/es/legend/color/color.js +7 -6
  357. package/es/legend/color/color.js.map +1 -1
  358. package/es/legend/constant.js +2 -1
  359. package/es/legend/discrete/discrete.d.ts +5 -1
  360. package/es/legend/discrete/discrete.js +82 -68
  361. package/es/legend/discrete/discrete.js.map +1 -1
  362. package/es/legend/discrete/type.d.ts +2 -0
  363. package/es/legend/discrete/type.js.map +1 -1
  364. package/es/legend/index.d.ts +1 -0
  365. package/es/legend/index.js +2 -0
  366. package/es/legend/index.js.map +1 -1
  367. package/es/legend/size/size.d.ts +2 -3
  368. package/es/legend/size/size.js +10 -14
  369. package/es/legend/size/size.js.map +1 -1
  370. package/es/legend/type.d.ts +1 -0
  371. package/es/legend/type.js.map +1 -1
  372. package/es/legend/util.d.ts +2 -0
  373. package/es/legend/util.js +7 -0
  374. package/es/legend/util.js.map +1 -0
  375. package/es/link-path/link-path.d.ts +2 -1
  376. package/es/link-path/link-path.js +3 -3
  377. package/es/link-path/link-path.js.map +1 -1
  378. package/es/link-path/type.js +1 -1
  379. package/es/marker/area.d.ts +8 -2
  380. package/es/marker/area.js +16 -5
  381. package/es/marker/area.js.map +1 -1
  382. package/es/marker/base.d.ts +1 -0
  383. package/es/marker/base.js +15 -11
  384. package/es/marker/base.js.map +1 -1
  385. package/es/marker/line.d.ts +8 -1
  386. package/es/marker/line.js +15 -3
  387. package/es/marker/line.js.map +1 -1
  388. package/es/marker/point.d.ts +7 -4
  389. package/es/marker/point.js +11 -6
  390. package/es/marker/point.js.map +1 -1
  391. package/es/marker/type.d.ts +16 -16
  392. package/es/marker/type.js.map +1 -1
  393. package/es/pager/pager.d.ts +2 -1
  394. package/es/pager/pager.js +10 -10
  395. package/es/pager/pager.js.map +1 -1
  396. package/es/pager/type.d.ts +1 -0
  397. package/es/pager/type.js.map +1 -1
  398. package/es/player/base-player.d.ts +2 -1
  399. package/es/player/base-player.js +7 -5
  400. package/es/player/base-player.js.map +1 -1
  401. package/es/player/continuous-player.js +2 -2
  402. package/es/player/continuous-player.js.map +1 -1
  403. package/es/player/controller/controller.d.ts +2 -1
  404. package/es/player/controller/controller.js +5 -5
  405. package/es/player/controller/controller.js.map +1 -1
  406. package/es/player/controller/type.d.ts +1 -0
  407. package/es/player/controller/type.js.map +1 -1
  408. package/es/player/discrete-player.d.ts +2 -1
  409. package/es/player/discrete-player.js +5 -4
  410. package/es/player/discrete-player.js.map +1 -1
  411. package/es/player/type/base.d.ts +1 -0
  412. package/es/player/type/base.js.map +1 -1
  413. package/es/poptip/poptip-plugin.d.ts +1 -0
  414. package/es/poptip/poptip-plugin.js +6 -3
  415. package/es/poptip/poptip-plugin.js.map +1 -1
  416. package/es/poptip/poptip.d.ts +2 -1
  417. package/es/poptip/poptip.js +3 -2
  418. package/es/poptip/poptip.js.map +1 -1
  419. package/es/scrollbar/scrollbar.d.ts +6 -1
  420. package/es/scrollbar/scrollbar.js +42 -20
  421. package/es/scrollbar/scrollbar.js.map +1 -1
  422. package/es/scrollbar/type.d.ts +5 -1
  423. package/es/scrollbar/type.js.map +1 -1
  424. package/es/segment/segment.d.ts +2 -1
  425. package/es/segment/segment.js +9 -7
  426. package/es/segment/segment.js.map +1 -1
  427. package/es/segment/type.d.ts +6 -2
  428. package/es/segment/type.js.map +1 -1
  429. package/es/slider/slider.d.ts +2 -1
  430. package/es/slider/slider.js +39 -33
  431. package/es/slider/slider.js.map +1 -1
  432. package/es/slider/type.d.ts +1 -0
  433. package/es/slider/type.js.map +1 -1
  434. package/es/tag/tag.d.ts +2 -1
  435. package/es/tag/tag.js +89 -40
  436. package/es/tag/tag.js.map +1 -1
  437. package/es/tag/type.d.ts +4 -5
  438. package/es/tag/type.js.map +1 -1
  439. package/es/title/title.d.ts +2 -1
  440. package/es/title/title.js +91 -55
  441. package/es/title/title.js.map +1 -1
  442. package/es/title/type.d.ts +10 -5
  443. package/es/title/type.js.map +1 -1
  444. package/es/tooltip/tooltip.d.ts +2 -1
  445. package/es/tooltip/tooltip.js +55 -15
  446. package/es/tooltip/tooltip.js.map +1 -1
  447. package/es/tooltip/type.d.ts +7 -2
  448. package/es/tooltip/type.js.map +1 -1
  449. package/es/tooltip/util.js +9 -1
  450. package/es/tooltip/util.js.map +1 -1
  451. package/es/util/label-smartInvert.d.ts +2 -2
  452. package/es/util/label-smartInvert.js +9 -5
  453. package/es/util/label-smartInvert.js.map +1 -1
  454. package/es/util/text.d.ts +2 -2
  455. package/package.json +6 -6
@@ -1,4 +1,5 @@
1
1
  import type { GraphicEventType, IGroupGraphicAttribute, IPolygonGraphicAttribute } from '@visactor/vrender-core';
2
+ import type { IDelayType } from '../interface';
2
3
  export interface BrushAttributes extends IGroupGraphicAttribute {
3
4
  trigger?: GraphicEventType;
4
5
  updateTrigger?: GraphicEventType;
@@ -21,10 +22,10 @@ export interface BrushAttributes extends IGroupGraphicAttribute {
21
22
  sizeThreshold?: number;
22
23
  delayType?: IDelayType;
23
24
  delayTime?: number;
25
+ disableTriggerEvent?: boolean;
24
26
  }
25
27
  export type IBrushType = 'x' | 'y' | 'rect' | 'polygon';
26
28
  export type IBrushMode = 'single' | 'multiple';
27
- export type IDelayType = 'debounce' | 'throttle';
28
29
  export declare enum IOperateType {
29
30
  drawStart = "drawStart",
30
31
  drawEnd = "drawEnd",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/brush/type.ts"],"names":[],"mappings":";;;AAqFA,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,yCAAyB,CAAA;AAC3B,CAAC,EARW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAQvB","file":"type.js","sourcesContent":["import type { GraphicEventType, IGroupGraphicAttribute, IPolygonGraphicAttribute } from '@visactor/vrender-core';\n\nexport interface BrushAttributes extends IGroupGraphicAttribute {\n /**\n * 触发框选的事件名称\n */\n trigger?: GraphicEventType;\n /**\n * 更新框选的事件名称\n */\n updateTrigger?: GraphicEventType;\n /**\n * 结束框选的事件名称\n */\n endTrigger?: GraphicEventType;\n /**\n * 清空框选的事件名称\n */\n resetTrigger?: GraphicEventType;\n /**\n * 可交互范围\n */\n interactiveRange?: {\n minX: number;\n maxX: number;\n minY: number;\n maxY: number;\n };\n /**\n * 框选模式\n * @default 'single'\n */\n brushMode?: IBrushMode;\n /**\n * 框选类型\n * @default 'rect'\n */\n brushType?: IBrushType;\n /**\n * brushType为'y'时, x的左右边界位置, 不配置的话不会生效\n * @default [0,0]\n */\n xRange?: [number, number];\n /**\n * brushType为'x'时, y的左右边界位置, 不配置的话不会生效\n * @default [0,0]\n */\n yRange?: [number, number];\n /** 是否展示brush mask */\n hasMask?: boolean;\n /**\n * 框选区域的样式\n */\n brushStyle?: IPolygonGraphicAttribute;\n /**\n * 是否可被平移\n * @default true\n */\n brushMoved?: boolean;\n /**\n * brushMode为'single'时,是否单击清除选框\n * @default true\n */\n removeOnClick?: boolean;\n /**\n * brush选框的大小阈值\n */\n sizeThreshold?: number;\n /**\n * 事件触发延迟类型\n * @default 'throttle'\n */\n delayType?: IDelayType;\n /**\n * 事件触发延迟时长\n * @default 0\n */\n delayTime?: number;\n}\n\nexport type IBrushType = 'x' | 'y' | 'rect' | 'polygon';\nexport type IBrushMode = 'single' | 'multiple';\n\nexport type IDelayType = 'debounce' | 'throttle';\n\nexport enum IOperateType {\n drawStart = 'drawStart',\n drawEnd = 'drawEnd',\n drawing = 'drawing',\n moving = 'moving',\n moveStart = 'moveStart',\n moveEnd = 'moveEnd',\n brushClear = 'brushClear'\n}\n"]}
1
+ {"version":3,"sources":["../src/brush/type.ts"],"names":[],"mappings":";;;AAyFA,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,yCAAyB,CAAA;AAC3B,CAAC,EARW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAQvB","file":"type.js","sourcesContent":["import type { GraphicEventType, IGroupGraphicAttribute, IPolygonGraphicAttribute } from '@visactor/vrender-core';\nimport type { IDelayType } from '../interface';\n\nexport interface BrushAttributes extends IGroupGraphicAttribute {\n /**\n * 触发框选的事件名称\n */\n trigger?: GraphicEventType;\n /**\n * 更新框选的事件名称\n */\n updateTrigger?: GraphicEventType;\n /**\n * 结束框选的事件名称\n */\n endTrigger?: GraphicEventType;\n /**\n * 清空框选的事件名称\n */\n resetTrigger?: GraphicEventType;\n /**\n * 可交互范围\n */\n interactiveRange?: {\n minX: number;\n maxX: number;\n minY: number;\n maxY: number;\n };\n /**\n * 框选模式\n * @default 'single'\n */\n brushMode?: IBrushMode;\n /**\n * 框选类型\n * @default 'rect'\n */\n brushType?: IBrushType;\n /**\n * brushType为'y'时, x的左右边界位置, 不配置的话不会生效\n * @default [0,0]\n */\n xRange?: [number, number];\n /**\n * brushType为'x'时, y的左右边界位置, 不配置的话不会生效\n * @default [0,0]\n */\n yRange?: [number, number];\n /** 是否展示brush mask */\n hasMask?: boolean;\n /**\n * 框选区域的样式\n */\n brushStyle?: IPolygonGraphicAttribute;\n /**\n * 是否可被平移\n * @default true\n */\n brushMoved?: boolean;\n /**\n * brushMode为'single'时,是否单击清除选框\n * @default true\n */\n removeOnClick?: boolean;\n /**\n * brush选框的大小阈值\n */\n sizeThreshold?: number;\n /**\n * 事件触发延迟类型\n * @default 'throttle'\n */\n delayType?: IDelayType;\n /**\n * 事件触发延迟时长\n * @default 0\n */\n delayTime?: number;\n /**\n * 关闭交互效果\n * @default false\n */\n disableTriggerEvent?: boolean;\n}\n\nexport type IBrushType = 'x' | 'y' | 'rect' | 'polygon';\nexport type IBrushMode = 'single' | 'multiple';\n\nexport enum IOperateType {\n drawStart = 'drawStart',\n drawEnd = 'drawEnd',\n drawing = 'drawing',\n moving = 'moving',\n moveStart = 'moveStart',\n moveEnd = 'moveEnd',\n brushClear = 'brushClear'\n}\n"]}
@@ -1,12 +1,14 @@
1
1
  import { AbstractComponent } from '../core/base';
2
2
  import type { CheckboxAttributes } from './type';
3
3
  import { Image, Rect, WrapText } from '@visactor/vrender-core';
4
+ import type { ComponentOptions } from '../interface';
4
5
  export declare class CheckBox extends AbstractComponent<Required<CheckboxAttributes>> {
5
6
  static defaultAttributes: Partial<CheckboxAttributes>;
6
7
  _box: Rect;
7
- _icon: Image;
8
+ _checkIcon: Image;
9
+ _indeterminateIcon: Image;
8
10
  _text: WrapText;
9
- constructor(attributes: CheckboxAttributes);
11
+ constructor(attributes: CheckboxAttributes, options?: ComponentOptions);
10
12
  render(): void;
11
13
  renderBox(): void;
12
14
  renderIcon(): void;
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.CheckBox = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), base_1 = require("../core/base"), vrender_core_1 = require("@visactor/vrender-core"), svg = '<svg width="200" height="200" viewBox="0 0 1024 1024" fill="#fff" xmlns="http://www.w3.org/2000/svg"><path d="M877.44815445 206.10060629a64.72691371 64.72691371 0 0 0-95.14856334 4.01306852L380.73381888 685.46812814 235.22771741 533.48933518a64.72691371 64.72691371 0 0 0-92.43003222-1.03563036l-45.82665557 45.82665443a64.72691371 64.72691371 0 0 0-0.90617629 90.61767965l239.61903446 250.10479331a64.72691371 64.72691371 0 0 0 71.19960405 15.14609778 64.33855261 64.33855261 0 0 0 35.08198741-21.23042702l36.24707186-42.71976334 40.5190474-40.77795556-3.36579926-3.49525333 411.40426297-486.74638962a64.72691371 64.72691371 0 0 0-3.88361443-87.64024149l-45.3088404-45.43829334z"></path></svg>';
7
+ const vutils_1 = require("@visactor/vutils"), base_1 = require("../core/base"), vrender_core_1 = require("@visactor/vrender-core"), checkSvg = '<svg width="200" height="200" viewBox="0 0 1024 1024" fill="#fff" xmlns="http://www.w3.org/2000/svg"><path d="M877.44815445 206.10060629a64.72691371 64.72691371 0 0 0-95.14856334 4.01306852L380.73381888 685.46812814 235.22771741 533.48933518a64.72691371 64.72691371 0 0 0-92.43003222-1.03563036l-45.82665557 45.82665443a64.72691371 64.72691371 0 0 0-0.90617629 90.61767965l239.61903446 250.10479331a64.72691371 64.72691371 0 0 0 71.19960405 15.14609778 64.33855261 64.33855261 0 0 0 35.08198741-21.23042702l36.24707186-42.71976334 40.5190474-40.77795556-3.36579926-3.49525333 411.40426297-486.74638962a64.72691371 64.72691371 0 0 0-3.88361443-87.64024149l-45.3088404-45.43829334z"></path></svg>', indeterminateSvg = '<svg width="200" height="200" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none"><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5" d="M5 12h14"/></svg>';
8
8
 
9
9
  class CheckBox extends base_1.AbstractComponent {
10
- constructor(attributes) {
11
- super((0, vutils_1.merge)({}, CheckBox.defaultAttributes, attributes)), this.renderGroup(),
12
- this.onBeforeAttributeUpdate = (val, attributes, key) => {
10
+ constructor(attributes, options) {
11
+ super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, CheckBox.defaultAttributes, attributes)),
12
+ this.renderGroup(), this.onBeforeAttributeUpdate = (val, attributes, key) => {
13
13
  "interactive" in val && this.setAttribute("pickable", val.interactive), "disabled" in val && this.setAttribute("cursor", val.disable ? this.attribute.disableCursor : this.attribute.cursor);
14
14
  }, this.addEventListener("click", this.handleClick);
15
15
  }
@@ -17,18 +17,26 @@ class CheckBox extends base_1.AbstractComponent {
17
17
  this.removeAllChild(), this.renderBox(), this.renderIcon(), this.renderText(), this.layout();
18
18
  }
19
19
  renderBox() {
20
- this._box = new vrender_core_1.Rect((0, vutils_1.merge)({}, this.attribute.box)),
21
- this.attribute.checked && this.attribute.disabled ? this._box.setAttributes({
20
+ this._box = new vrender_core_1.Rect((0, vutils_1.merge)({}, this.attribute.box));
21
+ const isCheckedOrIndeterminate = this.attribute.checked || this.attribute.indeterminate;
22
+ isCheckedOrIndeterminate && this.attribute.disabled ? this._box.setAttributes({
22
23
  fill: this.attribute.box.disableCheckedFill,
23
24
  stroke: this.attribute.box.disableCheckedStroke
24
- }) : this.attribute.checked && this._box.setAttributes({
25
+ }) : isCheckedOrIndeterminate && this._box.setAttributes({
25
26
  fill: this.attribute.box.checkedFill,
26
27
  stroke: this.attribute.box.checkedStroke
27
28
  }), this.appendChild(this._box);
28
29
  }
29
30
  renderIcon() {
30
- this._icon = new vrender_core_1.Image((0, vutils_1.merge)({}, this.attribute.icon)),
31
- this.attribute.checked || this._icon.setAttribute("visible", !1), this.appendChild(this._icon);
31
+ this._checkIcon = new vrender_core_1.Image((0, vutils_1.merge)({
32
+ image: this.attribute.icon.checkIconImage
33
+ }, this.attribute.icon)), this.appendChild(this._checkIcon), this._indeterminateIcon = new vrender_core_1.Image((0,
34
+ vutils_1.merge)({
35
+ image: this.attribute.icon.indeterminateIconImage
36
+ }, this.attribute.icon)), this.appendChild(this._indeterminateIcon), this.attribute.checked ? (this._checkIcon.setAttribute("visible", !0),
37
+ this._indeterminateIcon.setAttribute("visible", !1)) : this.attribute.indeterminate ? (this._checkIcon.setAttribute("visible", !1),
38
+ this._indeterminateIcon.setAttribute("visible", !0)) : (this._checkIcon.setAttribute("visible", !1),
39
+ this._indeterminateIcon.setAttribute("visible", !1));
32
40
  }
33
41
  renderText() {
34
42
  this._text = new vrender_core_1.WrapText((0, vutils_1.merge)({}, this.attribute.text)),
@@ -43,7 +51,10 @@ class CheckBox extends base_1.AbstractComponent {
43
51
  this._box.setAttributes({
44
52
  x: boxX,
45
53
  y: boxY
46
- }), this._icon.setAttributes({
54
+ }), this._checkIcon.setAttributes({
55
+ x: iconX,
56
+ y: iconY
57
+ }), this._indeterminateIcon.setAttributes({
47
58
  x: iconX,
48
59
  y: iconY
49
60
  }), this._text.setAttributes({
@@ -54,7 +65,8 @@ class CheckBox extends base_1.AbstractComponent {
54
65
  handleClick() {
55
66
  var _a;
56
67
  if (this.attribute.disabled) return;
57
- this.attribute.checked ? this.setAttribute("checked", !1) : this.setAttribute("checked", !0);
68
+ this.attribute.checked ? (this.setAttribute("checked", !1), this.setAttribute("indeterminate", !1)) : (this.setAttribute("checked", !0),
69
+ this.setAttribute("indeterminate", !1));
58
70
  const changeEvent = new vrender_core_1.CustomEvent("checkbox_state_change", {
59
71
  eventType: "checkbox_state_change",
60
72
  checked: this.attribute.checked
@@ -68,6 +80,7 @@ exports.CheckBox = CheckBox, CheckBox.defaultAttributes = {
68
80
  interactive: !0,
69
81
  disabled: !1,
70
82
  checked: !1,
83
+ indeterminate: !1,
71
84
  cursor: "pointer",
72
85
  disableCursor: "not-allowed",
73
86
  spaceBetweenTextAndIcon: 8,
@@ -80,7 +93,8 @@ exports.CheckBox = CheckBox, CheckBox.defaultAttributes = {
80
93
  pickable: !1
81
94
  },
82
95
  icon: {
83
- image: svg,
96
+ checkIconImage: checkSvg,
97
+ indeterminateIconImage: indeterminateSvg,
84
98
  width: 10,
85
99
  height: 10,
86
100
  pickable: !1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/checkbox/checkbox.ts"],"names":[],"mappings":"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","file":"checkbox.js","sourcesContent":["import { merge } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport type { CheckboxAttributes } from './type';\nimport { CustomEvent, Image, Rect, WrapText } from '@visactor/vrender-core';\n\nconst svg =\n '<svg width=\"200\" height=\"200\" viewBox=\"0 0 1024 1024\" fill=\"#fff\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M877.44815445 206.10060629a64.72691371 64.72691371 0 0 0-95.14856334 4.01306852L380.73381888 685.46812814 235.22771741 533.48933518a64.72691371 64.72691371 0 0 0-92.43003222-1.03563036l-45.82665557 45.82665443a64.72691371 64.72691371 0 0 0-0.90617629 90.61767965l239.61903446 250.10479331a64.72691371 64.72691371 0 0 0 71.19960405 15.14609778 64.33855261 64.33855261 0 0 0 35.08198741-21.23042702l36.24707186-42.71976334 40.5190474-40.77795556-3.36579926-3.49525333 411.40426297-486.74638962a64.72691371 64.72691371 0 0 0-3.88361443-87.64024149l-45.3088404-45.43829334z\"></path></svg>';\n\nexport class CheckBox extends AbstractComponent<Required<CheckboxAttributes>> {\n static defaultAttributes: Partial<CheckboxAttributes> = {\n interactive: true,\n disabled: false,\n checked: false,\n cursor: 'pointer',\n disableCursor: 'not-allowed',\n spaceBetweenTextAndIcon: 8,\n text: {\n text: 'text',\n fontSize: 14,\n fill: '#000',\n disableFill: 'rgb(201,205,212)',\n textBaseline: 'top',\n pickable: false\n },\n icon: {\n image: svg,\n width: 10,\n height: 10,\n pickable: false\n },\n box: {\n width: 14,\n height: 14,\n cornerRadius: 2,\n fill: '#fff',\n stroke: 'rgb(229,230,235)',\n disableFill: 'rgb(242,243,245)',\n checkedFill: 'rgb(22, 93, 255)',\n checkedStroke: 'rgb(22, 93, 255)',\n disableCheckedFill: 'rgb(148, 191, 255)',\n disableCheckedStroke: 'rgb(148, 191, 255)',\n pickable: false\n }\n };\n _box: Rect;\n _icon: Image;\n _text: WrapText;\n\n constructor(attributes: CheckboxAttributes) {\n super(merge({}, CheckBox.defaultAttributes, attributes));\n this.renderGroup();\n\n this.onBeforeAttributeUpdate = (val: any, attributes: any, key: null | string | string[]) => {\n if ('interactive' in val) {\n this.setAttribute('pickable', val.interactive);\n }\n if ('disabled' in val) {\n this.setAttribute('cursor', val.disable ? this.attribute.disableCursor : this.attribute.cursor);\n }\n return undefined;\n };\n\n this.addEventListener('click', this.handleClick);\n }\n\n render() {\n this.removeAllChild();\n\n this.renderBox();\n this.renderIcon();\n this.renderText();\n this.layout();\n }\n\n renderBox() {\n this._box = new Rect(merge({}, this.attribute.box));\n if (this.attribute.checked && this.attribute.disabled) {\n this._box.setAttributes({\n fill: this.attribute.box.disableCheckedFill,\n stroke: this.attribute.box.disableCheckedStroke\n });\n } else if (this.attribute.checked) {\n this._box.setAttributes({\n fill: this.attribute.box.checkedFill,\n stroke: this.attribute.box.checkedStroke\n });\n }\n this.appendChild(this._box);\n }\n\n renderIcon() {\n this._icon = new Image(merge({}, this.attribute.icon));\n if (!this.attribute.checked) {\n this._icon.setAttribute('visible', false);\n }\n this.appendChild(this._icon);\n }\n\n renderText() {\n this._text = new WrapText(merge({}, this.attribute.text));\n if (this.attribute.disabled) {\n this._text.setAttribute('fill', this.attribute.text.disableFill);\n }\n this.appendChild(this._text);\n }\n\n renderGroup() {\n if (!this.attribute.interactive) {\n this.setAttribute('pickable', false);\n }\n if (this.attribute.disabled) {\n this.setAttribute('cursor', this.attribute.disableCursor);\n }\n }\n\n layout() {\n const boxHeight = this.attribute.box.height;\n const iconHeight = this.attribute.icon.height;\n const textHeight = this._text.AABBBounds.height();\n const maxHeight = Math.max(boxHeight, iconHeight, textHeight);\n const boxY = maxHeight / 2 - boxHeight / 2;\n const iconY = maxHeight / 2 - iconHeight / 2;\n const textY = maxHeight / 2 - textHeight / 2;\n\n const boxWidth = this.attribute.box.width;\n const iconWidth = this.attribute.icon.width;\n const maxWidth = Math.max(boxWidth, iconWidth);\n const boxX = maxWidth / 2 - boxWidth / 2;\n const iconX = maxWidth / 2 - iconWidth / 2;\n const textX = maxWidth + this.attribute.spaceBetweenTextAndIcon;\n\n this._box.setAttributes({\n x: boxX,\n y: boxY\n });\n this._icon.setAttributes({\n x: iconX,\n y: iconY\n });\n this._text.setAttributes({\n x: textX,\n y: textY\n });\n }\n\n handleClick() {\n if (this.attribute.disabled) {\n return;\n } else if (this.attribute.checked) {\n this.setAttribute('checked', false);\n } else {\n this.setAttribute('checked', true);\n }\n const changeEvent = new CustomEvent('checkbox_state_change', {\n eventType: 'checkbox_state_change',\n checked: this.attribute.checked\n } as unknown) as any;\n changeEvent.manager = (this.stage as any)?.eventSystem.manager;\n this.dispatchEvent(changeEvent);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/checkbox/checkbox.ts"],"names":[],"mappings":"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","file":"checkbox.js","sourcesContent":["import { merge } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport type { CheckboxAttributes } from './type';\nimport { CustomEvent, Image, Rect, WrapText } from '@visactor/vrender-core';\nimport type { ComponentOptions } from '../interface';\n\nconst checkSvg =\n '<svg width=\"200\" height=\"200\" viewBox=\"0 0 1024 1024\" fill=\"#fff\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M877.44815445 206.10060629a64.72691371 64.72691371 0 0 0-95.14856334 4.01306852L380.73381888 685.46812814 235.22771741 533.48933518a64.72691371 64.72691371 0 0 0-92.43003222-1.03563036l-45.82665557 45.82665443a64.72691371 64.72691371 0 0 0-0.90617629 90.61767965l239.61903446 250.10479331a64.72691371 64.72691371 0 0 0 71.19960405 15.14609778 64.33855261 64.33855261 0 0 0 35.08198741-21.23042702l36.24707186-42.71976334 40.5190474-40.77795556-3.36579926-3.49525333 411.40426297-486.74638962a64.72691371 64.72691371 0 0 0-3.88361443-87.64024149l-45.3088404-45.43829334z\"></path></svg>';\n\nconst indeterminateSvg =\n '<svg width=\"200\" height=\"200\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"><path stroke=\"#fff\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"5\" d=\"M5 12h14\"/></svg>';\n\nexport class CheckBox extends AbstractComponent<Required<CheckboxAttributes>> {\n static defaultAttributes: Partial<CheckboxAttributes> = {\n interactive: true,\n disabled: false,\n checked: false,\n indeterminate: false,\n cursor: 'pointer',\n disableCursor: 'not-allowed',\n spaceBetweenTextAndIcon: 8,\n text: {\n text: 'text',\n fontSize: 14,\n fill: '#000',\n disableFill: 'rgb(201,205,212)',\n textBaseline: 'top',\n pickable: false\n },\n icon: {\n checkIconImage: checkSvg,\n indeterminateIconImage: indeterminateSvg,\n width: 10,\n height: 10,\n pickable: false\n },\n box: {\n width: 14,\n height: 14,\n cornerRadius: 2,\n fill: '#fff',\n stroke: 'rgb(229,230,235)',\n disableFill: 'rgb(242,243,245)',\n checkedFill: 'rgb(22, 93, 255)',\n checkedStroke: 'rgb(22, 93, 255)',\n disableCheckedFill: 'rgb(148, 191, 255)',\n disableCheckedStroke: 'rgb(148, 191, 255)',\n pickable: false\n }\n };\n _box: Rect;\n _checkIcon: Image;\n _indeterminateIcon: Image;\n _text: WrapText;\n\n constructor(attributes: CheckboxAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, CheckBox.defaultAttributes, attributes));\n this.renderGroup();\n\n this.onBeforeAttributeUpdate = (val: any, attributes: any, key: null | string | string[]) => {\n if ('interactive' in val) {\n this.setAttribute('pickable', val.interactive);\n }\n if ('disabled' in val) {\n this.setAttribute('cursor', val.disable ? this.attribute.disableCursor : this.attribute.cursor);\n }\n return undefined;\n };\n\n this.addEventListener('click', this.handleClick);\n }\n\n render() {\n this.removeAllChild();\n\n this.renderBox();\n this.renderIcon();\n this.renderText();\n this.layout();\n }\n\n renderBox() {\n this._box = new Rect(merge({}, this.attribute.box));\n const isCheckedOrIndeterminate = this.attribute.checked || this.attribute.indeterminate;\n if (isCheckedOrIndeterminate && this.attribute.disabled) {\n this._box.setAttributes({\n fill: this.attribute.box.disableCheckedFill,\n stroke: this.attribute.box.disableCheckedStroke\n });\n } else if (isCheckedOrIndeterminate) {\n this._box.setAttributes({\n fill: this.attribute.box.checkedFill,\n stroke: this.attribute.box.checkedStroke\n });\n }\n this.appendChild(this._box);\n }\n\n renderIcon() {\n this._checkIcon = new Image(merge({ image: this.attribute.icon.checkIconImage }, this.attribute.icon));\n this.appendChild(this._checkIcon);\n this._indeterminateIcon = new Image(\n merge(\n {\n image: this.attribute.icon.indeterminateIconImage\n },\n this.attribute.icon\n )\n );\n this.appendChild(this._indeterminateIcon);\n\n if (this.attribute.checked) {\n this._checkIcon.setAttribute('visible', true);\n this._indeterminateIcon.setAttribute('visible', false);\n } else if (this.attribute.indeterminate) {\n this._checkIcon.setAttribute('visible', false);\n this._indeterminateIcon.setAttribute('visible', true);\n } else {\n this._checkIcon.setAttribute('visible', false);\n this._indeterminateIcon.setAttribute('visible', false);\n }\n }\n\n renderText() {\n this._text = new WrapText(merge({}, this.attribute.text));\n if (this.attribute.disabled) {\n this._text.setAttribute('fill', this.attribute.text.disableFill);\n }\n this.appendChild(this._text);\n }\n\n renderGroup() {\n if (!this.attribute.interactive) {\n this.setAttribute('pickable', false);\n }\n if (this.attribute.disabled) {\n this.setAttribute('cursor', this.attribute.disableCursor);\n }\n }\n\n layout() {\n const boxHeight = this.attribute.box.height;\n const iconHeight = this.attribute.icon.height;\n const textHeight = this._text.AABBBounds.height();\n const maxHeight = Math.max(boxHeight, iconHeight, textHeight);\n const boxY = maxHeight / 2 - boxHeight / 2;\n const iconY = maxHeight / 2 - iconHeight / 2;\n const textY = maxHeight / 2 - textHeight / 2;\n\n const boxWidth = this.attribute.box.width;\n const iconWidth = this.attribute.icon.width;\n const maxWidth = Math.max(boxWidth, iconWidth);\n const boxX = maxWidth / 2 - boxWidth / 2;\n const iconX = maxWidth / 2 - iconWidth / 2;\n const textX = maxWidth + this.attribute.spaceBetweenTextAndIcon;\n\n this._box.setAttributes({\n x: boxX,\n y: boxY\n });\n this._checkIcon.setAttributes({\n x: iconX,\n y: iconY\n });\n this._indeterminateIcon.setAttributes({\n x: iconX,\n y: iconY\n });\n this._text.setAttributes({\n x: textX,\n y: textY\n });\n }\n\n handleClick() {\n if (this.attribute.disabled) {\n return;\n } else if (this.attribute.checked) {\n this.setAttribute('checked', false);\n this.setAttribute('indeterminate', false);\n } else {\n this.setAttribute('checked', true);\n this.setAttribute('indeterminate', false);\n }\n const changeEvent = new CustomEvent('checkbox_state_change', {\n eventType: 'checkbox_state_change',\n checked: this.attribute.checked\n } as unknown) as any;\n changeEvent.manager = (this.stage as any)?.eventSystem.manager;\n this.dispatchEvent(changeEvent);\n }\n}\n"]}
@@ -17,5 +17,4 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
17
17
 
18
18
  Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
- }), __exportStar(require("./checkbox"), exports), __exportStar(require("./type"), exports);
21
- //# sourceMappingURL=index.js.map
20
+ }), __exportStar(require("./checkbox"), exports), __exportStar(require("./type"), exports);
@@ -2,7 +2,10 @@ import type { Cursor, IColor, IGroupGraphicAttribute, IImageGraphicAttribute, IR
2
2
  export type CheckboxText = {
3
3
  disableFill?: IColor;
4
4
  } & IWrapTextGraphicAttribute;
5
- export type CheckboxIcon = IImageGraphicAttribute;
5
+ export type CheckboxIcon = {
6
+ checkIconImage?: string | HTMLImageElement | HTMLCanvasElement;
7
+ indeterminateIconImage?: string | HTMLImageElement | HTMLCanvasElement;
8
+ } & Omit<IImageGraphicAttribute, 'image'>;
6
9
  export type CheckboxRect = {
7
10
  disableFill?: IColor;
8
11
  checkedFill?: IColor;
@@ -14,6 +17,7 @@ export type CheckboxAttributes = IGroupGraphicAttribute & {
14
17
  interactive?: boolean;
15
18
  disabled?: boolean;
16
19
  checked?: boolean;
20
+ indeterminate?: boolean;
17
21
  text?: CheckboxText;
18
22
  icon?: CheckboxIcon;
19
23
  box?: CheckboxRect;
@@ -2,4 +2,5 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- });
5
+ });
6
+ //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/checkbox/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n Cursor,\n IColor,\n IGroupGraphicAttribute,\n IImageGraphicAttribute,\n IRectGraphicAttribute,\n IWrapTextGraphicAttribute\n} from '@visactor/vrender-core';\n\nexport type CheckboxText = {\n disableFill?: IColor;\n} & IWrapTextGraphicAttribute;\n\nexport type CheckboxIcon = IImageGraphicAttribute;\n\nexport type CheckboxRect = {\n disableFill?: IColor;\n checkedFill?: IColor;\n checkedStroke?: IColor;\n disableCheckedFill?: IColor;\n disableCheckedStroke?: IColor;\n} & IRectGraphicAttribute;\n\nexport type CheckboxAttributes = IGroupGraphicAttribute & {\n interactive?: boolean;\n disabled?: boolean;\n checked?: boolean;\n /**\n * 图例文字\n */\n text?: CheckboxText;\n /**\n * 图例选中图标\n */\n icon?: CheckboxIcon;\n /**\n * 图例选中图标\n */\n box?: CheckboxRect;\n disableCursor?: Cursor;\n spaceBetweenTextAndIcon?: number;\n};\n"]}
1
+ {"version":3,"sources":["../src/checkbox/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n Cursor,\n IColor,\n IGroupGraphicAttribute,\n IImageGraphicAttribute,\n IRectGraphicAttribute,\n IWrapTextGraphicAttribute\n} from '@visactor/vrender-core';\n\nexport type CheckboxText = {\n disableFill?: IColor;\n} & IWrapTextGraphicAttribute;\n\nexport type CheckboxIcon = {\n checkIconImage?: string | HTMLImageElement | HTMLCanvasElement;\n indeterminateIconImage?: string | HTMLImageElement | HTMLCanvasElement;\n} & Omit<IImageGraphicAttribute, 'image'>;\n\nexport type CheckboxRect = {\n disableFill?: IColor;\n checkedFill?: IColor;\n checkedStroke?: IColor;\n disableCheckedFill?: IColor;\n disableCheckedStroke?: IColor;\n} & IRectGraphicAttribute;\n\nexport type CheckboxAttributes = IGroupGraphicAttribute & {\n interactive?: boolean;\n disabled?: boolean;\n checked?: boolean;\n indeterminate?: boolean;\n /**\n * 图例文字\n */\n text?: CheckboxText;\n /**\n * 图例选中图标\n */\n icon?: CheckboxIcon;\n /**\n * 图例选中图标\n */\n box?: CheckboxRect;\n disableCursor?: Cursor;\n spaceBetweenTextAndIcon?: number;\n};\n"]}
package/cjs/constant.d.ts CHANGED
@@ -14,3 +14,9 @@ export declare const DEFAULT_STATES: {
14
14
  hover: {};
15
15
  hover_reverse: {};
16
16
  };
17
+ export declare const DEFAULT_HTML_TEXT_SPEC: {
18
+ container: string;
19
+ width: number;
20
+ height: number;
21
+ style: {};
22
+ };
package/cjs/constant.js CHANGED
@@ -4,7 +4,7 @@ var StateValue;
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: !0
7
- }), exports.DEFAULT_STATES = exports.StateValue = exports.DEFAULT_TEXT_FONT_SIZE = exports.DEFAULT_TEXT_FONT_FAMILY = exports.POLAR_END_ANGLE = exports.POLAR_START_ANGLE = void 0,
7
+ }), exports.DEFAULT_HTML_TEXT_SPEC = exports.DEFAULT_STATES = exports.StateValue = exports.DEFAULT_TEXT_FONT_SIZE = exports.DEFAULT_TEXT_FONT_FAMILY = exports.POLAR_END_ANGLE = exports.POLAR_START_ANGLE = void 0,
8
8
  exports.POLAR_START_ANGLE = -.5 * Math.PI, exports.POLAR_END_ANGLE = 1.5 * Math.PI,
9
9
  exports.DEFAULT_TEXT_FONT_FAMILY = "PingFang SC,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif, apple color emoji,segoe ui emoji,segoe ui symbol",
10
10
  exports.DEFAULT_TEXT_FONT_SIZE = 11, function(StateValue) {
@@ -15,4 +15,9 @@ exports.DEFAULT_TEXT_FONT_SIZE = 11, function(StateValue) {
15
15
  [StateValue.selected]: {},
16
16
  [StateValue.hover]: {},
17
17
  [StateValue.hoverReverse]: {}
18
+ }, exports.DEFAULT_HTML_TEXT_SPEC = {
19
+ container: "",
20
+ width: 30,
21
+ height: 30,
22
+ style: {}
18
23
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AACnC,QAAA,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAEhC,QAAA,wBAAwB,GAEnC,kJAAkJ,CAAC;AAExI,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAEzC,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,kDAAoC,CAAA;IACpC,6BAAe,CAAA;IACf,4CAA8B,CAAA;AAChC,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB;AAEY,QAAA,cAAc,GAAG;IAC5B,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE;IAChC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE;IACzB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;IACtB,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE;CAC9B,CAAC","file":"constant.js","sourcesContent":["export const POLAR_START_ANGLE = -0.5 * Math.PI;\nexport const POLAR_END_ANGLE = 1.5 * Math.PI;\n\nexport const DEFAULT_TEXT_FONT_FAMILY =\n // eslint-disable-next-line max-len\n 'PingFang SC,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif, apple color emoji,segoe ui emoji,segoe ui symbol';\n\nexport const DEFAULT_TEXT_FONT_SIZE = 11;\n\nexport enum StateValue {\n selected = 'selected',\n selectedReverse = 'selected_reverse',\n hover = 'hover',\n hoverReverse = 'hover_reverse'\n}\n\nexport const DEFAULT_STATES = {\n [StateValue.selectedReverse]: {},\n [StateValue.selected]: {},\n [StateValue.hover]: {},\n [StateValue.hoverReverse]: {}\n};\n"]}
1
+ {"version":3,"sources":["../src/constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AACnC,QAAA,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAEhC,QAAA,wBAAwB,GAEnC,kJAAkJ,CAAC;AAExI,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAEzC,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,kDAAoC,CAAA;IACpC,6BAAe,CAAA;IACf,4CAA8B,CAAA;AAChC,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB;AAEY,QAAA,cAAc,GAAG;IAC5B,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE;IAChC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE;IACzB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;IACtB,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE;CAC9B,CAAC;AAEW,QAAA,sBAAsB,GAAG;IACpC,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;CACV,CAAC","file":"constant.js","sourcesContent":["export const POLAR_START_ANGLE = -0.5 * Math.PI;\nexport const POLAR_END_ANGLE = 1.5 * Math.PI;\n\nexport const DEFAULT_TEXT_FONT_FAMILY =\n // eslint-disable-next-line max-len\n 'PingFang SC,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif, apple color emoji,segoe ui emoji,segoe ui symbol';\n\nexport const DEFAULT_TEXT_FONT_SIZE = 11;\n\nexport enum StateValue {\n selected = 'selected',\n selectedReverse = 'selected_reverse',\n hover = 'hover',\n hoverReverse = 'hover_reverse'\n}\n\nexport const DEFAULT_STATES = {\n [StateValue.selectedReverse]: {},\n [StateValue.selected]: {},\n [StateValue.hover]: {},\n [StateValue.hoverReverse]: {}\n};\n\nexport const DEFAULT_HTML_TEXT_SPEC = {\n container: '',\n width: 30,\n height: 30,\n style: {}\n};\n"]}
@@ -1,9 +1,11 @@
1
1
  import type { IGroupGraphicAttribute } from '@visactor/vrender-core';
2
2
  import { Group } from '@visactor/vrender-core';
3
+ import type { ComponentOptions } from '../interface';
3
4
  export declare abstract class AbstractComponent<T extends IGroupGraphicAttribute = IGroupGraphicAttribute> extends Group {
4
5
  attribute: Partial<T>;
5
- protected mode: '2d' | '3d';
6
- constructor(attributes: T, mode?: '2d' | '3d');
6
+ protected mode?: '2d' | '3d';
7
+ protected skipDefault?: boolean;
8
+ constructor(attributes: T, options?: ComponentOptions);
7
9
  setAttribute(key: keyof T, value: any, forceUpdateTag?: boolean | undefined): void;
8
10
  setAttributes(params: Partial<T>, forceUpdateTag?: boolean | undefined): void;
9
11
  protected _mergeAttributes(params: Partial<T>, keys?: (keyof T)[]): void;
package/cjs/core/base.js CHANGED
@@ -4,11 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.AbstractComponent = void 0;
6
6
 
7
- const vrender_core_1 = require("@visactor/vrender-core"), vutils_1 = require("@visactor/vutils"), GROUP_ATTRIBUTES = [ "x", "y", "dx", "dy", "scaleX", "scaleY", "angle", "anchor", "postMatrix", "visible", "clip", "pickable", "childrenPickable", "zIndex" ];
7
+ const vrender_core_1 = require("@visactor/vrender-core"), vutils_1 = require("@visactor/vutils"), GROUP_ATTRIBUTES = [ "x", "y", "dx", "dy", "scaleX", "scaleY", "angle", "anchor", "postMatrix", "visible", "clip", "pickable", "childrenPickable", "zIndex", "cursor" ];
8
8
 
9
9
  class AbstractComponent extends vrender_core_1.Group {
10
- constructor(attributes, mode = "2d") {
11
- super(attributes), this.mode = mode, this.setTheme({
10
+ constructor(attributes, options) {
11
+ super(attributes), (null == options ? void 0 : options.mode) && (this.mode = options.mode,
12
+ this.setMode(options.mode)), (null == options ? void 0 : options.skipDefault) && (this.skipDefault = !0),
13
+ this.setTheme({
12
14
  common: {
13
15
  strokeBoundsBuffer: 0
14
16
  }
@@ -17,9 +19,10 @@ class AbstractComponent extends vrender_core_1.Group {
17
19
  }));
18
20
  }
19
21
  setAttribute(key, value, forceUpdateTag) {
20
- !(0, vutils_1.isPlainObject)(this.attribute[key]) || (0, vutils_1.isFunction)(this.attribute[key]) || (0,
21
- vutils_1.isFunction)(value) ? this.attribute[key] = value : (0, vutils_1.merge)(this.attribute[key], value),
22
- GROUP_ATTRIBUTES.includes(key) || this.render(), this.valid = this.isValid(), this.updateShapeAndBoundsTagSetted() || !forceUpdateTag && !this.needUpdateTag(key) ? this.addUpdateBoundTag() : this.addUpdateShapeAndBoundsTag(),
22
+ (0, vutils_1.isPlainObject)(this.attribute[key]) && (0, vutils_1.isPlainObject)(value) && !(0,
23
+ vutils_1.isFunction)(this.attribute[key]) && !(0, vutils_1.isFunction)(value) ? (0,
24
+ vutils_1.merge)(this.attribute[key], value) : this.attribute[key] = value, GROUP_ATTRIBUTES.includes(key) || this.render(),
25
+ this.valid = this.isValid(), this.updateShapeAndBoundsTagSetted() || !forceUpdateTag && !this.needUpdateTag(key) ? this.addUpdateBoundTag() : this.addUpdateShapeAndBoundsTag(),
23
26
  this.addUpdatePositionTag(), this.onAttributeUpdate();
24
27
  }
25
28
  setAttributes(params, forceUpdateTag) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["/**\n * @description 组件基类\n */\nimport type { IGroupGraphicAttribute } from '@visactor/vrender-core';\nimport { Group } from '@visactor/vrender-core';\nimport { merge, isFunction, isPlainObject, isNil } from '@visactor/vutils';\n\nconst GROUP_ATTRIBUTES = [\n 'x',\n 'y',\n 'dx',\n 'dy',\n 'scaleX',\n 'scaleY',\n 'angle',\n 'anchor',\n 'postMatrix',\n 'visible',\n 'clip',\n 'pickable',\n 'childrenPickable',\n 'zIndex'\n];\n\nexport abstract class AbstractComponent<T extends IGroupGraphicAttribute = IGroupGraphicAttribute> extends Group {\n declare attribute: Partial<T>;\n\n protected mode: '2d' | '3d';\n\n constructor(attributes: T, mode: '2d' | '3d' = '2d') {\n super(attributes);\n this.mode = mode;\n // 组件需要精准 bounds,所以将这个 strokeBoundsBuffer 设置为 0,否则会影响包围盒的获取\n this.setTheme({\n common: {\n strokeBoundsBuffer: 0\n }\n });\n this.attribute = attributes;\n // 这里调用渲染和事件绑定逻辑\n this.onSetStage(() => {\n this.render();\n this.bindEvents();\n });\n }\n\n /**\n * @override\n * 更新单个属性值\n * @param key\n * @param value\n * @param forceUpdateTag\n */\n // @ts-ignore\n setAttribute(key: keyof T, value: any, forceUpdateTag?: boolean | undefined): void {\n // overwrite when previous or next attribute is function\n if (isPlainObject(this.attribute[key]) && !isFunction(this.attribute[key]) && !isFunction(value)) {\n merge(this.attribute[key], value);\n } else {\n this.attribute[key] = value;\n }\n\n // HACK: 待优化\n if (!GROUP_ATTRIBUTES.includes(key as string)) {\n this.render();\n }\n\n this.valid = this.isValid();\n if (!this.updateShapeAndBoundsTagSetted() && (forceUpdateTag || this.needUpdateTag(key as string))) {\n this.addUpdateShapeAndBoundsTag();\n } else {\n this.addUpdateBoundTag();\n }\n this.addUpdatePositionTag();\n this.onAttributeUpdate();\n }\n\n // @ts-ignore\n setAttributes(params: Partial<T>, forceUpdateTag?: boolean | undefined): void {\n const keys = Object.keys(params) as (keyof T)[];\n this._mergeAttributes(params, keys);\n\n // HACK: 待优化\n if (!keys.every(key => GROUP_ATTRIBUTES.includes(key as string))) {\n this.render();\n }\n\n this.valid = this.isValid();\n // 没有设置shape&bounds的tag\n if (!this.updateShapeAndBoundsTagSetted() && (forceUpdateTag || this.needUpdateTags(keys as string[]))) {\n this.addUpdateShapeAndBoundsTag();\n } else {\n this.addUpdateBoundTag();\n }\n this.addUpdatePositionTag();\n this.onAttributeUpdate();\n }\n\n protected _mergeAttributes(params: Partial<T>, keys?: (keyof T)[]) {\n if (isNil(keys)) {\n keys = Object.keys(params) as (keyof T)[];\n }\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i] as keyof Partial<T>;\n // overwrite when previous or next attribute is function\n if (isPlainObject(this.attribute[key]) && !isFunction(this.attribute[key]) && !isFunction(params[key])) {\n merge(this.attribute[key], params[key]);\n } else {\n this.attribute[key] = params[key];\n }\n }\n }\n\n protected bindEvents() {\n // please override\n }\n\n protected abstract render(): void;\n\n // 图形元素 id\n protected _getNodeId(id: string) {\n return `${this.id}-${this.name}-${id}`;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["/**\n * @description 组件基类\n */\nimport type { IGroupGraphicAttribute } from '@visactor/vrender-core';\nimport { Group } from '@visactor/vrender-core';\nimport { merge, isFunction, isPlainObject, isNil } from '@visactor/vutils';\nimport type { ComponentOptions } from '../interface';\n\nconst GROUP_ATTRIBUTES = [\n 'x',\n 'y',\n 'dx',\n 'dy',\n 'scaleX',\n 'scaleY',\n 'angle',\n 'anchor',\n 'postMatrix',\n 'visible',\n 'clip',\n 'pickable',\n 'childrenPickable',\n 'zIndex',\n 'cursor'\n];\n\nexport abstract class AbstractComponent<T extends IGroupGraphicAttribute = IGroupGraphicAttribute> extends Group {\n declare attribute: Partial<T>;\n\n protected mode?: '2d' | '3d';\n\n protected skipDefault?: boolean;\n\n constructor(attributes: T, options?: ComponentOptions) {\n super(attributes);\n\n if (options?.mode) {\n this.mode = options.mode;\n\n this.setMode(options.mode);\n }\n\n if (options?.skipDefault) {\n this.skipDefault = true;\n }\n // 组件需要精准 bounds,所以将这个 strokeBoundsBuffer 设置为 0,否则会影响包围盒的获取\n this.setTheme({\n common: {\n strokeBoundsBuffer: 0\n }\n });\n this.attribute = attributes;\n // 这里调用渲染和事件绑定逻辑\n this.onSetStage(() => {\n this.render();\n this.bindEvents();\n });\n }\n\n /**\n * @override\n * 更新单个属性值\n * @param key\n * @param value\n * @param forceUpdateTag\n */\n // @ts-ignore\n setAttribute(key: keyof T, value: any, forceUpdateTag?: boolean | undefined): void {\n // overwrite when previous or next attribute is function\n if (\n isPlainObject(this.attribute[key]) &&\n isPlainObject(value) &&\n !isFunction(this.attribute[key]) &&\n !isFunction(value)\n ) {\n merge(this.attribute[key], value);\n } else {\n this.attribute[key] = value;\n }\n\n // HACK: 待优化\n if (!GROUP_ATTRIBUTES.includes(key as string)) {\n this.render();\n }\n\n this.valid = this.isValid();\n if (!this.updateShapeAndBoundsTagSetted() && (forceUpdateTag || this.needUpdateTag(key as string))) {\n this.addUpdateShapeAndBoundsTag();\n } else {\n this.addUpdateBoundTag();\n }\n this.addUpdatePositionTag();\n this.onAttributeUpdate();\n }\n\n // @ts-ignore\n setAttributes(params: Partial<T>, forceUpdateTag?: boolean | undefined): void {\n const keys = Object.keys(params) as (keyof T)[];\n this._mergeAttributes(params, keys);\n\n // HACK: 待优化\n if (!keys.every(key => GROUP_ATTRIBUTES.includes(key as string))) {\n this.render();\n }\n\n this.valid = this.isValid();\n // 没有设置shape&bounds的tag\n if (!this.updateShapeAndBoundsTagSetted() && (forceUpdateTag || this.needUpdateTags(keys as string[]))) {\n this.addUpdateShapeAndBoundsTag();\n } else {\n this.addUpdateBoundTag();\n }\n this.addUpdatePositionTag();\n this.onAttributeUpdate();\n }\n\n protected _mergeAttributes(params: Partial<T>, keys?: (keyof T)[]) {\n if (isNil(keys)) {\n keys = Object.keys(params) as (keyof T)[];\n }\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i] as keyof Partial<T>;\n // overwrite when previous or next attribute is function\n if (isPlainObject(this.attribute[key]) && !isFunction(this.attribute[key]) && !isFunction(params[key])) {\n merge(this.attribute[key], params[key]);\n } else {\n this.attribute[key] = params[key];\n }\n }\n }\n\n protected bindEvents() {\n // please override\n }\n\n protected abstract render(): void;\n\n // 图形元素 id\n protected _getNodeId(id: string) {\n return `${this.id}-${this.name}-${id}`;\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import type { IRichTextCharacter } from '@visactor/vrender-core';
1
2
  export type Point = {
2
3
  x: number;
3
4
  y: number;
@@ -26,3 +27,17 @@ export type Padding = number | number[] | {
26
27
  left?: number;
27
28
  right?: number;
28
29
  };
30
+ type CommonTextContent = {
31
+ type?: 'text';
32
+ text?: string | string[] | number | number[];
33
+ };
34
+ type RichTextContent = {
35
+ type?: 'rich';
36
+ text?: IRichTextCharacter[];
37
+ };
38
+ type HtmlTextContent = {
39
+ type?: 'html';
40
+ text?: string | HTMLElement;
41
+ };
42
+ export type TextContent = CommonTextContent | RichTextContent | HtmlTextContent;
43
+ export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["export type Point = {\n x: number;\n y: number;\n};\n\nexport interface LocationCfg {\n [key: string]: any;\n}\n\nexport interface PointLocationCfg extends LocationCfg {\n /**\n * 位置 x\n * @type {number}\n */\n x: number;\n /**\n * 位置 y\n * @type {number}\n */\n y: number;\n}\n\nexport interface RegionLocationCfg extends LocationCfg {\n /**\n * 起始点\n */\n start: Point;\n /**\n * 结束点\n */\n end: Point;\n}\n\nexport type State<T> = {\n [key: string]: T;\n};\n\nexport type BaseGraphicAttributes<T> = {\n /**\n * 基础样式设置\n */\n style?: T;\n /**\n * 状态样式设置\n */\n state?: State<T>;\n};\n\nexport type Padding =\n | number\n | number[]\n | {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n };\n"]}
1
+ {"version":3,"sources":["../src/core/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type { IRichTextCharacter } from '@visactor/vrender-core';\n\nexport type Point = {\n x: number;\n y: number;\n};\n\nexport interface LocationCfg {\n [key: string]: any;\n}\n\nexport interface PointLocationCfg extends LocationCfg {\n /**\n * 位置 x\n * @type {number}\n */\n x: number;\n /**\n * 位置 y\n * @type {number}\n */\n y: number;\n}\n\nexport interface RegionLocationCfg extends LocationCfg {\n /**\n * 起始点\n */\n start: Point;\n /**\n * 结束点\n */\n end: Point;\n}\n\nexport type State<T> = {\n [key: string]: T;\n};\n\nexport type BaseGraphicAttributes<T> = {\n /**\n * 基础样式设置\n */\n style?: T;\n /**\n * 状态样式设置\n */\n state?: State<T>;\n};\n\nexport type Padding =\n | number\n | number[]\n | {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n };\n\ntype CommonTextContent = {\n type?: 'text';\n text?: string | string[] | number | number[];\n};\n\ntype RichTextContent = {\n type?: 'rich';\n text?: IRichTextCharacter[];\n};\n\ntype HtmlTextContent = {\n type?: 'html';\n text?: string | HTMLElement;\n};\n\nexport type TextContent = CommonTextContent | RichTextContent | HtmlTextContent;\n"]}
@@ -2,6 +2,7 @@ import type { IGroup } from '@visactor/vrender-core';
2
2
  import type { PointLocationCfg } from '../core/type';
3
3
  import { CrosshairBase } from './base';
4
4
  import type { CircleCrosshairAttrs } from './type';
5
+ import type { ComponentOptions } from '../interface';
5
6
  export declare class CircleCrosshair extends CrosshairBase<CircleCrosshairAttrs> {
6
7
  static defaultAttributes: {
7
8
  lineStyle: {
@@ -10,7 +11,7 @@ export declare class CircleCrosshair extends CrosshairBase<CircleCrosshairAttrs>
10
11
  lineDash: number[];
11
12
  };
12
13
  };
13
- constructor(attributes: CircleCrosshairAttrs);
14
+ constructor(attributes: CircleCrosshairAttrs, options?: ComponentOptions);
14
15
  protected renderCrosshair(container: IGroup): import("@visactor/vrender-core").INode;
15
16
  setLocation(point: PointLocationCfg): void;
16
17
  }
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const vutils_1 = require("@visactor/vutils"), base_1 = require("./base");
8
8
 
9
9
  class CircleCrosshair extends base_1.CrosshairBase {
10
- constructor(attributes) {
11
- super((0, vutils_1.merge)({}, CircleCrosshair.defaultAttributes, attributes));
10
+ constructor(attributes, options) {
11
+ super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, CircleCrosshair.defaultAttributes, attributes));
12
12
  }
13
13
  renderCrosshair(container) {
14
14
  const {center: center, radius: radius, lineStyle: lineStyle} = this.attribute;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/crosshair/circle.ts"],"names":[],"mappings":";;;AAIA,6CAAuD;AAEvD,iCAAuC;AAGvC,MAAa,eAAgB,SAAQ,oBAAmC;IAStE,YAAY,UAAgC;QAC1C,KAAK,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IAClE,CAAC;IAES,eAAe,CAAC,SAAiB;QACzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAiC,CAAC;QAE7E,MAAM,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAC1C,kBAAkB,8DAEb,MAAM,KACT,WAAW,EAAE,MAAM,KAEf,IAAI,CAAC,SAAiB,GACvB,SAAS,GAEd,KAAK,CACN,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,KAAuB;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAiC,CAAC;QAC1D,MAAM,MAAM,GAAG,qBAAY,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;;AAnCH,0CAoCC;AAnCQ,iCAAiB,GAAG;IACzB,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QACxC,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC,CAAC,CAAC;KACd;CACF,CAAC","file":"circle.js","sourcesContent":["/**\n * @description circle 类型 crosshair,用于极坐标系下\n */\nimport type { IGroup } from '@visactor/vrender-core';\nimport { merge, PointService } from '@visactor/vutils';\nimport type { PointLocationCfg } from '../core/type';\nimport { CrosshairBase } from './base';\nimport type { CircleCrosshairAttrs } from './type';\n\nexport class CircleCrosshair extends CrosshairBase<CircleCrosshairAttrs> {\n static defaultAttributes = {\n lineStyle: {\n stroke: ['#b2bacf', false, false, false],\n lineWidth: 1,\n lineDash: [2]\n }\n };\n\n constructor(attributes: CircleCrosshairAttrs) {\n super(merge({}, CircleCrosshair.defaultAttributes, attributes));\n }\n\n protected renderCrosshair(container: IGroup) {\n const { center, radius, lineStyle } = this.attribute as CircleCrosshairAttrs;\n\n const circle = container.createOrUpdateChild(\n 'crosshair-circle',\n {\n ...center,\n outerRadius: radius,\n // TODO: group的cornerRadius支持数组,arc的不支持数组,此处会有类型转换问题\n ...(this.attribute as any),\n ...lineStyle\n },\n 'arc'\n );\n return circle;\n }\n\n setLocation(point: PointLocationCfg) {\n const { center } = this.attribute as CircleCrosshairAttrs;\n const radius = PointService.distancePP(point, center);\n\n this.setAttribute('radius', radius);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/crosshair/circle.ts"],"names":[],"mappings":";;;AAIA,6CAAuD;AAEvD,iCAAuC;AAIvC,MAAa,eAAgB,SAAQ,oBAAmC;IAStE,YAAY,UAAgC,EAAE,OAA0B;QACtE,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IACtG,CAAC;IAES,eAAe,CAAC,SAAiB;QACzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAiC,CAAC;QAE7E,MAAM,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAC1C,kBAAkB,8DAEb,MAAM,KACT,WAAW,EAAE,MAAM,KAEf,IAAI,CAAC,SAAiB,GACvB,SAAS,GAEd,KAAK,CACN,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,KAAuB;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAiC,CAAC;QAC1D,MAAM,MAAM,GAAG,qBAAY,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;;AAnCH,0CAoCC;AAnCQ,iCAAiB,GAAG;IACzB,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QACxC,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC,CAAC,CAAC;KACd;CACF,CAAC","file":"circle.js","sourcesContent":["/**\n * @description circle 类型 crosshair,用于极坐标系下\n */\nimport type { IGroup } from '@visactor/vrender-core';\nimport { merge, PointService } from '@visactor/vutils';\nimport type { PointLocationCfg } from '../core/type';\nimport { CrosshairBase } from './base';\nimport type { CircleCrosshairAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\n\nexport class CircleCrosshair extends CrosshairBase<CircleCrosshairAttrs> {\n static defaultAttributes = {\n lineStyle: {\n stroke: ['#b2bacf', false, false, false],\n lineWidth: 1,\n lineDash: [2]\n }\n };\n\n constructor(attributes: CircleCrosshairAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, CircleCrosshair.defaultAttributes, attributes));\n }\n\n protected renderCrosshair(container: IGroup) {\n const { center, radius, lineStyle } = this.attribute as CircleCrosshairAttrs;\n\n const circle = container.createOrUpdateChild(\n 'crosshair-circle',\n {\n ...center,\n outerRadius: radius,\n // TODO: group的cornerRadius支持数组,arc的不支持数组,此处会有类型转换问题\n ...(this.attribute as any),\n ...lineStyle\n },\n 'arc'\n );\n return circle;\n }\n\n setLocation(point: PointLocationCfg) {\n const { center } = this.attribute as CircleCrosshairAttrs;\n const radius = PointService.distancePP(point, center);\n\n this.setAttribute('radius', radius);\n }\n}\n"]}
@@ -2,6 +2,7 @@ import type { IGroup } from '@visactor/vrender-core';
2
2
  import type { RegionLocationCfg } from '../core/type';
3
3
  import { CrosshairBase } from './base';
4
4
  import type { LineCrosshairAttrs } from './type';
5
+ import type { ComponentOptions } from '../interface';
5
6
  export declare class LineCrosshair extends CrosshairBase<LineCrosshairAttrs> {
6
7
  static defaultAttributes: {
7
8
  lineStyle: {
@@ -10,7 +11,7 @@ export declare class LineCrosshair extends CrosshairBase<LineCrosshairAttrs> {
10
11
  lineDash: number[];
11
12
  };
12
13
  };
13
- constructor(attributes: LineCrosshairAttrs);
14
+ constructor(attributes: LineCrosshairAttrs, options?: ComponentOptions);
14
15
  protected renderCrosshair(container: IGroup): import("@visactor/vrender-core").INode;
15
16
  setLocation(region: RegionLocationCfg): void;
16
17
  }
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const vutils_1 = require("@visactor/vutils"), base_1 = require("./base");
8
8
 
9
9
  class LineCrosshair extends base_1.CrosshairBase {
10
- constructor(attributes) {
11
- super((0, vutils_1.merge)({}, LineCrosshair.defaultAttributes, attributes));
10
+ constructor(attributes, options) {
11
+ super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, LineCrosshair.defaultAttributes, attributes));
12
12
  }
13
13
  renderCrosshair(container) {
14
14
  const {start: start, end: end, lineStyle: lineStyle} = this.attribute;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/crosshair/line.ts"],"names":[],"mappings":";;;AAIA,6CAAyC;AAEzC,iCAAuC;AAGvC,MAAa,aAAc,SAAQ,oBAAiC;IASlE,YAAY,UAA8B;QACxC,KAAK,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,aAAa,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IAChE,CAAC;IAES,eAAe,CAAC,SAAiB;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;QAEvE,MAAM,IAAI,GAAG,SAAS,CAAC,mBAAmB,CACxC,gBAAgB,kBAEd,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,IACjB,SAAS,GAEd,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,MAAyB;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC;YACjB,KAAK;YACL,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;;AAjCH,sCAkCC;AAjCQ,+BAAiB,GAAG;IACzB,SAAS,EAAE;QACT,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC,CAAC,CAAC;KACd;CACF,CAAC","file":"line.js","sourcesContent":["/**\n * @description 直线类型 crosshair\n */\nimport type { IGroup } from '@visactor/vrender-core';\nimport { merge } from '@visactor/vutils';\nimport type { RegionLocationCfg } from '../core/type';\nimport { CrosshairBase } from './base';\nimport type { LineCrosshairAttrs } from './type';\n\nexport class LineCrosshair extends CrosshairBase<LineCrosshairAttrs> {\n static defaultAttributes = {\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n };\n\n constructor(attributes: LineCrosshairAttrs) {\n super(merge({}, LineCrosshair.defaultAttributes, attributes));\n }\n\n protected renderCrosshair(container: IGroup) {\n const { start, end, lineStyle } = this.attribute as LineCrosshairAttrs;\n\n const line = container.createOrUpdateChild(\n 'crosshair-line',\n {\n points: [start, end],\n ...lineStyle\n },\n 'line'\n );\n return line;\n }\n\n setLocation(region: RegionLocationCfg) {\n const { start, end } = region;\n this.setAttributes({\n start,\n end\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/crosshair/line.ts"],"names":[],"mappings":";;;AAIA,6CAAyC;AAEzC,iCAAuC;AAIvC,MAAa,aAAc,SAAQ,oBAAiC;IASlE,YAAY,UAA8B,EAAE,OAA0B;QACpE,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,aAAa,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IACpG,CAAC;IAES,eAAe,CAAC,SAAiB;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;QAEvE,MAAM,IAAI,GAAG,SAAS,CAAC,mBAAmB,CACxC,gBAAgB,kBAEd,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,IACjB,SAAS,GAEd,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,MAAyB;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC;YACjB,KAAK;YACL,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;;AAjCH,sCAkCC;AAjCQ,+BAAiB,GAAG;IACzB,SAAS,EAAE;QACT,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC,CAAC,CAAC;KACd;CACF,CAAC","file":"line.js","sourcesContent":["/**\n * @description 直线类型 crosshair\n */\nimport type { IGroup } from '@visactor/vrender-core';\nimport { merge } from '@visactor/vutils';\nimport type { RegionLocationCfg } from '../core/type';\nimport { CrosshairBase } from './base';\nimport type { LineCrosshairAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\n\nexport class LineCrosshair extends CrosshairBase<LineCrosshairAttrs> {\n static defaultAttributes = {\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n };\n\n constructor(attributes: LineCrosshairAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, LineCrosshair.defaultAttributes, attributes));\n }\n\n protected renderCrosshair(container: IGroup) {\n const { start, end, lineStyle } = this.attribute as LineCrosshairAttrs;\n\n const line = container.createOrUpdateChild(\n 'crosshair-line',\n {\n points: [start, end],\n ...lineStyle\n },\n 'line'\n );\n return line;\n }\n\n setLocation(region: RegionLocationCfg) {\n const { start, end } = region;\n this.setAttributes({\n start,\n end\n });\n }\n}\n"]}
@@ -2,6 +2,7 @@ import type { IGroup } from '@visactor/vrender-core';
2
2
  import type { PointLocationCfg } from '../core/type';
3
3
  import { CrosshairBase } from './base';
4
4
  import type { PolygonCrosshairAttrs } from './type';
5
+ import type { ComponentOptions } from '../interface';
5
6
  export declare class PolygonCrosshair extends CrosshairBase<PolygonCrosshairAttrs> {
6
7
  static defaultAttributes: {
7
8
  lineStyle: {
@@ -10,7 +11,7 @@ export declare class PolygonCrosshair extends CrosshairBase<PolygonCrosshairAttr
10
11
  lineDash: number[];
11
12
  };
12
13
  };
13
- constructor(attributes: PolygonCrosshairAttrs);
14
+ constructor(attributes: PolygonCrosshairAttrs, options?: ComponentOptions);
14
15
  protected renderCrosshair(container: IGroup): import("@visactor/vrender-core").INode;
15
16
  setLocation(point: PointLocationCfg): void;
16
17
  }
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const vutils_1 = require("@visactor/vutils"), base_1 = require("./base");
8
8
 
9
9
  class PolygonCrosshair extends base_1.CrosshairBase {
10
- constructor(attributes) {
11
- super((0, vutils_1.merge)({}, PolygonCrosshair.defaultAttributes, attributes));
10
+ constructor(attributes, options) {
11
+ super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, PolygonCrosshair.defaultAttributes, attributes));
12
12
  }
13
13
  renderCrosshair(container) {
14
14
  const {center: center, radius: radius, sides: sides = 6, lineStyle: lineStyle} = this.attribute, {startAngle: startAngle, endAngle: endAngle} = this.attribute, isClose = (endAngle - startAngle) % (2 * Math.PI) == 0, eachAngle = (endAngle - startAngle) / sides;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/crosshair/polygon.ts"],"names":[],"mappings":";;;AAIA,6CAAyE;AAEzE,iCAAuC;AAGvC,MAAa,gBAAiB,SAAQ,oBAAoC;IASxE,YAAY,UAAiC;QAC3C,KAAK,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;IAES,eAAe,CAAC,SAAiB;QACzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAkC,CAAC;QACzF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAEhD,MAAM,OAAO,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC;QAClD,IAAI,IAAI,CAAC;QACT,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAA,yBAAgB,EAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;aACjC;iBAAM;gBACL,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;aAClC;YACD,IAAI,KAAK,KAAK,KAAK,IAAI,OAAO,EAAE;gBAC9B,IAAI,IAAI,GAAG,CAAC;aACb;SACF;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,mBAAmB,CAC3C,mBAAmB,kBAEjB,IAAI,IACD,SAAS,GAEd,MAAM,CACP,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,KAAuB;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAkC,CAAC;QAC3D,MAAM,MAAM,GAAG,qBAAY,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;;AAjDH,4CAkDC;AAjDQ,kCAAiB,GAAG;IACzB,SAAS,EAAE;QACT,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC,CAAC,CAAC;KACd;CACF,CAAC","file":"polygon.js","sourcesContent":["/**\n * @description polygon 类型 crosshair,用于极坐标系下\n */\nimport type { IGroup } from '@visactor/vrender-core';\nimport { merge, polarToCartesian, PointService } from '@visactor/vutils';\nimport type { PointLocationCfg } from '../core/type';\nimport { CrosshairBase } from './base';\nimport type { PolygonCrosshairAttrs } from './type';\n\nexport class PolygonCrosshair extends CrosshairBase<PolygonCrosshairAttrs> {\n static defaultAttributes = {\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n };\n\n constructor(attributes: PolygonCrosshairAttrs) {\n super(merge({}, PolygonCrosshair.defaultAttributes, attributes));\n }\n\n protected renderCrosshair(container: IGroup) {\n const { center, radius, sides = 6, lineStyle } = this.attribute as PolygonCrosshairAttrs;\n const { startAngle, endAngle } = this.attribute;\n\n const isClose = (endAngle - startAngle) % (Math.PI * 2) === 0;\n const eachAngle = (endAngle - startAngle) / sides;\n let path;\n for (let index = 0; index <= sides; index++) {\n const angle = startAngle + eachAngle * index;\n const point = polarToCartesian(center, radius, angle);\n if (index === 0) {\n path = `M${point.x},${point.y}`;\n } else {\n path += `L${point.x},${point.y}`;\n }\n if (index === sides && isClose) {\n path += 'Z';\n }\n }\n\n const polygon = container.createOrUpdateChild(\n 'crosshair-polygon',\n {\n path,\n ...lineStyle\n },\n 'path'\n );\n return polygon;\n }\n\n setLocation(point: PointLocationCfg) {\n const { center } = this.attribute as PolygonCrosshairAttrs;\n const radius = PointService.distancePP(point, center);\n\n this.setAttribute('radius', radius);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/crosshair/polygon.ts"],"names":[],"mappings":";;;AAIA,6CAAyE;AAEzE,iCAAuC;AAIvC,MAAa,gBAAiB,SAAQ,oBAAoC;IASxE,YAAY,UAAiC,EAAE,OAA0B;QACvE,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IACvG,CAAC;IAES,eAAe,CAAC,SAAiB;QACzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAkC,CAAC;QACzF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAEhD,MAAM,OAAO,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC;QAClD,IAAI,IAAI,CAAC;QACT,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAA,yBAAgB,EAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;aACjC;iBAAM;gBACL,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;aAClC;YACD,IAAI,KAAK,KAAK,KAAK,IAAI,OAAO,EAAE;gBAC9B,IAAI,IAAI,GAAG,CAAC;aACb;SACF;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,mBAAmB,CAC3C,mBAAmB,kBAEjB,IAAI,IACD,SAAS,GAEd,MAAM,CACP,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,KAAuB;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAkC,CAAC;QAC3D,MAAM,MAAM,GAAG,qBAAY,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;;AAjDH,4CAkDC;AAjDQ,kCAAiB,GAAG;IACzB,SAAS,EAAE;QACT,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC,CAAC,CAAC;KACd;CACF,CAAC","file":"polygon.js","sourcesContent":["/**\n * @description polygon 类型 crosshair,用于极坐标系下\n */\nimport type { IGroup } from '@visactor/vrender-core';\nimport { merge, polarToCartesian, PointService } from '@visactor/vutils';\nimport type { PointLocationCfg } from '../core/type';\nimport { CrosshairBase } from './base';\nimport type { PolygonCrosshairAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\n\nexport class PolygonCrosshair extends CrosshairBase<PolygonCrosshairAttrs> {\n static defaultAttributes = {\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n };\n\n constructor(attributes: PolygonCrosshairAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, PolygonCrosshair.defaultAttributes, attributes));\n }\n\n protected renderCrosshair(container: IGroup) {\n const { center, radius, sides = 6, lineStyle } = this.attribute as PolygonCrosshairAttrs;\n const { startAngle, endAngle } = this.attribute;\n\n const isClose = (endAngle - startAngle) % (Math.PI * 2) === 0;\n const eachAngle = (endAngle - startAngle) / sides;\n let path;\n for (let index = 0; index <= sides; index++) {\n const angle = startAngle + eachAngle * index;\n const point = polarToCartesian(center, radius, angle);\n if (index === 0) {\n path = `M${point.x},${point.y}`;\n } else {\n path += `L${point.x},${point.y}`;\n }\n if (index === sides && isClose) {\n path += 'Z';\n }\n }\n\n const polygon = container.createOrUpdateChild(\n 'crosshair-polygon',\n {\n path,\n ...lineStyle\n },\n 'path'\n );\n return polygon;\n }\n\n setLocation(point: PointLocationCfg) {\n const { center } = this.attribute as PolygonCrosshairAttrs;\n const radius = PointService.distancePP(point, center);\n\n this.setAttribute('radius', radius);\n }\n}\n"]}
@@ -3,6 +3,7 @@ import type { RegionLocationCfg } from '../core/type';
3
3
  import type { Tag } from '../tag';
4
4
  import { CrosshairBase } from './base';
5
5
  import type { RectCrosshairAttrs } from './type';
6
+ import type { ComponentOptions } from '../interface';
6
7
  export declare class RectCrosshair extends CrosshairBase<RectCrosshairAttrs> {
7
8
  static defaultAttributes: {
8
9
  rectStyle: {
@@ -14,7 +15,7 @@ export declare class RectCrosshair extends CrosshairBase<RectCrosshairAttrs> {
14
15
  protected bottomLabelShape?: Tag;
15
16
  protected leftLabelShape?: Tag;
16
17
  protected rightLabelShape?: Tag;
17
- constructor(attributes: RectCrosshairAttrs);
18
+ constructor(attributes: RectCrosshairAttrs, options?: ComponentOptions);
18
19
  protected renderCrosshair(container: IGroup): import("@visactor/vrender-core").INode;
19
20
  setLocation(region: RegionLocationCfg): void;
20
21
  }
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const vutils_1 = require("@visactor/vutils"), base_1 = require("./base");
8
8
 
9
9
  class RectCrosshair extends base_1.CrosshairBase {
10
- constructor(attributes) {
11
- super((0, vutils_1.merge)({}, RectCrosshair.defaultAttributes, attributes));
10
+ constructor(attributes, options) {
11
+ super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, RectCrosshair.defaultAttributes, attributes));
12
12
  }
13
13
  renderCrosshair(container) {
14
14
  const {start: start, end: end, rectStyle: rectStyle} = this.attribute;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/crosshair/rect.ts"],"names":[],"mappings":";;;AAIA,6CAAyC;AAGzC,iCAAuC;AAGvC,MAAa,aAAc,SAAQ,oBAAiC;IAalE,YAAY,UAA8B;QACxC,KAAK,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,aAAa,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IAChE,CAAC;IAES,eAAe,CAAC,SAAiB;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;QAEvE,MAAM,IAAI,GAAG,SAAS,CAAC,mBAAmB,CACxC,gBAAgB,kBAEd,CAAC,EAAE,KAAK,CAAC,CAAC,EACV,CAAC,EAAE,KAAK,CAAC,CAAC,EACV,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EACtB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IACpB,SAAS,GAEd,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,MAAyB;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC;YACjB,KAAK;YACL,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;;AAxCH,sCAyCC;AAxCQ,+BAAiB,GAAG;IACzB,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG;KACb;CACF,CAAC","file":"rect.js","sourcesContent":["/**\n * @description 矩形类型 crosshair\n */\nimport type { IGroup } from '@visactor/vrender-core';\nimport { merge } from '@visactor/vutils';\nimport type { RegionLocationCfg } from '../core/type';\nimport type { Tag } from '../tag';\nimport { CrosshairBase } from './base';\nimport type { RectCrosshairAttrs } from './type';\n\nexport class RectCrosshair extends CrosshairBase<RectCrosshairAttrs> {\n static defaultAttributes = {\n rectStyle: {\n fill: '#b2bacf',\n opacity: 0.2\n }\n };\n\n protected topLabelShape?: Tag;\n protected bottomLabelShape?: Tag;\n protected leftLabelShape?: Tag;\n protected rightLabelShape?: Tag;\n\n constructor(attributes: RectCrosshairAttrs) {\n super(merge({}, RectCrosshair.defaultAttributes, attributes));\n }\n\n protected renderCrosshair(container: IGroup) {\n const { start, end, rectStyle } = this.attribute as RectCrosshairAttrs;\n\n const rect = container.createOrUpdateChild(\n 'crosshair-rect',\n {\n x: start.x,\n y: start.y,\n width: end.x - start.x,\n height: end.y - start.y,\n ...rectStyle\n },\n 'rect'\n );\n return rect;\n }\n\n setLocation(region: RegionLocationCfg) {\n const { start, end } = region;\n this.setAttributes({\n start,\n end\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/crosshair/rect.ts"],"names":[],"mappings":";;;AAIA,6CAAyC;AAGzC,iCAAuC;AAIvC,MAAa,aAAc,SAAQ,oBAAiC;IAalE,YAAY,UAA8B,EAAE,OAA0B;QACpE,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,aAAa,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IACpG,CAAC;IAES,eAAe,CAAC,SAAiB;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAA+B,CAAC;QAEvE,MAAM,IAAI,GAAG,SAAS,CAAC,mBAAmB,CACxC,gBAAgB,kBAEd,CAAC,EAAE,KAAK,CAAC,CAAC,EACV,CAAC,EAAE,KAAK,CAAC,CAAC,EACV,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EACtB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IACpB,SAAS,GAEd,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,MAAyB;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC;YACjB,KAAK;YACL,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;;AAxCH,sCAyCC;AAxCQ,+BAAiB,GAAG;IACzB,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG;KACb;CACF,CAAC","file":"rect.js","sourcesContent":["/**\n * @description 矩形类型 crosshair\n */\nimport type { IGroup } from '@visactor/vrender-core';\nimport { merge } from '@visactor/vutils';\nimport type { RegionLocationCfg } from '../core/type';\nimport type { Tag } from '../tag';\nimport { CrosshairBase } from './base';\nimport type { RectCrosshairAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\n\nexport class RectCrosshair extends CrosshairBase<RectCrosshairAttrs> {\n static defaultAttributes = {\n rectStyle: {\n fill: '#b2bacf',\n opacity: 0.2\n }\n };\n\n protected topLabelShape?: Tag;\n protected bottomLabelShape?: Tag;\n protected leftLabelShape?: Tag;\n protected rightLabelShape?: Tag;\n\n constructor(attributes: RectCrosshairAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, RectCrosshair.defaultAttributes, attributes));\n }\n\n protected renderCrosshair(container: IGroup) {\n const { start, end, rectStyle } = this.attribute as RectCrosshairAttrs;\n\n const rect = container.createOrUpdateChild(\n 'crosshair-rect',\n {\n x: start.x,\n y: start.y,\n width: end.x - start.x,\n height: end.y - start.y,\n ...rectStyle\n },\n 'rect'\n );\n return rect;\n }\n\n setLocation(region: RegionLocationCfg) {\n const { start, end } = region;\n this.setAttributes({\n start,\n end\n });\n }\n}\n"]}