k-vtable 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/cjs/ListTable.d.ts +2 -0
  2. package/cjs/ListTable.js +41 -18
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js +3 -5
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.js +2 -4
  7. package/cjs/PivotTable.js.map +1 -1
  8. package/cjs/body-helper/style.d.ts +1 -1
  9. package/cjs/body-helper/style.js.map +1 -1
  10. package/cjs/chartModule.d.ts +3 -0
  11. package/cjs/chartModule.js +7 -3
  12. package/cjs/chartModule.js.map +1 -1
  13. package/cjs/components/axis/axis.js.map +1 -1
  14. package/cjs/components/menu/dom/MenuHandler.js +1 -1
  15. package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
  16. package/cjs/components/menu/dom/logic/MenuElement.js +12 -7
  17. package/cjs/components/menu/dom/logic/MenuElement.js.map +1 -1
  18. package/cjs/components/menu/dom/logic/MenuElementStyle.js +1 -1
  19. package/cjs/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  20. package/cjs/components/tooltip/TooltipHandler.js +1 -1
  21. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  22. package/cjs/core/BaseTable.d.ts +6 -2
  23. package/cjs/core/BaseTable.js +57 -36
  24. package/cjs/core/BaseTable.js.map +1 -1
  25. package/cjs/core/TABLE_EVENT_TYPE.d.ts +4 -0
  26. package/cjs/core/TABLE_EVENT_TYPE.js +5 -1
  27. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  28. package/cjs/core/tableHelper.js +16 -13
  29. package/cjs/core/tableHelper.js.map +1 -1
  30. package/cjs/data/DataSource.js +10 -4
  31. package/cjs/data/DataSource.js.map +1 -1
  32. package/cjs/edit/edit-manager.d.ts +1 -0
  33. package/cjs/edit/edit-manager.js +9 -5
  34. package/cjs/edit/edit-manager.js.map +1 -1
  35. package/cjs/event/event.d.ts +3 -2
  36. package/cjs/event/event.js +1 -1
  37. package/cjs/event/event.js.map +1 -1
  38. package/cjs/event/listener/container-dom.js +55 -24
  39. package/cjs/event/listener/container-dom.js.map +1 -1
  40. package/cjs/event/listener/table-group.js +8 -38
  41. package/cjs/event/listener/table-group.js.map +1 -1
  42. package/cjs/event/listener/touch.js +31 -21
  43. package/cjs/event/listener/touch.js.map +1 -1
  44. package/cjs/header-helper/style.d.ts +1 -1
  45. package/cjs/header-helper/style.js.map +1 -1
  46. package/cjs/icons.d.ts +3 -0
  47. package/cjs/icons.js +3 -3
  48. package/cjs/icons.js.map +1 -1
  49. package/cjs/index.d.ts +5 -3
  50. package/cjs/index.js +11 -2
  51. package/cjs/index.js.map +1 -1
  52. package/cjs/layout/pivot-header-layout.js +9 -6
  53. package/cjs/layout/pivot-header-layout.js.map +1 -1
  54. package/cjs/layout/simple-header-layout.d.ts +3 -1
  55. package/cjs/layout/simple-header-layout.js +13 -7
  56. package/cjs/layout/simple-header-layout.js.map +1 -1
  57. package/cjs/plugins/custom-cell-style.js +1 -1
  58. package/cjs/plugins/index.d.ts +3 -0
  59. package/cjs/plugins/index.js +24 -0
  60. package/cjs/plugins/index.js.map +1 -0
  61. package/cjs/plugins/interface.d.ts +10 -0
  62. package/cjs/plugins/interface.js +6 -0
  63. package/cjs/plugins/interface.js.map +1 -0
  64. package/cjs/plugins/plugin-manager.d.ts +14 -0
  65. package/cjs/plugins/plugin-manager.js +55 -0
  66. package/cjs/plugins/plugin-manager.js.map +1 -0
  67. package/cjs/register.js +4 -4
  68. package/cjs/register.js.map +1 -1
  69. package/cjs/scenegraph/component/menu.js.map +1 -1
  70. package/cjs/scenegraph/component/table-component.d.ts +2 -0
  71. package/cjs/scenegraph/component/table-component.js +38 -24
  72. package/cjs/scenegraph/component/table-component.js.map +1 -1
  73. package/cjs/scenegraph/graphic/chart.d.ts +2 -2
  74. package/cjs/scenegraph/graphic/chart.js +1 -1
  75. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  76. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +3 -0
  77. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  78. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +1 -1
  79. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  80. package/cjs/scenegraph/graphic/contributions/index.js +4 -2
  81. package/cjs/scenegraph/graphic/contributions/index.js.map +1 -1
  82. package/cjs/scenegraph/graphic/contributions/picker-interceptor.d.ts +8 -0
  83. package/cjs/scenegraph/graphic/contributions/picker-interceptor.js +42 -0
  84. package/cjs/scenegraph/graphic/contributions/picker-interceptor.js.map +1 -0
  85. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +2 -2
  86. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  87. package/cjs/scenegraph/graphic/contributions/vchart-graphic-picker.d.ts +6 -0
  88. package/cjs/scenegraph/graphic/contributions/vchart-graphic-picker.js +25 -0
  89. package/cjs/scenegraph/graphic/contributions/vchart-graphic-picker.js.map +1 -0
  90. package/cjs/scenegraph/group-creater/cell-helper.js +6 -1
  91. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  92. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +5 -3
  93. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  94. package/cjs/scenegraph/group-creater/column-helper.js +2 -1
  95. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  96. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +4 -2
  97. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  98. package/cjs/scenegraph/group-creater/progress/proxy.js +2 -2
  99. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  100. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  101. package/cjs/scenegraph/layout/frozen.js +32 -13
  102. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  103. package/cjs/scenegraph/layout/update-col.js +2 -1
  104. package/cjs/scenegraph/layout/update-col.js.map +1 -1
  105. package/cjs/scenegraph/layout/update-row.js +2 -1
  106. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  107. package/cjs/scenegraph/scenegraph.js +6 -4
  108. package/cjs/scenegraph/scenegraph.js.map +1 -1
  109. package/cjs/scenegraph/select/update-select-border.js +2 -1
  110. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  111. package/cjs/scenegraph/stick-text/index.d.ts +2 -0
  112. package/cjs/scenegraph/stick-text/index.js +10 -6
  113. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  114. package/cjs/state/checkbox/checkbox.js +2 -2
  115. package/cjs/state/checkbox/checkbox.js.map +1 -1
  116. package/cjs/state/hover/update-position.js +3 -1
  117. package/cjs/state/hover/update-position.js.map +1 -1
  118. package/cjs/state/select/update-position.js +138 -44
  119. package/cjs/state/select/update-position.js.map +1 -1
  120. package/cjs/state/state.d.ts +1 -0
  121. package/cjs/state/state.js +10 -8
  122. package/cjs/state/state.js.map +1 -1
  123. package/cjs/themes/ARCO.js +2 -1
  124. package/cjs/themes/ARCO.js.map +1 -1
  125. package/cjs/themes/BRIGHT.js +2 -1
  126. package/cjs/themes/BRIGHT.js.map +1 -1
  127. package/cjs/themes/DARK.js +2 -1
  128. package/cjs/themes/DARK.js.map +1 -1
  129. package/cjs/themes/DEFAULT.js +2 -1
  130. package/cjs/themes/DEFAULT.js.map +1 -1
  131. package/cjs/themes/{theme.js → theme-define.js} +9 -1
  132. package/cjs/themes/theme-define.js.map +1 -0
  133. package/cjs/{plugins → themes}/themes.d.ts +1 -1
  134. package/cjs/themes/themes.js.map +1 -0
  135. package/cjs/themes.d.ts +1 -1
  136. package/cjs/themes.js +9 -8
  137. package/cjs/themes.js.map +1 -1
  138. package/cjs/tools/cell-range.js +2 -1
  139. package/cjs/tools/cell-range.js.map +1 -1
  140. package/cjs/ts-types/base-table.d.ts +8 -2
  141. package/cjs/ts-types/base-table.js.map +1 -1
  142. package/cjs/ts-types/events.d.ts +18 -0
  143. package/cjs/ts-types/events.js.map +1 -1
  144. package/cjs/ts-types/index.d.ts +1 -0
  145. package/cjs/ts-types/index.js +1 -1
  146. package/cjs/ts-types/index.js.map +1 -1
  147. package/cjs/ts-types/menu.d.ts +1 -0
  148. package/cjs/ts-types/menu.js.map +1 -1
  149. package/cjs/ts-types/table-engine.d.ts +3 -0
  150. package/cjs/ts-types/table-engine.js.map +1 -1
  151. package/cjs/ts-types/theme.d.ts +2 -0
  152. package/cjs/ts-types/theme.js.map +1 -1
  153. package/cjs/vrender.js.map +1 -1
  154. package/dist/vtable.js +18853 -16859
  155. package/dist/vtable.min.js +2 -2
  156. package/es/ListTable.d.ts +2 -0
  157. package/es/ListTable.js +42 -17
  158. package/es/ListTable.js.map +1 -1
  159. package/es/PivotChart.js +2 -6
  160. package/es/PivotChart.js.map +1 -1
  161. package/es/PivotTable.js +2 -4
  162. package/es/PivotTable.js.map +1 -1
  163. package/es/body-helper/style.d.ts +1 -1
  164. package/es/body-helper/style.js.map +1 -1
  165. package/es/chartModule.d.ts +3 -0
  166. package/es/chartModule.js +2 -2
  167. package/es/chartModule.js.map +1 -1
  168. package/es/components/axis/axis.js.map +1 -1
  169. package/es/components/menu/dom/MenuHandler.js +1 -1
  170. package/es/components/menu/dom/MenuHandler.js.map +1 -1
  171. package/es/components/menu/dom/logic/MenuElement.js +12 -7
  172. package/es/components/menu/dom/logic/MenuElement.js.map +1 -1
  173. package/es/components/menu/dom/logic/MenuElementStyle.js +1 -1
  174. package/es/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  175. package/es/components/tooltip/TooltipHandler.js +1 -1
  176. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  177. package/es/core/BaseTable.d.ts +6 -2
  178. package/es/core/BaseTable.js +54 -33
  179. package/es/core/BaseTable.js.map +1 -1
  180. package/es/core/TABLE_EVENT_TYPE.d.ts +4 -0
  181. package/es/core/TABLE_EVENT_TYPE.js +5 -1
  182. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  183. package/es/core/tableHelper.js +16 -13
  184. package/es/core/tableHelper.js.map +1 -1
  185. package/es/data/DataSource.js +10 -4
  186. package/es/data/DataSource.js.map +1 -1
  187. package/es/edit/edit-manager.d.ts +1 -0
  188. package/es/edit/edit-manager.js +9 -5
  189. package/es/edit/edit-manager.js.map +1 -1
  190. package/es/event/event.d.ts +3 -2
  191. package/es/event/event.js +2 -2
  192. package/es/event/event.js.map +1 -1
  193. package/es/event/listener/container-dom.js +55 -24
  194. package/es/event/listener/container-dom.js.map +1 -1
  195. package/es/event/listener/table-group.js +9 -39
  196. package/es/event/listener/table-group.js.map +1 -1
  197. package/es/event/listener/touch.js +32 -20
  198. package/es/event/listener/touch.js.map +1 -1
  199. package/es/header-helper/style.d.ts +1 -1
  200. package/es/header-helper/style.js.map +1 -1
  201. package/es/icons.d.ts +3 -0
  202. package/es/icons.js +3 -1
  203. package/es/icons.js.map +1 -1
  204. package/es/index.d.ts +5 -3
  205. package/es/index.js +5 -3
  206. package/es/index.js.map +1 -1
  207. package/es/layout/pivot-header-layout.js +9 -6
  208. package/es/layout/pivot-header-layout.js.map +1 -1
  209. package/es/layout/simple-header-layout.d.ts +3 -1
  210. package/es/layout/simple-header-layout.js +14 -6
  211. package/es/layout/simple-header-layout.js.map +1 -1
  212. package/es/plugins/custom-cell-style.js +1 -1
  213. package/es/plugins/index.d.ts +3 -0
  214. package/es/plugins/index.js +4 -0
  215. package/es/plugins/index.js.map +1 -0
  216. package/es/plugins/interface.d.ts +10 -0
  217. package/es/plugins/interface.js +2 -0
  218. package/es/plugins/interface.js.map +1 -0
  219. package/es/plugins/plugin-manager.d.ts +14 -0
  220. package/es/plugins/plugin-manager.js +47 -0
  221. package/es/plugins/plugin-manager.js.map +1 -0
  222. package/es/register.js +3 -3
  223. package/es/register.js.map +1 -1
  224. package/es/scenegraph/component/menu.js.map +1 -1
  225. package/es/scenegraph/component/table-component.d.ts +2 -0
  226. package/es/scenegraph/component/table-component.js +38 -24
  227. package/es/scenegraph/component/table-component.js.map +1 -1
  228. package/es/scenegraph/graphic/chart.d.ts +2 -2
  229. package/es/scenegraph/graphic/chart.js +2 -2
  230. package/es/scenegraph/graphic/chart.js.map +1 -1
  231. package/es/scenegraph/graphic/contributions/chart-render-helper.js +3 -0
  232. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  233. package/es/scenegraph/graphic/contributions/group-contribution-render.js +1 -1
  234. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  235. package/es/scenegraph/graphic/contributions/index.js +5 -2
  236. package/es/scenegraph/graphic/contributions/index.js.map +1 -1
  237. package/es/scenegraph/graphic/contributions/picker-interceptor.d.ts +8 -0
  238. package/es/scenegraph/graphic/contributions/picker-interceptor.js +37 -0
  239. package/es/scenegraph/graphic/contributions/picker-interceptor.js.map +1 -0
  240. package/es/scenegraph/graphic/contributions/rect-contribution-render.js +2 -2
  241. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  242. package/es/scenegraph/graphic/contributions/vchart-graphic-picker.d.ts +6 -0
  243. package/es/scenegraph/graphic/contributions/vchart-graphic-picker.js +23 -0
  244. package/es/scenegraph/graphic/contributions/vchart-graphic-picker.js.map +1 -0
  245. package/es/scenegraph/group-creater/cell-helper.js +6 -1
  246. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  247. package/es/scenegraph/group-creater/cell-type/image-cell.js +5 -3
  248. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  249. package/es/scenegraph/group-creater/column-helper.js +2 -1
  250. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  251. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +2 -2
  252. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  253. package/es/scenegraph/group-creater/progress/proxy.js +4 -3
  254. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  255. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  256. package/es/scenegraph/layout/frozen.js +32 -13
  257. package/es/scenegraph/layout/frozen.js.map +1 -1
  258. package/es/scenegraph/layout/update-col.js +3 -0
  259. package/es/scenegraph/layout/update-col.js.map +1 -1
  260. package/es/scenegraph/layout/update-row.js +3 -0
  261. package/es/scenegraph/layout/update-row.js.map +1 -1
  262. package/es/scenegraph/scenegraph.js +6 -4
  263. package/es/scenegraph/scenegraph.js.map +1 -1
  264. package/es/scenegraph/select/update-select-border.js +2 -1
  265. package/es/scenegraph/select/update-select-border.js.map +1 -1
  266. package/es/scenegraph/stick-text/index.d.ts +2 -0
  267. package/es/scenegraph/stick-text/index.js +7 -4
  268. package/es/scenegraph/stick-text/index.js.map +1 -1
  269. package/es/state/checkbox/checkbox.js +2 -2
  270. package/es/state/checkbox/checkbox.js.map +1 -1
  271. package/es/state/hover/update-position.js +3 -1
  272. package/es/state/hover/update-position.js.map +1 -1
  273. package/es/state/select/update-position.js +138 -44
  274. package/es/state/select/update-position.js.map +1 -1
  275. package/es/state/state.d.ts +1 -0
  276. package/es/state/state.js +10 -8
  277. package/es/state/state.js.map +1 -1
  278. package/es/themes/ARCO.js +2 -1
  279. package/es/themes/ARCO.js.map +1 -1
  280. package/es/themes/BRIGHT.js +2 -1
  281. package/es/themes/BRIGHT.js.map +1 -1
  282. package/es/themes/DARK.js +2 -1
  283. package/es/themes/DARK.js.map +1 -1
  284. package/es/themes/DEFAULT.js +2 -1
  285. package/es/themes/DEFAULT.js.map +1 -1
  286. package/es/themes/{theme.js → theme-define.js} +9 -1
  287. package/es/themes/theme-define.js.map +1 -0
  288. package/es/{plugins → themes}/themes.d.ts +1 -1
  289. package/es/themes/themes.js.map +1 -0
  290. package/es/themes.d.ts +1 -1
  291. package/es/themes.js +2 -2
  292. package/es/themes.js.map +1 -1
  293. package/es/tools/cell-range.js +2 -1
  294. package/es/tools/cell-range.js.map +1 -1
  295. package/es/ts-types/base-table.d.ts +8 -2
  296. package/es/ts-types/base-table.js.map +1 -1
  297. package/es/ts-types/events.d.ts +18 -0
  298. package/es/ts-types/events.js.map +1 -1
  299. package/es/ts-types/index.d.ts +1 -0
  300. package/es/ts-types/index.js +2 -0
  301. package/es/ts-types/index.js.map +1 -1
  302. package/es/ts-types/menu.d.ts +1 -0
  303. package/es/ts-types/menu.js.map +1 -1
  304. package/es/ts-types/table-engine.d.ts +3 -0
  305. package/es/ts-types/table-engine.js.map +1 -1
  306. package/es/ts-types/theme.d.ts +2 -0
  307. package/es/ts-types/theme.js.map +1 -1
  308. package/es/vrender.js.map +1 -1
  309. package/package.json +6 -6
  310. package/cjs/plugins/chartModules.d.ts +0 -3
  311. package/cjs/plugins/chartModules.js +0 -6
  312. package/cjs/plugins/chartModules.js.map +0 -1
  313. package/cjs/plugins/icons.d.ts +0 -12
  314. package/cjs/plugins/icons.js +0 -26
  315. package/cjs/plugins/icons.js.map +0 -1
  316. package/cjs/plugins/themes.js.map +0 -1
  317. package/cjs/scenegraph/component/menu.d.ts +0 -41
  318. package/cjs/scenegraph/utils/text-measure.d.ts +0 -38
  319. package/cjs/themes/theme.js.map +0 -1
  320. package/es/plugins/chartModules.d.ts +0 -3
  321. package/es/plugins/chartModules.js +0 -2
  322. package/es/plugins/chartModules.js.map +0 -1
  323. package/es/plugins/icons.d.ts +0 -12
  324. package/es/plugins/icons.js +0 -22
  325. package/es/plugins/icons.js.map +0 -1
  326. package/es/plugins/themes.js.map +0 -1
  327. package/es/scenegraph/component/menu.d.ts +0 -41
  328. package/es/scenegraph/utils/text-measure.d.ts +0 -38
  329. package/es/themes/theme.js.map +0 -1
  330. /package/cjs/themes/{theme.d.ts → theme-define.d.ts} +0 -0
  331. /package/cjs/{plugins → themes}/themes.js +0 -0
  332. /package/es/themes/{theme.d.ts → theme-define.d.ts} +0 -0
  333. /package/es/{plugins → themes}/themes.js +0 -0
@@ -0,0 +1,10 @@
1
+ import type { TableEvents } from '../core/TABLE_EVENT_TYPE';
2
+ import type { BaseTableAPI } from '../ts-types/base-table';
3
+ export interface IVTablePlugin {
4
+ id: string;
5
+ name: string;
6
+ runTime: TableEvents[keyof TableEvents][];
7
+ run: (...args: any[]) => void;
8
+ update?: () => void;
9
+ release?: (table: BaseTableAPI) => void;
10
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ });
6
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/plugins/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { TableEvents } from '../core/TABLE_EVENT_TYPE';\nimport type { BaseTableAPI } from '../ts-types/base-table';\n\n// 插件生命周期接口\nexport interface IVTablePlugin {\n // 插件唯一标识\n id: string;\n // 插件名称\n name: string;\n // // 插件优先级,数字越小优先级越高 TODO:目前还没起作用,后续是否有安排插件优先级的需求\n // priority?: number;\n\n // // 插件类型,用于区分不同功能的插件\n // type: 'layout' | 'interaction' | 'style' | 'animation';\n // 插件运行时机\n runTime: TableEvents[keyof TableEvents][];\n // // 插件依赖\n // dependencies?: string[];\n // 初始化方法,在VTable实例创建后、首次渲染前调用\n run: (...args: any[]) => void;\n // 更新方法,当表格数据或配置更新时调用\n update?: () => void;\n // 销毁方法,在VTable实例销毁前调用\n release?: (table: BaseTableAPI) => void;\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import type { BaseTableAPI, BaseTableConstructorOptions } from '../ts-types/base-table';
2
+ import type { IVTablePlugin } from './interface';
3
+ export declare class PluginManager {
4
+ private plugins;
5
+ private table;
6
+ constructor(table: BaseTableAPI, options: BaseTableConstructorOptions);
7
+ register(plugin: IVTablePlugin): void;
8
+ registerAll(plugins: IVTablePlugin[]): void;
9
+ getPlugin(id: string): IVTablePlugin | undefined;
10
+ getPluginByName(name: string): IVTablePlugin | undefined;
11
+ _bindTableEventForPlugin(plugin: IVTablePlugin): void;
12
+ updatePlugins(plugins?: IVTablePlugin[]): void;
13
+ release(): void;
14
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.PluginManager = void 0;
6
+
7
+ class PluginManager {
8
+ constructor(table, options) {
9
+ var _a;
10
+ this.plugins = new Map, this.table = table, null === (_a = options.plugins) || void 0 === _a || _a.map((plugin => {
11
+ this.register(plugin), this._bindTableEventForPlugin(plugin);
12
+ }));
13
+ }
14
+ register(plugin) {
15
+ this.plugins.set(plugin.id, plugin);
16
+ }
17
+ registerAll(plugins) {
18
+ plugins.forEach((plugin => this.register(plugin)));
19
+ }
20
+ getPlugin(id) {
21
+ return this.plugins.get(id);
22
+ }
23
+ getPluginByName(name) {
24
+ return Array.from(this.plugins.values()).find((plugin => plugin.name === name));
25
+ }
26
+ _bindTableEventForPlugin(plugin) {
27
+ var _a;
28
+ null === (_a = plugin.runTime) || void 0 === _a || _a.forEach((runTime => {
29
+ this.table.on(runTime, ((...args) => {
30
+ var _a;
31
+ null === (_a = plugin.run) || void 0 === _a || _a.call(plugin, ...args, runTime, this.table);
32
+ }));
33
+ }));
34
+ }
35
+ updatePlugins(plugins) {
36
+ Array.from(this.plugins.values()).filter((plugin => !(null == plugins ? void 0 : plugins.some((p => p.id === plugin.id))))).forEach((plugin => {
37
+ this.release(), this.plugins.delete(plugin.id);
38
+ })), this.plugins.forEach((plugin => {
39
+ plugin.update && plugin.update();
40
+ }));
41
+ const addedPlugins = null == plugins ? void 0 : plugins.filter((plugin => !this.plugins.has(plugin.id)));
42
+ null == addedPlugins || addedPlugins.forEach((plugin => {
43
+ this.register(plugin), this._bindTableEventForPlugin(plugin);
44
+ }));
45
+ }
46
+ release() {
47
+ this.plugins.forEach((plugin => {
48
+ var _a;
49
+ null === (_a = plugin.release) || void 0 === _a || _a.call(plugin, this.table);
50
+ }));
51
+ }
52
+ }
53
+
54
+ exports.PluginManager = PluginManager;
55
+ //# sourceMappingURL=plugin-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/plugins/plugin-manager.ts"],"names":[],"mappings":"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","file":"plugin-manager.js","sourcesContent":["import type { TableEvents } from '../core/TABLE_EVENT_TYPE';\nimport type { BaseTableAPI, BaseTableConstructorOptions } from '../ts-types/base-table';\nimport type { IVTablePlugin } from './interface';\n\nexport class PluginManager {\n private plugins: Map<string, IVTablePlugin> = new Map();\n private table: BaseTableAPI;\n\n constructor(table: BaseTableAPI, options: BaseTableConstructorOptions) {\n this.table = table;\n options.plugins?.map(plugin => {\n this.register(plugin);\n this._bindTableEventForPlugin(plugin);\n });\n }\n\n // 注册插件\n register(plugin: IVTablePlugin): void {\n this.plugins.set(plugin.id, plugin);\n }\n\n // 注册多个插件\n registerAll(plugins: IVTablePlugin[]): void {\n plugins.forEach(plugin => this.register(plugin));\n }\n\n // 获取插件\n getPlugin(id: string): IVTablePlugin | undefined {\n return this.plugins.get(id);\n }\n getPluginByName(name: string): IVTablePlugin | undefined {\n return Array.from(this.plugins.values()).find(plugin => plugin.name === name);\n }\n\n _bindTableEventForPlugin(plugin: IVTablePlugin) {\n plugin.runTime?.forEach(runTime => {\n this.table.on(runTime, (...args) => {\n plugin.run?.(...args, runTime, this.table);\n });\n });\n }\n\n // 更新所有插件\n updatePlugins(plugins?: IVTablePlugin[]): void {\n // 先找到plugins中没有,但this.plugins中有,也就是已经被移除的插件\n const removedPlugins = Array.from(this.plugins.values()).filter(plugin => !plugins?.some(p => p.id === plugin.id));\n removedPlugins.forEach(plugin => {\n this.release();\n this.plugins.delete(plugin.id);\n });\n // 更新插件\n this.plugins.forEach(plugin => {\n if (plugin.update) {\n plugin.update();\n }\n });\n // 添加新插件\n const addedPlugins = plugins?.filter(plugin => !this.plugins.has(plugin.id));\n addedPlugins?.forEach(plugin => {\n this.register(plugin);\n this._bindTableEventForPlugin(plugin);\n });\n }\n release() {\n this.plugins.forEach(plugin => {\n plugin.release?.(this.table);\n });\n }\n}\n"]}
package/cjs/register.js CHANGED
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.clearAll = exports.aggregator = exports.editor = exports.chartModule = exports.icon = exports.theme = void 0;
6
6
 
7
- const icons_1 = require("./plugins/icons"), themes_1 = require("./plugins/themes"), chartModules_1 = require("./plugins/chartModules"), editors_1 = require("./edit/editors"), aggregation_1 = require("./ts-types/dataset/aggregation");
7
+ const icons_1 = require("./icons"), themes_1 = require("./themes/themes"), chartModule_1 = require("./chartModule"), editors_1 = require("./edit/editors"), aggregation_1 = require("./ts-types/dataset/aggregation");
8
8
 
9
9
  function register(obj, name, value) {
10
10
  const old = obj[name];
@@ -20,7 +20,7 @@ function icon(name, icon) {
20
20
  }
21
21
 
22
22
  function chartModule(name, chartModule) {
23
- return null != chartModule ? register(chartModules_1.chartTypes, name, chartModule) : chartModules_1.chartTypes[name];
23
+ return null != chartModule ? register(chartModule_1.chartTypes, name, chartModule) : chartModule_1.chartTypes[name];
24
24
  }
25
25
 
26
26
  function editor(name, editor) {
@@ -36,8 +36,8 @@ function clear(obj) {
36
36
  }
37
37
 
38
38
  function clearAll() {
39
- clear(themes_1.themes), clear(icons_1.icons), clear(chartModules_1.chartTypes),
40
- clear(editors_1.editors), clear(aggregation_1.registeredAggregators);
39
+ clear(themes_1.themes), clear(icons_1.icons), clear(chartModule_1.chartTypes), clear(editors_1.editors),
40
+ clear(aggregation_1.registeredAggregators);
41
41
  }
42
42
 
43
43
  exports.theme = theme, exports.icon = icon, exports.chartModule = chartModule, exports.editor = editor,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/register.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AACvD,6CAA0D;AAC1D,yDAAwE;AAGxE,4CAAyC;AAEzC,gEAAuE;AAEvE,SAAS,QAAQ,CAAC,GAA2B,EAAE,IAAY,EAAE,KAAU;IACrE,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAClB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,KAAK,CAAC,IAAY,EAAE,KAAyB;IAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,OAAO,QAAQ,CAAC,eAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KAC5C;IACD,OAAO,eAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AALD,sBAKC;AACD,SAAgB,IAAI,CAAC,IAAY,EAAE,IAAuB;IACxD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;QACvC,OAAO,QAAQ,CAAC,aAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KAC1C;IACD,OAAO,aAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AALD,oBAKC;AACD,SAAgB,WAAW,CAAC,IAAY,EAAE,WAAiB;IACzD,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;QACrD,OAAO,QAAQ,CAAC,yBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;KACtD;IACD,OAAO,yBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AALD,kCAKC;AACD,SAAgB,MAAM,CAAC,IAAY,EAAE,MAAgB;IACnD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;QAC3C,OAAO,QAAQ,CAAC,iBAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACxC;IACD,OAAO,iBAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AALD,wBAKC;AACD,SAAgB,UAAU,CACxB,eAAuB,EACvB,WAEC;IAED,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;QACrD,QAAQ,CAAC,mCAAqB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;KAC/D;AACH,CAAC;AATD,gCASC;AAED,SAAS,KAAK,CAAC,GAAQ;IACrB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;KACjB;AACH,CAAC;AAID,SAAgB,QAAQ;IACtB,KAAK,CAAC,eAAY,CAAC,CAAC;IACpB,KAAK,CAAC,aAAW,CAAC,CAAC;IACnB,KAAK,CAAC,yBAAgB,CAAC,CAAC;IACxB,KAAK,CAAC,iBAAO,CAAC,CAAC;IACf,KAAK,CAAC,mCAAqB,CAAC,CAAC;AAC/B,CAAC;AAND,4BAMC","file":"register.js","sourcesContent":["import { icons as iconPlugins } from './plugins/icons';\nimport { themes as themePlugins } from './plugins/themes';\nimport { chartTypes as chartTypePlugins } from './plugins/chartModules';\nimport type { ColumnIconOption, ITableThemeDefine } from './ts-types';\nimport type { IEditor } from '@visactor/vtable-editors';\nimport { editors } from './edit/editors';\nimport type { Aggregator } from './ts-types/dataset/aggregation';\nimport { registeredAggregators } from './ts-types/dataset/aggregation';\n\nfunction register(obj: { [key: string]: any }, name: string, value: any): any {\n const old = obj[name];\n obj[name] = value;\n return old;\n}\n\nexport function theme(name: string, theme?: ITableThemeDefine): ITableThemeDefine {\n if (theme !== null && theme !== undefined) {\n return register(themePlugins, name, theme);\n }\n return themePlugins[name];\n}\nexport function icon(name: string, icon?: ColumnIconOption): ColumnIconOption {\n if (icon !== null && icon !== undefined) {\n return register(iconPlugins, name, icon);\n }\n return iconPlugins[name];\n}\nexport function chartModule(name: string, chartModule?: any): any {\n if (chartModule !== null && chartModule !== undefined) {\n return register(chartTypePlugins, name, chartModule);\n }\n return chartTypePlugins[name];\n}\nexport function editor(name: string, editor?: IEditor): IEditor {\n if (editor !== null && editor !== undefined) {\n return register(editors, name, editor);\n }\n return editors[name];\n}\nexport function aggregator(\n aggregationType: string,\n aggregation: {\n new (args: { key: string; field: string; formatFun?: any }): Aggregator;\n }\n) {\n if (aggregation !== null && aggregation !== undefined) {\n register(registeredAggregators, aggregationType, aggregation);\n }\n}\n// 清理注册的全局theme icon chartModule\nfunction clear(obj: any) {\n for (const key in obj) {\n delete obj[key];\n }\n}\n/**\n * 清理注册的全局theme icon chartModule\n */\nexport function clearAll() {\n clear(themePlugins);\n clear(iconPlugins);\n clear(chartTypePlugins);\n clear(editors);\n clear(registeredAggregators);\n}\n"]}
1
+ {"version":3,"sources":["../src/register.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAC/C,4CAAyD;AACzD,+CAA+D;AAG/D,4CAAyC;AAEzC,gEAAuE;AAEvE,SAAS,QAAQ,CAAC,GAA2B,EAAE,IAAY,EAAE,KAAU;IACrE,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAClB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,KAAK,CAAC,IAAY,EAAE,KAAyB;IAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,OAAO,QAAQ,CAAC,eAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KAC5C;IACD,OAAO,eAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AALD,sBAKC;AACD,SAAgB,IAAI,CAAC,IAAY,EAAE,IAAuB;IACxD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;QACvC,OAAO,QAAQ,CAAC,aAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KAC1C;IACD,OAAO,aAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AALD,oBAKC;AACD,SAAgB,WAAW,CAAC,IAAY,EAAE,WAAiB;IACzD,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;QACrD,OAAO,QAAQ,CAAC,wBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;KACtD;IACD,OAAO,wBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AALD,kCAKC;AACD,SAAgB,MAAM,CAAC,IAAY,EAAE,MAAgB;IACnD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;QAC3C,OAAO,QAAQ,CAAC,iBAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACxC;IACD,OAAO,iBAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AALD,wBAKC;AACD,SAAgB,UAAU,CACxB,eAAuB,EACvB,WAEC;IAED,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;QACrD,QAAQ,CAAC,mCAAqB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;KAC/D;AACH,CAAC;AATD,gCASC;AAED,SAAS,KAAK,CAAC,GAAQ;IACrB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;KACjB;AACH,CAAC;AAID,SAAgB,QAAQ;IACtB,KAAK,CAAC,eAAY,CAAC,CAAC;IACpB,KAAK,CAAC,aAAW,CAAC,CAAC;IACnB,KAAK,CAAC,wBAAgB,CAAC,CAAC;IACxB,KAAK,CAAC,iBAAO,CAAC,CAAC;IACf,KAAK,CAAC,mCAAqB,CAAC,CAAC;AAC/B,CAAC;AAND,4BAMC","file":"register.js","sourcesContent":["import { icons as iconPlugins } from './icons';\nimport { themes as themePlugins } from './themes/themes';\nimport { chartTypes as chartTypePlugins } from './chartModule';\nimport type { ColumnIconOption, ITableThemeDefine } from './ts-types';\nimport type { IEditor } from '@visactor/vtable-editors';\nimport { editors } from './edit/editors';\nimport type { Aggregator } from './ts-types/dataset/aggregation';\nimport { registeredAggregators } from './ts-types/dataset/aggregation';\n\nfunction register(obj: { [key: string]: any }, name: string, value: any): any {\n const old = obj[name];\n obj[name] = value;\n return old;\n}\n\nexport function theme(name: string, theme?: ITableThemeDefine): ITableThemeDefine {\n if (theme !== null && theme !== undefined) {\n return register(themePlugins, name, theme);\n }\n return themePlugins[name];\n}\nexport function icon(name: string, icon?: ColumnIconOption): ColumnIconOption {\n if (icon !== null && icon !== undefined) {\n return register(iconPlugins, name, icon);\n }\n return iconPlugins[name];\n}\nexport function chartModule(name: string, chartModule?: any): any {\n if (chartModule !== null && chartModule !== undefined) {\n return register(chartTypePlugins, name, chartModule);\n }\n return chartTypePlugins[name];\n}\nexport function editor(name: string, editor?: IEditor): IEditor {\n if (editor !== null && editor !== undefined) {\n return register(editors, name, editor);\n }\n return editors[name];\n}\nexport function aggregator(\n aggregationType: string,\n aggregation: {\n new (args: { key: string; field: string; formatFun?: any }): Aggregator;\n }\n) {\n if (aggregation !== null && aggregation !== undefined) {\n register(registeredAggregators, aggregationType, aggregation);\n }\n}\n// 清理注册的全局theme icon chartModule\nfunction clear(obj: any) {\n for (const key in obj) {\n delete obj[key];\n }\n}\n/**\n * 清理注册的全局theme icon chartModule\n */\nexport function clearAll() {\n clear(themePlugins);\n clear(iconPlugins);\n clear(chartTypePlugins);\n clear(editors);\n clear(registeredAggregators);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/component/menu.ts"],"names":[],"mappings":";;;AACA,6CAAmD;AACnD,kEAA+D;AAE/D,4CAAyC;AACzC,0CAAuC;AASvC,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,iCAAuB,CAAA;IACvB,uCAA6B,CAAA;IAC7B,6BAAmB,CAAA;AACrB,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB;AAID,MAAM,SAAS,GAAG;IAChB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,kBAAkB;IAC9B,KAAK,EAAE,MAAM;IACb,cAAc,EAAE,SAAS;IACzB,YAAY,EAAE,MAAM;IACpB,UAAU,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;IACtB,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,CAAC;IACd,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,GAAG;CAClB,CAAC;AAEF,MAAa,WAAW;IActB,YAAY,KAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,aAAK,CAAC;YAC7B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YAEJ,IAAI,EAAE,SAAS,CAAC,OAAO;YACvB,MAAM,EAAE,SAAS,CAAC,WAAW;YAC7B,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,SAAS,EAAE,SAAS,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG;YACf,CAAC,EAAE,CAAC,CAAC;YACL,CAAC,EAAE,CAAC,CAAC;YACL,GAAG,EAAE,CAAC,CAAC;YACP,GAAG,EAAE,CAAC,CAAC;YACP,IAAI,EAAE,QAAQ,CAAC,QAAQ;YACvB,QAAQ,EAAE,EAAE;YACZ,cAAc,EAAE,CAAC,CAAC;SACnB,CAAC;IAUJ,CAAC;IAED,kBAAkB,CAAC,cAAqB;QACtC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE/C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,OAAO;IAEP,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,GAAW,EAAE,GAAW,EAAE,IAAc,EAAE,QAAmB;QACxF,IAAI,IAAI,KAAK,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAExE,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa,EAAE;gBAClB,OAAO;aACR;YACD,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;SAEnD;aAAM,IAAI,IAAI,KAAK,QAAQ,CAAC,WAAW,EAAE;YACxC,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACrC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBACvD,IAAI,CAAC,aAAa,EAAE;oBAClB,OAAO;iBACR;gBACD,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC;gBACnD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAC9D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;aACnD;SACF;QACD,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEhF,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,GAAW,EAAE,IAAc,EAAE,QAAwB,EAAE,cAAsB;QACvG,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC;IACjD,CAAC;IAED,uBAAuB,CAAC,GAAW,EAAE,GAAW;QAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1D,IAAI,IAAI,KAAK,QAAQ,CAAC,QAAQ,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YAClE,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB,CAAC,CAAS,EAAE,CAAS;;QACzC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,IAAI,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,MAAK,MAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,0CAAE,gBAAgB,CAAA,EAAE;YAClG,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,QAAkB,EAAE,cAAsB;QAE3D,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QAGpC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC;QAC9B,MAAM,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC;QAChC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;YAC/B,MAAM,aAAa,GAAG,cAAc,KAAK,KAAK,CAAC;YAC/C,IAAI,IAAI,CAAC;YACT,IAAI,IAAI,CAAC;YACT,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,IAAI,GAAG,IAAI,CAAC;aACb;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBACnC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACjB,IAAI,aAAa,EAAE;oBACjB,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;iBAC1B;qBAAM;oBACL,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;iBAClB;aACF;YAED,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC;gBACtB,CAAC;gBACD,CAAC;gBAED,MAAM,EAAE,SAAS,CAAC,UAAU;gBAC5B,IAAI,EAAE,SAAS,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAGtC,KAAK,CAAC,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE;gBACvC,IAAI,SAAS,KAAK,OAAO,EAAE;oBACzB,OAAO;wBACL,IAAI,EAAE,SAAS,CAAC,YAAY;qBAC7B,CAAC;iBACH;gBACD,OAAO;oBACL,IAAI,EAAE,SAAS,CAAC,OAAO;iBACxB,CAAC;YACJ,CAAC,CAAC;YACF,KAAK,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAiB,EAAE,EAAE;gBAC3D,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAiB,EAAE,EAAE;gBAC3D,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,cAAI,CAAC;gBACxB,CAAC,EAAE,SAAS,CAAC,eAAe;gBAC5B,CAAC,EAAE,SAAS,CAAC,eAAe;gBAC5B,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK;gBAChE,IAAI;gBACJ,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,QAAQ,EAAE,GAAG;aAEd,CAAC,CAAC;YACH,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEzB,IAAI,IAAI,EAAE;gBACR,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAChD,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,IAAI,WAAI,CAAC;oBACxB,CAAC,EAAE,SAAS,CAAC,eAAe;oBAC5B,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC;oBAC1C,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,UAAU;oBAClB,KAAK,EAAE,IAAI,CAAC,GAAG;oBACf,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;gBAC5B,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACvC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;aACnE;YAGD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;YAExD,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAC/B,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC,eAAe,GAAG,CAAC,GAAG,SAAS,CAAC,WAAW,GAAG,CAAC;YAC3E,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,WAAW;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,SAAgB,EAAE,EAAE;YACtD,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,CAAS,EAAE,CAAS;QAEjC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAC/B,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzF,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAE/B,CAAC,EAAE,CAAC,IAAI;YACR,CAAC,EAAE,CAAC,IAAI;SACT,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;IAC3C,CAAC;IASD,WAAW,CAAC,GAAW,EAAE,GAAW,EAAE,IAAc;;QAClD,IAAI,IAAI,KAAK,QAAQ,CAAC,QAAQ,EAAE;YAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAClD,YAAY,GAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAgB,CAAC,YAAY,CAAC;YACtF,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;gBACtC,YAAY,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;aAC/D;YACD,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;wBACrD,cAAc,GAAG,CAAC,CAAC;wBACnB,MAAM;qBACP;iBACF;aACF;YACD,OAAO;gBACL,QAAQ,EAAE,YAAY;gBACtB,cAAc;aACf,CAAC;SACH;aAAM,IAAI,IAAI,KAAK,QAAQ,CAAC,WAAW,EAAE;YACxC,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,0CAAE,gBAAgB,CAAC;YACrE,IAAI,QAAQ,CAAC;YACb,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC9B,QAAQ,GAAG,WAAW,CAAC;aACxB;iBAAM,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;gBAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,CAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;oBAC5B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC;oBACvC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAC9B,CAAC;gBAClB,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aACzC;YACD,OAAO;gBACL,QAAQ;gBACR,cAAc,EAAE,CAAC,CAAC;aACnB,CAAC;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS;QAEP,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAiB,EAAE,EAAE;YACjE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YACrB,IAAI,MAAM,IAAK,MAA2B,CAAC,IAAI,KAAK,WAAW,EAAE;gBAE/D,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAA0B,CAAC,CAAC;gBACrE,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC7G,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;gBAC9D,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mCAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;aAIzE;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,MAAc;QAQzB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAC;QACvC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,eAAe,CAAC,CAAC,KAAa,EAAE,CAAS,EAAE,EAAE;YAClD,IAAI,KAAK,KAAK,MAAM,EAAE;gBACpB,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,QAAQ;YAChD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,CAAC,CAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAS,CAAC,IAAI,CAAC;QACnD,MAAM,OAAO,GACX,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,QAAQ;YAChD,CAAC,CAAC,IAAI;YACN,CAAC,CAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAS,CAAC,OAAO,IAAI,IAAI,CAAC;QAE9D,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;YACvB,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;YACvB,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,cAAc;YAClD,IAAI;YACJ,OAAO;SACR,CAAC;IACJ,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;IAC7C,CAAC;CACF;AAhVD,kCAgVC","file":"menu.js","sourcesContent":["import type { FederatedEvent, IGroup } from './../../vrender';\nimport { createRect, Text } from './../../vrender';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport type { ColumnDefine, MenuListItem } from '../../ts-types';\nimport { Group } from '../graphic/group';\nimport { Icon } from '../graphic/icon';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\n\n/**\n * 菜单类型\n * dropDown 下拉菜单\n * contextmenu 右键菜单\n * custom 自定义菜单\n */\nexport enum MenuType {\n 'dropDown' = 'dropDown',\n 'contextmenu' = 'contextmenu',\n 'custom' = 'custom'\n}\n\ntype MenuInfo = MenuListItem[];\n\nconst menuStyle = {\n fontSize: 12,\n fontFamily: 'Arial,sans-serif',\n color: '#000',\n highlightColor: '#2E68CF',\n hoverBgColor: '#EEE',\n lineHeight: 12 + 9 + 9,\n bgColor: '#FFF',\n cornerRadius: 4,\n borderWidth: 0.5,\n borderColor: '#CCC',\n menuPadding: 6,\n menuItemPadding: 9,\n maxLineWidth: 200\n};\n\nexport class MenuHandler {\n private _table: BaseTableAPI;\n private _menuInstance: IGroup;\n private _menuInfo: {\n x: number;\n y: number;\n col: number;\n row: number;\n type: MenuType;\n menuInfo: MenuListItem[];\n highlightIndex: number;\n };\n // private _attachInfo?: AttachInfo | null;\n\n constructor(table: BaseTableAPI) {\n this._table = table;\n this._menuInstance = new Group({\n x: 0,\n y: 0,\n // visible: false,\n fill: menuStyle.bgColor,\n stroke: menuStyle.borderColor,\n cornerRadius: menuStyle.cornerRadius,\n lineWidth: menuStyle.borderWidth\n });\n this._menuInfo = {\n x: -1,\n y: -1,\n col: -1,\n row: -1,\n type: MenuType.dropDown,\n menuInfo: [],\n highlightIndex: -1\n };\n\n // this._menuInstance.setTheme({\n // rect: {\n // width: 100,\n // },\n // });\n\n // 绑定事件\n // this._bindTableEvent(table);\n }\n\n bindTableComponent(componentGroup: Group) {\n componentGroup.appendChild(this._menuInstance);\n\n this.bindEvent();\n }\n\n release() {\n // do nothing\n }\n\n attach(x: number, y: number, col: number, row: number, type: MenuType, menuInfo?: MenuInfo) {\n if (type === MenuType.dropDown && this.checkDropDownMenuChange(col, row)) {\n // 菜单内容变化,更新菜单Group\n const tableMenuInfo = this.getMenuInfo(col, row, type);\n if (!tableMenuInfo) {\n return;\n }\n const { menuInfo, highlightIndex } = tableMenuInfo;\n this.updateMenuInfo(col, row, type, menuInfo, highlightIndex);\n this.updateMenuInstance(menuInfo, highlightIndex);\n // this.updatePosition(x - this._table.scenegraph.x, y - this._table.scenegraph.y);\n } else if (type === MenuType.contextmenu) {\n if (this.checkContextMenuChange(x, y)) {\n const tableMenuInfo = this.getMenuInfo(col, row, type);\n if (!tableMenuInfo) {\n return;\n }\n const { menuInfo, highlightIndex } = tableMenuInfo;\n this.updateMenuInfo(col, row, type, menuInfo, highlightIndex);\n this.updateMenuInstance(menuInfo, highlightIndex);\n }\n }\n this.updatePosition(x - this._table.scenegraph.x, y - this._table.scenegraph.y);\n\n this.addToScene();\n }\n\n updateMenuInfo(col: number, row: number, type: MenuType, menuInfo: MenuListItem[], highlightIndex: number) {\n this._menuInfo.col = col;\n this._menuInfo.row = row;\n this._menuInfo.type = type;\n this._menuInfo.menuInfo = menuInfo;\n this._menuInfo.highlightIndex = highlightIndex;\n }\n\n checkDropDownMenuChange(col: number, row: number) {\n const { type, col: curCol, row: curRow } = this._menuInfo;\n if (type === MenuType.dropDown && col === curCol && row === curRow) {\n return false;\n }\n return true;\n }\n\n checkContextMenuChange(x: number, y: number) {\n const { type, menuInfo } = this._menuInfo;\n if (type === MenuType.contextmenu && menuInfo === this._table.internalProps.menu?.contextMenuItems) {\n return false;\n }\n return true;\n }\n\n updateMenuInstance(menuInfo: MenuInfo, highlightIndex: number) {\n // 清空Mark\n this._menuInstance.removeAllChild();\n\n // menu padding\n let y = menuStyle.menuPadding;\n const x = menuStyle.menuPadding;\n let maxWidth = 0;\n menuInfo.forEach((item, index) => {\n const isisHighlight = highlightIndex === index;\n let icon;\n let text;\n if (typeof item === 'string') {\n text = item;\n } else if (typeof item === 'object') {\n text = item.text;\n if (isisHighlight) {\n icon = item.selectedIcon;\n } else {\n icon = item.icon;\n }\n }\n\n const group = new Group({\n y,\n x,\n // childrenPickable: false,\n height: menuStyle.lineHeight,\n fill: menuStyle.bgColor\n });\n group.role = 'menu-item';\n this._menuInstance.appendChild(group);\n\n // 处理背景hover效果\n group.stateProxy = (stateName: string) => {\n if (stateName === 'hover') {\n return {\n fill: menuStyle.hoverBgColor\n };\n }\n return {\n fill: menuStyle.bgColor\n };\n };\n group.addEventListener('pointerenter', (e: FederatedEvent) => {\n group.addState('hover', true, false);\n this._table.scenegraph.updateNextFrame();\n });\n group.addEventListener('pointerleave', (e: FederatedEvent) => {\n group.removeState('hover', false);\n this._table.scenegraph.updateNextFrame();\n });\n\n const textMark = new Text({\n x: menuStyle.menuItemPadding,\n y: menuStyle.menuItemPadding,\n fill: isisHighlight ? menuStyle.highlightColor : menuStyle.color,\n text,\n textBaseline: 'top',\n fontSize: menuStyle.fontSize,\n fontFamily: menuStyle.fontFamily,\n pickable: false,\n maxLineWidth: menuStyle.maxLineWidth,\n ellipsis: '…'\n // lineHeight: menuStyle.lineHeight,\n });\n group.addChild(textMark);\n\n if (icon) {\n const textHeight = textMark.AABBBounds.height();\n const iconWidth = icon.width ?? 16;\n const iconHeight = icon.height ?? 16;\n const iconMark = new Icon({\n x: menuStyle.menuItemPadding,\n y: (menuStyle.lineHeight - iconHeight) / 2,\n width: iconWidth,\n height: iconHeight,\n image: icon.svg,\n pickable: false\n });\n iconMark.role = 'menu-icon';\n group.insertBefore(iconMark, textMark);\n textMark.setAttribute('x', iconWidth + menuStyle.menuItemPadding);\n }\n\n // const textWidth = textMark.AABBBounds.width();\n maxWidth = Math.max(group.AABBBounds.width(), maxWidth);\n\n y += menuStyle.lineHeight;\n });\n\n this._menuInstance.setAttributes({\n width: maxWidth + menuStyle.menuItemPadding * 2 + menuStyle.menuPadding * 2,\n height: y + menuStyle.menuPadding\n });\n this._menuInstance.forEachChildren((itemGroup: Group) => {\n itemGroup.setAttribute('width', maxWidth + menuStyle.menuItemPadding * 2);\n });\n }\n\n updatePosition(x: number, y: number) {\n // to do: 位置躲避\n this._menuInstance.setAttributes({\n x: this._menuInfo.type === MenuType.dropDown ? x - this._menuInstance.attribute.width : x,\n y\n });\n this._menuInfo.x = MenuType.dropDown ? x - this._menuInstance.attribute.width : x;\n this._menuInfo.y = y;\n }\n\n addToScene() {\n this._table.scenegraph.updateNextFrame();\n }\n\n detach() {\n this._menuInstance.setAttributes({\n // visible: false,\n x: -1000,\n y: -1000\n });\n // this._menuInstance.hideAll();\n this._table.scenegraph.updateNextFrame();\n }\n\n /**\n * @description: 获取对应单元格的菜单内容\n * @param {number} col\n * @param {number} row\n * @param {MenuType} type\n * @return {*}\n */\n getMenuInfo(col: number, row: number, type: MenuType) {\n if (type === MenuType.dropDown) {\n let dropDownMenu = this._table.globalDropDownMenu;\n dropDownMenu = (this._table._getHeaderLayoutMap(col, row) as HeaderData).dropDownMenu;\n if (typeof dropDownMenu === 'function') {\n dropDownMenu = dropDownMenu({ row, col, table: this._table });\n }\n let highlightIndex = -1;\n if (Array.isArray(dropDownMenu)) {\n for (let i = 0; i < dropDownMenu.length; i++) {\n if (this._table._dropDownMenuIsHighlight(col, row, i)) {\n highlightIndex = i;\n break;\n }\n }\n }\n return {\n menuInfo: dropDownMenu,\n highlightIndex\n };\n } else if (type === MenuType.contextmenu) {\n const contextmenu = this._table.internalProps.menu?.contextMenuItems;\n let menuInfo;\n if (Array.isArray(contextmenu)) {\n menuInfo = contextmenu;\n } else if (typeof contextmenu === 'function') {\n const { field } = (\n this._table.isHeader(col, row)\n ? this._table.getHeaderDefine(col, row)\n : this._table.getBodyColumnDefine(col, row)\n ) as ColumnDefine;\n menuInfo = contextmenu(field, row, col);\n }\n return {\n menuInfo,\n highlightIndex: -1\n };\n }\n return undefined;\n }\n\n bindEvent() {\n // 监听菜单内容click\n this._menuInstance.addEventListener('click', (e: FederatedEvent) => {\n const { target } = e;\n if (target && (target as unknown as Group).role === 'menu-item') {\n // 成功点击menu-item,触发自定义事件\n const resultMenuInfo = this.getEventInfo(target as unknown as Group);\n const resultTableInfo = this._table.getMenuInfo(this._menuInfo.col, this._menuInfo.row, this._menuInfo.type);\n const result = Object.assign(resultMenuInfo, resultTableInfo);\n result.event = e.nativeEvent;\n this._table.fireListeners(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, result);\n\n // 由DROPDOWNMENU_CLICK事件清空菜单\n // this.detach();\n }\n });\n }\n\n getEventInfo(target: IGroup): {\n col: number;\n row: number;\n menuKey: string;\n dropDownIndex: number;\n text: string;\n highlight: boolean;\n } {\n const parent = target.parent as IGroup;\n let index = 0;\n parent.forEachChildren((child: IGroup, i: number) => {\n if (child === target) {\n index = i - 1; // index 0为背景rect\n return true;\n }\n return false;\n });\n\n const text =\n typeof this._menuInfo.menuInfo[index] === 'string'\n ? this._menuInfo.menuInfo[index]\n : (this._menuInfo.menuInfo[index] as any).text;\n const menuKey =\n typeof this._menuInfo.menuInfo[index] === 'string'\n ? text\n : (this._menuInfo.menuInfo[index] as any).menuKey || text;\n\n return {\n col: this._menuInfo.col,\n row: this._menuInfo.row,\n dropDownIndex: index,\n highlight: index === this._menuInfo.highlightIndex,\n text,\n menuKey\n };\n }\n\n get bounds() {\n return this._menuInstance.globalAABBBounds;\n }\n}\n\n// class MenuContainer {}\n\n// class MenuElement {}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/component/menu.ts"],"names":[],"mappings":"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","file":"menu.js","sourcesContent":["import type { FederatedEvent, IGroup } from './../../vrender';\nimport { createRect, Text } from './../../vrender';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport type { ColumnDefine, MenuListItem } from '../../ts-types';\nimport { Group } from '../graphic/group';\nimport { Icon } from '../graphic/icon';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\n\n/**\n * 菜单类型\n * dropDown 下拉菜单\n * contextmenu 右键菜单\n * custom 自定义菜单\n */\nexport enum MenuType {\n 'dropDown' = 'dropDown',\n 'contextmenu' = 'contextmenu',\n 'custom' = 'custom'\n}\n\ntype MenuInfo = MenuListItem[];\n\nconst menuStyle = {\n fontSize: 12,\n fontFamily: 'Arial,sans-serif',\n color: '#000',\n highlightColor: '#2E68CF',\n hoverBgColor: '#EEE',\n lineHeight: 12 + 9 + 9,\n bgColor: '#FFF',\n cornerRadius: 4,\n borderWidth: 0.5,\n borderColor: '#CCC',\n menuPadding: 6,\n menuItemPadding: 9,\n maxLineWidth: 200\n};\n\nexport class MenuHandler {\n private _table: BaseTableAPI;\n private _menuInstance: IGroup;\n private _menuInfo: {\n x: number;\n y: number;\n col: number;\n row: number;\n type: MenuType;\n menuInfo: MenuListItem[];\n highlightIndex: number;\n };\n // private _attachInfo?: AttachInfo | null;\n\n constructor(table: BaseTableAPI) {\n this._table = table;\n this._menuInstance = new Group({\n x: 0,\n y: 0,\n // visible: false,\n fill: menuStyle.bgColor,\n stroke: menuStyle.borderColor,\n cornerRadius: menuStyle.cornerRadius,\n lineWidth: menuStyle.borderWidth\n });\n this._menuInfo = {\n x: -1,\n y: -1,\n col: -1,\n row: -1,\n type: MenuType.dropDown,\n menuInfo: [],\n highlightIndex: -1\n };\n\n // this._menuInstance.setTheme({\n // rect: {\n // width: 100,\n // },\n // });\n\n // 绑定事件\n // this._bindTableEvent(table);\n }\n\n bindTableComponent(componentGroup: Group) {\n componentGroup.appendChild(this._menuInstance);\n\n this.bindEvent();\n }\n\n release() {\n // do nothing\n }\n\n attach(x: number, y: number, col: number, row: number, type: MenuType, menuInfo?: MenuInfo) {\n if (type === MenuType.dropDown && this.checkDropDownMenuChange(col, row)) {\n // 菜单内容变化,更新菜单Group\n const tableMenuInfo = this.getMenuInfo(col, row, type);\n if (!tableMenuInfo) {\n return;\n }\n const { menuInfo, highlightIndex } = tableMenuInfo;\n this.updateMenuInfo(col, row, type, menuInfo, highlightIndex);\n this.updateMenuInstance(menuInfo, highlightIndex);\n // this.updatePosition(x - this._table.scenegraph.x, y - this._table.scenegraph.y);\n } else if (type === MenuType.contextmenu) {\n if (this.checkContextMenuChange(x, y)) {\n const tableMenuInfo = this.getMenuInfo(col, row, type);\n if (!tableMenuInfo) {\n return;\n }\n const { menuInfo, highlightIndex } = tableMenuInfo;\n this.updateMenuInfo(col, row, type, menuInfo, highlightIndex);\n this.updateMenuInstance(menuInfo, highlightIndex);\n }\n }\n this.updatePosition(x - this._table.scenegraph.x, y - this._table.scenegraph.y);\n\n this.addToScene();\n }\n\n updateMenuInfo(col: number, row: number, type: MenuType, menuInfo: MenuListItem[], highlightIndex: number) {\n this._menuInfo.col = col;\n this._menuInfo.row = row;\n this._menuInfo.type = type;\n this._menuInfo.menuInfo = menuInfo;\n this._menuInfo.highlightIndex = highlightIndex;\n }\n\n checkDropDownMenuChange(col: number, row: number) {\n const { type, col: curCol, row: curRow } = this._menuInfo;\n if (type === MenuType.dropDown && col === curCol && row === curRow) {\n return false;\n }\n return true;\n }\n\n checkContextMenuChange(x: number, y: number) {\n const { type, menuInfo } = this._menuInfo;\n if (type === MenuType.contextmenu && menuInfo === this._table.internalProps.menu?.contextMenuItems) {\n return false;\n }\n return true;\n }\n\n updateMenuInstance(menuInfo: MenuInfo, highlightIndex: number) {\n // 清空Mark\n this._menuInstance.removeAllChild();\n\n // menu padding\n let y = menuStyle.menuPadding;\n const x = menuStyle.menuPadding;\n let maxWidth = 0;\n menuInfo.forEach((item, index) => {\n const isisHighlight = highlightIndex === index;\n let icon;\n let text;\n if (typeof item === 'string') {\n text = item;\n } else if (typeof item === 'object') {\n text = item.text;\n if (isisHighlight) {\n icon = item.selectedIcon;\n } else {\n icon = item.icon;\n }\n }\n\n const group = new Group({\n y,\n x,\n // childrenPickable: false,\n height: menuStyle.lineHeight,\n fill: menuStyle.bgColor\n });\n group.role = 'menu-item';\n this._menuInstance.appendChild(group);\n\n // 处理背景hover效果\n group.stateProxy = (stateName: string) => {\n if (stateName === 'hover') {\n return {\n fill: menuStyle.hoverBgColor\n };\n }\n return {\n fill: menuStyle.bgColor\n };\n };\n group.addEventListener('pointerenter', (e: FederatedEvent) => {\n group.addState('hover', true, false);\n this._table.scenegraph.updateNextFrame();\n });\n group.addEventListener('pointerleave', (e: FederatedEvent) => {\n group.removeState('hover', false);\n this._table.scenegraph.updateNextFrame();\n });\n\n const textMark = new Text({\n x: menuStyle.menuItemPadding,\n y: menuStyle.menuItemPadding,\n fill: isisHighlight ? menuStyle.highlightColor : menuStyle.color,\n text,\n textBaseline: 'top',\n fontSize: menuStyle.fontSize,\n fontFamily: menuStyle.fontFamily,\n pickable: false,\n maxLineWidth: menuStyle.maxLineWidth,\n ellipsis: '…'\n // lineHeight: menuStyle.lineHeight,\n });\n group.addChild(textMark);\n\n if (icon) {\n const textHeight = textMark.AABBBounds.height();\n const iconWidth = icon.width ?? 16;\n const iconHeight = icon.height ?? 16;\n const iconMark = new Icon({\n x: menuStyle.menuItemPadding,\n y: (menuStyle.lineHeight - iconHeight) / 2,\n width: iconWidth,\n height: iconHeight,\n image: icon.svg,\n pickable: false\n });\n iconMark.role = 'menu-icon';\n group.insertBefore(iconMark, textMark);\n textMark.setAttribute('x', iconWidth + menuStyle.menuItemPadding);\n }\n\n // const textWidth = textMark.AABBBounds.width();\n maxWidth = Math.max(group.AABBBounds.width(), maxWidth);\n\n y += menuStyle.lineHeight;\n });\n\n this._menuInstance.setAttributes({\n width: maxWidth + menuStyle.menuItemPadding * 2 + menuStyle.menuPadding * 2,\n height: y + menuStyle.menuPadding\n });\n this._menuInstance.forEachChildren((itemGroup: Group) => {\n itemGroup.setAttribute('width', maxWidth + menuStyle.menuItemPadding * 2);\n });\n }\n\n updatePosition(x: number, y: number) {\n // to do: 位置躲避\n this._menuInstance.setAttributes({\n x: this._menuInfo.type === MenuType.dropDown ? x - this._menuInstance.attribute.width : x,\n y\n });\n this._menuInfo.x = MenuType.dropDown ? x - this._menuInstance.attribute.width : x;\n this._menuInfo.y = y;\n }\n\n addToScene() {\n this._table.scenegraph.updateNextFrame();\n }\n\n detach() {\n this._menuInstance.setAttributes({\n // visible: false,\n x: -1000,\n y: -1000\n });\n // this._menuInstance.hideAll();\n this._table.scenegraph.updateNextFrame();\n }\n\n /**\n * @description: 获取对应单元格的菜单内容\n * @param {number} col\n * @param {number} row\n * @param {MenuType} type\n * @return {*}\n */\n getMenuInfo(col: number, row: number, type: MenuType) {\n if (type === MenuType.dropDown) {\n let dropDownMenu = this._table.globalDropDownMenu;\n dropDownMenu = (this._table._getHeaderLayoutMap(col, row) as HeaderData).dropDownMenu;\n if (typeof dropDownMenu === 'function') {\n dropDownMenu = dropDownMenu({ row, col, table: this._table });\n }\n let highlightIndex = -1;\n if (Array.isArray(dropDownMenu)) {\n for (let i = 0; i < dropDownMenu.length; i++) {\n if (this._table._dropDownMenuIsHighlight(col, row, i)) {\n highlightIndex = i;\n break;\n }\n }\n }\n return {\n menuInfo: dropDownMenu,\n highlightIndex\n };\n } else if (type === MenuType.contextmenu) {\n const contextmenu = this._table.internalProps.menu?.contextMenuItems;\n let menuInfo;\n if (Array.isArray(contextmenu)) {\n menuInfo = contextmenu;\n } else if (typeof contextmenu === 'function') {\n const { field } = (\n this._table.isHeader(col, row)\n ? this._table.getHeaderDefine(col, row)\n : this._table.getBodyColumnDefine(col, row)\n ) as ColumnDefine;\n menuInfo = contextmenu(field, row, col);\n }\n return {\n menuInfo,\n highlightIndex: -1\n };\n }\n return undefined;\n }\n\n bindEvent() {\n // 监听菜单内容click\n this._menuInstance.addEventListener('click', (e: FederatedEvent) => {\n const { target } = e;\n if (target && (target as unknown as Group).role === 'menu-item') {\n // 成功点击menu-item,触发自定义事件\n const resultMenuInfo = this.getEventInfo(target as unknown as Group);\n const resultTableInfo = this._table.getMenuInfo(this._menuInfo.col, this._menuInfo.row, this._menuInfo.type);\n const result = Object.assign(resultMenuInfo, resultTableInfo);\n result.event = e.nativeEvent;\n this._table.fireListeners(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, result);\n\n // 由DROPDOWN_MENU_CLICK事件清空菜单\n // this.detach();\n }\n });\n }\n\n getEventInfo(target: IGroup): {\n col: number;\n row: number;\n menuKey: string;\n dropDownIndex: number;\n text: string;\n highlight: boolean;\n } {\n const parent = target.parent as IGroup;\n let index = 0;\n parent.forEachChildren((child: IGroup, i: number) => {\n if (child === target) {\n index = i - 1; // index 0为背景rect\n return true;\n }\n return false;\n });\n\n const text =\n typeof this._menuInfo.menuInfo[index] === 'string'\n ? this._menuInfo.menuInfo[index]\n : (this._menuInfo.menuInfo[index] as any).text;\n const menuKey =\n typeof this._menuInfo.menuInfo[index] === 'string'\n ? text\n : (this._menuInfo.menuInfo[index] as any).menuKey || text;\n\n return {\n col: this._menuInfo.col,\n row: this._menuInfo.row,\n dropDownIndex: index,\n highlight: index === this._menuInfo.highlightIndex,\n text,\n menuKey\n };\n }\n\n get bounds() {\n return this._menuInstance.globalAABBBounds;\n }\n}\n\n// class MenuContainer {}\n\n// class MenuElement {}\n"]}
@@ -42,6 +42,8 @@ export declare class TableComponent {
42
42
  updateMoveCol(backX: number, lineX: number, backY: number, lineY: number): void;
43
43
  setFrozenColumnShadow(col: number, isRightFrozen?: boolean): void;
44
44
  setRightFrozenColumnShadow(col: number): void;
45
+ hideFrozenColumnShadow(): void;
46
+ showFrozenColumnShadow(): void;
45
47
  hideVerticalScrollBar(): void;
46
48
  showVerticalScrollBar(): void;
47
49
  hideHorizontalScrollBar(): void;
@@ -8,7 +8,7 @@ const vrender_1 = require("./../../vrender"), vrender_2 = require("./../../vrend
8
8
 
9
9
  class TableComponent {
10
10
  constructor(table) {
11
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
11
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
12
12
  this.table = table;
13
13
  const theme = this.table.theme;
14
14
  this.createScrollBar();
@@ -132,9 +132,9 @@ class TableComponent {
132
132
  y: 0
133
133
  }), this.rowResizeLabel.appendChild(rowResizeLabelBack), this.rowResizeLabel.appendChild(rowResizeLabelText),
134
134
  this.cellMover = new cell_mover_1.CellMover(this.table);
135
- const shadowWidth = null === (_o = null === (_m = theme.frozenColumnLine) || void 0 === _m ? void 0 : _m.shadow) || void 0 === _o ? void 0 : _o.width, shadowStartColor = null === (_q = null === (_p = theme.frozenColumnLine) || void 0 === _p ? void 0 : _p.shadow) || void 0 === _q ? void 0 : _q.startColor, shadowEndColor = null === (_s = null === (_r = theme.frozenColumnLine) || void 0 === _r ? void 0 : _r.shadow) || void 0 === _s ? void 0 : _s.endColor;
135
+ const shadowWidth = null === (_o = null === (_m = theme.frozenColumnLine) || void 0 === _m ? void 0 : _m.shadow) || void 0 === _o ? void 0 : _o.width, shadowStartColor = null === (_q = null === (_p = theme.frozenColumnLine) || void 0 === _p ? void 0 : _p.shadow) || void 0 === _q ? void 0 : _q.startColor, shadowEndColor = null === (_s = null === (_r = theme.frozenColumnLine) || void 0 === _r ? void 0 : _r.shadow) || void 0 === _s ? void 0 : _s.endColor, visible = null === (_u = null === (_t = theme.frozenColumnLine) || void 0 === _t ? void 0 : _t.shadow) || void 0 === _u ? void 0 : _u.visible;
136
136
  this.frozenShadowLine = (0, vrender_1.createRect)({
137
- visible: !0,
137
+ visible: "always" === visible,
138
138
  pickable: !1,
139
139
  x: 0,
140
140
  y: 0,
@@ -155,7 +155,7 @@ class TableComponent {
155
155
  } ]
156
156
  }
157
157
  }), this.rightFrozenShadowLine = (0, vrender_1.createRect)({
158
- visible: !0,
158
+ visible: "always" === visible,
159
159
  pickable: !1,
160
160
  x: 0,
161
161
  y: 0,
@@ -398,28 +398,42 @@ class TableComponent {
398
398
  this.cellMover.update(backX, lineX, backY, lineY);
399
399
  }
400
400
  setFrozenColumnShadow(col, isRightFrozen) {
401
- if (col < 0) this.frozenShadowLine.setAttributes({
402
- visible: !1
403
- }); else {
404
- const colX = (0, util_1.getColX)(col, this.table, isRightFrozen);
405
- this.frozenShadowLine.setAttributes({
406
- visible: !0,
407
- x: colX,
408
- height: this.table.getDrawRange().height
409
- });
410
- }
401
+ var _a, _b;
402
+ const colX = (0, util_1.getColX)(col, this.table, isRightFrozen);
403
+ col < 0 || "always" !== (null === (_b = null === (_a = this.table.theme.frozenColumnLine) || void 0 === _a ? void 0 : _a.shadow) || void 0 === _b ? void 0 : _b.visible) ? this.frozenShadowLine.setAttributes({
404
+ visible: !1,
405
+ x: colX,
406
+ height: this.table.getDrawRange().height
407
+ }) : this.frozenShadowLine.setAttributes({
408
+ visible: !0,
409
+ x: colX,
410
+ height: this.table.getDrawRange().height
411
+ });
411
412
  }
412
413
  setRightFrozenColumnShadow(col) {
413
- if (col >= this.table.colCount) this.rightFrozenShadowLine.setAttributes({
414
- visible: !1
415
- }); else {
416
- const colX = (0, util_1.getColX)(col, this.table, !0);
417
- this.rightFrozenShadowLine.setAttributes({
418
- visible: !0,
419
- x: colX - this.rightFrozenShadowLine.attribute.width,
420
- height: this.table.getDrawRange().height
421
- });
422
- }
414
+ var _a, _b;
415
+ const colX = (0, util_1.getColX)(col, this.table, !0);
416
+ col >= this.table.colCount || "always" !== (null === (_b = null === (_a = this.table.theme.frozenColumnLine) || void 0 === _a ? void 0 : _a.shadow) || void 0 === _b ? void 0 : _b.visible) ? this.rightFrozenShadowLine.setAttributes({
417
+ visible: !1,
418
+ x: colX - this.rightFrozenShadowLine.attribute.width,
419
+ height: this.table.getDrawRange().height
420
+ }) : this.rightFrozenShadowLine.setAttributes({
421
+ visible: !0,
422
+ x: colX - this.rightFrozenShadowLine.attribute.width,
423
+ height: this.table.getDrawRange().height
424
+ });
425
+ }
426
+ hideFrozenColumnShadow() {
427
+ var _a, _b, _c, _d, _e;
428
+ const visible1 = null === (_b = null === (_a = this.table.theme.frozenColumnLine) || void 0 === _a ? void 0 : _a.shadow) || void 0 === _b ? void 0 : _b.visible;
429
+ "scrolling" === (null !== (_e = null === (_d = null === (_c = this.table.theme.frozenColumnLine) || void 0 === _c ? void 0 : _c.shadow) || void 0 === _d ? void 0 : _d.visible) && void 0 !== _e ? _e : visible1) && (this.frozenShadowLine.setAttribute("visible", !1),
430
+ this.rightFrozenShadowLine.setAttribute("visible", !1), this.table.scenegraph.updateNextFrame());
431
+ }
432
+ showFrozenColumnShadow() {
433
+ var _a, _b, _c, _d, _e;
434
+ const visible1 = null === (_b = null === (_a = this.table.theme.frozenColumnLine) || void 0 === _a ? void 0 : _a.shadow) || void 0 === _b ? void 0 : _b.visible;
435
+ "scrolling" === (null !== (_e = null === (_d = null === (_c = this.table.theme.frozenColumnLine) || void 0 === _c ? void 0 : _c.shadow) || void 0 === _d ? void 0 : _d.visible) && void 0 !== _e ? _e : visible1) && (this.frozenShadowLine.setAttribute("visible", !0),
436
+ this.rightFrozenShadowLine.setAttribute("visible", !0), this.table.scenegraph.updateNextFrame());
423
437
  }
424
438
  hideVerticalScrollBar() {
425
439
  var _a;