@visactor/vtable 0.15.0-alpha.4 → 0.15.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 (613) hide show
  1. package/cjs/ListTable.d.ts +3 -2
  2. package/cjs/ListTable.js +8 -3
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js.map +1 -1
  5. package/cjs/PivotTable.js.map +1 -1
  6. package/cjs/body-helper/body-helper.js.map +1 -1
  7. package/cjs/body-helper/style/CheckboxStyle.js.map +1 -1
  8. package/cjs/body-helper/style/ImageStyle.js.map +1 -1
  9. package/cjs/body-helper/style/MultilineTextStyle.js.map +1 -1
  10. package/cjs/body-helper/style/NumberStyle.js.map +1 -1
  11. package/cjs/body-helper/style/ProgressBarStyle.js.map +1 -1
  12. package/cjs/body-helper/style/Style.js.map +1 -1
  13. package/cjs/body-helper/style.js.map +1 -1
  14. package/cjs/chartModule.js.map +1 -1
  15. package/cjs/components/axis/axis.js.map +1 -1
  16. package/cjs/components/axis/band-scale.js.map +1 -1
  17. package/cjs/components/axis/get-axis-attributes.js.map +1 -1
  18. package/cjs/components/axis/get-axis-component-size.js.map +1 -1
  19. package/cjs/components/axis/label-overlap.js.map +1 -1
  20. package/cjs/components/axis/linear-scale.js.map +1 -1
  21. package/cjs/components/legend/continue-legend/continue-legend.js.map +1 -1
  22. package/cjs/components/legend/continue-legend/get-continue-legend-attributes.js.map +1 -1
  23. package/cjs/components/legend/create-legend.js.map +1 -1
  24. package/cjs/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  25. package/cjs/components/legend/discrete-legend/get-discrete-legend-attributes.js.map +1 -1
  26. package/cjs/components/menu/dom/BaseMenu.js.map +1 -1
  27. package/cjs/components/menu/dom/Menu.js.map +1 -1
  28. package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
  29. package/cjs/components/menu/dom/logic/MenuContainer.js.map +1 -1
  30. package/cjs/components/menu/dom/logic/MenuElement.js.map +1 -1
  31. package/cjs/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  32. package/cjs/components/title/title.js.map +1 -1
  33. package/cjs/components/tooltip/BaseTooltip.js.map +1 -1
  34. package/cjs/components/tooltip/Tooltip.js.map +1 -1
  35. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  36. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  37. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  38. package/cjs/components/util/orient.js.map +1 -1
  39. package/cjs/components/util/register.js.map +1 -1
  40. package/cjs/components/util/transform.js.map +1 -1
  41. package/cjs/core/BaseTable.d.ts +1 -1
  42. package/cjs/core/BaseTable.js +6 -2
  43. package/cjs/core/BaseTable.js.map +1 -1
  44. package/cjs/core/FouseInput.js.map +1 -1
  45. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  46. package/cjs/core/style.js.map +1 -1
  47. package/cjs/core/tableHelper.js.map +1 -1
  48. package/cjs/core.js.map +1 -1
  49. package/cjs/data/CachedDataSource.js.map +1 -1
  50. package/cjs/data/DataSource.js +1 -1
  51. package/cjs/data/DataSource.js.map +1 -1
  52. package/cjs/data/FilterDataSource.js.map +1 -1
  53. package/cjs/data.js.map +1 -1
  54. package/cjs/dataset/DataStatistics.js.map +1 -1
  55. package/cjs/dataset/dataset-pivot-table.js.map +1 -1
  56. package/cjs/dataset/dataset.js.map +1 -1
  57. package/cjs/dataset/flatDataToObject.js.map +1 -1
  58. package/cjs/dataset/statistics-helper.js.map +1 -1
  59. package/cjs/edit/edit-manager.js +10 -2
  60. package/cjs/edit/edit-manager.js.map +1 -1
  61. package/cjs/edit/editors.js.map +1 -1
  62. package/cjs/event/EventHandler.js.map +1 -1
  63. package/cjs/event/EventTarget.js.map +1 -1
  64. package/cjs/event/VChartEventProxy.js.map +1 -1
  65. package/cjs/event/drill.js.map +1 -1
  66. package/cjs/event/event.js.map +1 -1
  67. package/cjs/event/listener/container-dom.js.map +1 -1
  68. package/cjs/event/listener/scroll-bar.js.map +1 -1
  69. package/cjs/event/listener/table-group.js.map +1 -1
  70. package/cjs/event/listener/touch.js.map +1 -1
  71. package/cjs/event/media-click.js.map +1 -1
  72. package/cjs/event/pivot-chart/axis-click.js.map +1 -1
  73. package/cjs/event/pivot-chart/axis-hover.js.map +1 -1
  74. package/cjs/event/scroll.js.map +1 -1
  75. package/cjs/event/sparkline-event.js.map +1 -1
  76. package/cjs/event/util.js.map +1 -1
  77. package/cjs/header-helper/header-helper.js.map +1 -1
  78. package/cjs/header-helper/style/CheckboxStyle.js.map +1 -1
  79. package/cjs/header-helper/style/ImageStyle.js.map +1 -1
  80. package/cjs/header-helper/style/MultilineTextHeaderStyle.js.map +1 -1
  81. package/cjs/header-helper/style/SortHeaderStyle.js.map +1 -1
  82. package/cjs/header-helper/style/Style.js.map +1 -1
  83. package/cjs/header-helper/style.js.map +1 -1
  84. package/cjs/icons.js.map +1 -1
  85. package/cjs/index.d.ts +3 -3
  86. package/cjs/index.js +1 -1
  87. package/cjs/index.js.map +1 -1
  88. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  89. package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
  90. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  91. package/cjs/layout/chart-helper/zero-align.js.map +1 -1
  92. package/cjs/layout/index.js.map +1 -1
  93. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  94. package/cjs/layout/pivot-header-layout.js +14 -11
  95. package/cjs/layout/pivot-header-layout.js.map +1 -1
  96. package/cjs/layout/pivot-layout-helper.js.map +1 -1
  97. package/cjs/layout/pivot-layout.js.map +1 -1
  98. package/cjs/layout/simple-header-layout.d.ts +1 -0
  99. package/cjs/layout/simple-header-layout.js +3 -0
  100. package/cjs/layout/simple-header-layout.js.map +1 -1
  101. package/cjs/plugins/chartModules.js.map +1 -1
  102. package/cjs/plugins/icons.js.map +1 -1
  103. package/cjs/plugins/themes.js.map +1 -1
  104. package/cjs/register.js.map +1 -1
  105. package/cjs/render/jsx/index.js.map +1 -1
  106. package/cjs/render/layout/arc.js.map +1 -1
  107. package/cjs/render/layout/circle.js.map +1 -1
  108. package/cjs/render/layout/container.js.map +1 -1
  109. package/cjs/render/layout/direction.js.map +1 -1
  110. package/cjs/render/layout/element.js.map +1 -1
  111. package/cjs/render/layout/group-element.js.map +1 -1
  112. package/cjs/render/layout/group.js.map +1 -1
  113. package/cjs/render/layout/icon.js.map +1 -1
  114. package/cjs/render/layout/image.js.map +1 -1
  115. package/cjs/render/layout/index.js.map +1 -1
  116. package/cjs/render/layout/line.js.map +1 -1
  117. package/cjs/render/layout/percent-calc.js.map +1 -1
  118. package/cjs/render/layout/rect.js.map +1 -1
  119. package/cjs/render/layout/tag.js.map +1 -1
  120. package/cjs/render/layout/text.js.map +1 -1
  121. package/cjs/scenegraph/component/cell-content.js.map +1 -1
  122. package/cjs/scenegraph/component/cell-mover.js.map +1 -1
  123. package/cjs/scenegraph/component/custom.js.map +1 -1
  124. package/cjs/scenegraph/component/drill-icon.js.map +1 -1
  125. package/cjs/scenegraph/component/menu.js.map +1 -1
  126. package/cjs/scenegraph/component/table-component.js.map +1 -1
  127. package/cjs/scenegraph/component/util.js.map +1 -1
  128. package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -1
  129. package/cjs/scenegraph/debug-tool/index.js.map +1 -1
  130. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  131. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  132. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  133. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  134. package/cjs/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -1
  135. package/cjs/scenegraph/graphic/contributions/index.js.map +1 -1
  136. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  137. package/cjs/scenegraph/graphic/group.js.map +1 -1
  138. package/cjs/scenegraph/graphic/icon.js +5 -5
  139. package/cjs/scenegraph/graphic/icon.js.map +1 -1
  140. package/cjs/scenegraph/graphic/text.js.map +1 -1
  141. package/cjs/scenegraph/group-creater/cell-helper.js +10 -3
  142. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  143. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  144. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  145. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  146. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  147. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  148. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  149. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  150. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  151. package/cjs/scenegraph/group-creater/column.js.map +1 -1
  152. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  153. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.d.ts +1 -1
  154. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +30 -59
  155. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  156. package/cjs/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  157. package/cjs/scenegraph/group-creater/progress/proxy.js +2 -4
  158. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  159. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  160. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  161. package/cjs/scenegraph/group-creater/progress/update-position/sort-horizontal.js.map +1 -1
  162. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  163. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-column.js.map +1 -1
  164. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  165. package/cjs/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
  166. package/cjs/scenegraph/icon/icon-update.js +4 -4
  167. package/cjs/scenegraph/icon/icon-update.js.map +1 -1
  168. package/cjs/scenegraph/layout/auto-height.js.map +1 -1
  169. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  170. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  171. package/cjs/scenegraph/layout/frozen.js +18 -3
  172. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  173. package/cjs/scenegraph/layout/move-cell.js.map +1 -1
  174. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  175. package/cjs/scenegraph/layout/update-row.js +3 -4
  176. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  177. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  178. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  179. package/cjs/scenegraph/scenegraph.js +4 -3
  180. package/cjs/scenegraph/scenegraph.js.map +1 -1
  181. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  182. package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
  183. package/cjs/scenegraph/select/move-select-border.js.map +1 -1
  184. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  185. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  186. package/cjs/scenegraph/style/corner-cell.js.map +1 -1
  187. package/cjs/scenegraph/style/frame-border.js.map +1 -1
  188. package/cjs/scenegraph/utils/border-line.js.map +1 -1
  189. package/cjs/scenegraph/utils/break-string.js.map +1 -1
  190. package/cjs/scenegraph/utils/cell-pos.js.map +1 -1
  191. package/cjs/scenegraph/utils/deal-promise-data.js.map +1 -1
  192. package/cjs/scenegraph/utils/empty-group.js.map +1 -1
  193. package/cjs/scenegraph/utils/font.js.map +1 -1
  194. package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -1
  195. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  196. package/cjs/scenegraph/utils/get-prop.js.map +1 -1
  197. package/cjs/scenegraph/utils/icon.js.map +1 -1
  198. package/cjs/scenegraph/utils/is-merge-cell-group.js.map +1 -1
  199. package/cjs/scenegraph/utils/keep-aspect-ratio.js.map +1 -1
  200. package/cjs/scenegraph/utils/padding.js.map +1 -1
  201. package/cjs/scenegraph/utils/render-service.js.map +1 -1
  202. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  203. package/cjs/scenegraph/utils/text-measure.js.map +1 -1
  204. package/cjs/scenegraph/utils/text-pos.js.map +1 -1
  205. package/cjs/scenegraph/utils/update-container.js.map +1 -1
  206. package/cjs/state/cell-move/adjust-header.js.map +1 -1
  207. package/cjs/state/cell-move/index.js.map +1 -1
  208. package/cjs/state/common/check-in-select.js.map +1 -1
  209. package/cjs/state/drill/index.js.map +1 -1
  210. package/cjs/state/frozen/index.js.map +1 -1
  211. package/cjs/state/hover/col.js.map +1 -1
  212. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  213. package/cjs/state/hover/row.js.map +1 -1
  214. package/cjs/state/hover/single.js.map +1 -1
  215. package/cjs/state/hover/update-cell.js.map +1 -1
  216. package/cjs/state/hover/update-position.js.map +1 -1
  217. package/cjs/state/resize/update-resize-column.js.map +1 -1
  218. package/cjs/state/select/update-position.js.map +1 -1
  219. package/cjs/state/sort/index.js.map +1 -1
  220. package/cjs/state/spark-line/index.js.map +1 -1
  221. package/cjs/state/state.js.map +1 -1
  222. package/cjs/themes/ARCO.js.map +1 -1
  223. package/cjs/themes/BRIGHT.js.map +1 -1
  224. package/cjs/themes/DARK.js.map +1 -1
  225. package/cjs/themes/DEFAULT.js.map +1 -1
  226. package/cjs/themes/SIMPLIFY.js.map +1 -1
  227. package/cjs/themes/theme.js.map +1 -1
  228. package/cjs/themes.js.map +1 -1
  229. package/cjs/tools/LimitPromiseQueue.js +1 -1
  230. package/cjs/tools/LimitPromiseQueue.js.map +1 -1
  231. package/cjs/tools/NumberMap.js +1 -1
  232. package/cjs/tools/NumberMap.js.map +1 -1
  233. package/cjs/tools/Rect.js.map +1 -1
  234. package/cjs/tools/calc.js.map +1 -1
  235. package/cjs/tools/debounce.js.map +1 -1
  236. package/cjs/tools/diff-cell.js.map +1 -1
  237. package/cjs/tools/dom.js.map +1 -1
  238. package/cjs/tools/env.js.map +1 -1
  239. package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
  240. package/cjs/tools/get-data-path/index.js.map +1 -1
  241. package/cjs/tools/global.js.map +1 -1
  242. package/cjs/tools/helper.js.map +1 -1
  243. package/cjs/tools/icons.js.map +1 -1
  244. package/cjs/tools/isx.js.map +1 -1
  245. package/cjs/tools/pixel-ratio.js.map +1 -1
  246. package/cjs/tools/sort.js.map +1 -1
  247. package/cjs/tools/style.js.map +1 -1
  248. package/cjs/tools/util.js.map +1 -1
  249. package/cjs/ts-types/base-table.js +1 -1
  250. package/cjs/ts-types/base-table.js.map +1 -1
  251. package/cjs/ts-types/column/index.js.map +1 -1
  252. package/cjs/ts-types/column/style.js.map +1 -1
  253. package/cjs/ts-types/column/type.js.map +1 -1
  254. package/cjs/ts-types/common.js +1 -1
  255. package/cjs/ts-types/common.js.map +1 -1
  256. package/cjs/ts-types/component/axis.js.map +1 -1
  257. package/cjs/ts-types/component/legend.js.map +1 -1
  258. package/cjs/ts-types/component/title.js.map +1 -1
  259. package/cjs/ts-types/component/util.js.map +1 -1
  260. package/cjs/ts-types/customElement.js.map +1 -1
  261. package/cjs/ts-types/customLayout.js.map +1 -1
  262. package/cjs/ts-types/events.js.map +1 -1
  263. package/cjs/ts-types/icon.js.map +1 -1
  264. package/cjs/ts-types/index.js.map +1 -1
  265. package/cjs/ts-types/list-table/define/Composite-define.js.map +1 -1
  266. package/cjs/ts-types/list-table/define/basic-define.d.ts +3 -2
  267. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  268. package/cjs/ts-types/list-table/define/chart-define.js.map +1 -1
  269. package/cjs/ts-types/list-table/define/checkbox-define.js.map +1 -1
  270. package/cjs/ts-types/list-table/define/image-define.js.map +1 -1
  271. package/cjs/ts-types/list-table/define/index.js.map +1 -1
  272. package/cjs/ts-types/list-table/define/link-define.js.map +1 -1
  273. package/cjs/ts-types/list-table/define/multilinetext-define.js.map +1 -1
  274. package/cjs/ts-types/list-table/define/progressbar-define.js.map +1 -1
  275. package/cjs/ts-types/list-table/define/sparkline-define.js.map +1 -1
  276. package/cjs/ts-types/list-table/index.js.map +1 -1
  277. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  278. package/cjs/ts-types/list-table/layout-map/index.js.map +1 -1
  279. package/cjs/ts-types/menu.js.map +1 -1
  280. package/cjs/ts-types/new-data-set.js.map +1 -1
  281. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -1
  282. package/cjs/ts-types/pivot-table/corner.js.map +1 -1
  283. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  284. package/cjs/ts-types/pivot-table/dimension/image-dimension.js.map +1 -1
  285. package/cjs/ts-types/pivot-table/dimension/index.js.map +1 -1
  286. package/cjs/ts-types/pivot-table/dimension/link-dimension.js.map +1 -1
  287. package/cjs/ts-types/pivot-table/dimension/multilinetext-dimension.js.map +1 -1
  288. package/cjs/ts-types/pivot-table/index.js.map +1 -1
  289. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  290. package/cjs/ts-types/pivot-table/indicator/chart-indicator.js.map +1 -1
  291. package/cjs/ts-types/pivot-table/indicator/checkbox-indicator.js.map +1 -1
  292. package/cjs/ts-types/pivot-table/indicator/composite-indicator.js.map +1 -1
  293. package/cjs/ts-types/pivot-table/indicator/image-indicator.js.map +1 -1
  294. package/cjs/ts-types/pivot-table/indicator/index.js.map +1 -1
  295. package/cjs/ts-types/pivot-table/indicator/link-indicator.js.map +1 -1
  296. package/cjs/ts-types/pivot-table/indicator/multilinetext-indicator.js.map +1 -1
  297. package/cjs/ts-types/pivot-table/indicator/progress-indicator.js.map +1 -1
  298. package/cjs/ts-types/pivot-table/indicator/sparkline-indicator.js.map +1 -1
  299. package/cjs/ts-types/pivot-table/title.js.map +1 -1
  300. package/cjs/ts-types/sparkline.js.map +1 -1
  301. package/cjs/ts-types/style-define.js.map +1 -1
  302. package/cjs/ts-types/table-engine.d.ts +5 -2
  303. package/cjs/ts-types/table-engine.js.map +1 -1
  304. package/cjs/ts-types/theme.js.map +1 -1
  305. package/cjs/ts-types/tooltip.js.map +1 -1
  306. package/dist/vtable.js +114 -39
  307. package/dist/vtable.min.js +2 -2
  308. package/es/ListTable.d.ts +3 -2
  309. package/es/ListTable.js +8 -3
  310. package/es/ListTable.js.map +1 -1
  311. package/es/PivotChart.js.map +1 -1
  312. package/es/PivotTable.js.map +1 -1
  313. package/es/body-helper/body-helper.js.map +1 -1
  314. package/es/body-helper/style/CheckboxStyle.js.map +1 -1
  315. package/es/body-helper/style/ImageStyle.js.map +1 -1
  316. package/es/body-helper/style/MultilineTextStyle.js.map +1 -1
  317. package/es/body-helper/style/NumberStyle.js.map +1 -1
  318. package/es/body-helper/style/ProgressBarStyle.js.map +1 -1
  319. package/es/body-helper/style/Style.js.map +1 -1
  320. package/es/body-helper/style.js.map +1 -1
  321. package/es/chartModule.js.map +1 -1
  322. package/es/components/axis/axis.js.map +1 -1
  323. package/es/components/axis/band-scale.js.map +1 -1
  324. package/es/components/axis/get-axis-attributes.js.map +1 -1
  325. package/es/components/axis/get-axis-component-size.js.map +1 -1
  326. package/es/components/axis/label-overlap.js.map +1 -1
  327. package/es/components/axis/linear-scale.js.map +1 -1
  328. package/es/components/legend/continue-legend/continue-legend.js.map +1 -1
  329. package/es/components/legend/continue-legend/get-continue-legend-attributes.js.map +1 -1
  330. package/es/components/legend/create-legend.js.map +1 -1
  331. package/es/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  332. package/es/components/legend/discrete-legend/get-discrete-legend-attributes.js.map +1 -1
  333. package/es/components/menu/dom/BaseMenu.js.map +1 -1
  334. package/es/components/menu/dom/Menu.js.map +1 -1
  335. package/es/components/menu/dom/MenuHandler.js.map +1 -1
  336. package/es/components/menu/dom/logic/MenuContainer.js.map +1 -1
  337. package/es/components/menu/dom/logic/MenuElement.js.map +1 -1
  338. package/es/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  339. package/es/components/title/title.js.map +1 -1
  340. package/es/components/tooltip/BaseTooltip.js.map +1 -1
  341. package/es/components/tooltip/Tooltip.js.map +1 -1
  342. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  343. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  344. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  345. package/es/components/util/orient.js.map +1 -1
  346. package/es/components/util/register.js.map +1 -1
  347. package/es/components/util/transform.js.map +1 -1
  348. package/es/core/BaseTable.d.ts +1 -1
  349. package/es/core/BaseTable.js +6 -2
  350. package/es/core/BaseTable.js.map +1 -1
  351. package/es/core/FouseInput.js.map +1 -1
  352. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  353. package/es/core/style.js.map +1 -1
  354. package/es/core/tableHelper.js.map +1 -1
  355. package/es/core.js.map +1 -1
  356. package/es/data/CachedDataSource.js.map +1 -1
  357. package/es/data/DataSource.js +1 -1
  358. package/es/data/DataSource.js.map +1 -1
  359. package/es/data/FilterDataSource.js.map +1 -1
  360. package/es/data.js.map +1 -1
  361. package/es/dataset/DataStatistics.js.map +1 -1
  362. package/es/dataset/dataset-pivot-table.js.map +1 -1
  363. package/es/dataset/dataset.js.map +1 -1
  364. package/es/dataset/flatDataToObject.js.map +1 -1
  365. package/es/dataset/statistics-helper.js.map +1 -1
  366. package/es/edit/edit-manager.js +10 -2
  367. package/es/edit/edit-manager.js.map +1 -1
  368. package/es/edit/editors.js.map +1 -1
  369. package/es/event/EventHandler.js.map +1 -1
  370. package/es/event/EventTarget.js.map +1 -1
  371. package/es/event/VChartEventProxy.js.map +1 -1
  372. package/es/event/drill.js.map +1 -1
  373. package/es/event/event.js.map +1 -1
  374. package/es/event/listener/container-dom.js.map +1 -1
  375. package/es/event/listener/scroll-bar.js.map +1 -1
  376. package/es/event/listener/table-group.js.map +1 -1
  377. package/es/event/listener/touch.js.map +1 -1
  378. package/es/event/media-click.js.map +1 -1
  379. package/es/event/pivot-chart/axis-click.js.map +1 -1
  380. package/es/event/pivot-chart/axis-hover.js.map +1 -1
  381. package/es/event/scroll.js.map +1 -1
  382. package/es/event/sparkline-event.js.map +1 -1
  383. package/es/event/util.js.map +1 -1
  384. package/es/header-helper/header-helper.js.map +1 -1
  385. package/es/header-helper/style/CheckboxStyle.js.map +1 -1
  386. package/es/header-helper/style/ImageStyle.js.map +1 -1
  387. package/es/header-helper/style/MultilineTextHeaderStyle.js.map +1 -1
  388. package/es/header-helper/style/SortHeaderStyle.js.map +1 -1
  389. package/es/header-helper/style/Style.js.map +1 -1
  390. package/es/header-helper/style.js.map +1 -1
  391. package/es/icons.js.map +1 -1
  392. package/es/index.d.ts +3 -3
  393. package/es/index.js +1 -1
  394. package/es/index.js.map +1 -1
  395. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  396. package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
  397. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  398. package/es/layout/chart-helper/zero-align.js.map +1 -1
  399. package/es/layout/index.js.map +1 -1
  400. package/es/layout/pivot-header-layout.d.ts +1 -0
  401. package/es/layout/pivot-header-layout.js +14 -11
  402. package/es/layout/pivot-header-layout.js.map +1 -1
  403. package/es/layout/pivot-layout-helper.js.map +1 -1
  404. package/es/layout/pivot-layout.js.map +1 -1
  405. package/es/layout/simple-header-layout.d.ts +1 -0
  406. package/es/layout/simple-header-layout.js +3 -0
  407. package/es/layout/simple-header-layout.js.map +1 -1
  408. package/es/plugins/chartModules.js.map +1 -1
  409. package/es/plugins/icons.js.map +1 -1
  410. package/es/plugins/themes.js.map +1 -1
  411. package/es/register.js.map +1 -1
  412. package/es/render/jsx/index.js.map +1 -1
  413. package/es/render/layout/arc.js.map +1 -1
  414. package/es/render/layout/circle.js.map +1 -1
  415. package/es/render/layout/container.js.map +1 -1
  416. package/es/render/layout/direction.js.map +1 -1
  417. package/es/render/layout/element.js.map +1 -1
  418. package/es/render/layout/group-element.js.map +1 -1
  419. package/es/render/layout/group.js.map +1 -1
  420. package/es/render/layout/icon.js.map +1 -1
  421. package/es/render/layout/image.js.map +1 -1
  422. package/es/render/layout/index.js.map +1 -1
  423. package/es/render/layout/line.js.map +1 -1
  424. package/es/render/layout/percent-calc.js.map +1 -1
  425. package/es/render/layout/rect.js.map +1 -1
  426. package/es/render/layout/tag.js.map +1 -1
  427. package/es/render/layout/text.js.map +1 -1
  428. package/es/scenegraph/component/cell-content.js.map +1 -1
  429. package/es/scenegraph/component/cell-mover.js.map +1 -1
  430. package/es/scenegraph/component/custom.js.map +1 -1
  431. package/es/scenegraph/component/drill-icon.js.map +1 -1
  432. package/es/scenegraph/component/menu.js.map +1 -1
  433. package/es/scenegraph/component/table-component.js.map +1 -1
  434. package/es/scenegraph/component/util.js.map +1 -1
  435. package/es/scenegraph/debug-tool/debug-tool.js.map +1 -1
  436. package/es/scenegraph/debug-tool/index.js.map +1 -1
  437. package/es/scenegraph/graphic/chart.js.map +1 -1
  438. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  439. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  440. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  441. package/es/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -1
  442. package/es/scenegraph/graphic/contributions/index.js.map +1 -1
  443. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  444. package/es/scenegraph/graphic/group.js.map +1 -1
  445. package/es/scenegraph/graphic/icon.js +5 -5
  446. package/es/scenegraph/graphic/icon.js.map +1 -1
  447. package/es/scenegraph/graphic/text.js.map +1 -1
  448. package/es/scenegraph/group-creater/cell-helper.js +10 -3
  449. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  450. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  451. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  452. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  453. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  454. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  455. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  456. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  457. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  458. package/es/scenegraph/group-creater/column.js.map +1 -1
  459. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  460. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.d.ts +1 -1
  461. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +29 -57
  462. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  463. package/es/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  464. package/es/scenegraph/group-creater/progress/proxy.js +2 -4
  465. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  466. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  467. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  468. package/es/scenegraph/group-creater/progress/update-position/sort-horizontal.js.map +1 -1
  469. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  470. package/es/scenegraph/group-creater/progress/update-position/update-auto-column.js.map +1 -1
  471. package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  472. package/es/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
  473. package/es/scenegraph/icon/icon-update.js +4 -4
  474. package/es/scenegraph/icon/icon-update.js.map +1 -1
  475. package/es/scenegraph/layout/auto-height.js.map +1 -1
  476. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  477. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  478. package/es/scenegraph/layout/frozen.js +20 -2
  479. package/es/scenegraph/layout/frozen.js.map +1 -1
  480. package/es/scenegraph/layout/move-cell.js.map +1 -1
  481. package/es/scenegraph/layout/update-height.js.map +1 -1
  482. package/es/scenegraph/layout/update-row.js +3 -4
  483. package/es/scenegraph/layout/update-row.js.map +1 -1
  484. package/es/scenegraph/layout/update-width.js.map +1 -1
  485. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  486. package/es/scenegraph/scenegraph.js +2 -2
  487. package/es/scenegraph/scenegraph.js.map +1 -1
  488. package/es/scenegraph/select/create-select-border.js.map +1 -1
  489. package/es/scenegraph/select/delete-select-border.js.map +1 -1
  490. package/es/scenegraph/select/move-select-border.js.map +1 -1
  491. package/es/scenegraph/select/update-select-border.js.map +1 -1
  492. package/es/scenegraph/stick-text/index.js.map +1 -1
  493. package/es/scenegraph/style/corner-cell.js.map +1 -1
  494. package/es/scenegraph/style/frame-border.js.map +1 -1
  495. package/es/scenegraph/utils/border-line.js.map +1 -1
  496. package/es/scenegraph/utils/break-string.js.map +1 -1
  497. package/es/scenegraph/utils/cell-pos.js.map +1 -1
  498. package/es/scenegraph/utils/deal-promise-data.js.map +1 -1
  499. package/es/scenegraph/utils/empty-group.js.map +1 -1
  500. package/es/scenegraph/utils/font.js.map +1 -1
  501. package/es/scenegraph/utils/get-cell-merge.js.map +1 -1
  502. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  503. package/es/scenegraph/utils/get-prop.js.map +1 -1
  504. package/es/scenegraph/utils/icon.js.map +1 -1
  505. package/es/scenegraph/utils/is-merge-cell-group.js.map +1 -1
  506. package/es/scenegraph/utils/keep-aspect-ratio.js.map +1 -1
  507. package/es/scenegraph/utils/padding.js.map +1 -1
  508. package/es/scenegraph/utils/render-service.js.map +1 -1
  509. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  510. package/es/scenegraph/utils/text-measure.js.map +1 -1
  511. package/es/scenegraph/utils/text-pos.js.map +1 -1
  512. package/es/scenegraph/utils/update-container.js.map +1 -1
  513. package/es/state/cell-move/adjust-header.js.map +1 -1
  514. package/es/state/cell-move/index.js.map +1 -1
  515. package/es/state/common/check-in-select.js.map +1 -1
  516. package/es/state/drill/index.js.map +1 -1
  517. package/es/state/frozen/index.js.map +1 -1
  518. package/es/state/hover/col.js.map +1 -1
  519. package/es/state/hover/is-cell-hover.js.map +1 -1
  520. package/es/state/hover/row.js.map +1 -1
  521. package/es/state/hover/single.js.map +1 -1
  522. package/es/state/hover/update-cell.js.map +1 -1
  523. package/es/state/hover/update-position.js.map +1 -1
  524. package/es/state/resize/update-resize-column.js.map +1 -1
  525. package/es/state/select/update-position.js.map +1 -1
  526. package/es/state/sort/index.js.map +1 -1
  527. package/es/state/spark-line/index.js.map +1 -1
  528. package/es/state/state.js.map +1 -1
  529. package/es/themes/ARCO.js.map +1 -1
  530. package/es/themes/BRIGHT.js.map +1 -1
  531. package/es/themes/DARK.js.map +1 -1
  532. package/es/themes/DEFAULT.js.map +1 -1
  533. package/es/themes/SIMPLIFY.js.map +1 -1
  534. package/es/themes/theme.js.map +1 -1
  535. package/es/themes.js.map +1 -1
  536. package/es/tools/LimitPromiseQueue.js +1 -1
  537. package/es/tools/LimitPromiseQueue.js.map +1 -1
  538. package/es/tools/NumberMap.js +1 -1
  539. package/es/tools/NumberMap.js.map +1 -1
  540. package/es/tools/Rect.js.map +1 -1
  541. package/es/tools/calc.js.map +1 -1
  542. package/es/tools/debounce.js.map +1 -1
  543. package/es/tools/diff-cell.js.map +1 -1
  544. package/es/tools/dom.js.map +1 -1
  545. package/es/tools/env.js.map +1 -1
  546. package/es/tools/get-data-path/create-dataset.js.map +1 -1
  547. package/es/tools/get-data-path/index.js.map +1 -1
  548. package/es/tools/global.js.map +1 -1
  549. package/es/tools/helper.js.map +1 -1
  550. package/es/tools/icons.js.map +1 -1
  551. package/es/tools/isx.js.map +1 -1
  552. package/es/tools/pixel-ratio.js.map +1 -1
  553. package/es/tools/sort.js.map +1 -1
  554. package/es/tools/style.js.map +1 -1
  555. package/es/tools/util.js.map +1 -1
  556. package/es/ts-types/base-table.js +1 -1
  557. package/es/ts-types/base-table.js.map +1 -1
  558. package/es/ts-types/column/index.js.map +1 -1
  559. package/es/ts-types/column/style.js.map +1 -1
  560. package/es/ts-types/column/type.js.map +1 -1
  561. package/es/ts-types/common.js +1 -1
  562. package/es/ts-types/common.js.map +1 -1
  563. package/es/ts-types/component/axis.js.map +1 -1
  564. package/es/ts-types/component/legend.js.map +1 -1
  565. package/es/ts-types/component/title.js.map +1 -1
  566. package/es/ts-types/component/util.js.map +1 -1
  567. package/es/ts-types/customElement.js.map +1 -1
  568. package/es/ts-types/customLayout.js.map +1 -1
  569. package/es/ts-types/events.js.map +1 -1
  570. package/es/ts-types/icon.js.map +1 -1
  571. package/es/ts-types/index.js.map +1 -1
  572. package/es/ts-types/list-table/define/Composite-define.js.map +1 -1
  573. package/es/ts-types/list-table/define/basic-define.d.ts +3 -2
  574. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  575. package/es/ts-types/list-table/define/chart-define.js.map +1 -1
  576. package/es/ts-types/list-table/define/checkbox-define.js.map +1 -1
  577. package/es/ts-types/list-table/define/image-define.js.map +1 -1
  578. package/es/ts-types/list-table/define/index.js.map +1 -1
  579. package/es/ts-types/list-table/define/link-define.js.map +1 -1
  580. package/es/ts-types/list-table/define/multilinetext-define.js.map +1 -1
  581. package/es/ts-types/list-table/define/progressbar-define.js.map +1 -1
  582. package/es/ts-types/list-table/define/sparkline-define.js.map +1 -1
  583. package/es/ts-types/list-table/index.js.map +1 -1
  584. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  585. package/es/ts-types/list-table/layout-map/index.js.map +1 -1
  586. package/es/ts-types/menu.js.map +1 -1
  587. package/es/ts-types/new-data-set.js.map +1 -1
  588. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -1
  589. package/es/ts-types/pivot-table/corner.js.map +1 -1
  590. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  591. package/es/ts-types/pivot-table/dimension/image-dimension.js.map +1 -1
  592. package/es/ts-types/pivot-table/dimension/index.js.map +1 -1
  593. package/es/ts-types/pivot-table/dimension/link-dimension.js.map +1 -1
  594. package/es/ts-types/pivot-table/dimension/multilinetext-dimension.js.map +1 -1
  595. package/es/ts-types/pivot-table/index.js.map +1 -1
  596. package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  597. package/es/ts-types/pivot-table/indicator/chart-indicator.js.map +1 -1
  598. package/es/ts-types/pivot-table/indicator/checkbox-indicator.js.map +1 -1
  599. package/es/ts-types/pivot-table/indicator/composite-indicator.js.map +1 -1
  600. package/es/ts-types/pivot-table/indicator/image-indicator.js.map +1 -1
  601. package/es/ts-types/pivot-table/indicator/index.js.map +1 -1
  602. package/es/ts-types/pivot-table/indicator/link-indicator.js.map +1 -1
  603. package/es/ts-types/pivot-table/indicator/multilinetext-indicator.js.map +1 -1
  604. package/es/ts-types/pivot-table/indicator/progress-indicator.js.map +1 -1
  605. package/es/ts-types/pivot-table/indicator/sparkline-indicator.js.map +1 -1
  606. package/es/ts-types/pivot-table/title.js.map +1 -1
  607. package/es/ts-types/sparkline.js.map +1 -1
  608. package/es/ts-types/style-define.js.map +1 -1
  609. package/es/ts-types/table-engine.d.ts +5 -2
  610. package/es/ts-types/table-engine.js.map +1 -1
  611. package/es/ts-types/theme.js.map +1 -1
  612. package/es/ts-types/tooltip.js.map +1 -1
  613. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["themes/theme.ts"],"names":[],"mappings":"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","file":"theme.js","sourcesContent":["/* eslint-disable no-undef */\n/* eslint-disable sort-imports */\nimport type {\n ColorPropertyDefine,\n ColorsDef,\n ColorsPropertyDefine,\n ColumnIconOption,\n FrameStyle,\n ITableThemeDefine,\n InteractionStyle,\n LineClamp,\n LineDashsDef,\n LineDashsPropertyDefine,\n LineWidthsDef,\n LineWidthsPropertyDefine,\n PartialTableThemeDefine,\n RequiredTableThemeDefine,\n TextOverflow,\n ThemeStyle,\n // menuStyle,\n TableFrameStyle,\n PaddingsPropertyDefine,\n ScrollStyle,\n CursorPropertyDefine,\n TooltipStyle,\n MarkedPropertyDefine,\n UnderlinePropertyDefine,\n LineDashPropertyDefine,\n LineThroughPropertyDefine,\n FontSizePropertyDefine,\n FontFamilyPropertyDefine,\n FontWeightPropertyDefine,\n FontVariantPropertyDefine,\n FontStylePropertyDefine,\n TextAlignType,\n TextBaselineType\n} from '../ts-types';\nimport { getChainSafe } from '../tools/helper';\nimport { changeColor, ingoreNoneValueMerge, merge } from '../tools/util';\nimport {\n DEFAULTBGCOLOR,\n DEFAULTBORDERCOLOR,\n DEFAULTBORDERLINEDASH,\n DEFAULTBORDERLINEWIDTH,\n DEFAULTFONTCOLOR,\n DEFAULTFONTFAMILY,\n DEFAULTFONTSIZE\n} from '../tools/global';\n//private symbol\n// const _ = getSymbol();\n\nfunction getProp(obj: PartialTableThemeDefine, superObj: ITableThemeDefine, names: string[], defNames?: string[]): any {\n return (\n getChainSafe(obj, ...names) ||\n getChainSafe(superObj, ...names) ||\n (defNames && getChainSafe(obj, ...defNames)) ||\n (defNames && getChainSafe(superObj, ...defNames))\n );\n}\n\nexport class TableTheme implements ITableThemeDefine {\n private internalTheme: {\n obj: PartialTableThemeDefine;\n superTheme: ITableThemeDefine;\n };\n private _defaultStyle: RequiredTableThemeDefine['defaultStyle'] | null = null;\n private _header: ITableThemeDefine['headerStyle'] | null = null;\n private _cornerHeader: ITableThemeDefine['cornerHeaderStyle'] | null = null;\n private _cornerRightTopCell: ITableThemeDefine['cornerRightTopCellStyle'] | null = null;\n private _cornerLeftBottomCell: ITableThemeDefine['cornerLeftBottomCellStyle'] | null = null;\n private _cornerRightBottomCell: ITableThemeDefine['cornerRightBottomCellStyle'] | null = null;\n private _rightFrozen: ITableThemeDefine['rightFrozenStyle'] | null = null;\n private _bottomFrozen: ITableThemeDefine['bottomFrozenStyle'] | null = null;\n private _rowHeader: ITableThemeDefine['rowHeaderStyle'] | null = null;\n private _body: ITableThemeDefine['bodyStyle'] | null = null;\n private _scroll: ITableThemeDefine['scrollStyle'] | null = null;\n private _tooltip: ITableThemeDefine['tooltipStyle'] | null = null;\n private _frameStyle: ITableThemeDefine['frameStyle'] | null = null;\n private _columnResize: RequiredTableThemeDefine['columnResize'] | null = null;\n private _dragHeaderSplitLine: RequiredTableThemeDefine['dragHeaderSplitLine'] | null = null;\n private _frozenColumnLine: RequiredTableThemeDefine['frozenColumnLine'] | null = null;\n private _selectionStyle: RequiredTableThemeDefine['selectionStyle'] | null = null;\n constructor(obj: PartialTableThemeDefine | ITableThemeDefine, superTheme: ITableThemeDefine) {\n this.internalTheme = {\n obj,\n superTheme\n };\n }\n get font(): string {\n const { obj, superTheme } = this.internalTheme;\n return getProp(obj, superTheme, ['font'], ['bodyStyle', 'font']);\n }\n get underlayBackgroundColor(): string {\n const { obj, superTheme } = this.internalTheme;\n return getProp(obj, superTheme, ['underlayBackgroundColor']);\n }\n\n get defaultStyle(): RequiredTableThemeDefine['defaultStyle'] {\n // const defaultStyle = getProp(obj, superTheme, [\"defaultStyle\"]);\n if (!this._defaultStyle) {\n const { obj, superTheme } = this.internalTheme;\n const defaultStyle: ThemeStyle = ingoreNoneValueMerge({}, superTheme.defaultStyle, obj.defaultStyle);\n this._defaultStyle = {\n get fontSize(): FontSizePropertyDefine {\n return defaultStyle.fontSize ?? DEFAULTFONTSIZE;\n },\n get fontFamily(): FontFamilyPropertyDefine {\n return defaultStyle.fontFamily ?? DEFAULTFONTFAMILY;\n },\n get fontWeight(): FontWeightPropertyDefine | undefined {\n return defaultStyle.fontWeight;\n },\n get fontVariant(): FontVariantPropertyDefine | undefined {\n return defaultStyle.fontVariant;\n },\n get fontStyle(): FontStylePropertyDefine | undefined {\n return defaultStyle.fontStyle;\n },\n get bgColor(): ColorPropertyDefine {\n return defaultStyle.bgColor ?? DEFAULTBGCOLOR;\n },\n get color(): ColorPropertyDefine {\n return defaultStyle.color ?? DEFAULTFONTCOLOR;\n },\n get borderColor(): ColorsPropertyDefine {\n return defaultStyle.borderColor ?? DEFAULTBORDERCOLOR;\n },\n get borderLineWidth(): LineWidthsPropertyDefine | undefined {\n return defaultStyle.borderLineWidth ?? DEFAULTBORDERLINEWIDTH;\n },\n get borderLineDash(): LineDashsPropertyDefine | undefined {\n return defaultStyle.borderLineDash ?? DEFAULTBORDERLINEDASH;\n },\n get hover(): InteractionStyle | undefined {\n if (defaultStyle.hover) {\n return {\n get cellBgColor(): ColorPropertyDefine | undefined {\n return defaultStyle.hover?.cellBgColor ?? undefined;\n },\n // get cellBorderColor(): ColorsPropertyDefine | undefined {\n // return defaultStyle.hover?.cellBorderColor ?? undefined;\n // },\n // get cellBorderLineWidth(): LineWidthsPropertyDefine | undefined {\n // return defaultStyle.hover?.cellBorderLineWidth ?? undefined;\n // },\n get inlineColumnBgColor(): ColorPropertyDefine | undefined {\n return (\n defaultStyle.hover?.inlineColumnBgColor ??\n (defaultStyle.hover?.cellBgColor && typeof defaultStyle.hover?.cellBgColor === 'string'\n ? changeColor(defaultStyle.hover?.cellBgColor, 0.1, false)\n : undefined) ??\n undefined\n );\n },\n get inlineRowBgColor(): ColorPropertyDefine | undefined {\n return (\n defaultStyle.hover?.inlineRowBgColor ??\n (defaultStyle.hover?.cellBgColor && typeof defaultStyle.hover?.cellBgColor === 'string'\n ? changeColor(defaultStyle.hover?.cellBgColor, 0.1, false)\n : undefined) ??\n undefined\n );\n }\n };\n }\n return undefined;\n },\n // get click(): InteractionStyle | undefined {\n // if (defaultStyle.click)\n // return {\n // get cellBgColor(): ColorPropertyDefine | undefined {\n // return defaultStyle.click?.cellBgColor ?? undefined;\n // },\n // get cellBorderColor(): ColorsPropertyDefine | undefined {\n // return defaultStyle.click?.cellBorderColor ?? undefined;\n // },\n // get cellBorderLineWidth(): LineWidthsPropertyDefine | undefined {\n // return defaultStyle.click?.cellBorderLineWidth ?? undefined;\n // },\n // // get cellBorderLineDash(): LineDashsPropertyDefine |undefined{\n // // return defaultStyle.click?.cellBorderLineDash??undefined\n // // },\n // get inlineColumnBgColor(): ColorPropertyDefine | undefined {\n // return (\n // // defaultStyle.click?.inlineColumnBgColor ??\n // (defaultStyle.click?.cellBgColor &&\n // typeof defaultStyle.click?.cellBgColor === 'string'\n // ? changeColor(defaultStyle.click?.cellBgColor, 0.1, false)\n // : undefined) ?? undefined\n // );\n // },\n // get inlineRowBgColor(): ColorPropertyDefine | undefined {\n // return (\n // // defaultStyle.click?.inlineRowBgColor ??\n // (defaultStyle.click?.cellBgColor &&\n // typeof defaultStyle.click?.cellBgColor === 'string'\n // ? changeColor(defaultStyle.click?.cellBgColor, 0.1, false)\n // : undefined) ?? undefined\n // );\n // },\n // };\n // return undefined;\n // },\n get padding(): PaddingsPropertyDefine {\n return defaultStyle.padding ?? [10, 16, 10, 16];\n },\n get textAlign(): TextAlignType {\n return defaultStyle.textAlign ?? 'left';\n },\n get textBaseline(): TextBaselineType {\n return defaultStyle.textBaseline ?? 'middle';\n },\n get textOverflow(): TextOverflow {\n return defaultStyle.textOverflow ?? 'ellipsis';\n },\n get lineHeight(): number {\n return defaultStyle.lineHeight;\n },\n get autoWrapText(): boolean {\n return defaultStyle.autoWrapText ?? false;\n },\n get lineClamp(): LineClamp {\n return defaultStyle.lineClamp ?? 'auto';\n },\n get linkColor(): ColorPropertyDefine {\n return defaultStyle.linkColor ?? '#3772ff';\n },\n get cursor(): CursorPropertyDefine {\n return defaultStyle.cursor ?? 'auto';\n },\n get marked(): MarkedPropertyDefine {\n return defaultStyle.marked ?? false;\n },\n get underline(): UnderlinePropertyDefine {\n return defaultStyle.underline ?? false;\n },\n get underlineColor(): ColorPropertyDefine | undefined {\n return defaultStyle.underlineColor; // 不需要默认值 绘制中已处理默认用文字颜色\n },\n get underlineDash(): LineDashPropertyDefine | undefined {\n return defaultStyle.underlineDash;\n },\n get lineThrough(): LineThroughPropertyDefine | undefined {\n return defaultStyle.lineThrough ?? false;\n },\n get lineThroughColor(): ColorPropertyDefine | undefined {\n return defaultStyle.lineThroughColor; // 不需要默认值 绘制中已处理默认用文字颜色\n },\n get lineThroughDash(): LineDashPropertyDefine | undefined {\n return defaultStyle.lineThroughDash;\n }\n };\n }\n return this._defaultStyle;\n }\n get headerStyle(): ITableThemeDefine['headerStyle'] {\n if (!this._header) {\n const { obj, superTheme } = this.internalTheme;\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge({}, this.defaultStyle, superTheme.headerStyle, obj.headerStyle);\n this._header = this.getStyle(header);\n }\n return this._header;\n }\n get cornerHeaderStyle(): ITableThemeDefine['cornerHeaderStyle'] {\n if (!this._cornerHeader) {\n const { obj, superTheme } = this.internalTheme;\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n superTheme.cornerHeaderStyle,\n obj.cornerHeaderStyle // ?? obj.headerStyle\n );\n this._cornerHeader = this.getStyle(header);\n }\n return this._cornerHeader;\n }\n get cornerRightTopCellStyle(): ITableThemeDefine['cornerRightTopCellStyle'] {\n if (!this._cornerRightTopCell) {\n const { obj, superTheme } = this.internalTheme;\n if (!superTheme.cornerRightTopCellStyle || !obj.cornerRightTopCellStyle) {\n return this._cornerRightTopCell;\n }\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n superTheme.cornerRightTopCellStyle,\n obj.cornerRightTopCellStyle // ?? obj.headerStyle\n );\n this._cornerRightTopCell = this.getStyle(header);\n }\n return this._cornerRightTopCell;\n }\n get cornerLeftBottomCellStyle(): ITableThemeDefine['cornerLeftBottomCellStyle'] {\n if (!this._cornerLeftBottomCell) {\n const { obj, superTheme } = this.internalTheme;\n if (!superTheme.cornerLeftBottomCellStyle || !obj.cornerLeftBottomCellStyle) {\n return this._cornerLeftBottomCell;\n }\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n superTheme.cornerLeftBottomCellStyle,\n obj.cornerLeftBottomCellStyle // ?? obj.headerStyle\n );\n this._cornerLeftBottomCell = this.getStyle(header);\n }\n return this._cornerLeftBottomCell;\n }\n get cornerRightBottomCellStyle(): ITableThemeDefine['cornerRightBottomCellStyle'] {\n if (!this._cornerRightBottomCell) {\n const { obj, superTheme } = this.internalTheme;\n if (!superTheme.cornerRightBottomCellStyle || !obj.cornerRightBottomCellStyle) {\n return this._cornerRightBottomCell;\n }\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n superTheme.cornerRightBottomCellStyle,\n obj.cornerRightBottomCellStyle // ?? obj.headerStyle\n );\n this._cornerRightBottomCell = this.getStyle(header);\n }\n return this._cornerRightBottomCell;\n }\n get rightFrozenStyle(): ITableThemeDefine['rightFrozenStyle'] {\n if (!this._rightFrozen) {\n const { obj, superTheme } = this.internalTheme;\n if (!superTheme.rightFrozenStyle || !obj.rightFrozenStyle) {\n return this._rightFrozen;\n }\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n this.rowHeaderStyle,\n superTheme.rightFrozenStyle,\n obj.rightFrozenStyle // ?? obj.headerStyle\n );\n this._rightFrozen = this.getStyle(header);\n }\n return this._rightFrozen;\n }\n get bottomFrozenStyle(): ITableThemeDefine['bottomFrozenStyle'] {\n if (!this._bottomFrozen) {\n const { obj, superTheme } = this.internalTheme;\n if (!superTheme.bottomFrozenStyle || !obj.bottomFrozenStyle) {\n return this._bottomFrozen;\n }\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n this.headerStyle,\n superTheme.bottomFrozenStyle,\n obj.bottomFrozenStyle // ?? obj.headerStyle\n );\n this._bottomFrozen = this.getStyle(header);\n }\n return this._bottomFrozen;\n }\n get rowHeaderStyle(): ITableThemeDefine['rowHeaderStyle'] {\n if (!this._rowHeader) {\n const { obj, superTheme } = this.internalTheme;\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n superTheme.rowHeaderStyle,\n obj.rowHeaderStyle // ?? obj.headerStyle\n );\n this._rowHeader = this.getStyle(header);\n }\n return this._rowHeader;\n }\n get bodyStyle(): ITableThemeDefine['bodyStyle'] {\n if (!this._body) {\n const { obj, superTheme } = this.internalTheme;\n // const body = getProp(obj, superTheme, [\"body\"]);\n const body: ThemeStyle = ingoreNoneValueMerge({}, this.defaultStyle, superTheme.bodyStyle, obj.bodyStyle);\n this._body = this.getStyle(body);\n }\n\n return this._body;\n }\n\n get frameStyle(): ITableThemeDefine['frameStyle'] {\n if (!this._frameStyle) {\n const { obj, superTheme } = this.internalTheme;\n const frameStyle: TableFrameStyle = ingoreNoneValueMerge({}, superTheme.frameStyle, obj.frameStyle);\n this._frameStyle = {\n get borderColor(): ColorsDef | undefined {\n return frameStyle.borderColor;\n },\n get borderLineWidth(): LineWidthsDef | undefined {\n return frameStyle.borderLineWidth;\n },\n get borderLineDash(): LineDashsDef | undefined {\n return frameStyle.borderLineDash;\n },\n get shadowBlur(): number {\n return frameStyle.shadowBlur;\n },\n get shadowColor(): string {\n return frameStyle.shadowColor;\n },\n get shadowOffsetX(): number {\n return frameStyle.shadowOffsetX;\n },\n get shadowOffsetY(): number {\n return frameStyle.shadowOffsetY;\n },\n get cornerRadius(): number {\n return frameStyle.cornerRadius;\n }\n };\n }\n return this._frameStyle;\n }\n get scrollStyle(): ITableThemeDefine['scrollStyle'] {\n if (!this._scroll) {\n const { obj, superTheme } = this.internalTheme;\n const scroll: ScrollStyle = ingoreNoneValueMerge({}, superTheme.scrollStyle, obj.scrollStyle);\n this._scroll = {\n get scrollSliderColor(): string | undefined {\n return scroll.scrollSliderColor ?? '#C0C0C0';\n },\n get scrollRailColor(): string | undefined {\n return scroll.scrollRailColor;\n },\n get visible(): 'always' | 'scrolling' | 'none' | 'focus' {\n return scroll.visible ?? 'scrolling';\n },\n get width(): number | undefined {\n return scroll.width ?? 7;\n },\n get hoverOn(): boolean | undefined {\n return scroll.hoverOn ?? true;\n }\n };\n }\n\n return this._scroll;\n }\n get tooltipStyle(): ITableThemeDefine['tooltipStyle'] {\n if (!this._tooltip) {\n const { obj, superTheme } = this.internalTheme;\n const tooltip: TooltipStyle = ingoreNoneValueMerge({}, superTheme.tooltipStyle, obj.tooltipStyle);\n this._tooltip = {\n get fontFamily(): string | undefined {\n return tooltip.fontFamily ?? DEFAULTFONTFAMILY;\n },\n get fontSize(): number | undefined {\n return tooltip.fontSize ?? DEFAULTFONTSIZE;\n },\n get bgColor(): string | undefined {\n return tooltip.bgColor ?? '#000';\n },\n get padding(): number[] {\n return tooltip.padding ?? [6, 8];\n },\n get color(): string | undefined {\n return tooltip.color ?? '#FFF';\n }\n };\n }\n\n return this._tooltip;\n }\n\n /**\n * resize 分割线样式\n */\n get columnResize(): RequiredTableThemeDefine['columnResize'] {\n if (!this._columnResize) {\n const { obj, superTheme } = this.internalTheme;\n const columnResize: RequiredTableThemeDefine['columnResize'] = ingoreNoneValueMerge(\n {},\n superTheme.columnResize,\n obj.columnResize\n );\n this._columnResize = {\n get lineColor(): ColorPropertyDefine {\n return columnResize.lineColor ?? '#416EFF';\n },\n get bgColor(): ColorPropertyDefine {\n return columnResize.bgColor ?? '#D9E2FF';\n },\n get lineWidth(): number {\n return columnResize.lineWidth ?? 1;\n },\n get width(): number {\n return columnResize.width ?? columnResize.lineWidth + 2;\n }\n };\n }\n return this._columnResize;\n }\n /**\n * 移位 分割线样式\n */\n get dragHeaderSplitLine(): RequiredTableThemeDefine['dragHeaderSplitLine'] {\n if (!this._dragHeaderSplitLine) {\n const { obj, superTheme } = this.internalTheme;\n const dragHeaderSplitLine: RequiredTableThemeDefine['dragHeaderSplitLine'] = ingoreNoneValueMerge(\n {},\n superTheme.dragHeaderSplitLine,\n obj.dragHeaderSplitLine\n );\n this._dragHeaderSplitLine = {\n get lineColor(): ColorPropertyDefine {\n return dragHeaderSplitLine.lineColor ?? 'blue';\n },\n // get bgColor(): ColorPropertyDefine {\n // return dragHeaderSplitLine.bgColor ?? dragHeaderSplitLine.lineColor;\n // },\n get lineWidth(): number {\n return dragHeaderSplitLine.lineWidth ?? 2;\n },\n // get width(): number {\n // return dragHeaderSplitLine.width ?? dragHeaderSplitLine.lineWidth;\n // },\n get shadowBlockColor(): string {\n return dragHeaderSplitLine.shadowBlockColor ?? 'rgba(204,204,204,0.3)';\n }\n };\n }\n return this._dragHeaderSplitLine;\n }\n get frozenColumnLine(): RequiredTableThemeDefine['frozenColumnLine'] {\n // const { obj, superTheme } = this.internalTheme;\n // const that = this;\n // const frozenColumnLine = getProp(obj, superTheme, [\n // \"frozenColumnLine\",\n // ]);\n if (!this._frozenColumnLine) {\n const { obj, superTheme } = this.internalTheme;\n const frozenColumnLine: RequiredTableThemeDefine['frozenColumnLine'] = ingoreNoneValueMerge(\n {},\n superTheme.frozenColumnLine,\n obj.frozenColumnLine\n );\n this._frozenColumnLine = {\n get shadow(): { width: number; startColor: string; endColor: string } | undefined {\n if (frozenColumnLine.shadow) {\n return {\n get width(): number {\n return frozenColumnLine.shadow?.width ?? 24;\n },\n get startColor(): string {\n return frozenColumnLine.shadow?.startColor ?? 'rgba(00, 24, 47, 0.06)';\n },\n get endColor(): string {\n return frozenColumnLine.shadow?.endColor ?? 'rgba(00, 24, 47, 0)';\n }\n };\n }\n return undefined;\n },\n get border():\n | {\n lineColor: ColorPropertyDefine;\n bgColor?: ColorPropertyDefine;\n lineWidth: number;\n width?: number;\n }\n | undefined {\n if (frozenColumnLine.border) {\n return {\n get lineColor(): ColorPropertyDefine {\n return frozenColumnLine.border?.lineColor ?? 'rgba(00, 24, 47, 0.06)';\n },\n get bgColor(): ColorPropertyDefine {\n return (\n frozenColumnLine.border?.bgColor ?? frozenColumnLine.border?.lineColor ?? 'rgba(00, 24, 47, 0.06)'\n );\n },\n get lineWidth(): number {\n return frozenColumnLine.border?.lineWidth ?? 4;\n },\n get width(): number {\n return frozenColumnLine.border?.width ?? frozenColumnLine.border?.lineWidth ?? 4;\n }\n };\n }\n return undefined;\n }\n };\n }\n return this._frozenColumnLine;\n }\n get selectionStyle(): RequiredTableThemeDefine['selectionStyle'] {\n if (!this._selectionStyle) {\n const { obj, superTheme } = this.internalTheme;\n const selectionStyle: RequiredTableThemeDefine['selectionStyle'] = ingoreNoneValueMerge(\n {},\n superTheme.selectionStyle,\n obj.selectionStyle\n );\n this._selectionStyle = {\n get cellBgColor(): string | undefined {\n return selectionStyle?.cellBgColor ?? 'rgba(0, 0, 255,0.1)';\n },\n get cellBorderColor(): string | undefined {\n return selectionStyle?.cellBorderColor ?? '#3073f2';\n },\n get cellBorderLineWidth(): number | undefined {\n return selectionStyle?.cellBorderLineWidth ?? 2;\n }\n };\n }\n return this._selectionStyle;\n }\n hasProperty(names: string[]): boolean {\n const { obj, superTheme } = this.internalTheme;\n return hasThemeProperty(obj, names) || hasThemeProperty(superTheme, names);\n }\n extends(obj: PartialTableThemeDefine): TableTheme {\n return new TableTheme(obj, this);\n }\n private getStyle(style: ThemeStyle) {\n return {\n get fontSize(): FontSizePropertyDefine | undefined {\n return style.fontSize;\n },\n get fontFamily(): FontFamilyPropertyDefine | undefined {\n return style.fontFamily;\n },\n get fontWeight(): FontWeightPropertyDefine | undefined {\n return style.fontWeight;\n },\n get fontVariant(): FontVariantPropertyDefine | undefined {\n return style.fontVariant;\n },\n get fontStyle(): FontStylePropertyDefine | undefined {\n return style.fontStyle;\n },\n get bgColor(): ColorPropertyDefine | undefined {\n return style.bgColor;\n },\n get color(): ColorPropertyDefine | undefined {\n return style.color;\n },\n get borderColor(): ColorsPropertyDefine | undefined {\n return style.borderColor;\n },\n get borderLineWidth(): LineWidthsPropertyDefine | undefined {\n return style.borderLineWidth;\n },\n get borderLineDash(): LineDashsPropertyDefine | undefined {\n return style.borderLineDash;\n },\n get hover(): InteractionStyle | undefined {\n if (style.hover) {\n return {\n get cellBgColor(): ColorPropertyDefine | undefined {\n return style.hover?.cellBgColor ?? undefined;\n },\n // get cellBorderColor(): ColorsPropertyDefine | undefined {\n // return style.hover?.cellBorderColor ?? undefined;\n // },\n // get cellBorderLineWidth(): LineWidthsPropertyDefine | undefined {\n // return style.hover?.cellBorderLineWidth ?? undefined;\n // },\n get inlineColumnBgColor(): ColorPropertyDefine | undefined {\n return (\n style.hover?.inlineColumnBgColor ??\n (style.hover?.cellBgColor && typeof style.hover?.cellBgColor === 'string'\n ? changeColor(style.hover?.cellBgColor, 0.1, false)\n : undefined) ??\n undefined\n );\n },\n get inlineRowBgColor(): ColorPropertyDefine | undefined {\n return (\n style.hover?.inlineRowBgColor ??\n (style.hover?.cellBgColor && typeof style.hover?.cellBgColor === 'string'\n ? changeColor(style.hover?.cellBgColor, 0.1, false)\n : undefined) ??\n undefined\n );\n }\n };\n }\n return undefined;\n },\n // get click(): InteractionStyle | undefined {\n // if (style.click)\n // return {\n // get cellBgColor(): ColorPropertyDefine | undefined {\n // return style.click?.cellBgColor ?? undefined;\n // },\n // get cellBorderColor(): ColorsPropertyDefine | undefined {\n // return style.click?.cellBorderColor ?? undefined;\n // },\n // get cellBorderLineWidth(): LineWidthsPropertyDefine | undefined {\n // return style.click?.cellBorderLineWidth ?? undefined;\n // },\n // // get cellBorderLineDash(): LineDashsPropertyDefine |undefined{\n // // return style.click?.cellBorderLineDash??undefined\n // // },\n // get inlineColumnBgColor(): ColorPropertyDefine | undefined {\n // return (\n // // style.click?.inlineColumnBgColor ??\n // (style.click?.cellBgColor && typeof style.click?.cellBgColor === 'string'\n // ? changeColor(style.click?.cellBgColor, 0.1, false)\n // : undefined) ?? undefined\n // );\n // },\n // get inlineRowBgColor(): ColorPropertyDefine | undefined {\n // return (\n // // style.click?.inlineRowBgColor ??\n // (style.click?.cellBgColor && typeof style.click?.cellBgColor === 'string'\n // ? changeColor(style.click?.cellBgColor, 0.1, false)\n // : undefined) ?? undefined\n // );\n // },\n // };\n // return undefined;\n // },\n get frameStyle(): FrameStyle | undefined {\n if (style.frameStyle) {\n return {\n get borderColor(): ColorsDef | undefined {\n return style.frameStyle?.borderColor ?? undefined;\n },\n get borderLineWidth(): LineWidthsDef | undefined {\n return style.frameStyle?.borderLineWidth ?? undefined;\n },\n get borderLineDash(): LineDashsDef | undefined {\n return style.frameStyle?.borderLineDash ?? undefined;\n }\n };\n }\n return undefined;\n },\n get padding(): PaddingsPropertyDefine | undefined {\n return style.padding;\n },\n get textAlign(): TextAlignType | undefined {\n return style.textAlign;\n },\n get textBaseline(): TextBaselineType | undefined {\n return style.textBaseline;\n },\n get textOverflow(): TextOverflow | undefined {\n return style.textOverflow;\n },\n get lineHeight(): number | undefined {\n return style.lineHeight;\n },\n get autoWrapText(): boolean | undefined {\n return style.autoWrapText;\n },\n get lineClamp(): LineClamp | undefined {\n return style.lineClamp;\n },\n get linkColor(): ColorPropertyDefine | undefined {\n return style.linkColor;\n },\n get cursor(): CursorPropertyDefine | undefined {\n return style.cursor;\n },\n get textStick(): boolean | undefined {\n return style.textStick;\n },\n get marked(): MarkedPropertyDefine | undefined {\n return style.marked;\n },\n get underline(): UnderlinePropertyDefine {\n return style.underline ?? false;\n },\n get underlineColor(): ColorPropertyDefine | undefined {\n return style.underlineColor; // 不需要默认值 绘制中已处理默认用文字颜色\n },\n get underlineDash(): LineDashPropertyDefine | undefined {\n return style.underlineDash;\n },\n get lineThrough(): LineThroughPropertyDefine | undefined {\n return style.lineThrough ?? false;\n },\n get lineThroughColor(): ColorPropertyDefine | undefined {\n return style.lineThroughColor; // 不需要默认值 绘制中已处理默认用文字颜色\n },\n get lineThroughDash(): LineDashPropertyDefine | undefined {\n return style.lineThroughDash;\n }\n };\n }\n}\n\nfunction hasThemeProperty(obj: PartialTableThemeDefine, names: string[]): boolean {\n if (obj instanceof TableTheme) {\n return obj.hasProperty(names);\n }\n\n let o: any = obj;\n if (!o) {\n return false;\n }\n for (let index = 0; index < names.length; index++) {\n const name = names[index];\n o = o[name];\n if (!o) {\n return false;\n }\n }\n return !!o;\n}\n"]}
1
+ {"version":3,"sources":["../src/themes/theme.ts"],"names":[],"mappings":"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","file":"theme.js","sourcesContent":["/* eslint-disable no-undef */\n/* eslint-disable sort-imports */\nimport type {\n ColorPropertyDefine,\n ColorsDef,\n ColorsPropertyDefine,\n ColumnIconOption,\n FrameStyle,\n ITableThemeDefine,\n InteractionStyle,\n LineClamp,\n LineDashsDef,\n LineDashsPropertyDefine,\n LineWidthsDef,\n LineWidthsPropertyDefine,\n PartialTableThemeDefine,\n RequiredTableThemeDefine,\n TextOverflow,\n ThemeStyle,\n // menuStyle,\n TableFrameStyle,\n PaddingsPropertyDefine,\n ScrollStyle,\n CursorPropertyDefine,\n TooltipStyle,\n MarkedPropertyDefine,\n UnderlinePropertyDefine,\n LineDashPropertyDefine,\n LineThroughPropertyDefine,\n FontSizePropertyDefine,\n FontFamilyPropertyDefine,\n FontWeightPropertyDefine,\n FontVariantPropertyDefine,\n FontStylePropertyDefine,\n TextAlignType,\n TextBaselineType\n} from '../ts-types';\nimport { getChainSafe } from '../tools/helper';\nimport { changeColor, ingoreNoneValueMerge, merge } from '../tools/util';\nimport {\n DEFAULTBGCOLOR,\n DEFAULTBORDERCOLOR,\n DEFAULTBORDERLINEDASH,\n DEFAULTBORDERLINEWIDTH,\n DEFAULTFONTCOLOR,\n DEFAULTFONTFAMILY,\n DEFAULTFONTSIZE\n} from '../tools/global';\n//private symbol\n// const _ = getSymbol();\n\nfunction getProp(obj: PartialTableThemeDefine, superObj: ITableThemeDefine, names: string[], defNames?: string[]): any {\n return (\n getChainSafe(obj, ...names) ||\n getChainSafe(superObj, ...names) ||\n (defNames && getChainSafe(obj, ...defNames)) ||\n (defNames && getChainSafe(superObj, ...defNames))\n );\n}\n\nexport class TableTheme implements ITableThemeDefine {\n private internalTheme: {\n obj: PartialTableThemeDefine;\n superTheme: ITableThemeDefine;\n };\n private _defaultStyle: RequiredTableThemeDefine['defaultStyle'] | null = null;\n private _header: ITableThemeDefine['headerStyle'] | null = null;\n private _cornerHeader: ITableThemeDefine['cornerHeaderStyle'] | null = null;\n private _cornerRightTopCell: ITableThemeDefine['cornerRightTopCellStyle'] | null = null;\n private _cornerLeftBottomCell: ITableThemeDefine['cornerLeftBottomCellStyle'] | null = null;\n private _cornerRightBottomCell: ITableThemeDefine['cornerRightBottomCellStyle'] | null = null;\n private _rightFrozen: ITableThemeDefine['rightFrozenStyle'] | null = null;\n private _bottomFrozen: ITableThemeDefine['bottomFrozenStyle'] | null = null;\n private _rowHeader: ITableThemeDefine['rowHeaderStyle'] | null = null;\n private _body: ITableThemeDefine['bodyStyle'] | null = null;\n private _scroll: ITableThemeDefine['scrollStyle'] | null = null;\n private _tooltip: ITableThemeDefine['tooltipStyle'] | null = null;\n private _frameStyle: ITableThemeDefine['frameStyle'] | null = null;\n private _columnResize: RequiredTableThemeDefine['columnResize'] | null = null;\n private _dragHeaderSplitLine: RequiredTableThemeDefine['dragHeaderSplitLine'] | null = null;\n private _frozenColumnLine: RequiredTableThemeDefine['frozenColumnLine'] | null = null;\n private _selectionStyle: RequiredTableThemeDefine['selectionStyle'] | null = null;\n constructor(obj: PartialTableThemeDefine | ITableThemeDefine, superTheme: ITableThemeDefine) {\n this.internalTheme = {\n obj,\n superTheme\n };\n }\n get font(): string {\n const { obj, superTheme } = this.internalTheme;\n return getProp(obj, superTheme, ['font'], ['bodyStyle', 'font']);\n }\n get underlayBackgroundColor(): string {\n const { obj, superTheme } = this.internalTheme;\n return getProp(obj, superTheme, ['underlayBackgroundColor']);\n }\n\n get defaultStyle(): RequiredTableThemeDefine['defaultStyle'] {\n // const defaultStyle = getProp(obj, superTheme, [\"defaultStyle\"]);\n if (!this._defaultStyle) {\n const { obj, superTheme } = this.internalTheme;\n const defaultStyle: ThemeStyle = ingoreNoneValueMerge({}, superTheme.defaultStyle, obj.defaultStyle);\n this._defaultStyle = {\n get fontSize(): FontSizePropertyDefine {\n return defaultStyle.fontSize ?? DEFAULTFONTSIZE;\n },\n get fontFamily(): FontFamilyPropertyDefine {\n return defaultStyle.fontFamily ?? DEFAULTFONTFAMILY;\n },\n get fontWeight(): FontWeightPropertyDefine | undefined {\n return defaultStyle.fontWeight;\n },\n get fontVariant(): FontVariantPropertyDefine | undefined {\n return defaultStyle.fontVariant;\n },\n get fontStyle(): FontStylePropertyDefine | undefined {\n return defaultStyle.fontStyle;\n },\n get bgColor(): ColorPropertyDefine {\n return defaultStyle.bgColor ?? DEFAULTBGCOLOR;\n },\n get color(): ColorPropertyDefine {\n return defaultStyle.color ?? DEFAULTFONTCOLOR;\n },\n get borderColor(): ColorsPropertyDefine {\n return defaultStyle.borderColor ?? DEFAULTBORDERCOLOR;\n },\n get borderLineWidth(): LineWidthsPropertyDefine | undefined {\n return defaultStyle.borderLineWidth ?? DEFAULTBORDERLINEWIDTH;\n },\n get borderLineDash(): LineDashsPropertyDefine | undefined {\n return defaultStyle.borderLineDash ?? DEFAULTBORDERLINEDASH;\n },\n get hover(): InteractionStyle | undefined {\n if (defaultStyle.hover) {\n return {\n get cellBgColor(): ColorPropertyDefine | undefined {\n return defaultStyle.hover?.cellBgColor ?? undefined;\n },\n // get cellBorderColor(): ColorsPropertyDefine | undefined {\n // return defaultStyle.hover?.cellBorderColor ?? undefined;\n // },\n // get cellBorderLineWidth(): LineWidthsPropertyDefine | undefined {\n // return defaultStyle.hover?.cellBorderLineWidth ?? undefined;\n // },\n get inlineColumnBgColor(): ColorPropertyDefine | undefined {\n return (\n defaultStyle.hover?.inlineColumnBgColor ??\n (defaultStyle.hover?.cellBgColor && typeof defaultStyle.hover?.cellBgColor === 'string'\n ? changeColor(defaultStyle.hover?.cellBgColor, 0.1, false)\n : undefined) ??\n undefined\n );\n },\n get inlineRowBgColor(): ColorPropertyDefine | undefined {\n return (\n defaultStyle.hover?.inlineRowBgColor ??\n (defaultStyle.hover?.cellBgColor && typeof defaultStyle.hover?.cellBgColor === 'string'\n ? changeColor(defaultStyle.hover?.cellBgColor, 0.1, false)\n : undefined) ??\n undefined\n );\n }\n };\n }\n return undefined;\n },\n // get click(): InteractionStyle | undefined {\n // if (defaultStyle.click)\n // return {\n // get cellBgColor(): ColorPropertyDefine | undefined {\n // return defaultStyle.click?.cellBgColor ?? undefined;\n // },\n // get cellBorderColor(): ColorsPropertyDefine | undefined {\n // return defaultStyle.click?.cellBorderColor ?? undefined;\n // },\n // get cellBorderLineWidth(): LineWidthsPropertyDefine | undefined {\n // return defaultStyle.click?.cellBorderLineWidth ?? undefined;\n // },\n // // get cellBorderLineDash(): LineDashsPropertyDefine |undefined{\n // // return defaultStyle.click?.cellBorderLineDash??undefined\n // // },\n // get inlineColumnBgColor(): ColorPropertyDefine | undefined {\n // return (\n // // defaultStyle.click?.inlineColumnBgColor ??\n // (defaultStyle.click?.cellBgColor &&\n // typeof defaultStyle.click?.cellBgColor === 'string'\n // ? changeColor(defaultStyle.click?.cellBgColor, 0.1, false)\n // : undefined) ?? undefined\n // );\n // },\n // get inlineRowBgColor(): ColorPropertyDefine | undefined {\n // return (\n // // defaultStyle.click?.inlineRowBgColor ??\n // (defaultStyle.click?.cellBgColor &&\n // typeof defaultStyle.click?.cellBgColor === 'string'\n // ? changeColor(defaultStyle.click?.cellBgColor, 0.1, false)\n // : undefined) ?? undefined\n // );\n // },\n // };\n // return undefined;\n // },\n get padding(): PaddingsPropertyDefine {\n return defaultStyle.padding ?? [10, 16, 10, 16];\n },\n get textAlign(): TextAlignType {\n return defaultStyle.textAlign ?? 'left';\n },\n get textBaseline(): TextBaselineType {\n return defaultStyle.textBaseline ?? 'middle';\n },\n get textOverflow(): TextOverflow {\n return defaultStyle.textOverflow ?? 'ellipsis';\n },\n get lineHeight(): number {\n return defaultStyle.lineHeight;\n },\n get autoWrapText(): boolean {\n return defaultStyle.autoWrapText ?? false;\n },\n get lineClamp(): LineClamp {\n return defaultStyle.lineClamp ?? 'auto';\n },\n get linkColor(): ColorPropertyDefine {\n return defaultStyle.linkColor ?? '#3772ff';\n },\n get cursor(): CursorPropertyDefine {\n return defaultStyle.cursor ?? 'auto';\n },\n get marked(): MarkedPropertyDefine {\n return defaultStyle.marked ?? false;\n },\n get underline(): UnderlinePropertyDefine {\n return defaultStyle.underline ?? false;\n },\n get underlineColor(): ColorPropertyDefine | undefined {\n return defaultStyle.underlineColor; // 不需要默认值 绘制中已处理默认用文字颜色\n },\n get underlineDash(): LineDashPropertyDefine | undefined {\n return defaultStyle.underlineDash;\n },\n get lineThrough(): LineThroughPropertyDefine | undefined {\n return defaultStyle.lineThrough ?? false;\n },\n get lineThroughColor(): ColorPropertyDefine | undefined {\n return defaultStyle.lineThroughColor; // 不需要默认值 绘制中已处理默认用文字颜色\n },\n get lineThroughDash(): LineDashPropertyDefine | undefined {\n return defaultStyle.lineThroughDash;\n }\n };\n }\n return this._defaultStyle;\n }\n get headerStyle(): ITableThemeDefine['headerStyle'] {\n if (!this._header) {\n const { obj, superTheme } = this.internalTheme;\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge({}, this.defaultStyle, superTheme.headerStyle, obj.headerStyle);\n this._header = this.getStyle(header);\n }\n return this._header;\n }\n get cornerHeaderStyle(): ITableThemeDefine['cornerHeaderStyle'] {\n if (!this._cornerHeader) {\n const { obj, superTheme } = this.internalTheme;\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n superTheme.cornerHeaderStyle,\n obj.cornerHeaderStyle // ?? obj.headerStyle\n );\n this._cornerHeader = this.getStyle(header);\n }\n return this._cornerHeader;\n }\n get cornerRightTopCellStyle(): ITableThemeDefine['cornerRightTopCellStyle'] {\n if (!this._cornerRightTopCell) {\n const { obj, superTheme } = this.internalTheme;\n if (!superTheme.cornerRightTopCellStyle || !obj.cornerRightTopCellStyle) {\n return this._cornerRightTopCell;\n }\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n superTheme.cornerRightTopCellStyle,\n obj.cornerRightTopCellStyle // ?? obj.headerStyle\n );\n this._cornerRightTopCell = this.getStyle(header);\n }\n return this._cornerRightTopCell;\n }\n get cornerLeftBottomCellStyle(): ITableThemeDefine['cornerLeftBottomCellStyle'] {\n if (!this._cornerLeftBottomCell) {\n const { obj, superTheme } = this.internalTheme;\n if (!superTheme.cornerLeftBottomCellStyle || !obj.cornerLeftBottomCellStyle) {\n return this._cornerLeftBottomCell;\n }\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n superTheme.cornerLeftBottomCellStyle,\n obj.cornerLeftBottomCellStyle // ?? obj.headerStyle\n );\n this._cornerLeftBottomCell = this.getStyle(header);\n }\n return this._cornerLeftBottomCell;\n }\n get cornerRightBottomCellStyle(): ITableThemeDefine['cornerRightBottomCellStyle'] {\n if (!this._cornerRightBottomCell) {\n const { obj, superTheme } = this.internalTheme;\n if (!superTheme.cornerRightBottomCellStyle || !obj.cornerRightBottomCellStyle) {\n return this._cornerRightBottomCell;\n }\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n superTheme.cornerRightBottomCellStyle,\n obj.cornerRightBottomCellStyle // ?? obj.headerStyle\n );\n this._cornerRightBottomCell = this.getStyle(header);\n }\n return this._cornerRightBottomCell;\n }\n get rightFrozenStyle(): ITableThemeDefine['rightFrozenStyle'] {\n if (!this._rightFrozen) {\n const { obj, superTheme } = this.internalTheme;\n if (!superTheme.rightFrozenStyle || !obj.rightFrozenStyle) {\n return this._rightFrozen;\n }\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n this.rowHeaderStyle,\n superTheme.rightFrozenStyle,\n obj.rightFrozenStyle // ?? obj.headerStyle\n );\n this._rightFrozen = this.getStyle(header);\n }\n return this._rightFrozen;\n }\n get bottomFrozenStyle(): ITableThemeDefine['bottomFrozenStyle'] {\n if (!this._bottomFrozen) {\n const { obj, superTheme } = this.internalTheme;\n if (!superTheme.bottomFrozenStyle || !obj.bottomFrozenStyle) {\n return this._bottomFrozen;\n }\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n this.headerStyle,\n superTheme.bottomFrozenStyle,\n obj.bottomFrozenStyle // ?? obj.headerStyle\n );\n this._bottomFrozen = this.getStyle(header);\n }\n return this._bottomFrozen;\n }\n get rowHeaderStyle(): ITableThemeDefine['rowHeaderStyle'] {\n if (!this._rowHeader) {\n const { obj, superTheme } = this.internalTheme;\n // const header = getProp(obj, superTheme, [\"header\"]);\n const header: ThemeStyle = ingoreNoneValueMerge(\n {},\n this.defaultStyle,\n superTheme.rowHeaderStyle,\n obj.rowHeaderStyle // ?? obj.headerStyle\n );\n this._rowHeader = this.getStyle(header);\n }\n return this._rowHeader;\n }\n get bodyStyle(): ITableThemeDefine['bodyStyle'] {\n if (!this._body) {\n const { obj, superTheme } = this.internalTheme;\n // const body = getProp(obj, superTheme, [\"body\"]);\n const body: ThemeStyle = ingoreNoneValueMerge({}, this.defaultStyle, superTheme.bodyStyle, obj.bodyStyle);\n this._body = this.getStyle(body);\n }\n\n return this._body;\n }\n\n get frameStyle(): ITableThemeDefine['frameStyle'] {\n if (!this._frameStyle) {\n const { obj, superTheme } = this.internalTheme;\n const frameStyle: TableFrameStyle = ingoreNoneValueMerge({}, superTheme.frameStyle, obj.frameStyle);\n this._frameStyle = {\n get borderColor(): ColorsDef | undefined {\n return frameStyle.borderColor;\n },\n get borderLineWidth(): LineWidthsDef | undefined {\n return frameStyle.borderLineWidth;\n },\n get borderLineDash(): LineDashsDef | undefined {\n return frameStyle.borderLineDash;\n },\n get shadowBlur(): number {\n return frameStyle.shadowBlur;\n },\n get shadowColor(): string {\n return frameStyle.shadowColor;\n },\n get shadowOffsetX(): number {\n return frameStyle.shadowOffsetX;\n },\n get shadowOffsetY(): number {\n return frameStyle.shadowOffsetY;\n },\n get cornerRadius(): number {\n return frameStyle.cornerRadius;\n }\n };\n }\n return this._frameStyle;\n }\n get scrollStyle(): ITableThemeDefine['scrollStyle'] {\n if (!this._scroll) {\n const { obj, superTheme } = this.internalTheme;\n const scroll: ScrollStyle = ingoreNoneValueMerge({}, superTheme.scrollStyle, obj.scrollStyle);\n this._scroll = {\n get scrollSliderColor(): string | undefined {\n return scroll.scrollSliderColor ?? '#C0C0C0';\n },\n get scrollRailColor(): string | undefined {\n return scroll.scrollRailColor;\n },\n get visible(): 'always' | 'scrolling' | 'none' | 'focus' {\n return scroll.visible ?? 'scrolling';\n },\n get width(): number | undefined {\n return scroll.width ?? 7;\n },\n get hoverOn(): boolean | undefined {\n return scroll.hoverOn ?? true;\n }\n };\n }\n\n return this._scroll;\n }\n get tooltipStyle(): ITableThemeDefine['tooltipStyle'] {\n if (!this._tooltip) {\n const { obj, superTheme } = this.internalTheme;\n const tooltip: TooltipStyle = ingoreNoneValueMerge({}, superTheme.tooltipStyle, obj.tooltipStyle);\n this._tooltip = {\n get fontFamily(): string | undefined {\n return tooltip.fontFamily ?? DEFAULTFONTFAMILY;\n },\n get fontSize(): number | undefined {\n return tooltip.fontSize ?? DEFAULTFONTSIZE;\n },\n get bgColor(): string | undefined {\n return tooltip.bgColor ?? '#000';\n },\n get padding(): number[] {\n return tooltip.padding ?? [6, 8];\n },\n get color(): string | undefined {\n return tooltip.color ?? '#FFF';\n }\n };\n }\n\n return this._tooltip;\n }\n\n /**\n * resize 分割线样式\n */\n get columnResize(): RequiredTableThemeDefine['columnResize'] {\n if (!this._columnResize) {\n const { obj, superTheme } = this.internalTheme;\n const columnResize: RequiredTableThemeDefine['columnResize'] = ingoreNoneValueMerge(\n {},\n superTheme.columnResize,\n obj.columnResize\n );\n this._columnResize = {\n get lineColor(): ColorPropertyDefine {\n return columnResize.lineColor ?? '#416EFF';\n },\n get bgColor(): ColorPropertyDefine {\n return columnResize.bgColor ?? '#D9E2FF';\n },\n get lineWidth(): number {\n return columnResize.lineWidth ?? 1;\n },\n get width(): number {\n return columnResize.width ?? columnResize.lineWidth + 2;\n }\n };\n }\n return this._columnResize;\n }\n /**\n * 移位 分割线样式\n */\n get dragHeaderSplitLine(): RequiredTableThemeDefine['dragHeaderSplitLine'] {\n if (!this._dragHeaderSplitLine) {\n const { obj, superTheme } = this.internalTheme;\n const dragHeaderSplitLine: RequiredTableThemeDefine['dragHeaderSplitLine'] = ingoreNoneValueMerge(\n {},\n superTheme.dragHeaderSplitLine,\n obj.dragHeaderSplitLine\n );\n this._dragHeaderSplitLine = {\n get lineColor(): ColorPropertyDefine {\n return dragHeaderSplitLine.lineColor ?? 'blue';\n },\n // get bgColor(): ColorPropertyDefine {\n // return dragHeaderSplitLine.bgColor ?? dragHeaderSplitLine.lineColor;\n // },\n get lineWidth(): number {\n return dragHeaderSplitLine.lineWidth ?? 2;\n },\n // get width(): number {\n // return dragHeaderSplitLine.width ?? dragHeaderSplitLine.lineWidth;\n // },\n get shadowBlockColor(): string {\n return dragHeaderSplitLine.shadowBlockColor ?? 'rgba(204,204,204,0.3)';\n }\n };\n }\n return this._dragHeaderSplitLine;\n }\n get frozenColumnLine(): RequiredTableThemeDefine['frozenColumnLine'] {\n // const { obj, superTheme } = this.internalTheme;\n // const that = this;\n // const frozenColumnLine = getProp(obj, superTheme, [\n // \"frozenColumnLine\",\n // ]);\n if (!this._frozenColumnLine) {\n const { obj, superTheme } = this.internalTheme;\n const frozenColumnLine: RequiredTableThemeDefine['frozenColumnLine'] = ingoreNoneValueMerge(\n {},\n superTheme.frozenColumnLine,\n obj.frozenColumnLine\n );\n this._frozenColumnLine = {\n get shadow(): { width: number; startColor: string; endColor: string } | undefined {\n if (frozenColumnLine.shadow) {\n return {\n get width(): number {\n return frozenColumnLine.shadow?.width ?? 24;\n },\n get startColor(): string {\n return frozenColumnLine.shadow?.startColor ?? 'rgba(00, 24, 47, 0.06)';\n },\n get endColor(): string {\n return frozenColumnLine.shadow?.endColor ?? 'rgba(00, 24, 47, 0)';\n }\n };\n }\n return undefined;\n },\n get border():\n | {\n lineColor: ColorPropertyDefine;\n bgColor?: ColorPropertyDefine;\n lineWidth: number;\n width?: number;\n }\n | undefined {\n if (frozenColumnLine.border) {\n return {\n get lineColor(): ColorPropertyDefine {\n return frozenColumnLine.border?.lineColor ?? 'rgba(00, 24, 47, 0.06)';\n },\n get bgColor(): ColorPropertyDefine {\n return (\n frozenColumnLine.border?.bgColor ?? frozenColumnLine.border?.lineColor ?? 'rgba(00, 24, 47, 0.06)'\n );\n },\n get lineWidth(): number {\n return frozenColumnLine.border?.lineWidth ?? 4;\n },\n get width(): number {\n return frozenColumnLine.border?.width ?? frozenColumnLine.border?.lineWidth ?? 4;\n }\n };\n }\n return undefined;\n }\n };\n }\n return this._frozenColumnLine;\n }\n get selectionStyle(): RequiredTableThemeDefine['selectionStyle'] {\n if (!this._selectionStyle) {\n const { obj, superTheme } = this.internalTheme;\n const selectionStyle: RequiredTableThemeDefine['selectionStyle'] = ingoreNoneValueMerge(\n {},\n superTheme.selectionStyle,\n obj.selectionStyle\n );\n this._selectionStyle = {\n get cellBgColor(): string | undefined {\n return selectionStyle?.cellBgColor ?? 'rgba(0, 0, 255,0.1)';\n },\n get cellBorderColor(): string | undefined {\n return selectionStyle?.cellBorderColor ?? '#3073f2';\n },\n get cellBorderLineWidth(): number | undefined {\n return selectionStyle?.cellBorderLineWidth ?? 2;\n }\n };\n }\n return this._selectionStyle;\n }\n hasProperty(names: string[]): boolean {\n const { obj, superTheme } = this.internalTheme;\n return hasThemeProperty(obj, names) || hasThemeProperty(superTheme, names);\n }\n extends(obj: PartialTableThemeDefine): TableTheme {\n return new TableTheme(obj, this);\n }\n private getStyle(style: ThemeStyle) {\n return {\n get fontSize(): FontSizePropertyDefine | undefined {\n return style.fontSize;\n },\n get fontFamily(): FontFamilyPropertyDefine | undefined {\n return style.fontFamily;\n },\n get fontWeight(): FontWeightPropertyDefine | undefined {\n return style.fontWeight;\n },\n get fontVariant(): FontVariantPropertyDefine | undefined {\n return style.fontVariant;\n },\n get fontStyle(): FontStylePropertyDefine | undefined {\n return style.fontStyle;\n },\n get bgColor(): ColorPropertyDefine | undefined {\n return style.bgColor;\n },\n get color(): ColorPropertyDefine | undefined {\n return style.color;\n },\n get borderColor(): ColorsPropertyDefine | undefined {\n return style.borderColor;\n },\n get borderLineWidth(): LineWidthsPropertyDefine | undefined {\n return style.borderLineWidth;\n },\n get borderLineDash(): LineDashsPropertyDefine | undefined {\n return style.borderLineDash;\n },\n get hover(): InteractionStyle | undefined {\n if (style.hover) {\n return {\n get cellBgColor(): ColorPropertyDefine | undefined {\n return style.hover?.cellBgColor ?? undefined;\n },\n // get cellBorderColor(): ColorsPropertyDefine | undefined {\n // return style.hover?.cellBorderColor ?? undefined;\n // },\n // get cellBorderLineWidth(): LineWidthsPropertyDefine | undefined {\n // return style.hover?.cellBorderLineWidth ?? undefined;\n // },\n get inlineColumnBgColor(): ColorPropertyDefine | undefined {\n return (\n style.hover?.inlineColumnBgColor ??\n (style.hover?.cellBgColor && typeof style.hover?.cellBgColor === 'string'\n ? changeColor(style.hover?.cellBgColor, 0.1, false)\n : undefined) ??\n undefined\n );\n },\n get inlineRowBgColor(): ColorPropertyDefine | undefined {\n return (\n style.hover?.inlineRowBgColor ??\n (style.hover?.cellBgColor && typeof style.hover?.cellBgColor === 'string'\n ? changeColor(style.hover?.cellBgColor, 0.1, false)\n : undefined) ??\n undefined\n );\n }\n };\n }\n return undefined;\n },\n // get click(): InteractionStyle | undefined {\n // if (style.click)\n // return {\n // get cellBgColor(): ColorPropertyDefine | undefined {\n // return style.click?.cellBgColor ?? undefined;\n // },\n // get cellBorderColor(): ColorsPropertyDefine | undefined {\n // return style.click?.cellBorderColor ?? undefined;\n // },\n // get cellBorderLineWidth(): LineWidthsPropertyDefine | undefined {\n // return style.click?.cellBorderLineWidth ?? undefined;\n // },\n // // get cellBorderLineDash(): LineDashsPropertyDefine |undefined{\n // // return style.click?.cellBorderLineDash??undefined\n // // },\n // get inlineColumnBgColor(): ColorPropertyDefine | undefined {\n // return (\n // // style.click?.inlineColumnBgColor ??\n // (style.click?.cellBgColor && typeof style.click?.cellBgColor === 'string'\n // ? changeColor(style.click?.cellBgColor, 0.1, false)\n // : undefined) ?? undefined\n // );\n // },\n // get inlineRowBgColor(): ColorPropertyDefine | undefined {\n // return (\n // // style.click?.inlineRowBgColor ??\n // (style.click?.cellBgColor && typeof style.click?.cellBgColor === 'string'\n // ? changeColor(style.click?.cellBgColor, 0.1, false)\n // : undefined) ?? undefined\n // );\n // },\n // };\n // return undefined;\n // },\n get frameStyle(): FrameStyle | undefined {\n if (style.frameStyle) {\n return {\n get borderColor(): ColorsDef | undefined {\n return style.frameStyle?.borderColor ?? undefined;\n },\n get borderLineWidth(): LineWidthsDef | undefined {\n return style.frameStyle?.borderLineWidth ?? undefined;\n },\n get borderLineDash(): LineDashsDef | undefined {\n return style.frameStyle?.borderLineDash ?? undefined;\n }\n };\n }\n return undefined;\n },\n get padding(): PaddingsPropertyDefine | undefined {\n return style.padding;\n },\n get textAlign(): TextAlignType | undefined {\n return style.textAlign;\n },\n get textBaseline(): TextBaselineType | undefined {\n return style.textBaseline;\n },\n get textOverflow(): TextOverflow | undefined {\n return style.textOverflow;\n },\n get lineHeight(): number | undefined {\n return style.lineHeight;\n },\n get autoWrapText(): boolean | undefined {\n return style.autoWrapText;\n },\n get lineClamp(): LineClamp | undefined {\n return style.lineClamp;\n },\n get linkColor(): ColorPropertyDefine | undefined {\n return style.linkColor;\n },\n get cursor(): CursorPropertyDefine | undefined {\n return style.cursor;\n },\n get textStick(): boolean | undefined {\n return style.textStick;\n },\n get marked(): MarkedPropertyDefine | undefined {\n return style.marked;\n },\n get underline(): UnderlinePropertyDefine {\n return style.underline ?? false;\n },\n get underlineColor(): ColorPropertyDefine | undefined {\n return style.underlineColor; // 不需要默认值 绘制中已处理默认用文字颜色\n },\n get underlineDash(): LineDashPropertyDefine | undefined {\n return style.underlineDash;\n },\n get lineThrough(): LineThroughPropertyDefine | undefined {\n return style.lineThrough ?? false;\n },\n get lineThroughColor(): ColorPropertyDefine | undefined {\n return style.lineThroughColor; // 不需要默认值 绘制中已处理默认用文字颜色\n },\n get lineThroughDash(): LineDashPropertyDefine | undefined {\n return style.lineThroughDash;\n }\n };\n }\n}\n\nfunction hasThemeProperty(obj: PartialTableThemeDefine, names: string[]): boolean {\n if (obj instanceof TableTheme) {\n return obj.hasProperty(names);\n }\n\n let o: any = obj;\n if (!o) {\n return false;\n }\n for (let index = 0; index < names.length; index++) {\n const name = names[index];\n o = o[name];\n if (!o) {\n return false;\n }\n }\n return !!o;\n}\n"]}
package/es/themes.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["themes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAEjF,MAAM,OAAO,GAAkC;IAC7C,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,IAAI;IACJ,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,CAAC;AACpC,MAAM,UAAU,EAAE,CAAC,KAAoD;IACrE,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,YAAY,UAAU,EAAE;gBAC3B,OAAO,CAAC,CAAC;aACV;YACD,OAAO,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC;KACb;IACD,IAAI,KAAK,YAAY,UAAU,EAAE;QAC/B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,eAAe;IACb,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,KAAK;IACL,EAAE;IACF,GAAG;CACJ,CAAC","file":"themes.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { extend, getIgnoreCase } from './tools/helper';\nimport darkTheme from './themes/DARK';\nimport brightTheme from './themes/BRIGHT';\nimport arcoTheme from './themes/ARCO';\nimport defaultTheme from './themes/DEFAULT';\nimport materialDesignTheme from './themes/SIMPLIFY';\nimport { themes as plugins } from './plugins/themes';\nimport { TableTheme } from './themes/theme';\nimport type { ITableThemeDefine } from './ts-types';\nexport const DARK = new TableTheme(darkTheme, darkTheme);\nexport const BRIGHT = new TableTheme(brightTheme, brightTheme);\nexport const ARCO = new TableTheme(arcoTheme, arcoTheme);\nexport const DEFAULT = new TableTheme(defaultTheme, defaultTheme);\nexport const SIMPLIFY = new TableTheme(materialDesignTheme, materialDesignTheme);\n\nconst builtin: { [key: string]: TableTheme } = {\n DEFAULT,\n SIMPLIFY,\n ARCO,\n DARK,\n BRIGHT\n};\n// let defTheme = DEFAULT;\nexport const theme = { TableTheme };\nexport function of(value: ITableThemeDefine | string | undefined | null): TableTheme | null {\n if (!value) {\n return null;\n }\n if (typeof value === 'string') {\n const t = getIgnoreCase(get(), value);\n if (t) {\n if (t instanceof TableTheme) {\n return t;\n }\n return new TableTheme(t, t);\n }\n return null;\n }\n if (value instanceof TableTheme) {\n return value;\n }\n return new TableTheme(value, value);\n}\n\nexport function get(): { [key: string]: TableTheme } {\n return extend(builtin, plugins);\n}\nexport { ITableThemeDefine };\nexport default {\n DARK,\n BRIGHT,\n ARCO,\n DEFAULT,\n SIMPLIFY,\n theme,\n of,\n get\n};\n"]}
1
+ {"version":3,"sources":["../src/themes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAEjF,MAAM,OAAO,GAAkC;IAC7C,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,IAAI;IACJ,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,CAAC;AACpC,MAAM,UAAU,EAAE,CAAC,KAAoD;IACrE,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,YAAY,UAAU,EAAE;gBAC3B,OAAO,CAAC,CAAC;aACV;YACD,OAAO,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC;KACb;IACD,IAAI,KAAK,YAAY,UAAU,EAAE;QAC/B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,eAAe;IACb,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,KAAK;IACL,EAAE;IACF,GAAG;CACJ,CAAC","file":"themes.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { extend, getIgnoreCase } from './tools/helper';\nimport darkTheme from './themes/DARK';\nimport brightTheme from './themes/BRIGHT';\nimport arcoTheme from './themes/ARCO';\nimport defaultTheme from './themes/DEFAULT';\nimport materialDesignTheme from './themes/SIMPLIFY';\nimport { themes as plugins } from './plugins/themes';\nimport { TableTheme } from './themes/theme';\nimport type { ITableThemeDefine } from './ts-types';\nexport const DARK = new TableTheme(darkTheme, darkTheme);\nexport const BRIGHT = new TableTheme(brightTheme, brightTheme);\nexport const ARCO = new TableTheme(arcoTheme, arcoTheme);\nexport const DEFAULT = new TableTheme(defaultTheme, defaultTheme);\nexport const SIMPLIFY = new TableTheme(materialDesignTheme, materialDesignTheme);\n\nconst builtin: { [key: string]: TableTheme } = {\n DEFAULT,\n SIMPLIFY,\n ARCO,\n DARK,\n BRIGHT\n};\n// let defTheme = DEFAULT;\nexport const theme = { TableTheme };\nexport function of(value: ITableThemeDefine | string | undefined | null): TableTheme | null {\n if (!value) {\n return null;\n }\n if (typeof value === 'string') {\n const t = getIgnoreCase(get(), value);\n if (t) {\n if (t instanceof TableTheme) {\n return t;\n }\n return new TableTheme(t, t);\n }\n return null;\n }\n if (value instanceof TableTheme) {\n return value;\n }\n return new TableTheme(value, value);\n}\n\nexport function get(): { [key: string]: TableTheme } {\n return extend(builtin, plugins);\n}\nexport { ITableThemeDefine };\nexport default {\n DARK,\n BRIGHT,\n ARCO,\n DEFAULT,\n SIMPLIFY,\n theme,\n of,\n get\n};\n"]}
@@ -18,4 +18,4 @@ export class LimitPromiseQueue {
18
18
  };
19
19
  }
20
20
  }
21
- //# sourceMappingURL=LimitPromiseQueue.js.map
21
+ //# sourceMappingURL=LimitPromiseQueue.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["tools/LimitPromiseQueue.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;IAI5B,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IAOD,IAAI,CAAC,MAAW,EAAE,GAAG,GAAU;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5D,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC;iBAAM;gBACL,IAAI,EAAE,CAAC;aACR;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAWD,WAAW,CAAC,MAAgB,EAAE,GAAU,EAAE,OAAY,EAAE,MAAW;QACjE,OAAO,GAAG,EAAE;YAEV,IAAI,CAAC,MAAM,EAAE,CAAC;YAEd,MAAM,CAAC,GAAG,GAAG,CAAC;iBACX,IAAI,CAAC,OAAO,CAAC;iBACb,KAAK,CAAC,MAAM,CAAC;iBACb,OAAO,CAAC,GAAG,EAAE;gBACZ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEvB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;oBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBAC5C,IAAI,EAAE,CAAC;iBACR;YACH,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;IACJ,CAAC;CACF","file":"LimitPromiseQueue.js","sourcesContent":["export class LimitPromiseQueue {\n max: number;\n _count: number;\n _pendingTaskQueue: Function[];\n constructor(max: number) {\n this.max = max;\n this._count = 0;\n this._pendingTaskQueue = [];\n }\n /**\n * 调用器,将异步任务函数和它的参数传入\n * @param caller 异步任务函数,返回Promise的函数\n * @param args 异步任务函数的参数列表\n * @returns {Promise} 返回一个新的Promise\n */\n call(caller: any, ...arg: any[]) {\n return new Promise((resolve, reject) => {\n const task = this._createTask(caller, arg, resolve, reject);\n if (this._count >= this.max) {\n this._pendingTaskQueue.push(task);\n } else {\n task();\n }\n });\n }\n\n /**\n * 创建一个任务\n * @param caller 实际执行的函数\n * @param args 执行函数的参数\n * @param resolve\n * @param reject\n * @returns {Function} 返回一个任务函数\n * @private\n */\n _createTask(caller: Function, arg: any[], resolve: any, reject: any) {\n return () => {\n // 当前请求数量加一\n this._count++;\n // 实际上是在这里调用了异步任务,并将异步任务的返回(resolve和reject)抛给了上层\n caller(...arg)\n .then(resolve)\n .catch(reject)\n .finally(() => {\n console.log('finally');\n // 任务队列的消费区,利用Promise的finally方法,在异步任务结束后,取出下一个任务执行\n this._count--;\n if (this._pendingTaskQueue.length) {\n const task = this._pendingTaskQueue.shift();\n task();\n }\n });\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/LimitPromiseQueue.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;IAI5B,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IAOD,IAAI,CAAC,MAAW,EAAE,GAAG,GAAU;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5D,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC;iBAAM;gBACL,IAAI,EAAE,CAAC;aACR;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAWD,WAAW,CAAC,MAAgB,EAAE,GAAU,EAAE,OAAY,EAAE,MAAW;QACjE,OAAO,GAAG,EAAE;YAEV,IAAI,CAAC,MAAM,EAAE,CAAC;YAEd,MAAM,CAAC,GAAG,GAAG,CAAC;iBACX,IAAI,CAAC,OAAO,CAAC;iBACb,KAAK,CAAC,MAAM,CAAC;iBACb,OAAO,CAAC,GAAG,EAAE;gBACZ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEvB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;oBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBAC5C,IAAI,EAAE,CAAC;iBACR;YACH,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;IACJ,CAAC;CACF","file":"LimitPromiseQueue.js","sourcesContent":["export class LimitPromiseQueue {\n max: number;\n _count: number;\n _pendingTaskQueue: Function[];\n constructor(max: number) {\n this.max = max;\n this._count = 0;\n this._pendingTaskQueue = [];\n }\n /**\n * 调用器,将异步任务函数和它的参数传入\n * @param caller 异步任务函数,返回Promise的函数\n * @param args 异步任务函数的参数列表\n * @returns {Promise} 返回一个新的Promise\n */\n call(caller: any, ...arg: any[]) {\n return new Promise((resolve, reject) => {\n const task = this._createTask(caller, arg, resolve, reject);\n if (this._count >= this.max) {\n this._pendingTaskQueue.push(task);\n } else {\n task();\n }\n });\n }\n\n /**\n * 创建一个任务\n * @param caller 实际执行的函数\n * @param args 执行函数的参数\n * @param resolve\n * @param reject\n * @returns {Function} 返回一个任务函数\n * @private\n */\n _createTask(caller: Function, arg: any[], resolve: any, reject: any) {\n return () => {\n // 当前请求数量加一\n this._count++;\n // 实际上是在这里调用了异步任务,并将异步任务的返回(resolve和reject)抛给了上层\n caller(...arg)\n .then(resolve)\n .catch(reject)\n .finally(() => {\n console.log('finally');\n // 任务队列的消费区,利用Promise的finally方法,在异步任务结束后,取出下一个任务执行\n this._count--;\n if (this._pendingTaskQueue.length) {\n const task = this._pendingTaskQueue.shift();\n task();\n }\n });\n };\n }\n}\n"]}
@@ -75,4 +75,4 @@ export class NumberMap {
75
75
  this._keys.length = 0, this._vals = {}, this._sorted = !1;
76
76
  }
77
77
  }
78
- //# sourceMappingURL=NumberMap.js.map
78
+ //# sourceMappingURL=NumberMap.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["tools/NumberMap.ts"],"names":[],"mappings":"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","file":"NumberMap.js","sourcesContent":["import { isValid } from '@visactor/vutils';\n\nconst indexFirst = (arr: number[], elm: number): number => {\n let low = 0;\n let high = arr.length - 1;\n while (low <= high) {\n const i = Math.floor((low + high) / 2);\n if (arr[i] === elm) {\n return i;\n } else if (arr[i] > elm) {\n high = i - 1;\n } else {\n low = i + 1;\n }\n }\n return high < 0 ? 0 : high;\n};\n\nexport class NumberMap<T> {\n private _keys: number[] = [];\n private _vals: { [key: number]: T } = {};\n private _sorted = false;\n count() {\n return this._keys.length;\n }\n values() {\n return this._vals;\n }\n valueArr() {\n return Object.values(this._vals);\n }\n /**\n * 将sourceIndex位置开始 往后moveCount个值 调整到targetIndex位置处\n * @param sourceIndex\n * @param targetIndex\n * @param moveCount\n */\n adjustOrder(sourceIndex: number, targetIndex: number, moveCount: number) {\n const { _keys: keys } = this;\n if (!this._sorted) {\n keys.sort((a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n this._sorted = true;\n }\n if (sourceIndex > targetIndex) {\n const sourceVals = [];\n for (let i = indexFirst(keys, sourceIndex + moveCount - 1); i >= 0; i--) {\n const key = keys[i];\n if (key >= sourceIndex) {\n sourceVals.push(this.get(key));\n } else if (targetIndex <= key && key < sourceIndex) {\n this.put(key + moveCount, this.get(key));\n } else if (key < targetIndex) {\n break;\n }\n }\n for (let i = 0; i < moveCount; i++) {\n this.put(targetIndex + i, sourceVals[moveCount - 1 - i]);\n }\n }\n const { length } = keys;\n if (sourceIndex < targetIndex) {\n const sourceVals = [];\n for (let i = indexFirst(keys, sourceIndex); i < length; i++) {\n const key = keys[i];\n if (key >= sourceIndex && key < sourceIndex + moveCount) {\n sourceVals.push(this.get(key));\n } else if (sourceIndex + moveCount <= key && key <= targetIndex) {\n this.put(key - moveCount, this.get(key));\n } else if (key > targetIndex) {\n break;\n }\n }\n for (let i = 0; i < moveCount; i++) {\n this.put(targetIndex + i, sourceVals[i]);\n }\n }\n }\n del(key: number): void {\n delete this._vals[key];\n const index = this._keys.indexOf(key);\n if (index !== -1) {\n this._keys.splice(index, 1); // 使用 splice() 方法删除指定索引位置的元素\n }\n }\n put(key: number, value: T): void {\n if (!(key in this._vals)) {\n this._keys.push(key);\n this._sorted = false;\n }\n this._vals[key] = value;\n }\n get(key: number): T | undefined {\n return this._vals[key];\n }\n has(key: number): boolean {\n return isValid(this._vals[key]);\n }\n contain(value: T): boolean {\n return Object.values(this._vals).indexOf(value) >= 0;\n }\n each(keyFrom: number, keyTo: number, fn: (t: T, k: number) => boolean | void): void {\n const { _keys: keys } = this;\n const { length } = keys;\n if (!this._sorted) {\n keys.sort((a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n this._sorted = true;\n }\n\n for (let i = indexFirst(keys, keyFrom); i < length; i++) {\n const key = keys[i];\n if (keyFrom <= key && key <= keyTo) {\n const callRes = fn(this.get(key) as T, key);\n if (callRes === false) {\n break;\n }\n } else if (keyTo < key) {\n return;\n }\n }\n }\n clear() {\n this._keys.length = 0;\n this._vals = {};\n this._sorted = false;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/NumberMap.ts"],"names":[],"mappings":"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","file":"NumberMap.js","sourcesContent":["import { isValid } from '@visactor/vutils';\n\nconst indexFirst = (arr: number[], elm: number): number => {\n let low = 0;\n let high = arr.length - 1;\n while (low <= high) {\n const i = Math.floor((low + high) / 2);\n if (arr[i] === elm) {\n return i;\n } else if (arr[i] > elm) {\n high = i - 1;\n } else {\n low = i + 1;\n }\n }\n return high < 0 ? 0 : high;\n};\n\nexport class NumberMap<T> {\n private _keys: number[] = [];\n private _vals: { [key: number]: T } = {};\n private _sorted = false;\n count() {\n return this._keys.length;\n }\n values() {\n return this._vals;\n }\n valueArr() {\n return Object.values(this._vals);\n }\n /**\n * 将sourceIndex位置开始 往后moveCount个值 调整到targetIndex位置处\n * @param sourceIndex\n * @param targetIndex\n * @param moveCount\n */\n adjustOrder(sourceIndex: number, targetIndex: number, moveCount: number) {\n const { _keys: keys } = this;\n if (!this._sorted) {\n keys.sort((a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n this._sorted = true;\n }\n if (sourceIndex > targetIndex) {\n const sourceVals = [];\n for (let i = indexFirst(keys, sourceIndex + moveCount - 1); i >= 0; i--) {\n const key = keys[i];\n if (key >= sourceIndex) {\n sourceVals.push(this.get(key));\n } else if (targetIndex <= key && key < sourceIndex) {\n this.put(key + moveCount, this.get(key));\n } else if (key < targetIndex) {\n break;\n }\n }\n for (let i = 0; i < moveCount; i++) {\n this.put(targetIndex + i, sourceVals[moveCount - 1 - i]);\n }\n }\n const { length } = keys;\n if (sourceIndex < targetIndex) {\n const sourceVals = [];\n for (let i = indexFirst(keys, sourceIndex); i < length; i++) {\n const key = keys[i];\n if (key >= sourceIndex && key < sourceIndex + moveCount) {\n sourceVals.push(this.get(key));\n } else if (sourceIndex + moveCount <= key && key <= targetIndex) {\n this.put(key - moveCount, this.get(key));\n } else if (key > targetIndex) {\n break;\n }\n }\n for (let i = 0; i < moveCount; i++) {\n this.put(targetIndex + i, sourceVals[i]);\n }\n }\n }\n del(key: number): void {\n delete this._vals[key];\n const index = this._keys.indexOf(key);\n if (index !== -1) {\n this._keys.splice(index, 1); // 使用 splice() 方法删除指定索引位置的元素\n }\n }\n put(key: number, value: T): void {\n if (!(key in this._vals)) {\n this._keys.push(key);\n this._sorted = false;\n }\n this._vals[key] = value;\n }\n get(key: number): T | undefined {\n return this._vals[key];\n }\n has(key: number): boolean {\n return isValid(this._vals[key]);\n }\n contain(value: T): boolean {\n return Object.values(this._vals).indexOf(value) >= 0;\n }\n each(keyFrom: number, keyTo: number, fn: (t: T, k: number) => boolean | void): void {\n const { _keys: keys } = this;\n const { length } = keys;\n if (!this._sorted) {\n keys.sort((a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n this._sorted = true;\n }\n\n for (let i = indexFirst(keys, keyFrom); i < length; i++) {\n const key = keys[i];\n if (keyFrom <= key && key <= keyTo) {\n const callRes = fn(this.get(key) as T, key);\n if (callRes === false) {\n break;\n }\n } else if (keyTo < key) {\n return;\n }\n }\n }\n clear() {\n this._keys.length = 0;\n this._vals = {};\n this._sorted = false;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["tools/Rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,MAAM,OAAO,IAAI;IAEf,YAAY,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc;QAClE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc;QACpE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,CAAC,IAAY;QACnB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,GAAG,CAAC,GAAW;QACjB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC;IACvB,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,MAAM,CAAC,MAAc;QACvB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,MAAc;QACvB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC;IAC3C,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,IAAI;QACF,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IACD,QAAQ,CAAC,OAAa;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,CAAS,EAAE,CAAS;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;CACF","file":"Rect.js","sourcesContent":["import { Bounds } from '@visactor/vutils';\nimport type { RectProps } from '../ts-types';\n\nexport class Rect implements RectProps {\n bounds: Bounds;\n constructor(left: number, top: number, width: number, height: number) {\n this.bounds = new Bounds();\n this.bounds.set(left, top, left + width, top + height);\n }\n\n static bounds(left: number, top: number, right: number, bottom: number): Rect {\n return new Rect(left, top, Math.round(right - left), Math.round(bottom - top));\n }\n\n get left(): number {\n return this.bounds.x1;\n }\n set left(left: number) {\n this.bounds.x1 = left;\n }\n get top(): number {\n return this.bounds.y1;\n }\n set top(top: number) {\n this.bounds.y1 = top;\n }\n get right(): number {\n return this.bounds.x2;\n }\n set right(right: number) {\n this.bounds.x2 = right;\n }\n get bottom(): number {\n return this.bounds.y2;\n }\n set bottom(bottom: number) {\n this.bounds.y2 = bottom;\n }\n get width(): number {\n return this.bounds.width();\n }\n set width(width: number) {\n this.bounds.x2 = this.bounds.x1 + width;\n }\n get height(): number {\n return this.bounds.height();\n }\n set height(height: number) {\n this.bounds.y2 = this.bounds.y1 + height;\n }\n\n offsetLeft(offset: number): void {\n this.bounds.translate(offset, 0);\n }\n offsetTop(offset: number): void {\n this.bounds.translate(0, offset);\n }\n copy(): Rect {\n return new Rect(this.left, this.top, this.width, this.height);\n }\n contains(another: Rect): boolean {\n return this.bounds.encloses(another.bounds);\n }\n inPoint(x: number, y: number): boolean {\n return this.bounds.contains(x, y);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/Rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,MAAM,OAAO,IAAI;IAEf,YAAY,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc;QAClE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc;QACpE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,CAAC,IAAY;QACnB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,GAAG,CAAC,GAAW;QACjB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC;IACvB,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,MAAM,CAAC,MAAc;QACvB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,MAAc;QACvB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC;IAC3C,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,IAAI;QACF,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IACD,QAAQ,CAAC,OAAa;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,CAAS,EAAE,CAAS;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;CACF","file":"Rect.js","sourcesContent":["import { Bounds } from '@visactor/vutils';\nimport type { RectProps } from '../ts-types';\n\nexport class Rect implements RectProps {\n bounds: Bounds;\n constructor(left: number, top: number, width: number, height: number) {\n this.bounds = new Bounds();\n this.bounds.set(left, top, left + width, top + height);\n }\n\n static bounds(left: number, top: number, right: number, bottom: number): Rect {\n return new Rect(left, top, Math.round(right - left), Math.round(bottom - top));\n }\n\n get left(): number {\n return this.bounds.x1;\n }\n set left(left: number) {\n this.bounds.x1 = left;\n }\n get top(): number {\n return this.bounds.y1;\n }\n set top(top: number) {\n this.bounds.y1 = top;\n }\n get right(): number {\n return this.bounds.x2;\n }\n set right(right: number) {\n this.bounds.x2 = right;\n }\n get bottom(): number {\n return this.bounds.y2;\n }\n set bottom(bottom: number) {\n this.bounds.y2 = bottom;\n }\n get width(): number {\n return this.bounds.width();\n }\n set width(width: number) {\n this.bounds.x2 = this.bounds.x1 + width;\n }\n get height(): number {\n return this.bounds.height();\n }\n set height(height: number) {\n this.bounds.y2 = this.bounds.y1 + height;\n }\n\n offsetLeft(offset: number): void {\n this.bounds.translate(offset, 0);\n }\n offsetTop(offset: number): void {\n this.bounds.translate(0, offset);\n }\n copy(): Rect {\n return new Rect(this.left, this.top, this.width, this.height);\n }\n contains(another: Rect): boolean {\n return this.bounds.encloses(another.bounds);\n }\n inPoint(x: number, y: number): boolean {\n return this.bounds.contains(x, y);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["tools/calc.ts"],"names":[],"mappings":"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","file":"calc.js","sourcesContent":["/* Adapted from cheetah-grid by yosuke ota\n *url:https://github.com/future-architect/cheetah-grid/blob/master/packages/cheetah-grid/src/js/internal/calc.ts\n *License: https://github.com/future-architect/cheetah-grid/blob/master/LICENSE\n * @license\n */\n\nimport { isNil, isNumber, isString } from '@visactor/vutils';\nimport { array } from './helper';\n\nconst TYPE_PAREN = 0;\nconst TYPE_UNIT = 1;\nconst TYPE_OPERATOR = 2;\nconst TYPE_NUMBER = 3;\n\nconst NODE_TYPE_UNIT = 10;\nconst NODE_TYPE_BINARY_EXPRESSION = 11;\nconst NODE_TYPE_NUMBER = 12;\n\ntype Ops = '-' | '+' | '*' | '/';\ntype ParenToken = {\n value: '(' | ')';\n type: typeof TYPE_PAREN;\n};\ntype UnitToken = {\n unit: string;\n value: number;\n type: typeof TYPE_UNIT;\n};\ntype OpToken = {\n value: Ops;\n type: typeof TYPE_OPERATOR;\n};\ntype NumToken = {\n value: number;\n type: typeof TYPE_NUMBER;\n};\ntype Token = ParenToken | UnitToken | OpToken | NumToken;\ntype UnitNode = {\n nodeType: typeof NODE_TYPE_UNIT;\n unit: string;\n value: number;\n};\ntype BinaryNode = {\n nodeType: typeof NODE_TYPE_BINARY_EXPRESSION;\n left: Node;\n op: OpToken;\n right: Node;\n};\ntype NumNode = {\n nodeType: typeof NODE_TYPE_NUMBER;\n value: number;\n};\ntype Node = UnitNode | BinaryNode | NumNode;\n\nconst TABULATION = 0x09;\nconst CARRIAGE_RETURN = 0x0d;\nconst LINE_FEED = 0x0a;\nconst FORM_FEED = 0x0c;\nconst SPACE = 0x20;\nconst PERCENT = 0x25;\nconst FULL_STOP = 0x2e;\nconst DIGIT_0 = 0x30;\nconst DIGIT_9 = 0x39;\nconst LATIN_CAPITAL_A = 0x41;\nconst LATIN_CAPITAL_Z = 0x5a;\nconst LATIN_SMALL_A = 0x61;\nconst LATIN_SMALL_Z = 0x7a;\nfunction isUpperLetter(cp: number): boolean {\n return cp >= LATIN_CAPITAL_A && cp <= LATIN_CAPITAL_Z;\n}\nfunction isLowerLetter(cp: number): boolean {\n return cp >= LATIN_SMALL_A && cp <= LATIN_SMALL_Z;\n}\nfunction isLetter(cp: number): boolean {\n return isLowerLetter(cp) || isUpperLetter(cp);\n}\nfunction isWhitespace(cp: number): boolean {\n return cp === TABULATION || cp === LINE_FEED || cp === FORM_FEED || cp === CARRIAGE_RETURN || cp === SPACE;\n}\nfunction isDigit(cp: number): boolean {\n return cp >= DIGIT_0 && cp <= DIGIT_9;\n}\nfunction isDot(cp: number): boolean {\n return cp === FULL_STOP;\n}\nfunction isUnit(cp: number): boolean {\n return isLetter(cp) || cp === PERCENT;\n}\n\nfunction createError(calc: string): Error {\n return new Error(`calc parse error: ${calc}`);\n}\n\n/**\n * tokenize\n * @param {string} calc calc expression\n * @returns {Array} tokens\n * @private\n */\nfunction tokenize(calc: string): Token[] {\n const exp = calc.replace(/calc\\(/g, '(').trim();\n\n const tokens: Token[] = [];\n const len = exp.length;\n for (let index = 0; index < len; index++) {\n const c = exp[index];\n const cp = c.charCodeAt(0);\n if (c === '(' || c === ')') {\n tokens.push({ value: c, type: TYPE_PAREN });\n } else if (c === '*' || c === '/') {\n tokens.push({ value: c, type: TYPE_OPERATOR });\n } else if (c === '+' || c === '-') {\n index = parseSign(c, index + 1) - 1;\n } else if (isDigit(cp) || isDot(cp)) {\n index = parseNum(c, index + 1) - 1;\n } else if (isWhitespace(cp)) {\n // skip\n } else {\n throw createError(calc);\n }\n }\n\n function parseSign(sign: '+' | '-', start: number): number {\n if (start < len) {\n const c = exp[start];\n const cp = c.charCodeAt(0);\n if (isDigit(cp) || isDot(cp)) {\n return parseNum(sign + c, start + 1);\n }\n }\n tokens.push({ value: sign, type: TYPE_OPERATOR });\n return start;\n }\n function parseNum(num: string, start: number): number {\n let index = start;\n for (; index < len; index++) {\n const c = exp[index];\n const cp = c.charCodeAt(0);\n if (isDigit(cp)) {\n num += c;\n } else if (c === '.') {\n if (num.indexOf('.') >= 0) {\n throw createError(calc);\n }\n num += c;\n } else if (isUnit(cp)) {\n return parseUnit(num, c, index + 1);\n } else {\n break;\n }\n }\n if (num === '.') {\n throw createError(calc);\n }\n tokens.push({ value: parseFloat(num), type: TYPE_NUMBER });\n return index;\n }\n function parseUnit(num: string, unit: string, start: number): number {\n let index = start;\n for (; index < len; index++) {\n const c = exp[index];\n const cp = c.charCodeAt(0);\n if (isUnit(cp)) {\n unit += c;\n } else {\n break;\n }\n }\n tokens.push({ value: parseFloat(num), unit, type: TYPE_UNIT });\n return index;\n }\n return tokens;\n}\n\nconst PRECEDENCE = {\n '*': 3,\n '/': 3,\n '+': 2,\n '-': 2\n};\n\nfunction lex(tokens: Token[], calc: string): Node {\n function buildBinaryExpNode(stack: (Node | OpToken)[]): BinaryNode {\n const right = stack.pop() as Node;\n const op = stack.pop() as OpToken;\n const left = stack.pop() as Node;\n\n if (!left || !left.nodeType || !op || op.type !== TYPE_OPERATOR || !right || !right.nodeType) {\n throw createError(calc);\n }\n return {\n nodeType: NODE_TYPE_BINARY_EXPRESSION,\n left,\n op,\n right\n };\n }\n\n const stack: (Node | OpToken)[] = [];\n\n while (tokens.length) {\n const token = tokens.shift() as Token;\n if (token.type === TYPE_PAREN && token.value === '(') {\n let deep = 0;\n const closeIndex = array.findIndex(tokens, t => {\n if (t.type === TYPE_PAREN && t.value === '(') {\n deep++;\n } else if (t.type === TYPE_PAREN && t.value === ')') {\n if (!deep) {\n return true;\n }\n deep--;\n }\n return false;\n });\n if (closeIndex === -1) {\n throw createError(calc);\n }\n\n stack.push(lex(tokens.splice(0, closeIndex), calc));\n tokens.shift();\n } else if (token.type === TYPE_OPERATOR) {\n if (stack.length >= 3) {\n const beforeOp = (stack[stack.length - 2] as OpToken).value;\n if (PRECEDENCE[token.value] <= PRECEDENCE[beforeOp]) {\n stack.push(buildBinaryExpNode(stack));\n }\n }\n stack.push(token);\n } else if (token.type === TYPE_UNIT) {\n const { value: num, unit } = token;\n stack.push({\n nodeType: NODE_TYPE_UNIT,\n value: num,\n unit\n });\n } else if (token.type === TYPE_NUMBER) {\n stack.push({\n nodeType: NODE_TYPE_NUMBER,\n value: token.value\n });\n }\n }\n while (stack.length > 1) {\n stack.push(buildBinaryExpNode(stack));\n }\n return stack[0] as Node;\n}\n\nfunction parse(calcStr: string): Node {\n const tokens = tokenize(calcStr);\n return lex(tokens, calcStr);\n}\n\nfunction calcNode(node: Node, context: CalcContext): number {\n if (node.nodeType === NODE_TYPE_BINARY_EXPRESSION) {\n const left = calcNode(node.left, context);\n const right = calcNode(node.right, context);\n\n switch (node.op.value) {\n case '+':\n return left + right;\n case '-':\n return left - right;\n case '*':\n return left * right;\n case '/':\n return left / right;\n default:\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`calc error. unknown operator: ${node.op.value}`);\n }\n } else if (node.nodeType === NODE_TYPE_UNIT) {\n switch (node.unit) {\n case '%':\n return (node.value * context.full) / 100;\n // case 'em':\n // return node.value * context.em;\n case 'px':\n return node.value;\n default:\n throw new Error(`calc error. unknown unit: ${node.unit}`);\n }\n } else if (node.nodeType === NODE_TYPE_NUMBER) {\n return node.value;\n }\n throw new Error('calc error.');\n}\n\nfunction toPxInternal(value: string, context: CalcContext): number {\n const ast = parse(value);\n return calcNode(ast, context);\n}\n\ntype CalcContext = {\n full: number;\n // em: number;\n};\n\nexport function toPx(value: string | number, context: CalcContext): number {\n if (typeof value === 'string') {\n return toPxInternal(value.trim(), context);\n }\n return value - 0;\n}\n\nexport type IPercent = `${number}%`;\n\nexport function couldBeValidNumber(v: any) {\n if (isNil(v)) {\n return false;\n }\n if (isNumber(v)) {\n return true;\n }\n // eslint-disable-next-line no-self-compare\n return +v === +v;\n}\n\nexport function isPercent(v: any): v is IPercent {\n if (!isString(v)) {\n return false;\n }\n if (!v.endsWith('%')) {\n return false;\n }\n return couldBeValidNumber(v.substring(0, v.length - 1));\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/calc.ts"],"names":[],"mappings":"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","file":"calc.js","sourcesContent":["/* Adapted from cheetah-grid by yosuke ota\n *url:https://github.com/future-architect/cheetah-grid/blob/master/packages/cheetah-grid/src/js/internal/calc.ts\n *License: https://github.com/future-architect/cheetah-grid/blob/master/LICENSE\n * @license\n */\n\nimport { isNil, isNumber, isString } from '@visactor/vutils';\nimport { array } from './helper';\n\nconst TYPE_PAREN = 0;\nconst TYPE_UNIT = 1;\nconst TYPE_OPERATOR = 2;\nconst TYPE_NUMBER = 3;\n\nconst NODE_TYPE_UNIT = 10;\nconst NODE_TYPE_BINARY_EXPRESSION = 11;\nconst NODE_TYPE_NUMBER = 12;\n\ntype Ops = '-' | '+' | '*' | '/';\ntype ParenToken = {\n value: '(' | ')';\n type: typeof TYPE_PAREN;\n};\ntype UnitToken = {\n unit: string;\n value: number;\n type: typeof TYPE_UNIT;\n};\ntype OpToken = {\n value: Ops;\n type: typeof TYPE_OPERATOR;\n};\ntype NumToken = {\n value: number;\n type: typeof TYPE_NUMBER;\n};\ntype Token = ParenToken | UnitToken | OpToken | NumToken;\ntype UnitNode = {\n nodeType: typeof NODE_TYPE_UNIT;\n unit: string;\n value: number;\n};\ntype BinaryNode = {\n nodeType: typeof NODE_TYPE_BINARY_EXPRESSION;\n left: Node;\n op: OpToken;\n right: Node;\n};\ntype NumNode = {\n nodeType: typeof NODE_TYPE_NUMBER;\n value: number;\n};\ntype Node = UnitNode | BinaryNode | NumNode;\n\nconst TABULATION = 0x09;\nconst CARRIAGE_RETURN = 0x0d;\nconst LINE_FEED = 0x0a;\nconst FORM_FEED = 0x0c;\nconst SPACE = 0x20;\nconst PERCENT = 0x25;\nconst FULL_STOP = 0x2e;\nconst DIGIT_0 = 0x30;\nconst DIGIT_9 = 0x39;\nconst LATIN_CAPITAL_A = 0x41;\nconst LATIN_CAPITAL_Z = 0x5a;\nconst LATIN_SMALL_A = 0x61;\nconst LATIN_SMALL_Z = 0x7a;\nfunction isUpperLetter(cp: number): boolean {\n return cp >= LATIN_CAPITAL_A && cp <= LATIN_CAPITAL_Z;\n}\nfunction isLowerLetter(cp: number): boolean {\n return cp >= LATIN_SMALL_A && cp <= LATIN_SMALL_Z;\n}\nfunction isLetter(cp: number): boolean {\n return isLowerLetter(cp) || isUpperLetter(cp);\n}\nfunction isWhitespace(cp: number): boolean {\n return cp === TABULATION || cp === LINE_FEED || cp === FORM_FEED || cp === CARRIAGE_RETURN || cp === SPACE;\n}\nfunction isDigit(cp: number): boolean {\n return cp >= DIGIT_0 && cp <= DIGIT_9;\n}\nfunction isDot(cp: number): boolean {\n return cp === FULL_STOP;\n}\nfunction isUnit(cp: number): boolean {\n return isLetter(cp) || cp === PERCENT;\n}\n\nfunction createError(calc: string): Error {\n return new Error(`calc parse error: ${calc}`);\n}\n\n/**\n * tokenize\n * @param {string} calc calc expression\n * @returns {Array} tokens\n * @private\n */\nfunction tokenize(calc: string): Token[] {\n const exp = calc.replace(/calc\\(/g, '(').trim();\n\n const tokens: Token[] = [];\n const len = exp.length;\n for (let index = 0; index < len; index++) {\n const c = exp[index];\n const cp = c.charCodeAt(0);\n if (c === '(' || c === ')') {\n tokens.push({ value: c, type: TYPE_PAREN });\n } else if (c === '*' || c === '/') {\n tokens.push({ value: c, type: TYPE_OPERATOR });\n } else if (c === '+' || c === '-') {\n index = parseSign(c, index + 1) - 1;\n } else if (isDigit(cp) || isDot(cp)) {\n index = parseNum(c, index + 1) - 1;\n } else if (isWhitespace(cp)) {\n // skip\n } else {\n throw createError(calc);\n }\n }\n\n function parseSign(sign: '+' | '-', start: number): number {\n if (start < len) {\n const c = exp[start];\n const cp = c.charCodeAt(0);\n if (isDigit(cp) || isDot(cp)) {\n return parseNum(sign + c, start + 1);\n }\n }\n tokens.push({ value: sign, type: TYPE_OPERATOR });\n return start;\n }\n function parseNum(num: string, start: number): number {\n let index = start;\n for (; index < len; index++) {\n const c = exp[index];\n const cp = c.charCodeAt(0);\n if (isDigit(cp)) {\n num += c;\n } else if (c === '.') {\n if (num.indexOf('.') >= 0) {\n throw createError(calc);\n }\n num += c;\n } else if (isUnit(cp)) {\n return parseUnit(num, c, index + 1);\n } else {\n break;\n }\n }\n if (num === '.') {\n throw createError(calc);\n }\n tokens.push({ value: parseFloat(num), type: TYPE_NUMBER });\n return index;\n }\n function parseUnit(num: string, unit: string, start: number): number {\n let index = start;\n for (; index < len; index++) {\n const c = exp[index];\n const cp = c.charCodeAt(0);\n if (isUnit(cp)) {\n unit += c;\n } else {\n break;\n }\n }\n tokens.push({ value: parseFloat(num), unit, type: TYPE_UNIT });\n return index;\n }\n return tokens;\n}\n\nconst PRECEDENCE = {\n '*': 3,\n '/': 3,\n '+': 2,\n '-': 2\n};\n\nfunction lex(tokens: Token[], calc: string): Node {\n function buildBinaryExpNode(stack: (Node | OpToken)[]): BinaryNode {\n const right = stack.pop() as Node;\n const op = stack.pop() as OpToken;\n const left = stack.pop() as Node;\n\n if (!left || !left.nodeType || !op || op.type !== TYPE_OPERATOR || !right || !right.nodeType) {\n throw createError(calc);\n }\n return {\n nodeType: NODE_TYPE_BINARY_EXPRESSION,\n left,\n op,\n right\n };\n }\n\n const stack: (Node | OpToken)[] = [];\n\n while (tokens.length) {\n const token = tokens.shift() as Token;\n if (token.type === TYPE_PAREN && token.value === '(') {\n let deep = 0;\n const closeIndex = array.findIndex(tokens, t => {\n if (t.type === TYPE_PAREN && t.value === '(') {\n deep++;\n } else if (t.type === TYPE_PAREN && t.value === ')') {\n if (!deep) {\n return true;\n }\n deep--;\n }\n return false;\n });\n if (closeIndex === -1) {\n throw createError(calc);\n }\n\n stack.push(lex(tokens.splice(0, closeIndex), calc));\n tokens.shift();\n } else if (token.type === TYPE_OPERATOR) {\n if (stack.length >= 3) {\n const beforeOp = (stack[stack.length - 2] as OpToken).value;\n if (PRECEDENCE[token.value] <= PRECEDENCE[beforeOp]) {\n stack.push(buildBinaryExpNode(stack));\n }\n }\n stack.push(token);\n } else if (token.type === TYPE_UNIT) {\n const { value: num, unit } = token;\n stack.push({\n nodeType: NODE_TYPE_UNIT,\n value: num,\n unit\n });\n } else if (token.type === TYPE_NUMBER) {\n stack.push({\n nodeType: NODE_TYPE_NUMBER,\n value: token.value\n });\n }\n }\n while (stack.length > 1) {\n stack.push(buildBinaryExpNode(stack));\n }\n return stack[0] as Node;\n}\n\nfunction parse(calcStr: string): Node {\n const tokens = tokenize(calcStr);\n return lex(tokens, calcStr);\n}\n\nfunction calcNode(node: Node, context: CalcContext): number {\n if (node.nodeType === NODE_TYPE_BINARY_EXPRESSION) {\n const left = calcNode(node.left, context);\n const right = calcNode(node.right, context);\n\n switch (node.op.value) {\n case '+':\n return left + right;\n case '-':\n return left - right;\n case '*':\n return left * right;\n case '/':\n return left / right;\n default:\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`calc error. unknown operator: ${node.op.value}`);\n }\n } else if (node.nodeType === NODE_TYPE_UNIT) {\n switch (node.unit) {\n case '%':\n return (node.value * context.full) / 100;\n // case 'em':\n // return node.value * context.em;\n case 'px':\n return node.value;\n default:\n throw new Error(`calc error. unknown unit: ${node.unit}`);\n }\n } else if (node.nodeType === NODE_TYPE_NUMBER) {\n return node.value;\n }\n throw new Error('calc error.');\n}\n\nfunction toPxInternal(value: string, context: CalcContext): number {\n const ast = parse(value);\n return calcNode(ast, context);\n}\n\ntype CalcContext = {\n full: number;\n // em: number;\n};\n\nexport function toPx(value: string | number, context: CalcContext): number {\n if (typeof value === 'string') {\n return toPxInternal(value.trim(), context);\n }\n return value - 0;\n}\n\nexport type IPercent = `${number}%`;\n\nexport function couldBeValidNumber(v: any) {\n if (isNil(v)) {\n return false;\n }\n if (isNumber(v)) {\n return true;\n }\n // eslint-disable-next-line no-self-compare\n return +v === +v;\n}\n\nexport function isPercent(v: any): v is IPercent {\n if (!isString(v)) {\n return false;\n }\n if (!v.endsWith('%')) {\n return false;\n }\n return couldBeValidNumber(v.substring(0, v.length - 1));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["tools/debounce.ts"],"names":[],"mappings":"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","file":"debounce.js","sourcesContent":["import { isObject } from './isx';\n\nexport function debounce(func: Function, wait?: number, options?: any) {\n let lastArgs: any;\n let lastThis: any;\n let maxWait: number; // 最长等待时间\n let result: any; // 存储 func 函数的返回值\n let timerId: number | undefined; // 定时器 id\n let lastCallTime: number; // 最近一次 执行 debounced 函数时的时间\n\n // 最近一次执行 func 时的时间戳\n let lastInvokeTime = 0;\n // options 是否 传入了 maxWait\n let maxing = false;\n // 是否在延迟开始前调用函数\n let leading = false;\n // 是否在延迟结束后调用函数\n let trailing = true;\n\n const useRAF = !wait && wait !== 0 && typeof requestAnimationFrame === 'function';\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n\n wait = +(wait as number) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n\n maxing = 'maxWait' in options;\n if (maxing) {\n maxWait = Math.max(+options.maxWait || 0, wait);\n }\n\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time: number) {\n const args = lastArgs;\n const thisArg = lastThis;\n\n lastThis = undefined;\n lastArgs = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n // 开启定时器\n function startTimer(pendingFunc: any, wait: number) {\n if (useRAF) {\n return requestAnimationFrame(pendingFunc);\n }\n return setTimeout(pendingFunc, wait);\n }\n\n // 清除定时器\n // function cancelTimer(id: number) {\n // if (useRAF) {\n // return cancelAnimationFrame(id);\n // }\n // clearTimeout(id);\n // }\n\n // 在延迟开始前调用\n function leadingEdge(time: number) {\n // 记录 函数被调用时 的时间戳\n lastInvokeTime = time;\n //@ts-ignore\n timerId = startTimer(timerExpired, wait);\n return leading ? invokeFunc(time) : result;\n }\n\n // 在延迟结束后调用\n function trailingEdge(time: number) {\n timerId = undefined;\n\n // lastArgs 在 debounced 函数执行时赋值\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n // 重置参数和作用域\n lastThis = undefined;\n lastArgs = undefined;\n return result;\n }\n\n function remainingWait(time: number) {\n // 计算 time 与最近一次调用 debounced 函数的时间差\n const timeSinceLastCall = time - lastCallTime;\n // 计算 time 与最近一次调用 func 函数的时间差\n const timeSinceLastInvoke = time - lastInvokeTime;\n // 用 wait 减去已经等待的时间\n const timeWaiting = wait && -timeSinceLastCall;\n\n return maxing ? Math.min(timeWaiting as number, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n // 是否可以执行函数\n function shouldInvoke(time: number) {\n // 计算 time 与最近一次调用 debounced 函数的时间差\n const timeSinceLastCall = time - lastCallTime;\n // 计算 time 与最近一次调用 func 函数的时间差\n const timeSinceLastInvoke = time - lastInvokeTime;\n\n return (\n // 是不是第一次执行 debouned 函数\n lastCallTime === undefined ||\n timeSinceLastCall >= (wait as number) ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait)\n );\n }\n\n // 封装执行函数,用于 wait 延迟结束后执行\n function timerExpired() {\n const time = Date.now();\n // 根据时间来判断是否可以执行 func 函数\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // 重新计算时间,重新建一个定时器\n // @ts-ignore\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n\n function debounced(this: any, ...args: any) {\n const time = Date.now();\n const isInvoking = shouldInvoke(time);\n\n lastArgs = args;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n // 第一次执行时\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // @ts-ignore\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n // 因为 trailingEdge 函数内部会执行 timerId = undefined\n // trailingEdge 函数执行之后,又触发了 debounced\n if (timerId === undefined) {\n // @ts-ignore\n timerId = startTimer(timerExpired, wait);\n }\n\n return result;\n }\n\n return debounced;\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/debounce.ts"],"names":[],"mappings":"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","file":"debounce.js","sourcesContent":["import { isObject } from './isx';\n\nexport function debounce(func: Function, wait?: number, options?: any) {\n let lastArgs: any;\n let lastThis: any;\n let maxWait: number; // 最长等待时间\n let result: any; // 存储 func 函数的返回值\n let timerId: number | undefined; // 定时器 id\n let lastCallTime: number; // 最近一次 执行 debounced 函数时的时间\n\n // 最近一次执行 func 时的时间戳\n let lastInvokeTime = 0;\n // options 是否 传入了 maxWait\n let maxing = false;\n // 是否在延迟开始前调用函数\n let leading = false;\n // 是否在延迟结束后调用函数\n let trailing = true;\n\n const useRAF = !wait && wait !== 0 && typeof requestAnimationFrame === 'function';\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n\n wait = +(wait as number) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n\n maxing = 'maxWait' in options;\n if (maxing) {\n maxWait = Math.max(+options.maxWait || 0, wait);\n }\n\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time: number) {\n const args = lastArgs;\n const thisArg = lastThis;\n\n lastThis = undefined;\n lastArgs = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n // 开启定时器\n function startTimer(pendingFunc: any, wait: number) {\n if (useRAF) {\n return requestAnimationFrame(pendingFunc);\n }\n return setTimeout(pendingFunc, wait);\n }\n\n // 清除定时器\n // function cancelTimer(id: number) {\n // if (useRAF) {\n // return cancelAnimationFrame(id);\n // }\n // clearTimeout(id);\n // }\n\n // 在延迟开始前调用\n function leadingEdge(time: number) {\n // 记录 函数被调用时 的时间戳\n lastInvokeTime = time;\n //@ts-ignore\n timerId = startTimer(timerExpired, wait);\n return leading ? invokeFunc(time) : result;\n }\n\n // 在延迟结束后调用\n function trailingEdge(time: number) {\n timerId = undefined;\n\n // lastArgs 在 debounced 函数执行时赋值\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n // 重置参数和作用域\n lastThis = undefined;\n lastArgs = undefined;\n return result;\n }\n\n function remainingWait(time: number) {\n // 计算 time 与最近一次调用 debounced 函数的时间差\n const timeSinceLastCall = time - lastCallTime;\n // 计算 time 与最近一次调用 func 函数的时间差\n const timeSinceLastInvoke = time - lastInvokeTime;\n // 用 wait 减去已经等待的时间\n const timeWaiting = wait && -timeSinceLastCall;\n\n return maxing ? Math.min(timeWaiting as number, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n // 是否可以执行函数\n function shouldInvoke(time: number) {\n // 计算 time 与最近一次调用 debounced 函数的时间差\n const timeSinceLastCall = time - lastCallTime;\n // 计算 time 与最近一次调用 func 函数的时间差\n const timeSinceLastInvoke = time - lastInvokeTime;\n\n return (\n // 是不是第一次执行 debouned 函数\n lastCallTime === undefined ||\n timeSinceLastCall >= (wait as number) ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait)\n );\n }\n\n // 封装执行函数,用于 wait 延迟结束后执行\n function timerExpired() {\n const time = Date.now();\n // 根据时间来判断是否可以执行 func 函数\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // 重新计算时间,重新建一个定时器\n // @ts-ignore\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n\n function debounced(this: any, ...args: any) {\n const time = Date.now();\n const isInvoking = shouldInvoke(time);\n\n lastArgs = args;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n // 第一次执行时\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // @ts-ignore\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n // 因为 trailingEdge 函数内部会执行 timerId = undefined\n // trailingEdge 函数执行之后,又触发了 debounced\n if (timerId === undefined) {\n // @ts-ignore\n timerId = startTimer(timerExpired, wait);\n }\n\n return result;\n }\n\n return debounced;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["tools/diff-cell.ts"],"names":[],"mappings":"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","file":"diff-cell.js","sourcesContent":["import type { PivotHeaderLayoutMap } from '../layout/pivot-header-layout';\nimport type { CellAddress } from '../ts-types';\nimport type { LayoutObjectId } from '../ts-types/base-table';\n\nexport function diffCellAddress(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n layout: PivotHeaderLayoutMap\n) {\n const columnHeaderStart = layout.columnHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositions = [];\n const removeCellPositions = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositions.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col, row: columnHeaderStart + i }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositions.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositions = [];\n updateCellPositions.push(parentCellAddress);\n while (parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositions.push(parentCellAddress);\n }\n }\n return {\n addCellPositions,\n removeCellPositions,\n updateCellPositions\n };\n}\n\n// find diff between two arrays\nexport function diffCellIndices(oldIndexedData: (number | number[])[], currentIndexedData: (number | number[])[]) {\n const add = [];\n const remove = [];\n // find removed indices\n for (let i = 0; i < oldIndexedData.length; i++) {\n let removed = true;\n for (let j = 0; j < currentIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[i], currentIndexedData[j])) {\n removed = false;\n break;\n }\n }\n if (removed) {\n remove.push(i);\n }\n }\n\n // find added indices\n for (let i = 0; i < currentIndexedData.length; i++) {\n let added = true;\n for (let j = 0; j < oldIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[j], currentIndexedData[i])) {\n added = false;\n break;\n }\n }\n if (added) {\n add.push(i);\n }\n }\n return { add, remove };\n}\n\nfunction checkIndex(oldIndex: number | number[], newIndex: number | number[]): boolean {\n if (typeof oldIndex !== typeof newIndex) {\n return false;\n }\n if (typeof oldIndex === 'number' && typeof newIndex === 'number' && oldIndex !== newIndex) {\n return false;\n }\n if ((oldIndex as number[]).length !== (newIndex as number[]).length) {\n return false;\n }\n for (let i = 0; i < (oldIndex as number[]).length; i++) {\n if (oldIndex[i] !== newIndex[i]) {\n return false;\n }\n }\n return true;\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/diff-cell.ts"],"names":[],"mappings":"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","file":"diff-cell.js","sourcesContent":["import type { PivotHeaderLayoutMap } from '../layout/pivot-header-layout';\nimport type { CellAddress } from '../ts-types';\nimport type { LayoutObjectId } from '../ts-types/base-table';\n\nexport function diffCellAddress(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n layout: PivotHeaderLayoutMap\n) {\n const columnHeaderStart = layout.columnHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositions = [];\n const removeCellPositions = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositions.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col, row: columnHeaderStart + i }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositions.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositions = [];\n updateCellPositions.push(parentCellAddress);\n while (parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositions.push(parentCellAddress);\n }\n }\n return {\n addCellPositions,\n removeCellPositions,\n updateCellPositions\n };\n}\n\n// find diff between two arrays\nexport function diffCellIndices(oldIndexedData: (number | number[])[], currentIndexedData: (number | number[])[]) {\n const add = [];\n const remove = [];\n // find removed indices\n for (let i = 0; i < oldIndexedData.length; i++) {\n let removed = true;\n for (let j = 0; j < currentIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[i], currentIndexedData[j])) {\n removed = false;\n break;\n }\n }\n if (removed) {\n remove.push(i);\n }\n }\n\n // find added indices\n for (let i = 0; i < currentIndexedData.length; i++) {\n let added = true;\n for (let j = 0; j < oldIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[j], currentIndexedData[i])) {\n added = false;\n break;\n }\n }\n if (added) {\n add.push(i);\n }\n }\n return { add, remove };\n}\n\nfunction checkIndex(oldIndex: number | number[], newIndex: number | number[]): boolean {\n if (typeof oldIndex !== typeof newIndex) {\n return false;\n }\n if (typeof oldIndex === 'number' && typeof newIndex === 'number' && oldIndex !== newIndex) {\n return false;\n }\n if ((oldIndex as number[]).length !== (newIndex as number[]).length) {\n return false;\n }\n for (let i = 0; i < (oldIndex as number[]).length; i++) {\n if (oldIndex[i] !== newIndex[i]) {\n return false;\n }\n }\n return true;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["tools/dom.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,UAAqB;IAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,UAAU,EAAE;QACd,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;KACtC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","file":"dom.js","sourcesContent":["export function createElement(tagName: string, classNames?: string[]): HTMLElement {\n const element = document.createElement(tagName);\n if (classNames) {\n element.classList.add(...classNames);\n }\n return element;\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/dom.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,UAAqB;IAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,UAAU,EAAE;QACd,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;KACtC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","file":"dom.js","sourcesContent":["export function createElement(tagName: string, classNames?: string[]): HTMLElement {\n const element = document.createElement(tagName);\n if (classNames) {\n element.classList.add(...classNames);\n }\n return element;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["tools/env.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAG;IAEP,MAAM,KAAK,IAAI;QACpB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YACd,GAAG,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;SAC3B;QACD,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IACM,MAAM,KAAK,IAAI,CAAC,IAAa;QAClC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC;IAYD,MAAM,CAAC,oBAAoB,CAAC,IAAmB;QAC7C,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAmB;QAC1C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,mBAAmB;QACxB,IAAI,GAAG,CAAC,YAAY,EAAE;YACpB,OAAO,GAAG,CAAC,YAAY,CAAC;SACzB;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAC1E;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,6BAA6B,CAAC,IAAmB;QACtD,GAAG,CAAC,qBAAqB,GAAG,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,wBAAwB;QAC7B,IAAI,GAAG,CAAC,qBAAqB,EAAE;YAC7B,OAAO,GAAG,CAAC,qBAAqB,CAAC;SAClC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,4BAA4B,CAAC,IAAmB;QACrD,GAAG,CAAC,oBAAoB,GAAG,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,IAAI,GAAG,CAAC,oBAAoB,EAAE;YAC5B,OAAO,GAAG,CAAC,oBAAoB,CAAC;SACjC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;;AAhDM,OAAG,GAAG,CAAC,CAAC;AAwDjB,SAAS,WAAW;IAClB,IAAI,IAAI,GAAY,SAAS,CAAC;IAC9B,IAAI;QACF,IAAK,MAAc,CAAC,IAAI,KAAK,MAAM,EAAE;YACnC,IAAI,GAAG,MAAM,CAAC;SACf;aAAM,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC/D,IAAI,GAAG,SAAS,CAAC;SAClB;aAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACxC,IAAI,GAAG,MAAM,CAAC;SACf;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,MAAM,CAAC;KACf;IACD,OAAO,IAAI,CAAC;AACd,CAAC","file":"env.js","sourcesContent":["export type EnvMode = 'browser' | 'node' | 'worker' | 'miniApp' | 'desktop-miniApp';\nexport type LooseFunction = (...args: any) => any;\n\nexport class Env {\n static _mode: EnvMode;\n public static get mode() {\n if (!Env._mode) {\n Env._mode = defaultMode();\n }\n return Env._mode;\n }\n public static set mode(mode: EnvMode) {\n Env._mode = mode;\n }\n\n static dpr = 0;\n\n static CreateCanvas?: LooseFunction;\n\n static LoadImage?: LooseFunction;\n\n static RequestAnimationFrame?: LooseFunction;\n\n static CancelAnimationFrame?: LooseFunction;\n\n static RegisterCreateCanvas(func: LooseFunction) {\n Env.CreateCanvas = func;\n }\n\n static RegisterLoadImage(func: LooseFunction) {\n Env.LoadImage = func;\n }\n\n static GetCreateCanvasFunc(): LooseFunction | undefined {\n if (Env.CreateCanvas) {\n return Env.CreateCanvas;\n }\n if (Env.mode === 'worker') {\n return (width = 200, height = 200) => new OffscreenCanvas(width, height);\n }\n return undefined;\n }\n\n static RegisterRequestAnimationFrame(func: LooseFunction) {\n Env.RequestAnimationFrame = func();\n }\n\n static GetRequestAnimationFrame() {\n if (Env.RequestAnimationFrame) {\n return Env.RequestAnimationFrame;\n }\n return undefined;\n }\n\n static RegisterCancelAnimationFrame(func: LooseFunction) {\n Env.CancelAnimationFrame = func();\n }\n\n static GetCancelAnimationFrame() {\n if (Env.CancelAnimationFrame) {\n return Env.CancelAnimationFrame;\n }\n return undefined;\n }\n}\n\n/**\n *\n * 这个默认的判断方法并不能区分出不同的环境,所以这里采用是否判断\n * 满足条件为 'browser',不满足则为 'node'\n */\nfunction defaultMode(): EnvMode {\n let mode: EnvMode = 'browser';\n try {\n if ((window as any).type === 'node') {\n mode = 'node';\n } else if (typeof window !== 'undefined' && !window.performance) {\n mode = 'miniApp';\n } else if (typeof window === 'undefined') {\n mode = 'node';\n }\n } catch (err) {\n mode = 'node';\n }\n return mode;\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/env.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAG;IAEP,MAAM,KAAK,IAAI;QACpB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YACd,GAAG,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;SAC3B;QACD,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IACM,MAAM,KAAK,IAAI,CAAC,IAAa;QAClC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC;IAYD,MAAM,CAAC,oBAAoB,CAAC,IAAmB;QAC7C,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAmB;QAC1C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,mBAAmB;QACxB,IAAI,GAAG,CAAC,YAAY,EAAE;YACpB,OAAO,GAAG,CAAC,YAAY,CAAC;SACzB;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAC1E;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,6BAA6B,CAAC,IAAmB;QACtD,GAAG,CAAC,qBAAqB,GAAG,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,wBAAwB;QAC7B,IAAI,GAAG,CAAC,qBAAqB,EAAE;YAC7B,OAAO,GAAG,CAAC,qBAAqB,CAAC;SAClC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,4BAA4B,CAAC,IAAmB;QACrD,GAAG,CAAC,oBAAoB,GAAG,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,IAAI,GAAG,CAAC,oBAAoB,EAAE;YAC5B,OAAO,GAAG,CAAC,oBAAoB,CAAC;SACjC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;;AAhDM,OAAG,GAAG,CAAC,CAAC;AAwDjB,SAAS,WAAW;IAClB,IAAI,IAAI,GAAY,SAAS,CAAC;IAC9B,IAAI;QACF,IAAK,MAAc,CAAC,IAAI,KAAK,MAAM,EAAE;YACnC,IAAI,GAAG,MAAM,CAAC;SACf;aAAM,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC/D,IAAI,GAAG,SAAS,CAAC;SAClB;aAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACxC,IAAI,GAAG,MAAM,CAAC;SACf;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,MAAM,CAAC;KACf;IACD,OAAO,IAAI,CAAC;AACd,CAAC","file":"env.js","sourcesContent":["export type EnvMode = 'browser' | 'node' | 'worker' | 'miniApp' | 'desktop-miniApp';\nexport type LooseFunction = (...args: any) => any;\n\nexport class Env {\n static _mode: EnvMode;\n public static get mode() {\n if (!Env._mode) {\n Env._mode = defaultMode();\n }\n return Env._mode;\n }\n public static set mode(mode: EnvMode) {\n Env._mode = mode;\n }\n\n static dpr = 0;\n\n static CreateCanvas?: LooseFunction;\n\n static LoadImage?: LooseFunction;\n\n static RequestAnimationFrame?: LooseFunction;\n\n static CancelAnimationFrame?: LooseFunction;\n\n static RegisterCreateCanvas(func: LooseFunction) {\n Env.CreateCanvas = func;\n }\n\n static RegisterLoadImage(func: LooseFunction) {\n Env.LoadImage = func;\n }\n\n static GetCreateCanvasFunc(): LooseFunction | undefined {\n if (Env.CreateCanvas) {\n return Env.CreateCanvas;\n }\n if (Env.mode === 'worker') {\n return (width = 200, height = 200) => new OffscreenCanvas(width, height);\n }\n return undefined;\n }\n\n static RegisterRequestAnimationFrame(func: LooseFunction) {\n Env.RequestAnimationFrame = func();\n }\n\n static GetRequestAnimationFrame() {\n if (Env.RequestAnimationFrame) {\n return Env.RequestAnimationFrame;\n }\n return undefined;\n }\n\n static RegisterCancelAnimationFrame(func: LooseFunction) {\n Env.CancelAnimationFrame = func();\n }\n\n static GetCancelAnimationFrame() {\n if (Env.CancelAnimationFrame) {\n return Env.CancelAnimationFrame;\n }\n return undefined;\n }\n}\n\n/**\n *\n * 这个默认的判断方法并不能区分出不同的环境,所以这里采用是否判断\n * 满足条件为 'browser',不满足则为 'node'\n */\nfunction defaultMode(): EnvMode {\n let mode: EnvMode = 'browser';\n try {\n if ((window as any).type === 'node') {\n mode = 'node';\n } else if (typeof window !== 'undefined' && !window.performance) {\n mode = 'miniApp';\n } else if (typeof window === 'undefined') {\n mode = 'node';\n }\n } catch (err) {\n mode = 'node';\n }\n return mode;\n}\n"]}