@visactor/vtable 0.9.2-alpha.3 → 0.9.2

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 (533) hide show
  1. package/cjs/ListTable.d.ts +1 -2
  2. package/cjs/ListTable.js +13 -17
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotTable.d.ts +1 -2
  5. package/cjs/PivotTable.js +13 -18
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/body-helper/style/MultilineTextStyle.js +2 -2
  8. package/cjs/body-helper/style/MultilineTextStyle.js.map +1 -1
  9. package/cjs/body-helper/style/ProgressBarStyle.js +15 -15
  10. package/cjs/body-helper/style/ProgressBarStyle.js.map +1 -1
  11. package/cjs/body-helper/style/Style.d.ts +1 -0
  12. package/cjs/body-helper/style/Style.js +28 -25
  13. package/cjs/body-helper/style/Style.js.map +1 -1
  14. package/cjs/core/BaseTable.d.ts +5 -18
  15. package/cjs/core/BaseTable.js +37 -94
  16. package/cjs/core/BaseTable.js.map +1 -1
  17. package/cjs/core/TABLE_EVENT_TYPE.d.ts +0 -3
  18. package/cjs/core/TABLE_EVENT_TYPE.js +1 -4
  19. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  20. package/cjs/core/style.js +1 -1
  21. package/cjs/core/style.js.map +1 -1
  22. package/cjs/core/tableHelper.js +2 -1
  23. package/cjs/data/CachedDataSource.js +1 -2
  24. package/cjs/data/DataSource.js +2 -2
  25. package/cjs/data/DataSource.js.map +1 -1
  26. package/cjs/dataset/dataset.d.ts +19 -12
  27. package/cjs/dataset/dataset.js +196 -168
  28. package/cjs/dataset/dataset.js.map +1 -1
  29. package/cjs/event/EventHandler.js.map +1 -1
  30. package/cjs/event/EventTarget.d.ts +5 -5
  31. package/cjs/event/EventTarget.js +2 -2
  32. package/cjs/event/EventTarget.js.map +1 -1
  33. package/cjs/event/event.js +4 -7
  34. package/cjs/event/event.js.map +1 -1
  35. package/cjs/event/listener/table-group.js +6 -8
  36. package/cjs/event/listener/table-group.js.map +1 -1
  37. package/cjs/event/sparkline-event.js.map +1 -1
  38. package/cjs/event/util.js +1 -0
  39. package/cjs/header-helper/header-helper.js +1 -1
  40. package/cjs/header-helper/header-helper.js.map +1 -1
  41. package/cjs/header-helper/style/MultilineTextHeaderStyle.js +2 -2
  42. package/cjs/header-helper/style/MultilineTextHeaderStyle.js.map +1 -1
  43. package/cjs/header-helper/style/Style.d.ts +1 -0
  44. package/cjs/header-helper/style/Style.js +28 -25
  45. package/cjs/header-helper/style/Style.js.map +1 -1
  46. package/cjs/index.d.ts +3 -4
  47. package/cjs/index.js +2 -11
  48. package/cjs/index.js.map +1 -1
  49. package/cjs/layout/index.js +1 -2
  50. package/cjs/layout/pivot-header-layout.d.ts +5 -11
  51. package/cjs/layout/pivot-header-layout.js +12 -42
  52. package/cjs/layout/pivot-header-layout.js.map +1 -1
  53. package/cjs/layout/pivot-layout.d.ts +8 -53
  54. package/cjs/layout/pivot-layout.js +89 -393
  55. package/cjs/layout/pivot-layout.js.map +1 -1
  56. package/cjs/layout/simple-header-layout.d.ts +0 -8
  57. package/cjs/layout/simple-header-layout.js +0 -34
  58. package/cjs/layout/simple-header-layout.js.map +1 -1
  59. package/{es/components → cjs}/menu/dom/BaseMenu.d.ts +2 -2
  60. package/cjs/menu/dom/BaseMenu.js.map +1 -0
  61. package/cjs/menu/dom/Menu.js.map +1 -0
  62. package/cjs/{components/menu → menu}/dom/MenuHandler.d.ts +2 -2
  63. package/cjs/{components/menu → menu}/dom/MenuHandler.js +1 -1
  64. package/cjs/menu/dom/MenuHandler.js.map +1 -0
  65. package/{es/components → cjs}/menu/dom/logic/MenuContainer.d.ts +2 -2
  66. package/cjs/{components/menu → menu}/dom/logic/MenuContainer.js +2 -2
  67. package/cjs/menu/dom/logic/MenuContainer.js.map +1 -0
  68. package/cjs/{components/menu → menu}/dom/logic/MenuElement.d.ts +2 -2
  69. package/cjs/{components/menu → menu}/dom/logic/MenuElement.js +4 -4
  70. package/cjs/menu/dom/logic/MenuElement.js.map +1 -0
  71. package/cjs/menu/dom/logic/MenuElementStyle.js.map +1 -0
  72. package/cjs/scenegraph/component/table-component.js +3 -3
  73. package/cjs/scenegraph/component/table-component.js.map +1 -1
  74. package/cjs/scenegraph/graphic/chart.d.ts +0 -3
  75. package/cjs/scenegraph/graphic/chart.js +6 -21
  76. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  77. package/cjs/scenegraph/graphic/contributions/chart-render.js +3 -15
  78. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  79. package/cjs/scenegraph/group-creater/cell-helper.js +3 -8
  80. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  81. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +1 -2
  82. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  83. package/cjs/scenegraph/group-creater/column.js.map +1 -1
  84. package/cjs/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  85. package/cjs/scenegraph/group-creater/progress/proxy.js +35 -29
  86. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  87. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -6
  88. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  89. package/cjs/scenegraph/layout/auto-width.d.ts +2 -0
  90. package/cjs/scenegraph/layout/auto-width.js +85 -0
  91. package/cjs/scenegraph/layout/auto-width.js.map +1 -0
  92. package/cjs/scenegraph/layout/compute-col-width.js +15 -23
  93. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  94. package/cjs/scenegraph/layout/compute-row-height.js +9 -20
  95. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  96. package/cjs/scenegraph/layout/move-cell.js +1 -1
  97. package/cjs/scenegraph/layout/move-cell.js.map +1 -1
  98. package/cjs/scenegraph/layout/update-cell.js +2 -3
  99. package/cjs/scenegraph/layout/update-cell.js.map +1 -1
  100. package/cjs/scenegraph/layout/update-height.js +1 -1
  101. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  102. package/cjs/scenegraph/layout/update-row.js +1 -1
  103. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  104. package/cjs/scenegraph/layout/update-width.js +1 -1
  105. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  106. package/cjs/scenegraph/refresh-node/update-chart.d.ts +0 -3
  107. package/cjs/scenegraph/refresh-node/update-chart.js +5 -48
  108. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  109. package/cjs/scenegraph/scenegraph.d.ts +0 -9
  110. package/cjs/scenegraph/scenegraph.js +18 -144
  111. package/cjs/scenegraph/scenegraph.js.map +1 -1
  112. package/cjs/scenegraph/stick-text/index.js +8 -10
  113. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  114. package/cjs/scenegraph/style/frame-border.js +5 -1
  115. package/cjs/scenegraph/style/frame-border.js.map +1 -1
  116. package/cjs/state/state.js +1 -1
  117. package/cjs/state/state.js.map +1 -1
  118. package/cjs/themes/DEFAULT.js +2 -1
  119. package/cjs/tools/LimitPromiseQueue.js +1 -2
  120. package/cjs/tools/calc.d.ts +0 -3
  121. package/cjs/tools/calc.js +3 -11
  122. package/cjs/tools/calc.js.map +1 -1
  123. package/cjs/tools/diff-cell.js +2 -2
  124. package/cjs/tools/dom.js +1 -1
  125. package/cjs/tools/env.js +1 -1
  126. package/{es/components → cjs}/tooltip/BaseTooltip.d.ts +3 -3
  127. package/cjs/tooltip/BaseTooltip.js.map +1 -0
  128. package/cjs/tooltip/Tooltip.js.map +1 -0
  129. package/{es/components → cjs}/tooltip/TooltipHandler.d.ts +4 -4
  130. package/cjs/{components/tooltip → tooltip}/TooltipHandler.js +1 -1
  131. package/cjs/tooltip/TooltipHandler.js.map +1 -0
  132. package/{es/components → cjs}/tooltip/logic/BubbleTooltipElement.d.ts +4 -4
  133. package/cjs/{components/tooltip → tooltip}/logic/BubbleTooltipElement.js +1 -1
  134. package/cjs/tooltip/logic/BubbleTooltipElement.js.map +1 -0
  135. package/cjs/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -0
  136. package/cjs/ts-types/base-table.d.ts +12 -29
  137. package/cjs/ts-types/base-table.js.map +1 -1
  138. package/cjs/ts-types/column/style.d.ts +1 -0
  139. package/cjs/ts-types/column/style.js.map +1 -1
  140. package/cjs/ts-types/events.d.ts +83 -100
  141. package/cjs/ts-types/events.js.map +1 -1
  142. package/cjs/ts-types/list-table/layout-map/api.d.ts +0 -2
  143. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  144. package/cjs/ts-types/new-data-set.d.ts +5 -18
  145. package/cjs/ts-types/new-data-set.js +2 -2
  146. package/cjs/ts-types/new-data-set.js.map +1 -1
  147. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.d.ts +0 -4
  148. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js +1 -3
  149. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -1
  150. package/cjs/ts-types/pivot-table/corner.d.ts +3 -3
  151. package/cjs/ts-types/pivot-table/corner.js.map +1 -1
  152. package/cjs/ts-types/pivot-table/indicator/index.d.ts +0 -1
  153. package/cjs/ts-types/pivot-table/indicator/index.js.map +1 -1
  154. package/cjs/ts-types/pivot-table/title.d.ts +1 -1
  155. package/cjs/ts-types/pivot-table/title.js.map +1 -1
  156. package/cjs/ts-types/table-engine.d.ts +3 -27
  157. package/cjs/ts-types/table-engine.js.map +1 -1
  158. package/dist/vtable.js +11839 -22467
  159. package/dist/vtable.min.js +2 -4
  160. package/es/ListTable.d.ts +1 -2
  161. package/es/ListTable.js +13 -17
  162. package/es/ListTable.js.map +1 -1
  163. package/es/PivotTable.d.ts +1 -2
  164. package/es/PivotTable.js +14 -19
  165. package/es/PivotTable.js.map +1 -1
  166. package/es/body-helper/style/MultilineTextStyle.js +2 -2
  167. package/es/body-helper/style/MultilineTextStyle.js.map +1 -1
  168. package/es/body-helper/style/ProgressBarStyle.js +15 -15
  169. package/es/body-helper/style/ProgressBarStyle.js.map +1 -1
  170. package/es/body-helper/style/Style.d.ts +1 -0
  171. package/es/body-helper/style/Style.js +28 -25
  172. package/es/body-helper/style/Style.js.map +1 -1
  173. package/es/core/BaseTable.d.ts +5 -18
  174. package/es/core/BaseTable.js +39 -98
  175. package/es/core/BaseTable.js.map +1 -1
  176. package/es/core/TABLE_EVENT_TYPE.d.ts +0 -3
  177. package/es/core/TABLE_EVENT_TYPE.js +1 -4
  178. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  179. package/es/core/style.js +1 -1
  180. package/es/core/style.js.map +1 -1
  181. package/es/core/tableHelper.js +2 -1
  182. package/es/data/CachedDataSource.js +1 -2
  183. package/es/data/DataSource.js +2 -2
  184. package/es/data/DataSource.js.map +1 -1
  185. package/es/dataset/dataset.d.ts +19 -12
  186. package/es/dataset/dataset.js +187 -161
  187. package/es/dataset/dataset.js.map +1 -1
  188. package/es/event/EventHandler.js.map +1 -1
  189. package/es/event/EventTarget.d.ts +5 -5
  190. package/es/event/EventTarget.js +2 -2
  191. package/es/event/EventTarget.js.map +1 -1
  192. package/es/event/event.js +3 -8
  193. package/es/event/event.js.map +1 -1
  194. package/es/event/listener/table-group.js +6 -8
  195. package/es/event/listener/table-group.js.map +1 -1
  196. package/es/event/sparkline-event.js.map +1 -1
  197. package/es/event/util.js +2 -1
  198. package/es/header-helper/header-helper.js +1 -1
  199. package/es/header-helper/header-helper.js.map +1 -1
  200. package/es/header-helper/style/MultilineTextHeaderStyle.js +2 -2
  201. package/es/header-helper/style/MultilineTextHeaderStyle.js.map +1 -1
  202. package/es/header-helper/style/Style.d.ts +1 -0
  203. package/es/header-helper/style/Style.js +28 -25
  204. package/es/header-helper/style/Style.js.map +1 -1
  205. package/es/index.d.ts +3 -4
  206. package/es/index.js +2 -4
  207. package/es/index.js.map +1 -1
  208. package/es/layout/index.js +1 -2
  209. package/es/layout/pivot-header-layout.d.ts +5 -11
  210. package/es/layout/pivot-header-layout.js +11 -41
  211. package/es/layout/pivot-header-layout.js.map +1 -1
  212. package/es/layout/pivot-layout.d.ts +8 -53
  213. package/es/layout/pivot-layout.js +87 -396
  214. package/es/layout/pivot-layout.js.map +1 -1
  215. package/es/layout/simple-header-layout.d.ts +0 -8
  216. package/es/layout/simple-header-layout.js +0 -34
  217. package/es/layout/simple-header-layout.js.map +1 -1
  218. package/{cjs/components → es}/menu/dom/BaseMenu.d.ts +2 -2
  219. package/es/menu/dom/BaseMenu.js.map +1 -0
  220. package/es/menu/dom/Menu.js.map +1 -0
  221. package/es/{components/menu → menu}/dom/MenuHandler.d.ts +2 -2
  222. package/es/{components/menu → menu}/dom/MenuHandler.js +2 -2
  223. package/es/menu/dom/MenuHandler.js.map +1 -0
  224. package/{cjs/components → es}/menu/dom/logic/MenuContainer.d.ts +2 -2
  225. package/es/{components/menu → menu}/dom/logic/MenuContainer.js +4 -4
  226. package/es/menu/dom/logic/MenuContainer.js.map +1 -0
  227. package/es/{components/menu → menu}/dom/logic/MenuElement.d.ts +2 -2
  228. package/es/{components/menu → menu}/dom/logic/MenuElement.js +9 -9
  229. package/es/menu/dom/logic/MenuElement.js.map +1 -0
  230. package/es/menu/dom/logic/MenuElementStyle.js.map +1 -0
  231. package/es/scenegraph/component/table-component.js +3 -3
  232. package/es/scenegraph/component/table-component.js.map +1 -1
  233. package/es/scenegraph/graphic/chart.d.ts +0 -3
  234. package/es/scenegraph/graphic/chart.js +5 -22
  235. package/es/scenegraph/graphic/chart.js.map +1 -1
  236. package/es/scenegraph/graphic/contributions/chart-render.js +3 -15
  237. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  238. package/es/scenegraph/group-creater/cell-helper.js +2 -9
  239. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  240. package/es/scenegraph/group-creater/cell-type/chart-cell.js +1 -2
  241. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  242. package/es/scenegraph/group-creater/column.js.map +1 -1
  243. package/es/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  244. package/es/scenegraph/group-creater/progress/proxy.js +34 -27
  245. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  246. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -6
  247. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  248. package/es/scenegraph/layout/auto-width.d.ts +2 -0
  249. package/es/scenegraph/layout/auto-width.js +82 -0
  250. package/es/scenegraph/layout/auto-width.js.map +1 -0
  251. package/es/scenegraph/layout/compute-col-width.js +15 -23
  252. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  253. package/es/scenegraph/layout/compute-row-height.js +9 -20
  254. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  255. package/es/scenegraph/layout/move-cell.js +1 -1
  256. package/es/scenegraph/layout/move-cell.js.map +1 -1
  257. package/es/scenegraph/layout/update-cell.js +1 -3
  258. package/es/scenegraph/layout/update-cell.js.map +1 -1
  259. package/es/scenegraph/layout/update-height.js +1 -1
  260. package/es/scenegraph/layout/update-height.js.map +1 -1
  261. package/es/scenegraph/layout/update-row.js +1 -1
  262. package/es/scenegraph/layout/update-row.js.map +1 -1
  263. package/es/scenegraph/layout/update-width.js +1 -1
  264. package/es/scenegraph/layout/update-width.js.map +1 -1
  265. package/es/scenegraph/refresh-node/update-chart.d.ts +0 -3
  266. package/es/scenegraph/refresh-node/update-chart.js +4 -45
  267. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  268. package/es/scenegraph/scenegraph.d.ts +0 -9
  269. package/es/scenegraph/scenegraph.js +19 -146
  270. package/es/scenegraph/scenegraph.js.map +1 -1
  271. package/es/scenegraph/stick-text/index.js +8 -10
  272. package/es/scenegraph/stick-text/index.js.map +1 -1
  273. package/es/scenegraph/style/frame-border.js +5 -1
  274. package/es/scenegraph/style/frame-border.js.map +1 -1
  275. package/es/state/state.js +1 -1
  276. package/es/state/state.js.map +1 -1
  277. package/es/themes/DEFAULT.js +2 -1
  278. package/es/tools/LimitPromiseQueue.js +1 -2
  279. package/es/tools/calc.d.ts +0 -3
  280. package/es/tools/calc.js +0 -10
  281. package/es/tools/calc.js.map +1 -1
  282. package/es/tools/diff-cell.js +1 -1
  283. package/es/tools/dom.js +1 -1
  284. package/es/tools/env.js +1 -1
  285. package/{cjs/components → es}/tooltip/BaseTooltip.d.ts +3 -3
  286. package/es/tooltip/BaseTooltip.js.map +1 -0
  287. package/es/tooltip/Tooltip.js.map +1 -0
  288. package/{cjs/components → es}/tooltip/TooltipHandler.d.ts +4 -4
  289. package/es/{components/tooltip → tooltip}/TooltipHandler.js +4 -4
  290. package/es/tooltip/TooltipHandler.js.map +1 -0
  291. package/{cjs/components → es}/tooltip/logic/BubbleTooltipElement.d.ts +4 -4
  292. package/es/{components/tooltip → tooltip}/logic/BubbleTooltipElement.js +4 -4
  293. package/es/tooltip/logic/BubbleTooltipElement.js.map +1 -0
  294. package/es/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -0
  295. package/es/ts-types/base-table.d.ts +12 -29
  296. package/es/ts-types/base-table.js.map +1 -1
  297. package/es/ts-types/column/style.d.ts +1 -0
  298. package/es/ts-types/column/style.js.map +1 -1
  299. package/es/ts-types/events.d.ts +83 -100
  300. package/es/ts-types/events.js.map +1 -1
  301. package/es/ts-types/list-table/layout-map/api.d.ts +0 -2
  302. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  303. package/es/ts-types/new-data-set.d.ts +5 -18
  304. package/es/ts-types/new-data-set.js +2 -2
  305. package/es/ts-types/new-data-set.js.map +1 -1
  306. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.d.ts +0 -4
  307. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js +0 -4
  308. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -1
  309. package/es/ts-types/pivot-table/corner.d.ts +3 -3
  310. package/es/ts-types/pivot-table/corner.js.map +1 -1
  311. package/es/ts-types/pivot-table/indicator/index.d.ts +0 -1
  312. package/es/ts-types/pivot-table/indicator/index.js.map +1 -1
  313. package/es/ts-types/pivot-table/title.d.ts +1 -1
  314. package/es/ts-types/pivot-table/title.js.map +1 -1
  315. package/es/ts-types/table-engine.d.ts +3 -27
  316. package/es/ts-types/table-engine.js.map +1 -1
  317. package/package.json +8 -14
  318. package/cjs/PivotChart.d.ts +0 -68
  319. package/cjs/PivotChart.js +0 -427
  320. package/cjs/PivotChart.js.map +0 -1
  321. package/cjs/components/axis/axis.d.ts +0 -45
  322. package/cjs/components/axis/axis.js +0 -146
  323. package/cjs/components/axis/axis.js.map +0 -1
  324. package/cjs/components/axis/band-scale.d.ts +0 -18
  325. package/cjs/components/axis/band-scale.js +0 -54
  326. package/cjs/components/axis/band-scale.js.map +0 -1
  327. package/cjs/components/axis/get-axis-attributes.d.ts +0 -136
  328. package/cjs/components/axis/get-axis-attributes.js +0 -169
  329. package/cjs/components/axis/get-axis-attributes.js.map +0 -1
  330. package/cjs/components/axis/label-overlap.d.ts +0 -3
  331. package/cjs/components/axis/label-overlap.js +0 -46
  332. package/cjs/components/axis/label-overlap.js.map +0 -1
  333. package/cjs/components/axis/linear-scale.d.ts +0 -45
  334. package/cjs/components/axis/linear-scale.js +0 -120
  335. package/cjs/components/axis/linear-scale.js.map +0 -1
  336. package/cjs/components/legend/get-legend-attributes.d.ts +0 -5
  337. package/cjs/components/legend/get-legend-attributes.js +0 -90
  338. package/cjs/components/legend/get-legend-attributes.js.map +0 -1
  339. package/cjs/components/legend/legend.d.ts +0 -23
  340. package/cjs/components/legend/legend.js +0 -94
  341. package/cjs/components/legend/legend.js.map +0 -1
  342. package/cjs/components/menu/dom/BaseMenu.js.map +0 -1
  343. package/cjs/components/menu/dom/Menu.js.map +0 -1
  344. package/cjs/components/menu/dom/MenuHandler.js.map +0 -1
  345. package/cjs/components/menu/dom/logic/MenuContainer.js.map +0 -1
  346. package/cjs/components/menu/dom/logic/MenuElement.js.map +0 -1
  347. package/cjs/components/menu/dom/logic/MenuElementStyle.js.map +0 -1
  348. package/cjs/components/title/title.d.ts +0 -12
  349. package/cjs/components/title/title.js +0 -66
  350. package/cjs/components/title/title.js.map +0 -1
  351. package/cjs/components/tooltip/BaseTooltip.js.map +0 -1
  352. package/cjs/components/tooltip/Tooltip.js.map +0 -1
  353. package/cjs/components/tooltip/TooltipHandler.js.map +0 -1
  354. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +0 -1
  355. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +0 -1
  356. package/cjs/components/util/orient.d.ts +0 -3
  357. package/cjs/components/util/orient.js +0 -14
  358. package/cjs/components/util/orient.js.map +0 -1
  359. package/cjs/components/util/register.d.ts +0 -3
  360. package/cjs/components/util/register.js +0 -15
  361. package/cjs/components/util/register.js.map +0 -1
  362. package/cjs/components/util/tick-data/config.d.ts +0 -1
  363. package/cjs/components/util/tick-data/config.js +0 -6
  364. package/cjs/components/util/tick-data/config.js.map +0 -1
  365. package/cjs/components/util/tick-data/continuous.d.ts +0 -2
  366. package/cjs/components/util/tick-data/continuous.js +0 -39
  367. package/cjs/components/util/tick-data/continuous.js.map +0 -1
  368. package/cjs/components/util/tick-data/discrete/linear.d.ts +0 -2
  369. package/cjs/components/util/tick-data/discrete/linear.js +0 -66
  370. package/cjs/components/util/tick-data/discrete/linear.js.map +0 -1
  371. package/cjs/components/util/tick-data/discrete/polar-angle.d.ts +0 -2
  372. package/cjs/components/util/tick-data/discrete/polar-angle.js +0 -46
  373. package/cjs/components/util/tick-data/discrete/polar-angle.js.map +0 -1
  374. package/cjs/components/util/tick-data/index.d.ts +0 -2
  375. package/cjs/components/util/tick-data/index.js +0 -17
  376. package/cjs/components/util/tick-data/index.js.map +0 -1
  377. package/cjs/components/util/tick-data/util.d.ts +0 -21
  378. package/cjs/components/util/tick-data/util.js +0 -115
  379. package/cjs/components/util/tick-data/util.js.map +0 -1
  380. package/cjs/components/util/transform.d.ts +0 -5
  381. package/cjs/components/util/transform.js +0 -45
  382. package/cjs/components/util/transform.js.map +0 -1
  383. package/cjs/dataset/statistics-helper.d.ts +0 -68
  384. package/cjs/dataset/statistics-helper.js +0 -173
  385. package/cjs/dataset/statistics-helper.js.map +0 -1
  386. package/cjs/dataset/util/zero-align.d.ts +0 -10
  387. package/cjs/dataset/util/zero-align.js +0 -119
  388. package/cjs/dataset/util/zero-align.js.map +0 -1
  389. package/cjs/event/VChartEventProxy.d.ts +0 -1
  390. package/cjs/event/VChartEventProxy.js +0 -1
  391. package/cjs/event/VChartEventProxy.js.map +0 -1
  392. package/cjs/event/pivot-chart/axis-click.d.ts +0 -2
  393. package/cjs/event/pivot-chart/axis-click.js +0 -42
  394. package/cjs/event/pivot-chart/axis-click.js.map +0 -1
  395. package/cjs/layout/pivot-chart/get-axis-config.d.ts +0 -2
  396. package/cjs/layout/pivot-chart/get-axis-config.js +0 -118
  397. package/cjs/layout/pivot-chart/get-axis-config.js.map +0 -1
  398. package/cjs/layout/pivot-chart/get-chart-spec.d.ts +0 -4
  399. package/cjs/layout/pivot-chart/get-chart-spec.js +0 -118
  400. package/cjs/layout/pivot-chart/get-chart-spec.js.map +0 -1
  401. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.d.ts +0 -3
  402. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +0 -71
  403. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +0 -1
  404. package/cjs/ts-types/component/axis.d.ts +0 -12
  405. package/cjs/ts-types/component/axis.js +0 -6
  406. package/cjs/ts-types/component/axis.js.map +0 -1
  407. package/cjs/ts-types/component/legend.d.ts +0 -5
  408. package/cjs/ts-types/component/legend.js +0 -6
  409. package/cjs/ts-types/component/legend.js.map +0 -1
  410. package/cjs/ts-types/component/title.d.ts +0 -47
  411. package/cjs/ts-types/component/title.js +0 -6
  412. package/cjs/ts-types/component/title.js.map +0 -1
  413. package/cjs/ts-types/component/util.d.ts +0 -1
  414. package/cjs/ts-types/component/util.js +0 -6
  415. package/cjs/ts-types/component/util.js.map +0 -1
  416. package/es/PivotChart.d.ts +0 -68
  417. package/es/PivotChart.js +0 -437
  418. package/es/PivotChart.js.map +0 -1
  419. package/es/components/axis/axis.d.ts +0 -45
  420. package/es/components/axis/axis.js +0 -155
  421. package/es/components/axis/axis.js.map +0 -1
  422. package/es/components/axis/band-scale.d.ts +0 -18
  423. package/es/components/axis/band-scale.js +0 -46
  424. package/es/components/axis/band-scale.js.map +0 -1
  425. package/es/components/axis/get-axis-attributes.d.ts +0 -136
  426. package/es/components/axis/get-axis-attributes.js +0 -166
  427. package/es/components/axis/get-axis-attributes.js.map +0 -1
  428. package/es/components/axis/label-overlap.d.ts +0 -3
  429. package/es/components/axis/label-overlap.js +0 -39
  430. package/es/components/axis/label-overlap.js.map +0 -1
  431. package/es/components/axis/linear-scale.d.ts +0 -45
  432. package/es/components/axis/linear-scale.js +0 -104
  433. package/es/components/axis/linear-scale.js.map +0 -1
  434. package/es/components/legend/get-legend-attributes.d.ts +0 -5
  435. package/es/components/legend/get-legend-attributes.js +0 -84
  436. package/es/components/legend/get-legend-attributes.js.map +0 -1
  437. package/es/components/legend/legend.d.ts +0 -23
  438. package/es/components/legend/legend.js +0 -93
  439. package/es/components/legend/legend.js.map +0 -1
  440. package/es/components/menu/dom/BaseMenu.js.map +0 -1
  441. package/es/components/menu/dom/Menu.js.map +0 -1
  442. package/es/components/menu/dom/MenuHandler.js.map +0 -1
  443. package/es/components/menu/dom/logic/MenuContainer.js.map +0 -1
  444. package/es/components/menu/dom/logic/MenuElement.js.map +0 -1
  445. package/es/components/menu/dom/logic/MenuElementStyle.js.map +0 -1
  446. package/es/components/title/title.d.ts +0 -12
  447. package/es/components/title/title.js +0 -61
  448. package/es/components/title/title.js.map +0 -1
  449. package/es/components/tooltip/BaseTooltip.js.map +0 -1
  450. package/es/components/tooltip/Tooltip.js.map +0 -1
  451. package/es/components/tooltip/TooltipHandler.js.map +0 -1
  452. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +0 -1
  453. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +0 -1
  454. package/es/components/util/orient.d.ts +0 -3
  455. package/es/components/util/orient.js +0 -8
  456. package/es/components/util/orient.js.map +0 -1
  457. package/es/components/util/register.d.ts +0 -3
  458. package/es/components/util/register.js +0 -8
  459. package/es/components/util/register.js.map +0 -1
  460. package/es/components/util/tick-data/config.d.ts +0 -1
  461. package/es/components/util/tick-data/config.js +0 -2
  462. package/es/components/util/tick-data/config.js.map +0 -1
  463. package/es/components/util/tick-data/continuous.d.ts +0 -2
  464. package/es/components/util/tick-data/continuous.js +0 -38
  465. package/es/components/util/tick-data/continuous.js.map +0 -1
  466. package/es/components/util/tick-data/discrete/linear.d.ts +0 -2
  467. package/es/components/util/tick-data/discrete/linear.js +0 -59
  468. package/es/components/util/tick-data/discrete/linear.js.map +0 -1
  469. package/es/components/util/tick-data/discrete/polar-angle.d.ts +0 -2
  470. package/es/components/util/tick-data/discrete/polar-angle.js +0 -39
  471. package/es/components/util/tick-data/discrete/polar-angle.js.map +0 -1
  472. package/es/components/util/tick-data/index.d.ts +0 -2
  473. package/es/components/util/tick-data/index.js +0 -19
  474. package/es/components/util/tick-data/index.js.map +0 -1
  475. package/es/components/util/tick-data/util.d.ts +0 -21
  476. package/es/components/util/tick-data/util.js +0 -104
  477. package/es/components/util/tick-data/util.js.map +0 -1
  478. package/es/components/util/transform.d.ts +0 -5
  479. package/es/components/util/transform.js +0 -34
  480. package/es/components/util/transform.js.map +0 -1
  481. package/es/dataset/statistics-helper.d.ts +0 -68
  482. package/es/dataset/statistics-helper.js +0 -152
  483. package/es/dataset/statistics-helper.js.map +0 -1
  484. package/es/dataset/util/zero-align.d.ts +0 -10
  485. package/es/dataset/util/zero-align.js +0 -111
  486. package/es/dataset/util/zero-align.js.map +0 -1
  487. package/es/event/VChartEventProxy.d.ts +0 -1
  488. package/es/event/VChartEventProxy.js +0 -1
  489. package/es/event/VChartEventProxy.js.map +0 -1
  490. package/es/event/pivot-chart/axis-click.d.ts +0 -2
  491. package/es/event/pivot-chart/axis-click.js +0 -36
  492. package/es/event/pivot-chart/axis-click.js.map +0 -1
  493. package/es/layout/pivot-chart/get-axis-config.d.ts +0 -2
  494. package/es/layout/pivot-chart/get-axis-config.js +0 -110
  495. package/es/layout/pivot-chart/get-axis-config.js.map +0 -1
  496. package/es/layout/pivot-chart/get-chart-spec.d.ts +0 -4
  497. package/es/layout/pivot-chart/get-chart-spec.js +0 -109
  498. package/es/layout/pivot-chart/get-chart-spec.js.map +0 -1
  499. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.d.ts +0 -3
  500. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +0 -65
  501. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +0 -1
  502. package/es/ts-types/component/axis.d.ts +0 -12
  503. package/es/ts-types/component/axis.js +0 -2
  504. package/es/ts-types/component/axis.js.map +0 -1
  505. package/es/ts-types/component/legend.d.ts +0 -5
  506. package/es/ts-types/component/legend.js +0 -2
  507. package/es/ts-types/component/legend.js.map +0 -1
  508. package/es/ts-types/component/title.d.ts +0 -47
  509. package/es/ts-types/component/title.js +0 -2
  510. package/es/ts-types/component/title.js.map +0 -1
  511. package/es/ts-types/component/util.d.ts +0 -1
  512. package/es/ts-types/component/util.js +0 -2
  513. package/es/ts-types/component/util.js.map +0 -1
  514. /package/cjs/{components/menu → menu}/dom/BaseMenu.js +0 -0
  515. /package/cjs/{components/menu → menu}/dom/Menu.d.ts +0 -0
  516. /package/cjs/{components/menu → menu}/dom/Menu.js +0 -0
  517. /package/cjs/{components/menu → menu}/dom/logic/MenuElementStyle.d.ts +0 -0
  518. /package/cjs/{components/menu → menu}/dom/logic/MenuElementStyle.js +0 -0
  519. /package/cjs/{components/tooltip → tooltip}/BaseTooltip.js +0 -0
  520. /package/cjs/{components/tooltip → tooltip}/Tooltip.d.ts +0 -0
  521. /package/cjs/{components/tooltip → tooltip}/Tooltip.js +0 -0
  522. /package/cjs/{components/tooltip → tooltip}/logic/BubbleTooltipElementStyle.d.ts +0 -0
  523. /package/cjs/{components/tooltip → tooltip}/logic/BubbleTooltipElementStyle.js +0 -0
  524. /package/es/{components/menu → menu}/dom/BaseMenu.js +0 -0
  525. /package/es/{components/menu → menu}/dom/Menu.d.ts +0 -0
  526. /package/es/{components/menu → menu}/dom/Menu.js +0 -0
  527. /package/es/{components/menu → menu}/dom/logic/MenuElementStyle.d.ts +0 -0
  528. /package/es/{components/menu → menu}/dom/logic/MenuElementStyle.js +0 -0
  529. /package/es/{components/tooltip → tooltip}/BaseTooltip.js +0 -0
  530. /package/es/{components/tooltip → tooltip}/Tooltip.d.ts +0 -0
  531. /package/es/{components/tooltip → tooltip}/Tooltip.js +0 -0
  532. /package/es/{components/tooltip → tooltip}/logic/BubbleTooltipElementStyle.d.ts +0 -0
  533. /package/es/{components/tooltip → tooltip}/logic/BubbleTooltipElementStyle.js +0 -0
@@ -1,45 +0,0 @@
1
- import { LinearScale } from '@visactor/vscale';
2
- type IRange = {
3
- max?: number;
4
- min?: number;
5
- };
6
- export declare class LinearAxisScale {
7
- protected _extend: {
8
- [key: string]: number;
9
- };
10
- _scale: LinearScale;
11
- _scales: LinearScale[];
12
- nice: boolean;
13
- zero: boolean;
14
- domain: Required<IRange>;
15
- expand?: IRange;
16
- forceTickCount?: number;
17
- tickCount?: number;
18
- niceType?: 'tickCountFirst' | 'accurateFirst';
19
- constructor();
20
- setExtraAttrFromSpec(nice: boolean, zero: boolean, range: Required<IRange>, expand?: IRange): void;
21
- transformScaleDomain(): void;
22
- setScaleNice(): void;
23
- dataToPosition(values: any[]): number;
24
- valueToPosition(value: any): number;
25
- computeLinearDomain(data: {
26
- min: number;
27
- max: number;
28
- }[]): number[];
29
- protected expandDomain(domain: number[]): void;
30
- protected niceDomain(domain: number[]): number[];
31
- protected niceMinMax(): void;
32
- protected includeZero(domain: number[]): void;
33
- setExtendDomain(key: string, value: number | undefined): void;
34
- protected extendDomain(domain: number[]): void;
35
- protected setDomainMinMax(domain: number[]): void;
36
- setZero(zero: boolean): void;
37
- updateScaleDomain(): void;
38
- computeDomain(data: {
39
- min: number;
40
- max: number;
41
- }[]): number[];
42
- protected updateScaleDomainByModel(domain?: number[]): void;
43
- updateRange(newRange: [number, number]): void;
44
- }
45
- export {};
@@ -1,104 +0,0 @@
1
- import { LinearScale } from "@visactor/vscale";
2
-
3
- import { isNil, isValid, maxInArray, minInArray } from "@visactor/vutils";
4
-
5
- const e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);
6
-
7
- export class LinearAxisScale {
8
- constructor() {
9
- this._extend = {}, this._scale = new LinearScale, this._scales = [ this._scale ];
10
- }
11
- setExtraAttrFromSpec(nice, zero, range, expand) {
12
- this.nice = nice, this.zero = zero, this.domain = range, this.expand = expand;
13
- }
14
- transformScaleDomain() {
15
- this.setScaleNice();
16
- }
17
- setScaleNice() {
18
- var _a, _b, _c, _d, _e, _f, _g, _h;
19
- let tickCount = null !== (_b = null !== (_a = this.forceTickCount) && void 0 !== _a ? _a : this.tickCount) && void 0 !== _b ? _b : 10;
20
- "accurateFirst" === this.niceType && (tickCount = Math.max(10, tickCount)), isNil(null === (_c = this.domain) || void 0 === _c ? void 0 : _c.min) && isNil(null === (_d = this.domain) || void 0 === _d ? void 0 : _d.max) ? this.nice && this._scale.nice(tickCount) : isValid(null === (_e = this.domain) || void 0 === _e ? void 0 : _e.min) && isNil(null === (_f = this.domain) || void 0 === _f ? void 0 : _f.max) ? this.nice && this._scale.niceMax(tickCount) : isNil(null === (_g = this.domain) || void 0 === _g ? void 0 : _g.min) && isValid(null === (_h = this.domain) || void 0 === _h ? void 0 : _h.max) && this.nice && this._scale.niceMin(tickCount);
21
- }
22
- dataToPosition(values) {
23
- return this.valueToPosition(values[0]);
24
- }
25
- valueToPosition(value) {
26
- return this._scale.scale(value);
27
- }
28
- computeLinearDomain(data) {
29
- const domain = [];
30
- return data.forEach((d => {
31
- const {min: min, max: max} = d;
32
- domain[0] = void 0 === domain[0] ? min : Math.min(domain[0], min), domain[1] = void 0 === domain[1] ? max : Math.max(domain[1], max);
33
- })), this.expandDomain(domain), this.includeZero(domain), this.setDomainMinMax(domain),
34
- domain;
35
- }
36
- expandDomain(domain) {
37
- if (!this.expand) return;
38
- const domainMin = domain[0], domainMax = domain[domain.length - 1];
39
- isValid(this.expand.min) && (domain[0] = domainMin - (domainMax - domainMin) * this.expand.min),
40
- isValid(this.expand.max) && (domain[domain.length - 1] = domainMax + (domainMax - domainMin) * this.expand.max);
41
- }
42
- niceDomain(domain) {
43
- if (Math.abs(minInArray(domain) - maxInArray(domain)) <= 1e-12) {
44
- let num = domain[0];
45
- const flag = num >= 0 ? 1 : -1;
46
- if (num = Math.abs(num), num < 1) domain[0] = 0, domain[1] = 1; else {
47
- let step = num / 5;
48
- const power = Math.floor(Math.log(step) / Math.LN10), err = step / Math.pow(10, power);
49
- step = (err >= e10 ? 10 : err >= e5 ? 5 : err >= e2 ? 2 : 1) * Math.pow(10, power),
50
- domain[0] = 0, domain[1] = 10 * step;
51
- }
52
- flag < 0 && (domain.reverse(), domain[0] *= -1, domain[1] *= -1);
53
- }
54
- return domain;
55
- }
56
- niceMinMax() {
57
- var _a, _b, _c, _d, _e, _f, _g, _h;
58
- if (this.nice) {
59
- let tickCount = null !== (_b = null !== (_a = this.forceTickCount) && void 0 !== _a ? _a : this.tickCount) && void 0 !== _b ? _b : 10;
60
- "accurateFirst" === this.niceType && (tickCount = Math.max(10, tickCount)), isNil(null === (_c = this.domain) || void 0 === _c ? void 0 : _c.min) && isNil(null === (_d = this.domain) || void 0 === _d ? void 0 : _d.max) ? this._scale.nice(tickCount) : isValid(null === (_e = this.domain) || void 0 === _e ? void 0 : _e.min) && isNil(null === (_f = this.domain) || void 0 === _f ? void 0 : _f.max) ? this._scale.niceMax(tickCount) : isNil(null === (_g = this.domain) || void 0 === _g ? void 0 : _g.min) && isValid(null === (_h = this.domain) || void 0 === _h ? void 0 : _h.max) && this._scale.niceMin(tickCount);
61
- }
62
- }
63
- includeZero(domain) {
64
- this.zero && (domain[0] = Math.min(domain[0], 0), domain[domain.length - 1] = Math.max(domain[domain.length - 1], 0));
65
- }
66
- setExtendDomain(key, value) {
67
- if (void 0 === value) return void delete this._extend[key];
68
- this._extend[key] = value;
69
- const domain = this._scale.domain();
70
- this.extendDomain(domain), this.includeZero(domain), this.setDomainMinMax(domain),
71
- this.niceDomain(domain), this._scale.domain(domain, this.nice), this.niceMinMax();
72
- }
73
- extendDomain(domain) {
74
- let temp;
75
- const domainLast = domain.length - 1, reverse = domain[0] - domain[domainLast] > 0, min = reverse ? domainLast : 0, max = reverse ? 0 : domainLast;
76
- for (const key in this._extend) temp = this._extend[key], temp > domain[max] && (domain[max] = temp),
77
- temp < domain[min] && (domain[min] = temp);
78
- }
79
- setDomainMinMax(domain) {
80
- if (!this.domain) return;
81
- const {min: min, max: max} = this.domain;
82
- isValid(min) && (domain[0] = min), isValid(max) && (domain[1] = max);
83
- }
84
- setZero(zero) {
85
- this.zero !== zero && (this.zero = zero, this.updateScaleDomain());
86
- }
87
- updateScaleDomain() {
88
- const domain = this.computeDomain([ this.domain ]);
89
- this.updateScaleDomainByModel(domain);
90
- }
91
- computeDomain(data) {
92
- return this.computeLinearDomain(data);
93
- }
94
- updateScaleDomainByModel(domain) {
95
- domain = null != domain ? domain : this._scale.domain(), this.extendDomain(domain),
96
- this.includeZero(domain), this.setDomainMinMax(domain), this.niceDomain(domain),
97
- this._scale.domain(domain, this.nice), this.niceMinMax();
98
- }
99
- updateRange(newRange) {
100
- const [start, end] = this._scale.range();
101
- newRange[0] === start && newRange[1] === end || this._scale.range(newRange);
102
- }
103
- }
104
- //# sourceMappingURL=linear-scale.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["components/axis/linear-scale.ts"],"names":[],"mappings":"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","file":"linear-scale.js","sourcesContent":["import { LinearScale } from '@visactor/vscale';\nimport { isNil, isValid, maxInArray, minInArray } from '@visactor/vutils';\n\nconst e10 = Math.sqrt(50);\nconst e5 = Math.sqrt(10);\nconst e2 = Math.sqrt(2);\n\ntype IRange = { max?: number; min?: number };\nexport class LinearAxisScale {\n protected _extend: { [key: string]: number } = {};\n _scale: LinearScale;\n _scales: LinearScale[];\n nice: boolean;\n zero: boolean;\n domain: Required<IRange>;\n expand?: IRange;\n forceTickCount?: number;\n tickCount?: number;\n niceType?: 'tickCountFirst' | 'accurateFirst';\n\n constructor() {\n this._scale = new LinearScale();\n this._scales = [this._scale];\n }\n\n setExtraAttrFromSpec(nice: boolean, zero: boolean, range: Required<IRange>, expand?: IRange) {\n this.nice = nice;\n this.zero = zero;\n this.domain = range;\n this.expand = expand;\n }\n\n transformScaleDomain() {\n this.setScaleNice();\n }\n setScaleNice() {\n let tickCount = this.forceTickCount ?? this.tickCount ?? 10;\n // 如果配置了精度优先,那么最低是10\n // 否则就直接使用tickCount即可\n if (this.niceType === 'accurateFirst') {\n tickCount = Math.max(10, tickCount);\n }\n\n if (isNil(this.domain?.min) && isNil(this.domain?.max)) {\n this.nice && this._scale.nice(tickCount);\n } else if (isValid(this.domain?.min) && isNil(this.domain?.max)) {\n this.nice && this._scale.niceMax(tickCount);\n } else if (isNil(this.domain?.min) && isValid(this.domain?.max)) {\n this.nice && this._scale.niceMin(tickCount);\n }\n }\n dataToPosition(values: any[]): number {\n return this.valueToPosition(values[0]);\n }\n\n valueToPosition(value: any): number {\n return this._scale.scale(value);\n }\n\n computeLinearDomain(data: { min: number; max: number }[]): number[] {\n const domain: number[] = [];\n data.forEach(d => {\n const { min, max } = d;\n domain[0] = domain[0] === undefined ? min : Math.min(domain[0] as number, min as number);\n domain[1] = domain[1] === undefined ? max : Math.max(domain[1] as number, max as number);\n });\n this.expandDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n return domain;\n }\n\n protected expandDomain(domain: number[]): void {\n if (!this.expand) {\n return;\n }\n const domainMin = domain[0];\n const domainMax = domain[domain.length - 1];\n if (isValid(this.expand.min)) {\n domain[0] = domainMin - (domainMax - domainMin) * this.expand.min;\n }\n if (isValid(this.expand.max)) {\n domain[domain.length - 1] = domainMax + (domainMax - domainMin) * this.expand.max;\n }\n }\n\n protected niceDomain(domain: number[]) {\n if (Math.abs(minInArray(domain) - maxInArray(domain)) <= 1e-12) {\n let num = domain[0];\n const flag = num >= 0 ? 1 : -1;\n num = Math.abs(num);\n if (num < 1) {\n domain[0] = 0;\n domain[1] = 1; // 在[0, 1) 区间变成[0, 1]\n } else {\n let step = num / 5; // 默认5个ticks\n const power = Math.floor(Math.log(step) / Math.LN10);\n const err = step / Math.pow(10, power);\n step = (err >= e10 ? 10 : err >= e5 ? 5 : err >= e2 ? 2 : 1) * Math.pow(10, power);\n\n domain[0] = 0;\n domain[1] = step * 10;\n }\n if (flag < 0) {\n domain.reverse();\n domain[0] *= -1;\n domain[1] *= -1;\n }\n }\n return domain;\n }\n\n protected niceMinMax() {\n if (this.nice) {\n let tickCount = this.forceTickCount ?? this.tickCount ?? 10;\n // 如果配置了精度优先,那么最低是10\n // 否则就直接使用tickCount即可\n if (this.niceType === 'accurateFirst') {\n tickCount = Math.max(10, tickCount);\n }\n if (isNil(this.domain?.min) && isNil(this.domain?.max)) {\n this._scale.nice(tickCount);\n } else if (isValid(this.domain?.min) && isNil(this.domain?.max)) {\n this._scale.niceMax(tickCount);\n } else if (isNil(this.domain?.min) && isValid(this.domain?.max)) {\n this._scale.niceMin(tickCount);\n }\n }\n }\n\n protected includeZero(domain: number[]): void {\n if (this.zero) {\n domain[0] = Math.min(domain[0], 0);\n domain[domain.length - 1] = Math.max(domain[domain.length - 1], 0);\n }\n }\n\n // 用户其他模块扩充轴scale的区间\n setExtendDomain(key: string, value: number | undefined) {\n if (value === undefined) {\n delete this._extend[key];\n return;\n }\n this._extend[key] = value;\n const domain = this._scale.domain();\n this.extendDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n this.niceDomain(domain);\n this._scale.domain(domain, this.nice);\n this.niceMinMax();\n\n // this.event.emit(ChartEvent.scaleUpdate, { model: this as any });\n }\n\n protected extendDomain(domain: number[]) {\n let temp;\n const domainLast = domain.length - 1;\n const reverse = domain[0] - domain[domainLast] > 0;\n const min = reverse ? domainLast : 0;\n const max = reverse ? 0 : domainLast;\n for (const key in this._extend) {\n temp = this._extend[key];\n temp > domain[max] && (domain[max] = temp);\n temp < domain[min] && (domain[min] = temp);\n }\n }\n\n protected setDomainMinMax(domain: number[]): void {\n if (!this.domain) {\n return;\n }\n const { min, max } = this.domain;\n isValid(min) && (domain[0] = min);\n isValid(max) && (domain[1] = max);\n }\n\n setZero(zero: boolean) {\n if (this.zero !== zero) {\n this.zero = zero;\n this.updateScaleDomain();\n }\n }\n /**\n * @override\n * TODO event.emit是否可以考虑用decorator\n */\n updateScaleDomain() {\n const domain: number[] = this.computeDomain([this.domain]) as number[];\n this.updateScaleDomainByModel(domain);\n }\n\n computeDomain(data: { min: number; max: number }[]): number[] {\n return this.computeLinearDomain(data);\n }\n\n /**\n * TODO event.emit是否可以考虑用decorator\n * 数据逻辑外,模块的设置更新对scale-domain的修改操作\n */\n protected updateScaleDomainByModel(domain?: number[]) {\n domain = domain ?? this._scale.domain();\n // 其他模块的设置 domain\n this.extendDomain(domain);\n this.includeZero(domain);\n // 用户 spec 的 min-max\n this.setDomainMinMax(domain);\n // nice 优先级最高\n this.niceDomain(domain);\n this._scale.domain(domain, this.nice);\n // 设置scale的nice-min-max\n this.niceMinMax();\n\n // this.event.emit(ChartEvent.scaleUpdate, { model: this as any });\n }\n\n updateRange(newRange: [number, number]) {\n const [start, end] = this._scale.range();\n if (newRange[0] !== start || newRange[1] !== end) {\n this._scale.range(newRange);\n }\n }\n}\n"]}
@@ -1,5 +0,0 @@
1
- import type { ITableLegendOption } from '../../ts-types/component/legend';
2
- export declare function getLegendAttributes(spec: ITableLegendOption, rect: {
3
- width: number;
4
- height: number;
5
- }): any;
@@ -1,84 +0,0 @@
1
- var __rest = this && this.__rest || function(s, e) {
2
- var t = {};
3
- for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
4
- if (null != s && "function" == typeof Object.getOwnPropertySymbols) {
5
- var i = 0;
6
- for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
7
- }
8
- return t;
9
- };
10
-
11
- import { isEmpty, isValid, merge } from "@visactor/vutils";
12
-
13
- import { isPercent } from "../../tools/calc";
14
-
15
- import { transformComponentStyle, transformLegendTitleAttributes, transformToGraphic } from "../util/transform";
16
-
17
- const defaultLegendSpec = {
18
- orient: "bottom",
19
- position: "middle",
20
- padding: 30,
21
- title: {
22
- visible: !1,
23
- padding: 0,
24
- textStyle: {
25
- fontSize: 14,
26
- fill: "#000000",
27
- fontWeight: "normal"
28
- },
29
- space: 12
30
- },
31
- item: {
32
- visible: !0,
33
- spaceCol: 10,
34
- spaceRow: 10,
35
- padding: 2,
36
- background: {
37
- state: {
38
- selectedHover: {
39
- fill: "gray",
40
- fillOpacity: .7
41
- },
42
- unSelectedHover: {
43
- fill: "gray",
44
- fillOpacity: .2
45
- }
46
- }
47
- },
48
- shape: {
49
- space: 4,
50
- state: {
51
- unSelected: {
52
- fillOpacity: .5
53
- }
54
- }
55
- },
56
- label: {
57
- space: 4,
58
- style: {
59
- fill: "#89909D",
60
- fontSize: 14
61
- },
62
- state: {
63
- unSelected: {
64
- fillOpacity: .5
65
- }
66
- }
67
- }
68
- },
69
- allowAllCanceled: !1,
70
- visible: !0
71
- };
72
-
73
- export function getLegendAttributes(spec, rect) {
74
- const _a = merge({}, defaultLegendSpec, spec), {title: title = {}, item: item = {}, pager: pager = {}, background: background = {}, type: type, id: id, visible: visible, orient: orient, position: position, data: data, filter: filter, regionId: regionId, regionIndex: regionIndex, seriesIndex: seriesIndex, seriesId: seriesId, padding: padding} = _a, attrs = __rest(_a, [ "title", "item", "pager", "background", "type", "id", "visible", "orient", "position", "data", "filter", "regionId", "regionIndex", "seriesIndex", "seriesId", "padding" ]);
75
- return title.visible && (attrs.title = transformLegendTitleAttributes(title)), isEmpty(item.focusIconStyle) || transformToGraphic(item.focusIconStyle),
76
- transformComponentStyle(item.shape), transformComponentStyle(item.label), transformComponentStyle(item.value),
77
- transformComponentStyle(item.background), isPercent(item.maxWidth) && (item.maxWidth = Number(item.maxWidth.substring(0, item.maxWidth.length - 1)) * rect.width / 100),
78
- isPercent(item.width) && (item.width = Number(item.width.substring(0, item.width.length - 1)) * rect.width / 100),
79
- isPercent(item.height) && (item.height = Number(item.height.substring(0, item.height.length - 1)) * rect.width / 100),
80
- attrs.item = item, isEmpty(pager.textStyle) || transformToGraphic(pager.textStyle),
81
- transformComponentStyle(pager.handler), attrs.pager = pager, background.visible && !isEmpty(background.style) && (merge(attrs, background.style),
82
- isValid(background.padding) && (attrs.padding = background.padding)), attrs;
83
- }
84
- //# sourceMappingURL=get-legend-attributes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["components/legend/get-legend-attributes.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEhH,MAAM,iBAAiB,GAAG;IACxB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,CAAC;QACV,SAAS,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,QAAQ;SACrB;QACD,KAAK,EAAE,EAAE;KACV;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,CAAC;QACV,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,aAAa,EAAE;oBACb,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,GAAG;iBACjB;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,GAAG;iBACjB;aACF;SACF;QACD,KAAK,EAAE;YACL,KAAK,EAAE,CAAC;YACR,KAAK,EAAE;gBACL,UAAU,EAAE;oBACV,WAAW,EAAE,GAAG;iBACjB;aACF;SACF;QACD,KAAK,EAAE;YACL,KAAK,EAAE,CAAC;YACR,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,EAAE;aACb;YACD,KAAK,EAAE;gBACL,UAAU,EAAE;oBACV,WAAW,EAAE,GAAG;iBACjB;aACF;SACF;KACF;IACD,gBAAgB,EAAE,KAAK;IACvB,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,IAAwB,EAAE,IAAuC;IACnG,MAAM,KAsBF,KAAK,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAtBhC,EAEJ,KAAK,GAAG,EAAE,EACV,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,EAAE,EACV,UAAU,GAAG,EAAE,EAGf,IAAI,EACJ,EAAE,EACF,OAAO,EACP,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,WAAW,EACX,QAAQ,EACR,OAAO,OAG6B,EADjC,QAAQ,cArBP,0KAsBL,CAAqC,CAAC;IAEvC,MAAM,KAAK,GAAQ,QAAQ,CAAC;IAG5B,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,KAAK,CAAC,KAAK,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;KACrD;IAGD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;QACjC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACzC;IACD,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC5B,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KACnG;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACzB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KAC1F;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAC1B,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KAC7F;IACD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAGlB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QAC7B,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;KACrC;IACD,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAEpB,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACpD,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC/B,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;SACpC;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC","file":"get-legend-attributes.js","sourcesContent":["import { isEmpty, isValid, merge } from '@visactor/vutils';\nimport type { ITableLegendOption } from '../../ts-types/component/legend';\nimport { isPercent } from '../../tools/calc';\nimport { transformComponentStyle, transformLegendTitleAttributes, transformToGraphic } from '../util/transform';\n\nconst defaultLegendSpec = {\n orient: 'bottom',\n position: 'middle',\n padding: 30,\n title: {\n visible: false,\n padding: 0,\n textStyle: {\n fontSize: 14,\n fill: '#000000',\n fontWeight: 'normal'\n },\n space: 12\n },\n item: {\n visible: true,\n spaceCol: 10,\n spaceRow: 10,\n padding: 2,\n background: {\n state: {\n selectedHover: {\n fill: 'gray',\n fillOpacity: 0.7\n },\n unSelectedHover: {\n fill: 'gray',\n fillOpacity: 0.2\n }\n }\n },\n shape: {\n space: 4,\n state: {\n unSelected: {\n fillOpacity: 0.5\n }\n }\n },\n label: {\n space: 4,\n style: {\n fill: '#89909D',\n fontSize: 14\n },\n state: {\n unSelected: {\n fillOpacity: 0.5\n }\n }\n }\n },\n allowAllCanceled: false,\n visible: true\n};\n\nexport function getLegendAttributes(spec: ITableLegendOption, rect: { width: number; height: number }) {\n const {\n // 需要进行样式转换的属性\n title = {},\n item = {},\n pager = {},\n background = {},\n\n // 以下不属于 legend 需要的属性,单独拿出来以免污染传递给组件的属性\n type,\n id,\n visible,\n orient,\n position,\n data,\n filter,\n regionId,\n regionIndex,\n seriesIndex,\n seriesId,\n padding, // vchart 布局模块已经处理了\n\n ...restSpec\n } = merge({}, defaultLegendSpec, spec);\n\n const attrs: any = restSpec;\n\n // transform title\n if (title.visible) {\n attrs.title = transformLegendTitleAttributes(title);\n }\n\n // transform item\n if (!isEmpty(item.focusIconStyle)) {\n transformToGraphic(item.focusIconStyle);\n }\n transformComponentStyle(item.shape);\n transformComponentStyle(item.label);\n transformComponentStyle(item.value);\n transformComponentStyle(item.background);\n\n if (isPercent(item.maxWidth)) {\n item.maxWidth = (Number(item.maxWidth.substring(0, item.maxWidth.length - 1)) * rect.width) / 100;\n }\n if (isPercent(item.width)) {\n item.width = (Number(item.width.substring(0, item.width.length - 1)) * rect.width) / 100;\n }\n if (isPercent(item.height)) {\n item.height = (Number(item.height.substring(0, item.height.length - 1)) * rect.width) / 100;\n }\n attrs.item = item;\n\n // transform pager\n if (!isEmpty(pager.textStyle)) {\n transformToGraphic(pager.textStyle);\n }\n transformComponentStyle(pager.handler);\n attrs.pager = pager;\n\n if (background.visible && !isEmpty(background.style)) {\n merge(attrs, background.style);\n if (isValid(background.padding)) {\n attrs.padding = background.padding;\n }\n }\n\n return attrs;\n}\n"]}
@@ -1,23 +0,0 @@
1
- import type { ITableLegendOption } from '../../ts-types/component/legend';
2
- import type { BaseTableAPI } from '../../ts-types/base-table';
3
- import { DiscreteLegend } from '@visactor/vrender-components';
4
- import type { IOrientType } from '../../ts-types/component/util';
5
- export declare class TableLegend {
6
- table: BaseTableAPI;
7
- option: ITableLegendOption;
8
- orient: IOrientType;
9
- visible: boolean;
10
- position: 'start' | 'middle' | 'end';
11
- selectedData: (string | number)[];
12
- legendComponent: DiscreteLegend;
13
- constructor(option: ITableLegendOption, table: BaseTableAPI);
14
- createComponent(): void;
15
- getLegendAttributes(rect: any): any;
16
- getLegendItems(): import("@visactor/vrender-components").LegendItemDatum[];
17
- initEvent(): void;
18
- getLegendBounds(): {
19
- width: number;
20
- height: number;
21
- };
22
- dispose(): void;
23
- }
@@ -1,93 +0,0 @@
1
- import { cloneDeep, get, merge } from "@visactor/vutils";
2
-
3
- import { DiscreteLegend, LegendEvent } from "@visactor/vrender-components";
4
-
5
- import { getLegendAttributes } from "./get-legend-attributes";
6
-
7
- import { TABLE_EVENT_TYPE } from "../../core/TABLE_EVENT_TYPE";
8
-
9
- import { getQuadProps } from "../../scenegraph/utils/padding";
10
-
11
- export class TableLegend {
12
- constructor(option, table) {
13
- var _a, _b, _c, _d;
14
- this.table = table, this.option = cloneDeep(option), this.orient = null !== (_a = option.orient) && void 0 !== _a ? _a : "left",
15
- this.visible = null === (_b = option.visible) || void 0 === _b || _b, this.position = null !== (_c = option.position) && void 0 !== _c ? _c : "middle",
16
- this.selectedData = null !== (_d = option.defaultSelected) && void 0 !== _d ? _d : [],
17
- this.createComponent(), this.initEvent();
18
- }
19
- createComponent() {
20
- var _a, _b;
21
- const attrs = this.getLegendAttributes({
22
- width: this.table.tableNoFrameWidth,
23
- height: this.table.tableNoFrameHeight
24
- }), legend = new DiscreteLegend(merge({}, attrs, {
25
- defaultSelected: this.selectedData
26
- }));
27
- legend.name = "legend", this.legendComponent = legend, this.table.scenegraph.stage.defaultLayer.appendChild(legend);
28
- let width = isFinite(this.legendComponent.AABBBounds.width()) ? this.legendComponent.AABBBounds.width() : 0, height = isFinite(this.legendComponent.AABBBounds.height()) ? this.legendComponent.AABBBounds.height() : 0;
29
- const rectWidth = this.table.tableNoFrameWidth, rectHeight = this.table.tableNoFrameHeight, padding = getQuadProps(null !== (_b = null !== (_a = attrs.padding) && void 0 !== _a ? _a : this.option.padding) && void 0 !== _b ? _b : 10);
30
- let x = 0, y = 0;
31
- "left" === this.orient ? (x = padding[3], y = 0, width += padding[1] + padding[3]) : "top" === this.orient ? (x = 0,
32
- y = padding[0], height += padding[0] + padding[2]) : "right" === this.orient ? (x = rectWidth - width - padding[1],
33
- y = 0, width += padding[1] + padding[3]) : "bottom" === this.orient && (x = 0, y = rectHeight - height - padding[2],
34
- height += padding[0] + padding[2]);
35
- const layout = "bottom" === this.orient || "top" === this.orient ? "horizontal" : "vertical", position = this.position;
36
- let offsetX = 0, offsetY = 0;
37
- "horizontal" === layout ? offsetX = "middle" === position ? (rectWidth - width) / 2 : "end" === position ? rectWidth - width - padding[1] : padding[3] : offsetY = "middle" === position ? (rectHeight - height) / 2 : "end" === position ? rectHeight - height - padding[2] : padding[0],
38
- this.legendComponent.setAttributes({
39
- dx: offsetX,
40
- dy: offsetY,
41
- x: x,
42
- y: y
43
- }), "left" === this.orient ? (this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width),
44
- this.table.tableX = Math.ceil(width)) : "top" === this.orient ? (this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height),
45
- this.table.tableY = Math.ceil(height)) : "right" === this.orient ? this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width) : "bottom" === this.orient && (this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height));
46
- }
47
- getLegendAttributes(rect) {
48
- const layout = "bottom" === this.orient || "top" === this.orient ? "horizontal" : "vertical";
49
- return Object.assign({
50
- layout: layout,
51
- items: this.getLegendItems(),
52
- maxWidth: rect.width,
53
- maxHeight: rect.height
54
- }, getLegendAttributes(this.option, rect));
55
- }
56
- getLegendItems() {
57
- return this.option.data;
58
- }
59
- initEvent() {
60
- this.legendComponent && (this.legendComponent.addEventListener(LegendEvent.legendItemClick, (e => {
61
- const selectedData = get(e, "detail.currentSelected");
62
- this.table.scenegraph.updateNextFrame(), this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_CLICK, {
63
- model: this,
64
- value: selectedData,
65
- event: e
66
- });
67
- })), this.legendComponent.addEventListener(LegendEvent.legendItemHover, (e => {
68
- const detail = get(e, "detail");
69
- this.table.scenegraph.updateNextFrame(), this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_HOVER, {
70
- model: this,
71
- value: detail,
72
- event: e
73
- });
74
- })), this.legendComponent.addEventListener(LegendEvent.legendItemUnHover, (e => {
75
- const detail = get(e, "detail");
76
- this.table.scenegraph.updateNextFrame(), this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_UNHOVER, {
77
- model: this,
78
- value: detail,
79
- event: e
80
- });
81
- })));
82
- }
83
- getLegendBounds() {
84
- return {
85
- width: isFinite(this.legendComponent.AABBBounds.width()) ? this.legendComponent.AABBBounds.width() : 0,
86
- height: isFinite(this.legendComponent.AABBBounds.height()) ? this.legendComponent.AABBBounds.height() : 0
87
- };
88
- }
89
- dispose() {
90
- this.legendComponent = null;
91
- }
92
- }
93
- //# sourceMappingURL=legend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["components/legend/legend.ts"],"names":[],"mappings":"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","file":"legend.js","sourcesContent":["import { cloneDeep, get, merge } from '@visactor/vutils';\nimport type { ITableLegendOption } from '../../ts-types/component/legend';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { DiscreteLegend, LegendEvent } from '@visactor/vrender-components';\nimport { getLegendAttributes } from './get-legend-attributes';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport { getQuadProps } from '../../scenegraph/utils/padding';\nimport type { IOrientType } from '../../ts-types/component/util';\n\nexport class TableLegend {\n table: BaseTableAPI;\n option: ITableLegendOption;\n orient: IOrientType;\n visible: boolean;\n position: 'start' | 'middle' | 'end';\n selectedData: (string | number)[];\n legendComponent: DiscreteLegend;\n\n constructor(option: ITableLegendOption, table: BaseTableAPI) {\n this.table = table;\n this.option = cloneDeep(option);\n this.orient = option.orient ?? 'left';\n this.visible = option.visible ?? true;\n this.position = option.position ?? 'middle';\n this.selectedData = option.defaultSelected ?? [];\n\n this.createComponent();\n this.initEvent();\n }\n\n createComponent() {\n const attrs = this.getLegendAttributes({\n width: this.table.tableNoFrameWidth,\n height: this.table.tableNoFrameHeight\n });\n const legend = new DiscreteLegend(\n merge({}, attrs, {\n defaultSelected: this.selectedData\n })\n );\n legend.name = 'legend';\n this.legendComponent = legend;\n this.table.scenegraph.stage.defaultLayer.appendChild(legend);\n\n // 调整位置\n let width = isFinite(this.legendComponent.AABBBounds.width()) ? this.legendComponent.AABBBounds.width() : 0;\n let height = isFinite(this.legendComponent.AABBBounds.height()) ? this.legendComponent.AABBBounds.height() : 0;\n const rectWidth = this.table.tableNoFrameWidth;\n const rectHeight = this.table.tableNoFrameHeight;\n const padding = getQuadProps(attrs.padding ?? this.option.padding ?? 10);\n\n let x = 0;\n let y = 0;\n if (this.orient === 'left') {\n x = padding[3];\n y = 0;\n width += padding[1] + padding[3];\n } else if (this.orient === 'top') {\n x = 0;\n y = padding[0];\n height += padding[0] + padding[2];\n } else if (this.orient === 'right') {\n x = rectWidth - width - padding[1];\n y = 0;\n width += padding[1] + padding[3];\n } else if (this.orient === 'bottom') {\n x = 0;\n y = rectHeight - height - padding[2];\n height += padding[0] + padding[2];\n }\n\n const layout = this.orient === 'bottom' || this.orient === 'top' ? 'horizontal' : 'vertical';\n const position = this.position;\n // const { width: rectWidth, height: rectHeight } = fullSpace;\n let offsetX = 0;\n let offsetY = 0;\n if (layout === 'horizontal') {\n if (position === 'middle') {\n offsetX = (rectWidth - width) / 2;\n } else if (position === 'end') {\n offsetX = rectWidth - width - padding[1];\n } else {\n offsetX = padding[3];\n }\n } else {\n if (position === 'middle') {\n offsetY = (rectHeight - height) / 2;\n } else if (position === 'end') {\n offsetY = rectHeight - height - padding[2];\n } else {\n offsetY = padding[0];\n }\n }\n\n this.legendComponent.setAttributes({\n dx: offsetX,\n dy: offsetY,\n x,\n y\n });\n\n // update table size\n if (this.orient === 'left') {\n this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);\n this.table.tableX = Math.ceil(width);\n } else if (this.orient === 'top') {\n this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height);\n this.table.tableY = Math.ceil(height);\n } else if (this.orient === 'right') {\n this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);\n } else if (this.orient === 'bottom') {\n this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height);\n }\n }\n\n getLegendAttributes(rect: any) {\n const layout = this.orient === 'bottom' || this.orient === 'top' ? 'horizontal' : 'vertical';\n const attrs = {\n layout,\n items: this.getLegendItems(),\n // zIndex: this.layoutZIndex,\n maxWidth: rect.width,\n maxHeight: rect.height,\n ...getLegendAttributes(this.option, rect)\n };\n return attrs;\n }\n\n getLegendItems() {\n return this.option.data;\n }\n\n initEvent() {\n if (this.legendComponent) {\n this.legendComponent.addEventListener(LegendEvent.legendItemClick, (e: any) => {\n const selectedData = get(e, 'detail.currentSelected');\n this.table.scenegraph.updateNextFrame();\n this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_CLICK, { model: this, value: selectedData, event: e });\n });\n\n this.legendComponent.addEventListener(LegendEvent.legendItemHover, (e: any) => {\n const detail = get(e, 'detail');\n this.table.scenegraph.updateNextFrame();\n this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_HOVER, { model: this, value: detail, event: e });\n });\n\n this.legendComponent.addEventListener(LegendEvent.legendItemUnHover, (e: any) => {\n const detail = get(e, 'detail');\n this.table.scenegraph.updateNextFrame();\n this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_UNHOVER, { model: this, value: detail, event: e });\n });\n }\n }\n\n getLegendBounds() {\n const width = isFinite(this.legendComponent.AABBBounds.width()) ? this.legendComponent.AABBBounds.width() : 0;\n const height = isFinite(this.legendComponent.AABBBounds.height()) ? this.legendComponent.AABBBounds.height() : 0;\n\n return {\n width: width,\n height: height\n };\n }\n dispose() {\n this.legendComponent = null;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["components/menu/dom/BaseMenu.ts"],"names":[],"mappings":"AAKA,MAAM,OAAgB,QAAQ;IAI5B,YAAY,KAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;IACO,eAAe;QACrB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAErD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAGD,eAAe,CAAC,GAAW,EAAE,GAAW,EAAE,gBAAkC;QAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,OAAO,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACzE,CAAC;IACD,iBAAiB;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,WAAW,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,kBAAkB,CAAC,CAAS,EAAE,CAAS;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,OAAO,WAAW,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;CACF","file":"BaseMenu.js","sourcesContent":["import type { MenuInstanceInfo } from '../../../ts-types';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport type { MenuContainer } from './logic/MenuContainer';\nimport type { MenuElement } from './logic/MenuElement';\n\nexport abstract class BaseMenu {\n protected _table: BaseTableAPI;\n /** 弹出的菜单显示内容 */\n private _menuElement?: MenuElement | MenuContainer;\n constructor(table: BaseTableAPI) {\n this._table = table;\n }\n dispose(): void {\n this.unbindMenuElement();\n if (this._menuElement) {\n this._menuElement.dispose();\n }\n this._menuElement = undefined;\n }\n private _getMenuElement(): MenuElement | MenuContainer {\n if (this._menuElement) {\n return this._menuElement;\n }\n this._menuElement = this.createMenuElementInternal();\n\n return this._menuElement;\n }\n /** 继承的具体类来实现 可以返回 MenuElement 或者 MenuContainer */\n abstract createMenuElementInternal(): MenuElement | MenuContainer;\n bindMenuElement(col: number, row: number, menuInstanceInfo: MenuInstanceInfo): boolean {\n const menuElement = this._getMenuElement();\n return menuElement.bindToCell(this._table, col, row, menuInstanceInfo);\n }\n unbindMenuElement(): void {\n const menuElement = this._getMenuElement();\n menuElement.unbindFromCell();\n }\n /** 鼠标坐标位置 是否位于下拉菜单内 */\n pointInMenuElement(x: number, y: number): boolean {\n const menuElement = this._getMenuElement();\n return menuElement.pointInMenuElement(x, y);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["components/menu/dom/Menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,OAAO,IAAK,SAAQ,QAAQ;IAChC,yBAAyB;QACvB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF;AACD,MAAM,OAAO,SAAU,SAAQ,QAAQ;IACrC,yBAAyB;QACvB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;CACF","file":"Menu.js","sourcesContent":["import { BaseMenu } from './BaseMenu';\nimport { MenuContainer } from './logic/MenuContainer';\nimport { MenuElement } from './logic/MenuElement';\n\nexport class Menu extends BaseMenu {\n createMenuElementInternal(): MenuElement {\n return new MenuElement(this._table);\n }\n}\nexport class Container extends BaseMenu {\n createMenuElementInternal(): MenuContainer {\n return new MenuContainer(this._table);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["components/menu/dom/MenuHandler.ts"],"names":[],"mappings":"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","file":"MenuHandler.js","sourcesContent":["import type { CellRange, DropDownMenuOptions, MenuInstanceInfo, MenuInstanceType } from '../../../ts-types';\nimport type { BaseMenu } from './BaseMenu';\nimport { Container, Menu } from './Menu';\nimport { cellInRange } from '../../../tools/helper';\nimport { TABLE_EVENT_TYPE } from '../../../core/TABLE_EVENT_TYPE';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\n// import { DEFAULTFONT } from '../../tools/global';\n// import { getFontSize } from '../../tools/canvases';\n\nconst MENU_INSTANCE_FACTORY = {\n 'dropdown-menu': function (table: BaseTableAPI): BaseMenu {\n return new Menu(table);\n },\n 'context-menu': function (table: BaseTableAPI): BaseMenu {\n return new Menu(table);\n },\n container(table: BaseTableAPI): BaseMenu {\n return new Container(table);\n }\n};\n\n/** 获取下拉菜单展示内容及坐标位置 */\nfunction getMenuInstanceInfo(\n table: BaseTableAPI,\n col: number,\n row: number,\n type: MenuInstanceType,\n dropDownMenuOptions?: DropDownMenuOptions\n): MenuInstanceInfo | null {\n const { lineHeight, textBaseline, textStick } = table._getCellStyle(col, row);\n // table.internalProps.layoutMap.getHeader(col, row).style ?? {};\n // const lineHeight = getFontSize(table.getContext(), font).height;\n let rect = table.getCellRangeRelativeRect(table.getCellRange(col, row));\n if (textStick) {\n rect = table.getVisibleCellRangeRelativeRect({ col, row });\n }\n\n let { left, right, bottom, top, width, height } = rect;\n if (table.isHeader(col, row)) {\n ({ left, right, bottom, top, width, height } = table.internalProps.headerHelper.getDropDownIconRect(\n rect,\n // paddingArray[1]\n lineHeight as number,\n textBaseline || 'middle'\n ));\n }\n if (dropDownMenuOptions?.content) {\n //如果有指定的下拉菜单内容\n return {\n type,\n position: dropDownMenuOptions.position,\n referencePosition: dropDownMenuOptions.referencePosition ?? {\n rect: {\n left,\n right,\n top,\n bottom,\n width,\n height\n }\n },\n content: dropDownMenuOptions.content\n };\n } // 没有指定的下拉菜单 从headerLayout中获取下拉菜单内容\n else if (type === 'dropdown-menu') {\n // 获取下拉菜单信息及位置 注:这里逻辑特指内置的下拉菜单\n const { dropDownMenu = table.globalDropDownMenu, pivotInfo } = table._getHeaderLayoutMap(col, row);\n\n // const x = (left + right) / 2;\n // const y = bottom;\n\n return {\n type,\n // position: {\n // x,\n // y,\n // },\n referencePosition: {\n rect: {\n left,\n right,\n top,\n bottom,\n width,\n height\n }\n },\n content: dropDownMenu,\n pivotInfo\n };\n }\n // else if (type === 'context-menu') {\n // // 获取右键菜单信息及位置\n // const abstractPos = table._getMouseAbstractPoint(event, false);\n // let menu = null;\n // if (abstractPos && typeof table.options.contextmenu === 'function') {\n // menu = table.options.contextmenu(table.getHeaderField(col, row) as string, row);\n // } else if (abstractPos && Array.isArray(table.options.contextmenu)) {\n // menu = table.options.contextmenu;\n // }\n // return {\n // position: {\n // x: abstractPos.x,\n // y: abstractPos.y,\n // },\n // type,\n // content: menu,\n // };\n // }\n return null;\n}\n\ntype AttachInfo = {\n instance?: BaseMenu;\n range: CellRange;\n};\n\nexport class MenuHandler {\n private _table: BaseTableAPI;\n private _menuInstances?: { [type: string]: BaseMenu };\n private _attachInfo?: AttachInfo | null;\n constructor(table: BaseTableAPI) {\n this._table = table;\n this._menuInstances = {};\n this._bindTableEvent(table);\n }\n dispose(): void {\n const menuInstances = this._menuInstances;\n for (const k in menuInstances) {\n menuInstances[k].dispose();\n }\n delete this._menuInstances;\n this._attachInfo = null;\n }\n _bindToCell(col: number, row: number, type: MenuInstanceType, dropDownMenuOptions?: DropDownMenuOptions): void {\n const info = this._attachInfo;\n const instanceInfo = this._getMenuInstanceInfo(col, row, type, dropDownMenuOptions);\n if (info && (!instanceInfo || info.instance !== instanceInfo.instance)) {\n info.instance?.unbindMenuElement();\n this._attachInfo = null;\n }\n if (!instanceInfo) {\n return;\n }\n const { instance, info: menuInstanceInfo } = instanceInfo;\n const attach = instance && instance.bindMenuElement(col, row, menuInstanceInfo);\n if (attach) {\n const range = this._table.getCellRange(col, row);\n this._attachInfo = { range, instance };\n }\n }\n _unbindFromCell(): void {\n const info = this._attachInfo;\n if (!info) {\n return;\n }\n const { instance } = info;\n instance?.unbindMenuElement();\n this._attachInfo = null;\n // this._table.showHoverIcon = undefined;\n }\n _isBindToCell(col: number, row: number): boolean {\n const info = this._attachInfo;\n if (!info) {\n return false;\n }\n return cellInRange(info.range, col, row);\n }\n /** 鼠标坐标位置 是否位于下拉菜单内 */\n pointInMenuElement(x: number, y: number) {\n if (!this._attachInfo) {\n return false;\n }\n const info = this._attachInfo;\n const { instance } = info;\n return instance.pointInMenuElement(x, y);\n }\n _bindTableEvent(table: BaseTableAPI): void {\n // 监听按钮点击事件\n // 三种情况:\n // 1. 没有菜单,点击弹出菜单\n // 2. 已显示菜单,点击关闭菜单\n // 3. 已显示菜单,点击其他菜单按钮,关闭当前菜单,显示另一菜单\n table.listen(TABLE_EVENT_TYPE.DROPDOWN_ICON_CLICK, e => {\n if (this._attachInfo) {\n if (this._isBindToCell(e.col, e.row)) {\n this._unbindFromCell();\n } else {\n this._bindToCell(e.col, e.row, 'dropdown-menu');\n }\n } else {\n this._bindToCell(e.col, e.row, 'dropdown-menu');\n }\n });\n // 监听菜单清除事件\n table.listen(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLEAR, e => {\n this._unbindFromCell();\n });\n // 监听右键菜单\n table.listen(TABLE_EVENT_TYPE.CONTEXTMENU_CELL, e => {\n if (table.internalProps.menu?.renderMode === 'html') {\n // 获取右键菜单信息及位置\n const abstractPos = table._getMouseAbstractPoint(e.event, false);\n let menu = null;\n if (abstractPos && typeof table.internalProps.menu?.contextMenuItems === 'function') {\n menu = table.internalProps.menu.contextMenuItems(table.getHeaderField(e.col, e.row) as string, e.row);\n } else if (abstractPos && Array.isArray(table.internalProps.menu?.contextMenuItems)) {\n menu = table.internalProps.menu?.contextMenuItems;\n }\n this._bindToCell(e.col, e.row, 'context-menu', {\n content: menu,\n position: { x: abstractPos.x, y: abstractPos.y }\n });\n }\n });\n }\n _getMenuInstanceInfo(\n col: number,\n row: number,\n type: MenuInstanceType,\n dropDownMenuOptions?: DropDownMenuOptions\n ): {\n instance?: BaseMenu;\n type: MenuInstanceType;\n info: MenuInstanceInfo;\n } | null {\n const table = this._table;\n const menuInstances = this._menuInstances;\n\n const info = getMenuInstanceInfo(table, col, row, type, dropDownMenuOptions);\n if (!info) {\n return null;\n }\n\n // const { type } = info;\n const instance =\n (menuInstances && menuInstances[type]) ||\n (menuInstances && (menuInstances[type] = MENU_INSTANCE_FACTORY[type](table)));\n\n return {\n instance,\n type,\n info\n };\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["components/menu/dom/logic/MenuContainer.ts"],"names":[],"mappings":"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","file":"MenuContainer.js","sourcesContent":["import { EventHandler } from '../../../../event/EventHandler';\nimport type { MenuInstanceInfo, Placement, RectProps } from '../../../../ts-types';\nimport { createElement } from '../../../../tools/dom';\nimport { TABLE_EVENT_TYPE } from '../../../../core/TABLE_EVENT_TYPE';\nimport type { PivotHeaderLayoutMap } from '../../../../layout/pivot-header-layout';\nimport type { BaseTableAPI } from '../../../../ts-types/base-table';\n\nconst CLASSNAME = 'vtable__menu-element';\nconst HIDDEN_CLASSNAME = `${CLASSNAME}--hidden`;\nconst SHOWN_CLASSNAME = `${CLASSNAME}--shown`;\n\nfunction createMenuDomElement(): HTMLElement {\n const rootElement = createElement('div', [CLASSNAME, HIDDEN_CLASSNAME]);\n return rootElement;\n}\n\nexport class MenuContainer {\n private _handler: EventHandler;\n private _rootElement?: HTMLElement;\n private _menuInstanceInfo?: MenuInstanceInfo;\n constructor(table: BaseTableAPI) {\n this._handler = new EventHandler();\n this._rootElement = createMenuDomElement();\n\n // 绑定交互事件\n this._rootElement?.addEventListener('mousedown', e => {\n e.stopPropagation();\n e.preventDefault();\n });\n this._rootElement?.addEventListener('click', e => {\n e.stopPropagation();\n e.preventDefault();\n if (this._rootElement.classList.contains(HIDDEN_CLASSNAME)) {\n return;\n }\n // console.log('menu mousedown', e);\n // 触发菜单条目点击事件\n const { col, row, dropDownIndex, menuKey, text, hasChildren } = e.target as any;\n if (typeof dropDownIndex !== 'number' || hasChildren) {\n e.stopPropagation();\n return;\n }\n // const field = table.getHeaderField(col, row);\n const field = table.isPivotTable()\n ? (table.internalProps.layoutMap as PivotHeaderLayoutMap).getPivotDimensionInfo(col, row)\n : table.getHeaderField(col, row);\n\n const highlight = table._dropDownMenuIsHighlight(col, row, dropDownIndex);\n table.fireListeners(TABLE_EVENT_TYPE.DROPDOWNMENU_CLICK, {\n col,\n row,\n field: <string>field,\n menuKey,\n // fieldKey,\n // dropDownIndex,\n text,\n highlight,\n cellType: table.getCellType(col, row)\n });\n\n table.fireListeners(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLEAR, null); // 清除菜单\n table.fireListeners(TABLE_EVENT_TYPE.HIDE_MENU, null); // 清除菜单\n // table.invalidateCell(col, row); // 更新状态图表\n e.stopPropagation();\n });\n this._rootElement?.addEventListener('mousemove', e => {\n if (this._rootElement.classList.contains(HIDDEN_CLASSNAME)) {\n return;\n }\n // console.log('menu mousemove', e);\n // table.hoverIcon = undefined;\n\n e.stopPropagation();\n });\n // this._rootElement?.addEventListener('mouseenter', () => {\n // if (this._rootElement.classList.contains(HIDDEN_CLASSNAME)) return;\n // if (!table.hoverIcon) return;\n // // console.log('menu mousemove', e);\n // table.showHoverIcon = table.hoverIcon;\n // table.hoverIcon = undefined; // 避免在hover icon后不能交互表格区域\n // table.invalidateCell(table.showHoverIcon.col, table.showHoverIcon.row);\n // // console.log('showHoverIcon', table.showHoverIcon);\n // });\n // this._rootElement?.addEventListener('blur', () => {\n // // table.fireListeners(LG_EVENT_TYPE.DROPDOWN_MENU_CLEAR, null); // 清除菜单\n // table.showHoverIcon = undefined;\n // });\n }\n get rootElement() {\n return this._rootElement;\n }\n dispose(): void {\n this.unbindFromCell();\n\n const rootElement = this._rootElement;\n if (rootElement?.parentElement) {\n rootElement.parentElement.removeChild(rootElement);\n }\n\n this._handler.dispose();\n delete this._rootElement;\n // delete this._messageElement;\n }\n bindToCell(table: BaseTableAPI, col: number, row: number, menuInstanceInfo: MenuInstanceInfo): boolean {\n const rootElement = this._rootElement;\n this._menuInstanceInfo = menuInstanceInfo;\n // const messageElement = this._messageElement;\n\n rootElement?.classList.remove(SHOWN_CLASSNAME);\n rootElement?.classList.add(HIDDEN_CLASSNAME);\n\n if (this._canBindToCell(table, col, row)) {\n rootElement.innerHTML = '';\n rootElement.appendChild(<HTMLElement>menuInstanceInfo.content);\n\n const binded = this._bindCell(table, col, row, menuInstanceInfo.position, menuInstanceInfo.referencePosition);\n\n if (binded) {\n rootElement?.classList.add(SHOWN_CLASSNAME);\n rootElement?.classList.remove(HIDDEN_CLASSNAME);\n return true;\n }\n } else {\n this.unbindFromCell();\n }\n return false;\n }\n unbindFromCell(): void {\n const rootElement = this._rootElement;\n this._menuInstanceInfo = undefined;\n if (rootElement?.parentElement) {\n // rootElement.parentElement.removeChild(rootElement);\n rootElement.classList.remove(SHOWN_CLASSNAME);\n rootElement.classList.add(HIDDEN_CLASSNAME);\n }\n }\n _canBindToCell(table: BaseTableAPI, col: number, row: number): boolean {\n const rect = table.getCellRangeRelativeRect({ col, row });\n const element = table.getElement();\n const { top, bottom, left, right } = rect;\n const { frozenRowCount, frozenColCount } = table;\n if (row >= frozenRowCount && frozenRowCount > 0) {\n const frozenRect = table.getCellRangeRelativeRect({ col, row: frozenRowCount - 1 });\n if (bottom < frozenRect.bottom) {\n return false;\n }\n } else if (bottom < 0) {\n return false;\n }\n if (col >= frozenColCount && frozenColCount > 0) {\n const frozenRect = table.getCellRangeRelativeRect({ col: frozenColCount - 1, row });\n if (right < frozenRect.right) {\n //整个是被冻结列盖住的 不需要提示toolTip\n return false;\n }\n } else if (right < 0) {\n return false;\n }\n const { offsetHeight, offsetWidth } = element;\n if (offsetHeight < top) {\n return false;\n }\n if (offsetWidth < left) {\n return false;\n }\n return true;\n }\n _bindCell(\n table: BaseTableAPI,\n col: number,\n row: number,\n position: { x: number; y: number },\n referencePosition: { rect: RectProps; placement?: Placement }\n ): boolean {\n const rootElement = this._rootElement;\n const element = table.getElement();\n const { width: containerWidth, height: containerHeight } = table.internalProps.element.getBoundingClientRect();\n if (rootElement) {\n if (rootElement.parentElement !== element) {\n element.appendChild(rootElement); // 之前在做dom边缘躲避的时候放到了table.getParentElement()上,但发现不是相对定位导致位置错位\n }\n rootElement.style.left = `0px`;\n //设置最宽尺寸\n const maxWidth = containerWidth * 0.8;\n rootElement.style.maxWidth = `${maxWidth}px`;\n //计算弹出框的宽度\n const rootElementWidth = rootElement.clientWidth;\n const rootElementHeight = rootElement.clientHeight;\n let rootElementLeft;\n let rootElementTop;\n if (position) {\n rootElementLeft = position.x;\n rootElementTop = position.y;\n }\n if (referencePosition) {\n rootElementLeft = referencePosition.rect.right - rootElementWidth;\n rootElementTop = referencePosition.rect.bottom;\n }\n // rootElementLeft = position.x - rootElementWidth;\n // let leftStyle = rootElementLeft;\n // 检测下方能否容纳,不能容纳向上偏移\n if (rootElementTop + rootElementHeight > containerHeight) {\n rootElementTop = containerHeight - rootElementHeight;\n rootElementLeft += rootElementWidth - 2;\n }\n // 偏移后上方超出canvas范围,居中显示\n if (rootElementTop < 0) {\n rootElementTop = rootElementTop / 2;\n }\n rootElement.style.top = `${rootElementTop}px`;\n\n // 判断如果超出左右范围则靠边显示\n if (rootElementLeft < 0) {\n rootElementLeft = 0;\n } else if (rootElementLeft + rootElementWidth > containerWidth) {\n rootElementLeft = containerWidth - rootElementWidth;\n }\n rootElement.style.left = `${rootElementLeft}px`;\n\n return true;\n }\n return false;\n }\n /** 鼠标坐标位置 是否位于下拉菜单内 */\n pointInMenuElement(x: number, y: number): boolean {\n const rootElement = this._rootElement;\n\n const { x: rootLeft, y: rootTop, width: rootWidth, height: rootHeight } = rootElement.getBoundingClientRect();\n if (x > rootLeft - 5 && x < rootLeft + rootWidth + 5 && y > rootTop - 5 && y < rootTop + rootHeight + 5) {\n return true;\n }\n\n return false;\n }\n}\n"]}