@visactor/vtable 1.4.2-alpha.3 → 1.4.2-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/cjs/ListTable.js +20 -35
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.js +11 -30
  4. package/cjs/PivotChart.js.map +1 -1
  5. package/cjs/PivotTable.js +33 -47
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/body-helper/style.js +2 -1
  8. package/cjs/components/axis/axis.d.ts +0 -3
  9. package/cjs/components/axis/axis.js +3 -3
  10. package/cjs/components/axis/axis.js.map +1 -1
  11. package/cjs/components/axis/get-axis-component-size.d.ts +0 -2
  12. package/cjs/components/axis/get-axis-component-size.js.map +1 -1
  13. package/cjs/components/empty-tip/empty-tip.d.ts +0 -3
  14. package/cjs/components/empty-tip/empty-tip.js.map +1 -1
  15. package/cjs/components/legend/create-legend.d.ts +0 -1
  16. package/cjs/components/legend/create-legend.js.map +1 -1
  17. package/cjs/components/menu/dom/MenuHandler.d.ts +0 -3
  18. package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
  19. package/cjs/components/title/title.d.ts +0 -3
  20. package/cjs/components/title/title.js.map +1 -1
  21. package/cjs/components/tooltip/TooltipHandler.d.ts +0 -3
  22. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  23. package/cjs/components/tooltip/logic/BubbleTooltipElement.js +2 -0
  24. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  25. package/cjs/core/BaseTable.d.ts +5 -4
  26. package/cjs/core/BaseTable.js +51 -194
  27. package/cjs/core/BaseTable.js.map +1 -1
  28. package/cjs/core/row-series-number-helper.js +1 -2
  29. package/cjs/core/utils/get-cell-position.d.ts +42 -0
  30. package/cjs/core/utils/get-cell-position.js +204 -0
  31. package/cjs/core/utils/get-cell-position.js.map +1 -0
  32. package/cjs/edit/edit-manager.d.ts +1 -1
  33. package/cjs/edit/edit-manager.js +9 -7
  34. package/cjs/edit/edit-manager.js.map +1 -1
  35. package/cjs/event/event.js +7 -3
  36. package/cjs/event/event.js.map +1 -1
  37. package/cjs/event/listener/container-dom.js +92 -86
  38. package/cjs/event/listener/container-dom.js.map +1 -1
  39. package/cjs/event/listener/table-group.js +29 -20
  40. package/cjs/event/listener/table-group.js.map +1 -1
  41. package/cjs/event/media-click.js +1 -2
  42. package/cjs/index.d.ts +5 -9
  43. package/cjs/index.js +16 -31
  44. package/cjs/index.js.map +1 -1
  45. package/cjs/layout/chart-helper/get-axis-config.d.ts +1 -1
  46. package/cjs/layout/chart-helper/get-axis-config.js +4 -4
  47. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  48. package/cjs/layout/chart-helper/get-axis-domain.d.ts +0 -1
  49. package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
  50. package/cjs/layout/chart-helper/get-chart-spec.js +9 -31
  51. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  52. package/cjs/layout/layout-helper.js +2 -2
  53. package/cjs/layout/layout-helper.js.map +1 -1
  54. package/cjs/layout/pivot-header-layout.js +184 -57
  55. package/cjs/layout/pivot-header-layout.js.map +1 -1
  56. package/cjs/layout/row-height-map.js +1 -0
  57. package/cjs/layout/simple-header-layout.d.ts +3 -0
  58. package/cjs/layout/simple-header-layout.js +28 -22
  59. package/cjs/layout/simple-header-layout.js.map +1 -1
  60. package/cjs/plugins/themes.js +1 -2
  61. package/cjs/scenegraph/component/custom.js +4 -2
  62. package/cjs/scenegraph/component/custom.js.map +1 -1
  63. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +63 -57
  64. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  65. package/cjs/scenegraph/group-creater/cell-helper.js +24 -29
  66. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  67. package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +0 -1
  68. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  69. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +0 -1
  70. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  71. package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +0 -1
  72. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  73. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +0 -1
  74. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  75. package/cjs/scenegraph/group-creater/cell-type/radio-cell.d.ts +0 -1
  76. package/cjs/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  77. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +0 -1
  78. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  79. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +0 -1
  80. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  81. package/cjs/scenegraph/group-creater/cell-type/video-cell.d.ts +0 -1
  82. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  83. package/cjs/scenegraph/group-creater/progress/proxy.js +8 -8
  84. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  85. package/cjs/scenegraph/layout/compute-col-width.js +3 -3
  86. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  87. package/cjs/scenegraph/layout/compute-row-height.js +3 -3
  88. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  89. package/cjs/scenegraph/layout/update-height.js +4 -3
  90. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  91. package/cjs/scenegraph/layout/update-width.js +5 -4
  92. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  93. package/cjs/scenegraph/refresh-node/update-chart.js +2 -2
  94. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  95. package/cjs/scenegraph/scenegraph.js +1 -1
  96. package/cjs/scenegraph/scenegraph.js.map +1 -1
  97. package/cjs/state/cell-move/index.js +4 -1
  98. package/cjs/state/cell-move/index.js.map +1 -1
  99. package/cjs/state/sort/index.js +7 -3
  100. package/cjs/state/sort/index.js.map +1 -1
  101. package/cjs/state/state.d.ts +1 -1
  102. package/cjs/state/state.js +11 -7
  103. package/cjs/state/state.js.map +1 -1
  104. package/cjs/themes/ARCO.js +1 -1
  105. package/cjs/themes/BRIGHT.js +1 -1
  106. package/cjs/themes/DARK.js +1 -1
  107. package/cjs/themes/DEFAULT.js +1 -1
  108. package/cjs/themes/SIMPLIFY.js +1 -1
  109. package/cjs/tools/util.d.ts +1 -0
  110. package/cjs/tools/util.js +11 -2
  111. package/cjs/tools/util.js.map +1 -1
  112. package/cjs/ts-types/base-table.d.ts +3 -1
  113. package/cjs/ts-types/base-table.js.map +1 -1
  114. package/cjs/ts-types/list-table/define/basic-define.d.ts +1 -0
  115. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  116. package/cjs/ts-types/table-engine.d.ts +1 -1
  117. package/cjs/ts-types/table-engine.js.map +1 -1
  118. package/cjs/ts-types/theme.js.map +1 -1
  119. package/cjs/vrender.js +7 -7
  120. package/cjs/vrender.js.map +1 -1
  121. package/cjs/vutil-extension-temp/algorithm/binary-search.d.ts +2 -0
  122. package/cjs/vutil-extension-temp/algorithm/binary-search.js +21 -0
  123. package/cjs/vutil-extension-temp/algorithm/binary-search.js.map +1 -0
  124. package/cjs/vutil-extension-temp/algorithm/index.d.ts +1 -0
  125. package/cjs/vutil-extension-temp/algorithm/index.js +21 -0
  126. package/cjs/vutil-extension-temp/algorithm/index.js.map +1 -0
  127. package/cjs/vutil-extension-temp/index.d.ts +4 -0
  128. package/cjs/vutil-extension-temp/index.js +22 -0
  129. package/cjs/vutil-extension-temp/index.js.map +1 -0
  130. package/cjs/vutil-extension-temp/spec/clone-deep.d.ts +1 -0
  131. package/cjs/vutil-extension-temp/spec/clone-deep.js +27 -0
  132. package/cjs/vutil-extension-temp/spec/clone-deep.js.map +1 -0
  133. package/cjs/vutil-extension-temp/spec/common.d.ts +3 -0
  134. package/cjs/vutil-extension-temp/spec/common.js +23 -0
  135. package/cjs/vutil-extension-temp/spec/common.js.map +1 -0
  136. package/cjs/vutil-extension-temp/spec/index.d.ts +3 -0
  137. package/cjs/vutil-extension-temp/spec/index.js +22 -0
  138. package/cjs/vutil-extension-temp/spec/index.js.map +1 -0
  139. package/cjs/vutil-extension-temp/spec/merge-spec.d.ts +5 -0
  140. package/cjs/vutil-extension-temp/spec/merge-spec.js +69 -0
  141. package/cjs/vutil-extension-temp/spec/merge-spec.js.map +1 -0
  142. package/cjs/vutil-extension-temp/transform/tick-data/config.d.ts +1 -0
  143. package/cjs/vutil-extension-temp/transform/tick-data/config.js +6 -0
  144. package/cjs/vutil-extension-temp/transform/tick-data/config.js.map +1 -0
  145. package/cjs/vutil-extension-temp/transform/tick-data/continuous.d.ts +3 -0
  146. package/cjs/vutil-extension-temp/transform/tick-data/continuous.js +57 -0
  147. package/cjs/vutil-extension-temp/transform/tick-data/continuous.js.map +1 -0
  148. package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.d.ts +6 -0
  149. package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.js +101 -0
  150. package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.js.map +1 -0
  151. package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.d.ts +3 -0
  152. package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js +53 -0
  153. package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js.map +1 -0
  154. package/cjs/vutil-extension-temp/transform/tick-data/index.d.ts +6 -0
  155. package/cjs/vutil-extension-temp/transform/tick-data/index.js +41 -0
  156. package/cjs/vutil-extension-temp/transform/tick-data/index.js.map +1 -0
  157. package/cjs/vutil-extension-temp/transform/tick-data/interface.d.ts +38 -0
  158. package/cjs/vutil-extension-temp/transform/tick-data/interface.js +6 -0
  159. package/cjs/vutil-extension-temp/transform/tick-data/interface.js.map +1 -0
  160. package/cjs/vutil-extension-temp/transform/tick-data/util.d.ts +17 -0
  161. package/cjs/vutil-extension-temp/transform/tick-data/util.js +91 -0
  162. package/cjs/vutil-extension-temp/transform/tick-data/util.js.map +1 -0
  163. package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.d.ts +8 -0
  164. package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js +20 -0
  165. package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js.map +1 -0
  166. package/cjs/vutil-extension-temp/utils/index.d.ts +3 -0
  167. package/cjs/vutil-extension-temp/utils/index.js +22 -0
  168. package/cjs/vutil-extension-temp/utils/index.js.map +1 -0
  169. package/cjs/vutil-extension-temp/utils/object.d.ts +3 -0
  170. package/cjs/vutil-extension-temp/utils/object.js +30 -0
  171. package/cjs/vutil-extension-temp/utils/object.js.map +1 -0
  172. package/cjs/vutil-extension-temp/utils/polar.d.ts +5 -0
  173. package/cjs/vutil-extension-temp/utils/polar.js +23 -0
  174. package/cjs/vutil-extension-temp/utils/polar.js.map +1 -0
  175. package/cjs/vutil-extension-temp/utils/text.d.ts +4 -0
  176. package/cjs/vutil-extension-temp/utils/text.js +17 -0
  177. package/cjs/vutil-extension-temp/utils/text.js.map +1 -0
  178. package/dist/vtable.js +31492 -30779
  179. package/dist/vtable.min.js +2 -2
  180. package/es/ListTable.js +17 -31
  181. package/es/ListTable.js.map +1 -1
  182. package/es/PivotChart.js +12 -31
  183. package/es/PivotChart.js.map +1 -1
  184. package/es/PivotTable.js +34 -46
  185. package/es/PivotTable.js.map +1 -1
  186. package/es/body-helper/style.js +2 -1
  187. package/es/components/axis/axis.d.ts +0 -3
  188. package/es/components/axis/axis.js +3 -4
  189. package/es/components/axis/axis.js.map +1 -1
  190. package/es/components/axis/get-axis-component-size.d.ts +0 -2
  191. package/es/components/axis/get-axis-component-size.js.map +1 -1
  192. package/es/components/empty-tip/empty-tip.d.ts +0 -3
  193. package/es/components/empty-tip/empty-tip.js.map +1 -1
  194. package/es/components/legend/create-legend.d.ts +0 -1
  195. package/es/components/legend/create-legend.js.map +1 -1
  196. package/es/components/menu/dom/MenuHandler.d.ts +0 -3
  197. package/es/components/menu/dom/MenuHandler.js.map +1 -1
  198. package/es/components/title/title.d.ts +0 -3
  199. package/es/components/title/title.js.map +1 -1
  200. package/es/components/tooltip/TooltipHandler.d.ts +0 -3
  201. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  202. package/es/components/tooltip/logic/BubbleTooltipElement.js +3 -1
  203. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  204. package/es/core/BaseTable.d.ts +5 -4
  205. package/es/core/BaseTable.js +56 -195
  206. package/es/core/BaseTable.js.map +1 -1
  207. package/es/core/row-series-number-helper.js +1 -2
  208. package/es/core/utils/get-cell-position.d.ts +42 -0
  209. package/es/core/utils/get-cell-position.js +192 -0
  210. package/es/core/utils/get-cell-position.js.map +1 -0
  211. package/es/edit/edit-manager.d.ts +1 -1
  212. package/es/edit/edit-manager.js +9 -7
  213. package/es/edit/edit-manager.js.map +1 -1
  214. package/es/event/event.js +6 -2
  215. package/es/event/event.js.map +1 -1
  216. package/es/event/listener/container-dom.js +92 -86
  217. package/es/event/listener/container-dom.js.map +1 -1
  218. package/es/event/listener/table-group.js +29 -20
  219. package/es/event/listener/table-group.js.map +1 -1
  220. package/es/event/media-click.js +1 -2
  221. package/es/index.d.ts +5 -9
  222. package/es/index.js +5 -13
  223. package/es/index.js.map +1 -1
  224. package/es/layout/chart-helper/get-axis-config.d.ts +1 -1
  225. package/es/layout/chart-helper/get-axis-config.js +4 -4
  226. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  227. package/es/layout/chart-helper/get-axis-domain.d.ts +0 -1
  228. package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
  229. package/es/layout/chart-helper/get-chart-spec.js +10 -34
  230. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  231. package/es/layout/layout-helper.js +2 -2
  232. package/es/layout/layout-helper.js.map +1 -1
  233. package/es/layout/pivot-header-layout.js +184 -57
  234. package/es/layout/pivot-header-layout.js.map +1 -1
  235. package/es/layout/row-height-map.js +2 -1
  236. package/es/layout/simple-header-layout.d.ts +3 -0
  237. package/es/layout/simple-header-layout.js +28 -22
  238. package/es/layout/simple-header-layout.js.map +1 -1
  239. package/es/plugins/themes.js +1 -2
  240. package/es/scenegraph/component/custom.js +4 -2
  241. package/es/scenegraph/component/custom.js.map +1 -1
  242. package/es/scenegraph/graphic/contributions/group-contribution-render.js +63 -57
  243. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  244. package/es/scenegraph/group-creater/cell-helper.js +37 -29
  245. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  246. package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +0 -1
  247. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  248. package/es/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +0 -1
  249. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  250. package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +0 -1
  251. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  252. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +0 -1
  253. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  254. package/es/scenegraph/group-creater/cell-type/radio-cell.d.ts +0 -1
  255. package/es/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  256. package/es/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +0 -1
  257. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  258. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +0 -1
  259. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  260. package/es/scenegraph/group-creater/cell-type/video-cell.d.ts +0 -1
  261. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  262. package/es/scenegraph/group-creater/progress/proxy.js +8 -8
  263. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  264. package/es/scenegraph/layout/compute-col-width.js +5 -3
  265. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  266. package/es/scenegraph/layout/compute-row-height.js +5 -3
  267. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  268. package/es/scenegraph/layout/update-height.js +6 -4
  269. package/es/scenegraph/layout/update-height.js.map +1 -1
  270. package/es/scenegraph/layout/update-width.js +8 -4
  271. package/es/scenegraph/layout/update-width.js.map +1 -1
  272. package/es/scenegraph/refresh-node/update-chart.js +2 -2
  273. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  274. package/es/scenegraph/scenegraph.js +2 -2
  275. package/es/scenegraph/scenegraph.js.map +1 -1
  276. package/es/state/cell-move/index.js +4 -1
  277. package/es/state/cell-move/index.js.map +1 -1
  278. package/es/state/sort/index.js +7 -3
  279. package/es/state/sort/index.js.map +1 -1
  280. package/es/state/state.d.ts +1 -1
  281. package/es/state/state.js +11 -7
  282. package/es/state/state.js.map +1 -1
  283. package/es/themes/ARCO.js +1 -1
  284. package/es/themes/BRIGHT.js +1 -1
  285. package/es/themes/DARK.js +1 -1
  286. package/es/themes/DEFAULT.js +1 -1
  287. package/es/themes/SIMPLIFY.js +1 -1
  288. package/es/tools/util.d.ts +1 -0
  289. package/es/tools/util.js +9 -0
  290. package/es/tools/util.js.map +1 -1
  291. package/es/ts-types/base-table.d.ts +3 -1
  292. package/es/ts-types/base-table.js.map +1 -1
  293. package/es/ts-types/list-table/define/basic-define.d.ts +1 -0
  294. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  295. package/es/ts-types/table-engine.d.ts +1 -1
  296. package/es/ts-types/table-engine.js.map +1 -1
  297. package/es/ts-types/theme.js.map +1 -1
  298. package/es/vrender.js +5 -5
  299. package/es/vrender.js.map +1 -1
  300. package/es/vutil-extension-temp/algorithm/binary-search.d.ts +2 -0
  301. package/es/vutil-extension-temp/algorithm/binary-search.js +11 -0
  302. package/es/vutil-extension-temp/algorithm/binary-search.js.map +1 -0
  303. package/es/vutil-extension-temp/algorithm/index.d.ts +1 -0
  304. package/es/vutil-extension-temp/algorithm/index.js +2 -0
  305. package/es/vutil-extension-temp/algorithm/index.js.map +1 -0
  306. package/es/vutil-extension-temp/index.d.ts +4 -0
  307. package/es/vutil-extension-temp/index.js +8 -0
  308. package/es/vutil-extension-temp/index.js.map +1 -0
  309. package/es/vutil-extension-temp/spec/clone-deep.d.ts +1 -0
  310. package/es/vutil-extension-temp/spec/clone-deep.js +20 -0
  311. package/es/vutil-extension-temp/spec/clone-deep.js.map +1 -0
  312. package/es/vutil-extension-temp/spec/common.d.ts +3 -0
  313. package/es/vutil-extension-temp/spec/common.js +15 -0
  314. package/es/vutil-extension-temp/spec/common.js.map +1 -0
  315. package/es/vutil-extension-temp/spec/index.d.ts +3 -0
  316. package/es/vutil-extension-temp/spec/index.js +6 -0
  317. package/es/vutil-extension-temp/spec/index.js.map +1 -0
  318. package/es/vutil-extension-temp/spec/merge-spec.d.ts +5 -0
  319. package/es/vutil-extension-temp/spec/merge-spec.js +57 -0
  320. package/es/vutil-extension-temp/spec/merge-spec.js.map +1 -0
  321. package/es/vutil-extension-temp/transform/tick-data/config.d.ts +1 -0
  322. package/es/vutil-extension-temp/transform/tick-data/config.js +2 -0
  323. package/es/vutil-extension-temp/transform/tick-data/config.js.map +1 -0
  324. package/es/vutil-extension-temp/transform/tick-data/continuous.d.ts +3 -0
  325. package/es/vutil-extension-temp/transform/tick-data/continuous.js +56 -0
  326. package/es/vutil-extension-temp/transform/tick-data/continuous.js.map +1 -0
  327. package/es/vutil-extension-temp/transform/tick-data/discrete/linear.d.ts +6 -0
  328. package/es/vutil-extension-temp/transform/tick-data/discrete/linear.js +92 -0
  329. package/es/vutil-extension-temp/transform/tick-data/discrete/linear.js.map +1 -0
  330. package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.d.ts +3 -0
  331. package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js +45 -0
  332. package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js.map +1 -0
  333. package/es/vutil-extension-temp/transform/tick-data/index.d.ts +6 -0
  334. package/es/vutil-extension-temp/transform/tick-data/index.js +23 -0
  335. package/es/vutil-extension-temp/transform/tick-data/index.js.map +1 -0
  336. package/es/vutil-extension-temp/transform/tick-data/interface.d.ts +38 -0
  337. package/es/vutil-extension-temp/transform/tick-data/interface.js +2 -0
  338. package/es/vutil-extension-temp/transform/tick-data/interface.js.map +1 -0
  339. package/es/vutil-extension-temp/transform/tick-data/util.d.ts +17 -0
  340. package/es/vutil-extension-temp/transform/tick-data/util.js +78 -0
  341. package/es/vutil-extension-temp/transform/tick-data/util.js.map +1 -0
  342. package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.d.ts +8 -0
  343. package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js +12 -0
  344. package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js.map +1 -0
  345. package/es/vutil-extension-temp/utils/index.d.ts +3 -0
  346. package/es/vutil-extension-temp/utils/index.js +6 -0
  347. package/es/vutil-extension-temp/utils/index.js.map +1 -0
  348. package/es/vutil-extension-temp/utils/object.d.ts +3 -0
  349. package/es/vutil-extension-temp/utils/object.js +15 -0
  350. package/es/vutil-extension-temp/utils/object.js.map +1 -0
  351. package/es/vutil-extension-temp/utils/polar.d.ts +5 -0
  352. package/es/vutil-extension-temp/utils/polar.js +16 -0
  353. package/es/vutil-extension-temp/utils/polar.js.map +1 -0
  354. package/es/vutil-extension-temp/utils/text.d.ts +4 -0
  355. package/es/vutil-extension-temp/utils/text.js +13 -0
  356. package/es/vutil-extension-temp/utils/text.js.map +1 -0
  357. package/package.json +5 -14
  358. package/cjs/ListTable-all.d.ts +0 -3
  359. package/cjs/ListTable-all.js +0 -18
  360. package/cjs/ListTable-all.js.map +0 -1
  361. package/cjs/ListTable-simple.d.ts +0 -3
  362. package/cjs/ListTable-simple.js +0 -14
  363. package/cjs/ListTable-simple.js.map +0 -1
  364. package/cjs/PivotTable-all.d.ts +0 -3
  365. package/cjs/PivotTable-all.js +0 -19
  366. package/cjs/PivotTable-all.js.map +0 -1
  367. package/cjs/PivotTable-simple.d.ts +0 -3
  368. package/cjs/PivotTable-simple.js +0 -14
  369. package/cjs/PivotTable-simple.js.map +0 -1
  370. package/cjs/components/index.d.ts +0 -6
  371. package/cjs/components/index.js +0 -44
  372. package/cjs/components/index.js.map +0 -1
  373. package/cjs/core/factory.d.ts +0 -11
  374. package/cjs/core/factory.js +0 -29
  375. package/cjs/core/factory.js.map +0 -1
  376. package/cjs/scenegraph/group-creater/cell-type/index.d.ts +0 -8
  377. package/cjs/scenegraph/group-creater/cell-type/index.js +0 -55
  378. package/cjs/scenegraph/group-creater/cell-type/index.js.map +0 -1
  379. package/es/ListTable-all.d.ts +0 -3
  380. package/es/ListTable-all.js +0 -12
  381. package/es/ListTable-all.js.map +0 -1
  382. package/es/ListTable-simple.d.ts +0 -3
  383. package/es/ListTable-simple.js +0 -8
  384. package/es/ListTable-simple.js.map +0 -1
  385. package/es/PivotTable-all.d.ts +0 -3
  386. package/es/PivotTable-all.js +0 -13
  387. package/es/PivotTable-all.js.map +0 -1
  388. package/es/PivotTable-simple.d.ts +0 -3
  389. package/es/PivotTable-simple.js +0 -8
  390. package/es/PivotTable-simple.js.map +0 -1
  391. package/es/components/index.d.ts +0 -6
  392. package/es/components/index.js +0 -44
  393. package/es/components/index.js.map +0 -1
  394. package/es/core/factory.d.ts +0 -11
  395. package/es/core/factory.js +0 -23
  396. package/es/core/factory.js.map +0 -1
  397. package/es/scenegraph/group-creater/cell-type/index.d.ts +0 -8
  398. package/es/scenegraph/group-creater/cell-type/index.js +0 -52
  399. package/es/scenegraph/group-creater/cell-type/index.js.map +0 -1
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.polarAngleAxisDiscreteTicks = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils"), util_1 = require("../util"), polarAngleAxisDiscreteTicks = (scale, op) => {
8
+ const {tickCount: tickCount, forceTickCount: forceTickCount, tickStep: tickStep, getRadius: getRadius, labelOffset: labelOffset, labelGap: labelGap = 0, labelStyle: labelStyle} = op, radius = null == getRadius ? void 0 : getRadius();
9
+ if (!radius) return (0, util_1.convertDomainToTickData)(scale.domain());
10
+ let scaleTicks;
11
+ if ((0, vutils_1.isValid)(tickStep)) scaleTicks = scale.stepTicks(tickStep); else if ((0,
12
+ vutils_1.isValid)(forceTickCount)) scaleTicks = scale.forceTicks(forceTickCount); else if ((0,
13
+ vutils_1.isValid)(tickCount)) {
14
+ const range = scale.range(), rangeSize = Math.abs(range[range.length - 1] - range[0]), count = (0,
15
+ vutils_1.isFunction)(tickCount) ? tickCount({
16
+ axisLength: rangeSize,
17
+ labelStyle: labelStyle
18
+ }) : tickCount;
19
+ scaleTicks = scale.ticks(count);
20
+ } else if (op.sampling) {
21
+ const domain = scale.domain(), range = scale.range(), labelBoundsList = (0, util_1.getPolarAngleLabelBounds)(scale, domain, op), rangeStart = (0,
22
+ vutils_1.minInArray)(range), rangeEnd = (0, vutils_1.maxInArray)(range), incrementUnit = Math.abs(rangeEnd - rangeStart) * (radius + labelOffset) / domain.length, {step: step, delCount: delCount} = getStep(domain, labelBoundsList, labelGap, Math.floor(labelBoundsList.reduce(((min, curBounds) => Math.min(min, curBounds.width(), curBounds.height())), Number.MAX_VALUE) / incrementUnit));
23
+ scaleTicks = scale.stepTicks(step), scaleTicks = scaleTicks.slice(0, scaleTicks.length - delCount);
24
+ } else scaleTicks = scale.domain();
25
+ return (0, util_1.convertDomainToTickData)(scaleTicks);
26
+ };
27
+
28
+ exports.polarAngleAxisDiscreteTicks = polarAngleAxisDiscreteTicks;
29
+
30
+ const getStep = (domain, labelBoundsList, labelGap, defaultStep) => {
31
+ let step = defaultStep;
32
+ do {
33
+ let success = !0;
34
+ step++;
35
+ let ptr = 0;
36
+ do {
37
+ ptr + step < domain.length && (0, util_1.labelOverlap)(labelBoundsList[ptr], labelBoundsList[ptr + step], labelGap) && (success = !1),
38
+ ptr += step;
39
+ } while (success && ptr < domain.length);
40
+ if (success) break;
41
+ } while (step <= domain.length);
42
+ let delCount = 0;
43
+ if (domain.length > 2) {
44
+ let ptr = domain.length - domain.length % step;
45
+ for (ptr >= domain.length && (ptr -= step); ptr > 0 && (0, util_1.labelOverlap)(labelBoundsList[0], labelBoundsList[ptr]); ) delCount++,
46
+ ptr -= step;
47
+ }
48
+ return {
49
+ step: step,
50
+ delCount: delCount
51
+ };
52
+ };
53
+ //# sourceMappingURL=polar-angle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/discrete/polar-angle.ts"],"names":[],"mappings":"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","file":"polar-angle.js","sourcesContent":["import type { BandScale } from '@visactor/vscale';\nimport { isFunction, isValid, maxInArray, minInArray } from '@visactor/vutils';\nimport type { IPolarTickDataOpt, ITickData } from '../interface';\nimport { convertDomainToTickData, getPolarAngleLabelBounds, labelOverlap } from '../util';\nimport type { AABBBounds } from '@visactor/vutils';\n\n/**\n * 对于离散轴:\n * - 如果spec配了tickCount、forceTickCount、tickStep,则直接输出BandScale的ticks()、forceTicks()、stepTicks()结果;\n * - 估算所有轴label的宽高并存为数组labelBoundsList;\n * - 通过循环来寻找最小的step,使:如果在这个step下采样,轴标签互不遮挡(此处用到labelBoundsList和scale.range());\n *\n * @param scale\n * @param op\n * @returns\n */\nexport const polarAngleAxisDiscreteTicks = (scale: BandScale, op: IPolarTickDataOpt): ITickData[] => {\n const { tickCount, forceTickCount, tickStep, getRadius, labelOffset, labelGap = 0, labelStyle } = op;\n const radius = getRadius?.();\n if (!radius) {\n return convertDomainToTickData(scale.domain());\n }\n\n let scaleTicks;\n if (isValid(tickStep)) {\n scaleTicks = scale.stepTicks(tickStep);\n } else if (isValid(forceTickCount)) {\n scaleTicks = scale.forceTicks(forceTickCount);\n } else if (isValid(tickCount)) {\n const range = scale.range();\n const rangeSize = Math.abs(range[range.length - 1] - range[0]);\n const count = isFunction(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount;\n scaleTicks = scale.ticks(count);\n } else if (op.sampling) {\n const domain = scale.domain();\n const range = scale.range();\n\n const labelBoundsList = getPolarAngleLabelBounds(scale, domain, op);\n\n const rangeStart = minInArray(range);\n const rangeEnd = maxInArray(range);\n\n const axisLength = Math.abs(rangeEnd - rangeStart) * (radius + labelOffset);\n const incrementUnit = axisLength / domain.length;\n const { step, delCount } = getStep(\n domain,\n labelBoundsList,\n labelGap,\n Math.floor(\n labelBoundsList.reduce((min, curBounds) => {\n return Math.min(min, curBounds.width(), curBounds.height());\n }, Number.MAX_VALUE) / incrementUnit\n ) // 给step赋上合适的初值,有效改善外层循环次数\n );\n\n scaleTicks = (scale as BandScale).stepTicks(step);\n scaleTicks = scaleTicks.slice(0, scaleTicks.length - delCount);\n } else {\n scaleTicks = scale.domain();\n }\n\n return convertDomainToTickData(scaleTicks);\n};\n\n/** 计算合适的step */\nconst getStep = (domain: any[], labelBoundsList: AABBBounds[], labelGap: number, defaultStep: number) => {\n let step = defaultStep;\n // 通过循环来寻找最小的step,使:如果在这个step下采样,轴标签互不遮挡\n do {\n let success = true;\n step++;\n let ptr = 0;\n do {\n if (ptr + step < domain.length && labelOverlap(labelBoundsList[ptr], labelBoundsList[ptr + step], labelGap)) {\n success = false;\n }\n ptr += step;\n } while (success && ptr < domain.length);\n if (success) {\n break;\n }\n } while (step <= domain.length);\n\n let delCount = 0;\n if (domain.length > 2) {\n let ptr = domain.length - (domain.length % step);\n if (ptr >= domain.length) {\n ptr -= step;\n }\n // 判断首尾是否互相覆盖\n while (ptr > 0 && labelOverlap(labelBoundsList[0], labelBoundsList[ptr])) {\n delCount++;\n ptr -= step;\n }\n }\n\n return {\n step,\n delCount\n };\n};\n"]}
@@ -0,0 +1,6 @@
1
+ import type { IBaseScale } from '@visactor/vscale';
2
+ import type { ITickData, ITickDataOpt } from './interface';
3
+ import { convertDomainToTickData } from './util';
4
+ export * from './interface';
5
+ export { convertDomainToTickData };
6
+ export declare const ticks: (scale: IBaseScale, op: ITickDataOpt) => ITickData[];
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
+ void 0 === k2 && (k2 = k);
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
+ enumerable: !0,
8
+ get: function() {
9
+ return m[k];
10
+ }
11
+ }), Object.defineProperty(o, k2, desc);
12
+ } : function(o, m, k, k2) {
13
+ void 0 === k2 && (k2 = k), o[k2] = m[k];
14
+ }), __exportStar = this && this.__exportStar || function(m, exports) {
15
+ for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
16
+ };
17
+
18
+ Object.defineProperty(exports, "__esModule", {
19
+ value: !0
20
+ }), exports.ticks = exports.convertDomainToTickData = void 0;
21
+
22
+ const vscale_1 = require("@visactor/vscale"), continuous_1 = require("./continuous"), linear_1 = require("./discrete/linear"), polar_angle_1 = require("./discrete/polar-angle"), util_1 = require("./util");
23
+
24
+ Object.defineProperty(exports, "convertDomainToTickData", {
25
+ enumerable: !0,
26
+ get: function() {
27
+ return util_1.convertDomainToTickData;
28
+ }
29
+ }), __exportStar(require("./interface"), exports);
30
+
31
+ const ticks = (scale, op) => {
32
+ if ((0, vscale_1.isContinuous)(scale.type)) return (0, continuous_1.continuousTicks)(scale, op);
33
+ if ((0, vscale_1.isDiscrete)(scale.type)) {
34
+ if ("cartesian" === op.coordinateType) return (0, linear_1.linearDiscreteTicks)(scale, op);
35
+ if ("polar" === op.coordinateType && "angle" === op.axisOrientType) return (0, polar_angle_1.polarAngleAxisDiscreteTicks)(scale, op);
36
+ }
37
+ return (0, util_1.convertDomainToTickData)(scale.domain());
38
+ };
39
+
40
+ exports.ticks = ticks;
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,6CAA4D;AAC5D,6CAA+C;AAC/C,8CAAwD;AACxD,wDAAqE;AAErE,iCAAiD;AAGxC,wGAHA,8BAAuB,OAGA;AADhC,8CAA4B;AAIrB,MAAM,KAAK,GAAG,CAAC,KAAiB,EAAE,EAAgB,EAAe,EAAE;IACxE,IAAI,IAAA,qBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAC5B,OAAO,IAAA,4BAAe,EAAC,KAAwB,EAAE,EAAE,CAAC,CAAC;KACtD;SAAM,IAAI,IAAA,mBAAU,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACjC,IAAI,EAAE,CAAC,cAAc,KAAK,WAAW,EAAE;YACrC,OAAO,IAAA,4BAAmB,EAAC,KAAkB,EAAE,EAA2B,CAAC,CAAC;SAC7E;aAAM,IAAI,EAAE,CAAC,cAAc,KAAK,OAAO,EAAE;YACxC,IAAI,EAAE,CAAC,cAAc,KAAK,OAAO,EAAE;gBACjC,OAAO,IAAA,yCAA2B,EAAC,KAAkB,EAAE,EAAuB,CAAC,CAAC;aACjF;SACF;KACF;IACD,OAAO,IAAA,8BAAuB,EAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAbW,QAAA,KAAK,SAahB","file":"index.js","sourcesContent":["import type { BandScale, ContinuousScale, IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous, isDiscrete } from '@visactor/vscale';\nimport { continuousTicks } from './continuous';\nimport { linearDiscreteTicks } from './discrete/linear';\nimport { polarAngleAxisDiscreteTicks } from './discrete/polar-angle';\nimport type { ICartesianTickDataOpt, IPolarTickDataOpt, ITickData, ITickDataOpt } from './interface';\nimport { convertDomainToTickData } from './util';\n\nexport * from './interface';\nexport { convertDomainToTickData };\n\n// 总入口\nexport const ticks = (scale: IBaseScale, op: ITickDataOpt): ITickData[] => {\n if (isContinuous(scale.type)) {\n return continuousTicks(scale as ContinuousScale, op);\n } else if (isDiscrete(scale.type)) {\n if (op.coordinateType === 'cartesian') {\n return linearDiscreteTicks(scale as BandScale, op as ICartesianTickDataOpt);\n } else if (op.coordinateType === 'polar') {\n if (op.axisOrientType === 'angle') {\n return polarAngleAxisDiscreteTicks(scale as BandScale, op as IPolarTickDataOpt);\n }\n }\n }\n return convertDomainToTickData(scale.domain());\n};\n"]}
@@ -0,0 +1,38 @@
1
+ import type { ITextGraphicAttribute } from '@visactor/vrender-core';
2
+ export type CoordinateType = 'cartesian' | 'polar' | 'geo' | 'none';
3
+ export type IOrientType = 'left' | 'top' | 'right' | 'bottom' | 'z';
4
+ export type IPolarOrientType = 'radius' | 'angle';
5
+ export interface ITickDataOpt {
6
+ sampling?: boolean;
7
+ tickCount?: number | ((option: ITickCallbackOption) => number);
8
+ forceTickCount?: number;
9
+ tickStep?: number;
10
+ tickMode?: 'average' | 'd3' | string;
11
+ noDecimals?: boolean;
12
+ coordinateType: CoordinateType;
13
+ axisOrientType: IOrientType | IPolarOrientType;
14
+ startAngle?: number;
15
+ labelFormatter?: (value: any) => string;
16
+ labelStyle: ITextGraphicAttribute;
17
+ labelGap?: number;
18
+ }
19
+ export interface ICartesianTickDataOpt extends ITickDataOpt {
20
+ axisOrientType: IOrientType;
21
+ labelLastVisible: boolean;
22
+ labelFlush: boolean;
23
+ }
24
+ export interface IPolarTickDataOpt extends ITickDataOpt {
25
+ axisOrientType: IPolarOrientType;
26
+ getRadius: () => number;
27
+ labelOffset: number;
28
+ inside: boolean;
29
+ }
30
+ export interface ITickData {
31
+ index: number;
32
+ value: number | string;
33
+ }
34
+ type ITickCallbackOption = {
35
+ axisLength?: number;
36
+ labelStyle?: ITextGraphicAttribute;
37
+ };
38
+ export {};
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ });
6
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ITextGraphicAttribute } from '@visactor/vrender-core';\n\nexport type CoordinateType = 'cartesian' | 'polar' | 'geo' | 'none';\nexport type IOrientType = 'left' | 'top' | 'right' | 'bottom' | 'z';\nexport type IPolarOrientType = 'radius' | 'angle';\n\nexport interface ITickDataOpt {\n /**\n * 是否进行轴采样\n */\n sampling?: boolean;\n tickCount?: number | ((option: ITickCallbackOption) => number);\n forceTickCount?: number;\n tickStep?: number;\n tickMode?: 'average' | 'd3' | string;\n noDecimals?: boolean;\n\n coordinateType: CoordinateType;\n axisOrientType: IOrientType | IPolarOrientType;\n startAngle?: number;\n\n labelFormatter?: (value: any) => string;\n labelStyle: ITextGraphicAttribute;\n labelGap?: number;\n}\n\nexport interface ICartesianTickDataOpt extends ITickDataOpt {\n axisOrientType: IOrientType;\n labelLastVisible: boolean;\n labelFlush: boolean;\n}\n\nexport interface IPolarTickDataOpt extends ITickDataOpt {\n axisOrientType: IPolarOrientType;\n getRadius: () => number;\n labelOffset: number;\n inside: boolean;\n}\n\nexport interface ITickData {\n index: number;\n value: number | string;\n // label: string;\n}\n\ntype ITickCallbackOption = {\n /**\n * 坐标轴占据的画布大小。\n * 直角坐标系中为轴的宽度或高度。\n * 极坐标系中半径轴的长度。\n */\n axisLength?: number;\n /**\n * 轴标签的样式\n */\n labelStyle?: ITextGraphicAttribute;\n};\n"]}
@@ -0,0 +1,17 @@
1
+ import type { IBaseScale } from '@visactor/vscale';
2
+ import type { IBoundsLike } from '@visactor/vutils';
3
+ import { AABBBounds } from '@visactor/vutils';
4
+ import type { IGraphic } from '@visactor/vrender-core';
5
+ import type { ICartesianTickDataOpt, IOrientType, IPolarTickDataOpt, ITickData } from './interface';
6
+ export declare const convertDomainToTickData: (domain: any[]) => ITickData[];
7
+ export declare const labelOverlap: (prevLabel: AABBBounds, nextLabel: AABBBounds, gap?: number) => boolean;
8
+ export declare const labelDistance: (prevLabel: AABBBounds, nextLabel: AABBBounds) => [number, number];
9
+ export declare function intersect(a: IBoundsLike, b: IBoundsLike, sep: number): boolean;
10
+ export interface ILabelItem<T> extends Pick<IGraphic, 'AABBBounds'> {
11
+ value?: T;
12
+ }
13
+ export declare function hasOverlap<T>(items: ILabelItem<T>[], pad: number): boolean;
14
+ export declare const MIN_TICK_GAP = 12;
15
+ export declare const getCartesianLabelBounds: (scale: IBaseScale, domain: any[], op: ICartesianTickDataOpt) => AABBBounds[];
16
+ export declare const getPolarAngleLabelBounds: (scale: IBaseScale, domain: any[], op: IPolarTickDataOpt) => AABBBounds[];
17
+ export declare const isAxisHorizontal: (axisOrientType: IOrientType) => boolean;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.isAxisHorizontal = exports.getPolarAngleLabelBounds = exports.getCartesianLabelBounds = exports.MIN_TICK_GAP = exports.hasOverlap = exports.intersect = exports.labelDistance = exports.labelOverlap = exports.convertDomainToTickData = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils"), text_1 = require("../../utils/text"), polar_label_position_1 = require("./utils/polar-label-position"), convertDomainToTickData = domain => domain.map(((t, index) => ({
8
+ index: index,
9
+ value: t
10
+ })));
11
+
12
+ exports.convertDomainToTickData = convertDomainToTickData;
13
+
14
+ const labelOverlap = (prevLabel, nextLabel, gap = 0) => {
15
+ const prevBounds = new vutils_1.AABBBounds(prevLabel).expand(gap / 2), nextBounds = new vutils_1.AABBBounds(nextLabel).expand(gap / 2);
16
+ return prevBounds.intersects(nextBounds);
17
+ };
18
+
19
+ exports.labelOverlap = labelOverlap;
20
+
21
+ const labelDistance = (prevLabel, nextLabel) => {
22
+ let horizontal = 0;
23
+ prevLabel.x2 < nextLabel.x1 ? horizontal = nextLabel.x1 - prevLabel.x2 : nextLabel.x2 < prevLabel.x1 && (horizontal = prevLabel.x1 - nextLabel.x2);
24
+ let vertical = 0;
25
+ return prevLabel.y2 < nextLabel.y1 ? vertical = nextLabel.y1 - prevLabel.y2 : nextLabel.y2 < prevLabel.y1 && (vertical = prevLabel.y1 - nextLabel.y2),
26
+ [ horizontal, vertical ];
27
+ };
28
+
29
+ function intersect(a, b, sep) {
30
+ return sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);
31
+ }
32
+
33
+ function hasOverlap(items, pad) {
34
+ for (let b, i = 1, n = items.length, a = items[0]; i < n; a = b, ++i) if (b = items[i],
35
+ intersect(a.AABBBounds, b.AABBBounds, pad)) return !0;
36
+ return !1;
37
+ }
38
+
39
+ exports.labelDistance = labelDistance, exports.intersect = intersect, exports.hasOverlap = hasOverlap,
40
+ exports.MIN_TICK_GAP = 12;
41
+
42
+ const getCartesianLabelBounds = (scale, domain, op) => {
43
+ var _a;
44
+ const {labelStyle: labelStyle, axisOrientType: axisOrientType, labelFlush: labelFlush, labelFormatter: labelFormatter, startAngle: startAngle = 0} = op;
45
+ let labelAngle = null !== (_a = labelStyle.angle) && void 0 !== _a ? _a : 0;
46
+ "vertical" === labelStyle.direction && (labelAngle += (0, vutils_1.degreeToRadian)(90));
47
+ const isHorizontal = [ "bottom", "top" ].includes(axisOrientType), isVertical = [ "left", "right" ].includes(axisOrientType);
48
+ let scaleX = 1, scaleY = 0;
49
+ isHorizontal || (isVertical ? (scaleX = 0, scaleY = 1) : startAngle && (scaleX = Math.cos(startAngle),
50
+ scaleY = -Math.sin(startAngle)));
51
+ const textMeasure = (0, text_1.initTextMeasure)(labelStyle), labelBoundsList = domain.map(((v, i) => {
52
+ var _a, _b;
53
+ const str = labelFormatter ? labelFormatter(v) : `${v}`, {width: width, height: height} = textMeasure.quickMeasure(str), textWidth = Math.max(width, exports.MIN_TICK_GAP), textHeight = Math.max(height, exports.MIN_TICK_GAP), pos = scale.scale(v), baseTextX = scaleX * pos, baseTextY = scaleY * pos;
54
+ let align, baseline, textX = baseTextX, textY = baseTextY;
55
+ align = labelFlush && isHorizontal && 0 === i ? "left" : labelFlush && isHorizontal && i === domain.length - 1 ? "right" : null !== (_a = labelStyle.textAlign) && void 0 !== _a ? _a : "center",
56
+ "right" === align ? textX -= textWidth : "center" === align && (textX -= textWidth / 2),
57
+ baseline = labelFlush && isVertical && 0 === i ? "top" : labelFlush && isVertical && i === domain.length - 1 ? "bottom" : null !== (_b = labelStyle.textBaseline) && void 0 !== _b ? _b : "middle",
58
+ "bottom" === baseline ? textY -= textHeight : "middle" === baseline && (textY -= textHeight / 2);
59
+ const bounds = (new vutils_1.AABBBounds).set(textX, textY, textX + textWidth, textY + textHeight);
60
+ return labelAngle && bounds.rotate(labelAngle, baseTextX, baseTextY), bounds;
61
+ }));
62
+ return labelBoundsList;
63
+ };
64
+
65
+ exports.getCartesianLabelBounds = getCartesianLabelBounds;
66
+
67
+ const getPolarAngleLabelBounds = (scale, domain, op) => {
68
+ var _a;
69
+ const {labelStyle: labelStyle, getRadius: getRadius, labelOffset: labelOffset, labelFormatter: labelFormatter, inside: inside} = op, radius = null == getRadius ? void 0 : getRadius(), labelAngle = null !== (_a = labelStyle.angle) && void 0 !== _a ? _a : 0, textMeasure = (0,
70
+ text_1.initTextMeasure)(labelStyle), labelBoundsList = domain.map((v => {
71
+ var _a, _b;
72
+ const str = labelFormatter ? labelFormatter(v) : `${v}`, {width: width, height: height} = textMeasure.quickMeasure(str), textWidth = Math.max(width, exports.MIN_TICK_GAP), textHeight = Math.max(height, exports.MIN_TICK_GAP), angle = scale.scale(v);
73
+ let textX = 0, textY = 0;
74
+ const orient_align = null !== (_a = labelStyle.textAlign) && void 0 !== _a ? _a : "center", orient_baseline = null !== (_b = labelStyle.textBaseline) && void 0 !== _b ? _b : "middle", {x: x, y: y} = (0,
75
+ polar_label_position_1.getLabelPosition)(angle, {
76
+ x: 0,
77
+ y: 0
78
+ }, radius, labelOffset, inside, str, labelStyle);
79
+ textX = x + ("right" === orient_align ? -textWidth : "center" === orient_align ? -textWidth / 2 : 0),
80
+ textY = y + ("bottom" === orient_baseline ? -textHeight : "middle" === orient_baseline ? -textHeight / 2 : 0);
81
+ return (new vutils_1.AABBBounds).set(textX, textY, textX + textWidth, textY + textHeight).rotate(labelAngle, textX + textWidth / 2, textY + textHeight / 2);
82
+ }));
83
+ return labelBoundsList;
84
+ };
85
+
86
+ exports.getPolarAngleLabelBounds = getPolarAngleLabelBounds;
87
+
88
+ const isAxisHorizontal = axisOrientType => [ "bottom", "top", "z" ].includes(axisOrientType);
89
+
90
+ exports.isAxisHorizontal = isAxisHorizontal;
91
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { AABBBounds, degreeToRadian } from '@visactor/vutils';\nimport type { IGraphic, TextAlignType, TextBaselineType } from '@visactor/vrender-core';\nimport { initTextMeasure } from '../../utils/text';\nimport type { ICartesianTickDataOpt, IOrientType, IPolarTickDataOpt, ITickData } from './interface';\nimport { getLabelPosition } from './utils/polar-label-position';\n\nexport const convertDomainToTickData = (domain: any[]): ITickData[] => {\n const ticks = domain.map((t: number, index: number) => {\n return {\n index,\n value: t\n };\n });\n return ticks;\n};\n\n/** 判断两个label是否有重叠情况 */\nexport const labelOverlap = (prevLabel: AABBBounds, nextLabel: AABBBounds, gap = 0): boolean => {\n const prevBounds = new AABBBounds(prevLabel).expand(gap / 2);\n const nextBounds = new AABBBounds(nextLabel).expand(gap / 2);\n return prevBounds.intersects(nextBounds);\n};\n\n/** 判断两个不相交的label相隔的距离 */\nexport const labelDistance = (prevLabel: AABBBounds, nextLabel: AABBBounds): [number, number] => {\n let horizontal = 0;\n if (prevLabel.x2 < nextLabel.x1) {\n horizontal = nextLabel.x1 - prevLabel.x2;\n } else if (nextLabel.x2 < prevLabel.x1) {\n horizontal = prevLabel.x1 - nextLabel.x2;\n }\n\n let vertical = 0;\n if (prevLabel.y2 < nextLabel.y1) {\n vertical = nextLabel.y1 - prevLabel.y2;\n } else if (nextLabel.y2 < prevLabel.y1) {\n vertical = prevLabel.y1 - nextLabel.y2;\n }\n\n return [horizontal, vertical];\n};\n\nexport function intersect(a: IBoundsLike, b: IBoundsLike, sep: number) {\n return sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);\n}\n\nexport interface ILabelItem<T> extends Pick<IGraphic, 'AABBBounds'> {\n value?: T;\n}\n\nexport function hasOverlap<T>(items: ILabelItem<T>[], pad: number): boolean {\n for (let i = 1, n = items.length, a = items[0], b; i < n; a = b, ++i) {\n b = items[i];\n if (intersect(a.AABBBounds, b.AABBBounds, pad)) {\n return true;\n }\n }\n return false;\n}\n\nexport const MIN_TICK_GAP = 12;\n\nexport const getCartesianLabelBounds = (scale: IBaseScale, domain: any[], op: ICartesianTickDataOpt): AABBBounds[] => {\n const { labelStyle, axisOrientType, labelFlush, labelFormatter, startAngle = 0 } = op;\n let labelAngle = labelStyle.angle ?? 0;\n if (labelStyle.direction === 'vertical') {\n labelAngle += degreeToRadian(90);\n }\n const isHorizontal = ['bottom', 'top'].includes(axisOrientType);\n const isVertical = ['left', 'right'].includes(axisOrientType);\n let scaleX = 1;\n let scaleY = 0;\n if (isHorizontal) {\n // nothing to update\n } else if (isVertical) {\n scaleX = 0;\n scaleY = 1;\n } else if (startAngle) {\n scaleX = Math.cos(startAngle);\n scaleY = -Math.sin(startAngle);\n }\n\n const textMeasure = initTextMeasure(labelStyle);\n const labelBoundsList = domain.map((v: any, i: number) => {\n const str = labelFormatter ? labelFormatter(v) : `${v}`;\n\n // 估算文本宽高\n const { width, height } = textMeasure.quickMeasure(str);\n const textWidth = Math.max(width, MIN_TICK_GAP);\n const textHeight = Math.max(height, MIN_TICK_GAP);\n\n // 估算文本位置\n const pos = scale.scale(v);\n const baseTextX = scaleX * pos;\n const baseTextY = scaleY * pos;\n let textX = baseTextX;\n let textY = baseTextY;\n\n let align: TextAlignType;\n if (labelFlush && isHorizontal && i === 0) {\n align = 'left';\n } else if (labelFlush && isHorizontal && i === domain.length - 1) {\n align = 'right';\n } else {\n align = labelStyle.textAlign ?? 'center';\n }\n if (align === 'right') {\n textX -= textWidth;\n } else if (align === 'center') {\n textX -= textWidth / 2;\n }\n\n let baseline: TextBaselineType;\n if (labelFlush && isVertical && i === 0) {\n baseline = 'top';\n } else if (labelFlush && isVertical && i === domain.length - 1) {\n baseline = 'bottom';\n } else {\n baseline = labelStyle.textBaseline ?? 'middle';\n }\n if (baseline === 'bottom') {\n textY -= textHeight;\n } else if (baseline === 'middle') {\n textY -= textHeight / 2;\n }\n\n // 计算 label 包围盒\n const bounds = new AABBBounds().set(textX, textY, textX + textWidth, textY + textHeight);\n\n if (labelAngle) {\n bounds.rotate(labelAngle, baseTextX, baseTextY);\n }\n\n return bounds;\n });\n\n return labelBoundsList;\n};\n\nexport const getPolarAngleLabelBounds = (scale: IBaseScale, domain: any[], op: IPolarTickDataOpt): AABBBounds[] => {\n const { labelStyle, getRadius, labelOffset, labelFormatter, inside } = op;\n const radius = getRadius?.();\n const labelAngle = labelStyle.angle ?? 0;\n\n const textMeasure = initTextMeasure(labelStyle);\n const labelBoundsList = domain.map((v: any) => {\n const str = labelFormatter ? labelFormatter(v) : `${v}`;\n\n // 估算文本宽高\n const { width, height } = textMeasure.quickMeasure(str);\n const textWidth = Math.max(width, MIN_TICK_GAP);\n const textHeight = Math.max(height, MIN_TICK_GAP);\n\n // 估算文本位置\n const angle = scale.scale(v);\n let textX = 0;\n let textY = 0;\n const orient = {\n align: labelStyle.textAlign ?? 'center',\n baseline: labelStyle.textBaseline ?? 'middle'\n };\n\n const { x, y } = getLabelPosition(angle, { x: 0, y: 0 }, radius, labelOffset, inside, str, labelStyle);\n textX = x + (orient.align === 'right' ? -textWidth : orient.align === 'center' ? -textWidth / 2 : 0);\n textY = y + (orient.baseline === 'bottom' ? -textHeight : orient.baseline === 'middle' ? -textHeight / 2 : 0);\n\n // 计算 label 包围盒\n const bounds = new AABBBounds()\n .set(textX, textY, textX + textWidth, textY + textHeight)\n .rotate(labelAngle, textX + textWidth / 2, textY + textHeight / 2);\n return bounds;\n });\n\n return labelBoundsList;\n};\n\nexport const isAxisHorizontal = (axisOrientType: IOrientType) => {\n return (['bottom', 'top', 'z'] as IOrientType[]).includes(axisOrientType);\n};\n"]}
@@ -0,0 +1,8 @@
1
+ import type { ITextGraphicAttribute } from '@visactor/vrender-core';
2
+ export declare function getLabelPosition(angle: number, center: {
3
+ x: number;
4
+ y: number;
5
+ }, radius: number, labelOffset: number, inside: boolean, text: string | number, style: Partial<ITextGraphicAttribute>): {
6
+ x: number;
7
+ y: number;
8
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.getLabelPosition = void 0;
6
+
7
+ const vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils");
8
+
9
+ function getLabelPosition(angle, center, radius, labelOffset, inside, text, style) {
10
+ const point = (0, vutils_1.polarToCartesian)({
11
+ x: 0,
12
+ y: 0
13
+ }, radius, angle), labelPoint = (0, vrender_components_1.getVerticalCoord)(point, (0,
14
+ vrender_components_1.getCircleVerticalVector)(labelOffset, point, center, inside)), vector = (0,
15
+ vrender_components_1.getCircleVerticalVector)(labelOffset || 1, labelPoint, center, inside);
16
+ return (0, vrender_components_1.getCircleLabelPosition)(labelPoint, vector, text, style);
17
+ }
18
+
19
+ exports.getLabelPosition = getLabelPosition;
20
+ //# sourceMappingURL=polar-label-position.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/utils/polar-label-position.ts"],"names":[],"mappings":";;;AACA,qEAAiH;AACjH,6CAAoD;AAEpD,SAAgB,gBAAgB,CAC9B,KAAa,EACb,MAAgC,EAChC,MAAc,EACd,WAAmB,EACnB,MAAe,EACf,IAAqB,EACrB,KAAqC;IAErC,MAAM,KAAK,GAAG,IAAA,yBAAgB,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAA,qCAAgB,EAAC,KAAK,EAAE,IAAA,4CAAuB,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxG,MAAM,MAAM,GAAG,IAAA,4CAAuB,EAAC,WAAW,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrF,OAAO,IAAA,2CAAsB,EAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAbD,4CAaC","file":"polar-label-position.js","sourcesContent":["import type { ITextGraphicAttribute } from '@visactor/vrender-core';\nimport { getCircleLabelPosition, getCircleVerticalVector, getVerticalCoord } from '@visactor/vrender-components';\nimport { polarToCartesian } from '@visactor/vutils';\n\nexport function getLabelPosition(\n angle: number,\n center: { x: number; y: number },\n radius: number,\n labelOffset: number,\n inside: boolean,\n text: string | number,\n style: Partial<ITextGraphicAttribute>\n) {\n const point = polarToCartesian({ x: 0, y: 0 }, radius, angle);\n const labelPoint = getVerticalCoord(point, getCircleVerticalVector(labelOffset, point, center, inside));\n const vector = getCircleVerticalVector(labelOffset || 1, labelPoint, center, inside);\n return getCircleLabelPosition(labelPoint, vector, text, style);\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export * from './object';
2
+ export * from './polar';
3
+ export * from './text';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
+ void 0 === k2 && (k2 = k);
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
+ enumerable: !0,
8
+ get: function() {
9
+ return m[k];
10
+ }
11
+ }), Object.defineProperty(o, k2, desc);
12
+ } : function(o, m, k, k2) {
13
+ void 0 === k2 && (k2 = k), o[k2] = m[k];
14
+ }), __exportStar = this && this.__exportStar || function(m, exports) {
15
+ for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
16
+ };
17
+
18
+ Object.defineProperty(exports, "__esModule", {
19
+ value: !0
20
+ }), __exportStar(require("./object"), exports), __exportStar(require("./polar"), exports),
21
+ __exportStar(require("./text"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vutil-extension-temp/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB","file":"index.js","sourcesContent":["export * from './object';\nexport * from './polar';\nexport * from './text';\n"]}
@@ -0,0 +1,3 @@
1
+ export declare const includeSpec: <T = any>(spec: Partial<T>, searchSpec: Partial<T>) => boolean;
2
+ export declare const setProperty: <T>(target: T, path: Array<string | number>, value: any) => T;
3
+ export declare const getProperty: <T>(target: any, path: Array<string | number>, defaultValue?: T) => T;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.getProperty = exports.setProperty = exports.includeSpec = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils"), includeSpec = (spec, searchSpec) => spec === searchSpec || !(0,
8
+ vutils_1.isFunction)(spec) && !(0, vutils_1.isFunction)(searchSpec) && ((0, vutils_1.isArray)(spec) && (0,
9
+ vutils_1.isArray)(searchSpec) ? searchSpec.every((searchItem => spec.some((item => (0,
10
+ exports.includeSpec)(item, searchItem))))) : !(!(0, vutils_1.isObject)(spec) || !(0,
11
+ vutils_1.isObject)(searchSpec)) && Object.keys(searchSpec).every((key => (0, exports.includeSpec)(spec[key], searchSpec[key]))));
12
+
13
+ exports.includeSpec = includeSpec;
14
+
15
+ const setProperty = (target, path, value) => {
16
+ if ((0, vutils_1.isNil)(path)) return target;
17
+ const key = path[0];
18
+ return (0, vutils_1.isNil)(key) ? target : 1 === path.length ? (target[key] = value,
19
+ target) : ((0, vutils_1.isNil)(target[key]) && ("number" == typeof path[1] ? target[key] = [] : target[key] = {}),
20
+ (0, exports.setProperty)(target[key], path.slice(1), value));
21
+ };
22
+
23
+ exports.setProperty = setProperty;
24
+
25
+ const getProperty = (target, path, defaultValue) => {
26
+ if (!(0, vutils_1.isNil)(path)) return (0, vutils_1.get)(target, path, defaultValue);
27
+ };
28
+
29
+ exports.getProperty = getProperty;
30
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vutil-extension-temp/utils/object.ts"],"names":[],"mappings":";;;AAAA,6CAA6E;AAOtE,MAAM,WAAW,GAAG,CAAU,IAAgB,EAAE,UAAsB,EAAW,EAAE;IACxF,IAAI,IAAI,KAAK,UAAU,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,IAAA,mBAAU,EAAC,UAAU,CAAC,EAAE;QAC9C,OAAO,KAAK,CAAC;KACd;IACD,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,EAAE;QACxC,OAAO,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,mBAAW,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;KACzF;IACD,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,iBAAQ,EAAC,UAAU,CAAC,EAAE;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACtF;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAdW,QAAA,WAAW,eActB;AAEK,MAAM,WAAW,GAAG,CAAI,MAAS,EAAE,IAA4B,EAAE,KAAU,EAAK,EAAE;IACvF,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE;QACf,OAAO,MAAM,CAAC;KACf;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,EAAE;QACd,OAAO,MAAM,CAAC;KACf;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,OAAO,MAAM,CAAC;KACf;IACD,IAAI,IAAA,cAAK,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;QACtB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SAClB;aAAM;YACL,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SAClB;KACF;IACD,OAAO,IAAA,mBAAW,EAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC;AApBW,QAAA,WAAW,eAoBtB;AAEK,MAAM,WAAW,GAAG,CAAI,MAAW,EAAE,IAA4B,EAAE,YAAgB,EAAK,EAAE;IAC/F,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE;QACf,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAA,YAAG,EAAC,MAAM,EAAE,IAAgB,EAAE,YAAY,CAAM,CAAC;AAC1D,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB","file":"object.js","sourcesContent":["import { get, isArray, isFunction, isNil, isObject } from '@visactor/vutils';\n\n/**\n * 判断一个 spec 是否包含另一个 spec 片段\n * @param spec 原始 spec\n * @param searchSpec 要匹配的 spec 片段\n */\nexport const includeSpec = <T = any>(spec: Partial<T>, searchSpec: Partial<T>): boolean => {\n if (spec === searchSpec) {\n return true;\n }\n if (isFunction(spec) || isFunction(searchSpec)) {\n return false;\n }\n if (isArray(spec) && isArray(searchSpec)) {\n return searchSpec.every(searchItem => spec.some(item => includeSpec(item, searchItem)));\n }\n if (isObject(spec) && isObject(searchSpec)) {\n return Object.keys(searchSpec).every(key => includeSpec(spec[key], searchSpec[key]));\n }\n return false;\n};\n\nexport const setProperty = <T>(target: T, path: Array<string | number>, value: any): T => {\n if (isNil(path)) {\n return target;\n }\n const key = path[0];\n if (isNil(key)) {\n return target;\n }\n if (path.length === 1) {\n target[key] = value;\n return target;\n }\n if (isNil(target[key])) {\n if (typeof path[1] === 'number') {\n target[key] = [];\n } else {\n target[key] = {};\n }\n }\n return setProperty(target[key], path.slice(1), value);\n};\n\nexport const getProperty = <T>(target: any, path: Array<string | number>, defaultValue?: T): T => {\n if (isNil(path)) {\n return undefined;\n }\n return get(target, path as string[], defaultValue) as T;\n};\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function normalizeAngle(angle: number): number;
2
+ export declare function angleLabelOrientAttribute(angle: number): {
3
+ align: "center" | "left" | "right";
4
+ baseline: "bottom" | "middle" | "top";
5
+ };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ function normalizeAngle(angle) {
4
+ for (;angle < 0; ) angle += 2 * Math.PI;
5
+ for (;angle >= 2 * Math.PI; ) angle -= 2 * Math.PI;
6
+ return angle;
7
+ }
8
+
9
+ function angleLabelOrientAttribute(angle) {
10
+ let align = "center", baseline = "middle";
11
+ return align = (angle = normalizeAngle(angle)) >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3) ? "left" : angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3) ? "right" : "center",
12
+ baseline = angle >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6) ? "bottom" : angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6) ? "top" : "middle",
13
+ {
14
+ align: align,
15
+ baseline: baseline
16
+ };
17
+ }
18
+
19
+ Object.defineProperty(exports, "__esModule", {
20
+ value: !0
21
+ }), exports.angleLabelOrientAttribute = exports.normalizeAngle = void 0, exports.normalizeAngle = normalizeAngle,
22
+ exports.angleLabelOrientAttribute = angleLabelOrientAttribute;
23
+ //# sourceMappingURL=polar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vutil-extension-temp/utils/polar.ts"],"names":[],"mappings":";;;AAMA,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,GAAG,CAAC,EAAE;QAChB,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;KACtB;IACD,OAAO,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE;QAC3B,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;KACtB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AARD,wCAQC;AAOD,SAAgB,yBAAyB,CAAC,KAAa;IACrD,IAAI,KAAK,GAAkB,QAAQ,CAAC;IACpC,IAAI,QAAQ,GAAqB,QAAQ,CAAC;IAE1C,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAG9B,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;QAC5D,KAAK,GAAG,MAAM,CAAC;KAChB;SAAM,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;QACnE,KAAK,GAAG,OAAO,CAAC;KACjB;SAAM;QACL,KAAK,GAAG,QAAQ,CAAC;KAClB;IAGD,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;QAC7D,QAAQ,GAAG,QAAQ,CAAC;KACrB;SAAM,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;QACnE,QAAQ,GAAG,KAAK,CAAC;KAClB;SAAM;QACL,QAAQ,GAAG,QAAQ,CAAC;KACrB;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAzBD,8DAyBC","file":"polar.js","sourcesContent":["import type { TextAlignType, TextBaselineType } from '@visactor/vrender-core';\n\n/**\n * 角度标准化处理\n * @param angle 弧度角\n */\nexport function normalizeAngle(angle: number): number {\n while (angle < 0) {\n angle += Math.PI * 2;\n }\n while (angle >= Math.PI * 2) {\n angle -= Math.PI * 2;\n }\n return angle;\n}\n\n/**\n * 计算对应角度下的角度轴标签定位属性\n * @param angle 弧度角,需要注意是逆时针计算的\n * @returns\n */\nexport function angleLabelOrientAttribute(angle: number) {\n let align: TextAlignType = 'center';\n let baseline: TextBaselineType = 'middle';\n\n angle = normalizeAngle(angle);\n\n // left: 5/3 - 1/3; right: 2/3 - 4/3; center: 5/3 - 1/3 & 2/3 - 4/3\n if (angle >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3)) {\n align = 'left';\n } else if (angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3)) {\n align = 'right';\n } else {\n align = 'center';\n }\n\n // bottom: 7/6 - 11/6; top: 1/6 - 5/6; middle: 11/6 - 1/6 & 5/6 - 7/6\n if (angle >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6)) {\n baseline = 'bottom';\n } else if (angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6)) {\n baseline = 'top';\n } else {\n baseline = 'middle';\n }\n\n return { align, baseline };\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { ITextMeasureOption } from '@visactor/vutils';
2
+ import { TextMeasure } from '@visactor/vutils';
3
+ import type { ITextGraphicAttribute } from '@visactor/vrender-core';
4
+ export declare const initTextMeasure: (textSpec?: Partial<ITextGraphicAttribute>, option?: Partial<ITextMeasureOption>, useNaiveCanvas?: boolean, defaultFontParams?: Partial<ITextGraphicAttribute>) => TextMeasure<ITextGraphicAttribute>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.initTextMeasure = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core"), initTextMeasure = (textSpec, option, useNaiveCanvas, defaultFontParams) => new vutils_1.TextMeasure(Object.assign({
8
+ defaultFontParams: Object.assign({
9
+ fontFamily: "PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol",
10
+ fontSize: 14
11
+ }, defaultFontParams),
12
+ getTextBounds: useNaiveCanvas ? void 0 : vrender_core_1.getTextBounds,
13
+ specialCharSet: "-/: .,@%'\"~" + vutils_1.TextMeasure.ALPHABET_CHAR_SET + vutils_1.TextMeasure.ALPHABET_CHAR_SET.toUpperCase()
14
+ }, null != option ? option : {}), textSpec);
15
+
16
+ exports.initTextMeasure = initTextMeasure;
17
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vutil-extension-temp/utils/text.ts"],"names":[],"mappings":";;;AAEA,6CAA+C;AAE/C,yDAAuD;AAEhD,MAAM,eAAe,GAAG,CAC7B,QAAyC,EACzC,MAAoC,EACpC,cAAwB,EACxB,iBAAkD,EACd,EAAE;IACtC,OAAO,IAAI,oBAAW,iBAElB,iBAAiB,kBACf,UAAU,EAER,gKAAgK,EAClK,QAAQ,EAAE,EAAE,IACT,iBAAiB,GAEtB,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,4BAAa,EACzD,cAAc,EAAE,cAAc,GAAG,oBAAW,CAAC,iBAAiB,GAAG,oBAAW,CAAC,iBAAiB,CAAC,WAAW,EAAE,IACzG,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,GAEnB,QAAQ,CACT,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,eAAe,mBAqB1B","file":"text.js","sourcesContent":["import type { ITextMeasureOption } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { TextMeasure } from '@visactor/vutils';\nimport type { ITextGraphicAttribute } from '@visactor/vrender-core';\nimport { getTextBounds } from '@visactor/vrender-core';\n\nexport const initTextMeasure = (\n textSpec?: Partial<ITextGraphicAttribute>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean,\n defaultFontParams?: Partial<ITextGraphicAttribute>\n): TextMeasure<ITextGraphicAttribute> => {\n return new TextMeasure<ITextGraphicAttribute>(\n {\n defaultFontParams: {\n fontFamily:\n // eslint-disable-next-line max-len\n 'PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol',\n fontSize: 14,\n ...defaultFontParams\n },\n getTextBounds: useNaiveCanvas ? undefined : getTextBounds,\n specialCharSet: '-/: .,@%\\'\"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),\n ...(option ?? {})\n },\n textSpec\n );\n};\n"]}