@visactor/vtable 0.9.0-alpha.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1210) hide show
  1. package/README.md +152 -0
  2. package/cjs/ListTable.d.ts +38 -0
  3. package/cjs/ListTable.js +258 -0
  4. package/cjs/ListTable.js.map +1 -0
  5. package/cjs/PivotTable.d.ts +50 -0
  6. package/cjs/PivotTable.js +275 -0
  7. package/cjs/PivotTable.js.map +1 -0
  8. package/cjs/body-helper/body-helper.d.ts +14 -0
  9. package/cjs/body-helper/body-helper.js +99 -0
  10. package/cjs/body-helper/body-helper.js.map +1 -0
  11. package/cjs/body-helper/style/ImageStyle.d.ts +7 -0
  12. package/cjs/body-helper/style/ImageStyle.js +24 -0
  13. package/cjs/body-helper/style/ImageStyle.js.map +1 -0
  14. package/cjs/body-helper/style/MultilineTextStyle.d.ts +13 -0
  15. package/cjs/body-helper/style/MultilineTextStyle.js +38 -0
  16. package/cjs/body-helper/style/MultilineTextStyle.js.map +1 -0
  17. package/cjs/body-helper/style/NumberStyle.d.ts +7 -0
  18. package/cjs/body-helper/style/NumberStyle.js +24 -0
  19. package/cjs/body-helper/style/NumberStyle.js.map +1 -0
  20. package/cjs/body-helper/style/ProgressBarStyle.d.ts +52 -0
  21. package/cjs/body-helper/style/ProgressBarStyle.js +126 -0
  22. package/cjs/body-helper/style/ProgressBarStyle.js.map +1 -0
  23. package/cjs/body-helper/style/Style.d.ts +85 -0
  24. package/cjs/body-helper/style/Style.js +200 -0
  25. package/cjs/body-helper/style/Style.js.map +1 -0
  26. package/cjs/body-helper/style.d.ts +10 -0
  27. package/cjs/body-helper/style.js +52 -0
  28. package/cjs/body-helper/style.js.map +1 -0
  29. package/cjs/chartType.d.ts +3 -0
  30. package/cjs/chartType.js +14 -0
  31. package/cjs/chartType.js.map +1 -0
  32. package/cjs/core/BaseTable.d.ts +287 -0
  33. package/cjs/core/BaseTable.js +1272 -0
  34. package/cjs/core/BaseTable.js.map +1 -0
  35. package/cjs/core/FouseInput.d.ts +11 -0
  36. package/cjs/core/FouseInput.js +38 -0
  37. package/cjs/core/FouseInput.js.map +1 -0
  38. package/cjs/core/TABLE_EVENT_TYPE.d.ts +30 -0
  39. package/cjs/core/TABLE_EVENT_TYPE.js +34 -0
  40. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -0
  41. package/cjs/core/tableHelper.d.ts +28 -0
  42. package/cjs/core/tableHelper.js +141 -0
  43. package/cjs/core/tableHelper.js.map +1 -0
  44. package/cjs/core.d.ts +3 -0
  45. package/cjs/core.js +24 -0
  46. package/cjs/core.js.map +1 -0
  47. package/cjs/data/CachedDataSource.d.ts +16 -0
  48. package/cjs/data/CachedDataSource.js +54 -0
  49. package/cjs/data/CachedDataSource.js.map +1 -0
  50. package/cjs/data/DataSource.d.ts +64 -0
  51. package/cjs/data/DataSource.js +294 -0
  52. package/cjs/data/DataSource.js.map +1 -0
  53. package/cjs/data/FilterDataSource.d.ts +1 -0
  54. package/cjs/data/FilterDataSource.js +1 -0
  55. package/cjs/data/FilterDataSource.js.map +1 -0
  56. package/cjs/data.d.ts +4 -0
  57. package/cjs/data.js +24 -0
  58. package/cjs/data.js.map +1 -0
  59. package/cjs/dataset/DataStatistics.d.ts +10 -0
  60. package/cjs/dataset/DataStatistics.js +81 -0
  61. package/cjs/dataset/DataStatistics.js.map +1 -0
  62. package/cjs/dataset/dataset.d.ts +72 -0
  63. package/cjs/dataset/dataset.js +490 -0
  64. package/cjs/dataset/dataset.js.map +1 -0
  65. package/cjs/dataset/flatDataToObject.d.ts +31 -0
  66. package/cjs/dataset/flatDataToObject.js +71 -0
  67. package/cjs/dataset/flatDataToObject.js.map +1 -0
  68. package/cjs/event/EventHandler.d.ts +45 -0
  69. package/cjs/event/EventHandler.js +120 -0
  70. package/cjs/event/EventHandler.js.map +1 -0
  71. package/cjs/event/EventTarget.d.ts +11 -0
  72. package/cjs/event/EventTarget.js +59 -0
  73. package/cjs/event/EventTarget.js.map +1 -0
  74. package/cjs/event/chart.d.ts +2 -0
  75. package/cjs/event/chart.js +24 -0
  76. package/cjs/event/chart.js.map +1 -0
  77. package/cjs/event/drill.d.ts +3 -0
  78. package/cjs/event/drill.js +23 -0
  79. package/cjs/event/drill.js.map +1 -0
  80. package/cjs/event/event.d.ts +35 -0
  81. package/cjs/event/event.js +426 -0
  82. package/cjs/event/event.js.map +1 -0
  83. package/cjs/event/media-click.d.ts +2 -0
  84. package/cjs/event/media-click.js +58 -0
  85. package/cjs/event/media-click.js.map +1 -0
  86. package/cjs/event/scroll.d.ts +2 -0
  87. package/cjs/event/scroll.js +23 -0
  88. package/cjs/event/scroll.js.map +1 -0
  89. package/cjs/header-helper/header-helper.d.ts +26 -0
  90. package/cjs/header-helper/header-helper.js +214 -0
  91. package/cjs/header-helper/header-helper.js.map +1 -0
  92. package/cjs/header-helper/style/ImageStyle.d.ts +7 -0
  93. package/cjs/header-helper/style/ImageStyle.js +25 -0
  94. package/cjs/header-helper/style/ImageStyle.js.map +1 -0
  95. package/cjs/header-helper/style/MultilineTextHeaderStyle.d.ts +13 -0
  96. package/cjs/header-helper/style/MultilineTextHeaderStyle.js +38 -0
  97. package/cjs/header-helper/style/MultilineTextHeaderStyle.js.map +1 -0
  98. package/cjs/header-helper/style/SortHeaderStyle.d.ts +1 -0
  99. package/cjs/header-helper/style/SortHeaderStyle.js +3 -0
  100. package/cjs/header-helper/style/SortHeaderStyle.js.map +1 -0
  101. package/cjs/header-helper/style/Style.d.ts +88 -0
  102. package/cjs/header-helper/style/Style.js +208 -0
  103. package/cjs/header-helper/style/Style.js.map +1 -0
  104. package/cjs/header-helper/style.d.ts +5 -0
  105. package/cjs/header-helper/style.js +30 -0
  106. package/cjs/header-helper/style.js.map +1 -0
  107. package/cjs/icons.d.ts +4 -0
  108. package/cjs/icons.js +241 -0
  109. package/cjs/icons.js.map +1 -0
  110. package/cjs/index.d.ts +17 -0
  111. package/cjs/index.js +95 -0
  112. package/cjs/index.js.map +1 -0
  113. package/cjs/layout/index.d.ts +1 -0
  114. package/cjs/layout/index.js +15 -0
  115. package/cjs/layout/index.js.map +1 -0
  116. package/cjs/layout/pivot-header-layout.d.ts +155 -0
  117. package/cjs/layout/pivot-header-layout.js +897 -0
  118. package/cjs/layout/pivot-header-layout.js.map +1 -0
  119. package/cjs/layout/pivot-layout.d.ts +86 -0
  120. package/cjs/layout/pivot-layout.js +422 -0
  121. package/cjs/layout/pivot-layout.js.map +1 -0
  122. package/cjs/layout/simple-header-layout.d.ts +67 -0
  123. package/cjs/layout/simple-header-layout.js +413 -0
  124. package/cjs/layout/simple-header-layout.js.map +1 -0
  125. package/cjs/menu/dom/BaseMenu.d.ts +15 -0
  126. package/cjs/menu/dom/BaseMenu.js +30 -0
  127. package/cjs/menu/dom/BaseMenu.js.map +1 -0
  128. package/cjs/menu/dom/Menu.d.ts +9 -0
  129. package/cjs/menu/dom/Menu.js +24 -0
  130. package/cjs/menu/dom/Menu.js.map +1 -0
  131. package/cjs/menu/dom/MenuHandler.d.ts +20 -0
  132. package/cjs/menu/dom/MenuHandler.js +134 -0
  133. package/cjs/menu/dom/MenuHandler.js.map +1 -0
  134. package/cjs/menu/dom/logic/MenuContainer.d.ts +22 -0
  135. package/cjs/menu/dom/logic/MenuContainer.js +110 -0
  136. package/cjs/menu/dom/logic/MenuContainer.js.map +1 -0
  137. package/cjs/menu/dom/logic/MenuElement.css +86 -0
  138. package/cjs/menu/dom/logic/MenuElement.d.ts +27 -0
  139. package/cjs/menu/dom/logic/MenuElement.js +278 -0
  140. package/cjs/menu/dom/logic/MenuElement.js.map +1 -0
  141. package/cjs/plugins/chartTypes.d.ts +3 -0
  142. package/cjs/plugins/chartTypes.js +6 -0
  143. package/cjs/plugins/chartTypes.js.map +1 -0
  144. package/cjs/plugins/icons.d.ts +12 -0
  145. package/cjs/plugins/icons.js +26 -0
  146. package/cjs/plugins/icons.js.map +1 -0
  147. package/cjs/plugins/themes.d.ts +4 -0
  148. package/cjs/plugins/themes.js +6 -0
  149. package/cjs/plugins/themes.js.map +1 -0
  150. package/cjs/register.d.ts +5 -0
  151. package/cjs/register.js +35 -0
  152. package/cjs/register.js.map +1 -0
  153. package/cjs/render/layout/arc.d.ts +23 -0
  154. package/cjs/render/layout/arc.js +20 -0
  155. package/cjs/render/layout/arc.js.map +1 -0
  156. package/cjs/render/layout/circle.d.ts +19 -0
  157. package/cjs/render/layout/circle.js +19 -0
  158. package/cjs/render/layout/circle.js.map +1 -0
  159. package/cjs/render/layout/container.d.ts +52 -0
  160. package/cjs/render/layout/container.js +99 -0
  161. package/cjs/render/layout/container.js.map +1 -0
  162. package/cjs/render/layout/direction.d.ts +22 -0
  163. package/cjs/render/layout/direction.js +35 -0
  164. package/cjs/render/layout/direction.js.map +1 -0
  165. package/cjs/render/layout/element.d.ts +47 -0
  166. package/cjs/render/layout/element.js +27 -0
  167. package/cjs/render/layout/element.js.map +1 -0
  168. package/cjs/render/layout/group-element.d.ts +25 -0
  169. package/cjs/render/layout/group-element.js +52 -0
  170. package/cjs/render/layout/group-element.js.map +1 -0
  171. package/cjs/render/layout/icon.d.ts +21 -0
  172. package/cjs/render/layout/icon.js +48 -0
  173. package/cjs/render/layout/icon.js.map +1 -0
  174. package/cjs/render/layout/image.d.ts +21 -0
  175. package/cjs/render/layout/image.js +20 -0
  176. package/cjs/render/layout/image.js.map +1 -0
  177. package/cjs/render/layout/index.d.ts +9 -0
  178. package/cjs/render/layout/index.js +25 -0
  179. package/cjs/render/layout/index.js.map +1 -0
  180. package/cjs/render/layout/line.d.ts +32 -0
  181. package/cjs/render/layout/line.js +88 -0
  182. package/cjs/render/layout/line.js.map +1 -0
  183. package/cjs/render/layout/percent-calc.d.ts +8 -0
  184. package/cjs/render/layout/percent-calc.js +13 -0
  185. package/cjs/render/layout/percent-calc.js.map +1 -0
  186. package/cjs/render/layout/rect.d.ts +22 -0
  187. package/cjs/render/layout/rect.js +19 -0
  188. package/cjs/render/layout/rect.js.map +1 -0
  189. package/cjs/render/layout/text.d.ts +22 -0
  190. package/cjs/render/layout/text.js +26 -0
  191. package/cjs/render/layout/text.js.map +1 -0
  192. package/cjs/scenegraph/component/cell-content.d.ts +36 -0
  193. package/cjs/scenegraph/component/cell-content.js +100 -0
  194. package/cjs/scenegraph/component/cell-content.js.map +1 -0
  195. package/cjs/scenegraph/component/cell-mover.d.ts +15 -0
  196. package/cjs/scenegraph/component/cell-mover.js +107 -0
  197. package/cjs/scenegraph/component/cell-mover.js.map +1 -0
  198. package/cjs/scenegraph/component/custom.d.ts +7 -0
  199. package/cjs/scenegraph/component/custom.js +212 -0
  200. package/cjs/scenegraph/component/custom.js.map +1 -0
  201. package/cjs/scenegraph/component/drill-icon.d.ts +9 -0
  202. package/cjs/scenegraph/component/drill-icon.js +70 -0
  203. package/cjs/scenegraph/component/drill-icon.js.map +1 -0
  204. package/cjs/scenegraph/component/menu.d.ts +41 -0
  205. package/cjs/scenegraph/component/menu.js +214 -0
  206. package/cjs/scenegraph/component/menu.js.map +1 -0
  207. package/cjs/scenegraph/component/table-component.d.ts +37 -0
  208. package/cjs/scenegraph/component/table-component.js +302 -0
  209. package/cjs/scenegraph/component/table-component.js.map +1 -0
  210. package/cjs/scenegraph/component/util.d.ts +2 -0
  211. package/cjs/scenegraph/component/util.js +11 -0
  212. package/cjs/scenegraph/component/util.js.map +1 -0
  213. package/cjs/scenegraph/debug-tool/debug-tool.d.ts +36 -0
  214. package/cjs/scenegraph/debug-tool/debug-tool.js +138 -0
  215. package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -0
  216. package/cjs/scenegraph/debug-tool/index.d.ts +4 -0
  217. package/cjs/scenegraph/debug-tool/index.js +14 -0
  218. package/cjs/scenegraph/debug-tool/index.js.map +1 -0
  219. package/cjs/scenegraph/graphic/chart.d.ts +30 -0
  220. package/cjs/scenegraph/graphic/chart.js +66 -0
  221. package/cjs/scenegraph/graphic/chart.js.map +1 -0
  222. package/cjs/scenegraph/graphic/contributions/chart-render.d.ts +10 -0
  223. package/cjs/scenegraph/graphic/contributions/chart-render.js +46 -0
  224. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -0
  225. package/cjs/scenegraph/graphic/contributions/group-contribution-render.d.ts +70 -0
  226. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +195 -0
  227. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -0
  228. package/cjs/scenegraph/graphic/contributions/image-contribution-render.d.ts +20 -0
  229. package/cjs/scenegraph/graphic/contributions/image-contribution-render.js +46 -0
  230. package/cjs/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -0
  231. package/cjs/scenegraph/graphic/contributions/index.d.ts +3 -0
  232. package/cjs/scenegraph/graphic/contributions/index.js +36 -0
  233. package/cjs/scenegraph/graphic/contributions/index.js.map +1 -0
  234. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.d.ts +17 -0
  235. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +47 -0
  236. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -0
  237. package/cjs/scenegraph/graphic/group.d.ts +23 -0
  238. package/cjs/scenegraph/graphic/group.js +94 -0
  239. package/cjs/scenegraph/graphic/group.js.map +1 -0
  240. package/cjs/scenegraph/graphic/icon.d.ts +24 -0
  241. package/cjs/scenegraph/graphic/icon.js +25 -0
  242. package/cjs/scenegraph/graphic/icon.js.map +1 -0
  243. package/cjs/scenegraph/graphic/text.d.ts +16 -0
  244. package/cjs/scenegraph/graphic/text.js +146 -0
  245. package/cjs/scenegraph/graphic/text.js.map +1 -0
  246. package/cjs/scenegraph/group-creater/cell-helper.d.ts +7 -0
  247. package/cjs/scenegraph/group-creater/cell-helper.js +84 -0
  248. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -0
  249. package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +3 -0
  250. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +78 -0
  251. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -0
  252. package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +7 -0
  253. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +123 -0
  254. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -0
  255. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +9 -0
  256. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +342 -0
  257. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -0
  258. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +3 -0
  259. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js +163 -0
  260. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -0
  261. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +5 -0
  262. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +64 -0
  263. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -0
  264. package/cjs/scenegraph/group-creater/cell-type/video-cell.d.ts +4 -0
  265. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +100 -0
  266. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -0
  267. package/cjs/scenegraph/group-creater/column-helper.d.ts +24 -0
  268. package/cjs/scenegraph/group-creater/column-helper.js +136 -0
  269. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -0
  270. package/cjs/scenegraph/group-creater/column.d.ts +14 -0
  271. package/cjs/scenegraph/group-creater/column.js +57 -0
  272. package/cjs/scenegraph/group-creater/column.js.map +1 -0
  273. package/cjs/scenegraph/group-creater/progress/proxy.d.ts +45 -0
  274. package/cjs/scenegraph/group-creater/progress/proxy.js +267 -0
  275. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -0
  276. package/cjs/scenegraph/header-icon/layout.d.ts +3 -0
  277. package/cjs/scenegraph/header-icon/layout.js +75 -0
  278. package/cjs/scenegraph/header-icon/layout.js.map +1 -0
  279. package/cjs/scenegraph/hover-state.d.ts +14 -0
  280. package/cjs/scenegraph/hover-state.js +27 -0
  281. package/cjs/scenegraph/hover-state.js.map +1 -0
  282. package/cjs/scenegraph/layout/auto-height.d.ts +2 -0
  283. package/cjs/scenegraph/layout/auto-height.js +50 -0
  284. package/cjs/scenegraph/layout/auto-height.js.map +1 -0
  285. package/cjs/scenegraph/layout/auto-width.d.ts +2 -0
  286. package/cjs/scenegraph/layout/auto-width.js +85 -0
  287. package/cjs/scenegraph/layout/auto-width.js.map +1 -0
  288. package/cjs/scenegraph/layout/compute-col-width.d.ts +3 -0
  289. package/cjs/scenegraph/layout/compute-col-width.js +194 -0
  290. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -0
  291. package/cjs/scenegraph/layout/move-cell.d.ts +2 -0
  292. package/cjs/scenegraph/layout/move-cell.js +61 -0
  293. package/cjs/scenegraph/layout/move-cell.js.map +1 -0
  294. package/cjs/scenegraph/layout/update-cell.d.ts +3 -0
  295. package/cjs/scenegraph/layout/update-cell.js +55 -0
  296. package/cjs/scenegraph/layout/update-cell.js.map +1 -0
  297. package/cjs/scenegraph/layout/update-height.d.ts +6 -0
  298. package/cjs/scenegraph/layout/update-height.js +90 -0
  299. package/cjs/scenegraph/layout/update-height.js.map +1 -0
  300. package/cjs/scenegraph/layout/update-width.d.ts +2 -0
  301. package/cjs/scenegraph/layout/update-width.js +103 -0
  302. package/cjs/scenegraph/layout/update-width.js.map +1 -0
  303. package/cjs/scenegraph/scenegraph.d.ts +109 -0
  304. package/cjs/scenegraph/scenegraph.js +798 -0
  305. package/cjs/scenegraph/scenegraph.js.map +1 -0
  306. package/cjs/scenegraph/style/frame-border.d.ts +3 -0
  307. package/cjs/scenegraph/style/frame-border.js +43 -0
  308. package/cjs/scenegraph/style/frame-border.js.map +1 -0
  309. package/cjs/scenegraph/utils/border-line.d.ts +8 -0
  310. package/cjs/scenegraph/utils/border-line.js +51 -0
  311. package/cjs/scenegraph/utils/border-line.js.map +1 -0
  312. package/cjs/scenegraph/utils/break-string.d.ts +1 -0
  313. package/cjs/scenegraph/utils/break-string.js +37 -0
  314. package/cjs/scenegraph/utils/break-string.js.map +1 -0
  315. package/cjs/scenegraph/utils/cell-pos.d.ts +4 -0
  316. package/cjs/scenegraph/utils/cell-pos.js +18 -0
  317. package/cjs/scenegraph/utils/cell-pos.js.map +1 -0
  318. package/cjs/scenegraph/utils/font.d.ts +1 -0
  319. package/cjs/scenegraph/utils/font.js +20 -0
  320. package/cjs/scenegraph/utils/font.js.map +1 -0
  321. package/cjs/scenegraph/utils/get-cell-merge.d.ts +3 -0
  322. package/cjs/scenegraph/utils/get-cell-merge.js +11 -0
  323. package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -0
  324. package/cjs/scenegraph/utils/get-prop.d.ts +4 -0
  325. package/cjs/scenegraph/utils/get-prop.js +44 -0
  326. package/cjs/scenegraph/utils/get-prop.js.map +1 -0
  327. package/cjs/scenegraph/utils/icon.d.ts +12 -0
  328. package/cjs/scenegraph/utils/icon.js +35 -0
  329. package/cjs/scenegraph/utils/icon.js.map +1 -0
  330. package/cjs/scenegraph/utils/keep-aspect-ratio.d.ts +4 -0
  331. package/cjs/scenegraph/utils/keep-aspect-ratio.js +16 -0
  332. package/cjs/scenegraph/utils/keep-aspect-ratio.js.map +1 -0
  333. package/cjs/scenegraph/utils/measure-text.d.ts +20 -0
  334. package/cjs/scenegraph/utils/measure-text.js +111 -0
  335. package/cjs/scenegraph/utils/measure-text.js.map +1 -0
  336. package/cjs/scenegraph/utils/padding.d.ts +1 -0
  337. package/cjs/scenegraph/utils/padding.js +16 -0
  338. package/cjs/scenegraph/utils/padding.js.map +1 -0
  339. package/cjs/scenegraph/utils/text-icon-layout.d.ts +9 -0
  340. package/cjs/scenegraph/utils/text-icon-layout.js +237 -0
  341. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -0
  342. package/cjs/scenegraph/utils/text-pos.d.ts +8 -0
  343. package/cjs/scenegraph/utils/text-pos.js +27 -0
  344. package/cjs/scenegraph/utils/text-pos.js.map +1 -0
  345. package/cjs/state/cell-move/adjust-header.d.ts +3 -0
  346. package/cjs/state/cell-move/adjust-header.js +20 -0
  347. package/cjs/state/cell-move/adjust-header.js.map +1 -0
  348. package/cjs/state/cell-move/index.d.ts +4 -0
  349. package/cjs/state/cell-move/index.js +60 -0
  350. package/cjs/state/cell-move/index.js.map +1 -0
  351. package/cjs/state/common/check-in-select.d.ts +8 -0
  352. package/cjs/state/common/check-in-select.js +63 -0
  353. package/cjs/state/common/check-in-select.js.map +1 -0
  354. package/cjs/state/drill/index.d.ts +2 -0
  355. package/cjs/state/drill/index.js +15 -0
  356. package/cjs/state/drill/index.js.map +1 -0
  357. package/cjs/state/hover/col.d.ts +5 -0
  358. package/cjs/state/hover/col.js +24 -0
  359. package/cjs/state/hover/col.js.map +1 -0
  360. package/cjs/state/hover/is-cell-hover.d.ts +5 -0
  361. package/cjs/state/hover/is-cell-hover.js +36 -0
  362. package/cjs/state/hover/is-cell-hover.js.map +1 -0
  363. package/cjs/state/hover/row.d.ts +5 -0
  364. package/cjs/state/hover/row.js +22 -0
  365. package/cjs/state/hover/row.js.map +1 -0
  366. package/cjs/state/hover/single.d.ts +5 -0
  367. package/cjs/state/hover/single.js +18 -0
  368. package/cjs/state/hover/single.js.map +1 -0
  369. package/cjs/state/hover/update-cell.d.ts +2 -0
  370. package/cjs/state/hover/update-cell.js +13 -0
  371. package/cjs/state/hover/update-cell.js.map +1 -0
  372. package/cjs/state/hover/update-position.d.ts +2 -0
  373. package/cjs/state/hover/update-position.js +44 -0
  374. package/cjs/state/hover/update-position.js.map +1 -0
  375. package/cjs/state/pin/index.d.ts +2 -0
  376. package/cjs/state/pin/index.js +10 -0
  377. package/cjs/state/pin/index.js.map +1 -0
  378. package/cjs/state/select/update-position.d.ts +4 -0
  379. package/cjs/state/select/update-position.js +111 -0
  380. package/cjs/state/select/update-position.js.map +1 -0
  381. package/cjs/state/sort/index.d.ts +2 -0
  382. package/cjs/state/sort/index.js +41 -0
  383. package/cjs/state/sort/index.js.map +1 -0
  384. package/cjs/state/spark-line/index.d.ts +3 -0
  385. package/cjs/state/spark-line/index.js +98 -0
  386. package/cjs/state/spark-line/index.js.map +1 -0
  387. package/cjs/state/state.d.ts +155 -0
  388. package/cjs/state/state.js +431 -0
  389. package/cjs/state/state.js.map +1 -0
  390. package/cjs/themes/ARCO.d.ts +3 -0
  391. package/cjs/themes/ARCO.js +114 -0
  392. package/cjs/themes/ARCO.js.map +1 -0
  393. package/cjs/themes/BRIGHT.d.ts +3 -0
  394. package/cjs/themes/BRIGHT.js +71 -0
  395. package/cjs/themes/BRIGHT.js.map +1 -0
  396. package/cjs/themes/DARK.d.ts +3 -0
  397. package/cjs/themes/DARK.js +90 -0
  398. package/cjs/themes/DARK.js.map +1 -0
  399. package/cjs/themes/DEFAULT.d.ts +3 -0
  400. package/cjs/themes/DEFAULT.js +89 -0
  401. package/cjs/themes/DEFAULT.js.map +1 -0
  402. package/cjs/themes/SIMPLIFY.d.ts +3 -0
  403. package/cjs/themes/SIMPLIFY.js +46 -0
  404. package/cjs/themes/SIMPLIFY.js.map +1 -0
  405. package/cjs/themes/theme.d.ts +34 -0
  406. package/cjs/themes/theme.js +520 -0
  407. package/cjs/themes/theme.js.map +1 -0
  408. package/cjs/themes.d.ts +28 -0
  409. package/cjs/themes.js +52 -0
  410. package/cjs/themes.js.map +1 -0
  411. package/cjs/tools/LimitPromiseQueue.d.ts +8 -0
  412. package/cjs/tools/LimitPromiseQueue.js +29 -0
  413. package/cjs/tools/LimitPromiseQueue.js.map +1 -0
  414. package/cjs/tools/NumberMap.d.ts +16 -0
  415. package/cjs/tools/NumberMap.js +76 -0
  416. package/cjs/tools/NumberMap.js.map +1 -0
  417. package/cjs/tools/Rect.d.ts +24 -0
  418. package/cjs/tools/Rect.js +69 -0
  419. package/cjs/tools/Rect.js.map +1 -0
  420. package/cjs/tools/calc.d.ts +5 -0
  421. package/cjs/tools/calc.js +197 -0
  422. package/cjs/tools/calc.js.map +1 -0
  423. package/cjs/tools/debounce.d.ts +1 -0
  424. package/cjs/tools/debounce.js +51 -0
  425. package/cjs/tools/debounce.js.map +1 -0
  426. package/cjs/tools/dom.d.ts +1 -0
  427. package/cjs/tools/dom.js +11 -0
  428. package/cjs/tools/dom.js.map +1 -0
  429. package/cjs/tools/env.d.ts +19 -0
  430. package/cjs/tools/env.js +48 -0
  431. package/cjs/tools/env.js.map +1 -0
  432. package/cjs/tools/global.d.ts +13 -0
  433. package/cjs/tools/global.js +12 -0
  434. package/cjs/tools/global.js.map +1 -0
  435. package/cjs/tools/helper.d.ts +60 -0
  436. package/cjs/tools/helper.js +216 -0
  437. package/cjs/tools/helper.js.map +1 -0
  438. package/cjs/tools/icons.d.ts +4 -0
  439. package/cjs/tools/icons.js +10 -0
  440. package/cjs/tools/icons.js.map +1 -0
  441. package/cjs/tools/isx.d.ts +16 -0
  442. package/cjs/tools/isx.js +117 -0
  443. package/cjs/tools/isx.js.map +1 -0
  444. package/cjs/tools/sort.d.ts +1 -0
  445. package/cjs/tools/sort.js +18 -0
  446. package/cjs/tools/sort.js.map +1 -0
  447. package/cjs/tools/style.css +60 -0
  448. package/cjs/tools/style.d.ts +2 -0
  449. package/cjs/tools/style.js +11 -0
  450. package/cjs/tools/style.js.map +1 -0
  451. package/cjs/tools/text-width.d.ts +1 -0
  452. package/cjs/tools/text-width.js +17 -0
  453. package/cjs/tools/text-width.js.map +1 -0
  454. package/cjs/tools/util.d.ts +45 -0
  455. package/cjs/tools/util.js +299 -0
  456. package/cjs/tools/util.js.map +1 -0
  457. package/cjs/tooltip/BaseTooltip.d.ts +22 -0
  458. package/cjs/tooltip/BaseTooltip.js +35 -0
  459. package/cjs/tooltip/BaseTooltip.js.map +1 -0
  460. package/cjs/tooltip/Tooltip.d.ts +5 -0
  461. package/cjs/tooltip/Tooltip.js +16 -0
  462. package/cjs/tooltip/Tooltip.js.map +1 -0
  463. package/cjs/tooltip/TooltipHandler.d.ts +27 -0
  464. package/cjs/tooltip/TooltipHandler.js +129 -0
  465. package/cjs/tooltip/TooltipHandler.js.map +1 -0
  466. package/cjs/tooltip/logic/BubbleTooltipElement.css +63 -0
  467. package/cjs/tooltip/logic/BubbleTooltipElement.d.ts +33 -0
  468. package/cjs/tooltip/logic/BubbleTooltipElement.js +152 -0
  469. package/cjs/tooltip/logic/BubbleTooltipElement.js.map +1 -0
  470. package/cjs/ts-types/base-table.d.ts +313 -0
  471. package/cjs/ts-types/base-table.js +6 -0
  472. package/cjs/ts-types/base-table.js.map +1 -0
  473. package/cjs/ts-types/chartType.d.ts +53 -0
  474. package/cjs/ts-types/chartType.js +6 -0
  475. package/cjs/ts-types/chartType.js.map +1 -0
  476. package/cjs/ts-types/column/index.d.ts +2 -0
  477. package/cjs/ts-types/column/index.js +21 -0
  478. package/cjs/ts-types/column/index.js.map +1 -0
  479. package/cjs/ts-types/column/style.d.ts +78 -0
  480. package/cjs/ts-types/column/style.js +6 -0
  481. package/cjs/ts-types/column/style.js.map +1 -0
  482. package/cjs/ts-types/column/type.d.ts +2 -0
  483. package/cjs/ts-types/column/type.js +6 -0
  484. package/cjs/ts-types/column/type.js.map +1 -0
  485. package/cjs/ts-types/common.d.ts +72 -0
  486. package/cjs/ts-types/common.js +6 -0
  487. package/cjs/ts-types/common.js.map +1 -0
  488. package/cjs/ts-types/customElement.d.ts +111 -0
  489. package/cjs/ts-types/customElement.js +6 -0
  490. package/cjs/ts-types/customElement.js.map +1 -0
  491. package/cjs/ts-types/customLayout.d.ts +8 -0
  492. package/cjs/ts-types/customLayout.js +6 -0
  493. package/cjs/ts-types/customLayout.js.map +1 -0
  494. package/cjs/ts-types/events.d.ts +182 -0
  495. package/cjs/ts-types/events.js +6 -0
  496. package/cjs/ts-types/events.js.map +1 -0
  497. package/cjs/ts-types/icon.d.ts +86 -0
  498. package/cjs/ts-types/icon.js +26 -0
  499. package/cjs/ts-types/icon.js.map +1 -0
  500. package/cjs/ts-types/index.d.ts +15 -0
  501. package/cjs/ts-types/index.js +28 -0
  502. package/cjs/ts-types/index.js.map +1 -0
  503. package/cjs/ts-types/list-table/define/basic-define.d.ts +36 -0
  504. package/cjs/ts-types/list-table/define/basic-define.js +6 -0
  505. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -0
  506. package/cjs/ts-types/list-table/define/chart-define.d.ts +10 -0
  507. package/cjs/ts-types/list-table/define/chart-define.js +6 -0
  508. package/cjs/ts-types/list-table/define/chart-define.js.map +1 -0
  509. package/cjs/ts-types/list-table/define/image-define.d.ts +15 -0
  510. package/cjs/ts-types/list-table/define/image-define.js +6 -0
  511. package/cjs/ts-types/list-table/define/image-define.js.map +1 -0
  512. package/cjs/ts-types/list-table/define/index.d.ts +21 -0
  513. package/cjs/ts-types/list-table/define/index.js +6 -0
  514. package/cjs/ts-types/list-table/define/index.js.map +1 -0
  515. package/cjs/ts-types/list-table/define/link-define.d.ts +17 -0
  516. package/cjs/ts-types/list-table/define/link-define.js +6 -0
  517. package/cjs/ts-types/list-table/define/link-define.js.map +1 -0
  518. package/cjs/ts-types/list-table/define/multilinetext-define.d.ts +12 -0
  519. package/cjs/ts-types/list-table/define/multilinetext-define.js +6 -0
  520. package/cjs/ts-types/list-table/define/multilinetext-define.js.map +1 -0
  521. package/cjs/ts-types/list-table/define/progressbar-define.d.ts +11 -0
  522. package/cjs/ts-types/list-table/define/progressbar-define.js +6 -0
  523. package/cjs/ts-types/list-table/define/progressbar-define.js.map +1 -0
  524. package/cjs/ts-types/list-table/define/sparkline-define.d.ts +10 -0
  525. package/cjs/ts-types/list-table/define/sparkline-define.js +6 -0
  526. package/cjs/ts-types/list-table/define/sparkline-define.js.map +1 -0
  527. package/cjs/ts-types/list-table/index.d.ts +2 -0
  528. package/cjs/ts-types/list-table/index.js +21 -0
  529. package/cjs/ts-types/list-table/index.js.map +1 -0
  530. package/cjs/ts-types/list-table/layout-map/api.d.ts +92 -0
  531. package/cjs/ts-types/list-table/layout-map/api.js +6 -0
  532. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -0
  533. package/cjs/ts-types/list-table/layout-map/index.d.ts +1 -0
  534. package/cjs/ts-types/list-table/layout-map/index.js +6 -0
  535. package/cjs/ts-types/list-table/layout-map/index.js.map +1 -0
  536. package/cjs/ts-types/menu.d.ts +73 -0
  537. package/cjs/ts-types/menu.js +6 -0
  538. package/cjs/ts-types/menu.js.map +1 -0
  539. package/cjs/ts-types/new-data-set.d.ts +95 -0
  540. package/cjs/ts-types/new-data-set.js +14 -0
  541. package/cjs/ts-types/new-data-set.js.map +1 -0
  542. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.d.ts +6 -0
  543. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js +13 -0
  544. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -0
  545. package/cjs/ts-types/pivot-table/corner.d.ts +19 -0
  546. package/cjs/ts-types/pivot-table/corner.js +6 -0
  547. package/cjs/ts-types/pivot-table/corner.js.map +1 -0
  548. package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +25 -0
  549. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js +6 -0
  550. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -0
  551. package/cjs/ts-types/pivot-table/dimension/image-dimension.d.ts +9 -0
  552. package/cjs/ts-types/pivot-table/dimension/image-dimension.js +6 -0
  553. package/cjs/ts-types/pivot-table/dimension/image-dimension.js.map +1 -0
  554. package/cjs/ts-types/pivot-table/dimension/index.d.ts +4 -0
  555. package/cjs/ts-types/pivot-table/dimension/index.js +6 -0
  556. package/cjs/ts-types/pivot-table/dimension/index.js.map +1 -0
  557. package/cjs/ts-types/pivot-table/dimension/link-dimension.d.ts +10 -0
  558. package/cjs/ts-types/pivot-table/dimension/link-dimension.js +6 -0
  559. package/cjs/ts-types/pivot-table/dimension/link-dimension.js.map +1 -0
  560. package/cjs/ts-types/pivot-table/dimension/multilinetext-dimension.d.ts +7 -0
  561. package/cjs/ts-types/pivot-table/dimension/multilinetext-dimension.js +6 -0
  562. package/cjs/ts-types/pivot-table/dimension/multilinetext-dimension.js.map +1 -0
  563. package/cjs/ts-types/pivot-table/index.d.ts +4 -0
  564. package/cjs/ts-types/pivot-table/index.js +22 -0
  565. package/cjs/ts-types/pivot-table/index.js.map +1 -0
  566. package/cjs/ts-types/pivot-table/indicator/basic-indicator.d.ts +26 -0
  567. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js +6 -0
  568. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -0
  569. package/cjs/ts-types/pivot-table/indicator/chart-indicator.d.ts +10 -0
  570. package/cjs/ts-types/pivot-table/indicator/chart-indicator.js +6 -0
  571. package/cjs/ts-types/pivot-table/indicator/chart-indicator.js.map +1 -0
  572. package/cjs/ts-types/pivot-table/indicator/image-indicator.d.ts +15 -0
  573. package/cjs/ts-types/pivot-table/indicator/image-indicator.js +6 -0
  574. package/cjs/ts-types/pivot-table/indicator/image-indicator.js.map +1 -0
  575. package/cjs/ts-types/pivot-table/indicator/index.d.ts +10 -0
  576. package/cjs/ts-types/pivot-table/indicator/index.js +6 -0
  577. package/cjs/ts-types/pivot-table/indicator/index.js.map +1 -0
  578. package/cjs/ts-types/pivot-table/indicator/link-indicator.d.ts +17 -0
  579. package/cjs/ts-types/pivot-table/indicator/link-indicator.js +6 -0
  580. package/cjs/ts-types/pivot-table/indicator/link-indicator.js.map +1 -0
  581. package/cjs/ts-types/pivot-table/indicator/multilinetext-indicator.d.ts +11 -0
  582. package/cjs/ts-types/pivot-table/indicator/multilinetext-indicator.js +6 -0
  583. package/cjs/ts-types/pivot-table/indicator/multilinetext-indicator.js.map +1 -0
  584. package/cjs/ts-types/pivot-table/indicator/progress-indicator.d.ts +11 -0
  585. package/cjs/ts-types/pivot-table/indicator/progress-indicator.js +6 -0
  586. package/cjs/ts-types/pivot-table/indicator/progress-indicator.js.map +1 -0
  587. package/cjs/ts-types/pivot-table/indicator/sparkline-indicator.d.ts +10 -0
  588. package/cjs/ts-types/pivot-table/indicator/sparkline-indicator.js +6 -0
  589. package/cjs/ts-types/pivot-table/indicator/sparkline-indicator.js.map +1 -0
  590. package/cjs/ts-types/pivot-table/title.d.ts +18 -0
  591. package/cjs/ts-types/pivot-table/title.js +6 -0
  592. package/cjs/ts-types/pivot-table/title.js.map +1 -0
  593. package/cjs/ts-types/style-define.d.ts +60 -0
  594. package/cjs/ts-types/style-define.js +6 -0
  595. package/cjs/ts-types/style-define.js.map +1 -0
  596. package/cjs/ts-types/table-engine.d.ts +169 -0
  597. package/cjs/ts-types/table-engine.js +12 -0
  598. package/cjs/ts-types/table-engine.js.map +1 -0
  599. package/cjs/ts-types/theme.d.ts +88 -0
  600. package/cjs/ts-types/theme.js +6 -0
  601. package/cjs/ts-types/theme.js.map +1 -0
  602. package/cjs/ts-types/tooltip.d.ts +22 -0
  603. package/cjs/ts-types/tooltip.js +6 -0
  604. package/cjs/ts-types/tooltip.js.map +1 -0
  605. package/dist/vtable.js +72964 -0
  606. package/dist/vtable.min.js +17 -0
  607. package/es/ListTable.d.ts +38 -0
  608. package/es/ListTable.js +256 -0
  609. package/es/ListTable.js.map +1 -0
  610. package/es/PivotTable.d.ts +50 -0
  611. package/es/PivotTable.js +282 -0
  612. package/es/PivotTable.js.map +1 -0
  613. package/es/body-helper/body-helper.d.ts +14 -0
  614. package/es/body-helper/body-helper.js +80 -0
  615. package/es/body-helper/body-helper.js.map +1 -0
  616. package/es/body-helper/style/ImageStyle.d.ts +7 -0
  617. package/es/body-helper/style/ImageStyle.js +16 -0
  618. package/es/body-helper/style/ImageStyle.js.map +1 -0
  619. package/es/body-helper/style/MultilineTextStyle.d.ts +13 -0
  620. package/es/body-helper/style/MultilineTextStyle.js +30 -0
  621. package/es/body-helper/style/MultilineTextStyle.js.map +1 -0
  622. package/es/body-helper/style/NumberStyle.d.ts +7 -0
  623. package/es/body-helper/style/NumberStyle.js +16 -0
  624. package/es/body-helper/style/NumberStyle.js.map +1 -0
  625. package/es/body-helper/style/ProgressBarStyle.d.ts +52 -0
  626. package/es/body-helper/style/ProgressBarStyle.js +118 -0
  627. package/es/body-helper/style/ProgressBarStyle.js.map +1 -0
  628. package/es/body-helper/style/Style.d.ts +85 -0
  629. package/es/body-helper/style/Style.js +194 -0
  630. package/es/body-helper/style/Style.js.map +1 -0
  631. package/es/body-helper/style.d.ts +10 -0
  632. package/es/body-helper/style.js +20 -0
  633. package/es/body-helper/style.js.map +1 -0
  634. package/es/chartType.d.ts +3 -0
  635. package/es/chartType.js +10 -0
  636. package/es/chartType.js.map +1 -0
  637. package/es/core/BaseTable.d.ts +287 -0
  638. package/es/core/BaseTable.js +1281 -0
  639. package/es/core/BaseTable.js.map +1 -0
  640. package/es/core/FouseInput.d.ts +11 -0
  641. package/es/core/FouseInput.js +30 -0
  642. package/es/core/FouseInput.js.map +1 -0
  643. package/es/core/TABLE_EVENT_TYPE.d.ts +30 -0
  644. package/es/core/TABLE_EVENT_TYPE.js +30 -0
  645. package/es/core/TABLE_EVENT_TYPE.js.map +1 -0
  646. package/es/core/tableHelper.d.ts +28 -0
  647. package/es/core/tableHelper.js +107 -0
  648. package/es/core/tableHelper.js.map +1 -0
  649. package/es/core.d.ts +3 -0
  650. package/es/core.js +6 -0
  651. package/es/core.js.map +1 -0
  652. package/es/data/CachedDataSource.d.ts +16 -0
  653. package/es/data/CachedDataSource.js +48 -0
  654. package/es/data/CachedDataSource.js.map +1 -0
  655. package/es/data/DataSource.d.ts +64 -0
  656. package/es/data/DataSource.js +267 -0
  657. package/es/data/DataSource.js.map +1 -0
  658. package/es/data/FilterDataSource.d.ts +1 -0
  659. package/es/data/FilterDataSource.js +1 -0
  660. package/es/data/FilterDataSource.js.map +1 -0
  661. package/es/data.d.ts +4 -0
  662. package/es/data.js +6 -0
  663. package/es/data.js.map +1 -0
  664. package/es/dataset/DataStatistics.d.ts +10 -0
  665. package/es/dataset/DataStatistics.js +74 -0
  666. package/es/dataset/DataStatistics.js.map +1 -0
  667. package/es/dataset/dataset.d.ts +72 -0
  668. package/es/dataset/dataset.js +482 -0
  669. package/es/dataset/dataset.js.map +1 -0
  670. package/es/dataset/flatDataToObject.d.ts +31 -0
  671. package/es/dataset/flatDataToObject.js +63 -0
  672. package/es/dataset/flatDataToObject.js.map +1 -0
  673. package/es/event/EventHandler.d.ts +45 -0
  674. package/es/event/EventHandler.js +111 -0
  675. package/es/event/EventHandler.js.map +1 -0
  676. package/es/event/EventTarget.d.ts +11 -0
  677. package/es/event/EventTarget.js +50 -0
  678. package/es/event/EventTarget.js.map +1 -0
  679. package/es/event/chart.d.ts +2 -0
  680. package/es/event/chart.js +16 -0
  681. package/es/event/chart.js.map +1 -0
  682. package/es/event/drill.d.ts +3 -0
  683. package/es/event/drill.js +17 -0
  684. package/es/event/drill.js.map +1 -0
  685. package/es/event/event.d.ts +35 -0
  686. package/es/event/event.js +438 -0
  687. package/es/event/event.js.map +1 -0
  688. package/es/event/media-click.d.ts +2 -0
  689. package/es/event/media-click.js +54 -0
  690. package/es/event/media-click.js.map +1 -0
  691. package/es/event/scroll.d.ts +2 -0
  692. package/es/event/scroll.js +17 -0
  693. package/es/event/scroll.js.map +1 -0
  694. package/es/header-helper/header-helper.d.ts +26 -0
  695. package/es/header-helper/header-helper.js +189 -0
  696. package/es/header-helper/header-helper.js.map +1 -0
  697. package/es/header-helper/style/ImageStyle.d.ts +7 -0
  698. package/es/header-helper/style/ImageStyle.js +17 -0
  699. package/es/header-helper/style/ImageStyle.js.map +1 -0
  700. package/es/header-helper/style/MultilineTextHeaderStyle.d.ts +13 -0
  701. package/es/header-helper/style/MultilineTextHeaderStyle.js +30 -0
  702. package/es/header-helper/style/MultilineTextHeaderStyle.js.map +1 -0
  703. package/es/header-helper/style/SortHeaderStyle.d.ts +1 -0
  704. package/es/header-helper/style/SortHeaderStyle.js +3 -0
  705. package/es/header-helper/style/SortHeaderStyle.js.map +1 -0
  706. package/es/header-helper/style/Style.d.ts +88 -0
  707. package/es/header-helper/style/Style.js +202 -0
  708. package/es/header-helper/style/Style.js.map +1 -0
  709. package/es/header-helper/style.d.ts +5 -0
  710. package/es/header-helper/style.js +14 -0
  711. package/es/header-helper/style.js.map +1 -0
  712. package/es/icons.d.ts +4 -0
  713. package/es/icons.js +241 -0
  714. package/es/icons.js.map +1 -0
  715. package/es/index.d.ts +17 -0
  716. package/es/index.js +34 -0
  717. package/es/index.js.map +1 -0
  718. package/es/layout/index.d.ts +1 -0
  719. package/es/layout/index.js +2 -0
  720. package/es/layout/index.js.map +1 -0
  721. package/es/layout/pivot-header-layout.d.ts +155 -0
  722. package/es/layout/pivot-header-layout.js +888 -0
  723. package/es/layout/pivot-header-layout.js.map +1 -0
  724. package/es/layout/pivot-layout.d.ts +86 -0
  725. package/es/layout/pivot-layout.js +416 -0
  726. package/es/layout/pivot-layout.js.map +1 -0
  727. package/es/layout/simple-header-layout.d.ts +67 -0
  728. package/es/layout/simple-header-layout.js +405 -0
  729. package/es/layout/simple-header-layout.js.map +1 -0
  730. package/es/menu/dom/BaseMenu.d.ts +15 -0
  731. package/es/menu/dom/BaseMenu.js +22 -0
  732. package/es/menu/dom/BaseMenu.js.map +1 -0
  733. package/es/menu/dom/Menu.d.ts +9 -0
  734. package/es/menu/dom/Menu.js +18 -0
  735. package/es/menu/dom/Menu.js.map +1 -0
  736. package/es/menu/dom/MenuHandler.d.ts +20 -0
  737. package/es/menu/dom/MenuHandler.js +132 -0
  738. package/es/menu/dom/MenuHandler.js.map +1 -0
  739. package/es/menu/dom/logic/MenuContainer.d.ts +22 -0
  740. package/es/menu/dom/logic/MenuContainer.js +105 -0
  741. package/es/menu/dom/logic/MenuContainer.js.map +1 -0
  742. package/es/menu/dom/logic/MenuElement.css +86 -0
  743. package/es/menu/dom/logic/MenuElement.d.ts +27 -0
  744. package/es/menu/dom/logic/MenuElement.js +277 -0
  745. package/es/menu/dom/logic/MenuElement.js.map +1 -0
  746. package/es/plugins/chartTypes.d.ts +3 -0
  747. package/es/plugins/chartTypes.js +2 -0
  748. package/es/plugins/chartTypes.js.map +1 -0
  749. package/es/plugins/icons.d.ts +12 -0
  750. package/es/plugins/icons.js +22 -0
  751. package/es/plugins/icons.js.map +1 -0
  752. package/es/plugins/themes.d.ts +4 -0
  753. package/es/plugins/themes.js +2 -0
  754. package/es/plugins/themes.js.map +1 -0
  755. package/es/register.d.ts +5 -0
  756. package/es/register.js +31 -0
  757. package/es/register.js.map +1 -0
  758. package/es/render/layout/arc.d.ts +23 -0
  759. package/es/render/layout/arc.js +12 -0
  760. package/es/render/layout/arc.js.map +1 -0
  761. package/es/render/layout/circle.d.ts +19 -0
  762. package/es/render/layout/circle.js +11 -0
  763. package/es/render/layout/circle.js.map +1 -0
  764. package/es/render/layout/container.d.ts +52 -0
  765. package/es/render/layout/container.js +99 -0
  766. package/es/render/layout/container.js.map +1 -0
  767. package/es/render/layout/direction.d.ts +22 -0
  768. package/es/render/layout/direction.js +31 -0
  769. package/es/render/layout/direction.js.map +1 -0
  770. package/es/render/layout/element.d.ts +47 -0
  771. package/es/render/layout/element.js +19 -0
  772. package/es/render/layout/element.js.map +1 -0
  773. package/es/render/layout/group-element.d.ts +25 -0
  774. package/es/render/layout/group-element.js +46 -0
  775. package/es/render/layout/group-element.js.map +1 -0
  776. package/es/render/layout/icon.d.ts +21 -0
  777. package/es/render/layout/icon.js +19 -0
  778. package/es/render/layout/icon.js.map +1 -0
  779. package/es/render/layout/image.d.ts +21 -0
  780. package/es/render/layout/image.js +12 -0
  781. package/es/render/layout/image.js.map +1 -0
  782. package/es/render/layout/index.d.ts +9 -0
  783. package/es/render/layout/index.js +18 -0
  784. package/es/render/layout/index.js.map +1 -0
  785. package/es/render/layout/line.d.ts +32 -0
  786. package/es/render/layout/line.js +80 -0
  787. package/es/render/layout/line.js.map +1 -0
  788. package/es/render/layout/percent-calc.d.ts +8 -0
  789. package/es/render/layout/percent-calc.js +7 -0
  790. package/es/render/layout/percent-calc.js.map +1 -0
  791. package/es/render/layout/rect.d.ts +22 -0
  792. package/es/render/layout/rect.js +11 -0
  793. package/es/render/layout/rect.js.map +1 -0
  794. package/es/render/layout/text.d.ts +22 -0
  795. package/es/render/layout/text.js +18 -0
  796. package/es/render/layout/text.js.map +1 -0
  797. package/es/scenegraph/component/cell-content.d.ts +36 -0
  798. package/es/scenegraph/component/cell-content.js +98 -0
  799. package/es/scenegraph/component/cell-content.js.map +1 -0
  800. package/es/scenegraph/component/cell-mover.d.ts +15 -0
  801. package/es/scenegraph/component/cell-mover.js +101 -0
  802. package/es/scenegraph/component/cell-mover.js.map +1 -0
  803. package/es/scenegraph/component/custom.d.ts +7 -0
  804. package/es/scenegraph/component/custom.js +211 -0
  805. package/es/scenegraph/component/custom.js.map +1 -0
  806. package/es/scenegraph/component/drill-icon.d.ts +9 -0
  807. package/es/scenegraph/component/drill-icon.js +41 -0
  808. package/es/scenegraph/component/drill-icon.js.map +1 -0
  809. package/es/scenegraph/component/menu.d.ts +41 -0
  810. package/es/scenegraph/component/menu.js +212 -0
  811. package/es/scenegraph/component/menu.js.map +1 -0
  812. package/es/scenegraph/component/table-component.d.ts +37 -0
  813. package/es/scenegraph/component/table-component.js +304 -0
  814. package/es/scenegraph/component/table-component.js.map +1 -0
  815. package/es/scenegraph/component/util.d.ts +2 -0
  816. package/es/scenegraph/component/util.js +5 -0
  817. package/es/scenegraph/component/util.js.map +1 -0
  818. package/es/scenegraph/debug-tool/debug-tool.d.ts +36 -0
  819. package/es/scenegraph/debug-tool/debug-tool.js +126 -0
  820. package/es/scenegraph/debug-tool/debug-tool.js.map +1 -0
  821. package/es/scenegraph/debug-tool/index.d.ts +4 -0
  822. package/es/scenegraph/debug-tool/index.js +6 -0
  823. package/es/scenegraph/debug-tool/index.js.map +1 -0
  824. package/es/scenegraph/graphic/chart.d.ts +30 -0
  825. package/es/scenegraph/graphic/chart.js +59 -0
  826. package/es/scenegraph/graphic/chart.js.map +1 -0
  827. package/es/scenegraph/graphic/contributions/chart-render.d.ts +10 -0
  828. package/es/scenegraph/graphic/contributions/chart-render.js +47 -0
  829. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -0
  830. package/es/scenegraph/graphic/contributions/group-contribution-render.d.ts +70 -0
  831. package/es/scenegraph/graphic/contributions/group-contribution-render.js +192 -0
  832. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -0
  833. package/es/scenegraph/graphic/contributions/image-contribution-render.d.ts +20 -0
  834. package/es/scenegraph/graphic/contributions/image-contribution-render.js +42 -0
  835. package/es/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -0
  836. package/es/scenegraph/graphic/contributions/index.d.ts +3 -0
  837. package/es/scenegraph/graphic/contributions/index.js +29 -0
  838. package/es/scenegraph/graphic/contributions/index.js.map +1 -0
  839. package/es/scenegraph/graphic/contributions/rect-contribution-render.d.ts +17 -0
  840. package/es/scenegraph/graphic/contributions/rect-contribution-render.js +45 -0
  841. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -0
  842. package/es/scenegraph/graphic/group.d.ts +23 -0
  843. package/es/scenegraph/graphic/group.js +86 -0
  844. package/es/scenegraph/graphic/group.js.map +1 -0
  845. package/es/scenegraph/graphic/icon.d.ts +24 -0
  846. package/es/scenegraph/graphic/icon.js +17 -0
  847. package/es/scenegraph/graphic/icon.js.map +1 -0
  848. package/es/scenegraph/graphic/text.d.ts +16 -0
  849. package/es/scenegraph/graphic/text.js +142 -0
  850. package/es/scenegraph/graphic/text.js.map +1 -0
  851. package/es/scenegraph/group-creater/cell-helper.d.ts +7 -0
  852. package/es/scenegraph/group-creater/cell-helper.js +93 -0
  853. package/es/scenegraph/group-creater/cell-helper.js.map +1 -0
  854. package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +3 -0
  855. package/es/scenegraph/group-creater/cell-type/chart-cell.js +54 -0
  856. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -0
  857. package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +7 -0
  858. package/es/scenegraph/group-creater/cell-type/image-cell.js +102 -0
  859. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -0
  860. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +9 -0
  861. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +337 -0
  862. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -0
  863. package/es/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +3 -0
  864. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js +165 -0
  865. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -0
  866. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +5 -0
  867. package/es/scenegraph/group-creater/cell-type/text-cell.js +66 -0
  868. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -0
  869. package/es/scenegraph/group-creater/cell-type/video-cell.d.ts +4 -0
  870. package/es/scenegraph/group-creater/cell-type/video-cell.js +86 -0
  871. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -0
  872. package/es/scenegraph/group-creater/column-helper.d.ts +24 -0
  873. package/es/scenegraph/group-creater/column-helper.js +135 -0
  874. package/es/scenegraph/group-creater/column-helper.js.map +1 -0
  875. package/es/scenegraph/group-creater/column.d.ts +14 -0
  876. package/es/scenegraph/group-creater/column.js +49 -0
  877. package/es/scenegraph/group-creater/column.js.map +1 -0
  878. package/es/scenegraph/group-creater/progress/proxy.d.ts +45 -0
  879. package/es/scenegraph/group-creater/progress/proxy.js +268 -0
  880. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -0
  881. package/es/scenegraph/header-icon/layout.d.ts +3 -0
  882. package/es/scenegraph/header-icon/layout.js +69 -0
  883. package/es/scenegraph/header-icon/layout.js.map +1 -0
  884. package/es/scenegraph/hover-state.d.ts +14 -0
  885. package/es/scenegraph/hover-state.js +19 -0
  886. package/es/scenegraph/hover-state.js.map +1 -0
  887. package/es/scenegraph/layout/auto-height.d.ts +2 -0
  888. package/es/scenegraph/layout/auto-height.js +44 -0
  889. package/es/scenegraph/layout/auto-height.js.map +1 -0
  890. package/es/scenegraph/layout/auto-width.d.ts +2 -0
  891. package/es/scenegraph/layout/auto-width.js +82 -0
  892. package/es/scenegraph/layout/auto-width.js.map +1 -0
  893. package/es/scenegraph/layout/compute-col-width.d.ts +3 -0
  894. package/es/scenegraph/layout/compute-col-width.js +167 -0
  895. package/es/scenegraph/layout/compute-col-width.js.map +1 -0
  896. package/es/scenegraph/layout/move-cell.d.ts +2 -0
  897. package/es/scenegraph/layout/move-cell.js +55 -0
  898. package/es/scenegraph/layout/move-cell.js.map +1 -0
  899. package/es/scenegraph/layout/update-cell.d.ts +3 -0
  900. package/es/scenegraph/layout/update-cell.js +55 -0
  901. package/es/scenegraph/layout/update-cell.js.map +1 -0
  902. package/es/scenegraph/layout/update-height.d.ts +6 -0
  903. package/es/scenegraph/layout/update-height.js +91 -0
  904. package/es/scenegraph/layout/update-height.js.map +1 -0
  905. package/es/scenegraph/layout/update-width.d.ts +2 -0
  906. package/es/scenegraph/layout/update-width.js +105 -0
  907. package/es/scenegraph/layout/update-width.js.map +1 -0
  908. package/es/scenegraph/scenegraph.d.ts +109 -0
  909. package/es/scenegraph/scenegraph.js +818 -0
  910. package/es/scenegraph/scenegraph.js.map +1 -0
  911. package/es/scenegraph/style/frame-border.d.ts +3 -0
  912. package/es/scenegraph/style/frame-border.js +35 -0
  913. package/es/scenegraph/style/frame-border.js.map +1 -0
  914. package/es/scenegraph/utils/border-line.d.ts +8 -0
  915. package/es/scenegraph/utils/border-line.js +45 -0
  916. package/es/scenegraph/utils/border-line.js.map +1 -0
  917. package/es/scenegraph/utils/break-string.d.ts +1 -0
  918. package/es/scenegraph/utils/break-string.js +31 -0
  919. package/es/scenegraph/utils/break-string.js.map +1 -0
  920. package/es/scenegraph/utils/cell-pos.d.ts +4 -0
  921. package/es/scenegraph/utils/cell-pos.js +12 -0
  922. package/es/scenegraph/utils/cell-pos.js.map +1 -0
  923. package/es/scenegraph/utils/font.d.ts +1 -0
  924. package/es/scenegraph/utils/font.js +6 -0
  925. package/es/scenegraph/utils/font.js.map +1 -0
  926. package/es/scenegraph/utils/get-cell-merge.d.ts +3 -0
  927. package/es/scenegraph/utils/get-cell-merge.js +5 -0
  928. package/es/scenegraph/utils/get-cell-merge.js.map +1 -0
  929. package/es/scenegraph/utils/get-prop.d.ts +4 -0
  930. package/es/scenegraph/utils/get-prop.js +36 -0
  931. package/es/scenegraph/utils/get-prop.js.map +1 -0
  932. package/es/scenegraph/utils/icon.d.ts +12 -0
  933. package/es/scenegraph/utils/icon.js +29 -0
  934. package/es/scenegraph/utils/icon.js.map +1 -0
  935. package/es/scenegraph/utils/keep-aspect-ratio.d.ts +4 -0
  936. package/es/scenegraph/utils/keep-aspect-ratio.js +10 -0
  937. package/es/scenegraph/utils/keep-aspect-ratio.js.map +1 -0
  938. package/es/scenegraph/utils/measure-text.d.ts +20 -0
  939. package/es/scenegraph/utils/measure-text.js +114 -0
  940. package/es/scenegraph/utils/measure-text.js.map +1 -0
  941. package/es/scenegraph/utils/padding.d.ts +1 -0
  942. package/es/scenegraph/utils/padding.js +8 -0
  943. package/es/scenegraph/utils/padding.js.map +1 -0
  944. package/es/scenegraph/utils/text-icon-layout.d.ts +9 -0
  945. package/es/scenegraph/utils/text-icon-layout.js +239 -0
  946. package/es/scenegraph/utils/text-icon-layout.js.map +1 -0
  947. package/es/scenegraph/utils/text-pos.d.ts +8 -0
  948. package/es/scenegraph/utils/text-pos.js +20 -0
  949. package/es/scenegraph/utils/text-pos.js.map +1 -0
  950. package/es/state/cell-move/adjust-header.d.ts +3 -0
  951. package/es/state/cell-move/adjust-header.js +14 -0
  952. package/es/state/cell-move/adjust-header.js.map +1 -0
  953. package/es/state/cell-move/index.d.ts +4 -0
  954. package/es/state/cell-move/index.js +52 -0
  955. package/es/state/cell-move/index.js.map +1 -0
  956. package/es/state/common/check-in-select.d.ts +8 -0
  957. package/es/state/common/check-in-select.js +53 -0
  958. package/es/state/common/check-in-select.js.map +1 -0
  959. package/es/state/drill/index.d.ts +2 -0
  960. package/es/state/drill/index.js +9 -0
  961. package/es/state/drill/index.js.map +1 -0
  962. package/es/state/hover/col.d.ts +5 -0
  963. package/es/state/hover/col.js +16 -0
  964. package/es/state/hover/col.js.map +1 -0
  965. package/es/state/hover/is-cell-hover.d.ts +5 -0
  966. package/es/state/hover/is-cell-hover.js +30 -0
  967. package/es/state/hover/is-cell-hover.js.map +1 -0
  968. package/es/state/hover/row.d.ts +5 -0
  969. package/es/state/hover/row.js +14 -0
  970. package/es/state/hover/row.js.map +1 -0
  971. package/es/state/hover/single.d.ts +5 -0
  972. package/es/state/hover/single.js +10 -0
  973. package/es/state/hover/single.js.map +1 -0
  974. package/es/state/hover/update-cell.d.ts +2 -0
  975. package/es/state/hover/update-cell.js +7 -0
  976. package/es/state/hover/update-cell.js.map +1 -0
  977. package/es/state/hover/update-position.d.ts +2 -0
  978. package/es/state/hover/update-position.js +36 -0
  979. package/es/state/hover/update-position.js.map +1 -0
  980. package/es/state/pin/index.d.ts +2 -0
  981. package/es/state/pin/index.js +4 -0
  982. package/es/state/pin/index.js.map +1 -0
  983. package/es/state/select/update-position.d.ts +4 -0
  984. package/es/state/select/update-position.js +103 -0
  985. package/es/state/select/update-position.js.map +1 -0
  986. package/es/state/sort/index.d.ts +2 -0
  987. package/es/state/sort/index.js +35 -0
  988. package/es/state/sort/index.js.map +1 -0
  989. package/es/state/spark-line/index.d.ts +3 -0
  990. package/es/state/spark-line/index.js +92 -0
  991. package/es/state/spark-line/index.js.map +1 -0
  992. package/es/state/state.d.ts +155 -0
  993. package/es/state/state.js +458 -0
  994. package/es/state/state.js.map +1 -0
  995. package/es/themes/ARCO.d.ts +3 -0
  996. package/es/themes/ARCO.js +110 -0
  997. package/es/themes/ARCO.js.map +1 -0
  998. package/es/themes/BRIGHT.d.ts +3 -0
  999. package/es/themes/BRIGHT.js +67 -0
  1000. package/es/themes/BRIGHT.js.map +1 -0
  1001. package/es/themes/DARK.d.ts +3 -0
  1002. package/es/themes/DARK.js +86 -0
  1003. package/es/themes/DARK.js.map +1 -0
  1004. package/es/themes/DEFAULT.d.ts +3 -0
  1005. package/es/themes/DEFAULT.js +85 -0
  1006. package/es/themes/DEFAULT.js.map +1 -0
  1007. package/es/themes/SIMPLIFY.d.ts +3 -0
  1008. package/es/themes/SIMPLIFY.js +42 -0
  1009. package/es/themes/SIMPLIFY.js.map +1 -0
  1010. package/es/themes/theme.d.ts +34 -0
  1011. package/es/themes/theme.js +505 -0
  1012. package/es/themes/theme.js.map +1 -0
  1013. package/es/themes.d.ts +28 -0
  1014. package/es/themes.js +62 -0
  1015. package/es/themes.js.map +1 -0
  1016. package/es/tools/LimitPromiseQueue.d.ts +8 -0
  1017. package/es/tools/LimitPromiseQueue.js +21 -0
  1018. package/es/tools/LimitPromiseQueue.js.map +1 -0
  1019. package/es/tools/NumberMap.d.ts +16 -0
  1020. package/es/tools/NumberMap.js +70 -0
  1021. package/es/tools/NumberMap.js.map +1 -0
  1022. package/es/tools/Rect.d.ts +24 -0
  1023. package/es/tools/Rect.js +61 -0
  1024. package/es/tools/Rect.js.map +1 -0
  1025. package/es/tools/calc.d.ts +5 -0
  1026. package/es/tools/calc.js +191 -0
  1027. package/es/tools/calc.js.map +1 -0
  1028. package/es/tools/debounce.d.ts +1 -0
  1029. package/es/tools/debounce.js +43 -0
  1030. package/es/tools/debounce.js.map +1 -0
  1031. package/es/tools/dom.d.ts +1 -0
  1032. package/es/tools/dom.js +5 -0
  1033. package/es/tools/dom.js.map +1 -0
  1034. package/es/tools/env.d.ts +19 -0
  1035. package/es/tools/env.js +42 -0
  1036. package/es/tools/env.js.map +1 -0
  1037. package/es/tools/global.d.ts +13 -0
  1038. package/es/tools/global.js +26 -0
  1039. package/es/tools/global.js.map +1 -0
  1040. package/es/tools/helper.d.ts +60 -0
  1041. package/es/tools/helper.js +216 -0
  1042. package/es/tools/helper.js.map +1 -0
  1043. package/es/tools/icons.d.ts +4 -0
  1044. package/es/tools/icons.js +4 -0
  1045. package/es/tools/icons.js.map +1 -0
  1046. package/es/tools/isx.d.ts +16 -0
  1047. package/es/tools/isx.js +79 -0
  1048. package/es/tools/isx.js.map +1 -0
  1049. package/es/tools/sort.d.ts +1 -0
  1050. package/es/tools/sort.js +12 -0
  1051. package/es/tools/sort.js.map +1 -0
  1052. package/es/tools/style.css +60 -0
  1053. package/es/tools/style.d.ts +2 -0
  1054. package/es/tools/style.js +5 -0
  1055. package/es/tools/style.js.map +1 -0
  1056. package/es/tools/text-width.d.ts +1 -0
  1057. package/es/tools/text-width.js +9 -0
  1058. package/es/tools/text-width.js.map +1 -0
  1059. package/es/tools/util.d.ts +45 -0
  1060. package/es/tools/util.js +250 -0
  1061. package/es/tools/util.js.map +1 -0
  1062. package/es/tooltip/BaseTooltip.d.ts +22 -0
  1063. package/es/tooltip/BaseTooltip.js +27 -0
  1064. package/es/tooltip/BaseTooltip.js.map +1 -0
  1065. package/es/tooltip/Tooltip.d.ts +5 -0
  1066. package/es/tooltip/Tooltip.js +10 -0
  1067. package/es/tooltip/Tooltip.js.map +1 -0
  1068. package/es/tooltip/TooltipHandler.d.ts +27 -0
  1069. package/es/tooltip/TooltipHandler.js +131 -0
  1070. package/es/tooltip/TooltipHandler.js.map +1 -0
  1071. package/es/tooltip/logic/BubbleTooltipElement.css +63 -0
  1072. package/es/tooltip/logic/BubbleTooltipElement.d.ts +33 -0
  1073. package/es/tooltip/logic/BubbleTooltipElement.js +149 -0
  1074. package/es/tooltip/logic/BubbleTooltipElement.js.map +1 -0
  1075. package/es/ts-types/base-table.d.ts +313 -0
  1076. package/es/ts-types/base-table.js +2 -0
  1077. package/es/ts-types/base-table.js.map +1 -0
  1078. package/es/ts-types/chartType.d.ts +53 -0
  1079. package/es/ts-types/chartType.js +2 -0
  1080. package/es/ts-types/chartType.js.map +1 -0
  1081. package/es/ts-types/column/index.d.ts +2 -0
  1082. package/es/ts-types/column/index.js +4 -0
  1083. package/es/ts-types/column/index.js.map +1 -0
  1084. package/es/ts-types/column/style.d.ts +78 -0
  1085. package/es/ts-types/column/style.js +2 -0
  1086. package/es/ts-types/column/style.js.map +1 -0
  1087. package/es/ts-types/column/type.d.ts +2 -0
  1088. package/es/ts-types/column/type.js +2 -0
  1089. package/es/ts-types/column/type.js.map +1 -0
  1090. package/es/ts-types/common.d.ts +72 -0
  1091. package/es/ts-types/common.js +2 -0
  1092. package/es/ts-types/common.js.map +1 -0
  1093. package/es/ts-types/customElement.d.ts +111 -0
  1094. package/es/ts-types/customElement.js +2 -0
  1095. package/es/ts-types/customElement.js.map +1 -0
  1096. package/es/ts-types/customLayout.d.ts +8 -0
  1097. package/es/ts-types/customLayout.js +2 -0
  1098. package/es/ts-types/customLayout.js.map +1 -0
  1099. package/es/ts-types/events.d.ts +182 -0
  1100. package/es/ts-types/events.js +2 -0
  1101. package/es/ts-types/events.js.map +1 -0
  1102. package/es/ts-types/icon.d.ts +86 -0
  1103. package/es/ts-types/icon.js +28 -0
  1104. package/es/ts-types/icon.js.map +1 -0
  1105. package/es/ts-types/index.d.ts +15 -0
  1106. package/es/ts-types/index.js +30 -0
  1107. package/es/ts-types/index.js.map +1 -0
  1108. package/es/ts-types/list-table/define/basic-define.d.ts +36 -0
  1109. package/es/ts-types/list-table/define/basic-define.js +2 -0
  1110. package/es/ts-types/list-table/define/basic-define.js.map +1 -0
  1111. package/es/ts-types/list-table/define/chart-define.d.ts +10 -0
  1112. package/es/ts-types/list-table/define/chart-define.js +2 -0
  1113. package/es/ts-types/list-table/define/chart-define.js.map +1 -0
  1114. package/es/ts-types/list-table/define/image-define.d.ts +15 -0
  1115. package/es/ts-types/list-table/define/image-define.js +2 -0
  1116. package/es/ts-types/list-table/define/image-define.js.map +1 -0
  1117. package/es/ts-types/list-table/define/index.d.ts +21 -0
  1118. package/es/ts-types/list-table/define/index.js +2 -0
  1119. package/es/ts-types/list-table/define/index.js.map +1 -0
  1120. package/es/ts-types/list-table/define/link-define.d.ts +17 -0
  1121. package/es/ts-types/list-table/define/link-define.js +2 -0
  1122. package/es/ts-types/list-table/define/link-define.js.map +1 -0
  1123. package/es/ts-types/list-table/define/multilinetext-define.d.ts +12 -0
  1124. package/es/ts-types/list-table/define/multilinetext-define.js +2 -0
  1125. package/es/ts-types/list-table/define/multilinetext-define.js.map +1 -0
  1126. package/es/ts-types/list-table/define/progressbar-define.d.ts +11 -0
  1127. package/es/ts-types/list-table/define/progressbar-define.js +2 -0
  1128. package/es/ts-types/list-table/define/progressbar-define.js.map +1 -0
  1129. package/es/ts-types/list-table/define/sparkline-define.d.ts +10 -0
  1130. package/es/ts-types/list-table/define/sparkline-define.js +2 -0
  1131. package/es/ts-types/list-table/define/sparkline-define.js.map +1 -0
  1132. package/es/ts-types/list-table/index.d.ts +2 -0
  1133. package/es/ts-types/list-table/index.js +4 -0
  1134. package/es/ts-types/list-table/index.js.map +1 -0
  1135. package/es/ts-types/list-table/layout-map/api.d.ts +92 -0
  1136. package/es/ts-types/list-table/layout-map/api.js +2 -0
  1137. package/es/ts-types/list-table/layout-map/api.js.map +1 -0
  1138. package/es/ts-types/list-table/layout-map/index.d.ts +1 -0
  1139. package/es/ts-types/list-table/layout-map/index.js +2 -0
  1140. package/es/ts-types/list-table/layout-map/index.js.map +1 -0
  1141. package/es/ts-types/menu.d.ts +73 -0
  1142. package/es/ts-types/menu.js +2 -0
  1143. package/es/ts-types/menu.js.map +1 -0
  1144. package/es/ts-types/new-data-set.d.ts +95 -0
  1145. package/es/ts-types/new-data-set.js +13 -0
  1146. package/es/ts-types/new-data-set.js.map +1 -0
  1147. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.d.ts +6 -0
  1148. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js +9 -0
  1149. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -0
  1150. package/es/ts-types/pivot-table/corner.d.ts +19 -0
  1151. package/es/ts-types/pivot-table/corner.js +2 -0
  1152. package/es/ts-types/pivot-table/corner.js.map +1 -0
  1153. package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +25 -0
  1154. package/es/ts-types/pivot-table/dimension/basic-dimension.js +2 -0
  1155. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -0
  1156. package/es/ts-types/pivot-table/dimension/image-dimension.d.ts +9 -0
  1157. package/es/ts-types/pivot-table/dimension/image-dimension.js +2 -0
  1158. package/es/ts-types/pivot-table/dimension/image-dimension.js.map +1 -0
  1159. package/es/ts-types/pivot-table/dimension/index.d.ts +4 -0
  1160. package/es/ts-types/pivot-table/dimension/index.js +2 -0
  1161. package/es/ts-types/pivot-table/dimension/index.js.map +1 -0
  1162. package/es/ts-types/pivot-table/dimension/link-dimension.d.ts +10 -0
  1163. package/es/ts-types/pivot-table/dimension/link-dimension.js +2 -0
  1164. package/es/ts-types/pivot-table/dimension/link-dimension.js.map +1 -0
  1165. package/es/ts-types/pivot-table/dimension/multilinetext-dimension.d.ts +7 -0
  1166. package/es/ts-types/pivot-table/dimension/multilinetext-dimension.js +2 -0
  1167. package/es/ts-types/pivot-table/dimension/multilinetext-dimension.js.map +1 -0
  1168. package/es/ts-types/pivot-table/index.d.ts +4 -0
  1169. package/es/ts-types/pivot-table/index.js +8 -0
  1170. package/es/ts-types/pivot-table/index.js.map +1 -0
  1171. package/es/ts-types/pivot-table/indicator/basic-indicator.d.ts +26 -0
  1172. package/es/ts-types/pivot-table/indicator/basic-indicator.js +2 -0
  1173. package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -0
  1174. package/es/ts-types/pivot-table/indicator/chart-indicator.d.ts +10 -0
  1175. package/es/ts-types/pivot-table/indicator/chart-indicator.js +2 -0
  1176. package/es/ts-types/pivot-table/indicator/chart-indicator.js.map +1 -0
  1177. package/es/ts-types/pivot-table/indicator/image-indicator.d.ts +15 -0
  1178. package/es/ts-types/pivot-table/indicator/image-indicator.js +2 -0
  1179. package/es/ts-types/pivot-table/indicator/image-indicator.js.map +1 -0
  1180. package/es/ts-types/pivot-table/indicator/index.d.ts +10 -0
  1181. package/es/ts-types/pivot-table/indicator/index.js +2 -0
  1182. package/es/ts-types/pivot-table/indicator/index.js.map +1 -0
  1183. package/es/ts-types/pivot-table/indicator/link-indicator.d.ts +17 -0
  1184. package/es/ts-types/pivot-table/indicator/link-indicator.js +2 -0
  1185. package/es/ts-types/pivot-table/indicator/link-indicator.js.map +1 -0
  1186. package/es/ts-types/pivot-table/indicator/multilinetext-indicator.d.ts +11 -0
  1187. package/es/ts-types/pivot-table/indicator/multilinetext-indicator.js +2 -0
  1188. package/es/ts-types/pivot-table/indicator/multilinetext-indicator.js.map +1 -0
  1189. package/es/ts-types/pivot-table/indicator/progress-indicator.d.ts +11 -0
  1190. package/es/ts-types/pivot-table/indicator/progress-indicator.js +2 -0
  1191. package/es/ts-types/pivot-table/indicator/progress-indicator.js.map +1 -0
  1192. package/es/ts-types/pivot-table/indicator/sparkline-indicator.d.ts +10 -0
  1193. package/es/ts-types/pivot-table/indicator/sparkline-indicator.js +2 -0
  1194. package/es/ts-types/pivot-table/indicator/sparkline-indicator.js.map +1 -0
  1195. package/es/ts-types/pivot-table/title.d.ts +18 -0
  1196. package/es/ts-types/pivot-table/title.js +2 -0
  1197. package/es/ts-types/pivot-table/title.js.map +1 -0
  1198. package/es/ts-types/style-define.d.ts +60 -0
  1199. package/es/ts-types/style-define.js +2 -0
  1200. package/es/ts-types/style-define.js.map +1 -0
  1201. package/es/ts-types/table-engine.d.ts +169 -0
  1202. package/es/ts-types/table-engine.js +12 -0
  1203. package/es/ts-types/table-engine.js.map +1 -0
  1204. package/es/ts-types/theme.d.ts +88 -0
  1205. package/es/ts-types/theme.js +2 -0
  1206. package/es/ts-types/theme.js.map +1 -0
  1207. package/es/ts-types/tooltip.d.ts +22 -0
  1208. package/es/ts-types/tooltip.js +2 -0
  1209. package/es/ts-types/tooltip.js.map +1 -0
  1210. package/package.json +95 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["scenegraph/scenegraph.ts"],"names":[],"mappings":"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","file":"scenegraph.js","sourcesContent":["import type { IStage, IRect, ITextCache } from '@visactor/vrender';\nimport { createStage, createRect, IContainPointMode, container } from '@visactor/vrender';\nimport type { CellType, ColumnIconOption } from '../ts-types';\nimport { Group } from './graphic/group';\nimport type { Icon } from './graphic/icon';\nimport {\n createBodyColGroup,\n createColHeaderColGroup,\n createCornerHeaderColGroup,\n createRowHeaderColGroup\n} from './group-creater/column';\nimport type { WrapText } from './graphic/text';\nimport { updateAutoColWidth } from './layout/auto-width';\nimport { updateAutoRowHeight } from './layout/auto-height';\nimport { getCellMergeInfo } from './utils/get-cell-merge';\nimport { updateColWidth } from './layout/update-width';\nimport { TableComponent } from './component/table-component';\nimport { updateRowHeight } from './layout/update-height';\nimport { updateImageCellContentWhileResize } from './group-creater/cell-type/image-cell';\nimport { getPadding } from './utils/padding';\nimport { createFrameBorder } from './style/frame-border';\nimport { ResizeColumnHotSpotSize } from '../tools/global';\nimport splitModule from './graphic/contributions';\nimport { getProp } from './utils/get-prop';\nimport { createCellContent, dealWithIcon } from './utils/text-icon-layout';\nimport { SceneProxy } from './group-creater/progress/proxy';\nimport { SortOrder } from '../state/state';\nimport type { ListTable } from '../ListTable';\nimport type { TooltipOptions } from '../ts-types/tooltip';\nimport { computeColWidth, computeColsWidth } from './layout/compute-col-width';\nimport { getStyleTheme } from './group-creater/column-helper';\nimport { moveHeaderPosition } from './layout/move-cell';\nimport { updateCell } from './group-creater/cell-helper';\nimport type { BaseTableAPI } from '../ts-types/base-table';\n\ncontainer.load(splitModule);\n\nconst groupForDebug = new Group({});\ngroupForDebug.role = 'empty';\n/**\n * @description: 表格场景树,存储和管理表格全部的场景图元\n * @return {*}\n */\nexport class Scenegraph {\n proxy: SceneProxy;\n tableGroup: Group; // 表格全局Group\n colHeaderGroup: Group; // 列表头Group\n cornerHeaderGroup: Group; // 列表头冻结列Group\n rowHeaderGroup: Group; // 行表头Group\n bodyGroup: Group; // 内容Group\n componentGroup: Group; // 表格外组件Group\n /** 所有选中区域对应的选框组件 */\n selectedRangeComponents: Map<string, { rect: IRect; role: CellType }>;\n /** 当前正在选择区域对应的选框组件 为什么是map 以为可能一个选中区域会被拆分为多个rect组件 三块表头和body都分别对应不同组件*/\n selectingRangeComponents: Map<string, { rect: IRect; role: CellType }>;\n lastSelectId: string;\n component: TableComponent;\n stage: IStage;\n table: BaseTableAPI;\n isPivot: boolean;\n transpose: boolean;\n hasFrozen: boolean; // 是否已经处理冻结列,用在getCell判断是否从cornerHeaderGroup获取cellGroup\n frozenColCount: number;\n frozenRowCount: number;\n clear: boolean;\n\n constructor(table: BaseTableAPI) {\n this.table = table;\n this.hasFrozen = false;\n this.clear = true;\n\n this.stage = createStage({\n canvas: table.canvas,\n width: table.canvas.width,\n height: table.canvas.height,\n disableDirtyBounds: false,\n background: table.theme.underlayBackgroundColor\n });\n\n this.stage.defaultLayer.setTheme({\n group: {\n boundsPadding: 0,\n strokeBoundsBuffer: 0,\n lineJoin: 'round'\n }\n });\n this.initSceneGraph();\n this.stage.defaultLayer.add(this.tableGroup);\n\n (this.stage as any).table = this.table;\n\n this.createComponent();\n }\n\n get width(): number {\n return this.tableGroup.attribute?.width ?? 0;\n }\n\n get height(): number {\n return this.tableGroup.attribute?.height ?? 0;\n }\n\n get x(): number {\n return this.tableGroup.attribute?.x ?? 0;\n }\n\n get y(): number {\n return this.tableGroup.attribute?.y ?? 0;\n }\n\n get bodyRowStart(): number {\n if (this.transpose || this.isPivot) {\n return this.table.columnHeaderLevelCount;\n }\n return this.proxy.rowStart ?? 0;\n }\n\n get bodyRowEnd(): number {\n if (this.transpose || this.isPivot) {\n return this.table.rowCount - 1;\n }\n return this.proxy.rowEnd ?? 0;\n }\n\n /**\n * @description: 初始化场景树结构\n * @return {*}\n */\n initSceneGraph() {\n this.isPivot = this.table.isPivotTable();\n this.transpose = (this.table.options as any).transpose; // 初始化时this.table.transpose还未赋值\n\n const width = this.table.tableNoFrameWidth;\n const height = this.table.tableNoFrameHeight;\n\n this.tableGroup = new Group({ x: 0, y: 0, width, height, clip: true, pickable: false });\n this.tableGroup.role = 'table';\n\n const colHeaderGroup = new Group({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n clip: false,\n pickable: false\n });\n colHeaderGroup.role = 'col-header';\n this.colHeaderGroup = colHeaderGroup;\n\n const cornerHeaderGroup = new Group({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n clip: false,\n pickable: false\n });\n cornerHeaderGroup.role = 'corner-header';\n this.cornerHeaderGroup = cornerHeaderGroup;\n\n const rowHeaderGroup = new Group({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n clip: false,\n pickable: false\n });\n rowHeaderGroup.role = 'row-header';\n this.rowHeaderGroup = rowHeaderGroup;\n\n const bodyGroup = new Group({\n x: 0,\n y: 0,\n width,\n height: 0,\n clip: false,\n pickable: false\n });\n bodyGroup.role = 'body';\n this.bodyGroup = bodyGroup;\n\n const componentGroup = new Group({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n clip: false,\n pickable: false,\n childrenPickable: true\n });\n componentGroup.role = 'component';\n this.componentGroup = componentGroup;\n\n this.tableGroup.addChild(bodyGroup);\n this.tableGroup.addChild(rowHeaderGroup);\n this.tableGroup.addChild(colHeaderGroup);\n this.tableGroup.addChild(cornerHeaderGroup);\n this.tableGroup.addChild(componentGroup);\n }\n\n /**\n * @description: 初始化表格外组件\n * @return {*}\n */\n createComponent() {\n this.component = new TableComponent(this.table);\n this.component.addToGroup(this.componentGroup);\n this.selectedRangeComponents = new Map();\n this.selectingRangeComponents = new Map();\n }\n\n /**\n * @description: 依据数据创建表格场景树\n * @return {*}\n */\n createSceneGraph() {\n this.clear = false;\n computeColsWidth(this.table);\n\n this.frozenColCount = this.table.rowHeaderLevelCount;\n this.frozenRowCount = this.table.columnHeaderLevelCount;\n\n this.proxy = new SceneProxy(this.table);\n\n // 首屏表头全量\n this.createHeaderSceneGraph();\n // body生成首屏\n if (this.transpose || this.isPivot) {\n this.createBodySceneGraph();\n } else {\n this.createBodySceneGraphForFirstScreen();\n }\n }\n\n createHeaderSceneGraph() {\n createCornerHeaderColGroup(this.cornerHeaderGroup, 0, 0, this.table);\n this.colHeaderGroup.setAttribute('x', this.cornerHeaderGroup.attribute.width);\n createColHeaderColGroup(this.colHeaderGroup, 0, 0, this.table);\n }\n\n createBodySceneGraph() {\n // 依据列表头高度更新行表头Group y\n this.rowHeaderGroup.setAttribute('y', this.colHeaderGroup.attribute.height);\n createRowHeaderColGroup(this.rowHeaderGroup, 0, 0, this.table);\n\n // 依据列表头高度和行表头宽度,更新内容Group xy\n this.bodyGroup.setAttributes({\n y: this.colHeaderGroup.attribute.height,\n x: this.rowHeaderGroup.attribute.width\n });\n createBodyColGroup(this.bodyGroup, 0, 0, this.table);\n this.afterScenegraphCreated();\n }\n\n createBodySceneGraphForFirstScreen() {\n // 依据列表头高度更新行表头Group y\n this.rowHeaderGroup.setAttribute('y', this.colHeaderGroup.attribute.height);\n // createRowHeaderColGroup(this.rowHeaderGroup, 0, 0, this.table);\n // this.proxy.createBodyColGroupForFirstScreen(this.rowHeaderGroup, 0, 0, this.table, 'rowHeader');\n\n // 依据列表头高度和行表头宽度,更新内容Group xy\n this.bodyGroup.setAttributes({\n y: this.colHeaderGroup.attribute.height,\n x: this.rowHeaderGroup.attribute.width\n });\n console.log('before-createBodyColGroupForFirstScreen');\n this.proxy.createColGroupForFirstScreen(this.rowHeaderGroup, this.bodyGroup, 0, 0, this.table);\n console.log('after-createBodyColGroupForFirstScreen');\n this.afterScenegraphCreated();\n }\n\n /**\n * @description: 绘制场景树\n * @param {any} element\n * @param {CellRange} visibleCoord\n * @return {*}\n */\n renderSceneGraph() {\n this.stage.render();\n }\n\n /**\n * @description: 获取指定行列位置的cell group\n * @param {number} col\n * @param {number} row\n * @return {Group}\n */\n getCellOld(col: number, row: number): Group {\n // hasFrozen处理前,列表头的冻结部分在colHeaderGroup中\n // hasFrozen处理后,列表头的冻结部分在cornerHeaderGroup中\n // 因此在获取cell时需要区别hasFrozen时机\n let element: Group;\n if (this.hasFrozen && col < this.table.frozenColCount && row < this.table.frozenRowCount) {\n element = this.cornerHeaderGroup.getChildAt(col)?.getChildAt(row) as Group;\n } else if (row < this.table.frozenRowCount) {\n // element = (this as any).tableGroup.children[0]?.children[col]?.children[row];\n element = this.colHeaderGroup\n .getChildAt(this.hasFrozen ? col - this.table.frozenColCount : col)\n ?.getChildAt(row) as Group;\n } else if (col < this.table.frozenColCount) {\n // element = (this as any).tableGroup.children[1]?.children[col]?.children[\n // row - this.table.frozenRowCount\n // ];\n element = this.rowHeaderGroup.getChildAt(col)?.getChildAt(row - this.table.frozenRowCount) as Group;\n } else {\n // element = (this as any).tableGroup.children[2]?.children[col - this.table.frozenColCount]\n // ?.children[row - this.table.frozenRowCount];\n element = this.bodyGroup\n .getChildAt(col - this.table.frozenColCount)\n ?.getChildAt(row - this.table.frozenRowCount) as Group;\n }\n\n if (element && element.role === 'shadow-cell') {\n const range = this.table.getCellRange(col, row);\n element = this.getCell(range.start.col, range.start.row);\n }\n\n return element || undefined;\n }\n\n getColGroupOld(col: number, isHeader = false): Group {\n let element: Group;\n if (col < this.frozenColCount && isHeader) {\n element = this.cornerHeaderGroup.getChildAt(col) as Group;\n } else if (col < this.frozenColCount) {\n element = this.rowHeaderGroup.getChildAt(col) as Group;\n } else if (isHeader) {\n element = this.rowHeaderGroup.getChildAt(col - this.frozenColCount) as Group;\n } else {\n element = this.bodyGroup.getChildAt(col - this.frozenColCount) as Group;\n }\n return element || undefined;\n }\n\n /**\n * @description: 获取指定行列位置的cell group\n * @param {number} col\n * @param {number} row\n * @return {Group}\n */\n getCell(col: number, row: number, getShadow?: boolean): Group {\n // hasFrozen处理前,列表头的冻结部分在colHeaderGroup中\n // hasFrozen处理后,列表头的冻结部分在cornerHeaderGroup中\n // 因此在获取cell时需要区别hasFrozen时机\n let cell = this.getColGroup(col, row < this.frozenRowCount)?.getRowGroup(row);\n if (cell && cell.role === 'shadow-cell' && !getShadow) {\n const range = this.table.getCellRange(col, row);\n cell = this.getCell(range.start.col, range.start.row);\n }\n\n return cell || groupForDebug;\n }\n\n getColGroup(col: number, isCornerOrColHeader = false): Group {\n let element: Group;\n if (col < this.frozenColCount && isCornerOrColHeader) {\n element = this.cornerHeaderGroup.getColGroup(col) as Group;\n } else if (col < this.frozenColCount) {\n element = this.rowHeaderGroup.getColGroup(col) as Group;\n } else if (isCornerOrColHeader) {\n element = this.colHeaderGroup.getColGroup(col) as Group;\n } else {\n element = this.bodyGroup.getColGroup(col) as Group;\n }\n return element || undefined;\n }\n\n /**\n * @description: 获取指定行列位置的cell的宽高,主要处理merge情况\n * @param {number} col\n * @param {number} row\n * @return {Group}\n */\n getCellSize(col: number, row: number): { width: number; height: number } {\n const cell = this.getCell(col, row);\n const mergeInfo = getCellMergeInfo(this.table, col, row);\n let width = cell.attribute.width;\n let height = cell.attribute.height;\n if (mergeInfo) {\n width = width / (mergeInfo.end.col - mergeInfo.start.col + 1);\n height = height / (mergeInfo.end.row - mergeInfo.start.row + 1);\n }\n return { width, height };\n }\n\n /**\n * @description: 触发下一帧渲染\n * @return {*}\n */\n updateNextFrame() {\n // to do\n // this.table.invalidate();\n this.resetAllSelectComponent();\n\n this.stage.renderNextFrame();\n }\n resetAllSelectComponent() {\n this.selectingRangeComponents.forEach((selectComp: { rect: IRect; role: CellType }, key: string) => {\n const [startCol, startRow, endCol, endRow] = key.split('-');\n let cellsBounds;\n for (let i = parseInt(startCol, 10); i <= parseInt(endCol, 10); i++) {\n for (let j = parseInt(startRow, 10); j <= parseInt(endRow, 10); j++) {\n const cellGroup = this.getCell(i, j);\n cellGroup.AABBBounds.width(); // hack: globalAABBBounds可能不会自动更新,这里强制更新一下\n const bounds = cellGroup.globalAABBBounds;\n if (!cellsBounds) {\n cellsBounds = bounds;\n } else {\n cellsBounds.union(bounds);\n }\n }\n }\n selectComp.rect.setAttributes({\n x: cellsBounds.x1 - this.tableGroup.attribute.x,\n y: cellsBounds.y1 - this.tableGroup.attribute.y,\n width: cellsBounds.width(),\n height: cellsBounds.height(),\n visible: true\n });\n\n //#region 判断是不是按着表头部分的选中框 因为绘制层级的原因 线宽会被遮住一半,因此需要动态调整层级\n const isNearRowHeader =\n // this.table.scrollLeft === 0 &&\n parseInt(startCol, 10) === this.table.frozenColCount;\n const isNearColHeader =\n // this.table.scrollTop === 0 &&\n parseInt(startRow, 10) === this.table.frozenRowCount;\n if (\n (isNearRowHeader && selectComp.rect.attribute.stroke[3]) ||\n (isNearColHeader && selectComp.rect.attribute.stroke[0])\n ) {\n if (isNearRowHeader) {\n this.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'columnHeader' ? this.cornerHeaderGroup : this.rowHeaderGroup\n );\n }\n if (isNearColHeader) {\n this.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'rowHeader' ? this.cornerHeaderGroup : this.colHeaderGroup\n );\n }\n //#region 调整层级后 滚动情况下会出现绘制范围出界 如body的选中框 渲染在了rowheader上面,所有需要调整选中框rect的 边界\n if (\n selectComp.rect.attribute.x < this.rowHeaderGroup.attribute.width &&\n this.table.scrollLeft > 0 &&\n (selectComp.role === 'body' || selectComp.role === 'columnHeader')\n ) {\n selectComp.rect.setAttributes({\n x: selectComp.rect.attribute.x + (this.rowHeaderGroup.attribute.width - selectComp.rect.attribute.x),\n width: selectComp.rect.attribute.width - (this.rowHeaderGroup.attribute.width - selectComp.rect.attribute.x)\n });\n }\n if (\n selectComp.rect.attribute.y < this.colHeaderGroup.attribute.height &&\n this.table.scrollTop > 0 &&\n (selectComp.role === 'body' || selectComp.role === 'rowHeader')\n ) {\n selectComp.rect.setAttributes({\n y: selectComp.rect.attribute.y + (this.colHeaderGroup.attribute.height - selectComp.rect.attribute.y),\n height:\n selectComp.rect.attribute.height - (this.colHeaderGroup.attribute.height - selectComp.rect.attribute.y)\n });\n }\n //#endregion\n } else {\n this.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'body'\n ? this.bodyGroup\n : selectComp.role === 'columnHeader'\n ? this.colHeaderGroup\n : selectComp.role === 'rowHeader'\n ? this.rowHeaderGroup\n : this.cornerHeaderGroup\n );\n }\n //#endregion\n });\n this.selectedRangeComponents.forEach((selectComp: { rect: IRect; role: CellType }, key: string) => {\n const [startCol, startRow, endCol, endRow] = key.split('-');\n let cellsBounds;\n for (let i = parseInt(startCol, 10); i <= parseInt(endCol, 10); i++) {\n for (let j = parseInt(startRow, 10); j <= parseInt(endRow, 10); j++) {\n const cellGroup = this.getCell(i, j);\n cellGroup.AABBBounds.width(); // hack: globalAABBBounds可能不会自动更新,这里强制更新一下\n const bounds = cellGroup.globalAABBBounds;\n if (!cellsBounds) {\n cellsBounds = bounds;\n } else {\n cellsBounds.union(bounds);\n }\n }\n }\n selectComp.rect.setAttributes({\n x: cellsBounds.x1 - this.tableGroup.attribute.x,\n y: cellsBounds.y1 - this.tableGroup.attribute.y,\n width: cellsBounds.width(),\n height: cellsBounds.height(),\n visible: true\n });\n\n //#region 判断是不是按着表头部分的选中框 因为绘制层级的原因 线宽会被遮住一半,因此需要动态调整层级\n const isNearRowHeader =\n // this.table.scrollLeft === 0 &&\n parseInt(startCol, 10) === this.table.frozenColCount;\n const isNearColHeader =\n // this.table.scrollTop === 0 &&\n parseInt(startRow, 10) === this.table.frozenRowCount;\n if (\n (isNearRowHeader && selectComp.rect.attribute.stroke[3]) ||\n (isNearColHeader && selectComp.rect.attribute.stroke[0])\n ) {\n if (isNearRowHeader) {\n this.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'columnHeader' ? this.cornerHeaderGroup : this.rowHeaderGroup\n );\n }\n if (isNearColHeader) {\n this.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'rowHeader' ? this.cornerHeaderGroup : this.colHeaderGroup\n );\n }\n //#region 调整层级后 滚动情况下会出现绘制范围出界 如body的选中框 渲染在了rowheader上面,所有需要调整选中框rect的 边界\n if (\n selectComp.rect.attribute.x < this.rowHeaderGroup.attribute.width &&\n this.table.scrollLeft > 0 &&\n (selectComp.role === 'body' || selectComp.role === 'columnHeader')\n ) {\n selectComp.rect.setAttributes({\n x: selectComp.rect.attribute.x + (this.rowHeaderGroup.attribute.width - selectComp.rect.attribute.x),\n width: selectComp.rect.attribute.width - (this.rowHeaderGroup.attribute.width - selectComp.rect.attribute.x)\n });\n }\n if (\n selectComp.rect.attribute.y < this.colHeaderGroup.attribute.height &&\n this.table.scrollTop > 0 &&\n (selectComp.role === 'body' || selectComp.role === 'rowHeader')\n ) {\n selectComp.rect.setAttributes({\n y: selectComp.rect.attribute.y + (this.colHeaderGroup.attribute.height - selectComp.rect.attribute.y),\n height:\n selectComp.rect.attribute.height - (this.colHeaderGroup.attribute.height - selectComp.rect.attribute.y)\n });\n }\n //#endregion\n } else {\n this.tableGroup.insertAfter(\n selectComp.rect,\n selectComp.role === 'body'\n ? this.bodyGroup\n : selectComp.role === 'columnHeader'\n ? this.colHeaderGroup\n : selectComp.role === 'rowHeader'\n ? this.rowHeaderGroup\n : this.cornerHeaderGroup\n );\n }\n //#endregion\n });\n }\n\n removeInteractionBorder(col: number, row: number) {\n const cellGroup = this.getCell(col, row);\n cellGroup.setAttribute('highlightStroke', undefined);\n cellGroup.setAttribute('highlightStrokeArrayWidth', undefined);\n cellGroup.setAttribute('highlightStrokeArrayColor', undefined);\n }\n\n hideHoverIcon(col: number, row: number) {\n if (col === -1 || row === -1) {\n return;\n }\n const cellGroup = this.getCell(col, row);\n hideIcon(this, cellGroup, 'mouseenter_cell');\n }\n showHoverIcon(col: number, row: number) {\n if (col === -1 || row === -1) {\n return;\n }\n const cellGroup = this.getCell(col, row);\n showIcon(this, cellGroup, 'mouseenter_cell');\n }\n hideClickIcon(col: number, row: number) {\n if (col === -1 || row === -1) {\n return;\n }\n const cellGroup = this.getCell(col, row);\n hideIcon(this, cellGroup, 'click_cell');\n }\n showClickIcon(col: number, row: number) {\n if (col === -1 || row === -1) {\n return;\n }\n const cellGroup = this.getCell(col, row);\n showIcon(this, cellGroup, 'click_cell');\n }\n /**\n * 单元格失焦 失效该单元格对应的图表实例\n * @param col\n * @param row\n * @returns\n */\n deactivateChart(col: number, row: number) {\n if (col === -1 || row === -1) {\n return;\n }\n const cellGroup = this.getCell(col, row);\n (cellGroup?.firstChild as any)?.deactivate?.();\n }\n /**\n * hover 到单元格上 激活该单元格对应的图表实例\n * @param col\n * @param row\n * @returns\n */\n activateChart(col: number, row: number) {\n if (col === -1 || row === -1) {\n return;\n }\n const cellGroup = this.getCell(col, row);\n (cellGroup?.firstChild as any)?.activate?.(this.table);\n }\n\n createCellSelectBorder(\n start_Col: number,\n start_Row: number,\n end_Col: number,\n end_Row: number,\n selectRangeType: CellType,\n selectId: string, //整体区域${endRow}-${startCol}${startRow}${endCol}${endRow}作为其编号\n strokes?: boolean[]\n ) {\n const startCol = Math.min(start_Col, end_Col);\n const startRow = Math.min(start_Row, end_Row);\n const endCol = Math.max(start_Col, end_Col);\n const endRow = Math.max(start_Row, end_Row);\n\n let cellsBounds;\n for (let i = startCol; i <= endCol; i++) {\n for (let j = startRow; j <= endRow; j++) {\n const cellGroup = this.getCell(i, j);\n if (cellGroup.role === 'shadow-cell') {\n continue;\n }\n const bounds = cellGroup.globalAABBBounds;\n if (!cellsBounds) {\n cellsBounds = bounds;\n } else {\n cellsBounds.union(bounds);\n }\n }\n }\n\n const theme = this.table.theme;\n // 框选外边框\n const bodyClickBorderColor = theme.selectionStyle?.cellBorderColor;\n const bodyClickLineWidth = theme.selectionStyle?.cellBorderLineWidth;\n const rect = createRect({\n pickable: false,\n fill: true,\n fillColor: (theme.selectionStyle?.cellBgColor as any) ?? 'rgba(0, 0, 255,0.1)',\n strokeColor: bodyClickBorderColor as string,\n lineWidth: bodyClickLineWidth as number,\n stroke: strokes,\n x: cellsBounds.x1 - this.tableGroup.attribute.x,\n y: cellsBounds.y1 - this.tableGroup.attribute.y,\n width: cellsBounds.width(),\n height: cellsBounds.height(),\n visible: true\n });\n this.lastSelectId = selectId;\n this.selectingRangeComponents.set(`${startCol}-${startRow}-${endCol}-${endRow}-${selectId}`, {\n rect,\n role: selectRangeType\n });\n this.tableGroup.insertAfter(\n rect,\n selectRangeType === 'body'\n ? this.bodyGroup\n : selectRangeType === 'columnHeader'\n ? this.colHeaderGroup\n : selectRangeType === 'rowHeader'\n ? this.rowHeaderGroup\n : this.cornerHeaderGroup\n );\n }\n moveSelectingRangeComponentsToSelectedRangeComponents() {\n this.selectingRangeComponents.forEach((rangeComponent, key) => {\n if (this.selectedRangeComponents.get(key)) {\n this.selectedRangeComponents.get(key).rect.delete();\n }\n this.selectedRangeComponents.set(key, rangeComponent);\n });\n this.selectingRangeComponents = new Map();\n this.updateNextFrame();\n }\n /** 按住shift 则继续上次选中范围 需要将现有的删除掉 */\n deleteLastSelectedRangeComponents() {\n this.selectedRangeComponents.forEach((selectComp: { rect: IRect; role: CellType }, key: string) => {\n const lastSelectId = key.split('-')[4];\n if (lastSelectId === this.lastSelectId) {\n selectComp.rect.delete();\n this.selectedRangeComponents.delete(key);\n }\n });\n }\n deleteAllSelectBorder() {\n this.selectedRangeComponents.forEach((selectComp: { rect: IRect; role: CellType }, key: string) => {\n selectComp.rect.delete();\n });\n this.selectedRangeComponents = new Map();\n }\n\n updateCellSelectBorder(newStartCol: number, newStartRow: number, newEndCol: number, newEndRow: number) {\n let startCol = Math.min(newEndCol, newStartCol);\n let startRow = Math.min(newEndRow, newStartRow);\n let endCol = Math.max(newEndCol, newStartCol);\n let endRow = Math.max(newEndRow, newStartRow);\n //#region region 校验四周的单元格有没有合并的情况,如有则扩大范围\n const extendSelectRange = () => {\n let isExtend = false;\n for (let col = startCol; col <= endCol; col++) {\n if (col === startCol) {\n for (let row = startRow; row <= endRow; row++) {\n const mergeInfo = getCellMergeInfo(this.table, col, row);\n if (mergeInfo && mergeInfo.start.col < startCol) {\n startCol = mergeInfo.start.col;\n isExtend = true;\n break;\n }\n }\n }\n if (!isExtend && col === endCol) {\n for (let row = startRow; row <= endRow; row++) {\n const mergeInfo = getCellMergeInfo(this.table, col, row);\n if (mergeInfo && mergeInfo.end.col > endCol) {\n endCol = mergeInfo.end.col;\n isExtend = true;\n break;\n }\n }\n }\n\n if (isExtend) {\n break;\n }\n }\n if (!isExtend) {\n for (let row = startRow; row <= endRow; row++) {\n if (row === startRow) {\n for (let col = startCol; col <= endCol; col++) {\n const mergeInfo = getCellMergeInfo(this.table, col, row);\n if (mergeInfo && mergeInfo.start.row < startRow) {\n startRow = mergeInfo.start.row;\n isExtend = true;\n break;\n }\n }\n }\n if (!isExtend && row === endRow) {\n for (let col = startCol; col <= endCol; col++) {\n const mergeInfo = getCellMergeInfo(this.table, col, row);\n if (mergeInfo && mergeInfo.end.row > endRow) {\n endRow = mergeInfo.end.row;\n isExtend = true;\n break;\n }\n }\n }\n\n if (isExtend) {\n break;\n }\n }\n }\n if (isExtend) {\n extendSelectRange();\n }\n };\n extendSelectRange();\n //#endregion\n this.selectingRangeComponents.forEach((selectComp: { rect: IRect; role: CellType }, key: string) => {\n selectComp.rect.delete();\n });\n this.selectingRangeComponents = new Map();\n\n let needRowHeader = false;\n let needColumnHeader = false;\n let needBody = false;\n let needCornerHeader = false;\n if (startCol <= this.table.frozenColCount - 1 && startRow <= this.table.frozenRowCount - 1) {\n needCornerHeader = true;\n }\n if (startCol <= this.table.frozenColCount - 1 && endRow >= this.table.frozenRowCount) {\n needRowHeader = true;\n }\n if (startRow <= this.table.frozenRowCount - 1 && endCol >= this.table.frozenColCount) {\n needColumnHeader = true;\n }\n if (endCol >= this.table.frozenColCount && endRow >= this.table.frozenRowCount) {\n needBody = true;\n }\n\n // TODO 可以尝试不拆分三个表头和body【前提是theme中合并配置】 用一个SelectBorder 需要结合clip,并动态设置border的范围【依据区域范围 已经是否跨表头及body】\n if (needCornerHeader) {\n const cornerEndCol = Math.min(endCol, this.table.frozenColCount - 1);\n const cornerEndRow = Math.min(endRow, this.table.frozenRowCount - 1);\n const strokeArray = [true, !needColumnHeader, !needRowHeader, true];\n this.createCellSelectBorder(\n startCol,\n startRow,\n cornerEndCol,\n cornerEndRow,\n 'cornerHeader',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needColumnHeader) {\n const columnHeaderStartCol = Math.max(startCol, this.table.frozenColCount);\n const columnHeaderEndRow = Math.min(endRow, this.table.frozenRowCount - 1);\n const strokeArray = [true, true, !needBody, !needCornerHeader];\n this.createCellSelectBorder(\n columnHeaderStartCol,\n startRow,\n endCol,\n columnHeaderEndRow,\n 'columnHeader',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needRowHeader) {\n const columnHeaderStartRow = Math.max(startRow, this.table.frozenRowCount);\n const columnHeaderEndCol = Math.min(endCol, this.table.frozenColCount - 1);\n const strokeArray = [!needCornerHeader, !needBody, true, true];\n this.createCellSelectBorder(\n startCol,\n columnHeaderStartRow,\n columnHeaderEndCol,\n endRow,\n 'rowHeader',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n if (needBody) {\n const columnHeaderStartCol = Math.max(startCol, this.table.frozenColCount);\n const columnHeaderStartRow = Math.max(startRow, this.table.frozenRowCount);\n const strokeArray = [!needColumnHeader, true, true, !needRowHeader];\n this.createCellSelectBorder(\n columnHeaderStartCol,\n columnHeaderStartRow,\n endCol,\n endRow,\n 'body',\n `${startCol}${startRow}${endCol}${endRow}`,\n strokeArray\n );\n }\n }\n // hideCellsSelectBorder() {\n // this.component.selectBorder.setAttribute('visible', false);\n // }\n\n /**\n * @description: 获取指定单元格指定位置的icon mark\n * @param {number} col\n * @param {number} row\n * @param {number} x\n * @param {number} y\n * @return {*}\n */\n getIcon(col: number, row: number, x: number, y: number): Icon | undefined {\n const cellGroup = this.getCell(col, row);\n let pickMark;\n cellGroup.forEachChildren((mark: Icon) => {\n if (mark.role === 'icon' && mark.containsPoint(x, y, IContainPointMode.GLOBAL)) {\n pickMark = mark;\n }\n });\n return pickMark;\n }\n\n /**\n * @description: 将指定icon mark设置为Hover样式\n * @param {Icon} icon\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\n setIconHoverStyle(icon: Icon, col: number, row: number, cellGroup: Group) {\n // hover展示背景\n if (icon.attribute.backgroundColor) {\n let iconBack = icon.parent.getChildByName('icon-back') as IRect;\n if (iconBack) {\n iconBack.setAttributes({\n x: (icon.attribute.x ?? 0) + (icon.attribute.dx ?? 0) + (icon.AABBBounds.width() - icon.backgroundWidth) / 2,\n y: (icon.attribute.y ?? 0) + (icon.AABBBounds.height() - icon.backgroundHeight) / 2,\n width: icon.backgroundWidth,\n height: icon.backgroundHeight,\n fillColor: icon.attribute.backgroundColor,\n borderRadius: 5,\n visible: true\n });\n } else {\n iconBack = createRect({\n x: (icon.attribute.x ?? 0) + (icon.attribute.dx ?? 0) + (icon.AABBBounds.width() - icon.backgroundWidth) / 2,\n y: (icon.attribute.y ?? 0) + (icon.AABBBounds.height() - icon.backgroundHeight) / 2,\n width: icon.backgroundWidth,\n height: icon.backgroundHeight,\n fillColor: icon.attribute.backgroundColor,\n borderRadius: 5,\n pickable: false,\n visible: true\n }) as IRect;\n iconBack.name = 'icon-back';\n // cellGroup.appendChild(iconBack);\n }\n icon.parent.insertBefore(iconBack, icon);\n }\n\n // hover更换图片\n if (icon.attribute.hoverImage && icon.attribute.image !== icon.attribute.hoverImage) {\n icon.image = icon.attribute.hoverImage;\n }\n\n // hover展示tooltip\n if (icon.tooltip) {\n const { x1: left, x2: right, y1: top, y2: bottom } = icon.globalAABBBounds;\n const tooltipOptions: TooltipOptions = {\n content: icon.tooltip.title,\n referencePosition: {\n rect: {\n left: left - this.table.tableX,\n right: right - this.table.tableX,\n top: top - this.table.tableY,\n bottom: bottom - this.table.tableY,\n width: icon.globalAABBBounds.width(),\n height: icon.globalAABBBounds.height()\n },\n placement: icon.tooltip.placement\n },\n style: Object.assign({}, this.table.internalProps.theme?.tooltipStyle, icon.tooltip?.style)\n };\n if (!this.table.internalProps.tooltipHandler.isBinded(tooltipOptions)) {\n this.table.showTooltip(col, row, tooltipOptions);\n }\n }\n }\n\n /**\n * @description: 将指定icon mark设置为Normal样式\n * @param {Icon} icon\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\n setIconNormalStyle(icon: Icon, col: number, row: number) {\n const iconBack = icon.parent.getChildByName('icon-back') as IRect;\n if (iconBack) {\n iconBack.setAttribute('visible', false);\n }\n\n // hover更换图片\n if (icon.attribute.hoverImage && icon.attribute.image !== icon.attribute.originImage) {\n icon.image = icon.attribute.originImage;\n }\n }\n\n /**\n * @description: 列宽调整结果更新列宽\n * @param {number} col\n * @param {number} detaX 改变的宽度值\n * @return {*}\n */\n updateColWidth(col: number, detaX: number) {\n updateColWidth(this, col, detaX);\n this.updateContainerWidth(col, detaX);\n }\n\n updateAutoColWidth(col: number) {\n const oldWidth = this.table.getColWidth(col);\n const newWidth = computeColWidth(col, 0, this.table.rowCount - 1, this.table, true);\n if (newWidth !== oldWidth) {\n this.updateColWidth(col, newWidth - oldWidth);\n }\n }\n\n updateTableSize() {\n this.tableGroup.setAttributes({\n width: Math.min(\n this.table.tableNoFrameWidth,\n Math.max(this.colHeaderGroup.attribute.width, this.bodyGroup.attribute.width, 0) +\n Math.max(this.cornerHeaderGroup.attribute.width, this.rowHeaderGroup.attribute.width, 0)\n ),\n height: Math.min(\n this.table.tableNoFrameHeight,\n (this.colHeaderGroup.attribute.height ?? 0) + (this.bodyGroup.attribute.height ?? 0)\n )\n } as any);\n\n if (this.tableGroup.border) {\n this.tableGroup.border.setAttributes({\n width: this.tableGroup.attribute.width + this.tableGroup.border.attribute.lineWidth,\n height: this.tableGroup.attribute.height + this.tableGroup.border.attribute.lineWidth\n });\n }\n }\n\n updateRowHeight(row: number, detaY: number) {\n updateRowHeight(this, row, detaY);\n this.updateContainerHeight(row, detaY);\n }\n\n /**\n * @description: 更新table&header&body高度\n * @return {*}\n */\n updateContainerWidth(col: number, detaX: number) {\n // 更新table/header/border宽度\n if (col < this.frozenColCount) {\n this.rowHeaderGroup.setDeltaWidth(detaX);\n this.cornerHeaderGroup.setDeltaWidth(detaX);\n this.colHeaderGroup.setDeltaX(detaX);\n this.bodyGroup.setDeltaX(detaX);\n } else {\n this.colHeaderGroup.setDeltaWidth(detaX);\n this.bodyGroup.setDeltaWidth(detaX);\n }\n\n this.updateTableSize();\n this.component.updateScrollBar();\n\n this.updateNextFrame();\n }\n\n /**\n * @description: 更新table&header&body高度\n * @return {*}\n */\n updateContainerHeight(row: number, detaY: number) {\n // 更新table/header/border高度\n if (row < this.frozenRowCount) {\n this.colHeaderGroup.setDeltaHeight(detaY);\n this.cornerHeaderGroup.setDeltaHeight(detaY);\n this.rowHeaderGroup.setDeltaY(detaY);\n this.bodyGroup.setDeltaY(detaY);\n } else {\n this.rowHeaderGroup.setDeltaHeight(detaY);\n this.bodyGroup.setDeltaHeight(detaY);\n }\n\n this.updateTableSize();\n this.component.updateScrollBar();\n\n this.updateNextFrame();\n }\n setColWidth(col: number, width: number) {\n const oldWidth = this.table.getColWidth(col);\n if (oldWidth === width) {\n return;\n }\n this.updateColWidth(col, width - oldWidth);\n }\n\n setRowHeight(row: number, height: number) {\n const oldHeight = this.table.getRowHeight(row);\n this.updateRowHeight(row, height - oldHeight);\n }\n\n /**\n * @description: 设置表格的x位置,滚动中使用\n * @param {number} x\n * @return {*}\n */\n setX(x: number) {\n if (this.colHeaderGroup.attribute.width + x === this.bodyGroup.attribute.x) {\n return;\n }\n // this.tableGroup.setAttribute('x', x);\n // this.tableGroup.setAttribute('width', this.table.tableNoFrameWidth - x);\n this.bodyGroup.setAttribute('x', this.rowHeaderGroup.attribute.width + x);\n this.colHeaderGroup.setAttribute('x', this.rowHeaderGroup.attribute.width + x);\n\n // (this.tableGroup.lastChild as any).setAttribute('width', this.table.tableNoFrameWidth - x);\n this.updateNextFrame();\n }\n\n /**\n * @description: 更新表格的y位置,滚动中使用\n * @param {number} y\n * @return {*}\n */\n setY(y: number) {\n if (this.transpose || this.isPivot) {\n if (this.colHeaderGroup.attribute.height + y === this.bodyGroup.attribute.y) {\n return;\n }\n this.bodyGroup.setAttribute('y', this.colHeaderGroup.attribute.height + y);\n this.rowHeaderGroup.setAttribute('y', this.colHeaderGroup.attribute.height + y);\n // this.tableGroup.setAttribute('height', this.table.tableNoFrameHeight - y);\n // (this.tableGroup.lastChild as any).setAttribute('width', this.table.tableNoFrameWidth - x);\n this.updateNextFrame();\n } else if (this.table.scenegraph.proxy) {\n this.table.scenegraph.proxy.setY(-y);\n }\n }\n\n /**\n * @description: 更新表格的y位置,滚动中使用\n * @param {number} y\n * @return {*}\n */\n setBodyAndRowHeaderY(y: number) {\n if (this.colHeaderGroup.attribute.height + y === this.bodyGroup.attribute.y) {\n return;\n }\n this.bodyGroup.setAttribute('y', this.colHeaderGroup.attribute.height + y);\n this.rowHeaderGroup.setAttribute('y', this.colHeaderGroup.attribute.height + y);\n // this.tableGroup.setAttribute('height', this.table.tableNoFrameHeight - y);\n // (this.tableGroup.lastChild as any).setAttribute('width', this.table.tableNoFrameWidth - x);\n this.updateNextFrame();\n }\n\n /**\n * @description: 完成创建场景树节点后,处理自动行高列宽\n * @return {*}\n */\n afterScenegraphCreated() {\n // 对齐auto列宽\n // updateAutoColWidth(this);\n // 对齐autoWrapText\n const { autoRowHeight } = this.table.internalProps;\n if (autoRowHeight) {\n updateAutoRowHeight(this);\n }\n\n this.dealWidthMode();\n\n // 处理冻结\n this.dealFrozen();\n\n // 处理frame border\n this.createFrameBorder();\n\n // 更新滚动条状态\n this.component.updateScrollBar();\n }\n\n /**\n * @description: 处理宽度模式\n * @return {*}\n */\n dealWidthMode() {\n const table = this.table;\n if (table.widthMode === 'adaptive') {\n // 处理adaptive宽度\n // table._colRangeWidthsMap = new Map();\n // const canvasWidth = this.internalProps.canvas.width;\n const totalDrawWidth = table.tableNoFrameWidth;\n let actualWidth = 0;\n for (let col = 0; col < table.colCount; col++) {\n actualWidth += table.getColWidth(col);\n }\n const factor = totalDrawWidth / actualWidth;\n for (let col = 0; col < table.colCount; col++) {\n let colWidth;\n if (col === table.colCount - 1) {\n colWidth = totalDrawWidth - table.getColsWidth(0, table.colCount - 2);\n } else {\n colWidth = Math.round(table.getColWidth(col) * factor);\n }\n this.setColWidth(col, colWidth);\n }\n } else if (table.widthMode === 'standard-aeolus' && this.transpose) {\n // 处理风神列宽特殊逻辑\n // table._colRangeWidthsMap = new Map();\n const canvasWidth = table.tableNoFrameWidth;\n let actualWidth = 0;\n let actualHeaderWidth = 0;\n for (let col = 0; col < table.colCount; col++) {\n const colWidth = table.getColWidth(col);\n if (col < table.frozenColCount) {\n actualHeaderWidth += colWidth;\n }\n\n actualWidth += colWidth;\n }\n\n // 如果内容宽度小于canvas宽度,执行adaptive放大\n if (actualWidth < canvasWidth && actualWidth - actualHeaderWidth > 0) {\n const factor = (canvasWidth - actualHeaderWidth) / (actualWidth - actualHeaderWidth);\n for (let col = table.frozenColCount; col < table.colCount; col++) {\n this.setColWidth(col, table.getColWidth(col) * factor);\n }\n }\n }\n\n // 更新容器宽度\n let bodyWidth = 0;\n this.bodyGroup.forEachChildrenSkipChild((column: Group) => {\n bodyWidth += column.attribute.width;\n });\n this.bodyGroup.setAttribute('width', bodyWidth);\n let colHeaderWidth = 0;\n this.colHeaderGroup.forEachChildrenSkipChild((column: Group) => {\n colHeaderWidth += column.attribute.width;\n });\n this.colHeaderGroup.setAttribute('width', colHeaderWidth);\n let rowHeaderWidth = 0;\n this.rowHeaderGroup.forEachChildrenSkipChild((column: Group) => {\n rowHeaderWidth += column.attribute.width;\n });\n this.rowHeaderGroup.setAttribute('width', rowHeaderWidth);\n let cornerHeaderWidth = 0;\n this.cornerHeaderGroup.forEachChildrenSkipChild((column: Group) => {\n cornerHeaderWidth += column.attribute.width;\n });\n this.cornerHeaderGroup.setAttribute('width', cornerHeaderWidth);\n\n this.colHeaderGroup.setAttribute('x', this.cornerHeaderGroup.attribute.width);\n this.rowHeaderGroup.setAttribute('y', this.colHeaderGroup.attribute.height);\n this.bodyGroup.setAttributes({\n x: this.rowHeaderGroup.attribute.width,\n y: this.colHeaderGroup.attribute.height\n });\n }\n\n /**\n * @description: 处理冻结\n * @return {*}\n */\n dealFrozen() {\n if (this.table.frozenColCount > this.table.rowHeaderLevelCount) {\n // 将对应列移入rowHeaderGroup\n this.rowHeaderGroup.setAttribute('height', this.bodyGroup.attribute.height);\n this.rowHeaderGroup.setAttribute('y', this.bodyGroup.attribute.y);\n this.cornerHeaderGroup.setAttribute('height', this.colHeaderGroup.attribute.height);\n for (let i = 0; i < this.table.frozenColCount - this.table.rowHeaderLevelCount; i++) {\n const column = this.bodyGroup.firstChild as Group;\n if (column) {\n this.rowHeaderGroup.appendChild(column);\n // 更新容器宽度\n this.rowHeaderGroup.setAttribute('width', this.rowHeaderGroup.attribute.width + column.attribute.width);\n this.bodyGroup.setAttribute('width', this.bodyGroup.attribute.width - column.attribute.width);\n }\n\n // 处理列表头\n const headerColumn = this.colHeaderGroup.firstChild as Group;\n if (headerColumn) {\n this.cornerHeaderGroup.appendChild(headerColumn);\n this.cornerHeaderGroup.setAttribute(\n 'width',\n this.cornerHeaderGroup.attribute.width + headerColumn.attribute.width\n );\n this.colHeaderGroup.setAttribute('width', this.colHeaderGroup.attribute.width - headerColumn.attribute.width);\n }\n }\n }\n this.bodyGroup.setAttribute('x', this.rowHeaderGroup.attribute.width);\n this.colHeaderGroup.setAttribute('x', this.cornerHeaderGroup.attribute.width);\n\n // 更新bodyGroup&colHeaderGroup剩余列位置\n const bodyDeltaX = (this.bodyGroup.firstChild as Group)?.attribute.x ?? 0;\n this.bodyGroup.forEachChildrenSkipChild((column: Group) => {\n column.setAttribute('x', column.attribute.x - bodyDeltaX);\n });\n const colDeltaX = (this.colHeaderGroup.firstChild as Group)?.attribute.x ?? 0;\n this.colHeaderGroup.forEachChildrenSkipChild((column: Group) => {\n column.setAttribute('x', column.attribute.x - colDeltaX);\n });\n\n this.updateBorderSizeAndPosition();\n\n if (!this.isPivot && !this.transpose) {\n this.component.setFrozenColumnShadow(this.table.frozenColCount - 1);\n }\n this.hasFrozen = true;\n\n // this.frozenColCount = this.rowHeaderGroup.childrenCount;\n this.frozenColCount = this.table.frozenColCount;\n this.frozenRowCount = this.colHeaderGroup.firstChild?.childrenCount ?? 0;\n }\n\n /**\n * @description: 还原冻结\n * @return {*}\n */\n resetFrozen() {\n if (this.frozenColCount > this.table.rowHeaderLevelCount) {\n // 将对应列移入rowHeaderGroup\n // this.rowHeaderGroup.setAttribute('height', this.bodyGroup.attribute.height);\n // this.cornerHeaderGroup.setAttribute('height', this.colHeaderGroup.attribute.height);\n for (let i = 0; i < this.frozenColCount - this.table.rowHeaderLevelCount; i++) {\n const column =\n this.rowHeaderGroup.lastChild instanceof Group\n ? this.rowHeaderGroup.lastChild\n : (this.rowHeaderGroup.lastChild._prev as Group);\n if (column) {\n this.bodyGroup.insertBefore(column, this.bodyGroup.firstChild);\n // 更新容器宽度\n this.bodyGroup.setAttribute('width', this.bodyGroup.attribute.width + column.attribute.width);\n this.rowHeaderGroup.setAttribute('width', this.rowHeaderGroup.attribute.width - column.attribute.width);\n }\n\n // 处理列表头\n const headerColumn =\n this.cornerHeaderGroup.lastChild instanceof Group\n ? this.cornerHeaderGroup.lastChild\n : (this.cornerHeaderGroup.lastChild._prev as Group);\n if (headerColumn) {\n this.colHeaderGroup.insertBefore(headerColumn, this.colHeaderGroup.firstChild);\n this.colHeaderGroup.setAttribute('width', this.colHeaderGroup.attribute.width + headerColumn.attribute.width);\n this.cornerHeaderGroup.setAttribute(\n 'width',\n this.cornerHeaderGroup.attribute.width - headerColumn.attribute.width\n );\n }\n }\n }\n this.bodyGroup.setAttribute('x', this.rowHeaderGroup.attribute.width);\n this.colHeaderGroup.setAttribute('x', this.cornerHeaderGroup.attribute.width);\n\n // 更新bodyGroup&colHeaderGroup剩余列位置\n let bodyX = 0;\n this.bodyGroup.forEachChildrenSkipChild((column: Group) => {\n column.setAttribute('x', bodyX);\n bodyX += column.attribute.width;\n });\n let colX = 0;\n this.colHeaderGroup.forEachChildrenSkipChild((column: Group) => {\n column.setAttribute('x', colX);\n colX += column.attribute.width;\n });\n\n this.updateBorderSizeAndPosition();\n\n if (!this.isPivot && !this.transpose) {\n this.component.setFrozenColumnShadow(this.table.frozenColCount - 1);\n }\n this.hasFrozen = true;\n\n // this.frozenColCount = this.rowHeaderGroup.childrenCount;\n this.frozenColCount = this.table.rowHeaderLevelCount;\n this.frozenRowCount = this.colHeaderGroup.firstChild?.childrenCount ?? 0;\n }\n\n /**\n * @description: 判断指定列更新宽度时,其中单元格是否会更新宽度;如果更新宽度,返回true\n * @param {Group} columnGroup\n * @param {number} detaRow columnGroup内的index与row的差值,列表头为0;行表头和内容为table.frozenRowCount\n * @param {number} col\n * @return {*}\n */\n updateCellLayoutWidthCertainWidth(columnGroup: Group, detaRow: number, col: number) {\n const width = columnGroup.attribute.width;\n let isUpdate = false;\n columnGroup.forEachChildren((cellGroup: Group, row: number) => {\n row += detaRow;\n const mergeInfo = getCellMergeInfo(this.table, col, row);\n if (mergeInfo) {\n cellGroup = this.getCell(mergeInfo.start.col, mergeInfo.start.row);\n // cellGroup.setAttribute('width', width);\n } else {\n cellGroup.setAttribute('width', width);\n }\n const headerStyle = this.table._getCellStyle(col, row);\n const padding = getPadding(getProp('padding', headerStyle, col, row, this.table));\n\n // const text = cellGroup.getChildAt(1) as WrapText;\n const text = cellGroup.getChildByName('text') as WrapText;\n let oldCellHeight = 0;\n let newCellHeight = 0;\n if (text) {\n oldCellHeight = text.AABBBounds.height() + (padding[0] + padding[2]);\n text.setAttribute('maxLineWidth', width - (padding[1] + padding[3]));\n newCellHeight = text.AABBBounds.height() + (padding[0] + padding[2]);\n } else {\n const group = cellGroup.getChildAt(1) as any;\n oldCellHeight = group.AABBBounds.height() + (padding[0] + padding[2]);\n group._cellWidth = width - (padding[1] + padding[3]);\n group.layout();\n newCellHeight = group.AABBBounds.height() + (padding[0] + padding[2]);\n }\n const rowHeight = this.table.getRowHeight(row);\n\n if (cellGroup.attribute.height !== newCellHeight) {\n cellGroup.setAttribute('height', newCellHeight);\n if (rowHeight === oldCellHeight) {\n // 当前行由本单元格高度撑起,更新本行行高\n isUpdate = true;\n } else if (newCellHeight > rowHeight) {\n // 当前行不由本单元格高度撑起,只在本单元格高度高于当前行高度时更新本行行高\n isUpdate = true;\n }\n }\n });\n return isUpdate;\n }\n\n /**\n * @description: 更新某列到其他列位置\n * @param {number} colSource 原始列col\n * @param {number} colTarget 目标列col\n * @return {*}\n */\n updateHeaderPosition(colSource: number, rowSource: number, colTarget: number, rowTarget: number) {\n moveHeaderPosition(colSource, rowSource, colTarget, rowTarget, this.table);\n }\n\n updateContainer() {\n // 更新各列x&col\n let cornerX = 0;\n this.cornerHeaderGroup.forEachChildrenSkipChild((column: Group, index) => {\n column.setAttribute('x', cornerX);\n cornerX += column.attribute.width;\n });\n let rowHeaderX = 0;\n this.rowHeaderGroup.forEachChildrenSkipChild((column: Group, index) => {\n column.setAttribute('x', rowHeaderX);\n rowHeaderX += column.attribute.width;\n });\n let colHeaderX = 0;\n this.colHeaderGroup.forEachChildrenSkipChild((column: Group, index) => {\n column.setAttribute('x', colHeaderX);\n colHeaderX += column.attribute.width;\n });\n let bodyX = 0;\n this.bodyGroup.forEachChildrenSkipChild((column: Group, index) => {\n column.setAttribute('x', bodyX);\n bodyX += column.attribute.width;\n });\n // 更新容器\n this.cornerHeaderGroup.setDeltaWidth(cornerX - this.cornerHeaderGroup.attribute.width);\n this.colHeaderGroup.setDeltaWidth(colHeaderX - this.colHeaderGroup.attribute.width);\n this.rowHeaderGroup.setDeltaWidth(rowHeaderX - this.rowHeaderGroup.attribute.width);\n this.bodyGroup.setDeltaWidth(bodyX - this.bodyGroup.attribute.width);\n\n this.colHeaderGroup.setAttribute('x', this.cornerHeaderGroup.attribute.width);\n this.bodyGroup.setAttribute('x', this.rowHeaderGroup.attribute.width);\n\n // 记录滚动条原位置\n const oldHorizontalBarPos = this.table.stateManeger.scroll.horizontalBarPos;\n const oldVerticalBarPos = this.table.stateManeger.scroll.verticalBarPos;\n this.component.updateScrollBar();\n this.table.stateManeger.setScrollLeft(oldHorizontalBarPos);\n this.table.stateManeger.setScrollTop(oldVerticalBarPos);\n this.updateNextFrame();\n }\n\n /**\n * @description: 清空全部单元格内容,用于setRecord\n * @return {*}\n */\n clearCells() {\n this.clear = true;\n this.hasFrozen = false;\n\n this.colHeaderGroup.clear();\n this.rowHeaderGroup.clear();\n this.cornerHeaderGroup.clear();\n this.bodyGroup.clear();\n\n this.colHeaderGroup.setAttributes({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n this.rowHeaderGroup.setAttributes({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n this.cornerHeaderGroup.setAttributes({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n this.bodyGroup.setAttributes({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n this.tableGroup.setAttributes({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n\n if ((this.tableGroup as any).border) {\n (this.tableGroup.parent as Group).removeChild((this.tableGroup as any).border);\n delete (this.tableGroup as any).border;\n }\n }\n\n updateCellContentWhileResize(col: number, row: number) {\n const type = this.table.getBodyColumnType(col, row);\n const cellGroup = this.getCell(col, row);\n if (type === 'image' || type === 'video') {\n updateImageCellContentWhileResize(cellGroup, col, row, this.table);\n }\n }\n\n /**\n * @description: 创建table&header&body的border\n * @return {*}\n */\n createFrameBorder() {\n // 更新宽高\n this.updateTableSize();\n // this.tableGroup.setAttributes({\n // width: Math.min(\n // this.table.tableNoFrameWidth,\n // (this.colHeaderGroup.attribute.width ?? 0) + (this.cornerHeaderGroup.attribute.width ?? 0)\n // ),\n // height: Math.min(\n // this.table.tableNoFrameHeight,\n // (this.colHeaderGroup.attribute.height ?? 0) + (this.bodyGroup.attribute.height ?? 0)\n // ),\n // } as any);\n\n const isListTableWithFrozen = !this.isPivot && this.rowHeaderGroup.attribute.width;\n\n // 设置border\n createFrameBorder(\n this.bodyGroup,\n this.table.theme.bodyStyle.frameStyle,\n this.bodyGroup.role,\n isListTableWithFrozen ? [true, true, true, false] : undefined\n );\n createFrameBorder(\n this.rowHeaderGroup,\n this.isPivot ? this.table.theme.rowHeaderStyle.frameStyle : this.table.theme.bodyStyle.frameStyle,\n this.rowHeaderGroup.role,\n isListTableWithFrozen ? [true, false, true, true] : undefined\n );\n createFrameBorder(\n this.colHeaderGroup,\n this.table.theme.headerStyle.frameStyle, // 透视表的主题中没有colHeaderStyle,直接使用headerStyle\n this.colHeaderGroup.role,\n isListTableWithFrozen ? [true, true, true, false] : undefined\n );\n createFrameBorder(\n this.cornerHeaderGroup,\n this.isPivot ? this.table.theme.cornerHeaderStyle.frameStyle : this.table.theme.headerStyle.frameStyle,\n this.cornerHeaderGroup.role,\n isListTableWithFrozen ? [true, false, true, true] : undefined\n );\n createFrameBorder(this.tableGroup, this.table.theme.frameStyle, this.tableGroup.role);\n }\n\n /**\n * @description: 获取当前位置的列宽调整信息\n * @param {number} abstractX\n * @param {number} abstractY\n * @param {Group} cellGroup\n * @param {*} offset\n * @return {*}\n */\n getResizeColAt(\n abstractX: number,\n abstractY: number,\n cellGroup?: Group,\n offset = ResizeColumnHotSpotSize / 2\n ): { col: number; row: number; x?: number } {\n if (!cellGroup) {\n // to do: 处理最后一列外调整列宽\n } else {\n if (abstractX < cellGroup.globalAABBBounds.x1 + offset) {\n return { col: cellGroup.col - 1, row: cellGroup.row, x: cellGroup.globalAABBBounds.x1 };\n }\n if (cellGroup.globalAABBBounds.x2 - offset < abstractX) {\n return { col: cellGroup.col, row: cellGroup.row, x: cellGroup.globalAABBBounds.x2 };\n }\n }\n return { col: -1, row: -1 };\n }\n\n updateIcon(icon: Icon, iconConfig: ColumnIconOption) {\n // 直接更新mark attribute\n dealWithIcon(iconConfig, icon);\n icon.name = iconConfig.name;\n this.updateNextFrame();\n }\n\n updateFrozen() {\n if (this.clear) {\n return;\n }\n this.resetFrozen();\n this.dealFrozen();\n this.component.updateScrollBar();\n }\n\n updateBorderSizeAndPosition() {\n if (this.bodyGroup.border) {\n this.bodyGroup.appendChild(this.bodyGroup.border);\n this.bodyGroup.border?.setAttribute(\n 'width',\n this.bodyGroup.attribute.width - (this.bodyGroup.border.attribute.lineWidth ?? 0)\n );\n if (this.rowHeaderGroup.attribute.width === 0) {\n this.bodyGroup.border?.setAttribute('stroke', [true, true, true, true]);\n } else {\n this.bodyGroup.border?.setAttribute('stroke', [true, true, true, false]);\n }\n }\n if (this.colHeaderGroup.border) {\n this.colHeaderGroup.appendChild(this.colHeaderGroup.border);\n this.colHeaderGroup.border?.setAttribute(\n 'width',\n this.colHeaderGroup.attribute.width - (this.colHeaderGroup.border.attribute.lineWidth ?? 0)\n );\n if (this.cornerHeaderGroup.attribute.width === 0) {\n this.colHeaderGroup.border?.setAttribute('stroke', [true, true, true, true]);\n } else {\n this.colHeaderGroup.border?.setAttribute('stroke', [true, true, true, false]);\n }\n }\n if (this.rowHeaderGroup.border) {\n this.rowHeaderGroup.appendChild(this.rowHeaderGroup.border);\n this.rowHeaderGroup.border?.setAttribute(\n 'width',\n this.rowHeaderGroup.attribute.width - (this.rowHeaderGroup.border.attribute.lineWidth ?? 0)\n );\n }\n if (this.cornerHeaderGroup.border) {\n this.cornerHeaderGroup.appendChild(this.cornerHeaderGroup.border);\n this.cornerHeaderGroup.border?.setAttribute(\n 'width',\n this.cornerHeaderGroup.attribute.width - (this.cornerHeaderGroup.border.attribute.lineWidth ?? 0)\n );\n }\n }\n\n updateSortIcon(\n col: number,\n row: number,\n iconMark: Icon,\n order: SortOrder,\n oldSortCol: number,\n oldSortRow: number,\n oldIconMark: Icon | undefined\n ) {\n // 更新icon\n const icon = this.table.internalProps.headerHelper.getSortIcon(order, this.table, col, row);\n if (iconMark) {\n this.updateIcon(iconMark, icon);\n }\n\n // 更新旧frozen icon\n if (oldIconMark !== iconMark) {\n const oldIcon = this.table.internalProps.headerHelper.getSortIcon(\n SortOrder.normal,\n this.table,\n oldSortCol,\n oldSortRow\n );\n if (oldIconMark) {\n this.updateIcon(oldIconMark, oldIcon);\n } else {\n const oldSortCell = this.getCell(oldSortCol, oldSortRow);\n let oldIconMark;\n oldSortCell.forEachChildren((mark: Icon) => {\n if (mark.attribute.funcType === 'sort') {\n oldIconMark = mark;\n return true;\n }\n return false;\n });\n if (oldIconMark) {\n this.updateIcon(oldIconMark, oldIcon);\n }\n }\n }\n }\n\n updateFrozenIcon(col: number, oldFrozenCol: number) {\n // 依据新旧冻结列确定更新范围\n const updateCol = Math.max(col, oldFrozenCol);\n\n // 遍历表头单元格,更新icon\n this.colHeaderGroup.forEachChildrenSkipChild((colGroup: Group) => {\n if (colGroup.col <= updateCol) {\n colGroup.forEachChildren((cellGroup: Group) => {\n cellGroup.forEachChildren((icon: Icon) => {\n if (icon.attribute.funcType === 'pin') {\n const iconConfig = this.table.internalProps.headerHelper.getPinIcon(cellGroup.col, cellGroup.row);\n this.updateIcon(icon, iconConfig);\n return true;\n }\n return false;\n });\n });\n return false;\n }\n return true;\n });\n this.cornerHeaderGroup.forEachChildrenSkipChild((colGroup: Group) => {\n if (colGroup.col <= updateCol) {\n colGroup.forEachChildren((cellGroup: Group) => {\n cellGroup.forEachChildren((icon: Icon) => {\n if (icon.attribute.funcType === 'pin') {\n const iconConfig = this.table.internalProps.headerHelper.getPinIcon(cellGroup.col, cellGroup.row);\n this.updateIcon(icon, iconConfig);\n return true;\n }\n return false;\n });\n });\n return false;\n }\n return true;\n });\n }\n\n sortCell() {\n if (this.isPivot) {\n // 透视表外部处理排序\n } else if (this.transpose) {\n setTimeout(() => {\n // 清空单元格内容\n this.clearCells();\n // 生成单元格场景树\n this.createSceneGraph();\n }, 10);\n } else {\n this.proxy.sortCell();\n }\n }\n\n getCellOverflowText(col: number, row: number): string | null {\n const cellGroup = this.getCell(col, row);\n const text = cellGroup.getChildByName('text', true) as unknown as WrapText;\n // if (text && text.cache?.clipedText !== text.attribute.text) {\n // return text.attribute.text as string;\n // }\n if (text) {\n const textAttributeStr = (text.attribute.text as string[]).join('');\n let cacheStr = '';\n (text.cache as ITextCache).layoutData.lines.forEach((line: any) => {\n cacheStr += line.str;\n });\n if (cacheStr !== textAttributeStr) {\n return textAttributeStr;\n }\n }\n return null;\n }\n\n updateDrill(visible: boolean, x: number, y: number, drillDown: boolean, drillUp: boolean) {\n this.component.drillIcon.update(visible, x, y, drillDown, drillUp, this);\n }\n\n updateCellContent(col: number, row: number) {\n if (this.clear) {\n return;\n }\n updateCell(col, row, this.table);\n }\n}\n\nfunction showIcon(scene: Scenegraph, cellGroup: Group, visibleTime: 'mouseenter_cell' | 'click_cell') {\n cellGroup.forEachChildren((child: any) => {\n if (child.type === 'group') {\n showIcon(scene, child, visibleTime);\n } else if (child.attribute.visibleTime === visibleTime) {\n child.attribute.visible = true;\n scene.updateNextFrame();\n }\n });\n}\n\nfunction hideIcon(scene: Scenegraph, cellGroup: Group, visibleTime: 'mouseenter_cell' | 'click_cell') {\n cellGroup.forEachChildren((child: any) => {\n if (child.type === 'group') {\n hideIcon(scene, child, visibleTime);\n } else if (child.attribute.visibleTime === visibleTime) {\n child.attribute.visible = false;\n scene.updateNextFrame();\n }\n });\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { TableFrameStyle } from '../../ts-types';
2
+ import type { Group } from '../graphic/group';
3
+ export declare function createFrameBorder(group: Group, frameTheme: TableFrameStyle | undefined, role: string, strokeArray?: [boolean, boolean, boolean, boolean]): void;
@@ -0,0 +1,35 @@
1
+ import { createRect } from "@visactor/vrender";
2
+
3
+ export function createFrameBorder(group, frameTheme, role, strokeArray) {
4
+ var _a, _b, _c, _d;
5
+ if (!frameTheme) return;
6
+ const isTableGroup = "table" === role, {shadowBlur: shadowBlur, shadowOffsetX: shadowOffsetX, shadowOffsetY: shadowOffsetY, shadowColor: shadowColor, roundCornerRadius: roundCornerRadius, borderColor: borderColor, borderLineWidth: borderLineWidth, borderLineDash: borderLineDash} = frameTheme, groupAttributes = {}, rectAttributes = {
7
+ pickable: !1
8
+ };
9
+ if (shadowBlur && isTableGroup && (rectAttributes.shadowBlur = shadowBlur, rectAttributes.shadowOffsetX = shadowOffsetX,
10
+ rectAttributes.shadowOffsetY = shadowOffsetY, rectAttributes.shadowColor = shadowColor,
11
+ rectAttributes.stroke = !0, rectAttributes.strokeColor = shadowColor, rectAttributes.lineWidth = 1,
12
+ rectAttributes.fill = !0, rectAttributes.fillOpacity = .01), borderLineWidth && (rectAttributes.stroke = !0,
13
+ rectAttributes.stroke = strokeArray || !0, rectAttributes.fill = !1, rectAttributes.strokeColor = borderColor,
14
+ rectAttributes.lineWidth = borderLineWidth, borderLineDash && (rectAttributes.lineDash = borderLineDash)),
15
+ Array.isArray(borderColor) && (rectAttributes.strokeArrayColor = borderColor), Array.isArray(borderLineWidth) && (rectAttributes.strokeArrayWidth = borderLineWidth,
16
+ rectAttributes.lineWidth = 1), roundCornerRadius && (rectAttributes.borderRadius = roundCornerRadius,
17
+ groupAttributes.borderRadius = roundCornerRadius), isTableGroup && (rectAttributes.shadowBlur || rectAttributes.lineWidth)) {
18
+ const deltaX = (null !== (_a = rectAttributes.shadowBlur) && void 0 !== _a ? _a : 0) + (null !== (_b = rectAttributes.lineWidth) && void 0 !== _b ? _b : 0), deltaY = (null !== (_c = rectAttributes.shadowBlur) && void 0 !== _c ? _c : 0) + (null !== (_d = rectAttributes.lineWidth) && void 0 !== _d ? _d : 0);
19
+ groupAttributes.x = group.attribute.x + deltaX, groupAttributes.y = group.attribute.y + deltaY;
20
+ }
21
+ if (group.setAttributes(groupAttributes), rectAttributes.stroke) if (rectAttributes.x = rectAttributes.lineWidth / 2,
22
+ rectAttributes.y = rectAttributes.lineWidth / 2, rectAttributes.pickable = !1, isTableGroup) {
23
+ rectAttributes.x = group.attribute.x - rectAttributes.lineWidth / 2, rectAttributes.y = group.attribute.y - rectAttributes.lineWidth / 2,
24
+ rectAttributes.width = group.attribute.width + rectAttributes.lineWidth, rectAttributes.height = group.attribute.height + rectAttributes.lineWidth;
25
+ const borderRect = createRect(rectAttributes);
26
+ borderRect.name = "table-border-rect", group.parent.insertBefore(borderRect, group),
27
+ group.border = borderRect;
28
+ } else {
29
+ rectAttributes.x = rectAttributes.lineWidth / 2, rectAttributes.y = rectAttributes.lineWidth / 2,
30
+ rectAttributes.width = group.attribute.width - rectAttributes.lineWidth, rectAttributes.height = group.attribute.height - rectAttributes.lineWidth;
31
+ const borderRect = createRect(rectAttributes);
32
+ borderRect.name = "border-rect", group.addChild(borderRect), group.border = borderRect;
33
+ }
34
+ }
35
+ //# sourceMappingURL=frame-border.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["scenegraph/style/frame-border.ts"],"names":[],"mappings":"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","file":"frame-border.js","sourcesContent":["import type { IGroupGraphicAttribute, IRectGraphicAttribute } from '@visactor/vrender';\nimport { createRect } from '@visactor/vrender';\nimport type { TableFrameStyle } from '../../ts-types';\nimport type { Group } from '../graphic/group';\n\nexport function createFrameBorder(\n group: Group,\n frameTheme: TableFrameStyle | undefined,\n role: string,\n strokeArray?: [boolean, boolean, boolean, boolean] // to do 处理成0b001111形式\n) {\n if (!frameTheme) {\n return;\n }\n\n const isTableGroup = role === 'table';\n\n const {\n shadowBlur,\n shadowOffsetX,\n shadowOffsetY,\n shadowColor,\n roundCornerRadius,\n borderColor,\n borderLineWidth,\n borderLineDash\n } = frameTheme;\n\n const groupAttributes: IGroupGraphicAttribute = {};\n const rectAttributes: IRectGraphicAttribute = {\n pickable: false\n };\n // 处理shadow\n if (shadowBlur && isTableGroup) {\n // 只有table才能配置shadow\n rectAttributes.shadowBlur = shadowBlur;\n rectAttributes.shadowOffsetX = shadowOffsetX;\n rectAttributes.shadowOffsetY = shadowOffsetY;\n rectAttributes.shadowColor = shadowColor;\n rectAttributes.stroke = true;\n rectAttributes.strokeColor = shadowColor;\n rectAttributes.lineWidth = 1;\n\n rectAttributes.fill = true;\n rectAttributes.fillOpacity = 0.01;\n }\n\n // 处理边框\n if (borderLineWidth) {\n rectAttributes.stroke = true;\n (rectAttributes as any).stroke = strokeArray || true;\n // (rectAttributes as any).strokeArrayColor = borderColor as string;\n rectAttributes.fill = false;\n rectAttributes.strokeColor = borderColor as string;\n rectAttributes.lineWidth = borderLineWidth as number;\n borderLineDash && (rectAttributes.lineDash = borderLineDash as number[]);\n }\n\n if (Array.isArray(borderColor)) {\n (rectAttributes as any).strokeArrayColor = borderColor;\n }\n if (Array.isArray(borderLineWidth)) {\n (rectAttributes as any).strokeArrayWidth = borderLineWidth;\n (rectAttributes as any).lineWidth = 1;\n }\n\n if (roundCornerRadius) {\n rectAttributes.borderRadius = roundCornerRadius;\n groupAttributes.borderRadius = roundCornerRadius;\n }\n\n // 处理边框引起的宽度高度变化(只对最外层tableGroup生效)\n if (isTableGroup && (rectAttributes.shadowBlur || rectAttributes.lineWidth)) {\n const deltaX = (rectAttributes.shadowBlur ?? 0) + ((rectAttributes.lineWidth as number) ?? 0);\n const deltaY = (rectAttributes.shadowBlur ?? 0) + ((rectAttributes.lineWidth as number) ?? 0);\n\n groupAttributes.x = group.attribute.x + deltaX;\n groupAttributes.y = group.attribute.y + deltaY;\n // 宽度高度在tableNoFrameWidth&tableNoFrameHeight中处理\n // groupAttributes.width = group.attribute.width - deltaX - deltaX;\n // groupAttributes.height = group.attribute.height - deltaY - deltaY;\n }\n group.setAttributes(groupAttributes);\n\n if (rectAttributes.stroke) {\n rectAttributes.x = rectAttributes.lineWidth / 2;\n rectAttributes.y = rectAttributes.lineWidth / 2;\n rectAttributes.pickable = false;\n if (isTableGroup) {\n rectAttributes.x = group.attribute.x - rectAttributes.lineWidth / 2;\n rectAttributes.y = group.attribute.y - rectAttributes.lineWidth / 2;\n rectAttributes.width = group.attribute.width + rectAttributes.lineWidth;\n rectAttributes.height = group.attribute.height + rectAttributes.lineWidth;\n const borderRect = createRect(rectAttributes);\n borderRect.name = 'table-border-rect';\n group.parent.insertBefore(borderRect, group);\n (group as any).border = borderRect;\n } else {\n rectAttributes.x = rectAttributes.lineWidth / 2;\n rectAttributes.y = rectAttributes.lineWidth / 2;\n rectAttributes.width = group.attribute.width - rectAttributes.lineWidth;\n rectAttributes.height = group.attribute.height - rectAttributes.lineWidth;\n const borderRect = createRect(rectAttributes);\n borderRect.name = 'border-rect';\n group.addChild(borderRect);\n (group as any).border = borderRect;\n }\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ export declare function getBorderLine(colWidth: number, rowHeight: number, top: boolean, right: boolean, bottom: boolean, left: boolean): {
2
+ x: number;
3
+ y: number;
4
+ points: {
5
+ x: number;
6
+ y: number;
7
+ }[];
8
+ }[];
@@ -0,0 +1,45 @@
1
+ export function getBorderLine(colWidth, rowHeight, top, right, bottom, left) {
2
+ const x = left ? -.5 : 0, y = top ? -.5 : 0, detaWidth = left && right ? 0 : left ? .5 : right ? -.5 : 0, detaHeight = top && bottom ? 0 : top ? .5 : bottom ? -.5 : 0, options = [];
3
+ return top && options.push({
4
+ x: x,
5
+ y: y,
6
+ points: [ {
7
+ x: 0,
8
+ y: 0
9
+ }, {
10
+ x: colWidth + detaWidth,
11
+ y: 0
12
+ } ]
13
+ }), right && options.push({
14
+ x: x,
15
+ y: y,
16
+ points: [ {
17
+ x: colWidth + detaWidth,
18
+ y: 0
19
+ }, {
20
+ x: colWidth + detaWidth,
21
+ y: rowHeight + detaHeight
22
+ } ]
23
+ }), bottom && options.push({
24
+ x: x,
25
+ y: y,
26
+ points: [ {
27
+ x: colWidth + detaWidth,
28
+ y: rowHeight + detaHeight
29
+ }, {
30
+ x: 0,
31
+ y: rowHeight + detaHeight
32
+ } ]
33
+ }), left && options.push({
34
+ x: x,
35
+ y: y,
36
+ points: [ {
37
+ x: 0,
38
+ y: rowHeight + detaHeight
39
+ }, {
40
+ x: 0,
41
+ y: 0
42
+ } ]
43
+ }), options;
44
+ }
45
+ //# sourceMappingURL=border-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["scenegraph/utils/border-line.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,SAAiB,EACjB,GAAY,EACZ,KAAc,EACd,MAAe,EACf,IAAa;IAEb,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzB,MAAM,SAAS,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAI,GAAG,EAAE;QACP,OAAO,CAAC,IAAI,CAAC;YACX,CAAC;YACD,CAAC;YACD,MAAM,EAAE;gBACN,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBACd,EAAE,CAAC,EAAE,QAAQ,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE;aAClC;SACF,CAAC,CAAC;KACJ;IACD,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,IAAI,CAAC;YACX,CAAC;YACD,CAAC;YACD,MAAM,EAAE;gBACN,EAAE,CAAC,EAAE,QAAQ,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE;gBACjC,EAAE,CAAC,EAAE,QAAQ,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE;aACvD;SACF,CAAC,CAAC;KACJ;IACD,IAAI,MAAM,EAAE;QACV,OAAO,CAAC,IAAI,CAAC;YACX,CAAC;YACD,CAAC;YACD,MAAM,EAAE;gBACN,EAAE,CAAC,EAAE,QAAQ,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE;gBACtD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE;aACpC;SACF,CAAC,CAAC;KACJ;IACD,IAAI,IAAI,EAAE;QACR,OAAO,CAAC,IAAI,CAAC;YACX,CAAC;YACD,CAAC;YACD,MAAM,EAAE;gBACN,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE;gBACnC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;aACf;SACF,CAAC,CAAC;KACJ;IAED,OAAO,OAAO,CAAC;AACjB,CAAC","file":"border-line.js","sourcesContent":["export function getBorderLine(\n colWidth: number,\n rowHeight: number,\n top: boolean,\n right: boolean,\n bottom: boolean,\n left: boolean\n) {\n const x = left ? -0.5 : 0;\n const y = top ? -0.5 : 0;\n // const detaWidth = left ? 0.5 : right ? -0.5 : 0;\n const detaWidth = left && right ? 0 : left ? 0.5 : right ? -0.5 : 0;\n // const detaHeight = top ? 0.5 : bottom ? -0.5 : 0;\n const detaHeight = top && bottom ? 0 : top ? 0.5 : bottom ? -0.5 : 0;\n\n const options = [];\n if (top) {\n options.push({\n x,\n y,\n points: [\n { x: 0, y: 0 },\n { x: colWidth + detaWidth, y: 0 }\n ]\n });\n }\n if (right) {\n options.push({\n x,\n y,\n points: [\n { x: colWidth + detaWidth, y: 0 },\n { x: colWidth + detaWidth, y: rowHeight + detaHeight }\n ]\n });\n }\n if (bottom) {\n options.push({\n x,\n y,\n points: [\n { x: colWidth + detaWidth, y: rowHeight + detaHeight },\n { x: 0, y: rowHeight + detaHeight }\n ]\n });\n }\n if (left) {\n options.push({\n x,\n y,\n points: [\n { x: 0, y: rowHeight + detaHeight },\n { x: 0, y: 0 }\n ]\n });\n }\n\n return options;\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function breakString(ctx: CanvasRenderingContext2D, str: string, width: number, font: string): string[] | string;
@@ -0,0 +1,31 @@
1
+ export function breakString(ctx, str, width, font) {
2
+ if (!width) return str;
3
+ const multilines = (str = String(str)).replace(/\r?\n/g, "\n").replace(/\r/g, "\n").split("\n");
4
+ ctx.textAlign = "left", ctx.textBaseline = "alphabetic", ctx.font = font;
5
+ const strArr = [];
6
+ for (let i = 0; i < multilines.length; i++) {
7
+ let temp = str, widthOrigin = Math.floor(ctx.measureText(str).width);
8
+ if (widthOrigin <= width) strArr.push(temp); else {
9
+ let i = 0;
10
+ for (;widthOrigin > width; ) {
11
+ const index = getStringIndex(ctx, str, width);
12
+ strArr.push(temp.slice(0, index)), temp = temp.slice(index), widthOrigin = Math.floor(ctx.measureText(temp).width),
13
+ i++ > 1e3 && console.error("breakString over 1000 times");
14
+ }
15
+ strArr.push(temp);
16
+ }
17
+ }
18
+ return strArr;
19
+ }
20
+
21
+ function getStringIndex(ctx, str, width) {
22
+ const widthOrigin = Math.floor(ctx.measureText(str).width);
23
+ if (widthOrigin <= width) return str.length;
24
+ let index = Math.ceil(width / widthOrigin * str.length) || 0, temp = str.slice(0, index), tempWidth = Math.floor(ctx.measureText(temp).width), tempNext = str.slice(0, index + 1), tempWidthNext = Math.floor(ctx.measureText(tempNext).width), i = 0;
25
+ for (;tempWidth > width || tempWidthNext <= width; ) tempWidth > width ? index-- : index++,
26
+ temp = str.slice(0, index), tempWidth = Math.floor(ctx.measureText(temp).width),
27
+ tempNext = str.slice(0, index + 1), tempWidthNext = Math.floor(ctx.measureText(tempNext).width),
28
+ i++ > 1e3 && console.error("getStringIndex over 1000 times");
29
+ return index;
30
+ }
31
+ //# sourceMappingURL=break-string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["scenegraph/utils/break-string.ts"],"names":[],"mappings":"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","file":"break-string.js","sourcesContent":["export function breakString(\n ctx: CanvasRenderingContext2D,\n str: string,\n width: number,\n font: string\n): string[] | string {\n if (!width) {\n return str;\n }\n str = String(str);\n const multilines = str.replace(/\\r?\\n/g, '\\n').replace(/\\r/g, '\\n').split('\\n');\n\n // 准备ctx\n ctx.textAlign = 'left';\n ctx.textBaseline = 'alphabetic';\n ctx.font = font;\n\n const strArr = [];\n for (let i = 0; i < multilines.length; i++) {\n let temp = str;\n let widthOrigin = Math.floor(ctx.measureText(str).width);\n if (widthOrigin <= width) {\n strArr.push(temp);\n } else {\n let i = 0;\n while (widthOrigin > width) {\n const index = getStringIndex(ctx, str, width);\n strArr.push(temp.slice(0, index));\n temp = temp.slice(index);\n widthOrigin = Math.floor(ctx.measureText(temp).width);\n if (i++ > 1000) {\n // debugger;\n console.error('breakString over 1000 times');\n }\n }\n strArr.push(temp);\n }\n }\n\n return strArr;\n}\n\nfunction getStringIndex(ctx: CanvasRenderingContext2D, str: string, width: number) {\n // 测量从头到当前位置宽度以及从头到下一个字符位置宽度\n const widthOrigin = Math.floor(ctx.measureText(str).width);\n if (widthOrigin <= width) {\n return str.length;\n }\n\n const guessIndex = Math.ceil((width / widthOrigin) * str.length) || 0;\n let index = guessIndex;\n let temp = str.slice(0, index);\n let tempWidth = Math.floor(ctx.measureText(temp).width);\n\n let tempNext = str.slice(0, index + 1);\n let tempWidthNext = Math.floor(ctx.measureText(tempNext).width);\n\n // 到当前位置宽度 < width && 到下一个字符位置宽度 > width时,认为找到准确阶段位置\n let i = 0;\n while (tempWidth > width || tempWidthNext <= width) {\n if (tempWidth > width) {\n index--;\n } else {\n index++;\n }\n\n temp = str.slice(0, index);\n tempWidth = Math.floor(ctx.measureText(temp).width);\n\n tempNext = str.slice(0, index + 1);\n tempWidthNext = Math.floor(ctx.measureText(tempNext).width);\n\n if (i++ > 1000) {\n // debugger;\n console.error('getStringIndex over 1000 times');\n }\n }\n\n return index;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export declare function calcStartPosition(left: number, top: number, width: number, height: number, contentWidth: number, contentHeight: number, textAlign?: CanvasTextAlign, textBaseline?: CanvasTextBaseline, margin?: number[], paddingLeft?: number, paddingRight?: number, paddingTop?: number, paddingBottom?: number): {
2
+ x: number;
3
+ y: number;
4
+ };
@@ -0,0 +1,12 @@
1
+ export function calcStartPosition(left, top, width, height, contentWidth, contentHeight, textAlign = "left", textBaseline = "middle", margin = [ 0, 0, 0, 0 ], paddingLeft = 0, paddingRight = 0, paddingTop = 0, paddingBottom = 0) {
2
+ const right = left + width, bottom = top + height;
3
+ let x = left + margin[3] + paddingLeft;
4
+ "right" === textAlign || "end" === textAlign ? x = right - contentWidth - margin[1] - paddingRight : "center" === textAlign && (x = left + (width - contentWidth + paddingLeft - paddingRight) / 2);
5
+ let y = top + margin[0] + paddingTop;
6
+ return "bottom" === textBaseline || "alphabetic" === textBaseline || "ideographic" === textBaseline ? y = bottom - contentHeight - margin[2] - paddingBottom : "middle" === textBaseline && (y = top + (height - contentHeight + paddingTop - paddingBottom) / 2),
7
+ {
8
+ x: x,
9
+ y: y
10
+ };
11
+ }
12
+ //# sourceMappingURL=cell-pos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["scenegraph/utils/cell-pos.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,GAAW,EACX,KAAa,EACb,MAAc,EACd,YAAoB,EACpB,aAAqB,EACrB,YAA6B,MAAM,EACnC,eAAmC,QAAQ,EAC3C,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACrB,WAAW,GAAG,CAAC,EACf,YAAY,GAAG,CAAC,EAChB,UAAU,GAAG,CAAC,EACd,aAAa,GAAG,CAAC;IAEjB,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;IAC3B,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IACvC,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,KAAK,EAAE;QAChD,CAAC,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;KACrD;SAAM,IAAI,SAAS,KAAK,QAAQ,EAAE;QACjC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;KACpE;IACD,IAAI,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;IACrC,IAAI,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,YAAY,IAAI,YAAY,KAAK,aAAa,EAAE;QAChG,CAAC,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;KACxD;SAAM,IAAI,YAAY,KAAK,QAAQ,EAAE;QACpC,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;KACrE;IACD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClB,CAAC","file":"cell-pos.js","sourcesContent":["/* eslint-disable no-undef */\nexport function calcStartPosition(\n left: number,\n top: number,\n width: number,\n height: number,\n contentWidth: number,\n contentHeight: number,\n textAlign: CanvasTextAlign = 'left',\n textBaseline: CanvasTextBaseline = 'middle',\n margin = [0, 0, 0, 0],\n paddingLeft = 0,\n paddingRight = 0,\n paddingTop = 0,\n paddingBottom = 0\n): { x: number; y: number } {\n const right = left + width;\n const bottom = top + height;\n let x = left + margin[3] + paddingLeft;\n if (textAlign === 'right' || textAlign === 'end') {\n x = right - contentWidth - margin[1] - paddingRight;\n } else if (textAlign === 'center') {\n x = left + (width - contentWidth + paddingLeft - paddingRight) / 2;\n }\n let y = top + margin[0] + paddingTop;\n if (textBaseline === 'bottom' || textBaseline === 'alphabetic' || textBaseline === 'ideographic') {\n y = bottom - contentHeight - margin[2] - paddingBottom;\n } else if (textBaseline === 'middle') {\n y = top + (height - contentHeight + paddingTop - paddingBottom) / 2;\n }\n return { x, y };\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function parseFont(font: string): any;
@@ -0,0 +1,6 @@
1
+ import parse from "cssfontparser";
2
+
3
+ export function parseFont(font) {
4
+ return parse(font);
5
+ }
6
+ //# sourceMappingURL=font.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["scenegraph/utils/font.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,eAAe,CAAC;AAElC,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC","file":"font.js","sourcesContent":["// @ts-nocheck\nimport parse from 'cssfontparser';\n\nexport function parseFont(font: string) {\n return parse(font);\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { CellRange } from '../../ts-types';
2
+ import type { BaseTableAPI } from '../../ts-types/base-table';
3
+ export declare function getCellMergeInfo(table: BaseTableAPI, col: number, row: number): false | CellRange;
@@ -0,0 +1,5 @@
1
+ export function getCellMergeInfo(table, col, row) {
2
+ const range = table.getCellRange(col, row);
3
+ return !(range.start.col === range.end.col && range.start.row === range.end.row) && range;
4
+ }
5
+ //# sourceMappingURL=get-cell-merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["scenegraph/utils/get-cell-merge.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,gBAAgB,CAAC,KAAmB,EAAE,GAAW,EAAE,GAAW;IAC5E,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IACvF,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,KAAK,CAAC;KACd;IACD,OAAO,KAAK,CAAC;AACf,CAAC","file":"get-cell-merge.js","sourcesContent":["import type { CellRange } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\n/**\n * @description: 获取对应坐标单元格的单元格合并信息,没有单元格合并返回false,有合并返回合并信息\n * @param {BaseTableAPI} table\n * @param {number} col\n * @param {number} row\n * @return {false | CellRange}\n */\nexport function getCellMergeInfo(table: BaseTableAPI, col: number, row: number): false | CellRange {\n const range = table.getCellRange(col, row);\n const isMerge = range.start.col !== range.end.col || range.start.row !== range.end.row;\n if (!isMerge) {\n return false;\n }\n return range;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { BaseTableAPI } from '../../ts-types/base-table';
2
+ export declare function getProp(name: string, cellStyle: any, col: number, row: number, _table: BaseTableAPI): any;
3
+ export declare function getRawProp(name: string, cellStyle: any, col: number, row: number, _table: BaseTableAPI): any;
4
+ export declare function getFunctionalProp(name: string, cellStyle: any, col: number, row: number, _table: BaseTableAPI): any;
@@ -0,0 +1,36 @@
1
+ import { isValid } from "../../tools/util";
2
+
3
+ export function getProp(name, cellStyle, col, row, _table) {
4
+ const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;
5
+ if ("function" == typeof prop) {
6
+ return prop({
7
+ col: col,
8
+ row: row,
9
+ table: _table,
10
+ value: _table.getCellValue(col, row),
11
+ dataValue: _table.getCellOriginValue(col, row),
12
+ cellHeaderPaths: _table.getCellHeaderPaths(col, row)
13
+ });
14
+ }
15
+ return prop;
16
+ }
17
+
18
+ export function getRawProp(name, cellStyle, col, row, _table) {
19
+ const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;
20
+ if ("function" != typeof prop) return prop;
21
+ }
22
+
23
+ export function getFunctionalProp(name, cellStyle, col, row, _table) {
24
+ const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;
25
+ if ("function" == typeof prop) {
26
+ return prop({
27
+ col: col,
28
+ row: row,
29
+ table: _table,
30
+ value: _table.getCellValue(col, row),
31
+ dataValue: _table.getCellOriginValue(col, row),
32
+ cellHeaderPaths: _table.getCellHeaderPaths(col, row)
33
+ });
34
+ }
35
+ }
36
+ //# sourceMappingURL=get-prop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["scenegraph/utils/get-prop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAI3C,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,SAAc,EAEd,GAAW,EACX,GAAW,EACX,MAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5E,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM,GAAG,GAA6B;YACpC,GAAG;YACH,GAAG;YACH,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YACpC,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9C,eAAe,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;SACrD,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,SAAc,EAEd,GAAW,EACX,GAAW,EACX,MAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,SAAc,EAEd,GAAW,EACX,GAAW,EACX,MAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM,GAAG,GAA6B;YACpC,GAAG;YACH,GAAG;YACH,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YACpC,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9C,eAAe,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;SACrD,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","file":"get-prop.js","sourcesContent":["import { isValid } from '../../tools/util';\nimport type { StylePropertyFunctionArg } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function getProp(\n name: string,\n cellStyle: any,\n // commonStyle: any,\n col: number,\n row: number,\n _table: BaseTableAPI\n) {\n const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;\n // to do 处理回调函数\n if (typeof prop === 'function') {\n const arg: StylePropertyFunctionArg = {\n col,\n row,\n table: _table,\n value: _table.getCellValue(col, row),\n dataValue: _table.getCellOriginValue(col, row),\n cellHeaderPaths: _table.getCellHeaderPaths(col, row)\n };\n return prop(arg);\n }\n return prop;\n}\n\nexport function getRawProp(\n name: string,\n cellStyle: any,\n // commonStyle: any,\n col: number,\n row: number,\n _table: BaseTableAPI\n) {\n const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;\n if (typeof prop === 'function') {\n return undefined;\n }\n return prop;\n}\n\nexport function getFunctionalProp(\n name: string,\n cellStyle: any,\n // commonStyle: any,\n col: number,\n row: number,\n _table: BaseTableAPI\n) {\n const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;\n if (typeof prop === 'function') {\n const arg: StylePropertyFunctionArg = {\n col,\n row,\n table: _table,\n value: _table.getCellValue(col, row),\n dataValue: _table.getCellOriginValue(col, row),\n cellHeaderPaths: _table.getCellHeaderPaths(col, row)\n };\n return prop(arg);\n }\n return undefined;\n}\n"]}
@@ -0,0 +1,12 @@
1
+ export declare function getIconAndPositionFromTarget(target: any): {
2
+ icon: any;
3
+ position: {
4
+ left: number;
5
+ right: number;
6
+ top: number;
7
+ bottom: number;
8
+ width: number;
9
+ height: number;
10
+ };
11
+ type: string;
12
+ } | undefined;