@visactor/vtable 1.4.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/cjs/ListTable-all.d.ts +3 -0
  2. package/cjs/ListTable-all.js +18 -0
  3. package/cjs/ListTable-all.js.map +1 -0
  4. package/cjs/ListTable-simple.d.ts +3 -0
  5. package/cjs/ListTable-simple.js +14 -0
  6. package/cjs/ListTable-simple.js.map +1 -0
  7. package/cjs/ListTable.js +38 -22
  8. package/cjs/ListTable.js.map +1 -1
  9. package/cjs/PivotChart.js +34 -14
  10. package/cjs/PivotChart.js.map +1 -1
  11. package/cjs/PivotTable-all.d.ts +3 -0
  12. package/cjs/PivotTable-all.js +19 -0
  13. package/cjs/PivotTable-all.js.map +1 -0
  14. package/cjs/PivotTable-simple.d.ts +3 -0
  15. package/cjs/PivotTable-simple.js +14 -0
  16. package/cjs/PivotTable-simple.js.map +1 -0
  17. package/cjs/PivotTable.js +32 -17
  18. package/cjs/PivotTable.js.map +1 -1
  19. package/cjs/body-helper/style.js +1 -2
  20. package/cjs/components/axis/axis.d.ts +3 -0
  21. package/cjs/components/axis/axis.js +3 -3
  22. package/cjs/components/axis/axis.js.map +1 -1
  23. package/cjs/components/axis/get-axis-component-size.d.ts +2 -0
  24. package/cjs/components/axis/get-axis-component-size.js.map +1 -1
  25. package/cjs/components/empty-tip/empty-tip.d.ts +3 -0
  26. package/cjs/components/empty-tip/empty-tip.js.map +1 -1
  27. package/cjs/components/index.d.ts +6 -0
  28. package/cjs/components/index.js +44 -0
  29. package/cjs/components/index.js.map +1 -0
  30. package/cjs/components/legend/create-legend.d.ts +1 -0
  31. package/cjs/components/legend/create-legend.js.map +1 -1
  32. package/cjs/components/menu/dom/MenuHandler.d.ts +3 -0
  33. package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
  34. package/cjs/components/title/title.d.ts +3 -0
  35. package/cjs/components/title/title.js.map +1 -1
  36. package/cjs/components/tooltip/TooltipHandler.d.ts +3 -0
  37. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  38. package/cjs/core/BaseTable.d.ts +4 -2
  39. package/cjs/core/BaseTable.js +57 -35
  40. package/cjs/core/BaseTable.js.map +1 -1
  41. package/cjs/core/factory.d.ts +11 -0
  42. package/cjs/core/factory.js +29 -0
  43. package/cjs/core/factory.js.map +1 -0
  44. package/cjs/core/row-series-number-helper.js +2 -1
  45. package/cjs/core/utils/get-cell-position.js +6 -2
  46. package/cjs/core/utils/get-cell-position.js.map +1 -1
  47. package/cjs/edit/edit-manager.js +1 -2
  48. package/cjs/event/listener/container-dom.js +3 -2
  49. package/cjs/event/listener/container-dom.js.map +1 -1
  50. package/cjs/event/listener/table-group.d.ts +3 -0
  51. package/cjs/event/listener/table-group.js +3 -2
  52. package/cjs/event/listener/table-group.js.map +1 -1
  53. package/cjs/event/media-click.js +3 -1
  54. package/cjs/event/media-click.js.map +1 -1
  55. package/cjs/index.d.ts +8 -4
  56. package/cjs/index.js +26 -7
  57. package/cjs/index.js.map +1 -1
  58. package/cjs/layout/chart-helper/get-axis-config.d.ts +1 -1
  59. package/cjs/layout/chart-helper/get-axis-config.js +4 -4
  60. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  61. package/cjs/layout/chart-helper/get-axis-domain.d.ts +1 -0
  62. package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
  63. package/cjs/layout/chart-helper/get-chart-spec.js +31 -9
  64. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  65. package/cjs/layout/pivot-header-layout.js +8 -6
  66. package/cjs/layout/pivot-header-layout.js.map +1 -1
  67. package/cjs/layout/row-height-map.js +0 -1
  68. package/cjs/plugins/themes.js +2 -1
  69. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +2 -2
  70. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  71. package/cjs/scenegraph/group-creater/cell-helper.js +18 -11
  72. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  73. package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -0
  74. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  75. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +3 -2
  76. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +21 -4
  77. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  78. package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +4 -2
  79. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +34 -14
  80. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  81. package/cjs/scenegraph/group-creater/cell-type/index.d.ts +8 -0
  82. package/cjs/scenegraph/group-creater/cell-type/index.js +55 -0
  83. package/cjs/scenegraph/group-creater/cell-type/index.js.map +1 -0
  84. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +1 -0
  85. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  86. package/cjs/scenegraph/group-creater/cell-type/radio-cell.d.ts +1 -0
  87. package/cjs/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  88. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +1 -0
  89. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  90. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -0
  91. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  92. package/cjs/scenegraph/group-creater/cell-type/video-cell.d.ts +3 -1
  93. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +21 -5
  94. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  95. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +8 -8
  96. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  97. package/cjs/scenegraph/group-creater/progress/proxy.js +4 -4
  98. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  99. package/cjs/scenegraph/group-creater/progress/update-position/sort-horizontal.js +2 -2
  100. package/cjs/scenegraph/group-creater/progress/update-position/sort-horizontal.js.map +1 -1
  101. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js +7 -8
  102. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  103. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js +3 -3
  104. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  105. package/cjs/scenegraph/group-creater/progress/update-position/util.js +3 -3
  106. package/cjs/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
  107. package/cjs/scenegraph/layout/compute-col-width.js +3 -3
  108. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  109. package/cjs/scenegraph/layout/compute-row-height.js +3 -3
  110. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  111. package/cjs/scenegraph/layout/update-height.js +5 -6
  112. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  113. package/cjs/scenegraph/layout/update-width.js +5 -6
  114. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  115. package/cjs/scenegraph/refresh-node/update-chart.js +2 -2
  116. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  117. package/cjs/scenegraph/scenegraph.js +5 -5
  118. package/cjs/scenegraph/scenegraph.js.map +1 -1
  119. package/cjs/scenegraph/select/update-select-border.js +72 -49
  120. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  121. package/cjs/scenegraph/utils/text-icon-layout.d.ts +16 -0
  122. package/cjs/scenegraph/utils/text-icon-layout.js +80 -58
  123. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  124. package/cjs/state/select/update-position.js +2 -2
  125. package/cjs/state/select/update-position.js.map +1 -1
  126. package/cjs/state/state.js +1 -1
  127. package/cjs/themes/ARCO.js +1 -1
  128. package/cjs/themes/BRIGHT.js +1 -1
  129. package/cjs/themes/DARK.js +1 -1
  130. package/cjs/themes/DEFAULT.js +1 -1
  131. package/cjs/themes/SIMPLIFY.js +1 -1
  132. package/cjs/ts-types/base-table.d.ts +5 -3
  133. package/cjs/ts-types/base-table.js.map +1 -1
  134. package/cjs/ts-types/table-engine.js.map +1 -1
  135. package/cjs/ts-types/theme.js.map +1 -1
  136. package/cjs/vrender.js +7 -7
  137. package/cjs/vrender.js.map +1 -1
  138. package/dist/vtable.js +30693 -30803
  139. package/dist/vtable.min.js +2 -2
  140. package/es/ListTable-all.d.ts +3 -0
  141. package/es/ListTable-all.js +12 -0
  142. package/es/ListTable-all.js.map +1 -0
  143. package/es/ListTable-simple.d.ts +3 -0
  144. package/es/ListTable-simple.js +8 -0
  145. package/es/ListTable-simple.js.map +1 -0
  146. package/es/ListTable.js +34 -19
  147. package/es/ListTable.js.map +1 -1
  148. package/es/PivotChart.js +35 -15
  149. package/es/PivotChart.js.map +1 -1
  150. package/es/PivotTable-all.d.ts +3 -0
  151. package/es/PivotTable-all.js +13 -0
  152. package/es/PivotTable-all.js.map +1 -0
  153. package/es/PivotTable-simple.d.ts +3 -0
  154. package/es/PivotTable-simple.js +8 -0
  155. package/es/PivotTable-simple.js.map +1 -0
  156. package/es/PivotTable.js +31 -18
  157. package/es/PivotTable.js.map +1 -1
  158. package/es/body-helper/style.js +1 -2
  159. package/es/components/axis/axis.d.ts +3 -0
  160. package/es/components/axis/axis.js +4 -3
  161. package/es/components/axis/axis.js.map +1 -1
  162. package/es/components/axis/get-axis-component-size.d.ts +2 -0
  163. package/es/components/axis/get-axis-component-size.js.map +1 -1
  164. package/es/components/empty-tip/empty-tip.d.ts +3 -0
  165. package/es/components/empty-tip/empty-tip.js.map +1 -1
  166. package/es/components/index.d.ts +6 -0
  167. package/es/components/index.js +44 -0
  168. package/es/components/index.js.map +1 -0
  169. package/es/components/legend/create-legend.d.ts +1 -0
  170. package/es/components/legend/create-legend.js.map +1 -1
  171. package/es/components/menu/dom/MenuHandler.d.ts +3 -0
  172. package/es/components/menu/dom/MenuHandler.js.map +1 -1
  173. package/es/components/title/title.d.ts +3 -0
  174. package/es/components/title/title.js.map +1 -1
  175. package/es/components/tooltip/TooltipHandler.d.ts +3 -0
  176. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  177. package/es/core/BaseTable.d.ts +4 -2
  178. package/es/core/BaseTable.js +58 -38
  179. package/es/core/BaseTable.js.map +1 -1
  180. package/es/core/factory.d.ts +11 -0
  181. package/es/core/factory.js +23 -0
  182. package/es/core/factory.js.map +1 -0
  183. package/es/core/row-series-number-helper.js +2 -1
  184. package/es/core/utils/get-cell-position.js +6 -2
  185. package/es/core/utils/get-cell-position.js.map +1 -1
  186. package/es/edit/edit-manager.js +1 -2
  187. package/es/event/listener/container-dom.js +3 -1
  188. package/es/event/listener/container-dom.js.map +1 -1
  189. package/es/event/listener/table-group.d.ts +3 -0
  190. package/es/event/listener/table-group.js +2 -2
  191. package/es/event/listener/table-group.js.map +1 -1
  192. package/es/event/media-click.js +3 -1
  193. package/es/event/media-click.js.map +1 -1
  194. package/es/index.d.ts +8 -4
  195. package/es/index.js +12 -4
  196. package/es/index.js.map +1 -1
  197. package/es/layout/chart-helper/get-axis-config.d.ts +1 -1
  198. package/es/layout/chart-helper/get-axis-config.js +4 -4
  199. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  200. package/es/layout/chart-helper/get-axis-domain.d.ts +1 -0
  201. package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
  202. package/es/layout/chart-helper/get-chart-spec.js +34 -10
  203. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  204. package/es/layout/pivot-header-layout.js +8 -6
  205. package/es/layout/pivot-header-layout.js.map +1 -1
  206. package/es/layout/row-height-map.js +1 -2
  207. package/es/plugins/themes.js +2 -1
  208. package/es/scenegraph/graphic/contributions/group-contribution-render.js +2 -2
  209. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  210. package/es/scenegraph/group-creater/cell-helper.js +18 -24
  211. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  212. package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -0
  213. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  214. package/es/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +3 -2
  215. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +21 -3
  216. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  217. package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +4 -2
  218. package/es/scenegraph/group-creater/cell-type/image-cell.js +34 -13
  219. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  220. package/es/scenegraph/group-creater/cell-type/index.d.ts +8 -0
  221. package/es/scenegraph/group-creater/cell-type/index.js +52 -0
  222. package/es/scenegraph/group-creater/cell-type/index.js.map +1 -0
  223. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +1 -0
  224. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  225. package/es/scenegraph/group-creater/cell-type/radio-cell.d.ts +1 -0
  226. package/es/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  227. package/es/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +1 -0
  228. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  229. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -0
  230. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  231. package/es/scenegraph/group-creater/cell-type/video-cell.d.ts +3 -1
  232. package/es/scenegraph/group-creater/cell-type/video-cell.js +21 -4
  233. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  234. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +8 -8
  235. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  236. package/es/scenegraph/group-creater/progress/proxy.js +4 -4
  237. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  238. package/es/scenegraph/group-creater/progress/update-position/sort-horizontal.js +4 -3
  239. package/es/scenegraph/group-creater/progress/update-position/sort-horizontal.js.map +1 -1
  240. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js +7 -8
  241. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  242. package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js +3 -3
  243. package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  244. package/es/scenegraph/group-creater/progress/update-position/util.js +3 -3
  245. package/es/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
  246. package/es/scenegraph/layout/compute-col-width.js +3 -5
  247. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  248. package/es/scenegraph/layout/compute-row-height.js +3 -5
  249. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  250. package/es/scenegraph/layout/update-height.js +6 -8
  251. package/es/scenegraph/layout/update-height.js.map +1 -1
  252. package/es/scenegraph/layout/update-width.js +5 -9
  253. package/es/scenegraph/layout/update-width.js.map +1 -1
  254. package/es/scenegraph/refresh-node/update-chart.js +2 -2
  255. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  256. package/es/scenegraph/scenegraph.js +6 -6
  257. package/es/scenegraph/scenegraph.js.map +1 -1
  258. package/es/scenegraph/select/update-select-border.js +72 -49
  259. package/es/scenegraph/select/update-select-border.js.map +1 -1
  260. package/es/scenegraph/utils/text-icon-layout.d.ts +16 -0
  261. package/es/scenegraph/utils/text-icon-layout.js +78 -56
  262. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  263. package/es/state/select/update-position.js +2 -2
  264. package/es/state/select/update-position.js.map +1 -1
  265. package/es/state/state.js +1 -1
  266. package/es/themes/ARCO.js +1 -1
  267. package/es/themes/BRIGHT.js +1 -1
  268. package/es/themes/DARK.js +1 -1
  269. package/es/themes/DEFAULT.js +1 -1
  270. package/es/themes/SIMPLIFY.js +1 -1
  271. package/es/ts-types/base-table.d.ts +5 -3
  272. package/es/ts-types/base-table.js.map +1 -1
  273. package/es/ts-types/table-engine.js.map +1 -1
  274. package/es/ts-types/theme.js.map +1 -1
  275. package/es/vrender.js +5 -5
  276. package/es/vrender.js.map +1 -1
  277. package/package.json +12 -3
  278. package/cjs/vutil-extension-temp/algorithm/binary-search.d.ts +0 -2
  279. package/cjs/vutil-extension-temp/algorithm/binary-search.js +0 -21
  280. package/cjs/vutil-extension-temp/algorithm/binary-search.js.map +0 -1
  281. package/cjs/vutil-extension-temp/algorithm/index.d.ts +0 -1
  282. package/cjs/vutil-extension-temp/algorithm/index.js +0 -21
  283. package/cjs/vutil-extension-temp/algorithm/index.js.map +0 -1
  284. package/cjs/vutil-extension-temp/index.d.ts +0 -4
  285. package/cjs/vutil-extension-temp/index.js +0 -22
  286. package/cjs/vutil-extension-temp/index.js.map +0 -1
  287. package/cjs/vutil-extension-temp/spec/clone-deep.d.ts +0 -1
  288. package/cjs/vutil-extension-temp/spec/clone-deep.js +0 -27
  289. package/cjs/vutil-extension-temp/spec/clone-deep.js.map +0 -1
  290. package/cjs/vutil-extension-temp/spec/common.d.ts +0 -3
  291. package/cjs/vutil-extension-temp/spec/common.js +0 -23
  292. package/cjs/vutil-extension-temp/spec/common.js.map +0 -1
  293. package/cjs/vutil-extension-temp/spec/index.d.ts +0 -3
  294. package/cjs/vutil-extension-temp/spec/index.js +0 -22
  295. package/cjs/vutil-extension-temp/spec/index.js.map +0 -1
  296. package/cjs/vutil-extension-temp/spec/merge-spec.d.ts +0 -5
  297. package/cjs/vutil-extension-temp/spec/merge-spec.js +0 -69
  298. package/cjs/vutil-extension-temp/spec/merge-spec.js.map +0 -1
  299. package/cjs/vutil-extension-temp/transform/tick-data/config.d.ts +0 -1
  300. package/cjs/vutil-extension-temp/transform/tick-data/config.js +0 -6
  301. package/cjs/vutil-extension-temp/transform/tick-data/config.js.map +0 -1
  302. package/cjs/vutil-extension-temp/transform/tick-data/continuous.d.ts +0 -3
  303. package/cjs/vutil-extension-temp/transform/tick-data/continuous.js +0 -57
  304. package/cjs/vutil-extension-temp/transform/tick-data/continuous.js.map +0 -1
  305. package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.d.ts +0 -6
  306. package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.js +0 -101
  307. package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.js.map +0 -1
  308. package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.d.ts +0 -3
  309. package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js +0 -53
  310. package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js.map +0 -1
  311. package/cjs/vutil-extension-temp/transform/tick-data/index.d.ts +0 -6
  312. package/cjs/vutil-extension-temp/transform/tick-data/index.js +0 -41
  313. package/cjs/vutil-extension-temp/transform/tick-data/index.js.map +0 -1
  314. package/cjs/vutil-extension-temp/transform/tick-data/interface.d.ts +0 -38
  315. package/cjs/vutil-extension-temp/transform/tick-data/interface.js +0 -6
  316. package/cjs/vutil-extension-temp/transform/tick-data/interface.js.map +0 -1
  317. package/cjs/vutil-extension-temp/transform/tick-data/util.d.ts +0 -17
  318. package/cjs/vutil-extension-temp/transform/tick-data/util.js +0 -91
  319. package/cjs/vutil-extension-temp/transform/tick-data/util.js.map +0 -1
  320. package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.d.ts +0 -8
  321. package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js +0 -20
  322. package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js.map +0 -1
  323. package/cjs/vutil-extension-temp/utils/index.d.ts +0 -3
  324. package/cjs/vutil-extension-temp/utils/index.js +0 -22
  325. package/cjs/vutil-extension-temp/utils/index.js.map +0 -1
  326. package/cjs/vutil-extension-temp/utils/object.d.ts +0 -3
  327. package/cjs/vutil-extension-temp/utils/object.js +0 -30
  328. package/cjs/vutil-extension-temp/utils/object.js.map +0 -1
  329. package/cjs/vutil-extension-temp/utils/polar.d.ts +0 -5
  330. package/cjs/vutil-extension-temp/utils/polar.js +0 -23
  331. package/cjs/vutil-extension-temp/utils/polar.js.map +0 -1
  332. package/cjs/vutil-extension-temp/utils/text.d.ts +0 -4
  333. package/cjs/vutil-extension-temp/utils/text.js +0 -17
  334. package/cjs/vutil-extension-temp/utils/text.js.map +0 -1
  335. package/es/vutil-extension-temp/algorithm/binary-search.d.ts +0 -2
  336. package/es/vutil-extension-temp/algorithm/binary-search.js +0 -11
  337. package/es/vutil-extension-temp/algorithm/binary-search.js.map +0 -1
  338. package/es/vutil-extension-temp/algorithm/index.d.ts +0 -1
  339. package/es/vutil-extension-temp/algorithm/index.js +0 -2
  340. package/es/vutil-extension-temp/algorithm/index.js.map +0 -1
  341. package/es/vutil-extension-temp/index.d.ts +0 -4
  342. package/es/vutil-extension-temp/index.js +0 -8
  343. package/es/vutil-extension-temp/index.js.map +0 -1
  344. package/es/vutil-extension-temp/spec/clone-deep.d.ts +0 -1
  345. package/es/vutil-extension-temp/spec/clone-deep.js +0 -20
  346. package/es/vutil-extension-temp/spec/clone-deep.js.map +0 -1
  347. package/es/vutil-extension-temp/spec/common.d.ts +0 -3
  348. package/es/vutil-extension-temp/spec/common.js +0 -15
  349. package/es/vutil-extension-temp/spec/common.js.map +0 -1
  350. package/es/vutil-extension-temp/spec/index.d.ts +0 -3
  351. package/es/vutil-extension-temp/spec/index.js +0 -6
  352. package/es/vutil-extension-temp/spec/index.js.map +0 -1
  353. package/es/vutil-extension-temp/spec/merge-spec.d.ts +0 -5
  354. package/es/vutil-extension-temp/spec/merge-spec.js +0 -57
  355. package/es/vutil-extension-temp/spec/merge-spec.js.map +0 -1
  356. package/es/vutil-extension-temp/transform/tick-data/config.d.ts +0 -1
  357. package/es/vutil-extension-temp/transform/tick-data/config.js +0 -2
  358. package/es/vutil-extension-temp/transform/tick-data/config.js.map +0 -1
  359. package/es/vutil-extension-temp/transform/tick-data/continuous.d.ts +0 -3
  360. package/es/vutil-extension-temp/transform/tick-data/continuous.js +0 -56
  361. package/es/vutil-extension-temp/transform/tick-data/continuous.js.map +0 -1
  362. package/es/vutil-extension-temp/transform/tick-data/discrete/linear.d.ts +0 -6
  363. package/es/vutil-extension-temp/transform/tick-data/discrete/linear.js +0 -92
  364. package/es/vutil-extension-temp/transform/tick-data/discrete/linear.js.map +0 -1
  365. package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.d.ts +0 -3
  366. package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js +0 -45
  367. package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js.map +0 -1
  368. package/es/vutil-extension-temp/transform/tick-data/index.d.ts +0 -6
  369. package/es/vutil-extension-temp/transform/tick-data/index.js +0 -23
  370. package/es/vutil-extension-temp/transform/tick-data/index.js.map +0 -1
  371. package/es/vutil-extension-temp/transform/tick-data/interface.d.ts +0 -38
  372. package/es/vutil-extension-temp/transform/tick-data/interface.js +0 -2
  373. package/es/vutil-extension-temp/transform/tick-data/interface.js.map +0 -1
  374. package/es/vutil-extension-temp/transform/tick-data/util.d.ts +0 -17
  375. package/es/vutil-extension-temp/transform/tick-data/util.js +0 -78
  376. package/es/vutil-extension-temp/transform/tick-data/util.js.map +0 -1
  377. package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.d.ts +0 -8
  378. package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js +0 -12
  379. package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js.map +0 -1
  380. package/es/vutil-extension-temp/utils/index.d.ts +0 -3
  381. package/es/vutil-extension-temp/utils/index.js +0 -6
  382. package/es/vutil-extension-temp/utils/index.js.map +0 -1
  383. package/es/vutil-extension-temp/utils/object.d.ts +0 -3
  384. package/es/vutil-extension-temp/utils/object.js +0 -15
  385. package/es/vutil-extension-temp/utils/object.js.map +0 -1
  386. package/es/vutil-extension-temp/utils/polar.d.ts +0 -5
  387. package/es/vutil-extension-temp/utils/polar.js +0 -16
  388. package/es/vutil-extension-temp/utils/polar.js.map +0 -1
  389. package/es/vutil-extension-temp/utils/text.d.ts +0 -4
  390. package/es/vutil-extension-temp/utils/text.js +0 -13
  391. package/es/vutil-extension-temp/utils/text.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/vutil-extension-temp/spec/clone-deep.ts"],"names":[],"mappings":";;;AAAA,6CAA2F;AAC3F,qCAAqD;AAMrD,SAAgB,aAAa,CAAC,IAAS,EAAE,cAAwB,CAAC,MAAM,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC;IAEnB,IAAI,MAAM,CAAC;IACX,IAAI,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAChD,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,IAAA,mBAAU,EAAC,KAAK,CAAC,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE;QAC7C,OAAO,KAAK,CAAC;KACd;IAED,MAAM,KAAK,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B,IAAI,KAAK,EAAE;QACT,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;KAC5B;SAEI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAClC,MAAM,GAAG,EAAE,CAAC;KACb;SAEI,IAAI,IAAA,kBAAS,EAAC,KAAK,CAAC,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;QAC/D,MAAM,GAAG,KAAK,CAAC;KAChB;SAAM,IAAI,IAAA,eAAM,EAAC,KAAK,CAAC,EAAE;QACxB,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;KAC3B;SAEI;QACH,MAAM,GAAG,SAAS,CAAC;KACpB;IAKD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7D,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,IAAI,MAAM,EAAE;QACV,OAAO,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE;YACxC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACzC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;aACxB;iBAAM;gBACL,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;aACpD;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AArDD,sCAqDC","file":"clone-deep.js","sourcesContent":["import { isArray, isBoolean, isDate, isNumber, isString, isValid } from '@visactor/vutils';\nimport { isDataView, isHTMLElement } from './common';\n\n/**\n * 深拷贝 spec,为避免循环引用,DataView 维持原有引用\n * @param spec 原spec\n */\nexport function cloneDeepSpec(spec: any, excludeKeys: string[] = ['data']) {\n const value = spec;\n\n let result;\n if (!isValid(value) || typeof value !== 'object') {\n return value;\n }\n\n // 判断是不是不能深拷贝的对象\n if (isDataView(value) || isHTMLElement(value)) {\n return value;\n }\n\n const isArr = isArray(value);\n const length = value.length;\n // 不考虑特殊数组的额外处理\n if (isArr) {\n result = new Array(length);\n }\n // 不考虑 buffer / arguments 类型的处理以及 prototype 的额外处理\n else if (typeof value === 'object') {\n result = {};\n }\n // 不建议使用作为 Boolean / Number / String 作为构造器\n else if (isBoolean(value) || isNumber(value) || isString(value)) {\n result = value;\n } else if (isDate(value)) {\n result = new Date(+value);\n }\n // 不考虑 ArrayBuffer / DataView / TypedArray / map / set / regexp / symbol 类型\n else {\n result = undefined;\n }\n\n // 不考虑 map / set / TypedArray 类型的赋值\n\n // 不考虑对象的 symbol 属性\n const props = isArr ? undefined : Object.keys(Object(value));\n\n let index = -1;\n if (result) {\n while (++index < (props || value).length) {\n const key = props ? props[index] : index;\n const subValue = value[key];\n if (excludeKeys?.includes(key.toString())) {\n result[key] = subValue;\n } else {\n result[key] = cloneDeepSpec(subValue, excludeKeys);\n }\n }\n }\n\n return result;\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { DataView } from '@visactor/vdataset';
2
- export declare function isDataView(obj: any): obj is DataView;
3
- export declare function isHTMLElement(obj: any): obj is Element;
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.isHTMLElement = exports.isDataView = void 0;
6
-
7
- const vdataset_1 = require("@visactor/vdataset");
8
-
9
- function isDataView(obj) {
10
- return obj instanceof vdataset_1.DataView;
11
- }
12
-
13
- function isHTMLElement(obj) {
14
- try {
15
- return obj instanceof Element;
16
- } catch (_a) {
17
- const htmlElementKeys = [ "children", "innerHTML", "classList", "setAttribute", "tagName", "getBoundingClientRect" ], keys = Object.keys(obj);
18
- return htmlElementKeys.every((key => keys.includes(key)));
19
- }
20
- }
21
-
22
- exports.isDataView = isDataView, exports.isHTMLElement = isHTMLElement;
23
- //# sourceMappingURL=common.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/vutil-extension-temp/spec/common.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,GAAG,YAAY,mBAAQ,CAAC;AACjC,CAAC;AAFD,gCAEC;AAED,SAAgB,aAAa,CAAC,GAAQ;IACpC,IAAI;QACF,OAAO,GAAG,YAAY,OAAO,CAAC;KAC/B;IAAC,WAAM;QAEN,MAAM,eAAe,GAAsB;YACzC,UAAU;YACV,WAAW;YACX,WAAW;YACX,cAAc;YACd,SAAS;YACT,uBAAuB;SACxB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD;AACH,CAAC;AAhBD,sCAgBC","file":"common.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\n\nexport function isDataView(obj: any): obj is DataView {\n return obj instanceof DataView;\n}\n\nexport function isHTMLElement(obj: any): obj is Element {\n try {\n return obj instanceof Element;\n } catch {\n // 跨端 plan B\n const htmlElementKeys: (keyof Element)[] = [\n 'children',\n 'innerHTML',\n 'classList',\n 'setAttribute',\n 'tagName',\n 'getBoundingClientRect'\n ];\n const keys = Object.keys(obj);\n return htmlElementKeys.every(key => keys.includes(key));\n }\n}\n"]}
@@ -1,3 +0,0 @@
1
- export * from './clone-deep';
2
- export * from './common';
3
- export * from './merge-spec';
@@ -1,22 +0,0 @@
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("./clone-deep"), exports), __exportStar(require("./common"), exports),
21
- __exportStar(require("./merge-spec"), exports);
22
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/vutil-extension-temp/spec/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,2CAAyB;AACzB,+CAA6B","file":"index.js","sourcesContent":["export * from './clone-deep';\nexport * from './common';\nexport * from './merge-spec';\n"]}
@@ -1,5 +0,0 @@
1
- export declare function mergeSpec(target: any, ...sources: any[]): any;
2
- export declare function mergeSpecWithFilter(target: any, filter: string | {
3
- type: string;
4
- index: number;
5
- }, spec: any, forceMerge: boolean): void;
@@ -1,69 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.mergeSpecWithFilter = exports.mergeSpec = void 0;
6
-
7
- const vutils_1 = require("@visactor/vutils");
8
-
9
- function baseMerge(target, source, shallowArray = !1) {
10
- if (source) {
11
- if (target === source) return;
12
- if ((0, vutils_1.isValid)(source) && "object" == typeof source) {
13
- const iterable = Object(source), props = [];
14
- for (const key in iterable) props.push(key);
15
- let {length: length} = props, propIndex = -1;
16
- for (;length--; ) {
17
- const key = props[++propIndex];
18
- (0, vutils_1.isValid)(iterable[key]) && "object" == typeof iterable[key] && !(0,
19
- vutils_1.isArray)(target[key]) ? baseMergeDeep(target, source, key, shallowArray) : assignMergeValue(target, key, iterable[key]);
20
- }
21
- }
22
- }
23
- }
24
-
25
- function baseMergeDeep(target, source, key, shallowArray = !1) {
26
- const objValue = target[key], srcValue = source[key];
27
- let newValue = source[key], isCommon = !0;
28
- if ((0, vutils_1.isArray)(srcValue)) {
29
- if (shallowArray) newValue = []; else if ((0, vutils_1.isArray)(objValue)) newValue = objValue; else if ((0,
30
- vutils_1.isArrayLike)(objValue)) {
31
- newValue = new Array(objValue.length);
32
- let index = -1;
33
- const length = objValue.length;
34
- for (;++index < length; ) newValue[index] = objValue[index];
35
- }
36
- } else (0, vutils_1.isPlainObject)(srcValue) ? (newValue = null != objValue ? objValue : {},
37
- "function" != typeof objValue && "object" == typeof objValue || (newValue = {})) : isCommon = !1;
38
- isCommon && baseMerge(newValue, srcValue, shallowArray), assignMergeValue(target, key, newValue);
39
- }
40
-
41
- function assignMergeValue(target, key, value) {
42
- (void 0 !== value && !eq(target[key], value) || void 0 === value && !(key in target)) && (target[key] = value);
43
- }
44
-
45
- function eq(value, other) {
46
- return value === other || Number.isNaN(value) && Number.isNaN(other);
47
- }
48
-
49
- function mergeSpec(target, ...sources) {
50
- let sourceIndex = -1;
51
- const length = sources.length;
52
- for (;++sourceIndex < length; ) {
53
- baseMerge(target, sources[sourceIndex], !0);
54
- }
55
- return target;
56
- }
57
-
58
- function mergeSpecWithFilter(target, filter, spec, forceMerge) {
59
- Object.keys(target).forEach((k => {
60
- if ((0, vutils_1.isObject)(filter)) filter.type === k && ((0, vutils_1.isArray)(target[k]) ? target[k].length >= filter.index && (target[k][filter.index] = forceMerge ? mergeSpec({}, target[k][filter.index], spec) : spec) : target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec); else if ((0,
61
- vutils_1.isArray)(target[k])) {
62
- const index = target[k].findIndex((_s => _s.id === filter));
63
- index >= 0 && (target[k][index] = forceMerge ? mergeSpec({}, target[k][index], spec) : spec);
64
- } else target.id === filter && (target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec);
65
- }));
66
- }
67
-
68
- exports.mergeSpec = mergeSpec, exports.mergeSpecWithFilter = mergeSpecWithFilter;
69
- //# sourceMappingURL=merge-spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/vutil-extension-temp/spec/merge-spec.ts"],"names":[],"mappings":"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","file":"merge-spec.js","sourcesContent":["import { isArray, isArrayLike, isObject, isPlainObject, isValid } from '@visactor/vutils';\n\nfunction baseMerge(target: any, source: any, shallowArray = false) {\n if (source) {\n if (target === source) {\n return;\n }\n if (isValid(source) && typeof source === 'object') {\n // baseFor\n const iterable = Object(source);\n const props = [];\n // keysIn\n for (const key in iterable) {\n props.push(key);\n }\n let { length } = props;\n let propIndex = -1;\n while (length--) {\n const key = props[++propIndex];\n if (\n isValid(iterable[key]) &&\n typeof iterable[key] === 'object' &&\n !isArray(target[key]) // VChart 特有逻辑\n ) {\n baseMergeDeep(target, source, key, shallowArray);\n } else {\n assignMergeValue(target, key, iterable[key]);\n }\n }\n }\n }\n}\n\n// 由于目前 VChart 内部对 spec 会先执行一次深拷贝,merge 暂时不考虑 source 中有环的问题\nfunction baseMergeDeep(target: object, source: object, key: string, shallowArray = false) {\n const objValue = target[key];\n const srcValue = source[key];\n let newValue = source[key];\n let isCommon = true;\n // 不考虑 buffer / typedArray 类型\n if (isArray(srcValue)) {\n if (shallowArray) {\n // 依据参数对数组做浅拷贝\n newValue = [];\n } else if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLike(objValue)) {\n // 如果 source 为数组,则 target 的 arrayLike 对象也视作为数组处理\n newValue = new Array(objValue.length);\n let index = -1;\n const length = objValue.length;\n while (++index < length) {\n newValue[index] = objValue[index];\n }\n }\n }\n // else if (isArray(srcValue) && shallowArray) {\n // newValue = [];\n // }\n // 不考虑 argument 类型\n else if (isPlainObject(srcValue)) {\n newValue = objValue ?? {};\n // 不考虑 prototype 的额外处理\n if (typeof objValue === 'function' || typeof objValue !== 'object') {\n newValue = {};\n }\n } else {\n isCommon = false;\n }\n // 对 class 等复杂对象或者浅拷贝的 array 不做拷贝处理\n if (isCommon) {\n baseMerge(newValue, srcValue, shallowArray);\n }\n assignMergeValue(target, key, newValue);\n}\n\nfunction assignMergeValue(target: object, key: string, value: any) {\n if ((value !== undefined && !eq(target[key], value)) || (value === undefined && !(key in target))) {\n // 不考虑 __proto__ 的赋值处理\n target[key] = value;\n }\n}\n\nfunction eq(value: any, other: any) {\n return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\n/* 与原生的 lodash merge 差异在于对数组是否应用最后一个 source 的结果\n * 以及对一些特殊情况的处理,比如对数组类型 padding 和对象类型的 padding 的 merge\n */\nexport function mergeSpec(target: any, ...sources: any[]): any {\n let sourceIndex = -1;\n const length = sources.length;\n while (++sourceIndex < length) {\n const source = sources[sourceIndex];\n baseMerge(target, source, true);\n }\n return target;\n}\n\nexport function mergeSpecWithFilter(\n target: any,\n filter: string | { type: string; index: number },\n spec: any,\n forceMerge: boolean\n) {\n Object.keys(target).forEach(k => {\n if (isObject(filter)) {\n if (filter.type === k) {\n if (isArray(target[k])) {\n if (target[k].length >= filter.index) {\n target[k][filter.index] = forceMerge ? mergeSpec({}, target[k][filter.index], spec) : spec;\n }\n } else {\n target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec;\n }\n }\n } else {\n // filter === user id\n if (isArray(target[k])) {\n const index = target[k].findIndex((_s: { id: string | number }) => _s.id === filter);\n if (index >= 0) {\n target[k][index] = forceMerge ? mergeSpec({}, target[k][index], spec) : spec;\n }\n } else if (target.id === filter) {\n target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec;\n }\n }\n });\n}\n"]}
@@ -1 +0,0 @@
1
- export declare const DEFAULT_CONTINUOUS_TICK_COUNT = 5;
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.DEFAULT_CONTINUOUS_TICK_COUNT = void 0, exports.DEFAULT_CONTINUOUS_TICK_COUNT = 5;
6
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/config.ts"],"names":[],"mappings":";;;AACa,QAAA,6BAA6B,GAAG,CAAC,CAAC","file":"config.js","sourcesContent":["/** 连续轴默认 tick 数量 */\nexport const DEFAULT_CONTINUOUS_TICK_COUNT = 5;\n"]}
@@ -1,3 +0,0 @@
1
- import type { ContinuousScale } from '@visactor/vscale';
2
- import type { ITickData, ITickDataOpt } from './interface';
3
- export declare const continuousTicks: (scale: ContinuousScale, op: ITickDataOpt) => ITickData[];
@@ -1,57 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.continuousTicks = void 0;
6
-
7
- const vscale_1 = require("@visactor/vscale"), vutils_1 = require("@visactor/vutils"), config_1 = require("./config"), util_1 = require("./util"), continuousTicks = (scale, op) => {
8
- if (!(0, vscale_1.isContinuous)(scale.type)) return (0, util_1.convertDomainToTickData)(scale.domain());
9
- const range = scale.range(), rangeSize = Math.abs(range[range.length - 1] - range[0]);
10
- if (rangeSize < 2) return (0, util_1.convertDomainToTickData)([ scale.domain()[0] ]);
11
- const {tickCount: tickCount, forceTickCount: forceTickCount, tickStep: tickStep, noDecimals: noDecimals = !1, labelStyle: labelStyle} = op;
12
- let scaleTicks;
13
- if ((0, vutils_1.isValid)(tickStep)) scaleTicks = scale.stepTicks(tickStep); else if ((0,
14
- vutils_1.isValid)(forceTickCount)) scaleTicks = scale.forceTicks(forceTickCount); else if ("d3" === op.tickMode) {
15
- const count = (0, vutils_1.isFunction)(tickCount) ? tickCount({
16
- axisLength: rangeSize,
17
- labelStyle: labelStyle
18
- }) : tickCount;
19
- scaleTicks = scale.d3Ticks(null != count ? count : config_1.DEFAULT_CONTINUOUS_TICK_COUNT, {
20
- noDecimals: noDecimals
21
- });
22
- } else {
23
- const count = (0, vutils_1.isFunction)(tickCount) ? tickCount({
24
- axisLength: rangeSize,
25
- labelStyle: labelStyle
26
- }) : tickCount;
27
- scaleTicks = scale.ticks(null != count ? count : config_1.DEFAULT_CONTINUOUS_TICK_COUNT, {
28
- noDecimals: noDecimals
29
- });
30
- }
31
- if (op.sampling && ("cartesian" === op.coordinateType || "polar" === op.coordinateType && "radius" === op.axisOrientType)) {
32
- const {labelGap: labelGap = 4, labelFlush: labelFlush} = op;
33
- let items = (0, util_1.getCartesianLabelBounds)(scale, scaleTicks, op).map(((bounds, i) => ({
34
- AABBBounds: bounds,
35
- value: scaleTicks[i]
36
- })));
37
- for (;items.length >= 3 && (0, util_1.hasOverlap)(items, labelGap); ) items = methods.parity(items);
38
- const ticks = items.map((item => item.value));
39
- ticks.length < 3 && labelFlush && (ticks.length > 1 && ticks.pop(), (0, vutils_1.last)(ticks) !== (0,
40
- vutils_1.last)(scaleTicks) && ticks.push((0, vutils_1.last)(scaleTicks))), scaleTicks = ticks;
41
- }
42
- return (0, util_1.convertDomainToTickData)(scaleTicks);
43
- };
44
-
45
- exports.continuousTicks = continuousTicks;
46
-
47
- const methods = {
48
- parity: function(items) {
49
- return items.filter(((item, i) => i % 2 == 0));
50
- },
51
- greedy: function(items, sep) {
52
- let a;
53
- return items.filter(((b, i) => (!i || !(0, util_1.intersect)(a.AABBBounds, b.AABBBounds, sep)) && (a = b,
54
- !0)));
55
- }
56
- };
57
- //# sourceMappingURL=continuous.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/continuous.ts"],"names":[],"mappings":"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","file":"continuous.js","sourcesContent":["import type { LinearScale, ContinuousScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { isFunction, isValid, last } from '@visactor/vutils';\nimport { DEFAULT_CONTINUOUS_TICK_COUNT } from './config';\nimport type { ICartesianTickDataOpt, ITickData, ITickDataOpt } from './interface';\nimport type { ILabelItem } from './util';\n// eslint-disable-next-line no-duplicate-imports\nimport { convertDomainToTickData, getCartesianLabelBounds, hasOverlap, intersect } from './util';\n\n/**\n * 对于连续轴:\n * - 如果spec配了tickCount、forceTickCount、tickStep,则直接输出LinearScale的ticks()、forceTicks()、stepTicks()结果;\n * - 默认输出tickCount为10的ticks()结果。\n *\n * @param scale\n * @param op\n * @returns\n */\nexport const continuousTicks = (scale: ContinuousScale, op: ITickDataOpt): ITickData[] => {\n if (!isContinuous(scale.type)) {\n return convertDomainToTickData(scale.domain());\n }\n // if range is so small\n const range = scale.range();\n const rangeSize = Math.abs(range[range.length - 1] - range[0]);\n if (rangeSize < 2) {\n return convertDomainToTickData([scale.domain()[0]]);\n }\n\n const { tickCount, forceTickCount, tickStep, noDecimals = false, labelStyle } = op;\n\n let scaleTicks: number[];\n if (isValid(tickStep)) {\n scaleTicks = (scale as LinearScale).stepTicks(tickStep);\n } else if (isValid(forceTickCount)) {\n scaleTicks = (scale as LinearScale).forceTicks(forceTickCount);\n } else if (op.tickMode === 'd3') {\n const count = isFunction(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount;\n scaleTicks = (scale as LinearScale).d3Ticks(count ?? DEFAULT_CONTINUOUS_TICK_COUNT, { noDecimals });\n } else {\n const count = isFunction(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount;\n scaleTicks = (scale as LinearScale).ticks(count ?? DEFAULT_CONTINUOUS_TICK_COUNT, { noDecimals });\n }\n\n if (op.sampling) {\n // 判断重叠\n if (op.coordinateType === 'cartesian' || (op.coordinateType === 'polar' && op.axisOrientType === 'radius')) {\n const { labelGap = 4, labelFlush } = op as ICartesianTickDataOpt;\n let items = getCartesianLabelBounds(scale, scaleTicks, op as ICartesianTickDataOpt).map(\n (bounds, i) =>\n ({\n AABBBounds: bounds,\n value: scaleTicks[i]\n } as ILabelItem<number>)\n );\n while (items.length >= 3 && hasOverlap(items, labelGap)) {\n items = methods.parity(items);\n }\n const ticks = items.map(item => item.value);\n\n if (ticks.length < 3 && labelFlush) {\n if (ticks.length > 1) {\n ticks.pop();\n }\n if (last(ticks) !== last(scaleTicks)) {\n ticks.push(last(scaleTicks));\n }\n }\n\n scaleTicks = ticks;\n }\n }\n\n return convertDomainToTickData(scaleTicks);\n};\n\nconst methods = {\n parity: function <T>(items: ILabelItem<T>[]) {\n return items.filter((item, i) => i % 2 === 0);\n },\n greedy: function <T>(items: ILabelItem<T>[], sep: number) {\n let a: ILabelItem<T>;\n return items.filter((b, i) => {\n if (!i || !intersect(a.AABBBounds, b.AABBBounds, sep)) {\n a = b;\n return true;\n }\n return false;\n });\n }\n};\n"]}
@@ -1,6 +0,0 @@
1
- import type { BandScale } from '@visactor/vscale';
2
- import type { ICartesianTickDataOpt, ITickData } from '../interface';
3
- type OneDimensionalBounds = [number, number, number];
4
- export declare const boundsDistance: (prevBounds: OneDimensionalBounds, nextBounds: OneDimensionalBounds) => number;
5
- export declare const linearDiscreteTicks: (scale: BandScale, op: ICartesianTickDataOpt) => ITickData[];
6
- export {};
@@ -1,101 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.linearDiscreteTicks = exports.boundsDistance = void 0;
6
-
7
- const vutils_1 = require("@visactor/vutils"), util_1 = require("../util"), algorithm_1 = require("../../../algorithm"), getOneDimensionalLabelBounds = (scale, domain, op, isHorizontal) => (0,
8
- util_1.getCartesianLabelBounds)(scale, domain, op).map((bounds => isHorizontal ? [ bounds.x1, bounds.x2, bounds.width() ] : [ bounds.y1, bounds.y2, bounds.height() ])), boundsOverlap = (prevBounds, nextBounds, gap = 0) => Math.max(prevBounds[0], nextBounds[0]) - gap / 2 <= Math.min(prevBounds[1], nextBounds[1]) + gap / 2, boundsDistance = (prevBounds, nextBounds) => prevBounds[1] < nextBounds[0] ? nextBounds[0] - prevBounds[1] : nextBounds[1] < prevBounds[0] ? prevBounds[0] - nextBounds[1] : 0;
9
-
10
- exports.boundsDistance = boundsDistance;
11
-
12
- const linearDiscreteTicks = (scale, op) => {
13
- var _a;
14
- const domain = scale.domain();
15
- if (!domain.length) return [];
16
- const {tickCount: tickCount, forceTickCount: forceTickCount, tickStep: tickStep, labelGap: labelGap = 4, axisOrientType: axisOrientType, labelStyle: labelStyle} = op, isHorizontal = (0,
17
- util_1.isAxisHorizontal)(axisOrientType), range = scale.range(), rangeSize = scale.calculateWholeRangeSize();
18
- if (rangeSize < 2) return op.labelLastVisible ? (0, util_1.convertDomainToTickData)([ domain[domain.length - 1] ]) : (0,
19
- util_1.convertDomainToTickData)([ domain[0] ]);
20
- let scaleTicks;
21
- if ((0, vutils_1.isValid)(tickStep)) scaleTicks = scale.stepTicks(tickStep); else if ((0,
22
- vutils_1.isValid)(forceTickCount)) scaleTicks = scale.forceTicks(forceTickCount); else if ((0,
23
- vutils_1.isValid)(tickCount)) {
24
- const count = (0, vutils_1.isFunction)(tickCount) ? tickCount({
25
- axisLength: rangeSize,
26
- labelStyle: labelStyle
27
- }) : tickCount;
28
- scaleTicks = scale.ticks(count);
29
- } else if (op.sampling) {
30
- const fontSize = (null !== (_a = op.labelStyle.fontSize) && void 0 !== _a ? _a : 12) + 2, rangeStart = (0,
31
- vutils_1.minInArray)(range), rangeEnd = (0, vutils_1.maxInArray)(range);
32
- if (domain.length <= rangeSize / fontSize) {
33
- const incrementUnit = (rangeEnd - rangeStart) / domain.length, labelBoundsList = getOneDimensionalLabelBounds(scale, domain, op, isHorizontal), minBoundsLength = Math.min(...labelBoundsList.map((bounds => bounds[2]))), stepResult = getStep(domain, labelBoundsList, labelGap, op.labelLastVisible, Math.floor(minBoundsLength / incrementUnit), !1);
34
- scaleTicks = scale.stepTicks(stepResult.step), op.labelLastVisible && (stepResult.delCount && (scaleTicks = scaleTicks.slice(0, scaleTicks.length - stepResult.delCount)),
35
- scaleTicks.push(domain[domain.length - 1]));
36
- } else {
37
- const tempDomain = [ domain[0], domain[Math.floor(domain.length / 2)], domain[domain.length - 1] ], tempList = getOneDimensionalLabelBounds(scale, tempDomain, op, isHorizontal);
38
- let maxBounds = null;
39
- tempList.forEach((current => {
40
- maxBounds ? maxBounds[2] < current[2] && (maxBounds = current) : maxBounds = current;
41
- }));
42
- const step = rangeEnd - rangeStart - labelGap > 0 ? Math.ceil(domain.length * (labelGap + maxBounds[2]) / (rangeEnd - rangeStart - labelGap)) : domain.length - 1;
43
- scaleTicks = scale.stepTicks(step), !op.labelLastVisible || scaleTicks.length && scaleTicks[scaleTicks.length - 1] === domain[domain.length - 1] || (scaleTicks.length && Math.abs(scale.scale(scaleTicks[scaleTicks.length - 1]) - scale.scale(domain[domain.length - 1])) < maxBounds[2] && (scaleTicks = scaleTicks.slice(0, -1)),
44
- scaleTicks.push(domain[domain.length - 1]));
45
- }
46
- } else scaleTicks = scale.domain();
47
- return (0, util_1.convertDomainToTickData)(scaleTicks);
48
- };
49
-
50
- exports.linearDiscreteTicks = linearDiscreteTicks;
51
-
52
- const getStep = (domain, labelBoundsList, labelGap, labelLastVisible, defaultStep, areAllBoundsSame) => {
53
- let resultDelCount = 0, resultStep = 0, resultTickCount = -1, minDiff = Number.MAX_VALUE;
54
- const validateStep = step => {
55
- let success = !0, ptr = 0;
56
- do {
57
- ptr + step < domain.length && boundsOverlap(labelBoundsList[ptr], labelBoundsList[ptr + step], labelGap) && (success = !1),
58
- ptr += step;
59
- } while (success && ptr < domain.length);
60
- return success;
61
- }, minValidStep = (0, algorithm_1.binaryFuzzySearchInNumberRange)(defaultStep, domain.length, (step => validateStep(step) ? 1 : -1));
62
- let step = minValidStep;
63
- do {
64
- if (step > minValidStep && !areAllBoundsSame && !validateStep(step)) step++; else {
65
- if (!labelLastVisible) {
66
- resultStep = step;
67
- break;
68
- }
69
- {
70
- const lastIndex = domain.length - 1;
71
- let ptr, delCount = 0;
72
- ptr = domain.length % step > 0 ? domain.length - domain.length % step + step : domain.length;
73
- do {
74
- if (ptr -= step, ptr !== lastIndex && !boundsOverlap(labelBoundsList[ptr], labelBoundsList[lastIndex], labelGap)) break;
75
- delCount++;
76
- } while (ptr > 0);
77
- if (ptr === lastIndex) {
78
- resultStep = step, resultDelCount = delCount;
79
- break;
80
- }
81
- {
82
- const tickCount = Math.floor(domain.length / step) - delCount + 1;
83
- if (tickCount < resultTickCount) break;
84
- {
85
- resultTickCount = tickCount;
86
- const distance1 = (0, exports.boundsDistance)(labelBoundsList[ptr], labelBoundsList[lastIndex]), distance2 = ptr - step >= 0 ? (0,
87
- exports.boundsDistance)(labelBoundsList[ptr - step], labelBoundsList[ptr]) : distance1, diff = Math.abs(distance1 - distance2);
88
- if (diff < minDiff && (minDiff = diff, resultStep = step, resultDelCount = delCount),
89
- distance1 <= distance2) break;
90
- }
91
- }
92
- }
93
- step++;
94
- }
95
- } while (step <= domain.length);
96
- return {
97
- step: resultStep,
98
- delCount: resultDelCount
99
- };
100
- };
101
- //# sourceMappingURL=linear.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/discrete/linear.ts"],"names":[],"mappings":"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","file":"linear.js","sourcesContent":["import type { BandScale, IBaseScale } from '@visactor/vscale';\nimport { isFunction, isValid, maxInArray, minInArray } from '@visactor/vutils';\nimport type { ICartesianTickDataOpt, ITickData } from '../interface';\nimport { convertDomainToTickData, getCartesianLabelBounds, isAxisHorizontal } from '../util';\nimport { binaryFuzzySearchInNumberRange } from '../../../algorithm';\n\n/** x1, x2, length */\ntype OneDimensionalBounds = [number, number, number];\n\nconst getOneDimensionalLabelBounds = (\n scale: IBaseScale,\n domain: any[],\n op: ICartesianTickDataOpt,\n isHorizontal: boolean\n): OneDimensionalBounds[] => {\n const labelBoundsList = getCartesianLabelBounds(scale, domain, op);\n return labelBoundsList.map(bounds => {\n if (isHorizontal) {\n return [bounds.x1, bounds.x2, bounds.width()];\n }\n return [bounds.y1, bounds.y2, bounds.height()];\n });\n};\n\n/** 判断两个 bounds 是否有重叠情况 */\nconst boundsOverlap = (prevBounds: OneDimensionalBounds, nextBounds: OneDimensionalBounds, gap = 0): boolean => {\n return Math.max(prevBounds[0], nextBounds[0]) - gap / 2 <= Math.min(prevBounds[1], nextBounds[1]) + gap / 2;\n};\n\n/** 判断两个不相交的 bounds 相隔的距离 */\nexport const boundsDistance = (prevBounds: OneDimensionalBounds, nextBounds: OneDimensionalBounds): number => {\n if (prevBounds[1] < nextBounds[0]) {\n return nextBounds[0] - prevBounds[1];\n } else if (nextBounds[1] < prevBounds[0]) {\n return prevBounds[0] - nextBounds[1];\n }\n return 0;\n};\n\n/**\n * 对于离散轴:\n * - 如果spec配了tickCount、forceTickCount、tickStep,则直接输出BandScale的ticks()、forceTicks()、stepTicks()结果;\n * - 估算所有轴label的宽度(或高度,在竖轴的情况下)并存为数组domainLengthList;\n * - 通过循环来寻找最小的step,使:如果在这个step下采样,轴标签互不遮挡(此处用到domainLengthList和scale.range());\n * - 如果用户配置了spec.label.lastVisible,则处理右边界:强制采样最后一个tick数据,并删掉这个tick的label所覆盖的那些tick数据。\n *\n * @param scale\n * @param op\n * @returns\n */\nexport const linearDiscreteTicks = (scale: BandScale, op: ICartesianTickDataOpt): ITickData[] => {\n const domain = scale.domain();\n if (!domain.length) {\n return [];\n }\n const { tickCount, forceTickCount, tickStep, labelGap = 4, axisOrientType, labelStyle } = op;\n const isHorizontal = isAxisHorizontal(axisOrientType);\n const range = scale.range();\n\n // if range is so small\n const rangeSize = scale.calculateWholeRangeSize();\n if (rangeSize < 2) {\n if (op.labelLastVisible) {\n return convertDomainToTickData([domain[domain.length - 1]]);\n }\n return convertDomainToTickData([domain[0]]);\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 count = isFunction(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount;\n scaleTicks = scale.ticks(count);\n } else if (op.sampling) {\n const fontSize = (op.labelStyle.fontSize ?? 12) + 2;\n const rangeStart = minInArray(range);\n const rangeEnd = maxInArray(range);\n\n if (domain.length <= rangeSize / fontSize) {\n const incrementUnit = (rangeEnd - rangeStart) / domain.length;\n const labelBoundsList = getOneDimensionalLabelBounds(scale, domain, op, isHorizontal);\n const minBoundsLength = Math.min(...labelBoundsList.map(bounds => bounds[2]));\n\n const stepResult = getStep(\n domain,\n labelBoundsList,\n labelGap,\n op.labelLastVisible,\n Math.floor(minBoundsLength / incrementUnit), // 给step赋上合适的初值,有效改善外层循环次数\n false\n );\n\n scaleTicks = (scale as BandScale).stepTicks(stepResult.step);\n if (op.labelLastVisible) {\n if (stepResult.delCount) {\n scaleTicks = scaleTicks.slice(0, scaleTicks.length - stepResult.delCount);\n }\n scaleTicks.push(domain[domain.length - 1]);\n }\n } else {\n // only check first middle last, use the max size to sampling\n const tempDomain = [domain[0], domain[Math.floor(domain.length / 2)], domain[domain.length - 1]];\n const tempList = getOneDimensionalLabelBounds(scale, tempDomain, op, isHorizontal);\n let maxBounds: OneDimensionalBounds = null;\n tempList.forEach(current => {\n if (!maxBounds) {\n maxBounds = current;\n return;\n }\n if (maxBounds[2] < current[2]) {\n maxBounds = current;\n }\n });\n\n const step =\n rangeEnd - rangeStart - labelGap > 0\n ? Math.ceil((domain.length * (labelGap + maxBounds[2])) / (rangeEnd - rangeStart - labelGap))\n : domain.length - 1;\n\n scaleTicks = (scale as BandScale).stepTicks(step);\n\n if (\n op.labelLastVisible &&\n (!scaleTicks.length || scaleTicks[scaleTicks.length - 1] !== domain[domain.length - 1])\n ) {\n if (\n scaleTicks.length &&\n Math.abs(scale.scale(scaleTicks[scaleTicks.length - 1]) - scale.scale(domain[domain.length - 1])) <\n maxBounds[2]\n ) {\n scaleTicks = scaleTicks.slice(0, -1);\n }\n scaleTicks.push(domain[domain.length - 1]);\n }\n }\n } else {\n scaleTicks = scale.domain();\n }\n\n return convertDomainToTickData(scaleTicks);\n};\n\n/** 计算合适的step */\nconst getStep = (\n domain: any[],\n labelBoundsList: OneDimensionalBounds[],\n labelGap: number,\n labelLastVisible: boolean,\n defaultStep: number,\n areAllBoundsSame: boolean\n) => {\n let resultDelCount = 0;\n let resultStep = 0;\n let resultTickCount = -1;\n let minDiff = Number.MAX_VALUE;\n\n /** 验证在当前 step 下是否会产生重叠 */\n const validateStep = (step: number) => {\n let success = true;\n let ptr = 0;\n do {\n if (ptr + step < domain.length && boundsOverlap(labelBoundsList[ptr], labelBoundsList[ptr + step], labelGap)) {\n success = false;\n }\n ptr += step;\n } while (success && ptr < domain.length);\n return success;\n };\n\n // 通过二分来寻找最小的step,使:如果在这个step下采样,轴标签互不遮挡\n const minValidStep = binaryFuzzySearchInNumberRange(defaultStep, domain.length, step =>\n validateStep(step) ? 1 : -1\n );\n\n // 对 step 进行微调\n let step = minValidStep;\n do {\n if (step > minValidStep && !areAllBoundsSame) {\n if (!validateStep(step)) {\n step++;\n continue;\n }\n }\n if (labelLastVisible) {\n const lastIndex = domain.length - 1;\n let delCount = 0;\n let ptr;\n if (domain.length % step > 0) {\n ptr = domain.length - (domain.length % step) + step;\n } else {\n ptr = domain.length;\n }\n do {\n ptr -= step; // 获取最后一个label位置\n if (ptr === lastIndex || boundsOverlap(labelBoundsList[ptr], labelBoundsList[lastIndex], labelGap)) {\n delCount++;\n } else {\n break;\n }\n } while (ptr > 0);\n if (ptr === lastIndex) {\n // 采到的最后的一个 label 刚好是最后一项,直接退出\n resultStep = step;\n resultDelCount = delCount;\n break;\n } else {\n // 尝试获取最均匀的结果,防止倒数第二项和最后一项有大的空档\n const tickCount = Math.floor(domain.length / step) - delCount + 1;\n if (tickCount < resultTickCount) {\n break;\n } else {\n resultTickCount = tickCount;\n const distance1 = boundsDistance(labelBoundsList[ptr], labelBoundsList[lastIndex]); // 倒数第2项和最后一项的距离\n const distance2 =\n ptr - step >= 0 ? boundsDistance(labelBoundsList[ptr - step], labelBoundsList[ptr]) : distance1; // 倒数第3项和倒数第2项的距离\n const diff = Math.abs(distance1 - distance2);\n if (diff < minDiff) {\n minDiff = diff;\n resultStep = step; // 记录最均匀的 step\n resultDelCount = delCount;\n }\n if (distance1 <= distance2) {\n break;\n }\n }\n }\n } else {\n resultStep = step;\n break;\n }\n step++;\n } while (step <= domain.length);\n\n return {\n step: resultStep,\n delCount: resultDelCount\n };\n};\n"]}
@@ -1,3 +0,0 @@
1
- import type { BandScale } from '@visactor/vscale';
2
- import type { IPolarTickDataOpt, ITickData } from '../interface';
3
- export declare const polarAngleAxisDiscreteTicks: (scale: BandScale, op: IPolarTickDataOpt) => ITickData[];
@@ -1,53 +0,0 @@
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
@@ -1 +0,0 @@
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"]}
@@ -1,6 +0,0 @@
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[];
@@ -1,41 +0,0 @@
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
@@ -1 +0,0 @@
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"]}
@@ -1,38 +0,0 @@
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 {};
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- //# sourceMappingURL=interface.js.map
@@ -1 +0,0 @@
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"]}