@hkyhy/marsun-components-core 0.1.113 → 0.1.115

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 (3873) hide show
  1. package/dist/_virtual/client.js +28 -0
  2. package/dist/_virtual/client.js.map +1 -0
  3. package/dist/_virtual/client2.js +5 -0
  4. package/dist/_virtual/client2.js.map +1 -0
  5. package/dist/_virtual/helper.js +5 -0
  6. package/dist/_virtual/helper.js.map +1 -0
  7. package/dist/_virtual/index.js +8 -0
  8. package/dist/_virtual/index.js.map +1 -0
  9. package/dist/_virtual/index2.js +8 -0
  10. package/dist/_virtual/index2.js.map +1 -0
  11. package/dist/_virtual/index3.js +5 -0
  12. package/dist/_virtual/index3.js.map +1 -0
  13. package/dist/_virtual/index4.js +5 -0
  14. package/dist/_virtual/index4.js.map +1 -0
  15. package/dist/_virtual/index5.js +8 -0
  16. package/dist/_virtual/index5.js.map +1 -0
  17. package/dist/_virtual/index6.js +5 -0
  18. package/dist/_virtual/index6.js.map +1 -0
  19. package/dist/_virtual/index7.js +5 -0
  20. package/dist/_virtual/index7.js.map +1 -0
  21. package/dist/_virtual/index8.js +5 -0
  22. package/dist/_virtual/index8.js.map +1 -0
  23. package/dist/_virtual/react-dom-client.development.js +5 -0
  24. package/dist/_virtual/react-dom-client.development.js.map +1 -0
  25. package/dist/_virtual/react-dom-client.production.js +5 -0
  26. package/dist/_virtual/react-dom-client.production.js.map +1 -0
  27. package/dist/_virtual/scheduler.development.js +5 -0
  28. package/dist/_virtual/scheduler.development.js.map +1 -0
  29. package/dist/_virtual/scheduler.production.js +5 -0
  30. package/dist/_virtual/scheduler.production.js.map +1 -0
  31. package/dist/components/AgentHub/Chat/Detail/CitationMarkdownContent/index.js +13 -13
  32. package/dist/components/AgentHub/Chat/Detail/CitationPanel/index.js +2 -2
  33. package/dist/components/AgentHub/Chat/Modal/FormModal.js +11 -11
  34. package/dist/components/AgentHub/Chat/Modal/FormModal.js.map +1 -1
  35. package/dist/components/AgentHub/KnowledgeBase/Modal/FormModal.js +6 -6
  36. package/dist/components/AgentHub/KnowledgeBase/Modal/FormModal.js.map +1 -1
  37. package/dist/components/Audit/AuditDayStatsBar.d.ts +15 -0
  38. package/dist/components/Audit/AuditDayStatsBar.js +56 -0
  39. package/dist/components/Audit/AuditDayStatsBar.js.map +1 -0
  40. package/dist/components/Audit/AuditLogList.d.ts +8 -2
  41. package/dist/components/Audit/AuditLogList.js +197 -138
  42. package/dist/components/Audit/AuditLogList.js.map +1 -1
  43. package/dist/components/Audit/AuditPerfDashboard.d.ts +17 -0
  44. package/dist/components/Audit/AuditPerfDashboard.js +129 -0
  45. package/dist/components/Audit/AuditPerfDashboard.js.map +1 -0
  46. package/dist/components/Audit/AuditWaterfall.d.ts +10 -0
  47. package/dist/components/Audit/AuditWaterfall.js +39 -0
  48. package/dist/components/Audit/AuditWaterfall.js.map +1 -0
  49. package/dist/components/Audit/Chart/ChartLazyBoundary.d.ts +15 -0
  50. package/dist/components/Audit/Chart/ChartLazyBoundary.js +29 -0
  51. package/dist/components/Audit/Chart/ChartLazyBoundary.js.map +1 -0
  52. package/dist/components/Audit/Chart/createLazyPlot.d.ts +19 -0
  53. package/dist/components/Audit/Chart/createLazyPlot.js +35 -0
  54. package/dist/components/Audit/Chart/createLazyPlot.js.map +1 -0
  55. package/dist/components/Audit/Chart/loadChartExport.d.ts +7 -0
  56. package/dist/components/Audit/Chart/loadChartExport.js +14 -0
  57. package/dist/components/Audit/Chart/loadChartExport.js.map +1 -0
  58. package/dist/components/Audit/detailKpi.d.ts +18 -0
  59. package/dist/components/Audit/detailKpi.js +28 -0
  60. package/dist/components/Audit/detailKpi.js.map +1 -0
  61. package/dist/components/Audit/index.d.ts +10 -1
  62. package/dist/components/Audit/labels.d.ts +9 -0
  63. package/dist/components/Audit/labels.js +23 -0
  64. package/dist/components/Audit/labels.js.map +1 -0
  65. package/dist/components/Audit/labels.json.d.ts +22 -0
  66. package/dist/components/Audit/labels.json.js +40 -0
  67. package/dist/components/Audit/labels.json.js.map +1 -0
  68. package/dist/components/Audit/style.module.scss.js +28 -26
  69. package/dist/components/Audit/style.module.scss.js.map +1 -1
  70. package/dist/components/Audit/types.d.ts +31 -1
  71. package/dist/components/Disposition/DispositionBar/index.d.ts +9 -4
  72. package/dist/components/Disposition/DispositionBar/index.js +18 -17
  73. package/dist/components/Disposition/DispositionBar/index.js.map +1 -1
  74. package/dist/components/Disposition/DispositionBar/style.module.scss.js +6 -5
  75. package/dist/components/Disposition/DispositionBar/style.module.scss.js.map +1 -1
  76. package/dist/components/Filter/CommonFilter/index.js +10 -10
  77. package/dist/components/FormInfo/FormInfo.js +19 -19
  78. package/dist/components/FormInfo/FormModal.d.ts +3 -6
  79. package/dist/components/FormInfo/FormModal.js +202 -36
  80. package/dist/components/FormInfo/FormModal.js.map +1 -1
  81. package/dist/components/FormInfo/FormStepsModal.d.ts +4 -2
  82. package/dist/components/FormInfo/FormStepsModal.js +64 -55
  83. package/dist/components/FormInfo/FormStepsModal.js.map +1 -1
  84. package/dist/components/FormInfo/nestBlock.js +4 -4
  85. package/dist/components/FormInfo/style.module.scss.js +53 -51
  86. package/dist/components/FormInfo/style.module.scss.js.map +1 -1
  87. package/dist/components/FormInfo/types.d.ts +15 -1
  88. package/dist/components/Icons/createIcon.js +8 -8
  89. package/dist/components/InfoPage/Content/index.js +2 -2
  90. package/dist/components/ReactModal/intlStub.js +5 -5
  91. package/dist/components/Tour/AppTour/index.js +4 -4
  92. package/dist/components/Tour/AppTour/index.js.map +1 -1
  93. package/dist/components/Upload/index.js +21 -21
  94. package/dist/components/Upload/index.js.map +1 -1
  95. package/dist/index.js +501 -486
  96. package/dist/index.js.map +1 -1
  97. package/dist/marsun-components-core.css +1 -1
  98. package/dist/node_modules/@ant-design/charts/es/index.js +102 -0
  99. package/dist/node_modules/@ant-design/charts/es/index.js.map +1 -0
  100. package/dist/node_modules/@ant-design/charts-util/es/rc/chart-loading.js +89 -0
  101. package/dist/node_modules/@ant-design/charts-util/es/rc/chart-loading.js.map +1 -0
  102. package/dist/node_modules/@ant-design/charts-util/es/rc/create-node.js +18 -0
  103. package/dist/node_modules/@ant-design/charts-util/es/rc/create-node.js.map +1 -0
  104. package/dist/node_modules/@ant-design/charts-util/es/rc/error-boundary.js +53 -0
  105. package/dist/node_modules/@ant-design/charts-util/es/rc/error-boundary.js.map +1 -0
  106. package/dist/node_modules/@ant-design/charts-util/es/react/render.js +147 -0
  107. package/dist/node_modules/@ant-design/charts-util/es/react/render.js.map +1 -0
  108. package/dist/node_modules/@ant-design/charts-util/es/utils/context.js +7 -0
  109. package/dist/node_modules/@ant-design/charts-util/es/utils/context.js.map +1 -0
  110. package/dist/node_modules/@ant-design/charts-util/es/utils/measure-text.js +20 -0
  111. package/dist/node_modules/@ant-design/charts-util/es/utils/measure-text.js.map +1 -0
  112. package/dist/node_modules/@ant-design/graphs/es/components/dendrogram/index.js +17 -0
  113. package/dist/node_modules/@ant-design/graphs/es/components/dendrogram/index.js.map +1 -0
  114. package/dist/node_modules/@ant-design/graphs/es/components/dendrogram/options.js +51 -0
  115. package/dist/node_modules/@ant-design/graphs/es/components/dendrogram/options.js.map +1 -0
  116. package/dist/node_modules/@ant-design/graphs/es/components/fishbone/index.js +14 -0
  117. package/dist/node_modules/@ant-design/graphs/es/components/fishbone/index.js.map +1 -0
  118. package/dist/node_modules/@ant-design/graphs/es/components/fishbone/options.js +69 -0
  119. package/dist/node_modules/@ant-design/graphs/es/components/fishbone/options.js.map +1 -0
  120. package/dist/node_modules/@ant-design/graphs/es/components/flow-direction-graph/index.js +13 -0
  121. package/dist/node_modules/@ant-design/graphs/es/components/flow-direction-graph/index.js.map +1 -0
  122. package/dist/node_modules/@ant-design/graphs/es/components/flow-direction-graph/options.js +51 -0
  123. package/dist/node_modules/@ant-design/graphs/es/components/flow-direction-graph/options.js.map +1 -0
  124. package/dist/node_modules/@ant-design/graphs/es/components/flow-graph/index.js +16 -0
  125. package/dist/node_modules/@ant-design/graphs/es/components/flow-graph/index.js.map +1 -0
  126. package/dist/node_modules/@ant-design/graphs/es/components/flow-graph/options.js +54 -0
  127. package/dist/node_modules/@ant-design/graphs/es/components/flow-graph/options.js.map +1 -0
  128. package/dist/node_modules/@ant-design/graphs/es/components/indented-tree/index.js +14 -0
  129. package/dist/node_modules/@ant-design/graphs/es/components/indented-tree/index.js.map +1 -0
  130. package/dist/node_modules/@ant-design/graphs/es/components/indented-tree/options.js +206 -0
  131. package/dist/node_modules/@ant-design/graphs/es/components/indented-tree/options.js.map +1 -0
  132. package/dist/node_modules/@ant-design/graphs/es/components/mind-map/index.js +17 -0
  133. package/dist/node_modules/@ant-design/graphs/es/components/mind-map/index.js.map +1 -0
  134. package/dist/node_modules/@ant-design/graphs/es/components/mind-map/options.js +193 -0
  135. package/dist/node_modules/@ant-design/graphs/es/components/mind-map/options.js.map +1 -0
  136. package/dist/node_modules/@ant-design/graphs/es/components/network-graph/index.js +13 -0
  137. package/dist/node_modules/@ant-design/graphs/es/components/network-graph/index.js.map +1 -0
  138. package/dist/node_modules/@ant-design/graphs/es/components/network-graph/options.js +23 -0
  139. package/dist/node_modules/@ant-design/graphs/es/components/network-graph/options.js.map +1 -0
  140. package/dist/node_modules/@ant-design/graphs/es/components/organization-chart/index.js +16 -0
  141. package/dist/node_modules/@ant-design/graphs/es/components/organization-chart/index.js.map +1 -0
  142. package/dist/node_modules/@ant-design/graphs/es/components/organization-chart/options.js +65 -0
  143. package/dist/node_modules/@ant-design/graphs/es/components/organization-chart/options.js.map +1 -0
  144. package/dist/node_modules/@ant-design/graphs/es/core/base/collapse-expand-icon/arrow-count-icon.js +79 -0
  145. package/dist/node_modules/@ant-design/graphs/es/core/base/collapse-expand-icon/arrow-count-icon.js.map +1 -0
  146. package/dist/node_modules/@ant-design/graphs/es/core/base/collapse-expand-icon/index.js +7 -0
  147. package/dist/node_modules/@ant-design/graphs/es/core/base/collapse-expand-icon/index.js.map +1 -0
  148. package/dist/node_modules/@ant-design/graphs/es/core/base/collapse-expand-icon/plus-minus-icon.js +22 -0
  149. package/dist/node_modules/@ant-design/graphs/es/core/base/collapse-expand-icon/plus-minus-icon.js.map +1 -0
  150. package/dist/node_modules/@ant-design/graphs/es/core/base/node/index.js +7 -0
  151. package/dist/node_modules/@ant-design/graphs/es/core/base/node/index.js.map +1 -0
  152. package/dist/node_modules/@ant-design/graphs/es/core/base/node/organization-chart-node.js +92 -0
  153. package/dist/node_modules/@ant-design/graphs/es/core/base/node/organization-chart-node.js.map +1 -0
  154. package/dist/node_modules/@ant-design/graphs/es/core/base/node/text-node.js +70 -0
  155. package/dist/node_modules/@ant-design/graphs/es/core/base/node/text-node.js.map +1 -0
  156. package/dist/node_modules/@ant-design/graphs/es/core/base-graph.js +24 -0
  157. package/dist/node_modules/@ant-design/graphs/es/core/base-graph.js.map +1 -0
  158. package/dist/node_modules/@ant-design/graphs/es/core/behaviors/hover-activate-chain.js +97 -0
  159. package/dist/node_modules/@ant-design/graphs/es/core/behaviors/hover-activate-chain.js.map +1 -0
  160. package/dist/node_modules/@ant-design/graphs/es/core/behaviors/hover-activate-neighbors.js +91 -0
  161. package/dist/node_modules/@ant-design/graphs/es/core/behaviors/hover-activate-neighbors.js.map +1 -0
  162. package/dist/node_modules/@ant-design/graphs/es/core/constants/options.js +17 -0
  163. package/dist/node_modules/@ant-design/graphs/es/core/constants/options.js.map +1 -0
  164. package/dist/node_modules/@ant-design/graphs/es/core/edges/indented-edge.js +86 -0
  165. package/dist/node_modules/@ant-design/graphs/es/core/edges/indented-edge.js.map +1 -0
  166. package/dist/node_modules/@ant-design/graphs/es/core/hoc/with-collapsible-node.js +125 -0
  167. package/dist/node_modules/@ant-design/graphs/es/core/hoc/with-collapsible-node.js.map +1 -0
  168. package/dist/node_modules/@ant-design/graphs/es/core/registry/build-in.js +33 -0
  169. package/dist/node_modules/@ant-design/graphs/es/core/registry/build-in.js.map +1 -0
  170. package/dist/node_modules/@ant-design/graphs/es/core/registry/register.js +89 -0
  171. package/dist/node_modules/@ant-design/graphs/es/core/registry/register.js.map +1 -0
  172. package/dist/node_modules/@ant-design/graphs/es/core/transform/arrange-edge-z-index.js +89 -0
  173. package/dist/node_modules/@ant-design/graphs/es/core/transform/arrange-edge-z-index.js.map +1 -0
  174. package/dist/node_modules/@ant-design/graphs/es/core/transform/assign-color-by-branch.js +119 -0
  175. package/dist/node_modules/@ant-design/graphs/es/core/transform/assign-color-by-branch.js.map +1 -0
  176. package/dist/node_modules/@ant-design/graphs/es/core/transform/collapse-expand-react-node.js +131 -0
  177. package/dist/node_modules/@ant-design/graphs/es/core/transform/collapse-expand-react-node.js.map +1 -0
  178. package/dist/node_modules/@ant-design/graphs/es/core/transform/map-edge-line-width.js +125 -0
  179. package/dist/node_modules/@ant-design/graphs/es/core/transform/map-edge-line-width.js.map +1 -0
  180. package/dist/node_modules/@ant-design/graphs/es/core/transform/translate-react-node-origin.js +92 -0
  181. package/dist/node_modules/@ant-design/graphs/es/core/transform/translate-react-node-origin.js.map +1 -0
  182. package/dist/node_modules/@ant-design/graphs/es/core/utils/color.js +15 -0
  183. package/dist/node_modules/@ant-design/graphs/es/core/utils/color.js.map +1 -0
  184. package/dist/node_modules/@ant-design/graphs/es/core/utils/data.js +144 -0
  185. package/dist/node_modules/@ant-design/graphs/es/core/utils/data.js.map +1 -0
  186. package/dist/node_modules/@ant-design/graphs/es/core/utils/label.js +9 -0
  187. package/dist/node_modules/@ant-design/graphs/es/core/utils/label.js.map +1 -0
  188. package/dist/node_modules/@ant-design/graphs/es/core/utils/measure-text.js +16 -0
  189. package/dist/node_modules/@ant-design/graphs/es/core/utils/measure-text.js.map +1 -0
  190. package/dist/node_modules/@ant-design/graphs/es/core/utils/node.js +93 -0
  191. package/dist/node_modules/@ant-design/graphs/es/core/utils/node.js.map +1 -0
  192. package/dist/node_modules/@ant-design/graphs/es/core/utils/options.js +22 -0
  193. package/dist/node_modules/@ant-design/graphs/es/core/utils/options.js.map +1 -0
  194. package/dist/node_modules/@ant-design/graphs/es/core/utils/scale.js +23 -0
  195. package/dist/node_modules/@ant-design/graphs/es/core/utils/scale.js.map +1 -0
  196. package/dist/node_modules/@ant-design/graphs/es/core/utils/tree.js +20 -0
  197. package/dist/node_modules/@ant-design/graphs/es/core/utils/tree.js.map +1 -0
  198. package/dist/node_modules/@ant-design/graphs/es/preset.js +3 -0
  199. package/dist/node_modules/@ant-design/graphs/es/preset.js.map +1 -0
  200. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/rc/chart-loading.js +86 -0
  201. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/rc/chart-loading.js.map +1 -0
  202. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/rc/create-node.js +4 -0
  203. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/rc/create-node.js.map +1 -0
  204. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/rc/error-boundary.js +53 -0
  205. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/rc/error-boundary.js.map +1 -0
  206. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/react/render.js +19 -0
  207. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/react/render.js.map +1 -0
  208. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/utils/context.js +7 -0
  209. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/utils/context.js.map +1 -0
  210. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/utils/measure-text.js +25 -0
  211. package/dist/node_modules/@ant-design/graphs/node_modules/@ant-design/charts-util/es/utils/measure-text.js.map +1 -0
  212. package/dist/node_modules/@ant-design/plots/es/components/area/index.js +6 -0
  213. package/dist/node_modules/@ant-design/plots/es/components/area/index.js.map +1 -0
  214. package/dist/node_modules/@ant-design/plots/es/components/bar/index.js +6 -0
  215. package/dist/node_modules/@ant-design/plots/es/components/bar/index.js.map +1 -0
  216. package/dist/node_modules/@ant-design/plots/es/components/base/index.js +41 -0
  217. package/dist/node_modules/@ant-design/plots/es/components/base/index.js.map +1 -0
  218. package/dist/node_modules/@ant-design/plots/es/components/bidirectional-bar/index.js +6 -0
  219. package/dist/node_modules/@ant-design/plots/es/components/bidirectional-bar/index.js.map +1 -0
  220. package/dist/node_modules/@ant-design/plots/es/components/box/index.js +6 -0
  221. package/dist/node_modules/@ant-design/plots/es/components/box/index.js.map +1 -0
  222. package/dist/node_modules/@ant-design/plots/es/components/bullet/index.js +6 -0
  223. package/dist/node_modules/@ant-design/plots/es/components/bullet/index.js.map +1 -0
  224. package/dist/node_modules/@ant-design/plots/es/components/circlePacking/index.js +6 -0
  225. package/dist/node_modules/@ant-design/plots/es/components/circlePacking/index.js.map +1 -0
  226. package/dist/node_modules/@ant-design/plots/es/components/column/index.js +6 -0
  227. package/dist/node_modules/@ant-design/plots/es/components/column/index.js.map +1 -0
  228. package/dist/node_modules/@ant-design/plots/es/components/config-provider/index.js +18 -0
  229. package/dist/node_modules/@ant-design/plots/es/components/config-provider/index.js.map +1 -0
  230. package/dist/node_modules/@ant-design/plots/es/components/dual-axes/index.js +6 -0
  231. package/dist/node_modules/@ant-design/plots/es/components/dual-axes/index.js.map +1 -0
  232. package/dist/node_modules/@ant-design/plots/es/components/funnel/index.js +6 -0
  233. package/dist/node_modules/@ant-design/plots/es/components/funnel/index.js.map +1 -0
  234. package/dist/node_modules/@ant-design/plots/es/components/gauge/index.js +6 -0
  235. package/dist/node_modules/@ant-design/plots/es/components/gauge/index.js.map +1 -0
  236. package/dist/node_modules/@ant-design/plots/es/components/heatmap/index.js +6 -0
  237. package/dist/node_modules/@ant-design/plots/es/components/heatmap/index.js.map +1 -0
  238. package/dist/node_modules/@ant-design/plots/es/components/histogram/index.js +6 -0
  239. package/dist/node_modules/@ant-design/plots/es/components/histogram/index.js.map +1 -0
  240. package/dist/node_modules/@ant-design/plots/es/components/line/index.js +6 -0
  241. package/dist/node_modules/@ant-design/plots/es/components/line/index.js.map +1 -0
  242. package/dist/node_modules/@ant-design/plots/es/components/liquid/index.js +6 -0
  243. package/dist/node_modules/@ant-design/plots/es/components/liquid/index.js.map +1 -0
  244. package/dist/node_modules/@ant-design/plots/es/components/mix/index.js +6 -0
  245. package/dist/node_modules/@ant-design/plots/es/components/mix/index.js.map +1 -0
  246. package/dist/node_modules/@ant-design/plots/es/components/pie/index.js +6 -0
  247. package/dist/node_modules/@ant-design/plots/es/components/pie/index.js.map +1 -0
  248. package/dist/node_modules/@ant-design/plots/es/components/radar/index.js +6 -0
  249. package/dist/node_modules/@ant-design/plots/es/components/radar/index.js.map +1 -0
  250. package/dist/node_modules/@ant-design/plots/es/components/radial-bar/index.js +6 -0
  251. package/dist/node_modules/@ant-design/plots/es/components/radial-bar/index.js.map +1 -0
  252. package/dist/node_modules/@ant-design/plots/es/components/rose/index.js +6 -0
  253. package/dist/node_modules/@ant-design/plots/es/components/rose/index.js.map +1 -0
  254. package/dist/node_modules/@ant-design/plots/es/components/sankey/index.js +6 -0
  255. package/dist/node_modules/@ant-design/plots/es/components/sankey/index.js.map +1 -0
  256. package/dist/node_modules/@ant-design/plots/es/components/scatter/index.js +6 -0
  257. package/dist/node_modules/@ant-design/plots/es/components/scatter/index.js.map +1 -0
  258. package/dist/node_modules/@ant-design/plots/es/components/stock/index.js +6 -0
  259. package/dist/node_modules/@ant-design/plots/es/components/stock/index.js.map +1 -0
  260. package/dist/node_modules/@ant-design/plots/es/components/sunburst/index.js +6 -0
  261. package/dist/node_modules/@ant-design/plots/es/components/sunburst/index.js.map +1 -0
  262. package/dist/node_modules/@ant-design/plots/es/components/tiny/area/index.js +6 -0
  263. package/dist/node_modules/@ant-design/plots/es/components/tiny/area/index.js.map +1 -0
  264. package/dist/node_modules/@ant-design/plots/es/components/tiny/column/index.js +6 -0
  265. package/dist/node_modules/@ant-design/plots/es/components/tiny/column/index.js.map +1 -0
  266. package/dist/node_modules/@ant-design/plots/es/components/tiny/index.js +10 -0
  267. package/dist/node_modules/@ant-design/plots/es/components/tiny/index.js.map +1 -0
  268. package/dist/node_modules/@ant-design/plots/es/components/tiny/line/index.js +6 -0
  269. package/dist/node_modules/@ant-design/plots/es/components/tiny/line/index.js.map +1 -0
  270. package/dist/node_modules/@ant-design/plots/es/components/tiny/progress/index.js +6 -0
  271. package/dist/node_modules/@ant-design/plots/es/components/tiny/progress/index.js.map +1 -0
  272. package/dist/node_modules/@ant-design/plots/es/components/tiny/ring/index.js +6 -0
  273. package/dist/node_modules/@ant-design/plots/es/components/tiny/ring/index.js.map +1 -0
  274. package/dist/node_modules/@ant-design/plots/es/components/treemap/index.js +6 -0
  275. package/dist/node_modules/@ant-design/plots/es/components/treemap/index.js.map +1 -0
  276. package/dist/node_modules/@ant-design/plots/es/components/venn/index.js +6 -0
  277. package/dist/node_modules/@ant-design/plots/es/components/venn/index.js.map +1 -0
  278. package/dist/node_modules/@ant-design/plots/es/components/violin/index.js +6 -0
  279. package/dist/node_modules/@ant-design/plots/es/components/violin/index.js.map +1 -0
  280. package/dist/node_modules/@ant-design/plots/es/components/waterfall/index.js +6 -0
  281. package/dist/node_modules/@ant-design/plots/es/components/waterfall/index.js.map +1 -0
  282. package/dist/node_modules/@ant-design/plots/es/components/wordCloud/index.js +6 -0
  283. package/dist/node_modules/@ant-design/plots/es/components/wordCloud/index.js.map +1 -0
  284. package/dist/node_modules/@ant-design/plots/es/context.js +6 -0
  285. package/dist/node_modules/@ant-design/plots/es/context.js.map +1 -0
  286. package/dist/node_modules/@ant-design/plots/es/core/adaptor/coordinate-layout.js +17 -0
  287. package/dist/node_modules/@ant-design/plots/es/core/adaptor/coordinate-layout.js.map +1 -0
  288. package/dist/node_modules/@ant-design/plots/es/core/adaptor/mark.js +9 -0
  289. package/dist/node_modules/@ant-design/plots/es/core/adaptor/mark.js.map +1 -0
  290. package/dist/node_modules/@ant-design/plots/es/core/adaptor/shape-stack.js +35 -0
  291. package/dist/node_modules/@ant-design/plots/es/core/adaptor/shape-stack.js.map +1 -0
  292. package/dist/node_modules/@ant-design/plots/es/core/annotation/bidirectional-bar-axis-text.js +93 -0
  293. package/dist/node_modules/@ant-design/plots/es/core/annotation/bidirectional-bar-axis-text.js.map +1 -0
  294. package/dist/node_modules/@ant-design/plots/es/core/annotation/conversion-tag.js +107 -0
  295. package/dist/node_modules/@ant-design/plots/es/core/annotation/conversion-tag.js.map +1 -0
  296. package/dist/node_modules/@ant-design/plots/es/core/annotation/core.js +59 -0
  297. package/dist/node_modules/@ant-design/plots/es/core/annotation/core.js.map +1 -0
  298. package/dist/node_modules/@ant-design/plots/es/core/annotation/index.js +36 -0
  299. package/dist/node_modules/@ant-design/plots/es/core/annotation/index.js.map +1 -0
  300. package/dist/node_modules/@ant-design/plots/es/core/annotation/shapes/Polygon.js +50 -0
  301. package/dist/node_modules/@ant-design/plots/es/core/annotation/shapes/Polygon.js.map +1 -0
  302. package/dist/node_modules/@ant-design/plots/es/core/annotation/shapes/Text.js +50 -0
  303. package/dist/node_modules/@ant-design/plots/es/core/annotation/shapes/Text.js.map +1 -0
  304. package/dist/node_modules/@ant-design/plots/es/core/base/chart.js +20 -0
  305. package/dist/node_modules/@ant-design/plots/es/core/base/chart.js.map +1 -0
  306. package/dist/node_modules/@ant-design/plots/es/core/base/index.js +108 -0
  307. package/dist/node_modules/@ant-design/plots/es/core/base/index.js.map +1 -0
  308. package/dist/node_modules/@ant-design/plots/es/core/constants/index.js +302 -0
  309. package/dist/node_modules/@ant-design/plots/es/core/constants/index.js.map +1 -0
  310. package/dist/node_modules/@ant-design/plots/es/core/index.js +73 -0
  311. package/dist/node_modules/@ant-design/plots/es/core/index.js.map +1 -0
  312. package/dist/node_modules/@ant-design/plots/es/core/plots/area/adaptor.js +10 -0
  313. package/dist/node_modules/@ant-design/plots/es/core/plots/area/adaptor.js.map +1 -0
  314. package/dist/node_modules/@ant-design/plots/es/core/plots/area/index.js +55 -0
  315. package/dist/node_modules/@ant-design/plots/es/core/plots/area/index.js.map +1 -0
  316. package/dist/node_modules/@ant-design/plots/es/core/plots/bar/adaptor.js +34 -0
  317. package/dist/node_modules/@ant-design/plots/es/core/plots/bar/adaptor.js.map +1 -0
  318. package/dist/node_modules/@ant-design/plots/es/core/plots/bar/index.js +62 -0
  319. package/dist/node_modules/@ant-design/plots/es/core/plots/bar/index.js.map +1 -0
  320. package/dist/node_modules/@ant-design/plots/es/core/plots/bar/shape.js +37 -0
  321. package/dist/node_modules/@ant-design/plots/es/core/plots/bar/shape.js.map +1 -0
  322. package/dist/node_modules/@ant-design/plots/es/core/plots/base/index.js +44 -0
  323. package/dist/node_modules/@ant-design/plots/es/core/plots/base/index.js.map +1 -0
  324. package/dist/node_modules/@ant-design/plots/es/core/plots/bidirectional-bar/adaptor.js +68 -0
  325. package/dist/node_modules/@ant-design/plots/es/core/plots/bidirectional-bar/adaptor.js.map +1 -0
  326. package/dist/node_modules/@ant-design/plots/es/core/plots/bidirectional-bar/constants.js +7 -0
  327. package/dist/node_modules/@ant-design/plots/es/core/plots/bidirectional-bar/constants.js.map +1 -0
  328. package/dist/node_modules/@ant-design/plots/es/core/plots/bidirectional-bar/index.js +56 -0
  329. package/dist/node_modules/@ant-design/plots/es/core/plots/bidirectional-bar/index.js.map +1 -0
  330. package/dist/node_modules/@ant-design/plots/es/core/plots/box/adaptor.js +14 -0
  331. package/dist/node_modules/@ant-design/plots/es/core/plots/box/adaptor.js.map +1 -0
  332. package/dist/node_modules/@ant-design/plots/es/core/plots/box/index.js +57 -0
  333. package/dist/node_modules/@ant-design/plots/es/core/plots/box/index.js.map +1 -0
  334. package/dist/node_modules/@ant-design/plots/es/core/plots/bullet/adaptor.js +74 -0
  335. package/dist/node_modules/@ant-design/plots/es/core/plots/bullet/adaptor.js.map +1 -0
  336. package/dist/node_modules/@ant-design/plots/es/core/plots/bullet/index.js +76 -0
  337. package/dist/node_modules/@ant-design/plots/es/core/plots/bullet/index.js.map +1 -0
  338. package/dist/node_modules/@ant-design/plots/es/core/plots/circle-packing/adaptor.js +10 -0
  339. package/dist/node_modules/@ant-design/plots/es/core/plots/circle-packing/adaptor.js.map +1 -0
  340. package/dist/node_modules/@ant-design/plots/es/core/plots/circle-packing/index.js +51 -0
  341. package/dist/node_modules/@ant-design/plots/es/core/plots/circle-packing/index.js.map +1 -0
  342. package/dist/node_modules/@ant-design/plots/es/core/plots/column/index.js +65 -0
  343. package/dist/node_modules/@ant-design/plots/es/core/plots/column/index.js.map +1 -0
  344. package/dist/node_modules/@ant-design/plots/es/core/plots/column/shape.js +52 -0
  345. package/dist/node_modules/@ant-design/plots/es/core/plots/column/shape.js.map +1 -0
  346. package/dist/node_modules/@ant-design/plots/es/core/plots/dual-axes/adaptor.js +35 -0
  347. package/dist/node_modules/@ant-design/plots/es/core/plots/dual-axes/adaptor.js.map +1 -0
  348. package/dist/node_modules/@ant-design/plots/es/core/plots/dual-axes/index.js +52 -0
  349. package/dist/node_modules/@ant-design/plots/es/core/plots/dual-axes/index.js.map +1 -0
  350. package/dist/node_modules/@ant-design/plots/es/core/plots/funnel/adaptor.js +43 -0
  351. package/dist/node_modules/@ant-design/plots/es/core/plots/funnel/adaptor.js.map +1 -0
  352. package/dist/node_modules/@ant-design/plots/es/core/plots/funnel/index.js +55 -0
  353. package/dist/node_modules/@ant-design/plots/es/core/plots/funnel/index.js.map +1 -0
  354. package/dist/node_modules/@ant-design/plots/es/core/plots/gauge/adaptor.js +16 -0
  355. package/dist/node_modules/@ant-design/plots/es/core/plots/gauge/adaptor.js.map +1 -0
  356. package/dist/node_modules/@ant-design/plots/es/core/plots/gauge/index.js +44 -0
  357. package/dist/node_modules/@ant-design/plots/es/core/plots/gauge/index.js.map +1 -0
  358. package/dist/node_modules/@ant-design/plots/es/core/plots/heatmap/adaptor.js +17 -0
  359. package/dist/node_modules/@ant-design/plots/es/core/plots/heatmap/adaptor.js.map +1 -0
  360. package/dist/node_modules/@ant-design/plots/es/core/plots/heatmap/index.js +61 -0
  361. package/dist/node_modules/@ant-design/plots/es/core/plots/heatmap/index.js.map +1 -0
  362. package/dist/node_modules/@ant-design/plots/es/core/plots/histogram/adaptor.js +14 -0
  363. package/dist/node_modules/@ant-design/plots/es/core/plots/histogram/adaptor.js.map +1 -0
  364. package/dist/node_modules/@ant-design/plots/es/core/plots/histogram/index.js +58 -0
  365. package/dist/node_modules/@ant-design/plots/es/core/plots/histogram/index.js.map +1 -0
  366. package/dist/node_modules/@ant-design/plots/es/core/plots/line/adaptor.js +10 -0
  367. package/dist/node_modules/@ant-design/plots/es/core/plots/line/adaptor.js.map +1 -0
  368. package/dist/node_modules/@ant-design/plots/es/core/plots/line/index.js +59 -0
  369. package/dist/node_modules/@ant-design/plots/es/core/plots/line/index.js.map +1 -0
  370. package/dist/node_modules/@ant-design/plots/es/core/plots/liquid/adaptor.js +14 -0
  371. package/dist/node_modules/@ant-design/plots/es/core/plots/liquid/adaptor.js.map +1 -0
  372. package/dist/node_modules/@ant-design/plots/es/core/plots/liquid/index.js +40 -0
  373. package/dist/node_modules/@ant-design/plots/es/core/plots/liquid/index.js.map +1 -0
  374. package/dist/node_modules/@ant-design/plots/es/core/plots/pie/adaptor.js +55 -0
  375. package/dist/node_modules/@ant-design/plots/es/core/plots/pie/adaptor.js.map +1 -0
  376. package/dist/node_modules/@ant-design/plots/es/core/plots/pie/index.js +46 -0
  377. package/dist/node_modules/@ant-design/plots/es/core/plots/pie/index.js.map +1 -0
  378. package/dist/node_modules/@ant-design/plots/es/core/plots/radar/adaptor.js +12 -0
  379. package/dist/node_modules/@ant-design/plots/es/core/plots/radar/adaptor.js.map +1 -0
  380. package/dist/node_modules/@ant-design/plots/es/core/plots/radar/index.js +50 -0
  381. package/dist/node_modules/@ant-design/plots/es/core/plots/radar/index.js.map +1 -0
  382. package/dist/node_modules/@ant-design/plots/es/core/plots/radial-bar/adaptor.js +54 -0
  383. package/dist/node_modules/@ant-design/plots/es/core/plots/radial-bar/adaptor.js.map +1 -0
  384. package/dist/node_modules/@ant-design/plots/es/core/plots/radial-bar/index.js +58 -0
  385. package/dist/node_modules/@ant-design/plots/es/core/plots/radial-bar/index.js.map +1 -0
  386. package/dist/node_modules/@ant-design/plots/es/core/plots/rose/adaptor.js +9 -0
  387. package/dist/node_modules/@ant-design/plots/es/core/plots/rose/adaptor.js.map +1 -0
  388. package/dist/node_modules/@ant-design/plots/es/core/plots/rose/index.js +45 -0
  389. package/dist/node_modules/@ant-design/plots/es/core/plots/rose/index.js.map +1 -0
  390. package/dist/node_modules/@ant-design/plots/es/core/plots/sankey/adaptor.js +31 -0
  391. package/dist/node_modules/@ant-design/plots/es/core/plots/sankey/adaptor.js.map +1 -0
  392. package/dist/node_modules/@ant-design/plots/es/core/plots/sankey/index.js +40 -0
  393. package/dist/node_modules/@ant-design/plots/es/core/plots/sankey/index.js.map +1 -0
  394. package/dist/node_modules/@ant-design/plots/es/core/plots/scatter/adaptor.js +10 -0
  395. package/dist/node_modules/@ant-design/plots/es/core/plots/scatter/adaptor.js.map +1 -0
  396. package/dist/node_modules/@ant-design/plots/es/core/plots/scatter/index.js +49 -0
  397. package/dist/node_modules/@ant-design/plots/es/core/plots/scatter/index.js.map +1 -0
  398. package/dist/node_modules/@ant-design/plots/es/core/plots/stock/adaptor.js +13 -0
  399. package/dist/node_modules/@ant-design/plots/es/core/plots/stock/adaptor.js.map +1 -0
  400. package/dist/node_modules/@ant-design/plots/es/core/plots/stock/index.js +72 -0
  401. package/dist/node_modules/@ant-design/plots/es/core/plots/stock/index.js.map +1 -0
  402. package/dist/node_modules/@ant-design/plots/es/core/plots/sunburst/adaptor.js +10 -0
  403. package/dist/node_modules/@ant-design/plots/es/core/plots/sunburst/adaptor.js.map +1 -0
  404. package/dist/node_modules/@ant-design/plots/es/core/plots/sunburst/index.js +40 -0
  405. package/dist/node_modules/@ant-design/plots/es/core/plots/sunburst/index.js.map +1 -0
  406. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-area/adaptor.js +10 -0
  407. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-area/adaptor.js.map +1 -0
  408. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-area/index.js +49 -0
  409. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-area/index.js.map +1 -0
  410. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-column/adaptor.js +10 -0
  411. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-column/adaptor.js.map +1 -0
  412. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-column/index.js +46 -0
  413. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-column/index.js.map +1 -0
  414. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-line/adaptor.js +10 -0
  415. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-line/adaptor.js.map +1 -0
  416. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-line/index.js +50 -0
  417. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-line/index.js.map +1 -0
  418. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-progress/adaptor.js +31 -0
  419. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-progress/adaptor.js.map +1 -0
  420. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-progress/index.js +60 -0
  421. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-progress/index.js.map +1 -0
  422. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-ring/adaptor.js +34 -0
  423. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-ring/adaptor.js.map +1 -0
  424. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-ring/index.js +61 -0
  425. package/dist/node_modules/@ant-design/plots/es/core/plots/tiny-ring/index.js.map +1 -0
  426. package/dist/node_modules/@ant-design/plots/es/core/plots/treemap/adaptor.js +11 -0
  427. package/dist/node_modules/@ant-design/plots/es/core/plots/treemap/adaptor.js.map +1 -0
  428. package/dist/node_modules/@ant-design/plots/es/core/plots/treemap/index.js +47 -0
  429. package/dist/node_modules/@ant-design/plots/es/core/plots/treemap/index.js.map +1 -0
  430. package/dist/node_modules/@ant-design/plots/es/core/plots/venn/adaptor.js +25 -0
  431. package/dist/node_modules/@ant-design/plots/es/core/plots/venn/adaptor.js.map +1 -0
  432. package/dist/node_modules/@ant-design/plots/es/core/plots/venn/index.js +48 -0
  433. package/dist/node_modules/@ant-design/plots/es/core/plots/venn/index.js.map +1 -0
  434. package/dist/node_modules/@ant-design/plots/es/core/plots/venn/type.js +8 -0
  435. package/dist/node_modules/@ant-design/plots/es/core/plots/venn/type.js.map +1 -0
  436. package/dist/node_modules/@ant-design/plots/es/core/plots/violin/adaptor.js +38 -0
  437. package/dist/node_modules/@ant-design/plots/es/core/plots/violin/adaptor.js.map +1 -0
  438. package/dist/node_modules/@ant-design/plots/es/core/plots/violin/index.js +58 -0
  439. package/dist/node_modules/@ant-design/plots/es/core/plots/violin/index.js.map +1 -0
  440. package/dist/node_modules/@ant-design/plots/es/core/plots/waterfall/adaptor.js +63 -0
  441. package/dist/node_modules/@ant-design/plots/es/core/plots/waterfall/adaptor.js.map +1 -0
  442. package/dist/node_modules/@ant-design/plots/es/core/plots/waterfall/constants.js +7 -0
  443. package/dist/node_modules/@ant-design/plots/es/core/plots/waterfall/constants.js.map +1 -0
  444. package/dist/node_modules/@ant-design/plots/es/core/plots/waterfall/index.js +68 -0
  445. package/dist/node_modules/@ant-design/plots/es/core/plots/waterfall/index.js.map +1 -0
  446. package/dist/node_modules/@ant-design/plots/es/core/plots/wordCloud/adaptor.js +10 -0
  447. package/dist/node_modules/@ant-design/plots/es/core/plots/wordCloud/adaptor.js.map +1 -0
  448. package/dist/node_modules/@ant-design/plots/es/core/plots/wordCloud/index.js +40 -0
  449. package/dist/node_modules/@ant-design/plots/es/core/plots/wordCloud/index.js.map +1 -0
  450. package/dist/node_modules/@ant-design/plots/es/core/utils/data-transform.js +9 -0
  451. package/dist/node_modules/@ant-design/plots/es/core/utils/data-transform.js.map +1 -0
  452. package/dist/node_modules/@ant-design/plots/es/core/utils/delete-excess-keys.js +25 -0
  453. package/dist/node_modules/@ant-design/plots/es/core/utils/delete-excess-keys.js.map +1 -0
  454. package/dist/node_modules/@ant-design/plots/es/core/utils/field-adapter.js +19 -0
  455. package/dist/node_modules/@ant-design/plots/es/core/utils/field-adapter.js.map +1 -0
  456. package/dist/node_modules/@ant-design/plots/es/core/utils/filter-transformed.js +16 -0
  457. package/dist/node_modules/@ant-design/plots/es/core/utils/filter-transformed.js.map +1 -0
  458. package/dist/node_modules/@ant-design/plots/es/core/utils/merge-with-array-coverage.js +17 -0
  459. package/dist/node_modules/@ant-design/plots/es/core/utils/merge-with-array-coverage.js.map +1 -0
  460. package/dist/node_modules/@ant-design/plots/es/core/utils/transform.js +68 -0
  461. package/dist/node_modules/@ant-design/plots/es/core/utils/transform.js.map +1 -0
  462. package/dist/node_modules/@ant-design/plots/es/hooks/useChart.js +67 -0
  463. package/dist/node_modules/@ant-design/plots/es/hooks/useChart.js.map +1 -0
  464. package/dist/node_modules/@ant-design/plots/es/hooks/useConfig.js +9 -0
  465. package/dist/node_modules/@ant-design/plots/es/hooks/useConfig.js.map +1 -0
  466. package/dist/node_modules/@ant-design/plots/es/util/is-valid-element.js +29 -0
  467. package/dist/node_modules/@ant-design/plots/es/util/is-valid-element.js.map +1 -0
  468. package/dist/node_modules/@ant-design/plots/es/util/makeChartComp.js +26 -0
  469. package/dist/node_modules/@ant-design/plots/es/util/makeChartComp.js.map +1 -0
  470. package/dist/node_modules/@ant-design/plots/es/util/scale.js +22 -0
  471. package/dist/node_modules/@ant-design/plots/es/util/scale.js.map +1 -0
  472. package/dist/node_modules/@antv/algorithm/es/degree.js +16 -0
  473. package/dist/node_modules/@antv/algorithm/es/degree.js.map +1 -0
  474. package/dist/node_modules/@antv/algorithm/es/dijkstra.js +58 -0
  475. package/dist/node_modules/@antv/algorithm/es/dijkstra.js.map +1 -0
  476. package/dist/node_modules/@antv/algorithm/es/find-path.js +13 -0
  477. package/dist/node_modules/@antv/algorithm/es/find-path.js.map +1 -0
  478. package/dist/node_modules/@antv/algorithm/es/pageRank.js +35 -0
  479. package/dist/node_modules/@antv/algorithm/es/pageRank.js.map +1 -0
  480. package/dist/node_modules/@antv/algorithm/es/structs/linked-list.js +81 -0
  481. package/dist/node_modules/@antv/algorithm/es/structs/linked-list.js.map +1 -0
  482. package/dist/node_modules/@antv/algorithm/es/structs/stack.js +32 -0
  483. package/dist/node_modules/@antv/algorithm/es/structs/stack.js.map +1 -0
  484. package/dist/node_modules/@antv/algorithm/es/types.js +8 -0
  485. package/dist/node_modules/@antv/algorithm/es/types.js.map +1 -0
  486. package/dist/node_modules/@antv/algorithm/es/util.js +40 -0
  487. package/dist/node_modules/@antv/algorithm/es/util.js.map +1 -0
  488. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/each.js +19 -0
  489. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/each.js.map +1 -0
  490. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/is-array.js +8 -0
  491. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/is-array.js.map +1 -0
  492. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/is-function.js +8 -0
  493. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/is-function.js.map +1 -0
  494. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/is-object.js +8 -0
  495. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/is-object.js.map +1 -0
  496. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/is-string.js +8 -0
  497. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/is-string.js.map +1 -0
  498. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/is-type.js +7 -0
  499. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/is-type.js.map +1 -0
  500. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/measure-text-width.js +13 -0
  501. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/measure-text-width.js.map +1 -0
  502. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/memoize.js +19 -0
  503. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/memoize.js.map +1 -0
  504. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/values.js +14 -0
  505. package/dist/node_modules/@antv/algorithm/node_modules/@antv/util/esm/values.js.map +1 -0
  506. package/dist/node_modules/@antv/component/esm/animation/fadeOut.js +8 -0
  507. package/dist/node_modules/@antv/component/esm/animation/fadeOut.js.map +1 -0
  508. package/dist/node_modules/@antv/component/esm/animation/utils.js +76 -0
  509. package/dist/node_modules/@antv/component/esm/animation/utils.js.map +1 -0
  510. package/dist/node_modules/@antv/component/esm/core/component.js +53 -0
  511. package/dist/node_modules/@antv/component/esm/core/component.js.map +1 -0
  512. package/dist/node_modules/@antv/component/esm/shapes/Text.js +29 -0
  513. package/dist/node_modules/@antv/component/esm/shapes/Text.js.map +1 -0
  514. package/dist/node_modules/@antv/component/esm/ui/axis/axis.js +66 -0
  515. package/dist/node_modules/@antv/component/esm/ui/axis/axis.js.map +1 -0
  516. package/dist/node_modules/@antv/component/esm/ui/axis/classname-map.js +23 -0
  517. package/dist/node_modules/@antv/component/esm/ui/axis/classname-map.js.map +1 -0
  518. package/dist/node_modules/@antv/component/esm/ui/axis/constant.js +95 -0
  519. package/dist/node_modules/@antv/component/esm/ui/axis/constant.js.map +1 -0
  520. package/dist/node_modules/@antv/component/esm/ui/axis/guides/grid.js +70 -0
  521. package/dist/node_modules/@antv/component/esm/ui/axis/guides/grid.js.map +1 -0
  522. package/dist/node_modules/@antv/component/esm/ui/axis/guides/labels.js +143 -0
  523. package/dist/node_modules/@antv/component/esm/ui/axis/guides/labels.js.map +1 -0
  524. package/dist/node_modules/@antv/component/esm/ui/axis/guides/line.js +171 -0
  525. package/dist/node_modules/@antv/component/esm/ui/axis/guides/line.js.map +1 -0
  526. package/dist/node_modules/@antv/component/esm/ui/axis/guides/ticks.js +72 -0
  527. package/dist/node_modules/@antv/component/esm/ui/axis/guides/ticks.js.map +1 -0
  528. package/dist/node_modules/@antv/component/esm/ui/axis/guides/title.js +68 -0
  529. package/dist/node_modules/@antv/component/esm/ui/axis/guides/title.js.map +1 -0
  530. package/dist/node_modules/@antv/component/esm/ui/axis/guides/utils.js +42 -0
  531. package/dist/node_modules/@antv/component/esm/ui/axis/guides/utils.js.map +1 -0
  532. package/dist/node_modules/@antv/component/esm/ui/axis/overlap/autoEllipsis.js +31 -0
  533. package/dist/node_modules/@antv/component/esm/ui/axis/overlap/autoEllipsis.js.map +1 -0
  534. package/dist/node_modules/@antv/component/esm/ui/axis/overlap/autoHide.js +45 -0
  535. package/dist/node_modules/@antv/component/esm/ui/axis/overlap/autoHide.js.map +1 -0
  536. package/dist/node_modules/@antv/component/esm/ui/axis/overlap/autoRotate.js +34 -0
  537. package/dist/node_modules/@antv/component/esm/ui/axis/overlap/autoRotate.js.map +1 -0
  538. package/dist/node_modules/@antv/component/esm/ui/axis/overlap/autoWrap.js +34 -0
  539. package/dist/node_modules/@antv/component/esm/ui/axis/overlap/autoWrap.js.map +1 -0
  540. package/dist/node_modules/@antv/component/esm/ui/axis/overlap/index.js +32 -0
  541. package/dist/node_modules/@antv/component/esm/ui/axis/overlap/index.js.map +1 -0
  542. package/dist/node_modules/@antv/component/esm/ui/axis/utils/bounds.js +78 -0
  543. package/dist/node_modules/@antv/component/esm/ui/axis/utils/bounds.js.map +1 -0
  544. package/dist/node_modules/@antv/component/esm/ui/axis/utils/classname.js +11 -0
  545. package/dist/node_modules/@antv/component/esm/ui/axis/utils/classname.js.map +1 -0
  546. package/dist/node_modules/@antv/component/esm/ui/axis/utils/contain.js +48 -0
  547. package/dist/node_modules/@antv/component/esm/ui/axis/utils/contain.js.map +1 -0
  548. package/dist/node_modules/@antv/component/esm/ui/axis/utils/index.js +14 -0
  549. package/dist/node_modules/@antv/component/esm/ui/axis/utils/index.js.map +1 -0
  550. package/dist/node_modules/@antv/component/esm/ui/axis/utils/intersect.js +51 -0
  551. package/dist/node_modules/@antv/component/esm/ui/axis/utils/intersect.js.map +1 -0
  552. package/dist/node_modules/@antv/component/esm/ui/axis/utils/test.js +45 -0
  553. package/dist/node_modules/@antv/component/esm/ui/axis/utils/test.js.map +1 -0
  554. package/dist/node_modules/@antv/component/esm/ui/grid/index.js +135 -0
  555. package/dist/node_modules/@antv/component/esm/ui/grid/index.js.map +1 -0
  556. package/dist/node_modules/@antv/component/esm/ui/indicator/constant.js +21 -0
  557. package/dist/node_modules/@antv/component/esm/ui/indicator/constant.js.map +1 -0
  558. package/dist/node_modules/@antv/component/esm/ui/indicator/indicator.js +97 -0
  559. package/dist/node_modules/@antv/component/esm/ui/indicator/indicator.js.map +1 -0
  560. package/dist/node_modules/@antv/component/esm/ui/layout/layout.js +74 -0
  561. package/dist/node_modules/@antv/component/esm/ui/layout/layout.js.map +1 -0
  562. package/dist/node_modules/@antv/component/esm/ui/legend/category/item.js +270 -0
  563. package/dist/node_modules/@antv/component/esm/ui/legend/category/item.js.map +1 -0
  564. package/dist/node_modules/@antv/component/esm/ui/legend/category/items.js +195 -0
  565. package/dist/node_modules/@antv/component/esm/ui/legend/category/items.js.map +1 -0
  566. package/dist/node_modules/@antv/component/esm/ui/legend/category.js +86 -0
  567. package/dist/node_modules/@antv/component/esm/ui/legend/category.js.map +1 -0
  568. package/dist/node_modules/@antv/component/esm/ui/legend/classname-map.js +27 -0
  569. package/dist/node_modules/@antv/component/esm/ui/legend/classname-map.js.map +1 -0
  570. package/dist/node_modules/@antv/component/esm/ui/legend/constant.js +67 -0
  571. package/dist/node_modules/@antv/component/esm/ui/legend/constant.js.map +1 -0
  572. package/dist/node_modules/@antv/component/esm/ui/legend/continuous/handle.js +72 -0
  573. package/dist/node_modules/@antv/component/esm/ui/legend/continuous/handle.js.map +1 -0
  574. package/dist/node_modules/@antv/component/esm/ui/legend/continuous/ribbon.js +90 -0
  575. package/dist/node_modules/@antv/component/esm/ui/legend/continuous/ribbon.js.map +1 -0
  576. package/dist/node_modules/@antv/component/esm/ui/legend/continuous/utils.js +25 -0
  577. package/dist/node_modules/@antv/component/esm/ui/legend/continuous/utils.js.map +1 -0
  578. package/dist/node_modules/@antv/component/esm/ui/legend/continuous.js +457 -0
  579. package/dist/node_modules/@antv/component/esm/ui/legend/continuous.js.map +1 -0
  580. package/dist/node_modules/@antv/component/esm/ui/legend/title/index.js +86 -0
  581. package/dist/node_modules/@antv/component/esm/ui/legend/title/index.js.map +1 -0
  582. package/dist/node_modules/@antv/component/esm/ui/legend/utils/classname.js +7 -0
  583. package/dist/node_modules/@antv/component/esm/ui/legend/utils/classname.js.map +1 -0
  584. package/dist/node_modules/@antv/component/esm/ui/legend/utils.js +62 -0
  585. package/dist/node_modules/@antv/component/esm/ui/legend/utils.js.map +1 -0
  586. package/dist/node_modules/@antv/component/esm/ui/marker/index.js +72 -0
  587. package/dist/node_modules/@antv/component/esm/ui/marker/index.js.map +1 -0
  588. package/dist/node_modules/@antv/component/esm/ui/marker/symbol.js +151 -0
  589. package/dist/node_modules/@antv/component/esm/ui/marker/symbol.js.map +1 -0
  590. package/dist/node_modules/@antv/component/esm/ui/marker/utils.js +19 -0
  591. package/dist/node_modules/@antv/component/esm/ui/marker/utils.js.map +1 -0
  592. package/dist/node_modules/@antv/component/esm/ui/navigator/index.js +232 -0
  593. package/dist/node_modules/@antv/component/esm/ui/navigator/index.js.map +1 -0
  594. package/dist/node_modules/@antv/component/esm/ui/poptip/constant.js +117 -0
  595. package/dist/node_modules/@antv/component/esm/ui/poptip/constant.js.map +1 -0
  596. package/dist/node_modules/@antv/component/esm/ui/poptip/index.js +131 -0
  597. package/dist/node_modules/@antv/component/esm/ui/poptip/index.js.map +1 -0
  598. package/dist/node_modules/@antv/component/esm/ui/poptip/utils.js +50 -0
  599. package/dist/node_modules/@antv/component/esm/ui/poptip/utils.js.map +1 -0
  600. package/dist/node_modules/@antv/component/esm/ui/scrollbar/index.js +141 -0
  601. package/dist/node_modules/@antv/component/esm/ui/scrollbar/index.js.map +1 -0
  602. package/dist/node_modules/@antv/component/esm/ui/select/option.js +57 -0
  603. package/dist/node_modules/@antv/component/esm/ui/select/option.js.map +1 -0
  604. package/dist/node_modules/@antv/component/esm/ui/select/select.js +153 -0
  605. package/dist/node_modules/@antv/component/esm/ui/select/select.js.map +1 -0
  606. package/dist/node_modules/@antv/component/esm/ui/slider/constant.js +38 -0
  607. package/dist/node_modules/@antv/component/esm/ui/slider/constant.js.map +1 -0
  608. package/dist/node_modules/@antv/component/esm/ui/slider/handle.js +66 -0
  609. package/dist/node_modules/@antv/component/esm/ui/slider/handle.js.map +1 -0
  610. package/dist/node_modules/@antv/component/esm/ui/slider/index.js +308 -0
  611. package/dist/node_modules/@antv/component/esm/ui/slider/index.js.map +1 -0
  612. package/dist/node_modules/@antv/component/esm/ui/sparkline/columns.js +37 -0
  613. package/dist/node_modules/@antv/component/esm/ui/sparkline/columns.js.map +1 -0
  614. package/dist/node_modules/@antv/component/esm/ui/sparkline/index.js +189 -0
  615. package/dist/node_modules/@antv/component/esm/ui/sparkline/index.js.map +1 -0
  616. package/dist/node_modules/@antv/component/esm/ui/sparkline/lines.js +51 -0
  617. package/dist/node_modules/@antv/component/esm/ui/sparkline/lines.js.map +1 -0
  618. package/dist/node_modules/@antv/component/esm/ui/sparkline/path.js +76 -0
  619. package/dist/node_modules/@antv/component/esm/ui/sparkline/path.js.map +1 -0
  620. package/dist/node_modules/@antv/component/esm/ui/sparkline/utils.js +27 -0
  621. package/dist/node_modules/@antv/component/esm/ui/sparkline/utils.js.map +1 -0
  622. package/dist/node_modules/@antv/component/esm/ui/timebar/controller.js +96 -0
  623. package/dist/node_modules/@antv/component/esm/ui/timebar/controller.js.map +1 -0
  624. package/dist/node_modules/@antv/component/esm/ui/timebar/handle.js +73 -0
  625. package/dist/node_modules/@antv/component/esm/ui/timebar/handle.js.map +1 -0
  626. package/dist/node_modules/@antv/component/esm/ui/timebar/icons.js +598 -0
  627. package/dist/node_modules/@antv/component/esm/ui/timebar/icons.js.map +1 -0
  628. package/dist/node_modules/@antv/component/esm/ui/timebar/timebar.js +335 -0
  629. package/dist/node_modules/@antv/component/esm/ui/timebar/timebar.js.map +1 -0
  630. package/dist/node_modules/@antv/component/esm/ui/timebar/utils.js +43 -0
  631. package/dist/node_modules/@antv/component/esm/ui/timebar/utils.js.map +1 -0
  632. package/dist/node_modules/@antv/component/esm/ui/tooltip/constant.js +79 -0
  633. package/dist/node_modules/@antv/component/esm/ui/tooltip/constant.js.map +1 -0
  634. package/dist/node_modules/@antv/component/esm/ui/tooltip/index.js +157 -0
  635. package/dist/node_modules/@antv/component/esm/ui/tooltip/index.js.map +1 -0
  636. package/dist/node_modules/@antv/component/esm/util/angle-converter.js +11 -0
  637. package/dist/node_modules/@antv/component/esm/util/angle-converter.js.map +1 -0
  638. package/dist/node_modules/@antv/component/esm/util/bbox.js +52 -0
  639. package/dist/node_modules/@antv/component/esm/util/bbox.js.map +1 -0
  640. package/dist/node_modules/@antv/component/esm/util/callback.js +9 -0
  641. package/dist/node_modules/@antv/component/esm/util/callback.js.map +1 -0
  642. package/dist/node_modules/@antv/component/esm/util/classnames.js +24 -0
  643. package/dist/node_modules/@antv/component/esm/util/classnames.js.map +1 -0
  644. package/dist/node_modules/@antv/component/esm/util/deep-assign.js +19 -0
  645. package/dist/node_modules/@antv/component/esm/util/deep-assign.js.map +1 -0
  646. package/dist/node_modules/@antv/component/esm/util/defined.js +7 -0
  647. package/dist/node_modules/@antv/component/esm/util/defined.js.map +1 -0
  648. package/dist/node_modules/@antv/component/esm/util/ellipsis.js +8 -0
  649. package/dist/node_modules/@antv/component/esm/util/ellipsis.js.map +1 -0
  650. package/dist/node_modules/@antv/component/esm/util/event.js +27 -0
  651. package/dist/node_modules/@antv/component/esm/util/event.js.map +1 -0
  652. package/dist/node_modules/@antv/component/esm/util/extend-display-object.js +18 -0
  653. package/dist/node_modules/@antv/component/esm/util/extend-display-object.js.map +1 -0
  654. package/dist/node_modules/@antv/component/esm/util/group-by.js +9 -0
  655. package/dist/node_modules/@antv/component/esm/util/group-by.js.map +1 -0
  656. package/dist/node_modules/@antv/component/esm/util/group.js +11 -0
  657. package/dist/node_modules/@antv/component/esm/util/group.js.map +1 -0
  658. package/dist/node_modules/@antv/component/esm/util/if-show.js +9 -0
  659. package/dist/node_modules/@antv/component/esm/util/if-show.js.map +1 -0
  660. package/dist/node_modules/@antv/component/esm/util/in-range.js +7 -0
  661. package/dist/node_modules/@antv/component/esm/util/in-range.js.map +1 -0
  662. package/dist/node_modules/@antv/component/esm/util/interpolate.js +44 -0
  663. package/dist/node_modules/@antv/component/esm/util/interpolate.js.map +1 -0
  664. package/dist/node_modules/@antv/component/esm/util/keyframe-interpolate.js +14 -0
  665. package/dist/node_modules/@antv/component/esm/util/keyframe-interpolate.js.map +1 -0
  666. package/dist/node_modules/@antv/component/esm/util/layout/executer.js +12 -0
  667. package/dist/node_modules/@antv/component/esm/util/layout/executer.js.map +1 -0
  668. package/dist/node_modules/@antv/component/esm/util/layout/flex/index.js +45 -0
  669. package/dist/node_modules/@antv/component/esm/util/layout/flex/index.js.map +1 -0
  670. package/dist/node_modules/@antv/component/esm/util/layout/grid/index.js +7 -0
  671. package/dist/node_modules/@antv/component/esm/util/layout/grid/index.js.map +1 -0
  672. package/dist/node_modules/@antv/component/esm/util/layout/utils/helper.js +13 -0
  673. package/dist/node_modules/@antv/component/esm/util/layout/utils/helper.js.map +1 -0
  674. package/dist/node_modules/@antv/component/esm/util/matrix.js +38 -0
  675. package/dist/node_modules/@antv/component/esm/util/matrix.js.map +1 -0
  676. package/dist/node_modules/@antv/component/esm/util/number.js +7 -0
  677. package/dist/node_modules/@antv/component/esm/util/number.js.map +1 -0
  678. package/dist/node_modules/@antv/component/esm/util/offscreen.js +38 -0
  679. package/dist/node_modules/@antv/component/esm/util/offscreen.js.map +1 -0
  680. package/dist/node_modules/@antv/component/esm/util/omit.js +10 -0
  681. package/dist/node_modules/@antv/component/esm/util/omit.js.map +1 -0
  682. package/dist/node_modules/@antv/component/esm/util/parse-height-from-html.js +44 -0
  683. package/dist/node_modules/@antv/component/esm/util/parse-height-from-html.js.map +1 -0
  684. package/dist/node_modules/@antv/component/esm/util/pase-position.js +9 -0
  685. package/dist/node_modules/@antv/component/esm/util/pase-position.js.map +1 -0
  686. package/dist/node_modules/@antv/component/esm/util/path.js +45 -0
  687. package/dist/node_modules/@antv/component/esm/util/path.js.map +1 -0
  688. package/dist/node_modules/@antv/component/esm/util/primitive.js +91 -0
  689. package/dist/node_modules/@antv/component/esm/util/primitive.js.map +1 -0
  690. package/dist/node_modules/@antv/component/esm/util/replace-children.js +14 -0
  691. package/dist/node_modules/@antv/component/esm/util/replace-children.js.map +1 -0
  692. package/dist/node_modules/@antv/component/esm/util/sampling.js +11 -0
  693. package/dist/node_modules/@antv/component/esm/util/sampling.js.map +1 -0
  694. package/dist/node_modules/@antv/component/esm/util/scale-to-pixel.js +8 -0
  695. package/dist/node_modules/@antv/component/esm/util/scale-to-pixel.js.map +1 -0
  696. package/dist/node_modules/@antv/component/esm/util/selection.js +238 -0
  697. package/dist/node_modules/@antv/component/esm/util/selection.js.map +1 -0
  698. package/dist/node_modules/@antv/component/esm/util/series.js +22 -0
  699. package/dist/node_modules/@antv/component/esm/util/series.js.map +1 -0
  700. package/dist/node_modules/@antv/component/esm/util/shape.js +32 -0
  701. package/dist/node_modules/@antv/component/esm/util/shape.js.map +1 -0
  702. package/dist/node_modules/@antv/component/esm/util/string.js +22 -0
  703. package/dist/node_modules/@antv/component/esm/util/string.js.map +1 -0
  704. package/dist/node_modules/@antv/component/esm/util/style.js +74 -0
  705. package/dist/node_modules/@antv/component/esm/util/style.js.map +1 -0
  706. package/dist/node_modules/@antv/component/esm/util/text.js +26 -0
  707. package/dist/node_modules/@antv/component/esm/util/text.js.map +1 -0
  708. package/dist/node_modules/@antv/component/esm/util/time.js +18 -0
  709. package/dist/node_modules/@antv/component/esm/util/time.js.map +1 -0
  710. package/dist/node_modules/@antv/component/esm/util/transform.js +23 -0
  711. package/dist/node_modules/@antv/component/esm/util/transform.js.map +1 -0
  712. package/dist/node_modules/@antv/component/esm/util/transpose.js +12 -0
  713. package/dist/node_modules/@antv/component/esm/util/transpose.js.map +1 -0
  714. package/dist/node_modules/@antv/component/esm/util/traverse.js +9 -0
  715. package/dist/node_modules/@antv/component/esm/util/traverse.js.map +1 -0
  716. package/dist/node_modules/@antv/component/esm/util/visibility.js +19 -0
  717. package/dist/node_modules/@antv/component/esm/util/visibility.js.map +1 -0
  718. package/dist/node_modules/@antv/component/esm/util/wrap.js +8 -0
  719. package/dist/node_modules/@antv/component/esm/util/wrap.js.map +1 -0
  720. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/scales/band.js +113 -0
  721. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/scales/band.js.map +1 -0
  722. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/scales/base.js +36 -0
  723. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/scales/base.js.map +1 -0
  724. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/scales/continuous.js +85 -0
  725. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/scales/continuous.js.map +1 -0
  726. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/scales/linear.js +29 -0
  727. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/scales/linear.js.map +1 -0
  728. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/scales/ordinal.js +77 -0
  729. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/scales/ordinal.js.map +1 -0
  730. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/tick-methods/d3-ticks.js +23 -0
  731. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/tick-methods/d3-ticks.js.map +1 -0
  732. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/bisect.js +13 -0
  733. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/bisect.js.map +1 -0
  734. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/clamp.js +8 -0
  735. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/clamp.js.map +1 -0
  736. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/color.js +23 -0
  737. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/color.js.map +1 -0
  738. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/compose.js +7 -0
  739. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/compose.js.map +1 -0
  740. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/d3-linear-nice.js +10 -0
  741. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/d3-linear-nice.js.map +1 -0
  742. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/internMap.js +38 -0
  743. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/internMap.js.map +1 -0
  744. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/interpolate.js +23 -0
  745. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/interpolate.js.map +1 -0
  746. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/is-valid.js +9 -0
  747. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/is-valid.js.map +1 -0
  748. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/normalize.js +7 -0
  749. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/normalize.js.map +1 -0
  750. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/ticks.js +9 -0
  751. package/dist/node_modules/@antv/component/node_modules/@antv/scale/esm/utils/ticks.js.map +1 -0
  752. package/dist/node_modules/@antv/coord/esm/coordinate.js +171 -0
  753. package/dist/node_modules/@antv/coord/esm/coordinate.js.map +1 -0
  754. package/dist/node_modules/@antv/coord/esm/coordinate3D.js +158 -0
  755. package/dist/node_modules/@antv/coord/esm/coordinate3D.js.map +1 -0
  756. package/dist/node_modules/@antv/coord/esm/transforms/cartesian.js +38 -0
  757. package/dist/node_modules/@antv/coord/esm/transforms/cartesian.js.map +1 -0
  758. package/dist/node_modules/@antv/coord/esm/transforms/cartesian3D.js +40 -0
  759. package/dist/node_modules/@antv/coord/esm/transforms/cartesian3D.js.map +1 -0
  760. package/dist/node_modules/@antv/coord/esm/transforms/custom.js +24 -0
  761. package/dist/node_modules/@antv/coord/esm/transforms/custom.js.map +1 -0
  762. package/dist/node_modules/@antv/coord/esm/transforms/fisheye.js +101 -0
  763. package/dist/node_modules/@antv/coord/esm/transforms/fisheye.js.map +1 -0
  764. package/dist/node_modules/@antv/coord/esm/transforms/helix.js +42 -0
  765. package/dist/node_modules/@antv/coord/esm/transforms/helix.js.map +1 -0
  766. package/dist/node_modules/@antv/coord/esm/transforms/matrix.js +24 -0
  767. package/dist/node_modules/@antv/coord/esm/transforms/matrix.js.map +1 -0
  768. package/dist/node_modules/@antv/coord/esm/transforms/parallel.js +48 -0
  769. package/dist/node_modules/@antv/coord/esm/transforms/parallel.js.map +1 -0
  770. package/dist/node_modules/@antv/coord/esm/transforms/polar.js +41 -0
  771. package/dist/node_modules/@antv/coord/esm/transforms/polar.js.map +1 -0
  772. package/dist/node_modules/@antv/coord/esm/transforms/reflect.js +40 -0
  773. package/dist/node_modules/@antv/coord/esm/transforms/reflect.js.map +1 -0
  774. package/dist/node_modules/@antv/coord/esm/transforms/rotate.js +25 -0
  775. package/dist/node_modules/@antv/coord/esm/transforms/rotate.js.map +1 -0
  776. package/dist/node_modules/@antv/coord/esm/transforms/scale.js +25 -0
  777. package/dist/node_modules/@antv/coord/esm/transforms/scale.js.map +1 -0
  778. package/dist/node_modules/@antv/coord/esm/transforms/scale3D.js +25 -0
  779. package/dist/node_modules/@antv/coord/esm/transforms/scale3D.js.map +1 -0
  780. package/dist/node_modules/@antv/coord/esm/transforms/shear.js +50 -0
  781. package/dist/node_modules/@antv/coord/esm/transforms/shear.js.map +1 -0
  782. package/dist/node_modules/@antv/coord/esm/transforms/translate.js +25 -0
  783. package/dist/node_modules/@antv/coord/esm/transforms/translate.js.map +1 -0
  784. package/dist/node_modules/@antv/coord/esm/transforms/translate3D.js +25 -0
  785. package/dist/node_modules/@antv/coord/esm/transforms/translate3D.js.map +1 -0
  786. package/dist/node_modules/@antv/coord/esm/transforms/transpose.js +32 -0
  787. package/dist/node_modules/@antv/coord/esm/transforms/transpose.js.map +1 -0
  788. package/dist/node_modules/@antv/coord/esm/transforms/transpose3D.js +32 -0
  789. package/dist/node_modules/@antv/coord/esm/transforms/transpose3D.js.map +1 -0
  790. package/dist/node_modules/@antv/coord/esm/utils/adjustAngle.js +11 -0
  791. package/dist/node_modules/@antv/coord/esm/utils/adjustAngle.js.map +1 -0
  792. package/dist/node_modules/@antv/coord/esm/utils/compose.js +15 -0
  793. package/dist/node_modules/@antv/coord/esm/utils/compose.js.map +1 -0
  794. package/dist/node_modules/@antv/coord/esm/utils/extend.js +44 -0
  795. package/dist/node_modules/@antv/coord/esm/utils/extend.js.map +1 -0
  796. package/dist/node_modules/@antv/coord/esm/utils/isMatrix.js +7 -0
  797. package/dist/node_modules/@antv/coord/esm/utils/isMatrix.js.map +1 -0
  798. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/band.js +113 -0
  799. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/band.js.map +1 -0
  800. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/base.js +36 -0
  801. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/base.js.map +1 -0
  802. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/continuous.js +85 -0
  803. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/continuous.js.map +1 -0
  804. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/linear.js +29 -0
  805. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/linear.js.map +1 -0
  806. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/ordinal.js +77 -0
  807. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/ordinal.js.map +1 -0
  808. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/point.js +38 -0
  809. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/scales/point.js.map +1 -0
  810. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/tick-methods/d3-ticks.js +23 -0
  811. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/tick-methods/d3-ticks.js.map +1 -0
  812. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/bisect.js +13 -0
  813. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/bisect.js.map +1 -0
  814. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/clamp.js +8 -0
  815. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/clamp.js.map +1 -0
  816. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/color.js +23 -0
  817. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/color.js.map +1 -0
  818. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/compose.js +7 -0
  819. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/compose.js.map +1 -0
  820. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/d3-linear-nice.js +10 -0
  821. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/d3-linear-nice.js.map +1 -0
  822. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/internMap.js +38 -0
  823. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/internMap.js.map +1 -0
  824. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/interpolate.js +23 -0
  825. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/interpolate.js.map +1 -0
  826. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/is-valid.js +9 -0
  827. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/is-valid.js.map +1 -0
  828. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/normalize.js +7 -0
  829. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/normalize.js.map +1 -0
  830. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/ticks.js +9 -0
  831. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/esm/utils/ticks.js.map +1 -0
  832. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/deep-mix.js +29 -0
  833. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/deep-mix.js.map +1 -0
  834. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/identity.js +7 -0
  835. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/identity.js.map +1 -0
  836. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-array.js +7 -0
  837. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-array.js.map +1 -0
  838. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-null.js +7 -0
  839. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-null.js.map +1 -0
  840. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-object-like.js +7 -0
  841. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-object-like.js.map +1 -0
  842. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-plain-object.js +15 -0
  843. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-plain-object.js.map +1 -0
  844. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-type.js +7 -0
  845. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-type.js.map +1 -0
  846. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-undefined.js +7 -0
  847. package/dist/node_modules/@antv/coord/node_modules/@antv/scale/node_modules/@antv/util/esm/lodash/is-undefined.js.map +1 -0
  848. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/deep-mix.js +22 -0
  849. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/deep-mix.js.map +1 -0
  850. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/each.js +19 -0
  851. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/each.js.map +1 -0
  852. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/identity.js +7 -0
  853. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/identity.js.map +1 -0
  854. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-array.js +8 -0
  855. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-array.js.map +1 -0
  856. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-function.js +8 -0
  857. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-function.js.map +1 -0
  858. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-object-like.js +7 -0
  859. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-object-like.js.map +1 -0
  860. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-object.js +8 -0
  861. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-object.js.map +1 -0
  862. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-plain-object.js +15 -0
  863. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-plain-object.js.map +1 -0
  864. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-string.js +8 -0
  865. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-string.js.map +1 -0
  866. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-type.js +7 -0
  867. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/is-type.js.map +1 -0
  868. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/measure-text-width.js +13 -0
  869. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/measure-text-width.js.map +1 -0
  870. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/memoize.js +19 -0
  871. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/memoize.js.map +1 -0
  872. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/values.js +14 -0
  873. package/dist/node_modules/@antv/coord/node_modules/@antv/util/esm/values.js.map +1 -0
  874. package/dist/node_modules/@antv/event-emitter/esm/index.js +44 -0
  875. package/dist/node_modules/@antv/event-emitter/esm/index.js.map +1 -0
  876. package/dist/node_modules/@antv/expr/dist/index.esm.js +297 -0
  877. package/dist/node_modules/@antv/expr/dist/index.esm.js.map +1 -0
  878. package/dist/node_modules/@antv/g/dist/index.esm.js +1468 -0
  879. package/dist/node_modules/@antv/g/dist/index.esm.js.map +1 -0
  880. package/dist/node_modules/@antv/g-canvas/dist/index.esm.js +1242 -0
  881. package/dist/node_modules/@antv/g-canvas/dist/index.esm.js.map +1 -0
  882. package/dist/node_modules/@antv/g-lite/dist/index.esm.js +10271 -0
  883. package/dist/node_modules/@antv/g-lite/dist/index.esm.js.map +1 -0
  884. package/dist/node_modules/@antv/g-math/dist/index.esm.js +190 -0
  885. package/dist/node_modules/@antv/g-math/dist/index.esm.js.map +1 -0
  886. package/dist/node_modules/@antv/g-plugin-dragndrop/dist/index.esm.js +121 -0
  887. package/dist/node_modules/@antv/g-plugin-dragndrop/dist/index.esm.js.map +1 -0
  888. package/dist/node_modules/@antv/g2/esm/animation/fadeIn.js +16 -0
  889. package/dist/node_modules/@antv/g2/esm/animation/fadeIn.js.map +1 -0
  890. package/dist/node_modules/@antv/g2/esm/animation/fadeOut.js +16 -0
  891. package/dist/node_modules/@antv/g2/esm/animation/fadeOut.js.map +1 -0
  892. package/dist/node_modules/@antv/g2/esm/animation/growInX.js +16 -0
  893. package/dist/node_modules/@antv/g2/esm/animation/growInX.js.map +1 -0
  894. package/dist/node_modules/@antv/g2/esm/animation/growInY.js +16 -0
  895. package/dist/node_modules/@antv/g2/esm/animation/growInY.js.map +1 -0
  896. package/dist/node_modules/@antv/g2/esm/animation/morphing.js +149 -0
  897. package/dist/node_modules/@antv/g2/esm/animation/morphing.js.map +1 -0
  898. package/dist/node_modules/@antv/g2/esm/animation/pathIn.js +13 -0
  899. package/dist/node_modules/@antv/g2/esm/animation/pathIn.js.map +1 -0
  900. package/dist/node_modules/@antv/g2/esm/animation/scaleInX.js +35 -0
  901. package/dist/node_modules/@antv/g2/esm/animation/scaleInX.js.map +1 -0
  902. package/dist/node_modules/@antv/g2/esm/animation/scaleInY.js +70 -0
  903. package/dist/node_modules/@antv/g2/esm/animation/scaleInY.js.map +1 -0
  904. package/dist/node_modules/@antv/g2/esm/animation/scaleOutX.js +32 -0
  905. package/dist/node_modules/@antv/g2/esm/animation/scaleOutX.js.map +1 -0
  906. package/dist/node_modules/@antv/g2/esm/animation/scaleOutY.js +32 -0
  907. package/dist/node_modules/@antv/g2/esm/animation/scaleOutY.js.map +1 -0
  908. package/dist/node_modules/@antv/g2/esm/animation/utils.js +47 -0
  909. package/dist/node_modules/@antv/g2/esm/animation/utils.js.map +1 -0
  910. package/dist/node_modules/@antv/g2/esm/animation/waveIn.js +53 -0
  911. package/dist/node_modules/@antv/g2/esm/animation/waveIn.js.map +1 -0
  912. package/dist/node_modules/@antv/g2/esm/animation/zoomIn.js +31 -0
  913. package/dist/node_modules/@antv/g2/esm/animation/zoomIn.js.map +1 -0
  914. package/dist/node_modules/@antv/g2/esm/animation/zoomOut.js +25 -0
  915. package/dist/node_modules/@antv/g2/esm/animation/zoomOut.js.map +1 -0
  916. package/dist/node_modules/@antv/g2/esm/api/composition.js +73 -0
  917. package/dist/node_modules/@antv/g2/esm/api/composition.js.map +1 -0
  918. package/dist/node_modules/@antv/g2/esm/api/define.js +68 -0
  919. package/dist/node_modules/@antv/g2/esm/api/define.js.map +1 -0
  920. package/dist/node_modules/@antv/g2/esm/api/extend.js +12 -0
  921. package/dist/node_modules/@antv/g2/esm/api/extend.js.map +1 -0
  922. package/dist/node_modules/@antv/g2/esm/api/library.js +10 -0
  923. package/dist/node_modules/@antv/g2/esm/api/library.js.map +1 -0
  924. package/dist/node_modules/@antv/g2/esm/api/mark.js +59 -0
  925. package/dist/node_modules/@antv/g2/esm/api/mark.js.map +1 -0
  926. package/dist/node_modules/@antv/g2/esm/api/node.js +86 -0
  927. package/dist/node_modules/@antv/g2/esm/api/node.js.map +1 -0
  928. package/dist/node_modules/@antv/g2/esm/api/props.js +25 -0
  929. package/dist/node_modules/@antv/g2/esm/api/props.js.map +1 -0
  930. package/dist/node_modules/@antv/g2/esm/api/runtime.js +268 -0
  931. package/dist/node_modules/@antv/g2/esm/api/runtime.js.map +1 -0
  932. package/dist/node_modules/@antv/g2/esm/api/utils.js +183 -0
  933. package/dist/node_modules/@antv/g2/esm/api/utils.js.map +1 -0
  934. package/dist/node_modules/@antv/g2/esm/component/axis.js +253 -0
  935. package/dist/node_modules/@antv/g2/esm/component/axis.js.map +1 -0
  936. package/dist/node_modules/@antv/g2/esm/component/axisRadar.js +30 -0
  937. package/dist/node_modules/@antv/g2/esm/component/axisRadar.js.map +1 -0
  938. package/dist/node_modules/@antv/g2/esm/component/axisX.js +10 -0
  939. package/dist/node_modules/@antv/g2/esm/component/axisX.js.map +1 -0
  940. package/dist/node_modules/@antv/g2/esm/component/axisY.js +10 -0
  941. package/dist/node_modules/@antv/g2/esm/component/axisY.js.map +1 -0
  942. package/dist/node_modules/@antv/g2/esm/component/constant.js +247 -0
  943. package/dist/node_modules/@antv/g2/esm/component/constant.js.map +1 -0
  944. package/dist/node_modules/@antv/g2/esm/component/legendCategory.js +150 -0
  945. package/dist/node_modules/@antv/g2/esm/component/legendCategory.js.map +1 -0
  946. package/dist/node_modules/@antv/g2/esm/component/legendContinuous.js +107 -0
  947. package/dist/node_modules/@antv/g2/esm/component/legendContinuous.js.map +1 -0
  948. package/dist/node_modules/@antv/g2/esm/component/legendContinuousBlock.js +7 -0
  949. package/dist/node_modules/@antv/g2/esm/component/legendContinuousBlock.js.map +1 -0
  950. package/dist/node_modules/@antv/g2/esm/component/legendContinuousBlockSize.js +8 -0
  951. package/dist/node_modules/@antv/g2/esm/component/legendContinuousBlockSize.js.map +1 -0
  952. package/dist/node_modules/@antv/g2/esm/component/legendContinuousSize.js +17 -0
  953. package/dist/node_modules/@antv/g2/esm/component/legendContinuousSize.js.map +1 -0
  954. package/dist/node_modules/@antv/g2/esm/component/legends.js +8 -0
  955. package/dist/node_modules/@antv/g2/esm/component/legends.js.map +1 -0
  956. package/dist/node_modules/@antv/g2/esm/component/scrollbar.js +36 -0
  957. package/dist/node_modules/@antv/g2/esm/component/scrollbar.js.map +1 -0
  958. package/dist/node_modules/@antv/g2/esm/component/scrollbarX.js +7 -0
  959. package/dist/node_modules/@antv/g2/esm/component/scrollbarX.js.map +1 -0
  960. package/dist/node_modules/@antv/g2/esm/component/scrollbarY.js +7 -0
  961. package/dist/node_modules/@antv/g2/esm/component/scrollbarY.js.map +1 -0
  962. package/dist/node_modules/@antv/g2/esm/component/slider.js +69 -0
  963. package/dist/node_modules/@antv/g2/esm/component/slider.js.map +1 -0
  964. package/dist/node_modules/@antv/g2/esm/component/sliderX.js +7 -0
  965. package/dist/node_modules/@antv/g2/esm/component/sliderX.js.map +1 -0
  966. package/dist/node_modules/@antv/g2/esm/component/sliderY.js +7 -0
  967. package/dist/node_modules/@antv/g2/esm/component/sliderY.js.map +1 -0
  968. package/dist/node_modules/@antv/g2/esm/component/title.js +67 -0
  969. package/dist/node_modules/@antv/g2/esm/component/title.js.map +1 -0
  970. package/dist/node_modules/@antv/g2/esm/component/utils.js +131 -0
  971. package/dist/node_modules/@antv/g2/esm/component/utils.js.map +1 -0
  972. package/dist/node_modules/@antv/g2/esm/composition/d3Projection.js +51 -0
  973. package/dist/node_modules/@antv/g2/esm/composition/d3Projection.js.map +1 -0
  974. package/dist/node_modules/@antv/g2/esm/composition/facetCircle.js +35 -0
  975. package/dist/node_modules/@antv/g2/esm/composition/facetCircle.js.map +1 -0
  976. package/dist/node_modules/@antv/g2/esm/composition/facetRect.js +196 -0
  977. package/dist/node_modules/@antv/g2/esm/composition/facetRect.js.map +1 -0
  978. package/dist/node_modules/@antv/g2/esm/composition/geoPath.js +33 -0
  979. package/dist/node_modules/@antv/g2/esm/composition/geoPath.js.map +1 -0
  980. package/dist/node_modules/@antv/g2/esm/composition/geoView.js +158 -0
  981. package/dist/node_modules/@antv/g2/esm/composition/geoView.js.map +1 -0
  982. package/dist/node_modules/@antv/g2/esm/composition/mark.js +52 -0
  983. package/dist/node_modules/@antv/g2/esm/composition/mark.js.map +1 -0
  984. package/dist/node_modules/@antv/g2/esm/composition/repeatMatrix.js +110 -0
  985. package/dist/node_modules/@antv/g2/esm/composition/repeatMatrix.js.map +1 -0
  986. package/dist/node_modules/@antv/g2/esm/composition/spaceFlex.js +26 -0
  987. package/dist/node_modules/@antv/g2/esm/composition/spaceFlex.js.map +1 -0
  988. package/dist/node_modules/@antv/g2/esm/composition/spaceLayer.js +24 -0
  989. package/dist/node_modules/@antv/g2/esm/composition/spaceLayer.js.map +1 -0
  990. package/dist/node_modules/@antv/g2/esm/composition/timingKeyframe.js +58 -0
  991. package/dist/node_modules/@antv/g2/esm/composition/timingKeyframe.js.map +1 -0
  992. package/dist/node_modules/@antv/g2/esm/composition/utils.js +36 -0
  993. package/dist/node_modules/@antv/g2/esm/composition/utils.js.map +1 -0
  994. package/dist/node_modules/@antv/g2/esm/composition/view.js +25 -0
  995. package/dist/node_modules/@antv/g2/esm/composition/view.js.map +1 -0
  996. package/dist/node_modules/@antv/g2/esm/coordinate/cartesian.js +6 -0
  997. package/dist/node_modules/@antv/g2/esm/coordinate/cartesian.js.map +1 -0
  998. package/dist/node_modules/@antv/g2/esm/coordinate/fisheye.js +6 -0
  999. package/dist/node_modules/@antv/g2/esm/coordinate/fisheye.js.map +1 -0
  1000. package/dist/node_modules/@antv/g2/esm/coordinate/helix.js +11 -0
  1001. package/dist/node_modules/@antv/g2/esm/coordinate/helix.js.map +1 -0
  1002. package/dist/node_modules/@antv/g2/esm/coordinate/parallel.js +6 -0
  1003. package/dist/node_modules/@antv/g2/esm/coordinate/parallel.js.map +1 -0
  1004. package/dist/node_modules/@antv/g2/esm/coordinate/polar.js +24 -0
  1005. package/dist/node_modules/@antv/g2/esm/coordinate/polar.js.map +1 -0
  1006. package/dist/node_modules/@antv/g2/esm/coordinate/radar.js +14 -0
  1007. package/dist/node_modules/@antv/g2/esm/coordinate/radar.js.map +1 -0
  1008. package/dist/node_modules/@antv/g2/esm/coordinate/radial.js +25 -0
  1009. package/dist/node_modules/@antv/g2/esm/coordinate/radial.js.map +1 -0
  1010. package/dist/node_modules/@antv/g2/esm/coordinate/theta.js +23 -0
  1011. package/dist/node_modules/@antv/g2/esm/coordinate/theta.js.map +1 -0
  1012. package/dist/node_modules/@antv/g2/esm/coordinate/transpose.js +11 -0
  1013. package/dist/node_modules/@antv/g2/esm/coordinate/transpose.js.map +1 -0
  1014. package/dist/node_modules/@antv/g2/esm/data/arc.js +7 -0
  1015. package/dist/node_modules/@antv/g2/esm/data/arc.js.map +1 -0
  1016. package/dist/node_modules/@antv/g2/esm/data/cluster.js +20 -0
  1017. package/dist/node_modules/@antv/g2/esm/data/cluster.js.map +1 -0
  1018. package/dist/node_modules/@antv/g2/esm/data/custom.js +10 -0
  1019. package/dist/node_modules/@antv/g2/esm/data/custom.js.map +1 -0
  1020. package/dist/node_modules/@antv/g2/esm/data/ema.js +31 -0
  1021. package/dist/node_modules/@antv/g2/esm/data/ema.js.map +1 -0
  1022. package/dist/node_modules/@antv/g2/esm/data/fetch.js +48 -0
  1023. package/dist/node_modules/@antv/g2/esm/data/fetch.js.map +1 -0
  1024. package/dist/node_modules/@antv/g2/esm/data/filter.js +13 -0
  1025. package/dist/node_modules/@antv/g2/esm/data/filter.js.map +1 -0
  1026. package/dist/node_modules/@antv/g2/esm/data/fold.js +13 -0
  1027. package/dist/node_modules/@antv/g2/esm/data/fold.js.map +1 -0
  1028. package/dist/node_modules/@antv/g2/esm/data/inline.js +9 -0
  1029. package/dist/node_modules/@antv/g2/esm/data/inline.js.map +1 -0
  1030. package/dist/node_modules/@antv/g2/esm/data/join.js +21 -0
  1031. package/dist/node_modules/@antv/g2/esm/data/join.js.map +1 -0
  1032. package/dist/node_modules/@antv/g2/esm/data/kde.js +19 -0
  1033. package/dist/node_modules/@antv/g2/esm/data/kde.js.map +1 -0
  1034. package/dist/node_modules/@antv/g2/esm/data/log.js +6 -0
  1035. package/dist/node_modules/@antv/g2/esm/data/log.js.map +1 -0
  1036. package/dist/node_modules/@antv/g2/esm/data/map.js +10 -0
  1037. package/dist/node_modules/@antv/g2/esm/data/map.js.map +1 -0
  1038. package/dist/node_modules/@antv/g2/esm/data/pick.js +12 -0
  1039. package/dist/node_modules/@antv/g2/esm/data/pick.js.map +1 -0
  1040. package/dist/node_modules/@antv/g2/esm/data/rename.js +15 -0
  1041. package/dist/node_modules/@antv/g2/esm/data/rename.js.map +1 -0
  1042. package/dist/node_modules/@antv/g2/esm/data/sankey.js +46 -0
  1043. package/dist/node_modules/@antv/g2/esm/data/sankey.js.map +1 -0
  1044. package/dist/node_modules/@antv/g2/esm/data/slice.js +9 -0
  1045. package/dist/node_modules/@antv/g2/esm/data/slice.js.map +1 -0
  1046. package/dist/node_modules/@antv/g2/esm/data/sort.js +9 -0
  1047. package/dist/node_modules/@antv/g2/esm/data/sort.js.map +1 -0
  1048. package/dist/node_modules/@antv/g2/esm/data/sortBy.js +13 -0
  1049. package/dist/node_modules/@antv/g2/esm/data/sortBy.js.map +1 -0
  1050. package/dist/node_modules/@antv/g2/esm/data/tree.js +8 -0
  1051. package/dist/node_modules/@antv/g2/esm/data/tree.js.map +1 -0
  1052. package/dist/node_modules/@antv/g2/esm/data/utils/arc/arc.js +86 -0
  1053. package/dist/node_modules/@antv/g2/esm/data/utils/arc/arc.js.map +1 -0
  1054. package/dist/node_modules/@antv/g2/esm/data/utils/arc/sort.js +19 -0
  1055. package/dist/node_modules/@antv/g2/esm/data/utils/arc/sort.js.map +1 -0
  1056. package/dist/node_modules/@antv/g2/esm/data/utils/d3-cloud/index.js +235 -0
  1057. package/dist/node_modules/@antv/g2/esm/data/utils/d3-cloud/index.js.map +1 -0
  1058. package/dist/node_modules/@antv/g2/esm/data/utils/d3-sankey/align.js +23 -0
  1059. package/dist/node_modules/@antv/g2/esm/data/utils/d3-sankey/align.js.map +1 -0
  1060. package/dist/node_modules/@antv/g2/esm/data/utils/d3-sankey/constant.js +9 -0
  1061. package/dist/node_modules/@antv/g2/esm/data/utils/d3-sankey/constant.js.map +1 -0
  1062. package/dist/node_modules/@antv/g2/esm/data/utils/d3-sankey/sankey.js +262 -0
  1063. package/dist/node_modules/@antv/g2/esm/data/utils/d3-sankey/sankey.js.map +1 -0
  1064. package/dist/node_modules/@antv/g2/esm/data/utils/fields.js +13 -0
  1065. package/dist/node_modules/@antv/g2/esm/data/utils/fields.js.map +1 -0
  1066. package/dist/node_modules/@antv/g2/esm/data/utils/flow.js +49 -0
  1067. package/dist/node_modules/@antv/g2/esm/data/utils/flow.js.map +1 -0
  1068. package/dist/node_modules/@antv/g2/esm/data/utils/venn/circleintersection.js +112 -0
  1069. package/dist/node_modules/@antv/g2/esm/data/utils/venn/circleintersection.js.map +1 -0
  1070. package/dist/node_modules/@antv/g2/esm/data/utils/venn/diagram.js +29 -0
  1071. package/dist/node_modules/@antv/g2/esm/data/utils/venn/diagram.js.map +1 -0
  1072. package/dist/node_modules/@antv/g2/esm/data/utils/venn/fmin/bisect.js +22 -0
  1073. package/dist/node_modules/@antv/g2/esm/data/utils/venn/fmin/bisect.js.map +1 -0
  1074. package/dist/node_modules/@antv/g2/esm/data/utils/venn/fmin/blas1.js +35 -0
  1075. package/dist/node_modules/@antv/g2/esm/data/utils/venn/fmin/blas1.js.map +1 -0
  1076. package/dist/node_modules/@antv/g2/esm/data/utils/venn/fmin/conjugateGradient.js +38 -0
  1077. package/dist/node_modules/@antv/g2/esm/data/utils/venn/fmin/conjugateGradient.js.map +1 -0
  1078. package/dist/node_modules/@antv/g2/esm/data/utils/venn/fmin/linesearch.js +31 -0
  1079. package/dist/node_modules/@antv/g2/esm/data/utils/venn/fmin/linesearch.js.map +1 -0
  1080. package/dist/node_modules/@antv/g2/esm/data/utils/venn/fmin/nelderMead.js +60 -0
  1081. package/dist/node_modules/@antv/g2/esm/data/utils/venn/fmin/nelderMead.js.map +1 -0
  1082. package/dist/node_modules/@antv/g2/esm/data/utils/venn/layout.js +249 -0
  1083. package/dist/node_modules/@antv/g2/esm/data/utils/venn/layout.js.map +1 -0
  1084. package/dist/node_modules/@antv/g2/esm/data/venn.js +25 -0
  1085. package/dist/node_modules/@antv/g2/esm/data/venn.js.map +1 -0
  1086. package/dist/node_modules/@antv/g2/esm/data/wordCloud.js +98 -0
  1087. package/dist/node_modules/@antv/g2/esm/data/wordCloud.js.map +1 -0
  1088. package/dist/node_modules/@antv/g2/esm/encode/column.js +6 -0
  1089. package/dist/node_modules/@antv/g2/esm/encode/column.js.map +1 -0
  1090. package/dist/node_modules/@antv/g2/esm/encode/constant.js +6 -0
  1091. package/dist/node_modules/@antv/g2/esm/encode/constant.js.map +1 -0
  1092. package/dist/node_modules/@antv/g2/esm/encode/field.js +6 -0
  1093. package/dist/node_modules/@antv/g2/esm/encode/field.js.map +1 -0
  1094. package/dist/node_modules/@antv/g2/esm/encode/transform.js +6 -0
  1095. package/dist/node_modules/@antv/g2/esm/encode/transform.js.map +1 -0
  1096. package/dist/node_modules/@antv/g2/esm/index.js +151 -0
  1097. package/dist/node_modules/@antv/g2/esm/index.js.map +1 -0
  1098. package/dist/node_modules/@antv/g2/esm/interaction/adaptiveFilter.js +128 -0
  1099. package/dist/node_modules/@antv/g2/esm/interaction/adaptiveFilter.js.map +1 -0
  1100. package/dist/node_modules/@antv/g2/esm/interaction/brushAxisHighlight.js +227 -0
  1101. package/dist/node_modules/@antv/g2/esm/interaction/brushAxisHighlight.js.map +1 -0
  1102. package/dist/node_modules/@antv/g2/esm/interaction/brushFilter.js +126 -0
  1103. package/dist/node_modules/@antv/g2/esm/interaction/brushFilter.js.map +1 -0
  1104. package/dist/node_modules/@antv/g2/esm/interaction/brushHighlight.js +339 -0
  1105. package/dist/node_modules/@antv/g2/esm/interaction/brushHighlight.js.map +1 -0
  1106. package/dist/node_modules/@antv/g2/esm/interaction/brushXFilter.js +9 -0
  1107. package/dist/node_modules/@antv/g2/esm/interaction/brushXFilter.js.map +1 -0
  1108. package/dist/node_modules/@antv/g2/esm/interaction/brushXHighlight.js +13 -0
  1109. package/dist/node_modules/@antv/g2/esm/interaction/brushXHighlight.js.map +1 -0
  1110. package/dist/node_modules/@antv/g2/esm/interaction/brushYFilter.js +9 -0
  1111. package/dist/node_modules/@antv/g2/esm/interaction/brushYFilter.js.map +1 -0
  1112. package/dist/node_modules/@antv/g2/esm/interaction/brushYHighlight.js +13 -0
  1113. package/dist/node_modules/@antv/g2/esm/interaction/brushYHighlight.js.map +1 -0
  1114. package/dist/node_modules/@antv/g2/esm/interaction/chartIndex.js +125 -0
  1115. package/dist/node_modules/@antv/g2/esm/interaction/chartIndex.js.map +1 -0
  1116. package/dist/node_modules/@antv/g2/esm/interaction/drillDown.js +153 -0
  1117. package/dist/node_modules/@antv/g2/esm/interaction/drillDown.js.map +1 -0
  1118. package/dist/node_modules/@antv/g2/esm/interaction/elementHighlight.js +143 -0
  1119. package/dist/node_modules/@antv/g2/esm/interaction/elementHighlight.js.map +1 -0
  1120. package/dist/node_modules/@antv/g2/esm/interaction/elementHighlightByColor.js +12 -0
  1121. package/dist/node_modules/@antv/g2/esm/interaction/elementHighlightByColor.js.map +1 -0
  1122. package/dist/node_modules/@antv/g2/esm/interaction/elementHighlightByX.js +12 -0
  1123. package/dist/node_modules/@antv/g2/esm/interaction/elementHighlightByX.js.map +1 -0
  1124. package/dist/node_modules/@antv/g2/esm/interaction/elementHoverScale.js +124 -0
  1125. package/dist/node_modules/@antv/g2/esm/interaction/elementHoverScale.js.map +1 -0
  1126. package/dist/node_modules/@antv/g2/esm/interaction/elementPointMove.js +288 -0
  1127. package/dist/node_modules/@antv/g2/esm/interaction/elementPointMove.js.map +1 -0
  1128. package/dist/node_modules/@antv/g2/esm/interaction/elementSelect.js +185 -0
  1129. package/dist/node_modules/@antv/g2/esm/interaction/elementSelect.js.map +1 -0
  1130. package/dist/node_modules/@antv/g2/esm/interaction/elementSelectByColor.js +12 -0
  1131. package/dist/node_modules/@antv/g2/esm/interaction/elementSelectByColor.js.map +1 -0
  1132. package/dist/node_modules/@antv/g2/esm/interaction/elementSelectByX.js +12 -0
  1133. package/dist/node_modules/@antv/g2/esm/interaction/elementSelectByX.js.map +1 -0
  1134. package/dist/node_modules/@antv/g2/esm/interaction/event.js +49 -0
  1135. package/dist/node_modules/@antv/g2/esm/interaction/event.js.map +1 -0
  1136. package/dist/node_modules/@antv/g2/esm/interaction/fisheye.js +37 -0
  1137. package/dist/node_modules/@antv/g2/esm/interaction/fisheye.js.map +1 -0
  1138. package/dist/node_modules/@antv/g2/esm/interaction/legendFilter.js +374 -0
  1139. package/dist/node_modules/@antv/g2/esm/interaction/legendFilter.js.map +1 -0
  1140. package/dist/node_modules/@antv/g2/esm/interaction/legendHighlight.js +67 -0
  1141. package/dist/node_modules/@antv/g2/esm/interaction/legendHighlight.js.map +1 -0
  1142. package/dist/node_modules/@antv/g2/esm/interaction/poptip.js +70 -0
  1143. package/dist/node_modules/@antv/g2/esm/interaction/poptip.js.map +1 -0
  1144. package/dist/node_modules/@antv/g2/esm/interaction/scrollbarFilter.js +35 -0
  1145. package/dist/node_modules/@antv/g2/esm/interaction/scrollbarFilter.js.map +1 -0
  1146. package/dist/node_modules/@antv/g2/esm/interaction/sliderFilter.js +356 -0
  1147. package/dist/node_modules/@antv/g2/esm/interaction/sliderFilter.js.map +1 -0
  1148. package/dist/node_modules/@antv/g2/esm/interaction/sliderWheel.js +69 -0
  1149. package/dist/node_modules/@antv/g2/esm/interaction/sliderWheel.js.map +1 -0
  1150. package/dist/node_modules/@antv/g2/esm/interaction/tooltip.js +679 -0
  1151. package/dist/node_modules/@antv/g2/esm/interaction/tooltip.js.map +1 -0
  1152. package/dist/node_modules/@antv/g2/esm/interaction/treemapDrillDown.js +164 -0
  1153. package/dist/node_modules/@antv/g2/esm/interaction/treemapDrillDown.js.map +1 -0
  1154. package/dist/node_modules/@antv/g2/esm/interaction/utils.js +476 -0
  1155. package/dist/node_modules/@antv/g2/esm/interaction/utils.js.map +1 -0
  1156. package/dist/node_modules/@antv/g2/esm/label-transform/contrastReverse.js +12 -0
  1157. package/dist/node_modules/@antv/g2/esm/label-transform/contrastReverse.js.map +1 -0
  1158. package/dist/node_modules/@antv/g2/esm/label-transform/exceedAdjust.js +50 -0
  1159. package/dist/node_modules/@antv/g2/esm/label-transform/exceedAdjust.js.map +1 -0
  1160. package/dist/node_modules/@antv/g2/esm/label-transform/overflowHide.js +11 -0
  1161. package/dist/node_modules/@antv/g2/esm/label-transform/overflowHide.js.map +1 -0
  1162. package/dist/node_modules/@antv/g2/esm/label-transform/overflowStroke.js +33 -0
  1163. package/dist/node_modules/@antv/g2/esm/label-transform/overflowStroke.js.map +1 -0
  1164. package/dist/node_modules/@antv/g2/esm/label-transform/overlapDodgeY.js +53 -0
  1165. package/dist/node_modules/@antv/g2/esm/label-transform/overlapDodgeY.js.map +1 -0
  1166. package/dist/node_modules/@antv/g2/esm/label-transform/overlapHide.js +17 -0
  1167. package/dist/node_modules/@antv/g2/esm/label-transform/overlapHide.js.map +1 -0
  1168. package/dist/node_modules/@antv/g2/esm/label-transform/utils.js +24 -0
  1169. package/dist/node_modules/@antv/g2/esm/label-transform/utils.js.map +1 -0
  1170. package/dist/node_modules/@antv/g2/esm/lib/builtinlib.js +29 -0
  1171. package/dist/node_modules/@antv/g2/esm/lib/builtinlib.js.map +1 -0
  1172. package/dist/node_modules/@antv/g2/esm/lib/core.js +328 -0
  1173. package/dist/node_modules/@antv/g2/esm/lib/core.js.map +1 -0
  1174. package/dist/node_modules/@antv/g2/esm/lib/geo.js +12 -0
  1175. package/dist/node_modules/@antv/g2/esm/lib/geo.js.map +1 -0
  1176. package/dist/node_modules/@antv/g2/esm/lib/graph.js +26 -0
  1177. package/dist/node_modules/@antv/g2/esm/lib/graph.js.map +1 -0
  1178. package/dist/node_modules/@antv/g2/esm/lib/lite.js +123 -0
  1179. package/dist/node_modules/@antv/g2/esm/lib/lite.js.map +1 -0
  1180. package/dist/node_modules/@antv/g2/esm/lib/plot.js +18 -0
  1181. package/dist/node_modules/@antv/g2/esm/lib/plot.js.map +1 -0
  1182. package/dist/node_modules/@antv/g2/esm/lib/std.js +11 -0
  1183. package/dist/node_modules/@antv/g2/esm/lib/std.js.map +1 -0
  1184. package/dist/node_modules/@antv/g2/esm/mark/area.js +57 -0
  1185. package/dist/node_modules/@antv/g2/esm/mark/area.js.map +1 -0
  1186. package/dist/node_modules/@antv/g2/esm/mark/beeswarm.js +98 -0
  1187. package/dist/node_modules/@antv/g2/esm/mark/beeswarm.js.map +1 -0
  1188. package/dist/node_modules/@antv/g2/esm/mark/box.js +59 -0
  1189. package/dist/node_modules/@antv/g2/esm/mark/box.js.map +1 -0
  1190. package/dist/node_modules/@antv/g2/esm/mark/boxplot.js +85 -0
  1191. package/dist/node_modules/@antv/g2/esm/mark/boxplot.js.map +1 -0
  1192. package/dist/node_modules/@antv/g2/esm/mark/cell.js +38 -0
  1193. package/dist/node_modules/@antv/g2/esm/mark/cell.js.map +1 -0
  1194. package/dist/node_modules/@antv/g2/esm/mark/chord.js +104 -0
  1195. package/dist/node_modules/@antv/g2/esm/mark/chord.js.map +1 -0
  1196. package/dist/node_modules/@antv/g2/esm/mark/connector.js +23 -0
  1197. package/dist/node_modules/@antv/g2/esm/mark/connector.js.map +1 -0
  1198. package/dist/node_modules/@antv/g2/esm/mark/density.js +49 -0
  1199. package/dist/node_modules/@antv/g2/esm/mark/density.js.map +1 -0
  1200. package/dist/node_modules/@antv/g2/esm/mark/forceGraph.js +99 -0
  1201. package/dist/node_modules/@antv/g2/esm/mark/forceGraph.js.map +1 -0
  1202. package/dist/node_modules/@antv/g2/esm/mark/gauge.js +139 -0
  1203. package/dist/node_modules/@antv/g2/esm/mark/gauge.js.map +1 -0
  1204. package/dist/node_modules/@antv/g2/esm/mark/heatmap.js +36 -0
  1205. package/dist/node_modules/@antv/g2/esm/mark/heatmap.js.map +1 -0
  1206. package/dist/node_modules/@antv/g2/esm/mark/image.js +39 -0
  1207. package/dist/node_modules/@antv/g2/esm/mark/image.js.map +1 -0
  1208. package/dist/node_modules/@antv/g2/esm/mark/interval.js +52 -0
  1209. package/dist/node_modules/@antv/g2/esm/mark/interval.js.map +1 -0
  1210. package/dist/node_modules/@antv/g2/esm/mark/line.js +68 -0
  1211. package/dist/node_modules/@antv/g2/esm/mark/line.js.map +1 -0
  1212. package/dist/node_modules/@antv/g2/esm/mark/lineX.js +29 -0
  1213. package/dist/node_modules/@antv/g2/esm/mark/lineX.js.map +1 -0
  1214. package/dist/node_modules/@antv/g2/esm/mark/lineY.js +29 -0
  1215. package/dist/node_modules/@antv/g2/esm/mark/lineY.js.map +1 -0
  1216. package/dist/node_modules/@antv/g2/esm/mark/link.js +40 -0
  1217. package/dist/node_modules/@antv/g2/esm/mark/link.js.map +1 -0
  1218. package/dist/node_modules/@antv/g2/esm/mark/liquid.js +78 -0
  1219. package/dist/node_modules/@antv/g2/esm/mark/liquid.js.map +1 -0
  1220. package/dist/node_modules/@antv/g2/esm/mark/pack.js +70 -0
  1221. package/dist/node_modules/@antv/g2/esm/mark/pack.js.map +1 -0
  1222. package/dist/node_modules/@antv/g2/esm/mark/partition.js +171 -0
  1223. package/dist/node_modules/@antv/g2/esm/mark/partition.js.map +1 -0
  1224. package/dist/node_modules/@antv/g2/esm/mark/path.js +23 -0
  1225. package/dist/node_modules/@antv/g2/esm/mark/path.js.map +1 -0
  1226. package/dist/node_modules/@antv/g2/esm/mark/point.js +85 -0
  1227. package/dist/node_modules/@antv/g2/esm/mark/point.js.map +1 -0
  1228. package/dist/node_modules/@antv/g2/esm/mark/polygon.js +37 -0
  1229. package/dist/node_modules/@antv/g2/esm/mark/polygon.js.map +1 -0
  1230. package/dist/node_modules/@antv/g2/esm/mark/range.js +41 -0
  1231. package/dist/node_modules/@antv/g2/esm/mark/range.js.map +1 -0
  1232. package/dist/node_modules/@antv/g2/esm/mark/rangeX.js +23 -0
  1233. package/dist/node_modules/@antv/g2/esm/mark/rangeX.js.map +1 -0
  1234. package/dist/node_modules/@antv/g2/esm/mark/rangeY.js +23 -0
  1235. package/dist/node_modules/@antv/g2/esm/mark/rangeY.js.map +1 -0
  1236. package/dist/node_modules/@antv/g2/esm/mark/rect.js +34 -0
  1237. package/dist/node_modules/@antv/g2/esm/mark/rect.js.map +1 -0
  1238. package/dist/node_modules/@antv/g2/esm/mark/sankey.js +129 -0
  1239. package/dist/node_modules/@antv/g2/esm/mark/sankey.js.map +1 -0
  1240. package/dist/node_modules/@antv/g2/esm/mark/shape.js +37 -0
  1241. package/dist/node_modules/@antv/g2/esm/mark/shape.js.map +1 -0
  1242. package/dist/node_modules/@antv/g2/esm/mark/text.js +44 -0
  1243. package/dist/node_modules/@antv/g2/esm/mark/text.js.map +1 -0
  1244. package/dist/node_modules/@antv/g2/esm/mark/tree.js +66 -0
  1245. package/dist/node_modules/@antv/g2/esm/mark/tree.js.map +1 -0
  1246. package/dist/node_modules/@antv/g2/esm/mark/treemap.js +91 -0
  1247. package/dist/node_modules/@antv/g2/esm/mark/treemap.js.map +1 -0
  1248. package/dist/node_modules/@antv/g2/esm/mark/utils.js +115 -0
  1249. package/dist/node_modules/@antv/g2/esm/mark/utils.js.map +1 -0
  1250. package/dist/node_modules/@antv/g2/esm/mark/vector.js +33 -0
  1251. package/dist/node_modules/@antv/g2/esm/mark/vector.js.map +1 -0
  1252. package/dist/node_modules/@antv/g2/esm/mark/wordCloud.js +84 -0
  1253. package/dist/node_modules/@antv/g2/esm/mark/wordCloud.js.map +1 -0
  1254. package/dist/node_modules/@antv/g2/esm/palette/category10.js +17 -0
  1255. package/dist/node_modules/@antv/g2/esm/palette/category10.js.map +1 -0
  1256. package/dist/node_modules/@antv/g2/esm/palette/category20.js +27 -0
  1257. package/dist/node_modules/@antv/g2/esm/palette/category20.js.map +1 -0
  1258. package/dist/node_modules/@antv/g2/esm/runtime/component.js +421 -0
  1259. package/dist/node_modules/@antv/g2/esm/runtime/component.js.map +1 -0
  1260. package/dist/node_modules/@antv/g2/esm/runtime/constant.js +15 -0
  1261. package/dist/node_modules/@antv/g2/esm/runtime/constant.js.map +1 -0
  1262. package/dist/node_modules/@antv/g2/esm/runtime/coordinate.js +78 -0
  1263. package/dist/node_modules/@antv/g2/esm/runtime/coordinate.js.map +1 -0
  1264. package/dist/node_modules/@antv/g2/esm/runtime/layout.js +352 -0
  1265. package/dist/node_modules/@antv/g2/esm/runtime/layout.js.map +1 -0
  1266. package/dist/node_modules/@antv/g2/esm/runtime/library.js +33 -0
  1267. package/dist/node_modules/@antv/g2/esm/runtime/library.js.map +1 -0
  1268. package/dist/node_modules/@antv/g2/esm/runtime/mark.js +122 -0
  1269. package/dist/node_modules/@antv/g2/esm/runtime/mark.js.map +1 -0
  1270. package/dist/node_modules/@antv/g2/esm/runtime/option-preprocess/axis-breaks.js +19 -0
  1271. package/dist/node_modules/@antv/g2/esm/runtime/option-preprocess/axis-breaks.js.map +1 -0
  1272. package/dist/node_modules/@antv/g2/esm/runtime/option-preprocess/index.js +14 -0
  1273. package/dist/node_modules/@antv/g2/esm/runtime/option-preprocess/index.js.map +1 -0
  1274. package/dist/node_modules/@antv/g2/esm/runtime/option-preprocess/style.js +9 -0
  1275. package/dist/node_modules/@antv/g2/esm/runtime/option-preprocess/style.js.map +1 -0
  1276. package/dist/node_modules/@antv/g2/esm/runtime/plot.js +675 -0
  1277. package/dist/node_modules/@antv/g2/esm/runtime/plot.js.map +1 -0
  1278. package/dist/node_modules/@antv/g2/esm/runtime/render.js +101 -0
  1279. package/dist/node_modules/@antv/g2/esm/runtime/render.js.map +1 -0
  1280. package/dist/node_modules/@antv/g2/esm/runtime/scale.js +369 -0
  1281. package/dist/node_modules/@antv/g2/esm/runtime/scale.js.map +1 -0
  1282. package/dist/node_modules/@antv/g2/esm/runtime/transform.js +242 -0
  1283. package/dist/node_modules/@antv/g2/esm/runtime/transform.js.map +1 -0
  1284. package/dist/node_modules/@antv/g2/esm/runtime/types/scale.js +25 -0
  1285. package/dist/node_modules/@antv/g2/esm/runtime/types/scale.js.map +1 -0
  1286. package/dist/node_modules/@antv/g2/esm/scale/band.js +7 -0
  1287. package/dist/node_modules/@antv/g2/esm/scale/band.js.map +1 -0
  1288. package/dist/node_modules/@antv/g2/esm/scale/constant.js +7 -0
  1289. package/dist/node_modules/@antv/g2/esm/scale/constant.js.map +1 -0
  1290. package/dist/node_modules/@antv/g2/esm/scale/identity.js +7 -0
  1291. package/dist/node_modules/@antv/g2/esm/scale/identity.js.map +1 -0
  1292. package/dist/node_modules/@antv/g2/esm/scale/linear.js +7 -0
  1293. package/dist/node_modules/@antv/g2/esm/scale/linear.js.map +1 -0
  1294. package/dist/node_modules/@antv/g2/esm/scale/log.js +7 -0
  1295. package/dist/node_modules/@antv/g2/esm/scale/log.js.map +1 -0
  1296. package/dist/node_modules/@antv/g2/esm/scale/ordinal.js +7 -0
  1297. package/dist/node_modules/@antv/g2/esm/scale/ordinal.js.map +1 -0
  1298. package/dist/node_modules/@antv/g2/esm/scale/point.js +7 -0
  1299. package/dist/node_modules/@antv/g2/esm/scale/point.js.map +1 -0
  1300. package/dist/node_modules/@antv/g2/esm/scale/pow.js +7 -0
  1301. package/dist/node_modules/@antv/g2/esm/scale/pow.js.map +1 -0
  1302. package/dist/node_modules/@antv/g2/esm/scale/quantile.js +7 -0
  1303. package/dist/node_modules/@antv/g2/esm/scale/quantile.js.map +1 -0
  1304. package/dist/node_modules/@antv/g2/esm/scale/quantize.js +7 -0
  1305. package/dist/node_modules/@antv/g2/esm/scale/quantize.js.map +1 -0
  1306. package/dist/node_modules/@antv/g2/esm/scale/sequential.js +7 -0
  1307. package/dist/node_modules/@antv/g2/esm/scale/sequential.js.map +1 -0
  1308. package/dist/node_modules/@antv/g2/esm/scale/sqrt.js +7 -0
  1309. package/dist/node_modules/@antv/g2/esm/scale/sqrt.js.map +1 -0
  1310. package/dist/node_modules/@antv/g2/esm/scale/threshold.js +7 -0
  1311. package/dist/node_modules/@antv/g2/esm/scale/threshold.js.map +1 -0
  1312. package/dist/node_modules/@antv/g2/esm/scale/time.js +7 -0
  1313. package/dist/node_modules/@antv/g2/esm/scale/time.js.map +1 -0
  1314. package/dist/node_modules/@antv/g2/esm/shape/area/area.js +16 -0
  1315. package/dist/node_modules/@antv/g2/esm/shape/area/area.js.map +1 -0
  1316. package/dist/node_modules/@antv/g2/esm/shape/area/curve.js +67 -0
  1317. package/dist/node_modules/@antv/g2/esm/shape/area/curve.js.map +1 -0
  1318. package/dist/node_modules/@antv/g2/esm/shape/area/hv.js +8 -0
  1319. package/dist/node_modules/@antv/g2/esm/shape/area/hv.js.map +1 -0
  1320. package/dist/node_modules/@antv/g2/esm/shape/area/hvh.js +8 -0
  1321. package/dist/node_modules/@antv/g2/esm/shape/area/hvh.js.map +1 -0
  1322. package/dist/node_modules/@antv/g2/esm/shape/area/smooth.js +24 -0
  1323. package/dist/node_modules/@antv/g2/esm/shape/area/smooth.js.map +1 -0
  1324. package/dist/node_modules/@antv/g2/esm/shape/area/vh.js +8 -0
  1325. package/dist/node_modules/@antv/g2/esm/shape/area/vh.js.map +1 -0
  1326. package/dist/node_modules/@antv/g2/esm/shape/axis-breaks/axis-breaks.js +119 -0
  1327. package/dist/node_modules/@antv/g2/esm/shape/axis-breaks/axis-breaks.js.map +1 -0
  1328. package/dist/node_modules/@antv/g2/esm/shape/box/box.js +40 -0
  1329. package/dist/node_modules/@antv/g2/esm/shape/box/box.js.map +1 -0
  1330. package/dist/node_modules/@antv/g2/esm/shape/box/violin.js +39 -0
  1331. package/dist/node_modules/@antv/g2/esm/shape/box/violin.js.map +1 -0
  1332. package/dist/node_modules/@antv/g2/esm/shape/connector/connector.js +61 -0
  1333. package/dist/node_modules/@antv/g2/esm/shape/connector/connector.js.map +1 -0
  1334. package/dist/node_modules/@antv/g2/esm/shape/density/density.js +30 -0
  1335. package/dist/node_modules/@antv/g2/esm/shape/density/density.js.map +1 -0
  1336. package/dist/node_modules/@antv/g2/esm/shape/gauge/round.js +38 -0
  1337. package/dist/node_modules/@antv/g2/esm/shape/gauge/round.js.map +1 -0
  1338. package/dist/node_modules/@antv/g2/esm/shape/heatmap/heatmap.js +48 -0
  1339. package/dist/node_modules/@antv/g2/esm/shape/heatmap/heatmap.js.map +1 -0
  1340. package/dist/node_modules/@antv/g2/esm/shape/heatmap/renderer/gradient.js +10 -0
  1341. package/dist/node_modules/@antv/g2/esm/shape/heatmap/renderer/gradient.js.map +1 -0
  1342. package/dist/node_modules/@antv/g2/esm/shape/heatmap/renderer/index.js +59 -0
  1343. package/dist/node_modules/@antv/g2/esm/shape/heatmap/renderer/index.js.map +1 -0
  1344. package/dist/node_modules/@antv/g2/esm/shape/image/image.js +31 -0
  1345. package/dist/node_modules/@antv/g2/esm/shape/image/image.js.map +1 -0
  1346. package/dist/node_modules/@antv/g2/esm/shape/interval/color.js +66 -0
  1347. package/dist/node_modules/@antv/g2/esm/shape/interval/color.js.map +1 -0
  1348. package/dist/node_modules/@antv/g2/esm/shape/interval/funnel.js +90 -0
  1349. package/dist/node_modules/@antv/g2/esm/shape/interval/funnel.js.map +1 -0
  1350. package/dist/node_modules/@antv/g2/esm/shape/interval/hollow.js +7 -0
  1351. package/dist/node_modules/@antv/g2/esm/shape/interval/hollow.js.map +1 -0
  1352. package/dist/node_modules/@antv/g2/esm/shape/interval/pyramid.js +51 -0
  1353. package/dist/node_modules/@antv/g2/esm/shape/interval/pyramid.js.map +1 -0
  1354. package/dist/node_modules/@antv/g2/esm/shape/interval/rect.js +7 -0
  1355. package/dist/node_modules/@antv/g2/esm/shape/interval/rect.js.map +1 -0
  1356. package/dist/node_modules/@antv/g2/esm/shape/label/label.js +37 -0
  1357. package/dist/node_modules/@antv/g2/esm/shape/label/label.js.map +1 -0
  1358. package/dist/node_modules/@antv/g2/esm/shape/label/position/area.js +19 -0
  1359. package/dist/node_modules/@antv/g2/esm/shape/label/position/area.js.map +1 -0
  1360. package/dist/node_modules/@antv/g2/esm/shape/label/position/default.js +62 -0
  1361. package/dist/node_modules/@antv/g2/esm/shape/label/position/default.js.map +1 -0
  1362. package/dist/node_modules/@antv/g2/esm/shape/label/position/index.js +21 -0
  1363. package/dist/node_modules/@antv/g2/esm/shape/label/position/index.js.map +1 -0
  1364. package/dist/node_modules/@antv/g2/esm/shape/label/position/outside.js +50 -0
  1365. package/dist/node_modules/@antv/g2/esm/shape/label/position/outside.js.map +1 -0
  1366. package/dist/node_modules/@antv/g2/esm/shape/label/position/spider.js +28 -0
  1367. package/dist/node_modules/@antv/g2/esm/shape/label/position/spider.js.map +1 -0
  1368. package/dist/node_modules/@antv/g2/esm/shape/label/position/surround.js +22 -0
  1369. package/dist/node_modules/@antv/g2/esm/shape/label/position/surround.js.map +1 -0
  1370. package/dist/node_modules/@antv/g2/esm/shape/label/position/utils.js +43 -0
  1371. package/dist/node_modules/@antv/g2/esm/shape/label/position/utils.js.map +1 -0
  1372. package/dist/node_modules/@antv/g2/esm/shape/line/curve.js +63 -0
  1373. package/dist/node_modules/@antv/g2/esm/shape/line/curve.js.map +1 -0
  1374. package/dist/node_modules/@antv/g2/esm/shape/line/hv.js +8 -0
  1375. package/dist/node_modules/@antv/g2/esm/shape/line/hv.js.map +1 -0
  1376. package/dist/node_modules/@antv/g2/esm/shape/line/hvh.js +8 -0
  1377. package/dist/node_modules/@antv/g2/esm/shape/line/hvh.js.map +1 -0
  1378. package/dist/node_modules/@antv/g2/esm/shape/line/line.js +16 -0
  1379. package/dist/node_modules/@antv/g2/esm/shape/line/line.js.map +1 -0
  1380. package/dist/node_modules/@antv/g2/esm/shape/line/smooth.js +24 -0
  1381. package/dist/node_modules/@antv/g2/esm/shape/line/smooth.js.map +1 -0
  1382. package/dist/node_modules/@antv/g2/esm/shape/line/trail.js +34 -0
  1383. package/dist/node_modules/@antv/g2/esm/shape/line/trail.js.map +1 -0
  1384. package/dist/node_modules/@antv/g2/esm/shape/line/vh.js +8 -0
  1385. package/dist/node_modules/@antv/g2/esm/shape/line/vh.js.map +1 -0
  1386. package/dist/node_modules/@antv/g2/esm/shape/lineXY/line.js +54 -0
  1387. package/dist/node_modules/@antv/g2/esm/shape/lineXY/line.js.map +1 -0
  1388. package/dist/node_modules/@antv/g2/esm/shape/link/arc.js +37 -0
  1389. package/dist/node_modules/@antv/g2/esm/shape/link/arc.js.map +1 -0
  1390. package/dist/node_modules/@antv/g2/esm/shape/link/link.js +15 -0
  1391. package/dist/node_modules/@antv/g2/esm/shape/link/link.js.map +1 -0
  1392. package/dist/node_modules/@antv/g2/esm/shape/link/smooth.js +28 -0
  1393. package/dist/node_modules/@antv/g2/esm/shape/link/smooth.js.map +1 -0
  1394. package/dist/node_modules/@antv/g2/esm/shape/link/vhv.js +38 -0
  1395. package/dist/node_modules/@antv/g2/esm/shape/link/vhv.js.map +1 -0
  1396. package/dist/node_modules/@antv/g2/esm/shape/liquid/liquid.js +49 -0
  1397. package/dist/node_modules/@antv/g2/esm/shape/liquid/liquid.js.map +1 -0
  1398. package/dist/node_modules/@antv/g2/esm/shape/liquid/shapes.js +56 -0
  1399. package/dist/node_modules/@antv/g2/esm/shape/liquid/shapes.js.map +1 -0
  1400. package/dist/node_modules/@antv/g2/esm/shape/liquid/wave.js +95 -0
  1401. package/dist/node_modules/@antv/g2/esm/shape/liquid/wave.js.map +1 -0
  1402. package/dist/node_modules/@antv/g2/esm/shape/path/color.js +26 -0
  1403. package/dist/node_modules/@antv/g2/esm/shape/path/color.js.map +1 -0
  1404. package/dist/node_modules/@antv/g2/esm/shape/path/hollow.js +12 -0
  1405. package/dist/node_modules/@antv/g2/esm/shape/path/hollow.js.map +1 -0
  1406. package/dist/node_modules/@antv/g2/esm/shape/path/path.js +12 -0
  1407. package/dist/node_modules/@antv/g2/esm/shape/path/path.js.map +1 -0
  1408. package/dist/node_modules/@antv/g2/esm/shape/point/bowtie.js +7 -0
  1409. package/dist/node_modules/@antv/g2/esm/shape/point/bowtie.js.map +1 -0
  1410. package/dist/node_modules/@antv/g2/esm/shape/point/circle.js +28 -0
  1411. package/dist/node_modules/@antv/g2/esm/shape/point/circle.js.map +1 -0
  1412. package/dist/node_modules/@antv/g2/esm/shape/point/color.js +42 -0
  1413. package/dist/node_modules/@antv/g2/esm/shape/point/color.js.map +1 -0
  1414. package/dist/node_modules/@antv/g2/esm/shape/point/cross.js +7 -0
  1415. package/dist/node_modules/@antv/g2/esm/shape/point/cross.js.map +1 -0
  1416. package/dist/node_modules/@antv/g2/esm/shape/point/diamond.js +7 -0
  1417. package/dist/node_modules/@antv/g2/esm/shape/point/diamond.js.map +1 -0
  1418. package/dist/node_modules/@antv/g2/esm/shape/point/hexagon.js +7 -0
  1419. package/dist/node_modules/@antv/g2/esm/shape/point/hexagon.js.map +1 -0
  1420. package/dist/node_modules/@antv/g2/esm/shape/point/hollow.js +7 -0
  1421. package/dist/node_modules/@antv/g2/esm/shape/point/hollow.js.map +1 -0
  1422. package/dist/node_modules/@antv/g2/esm/shape/point/hollowBowtie.js +7 -0
  1423. package/dist/node_modules/@antv/g2/esm/shape/point/hollowBowtie.js.map +1 -0
  1424. package/dist/node_modules/@antv/g2/esm/shape/point/hollowCircle.js +7 -0
  1425. package/dist/node_modules/@antv/g2/esm/shape/point/hollowCircle.js.map +1 -0
  1426. package/dist/node_modules/@antv/g2/esm/shape/point/hollowDiamond.js +7 -0
  1427. package/dist/node_modules/@antv/g2/esm/shape/point/hollowDiamond.js.map +1 -0
  1428. package/dist/node_modules/@antv/g2/esm/shape/point/hollowHexagon.js +7 -0
  1429. package/dist/node_modules/@antv/g2/esm/shape/point/hollowHexagon.js.map +1 -0
  1430. package/dist/node_modules/@antv/g2/esm/shape/point/hollowSquare.js +7 -0
  1431. package/dist/node_modules/@antv/g2/esm/shape/point/hollowSquare.js.map +1 -0
  1432. package/dist/node_modules/@antv/g2/esm/shape/point/hollowTriangle.js +7 -0
  1433. package/dist/node_modules/@antv/g2/esm/shape/point/hollowTriangle.js.map +1 -0
  1434. package/dist/node_modules/@antv/g2/esm/shape/point/hollowTriangleDown.js +7 -0
  1435. package/dist/node_modules/@antv/g2/esm/shape/point/hollowTriangleDown.js.map +1 -0
  1436. package/dist/node_modules/@antv/g2/esm/shape/point/hyphen.js +7 -0
  1437. package/dist/node_modules/@antv/g2/esm/shape/point/hyphen.js.map +1 -0
  1438. package/dist/node_modules/@antv/g2/esm/shape/point/line.js +7 -0
  1439. package/dist/node_modules/@antv/g2/esm/shape/point/line.js.map +1 -0
  1440. package/dist/node_modules/@antv/g2/esm/shape/point/plus.js +7 -0
  1441. package/dist/node_modules/@antv/g2/esm/shape/point/plus.js.map +1 -0
  1442. package/dist/node_modules/@antv/g2/esm/shape/point/point.js +7 -0
  1443. package/dist/node_modules/@antv/g2/esm/shape/point/point.js.map +1 -0
  1444. package/dist/node_modules/@antv/g2/esm/shape/point/square.js +7 -0
  1445. package/dist/node_modules/@antv/g2/esm/shape/point/square.js.map +1 -0
  1446. package/dist/node_modules/@antv/g2/esm/shape/point/tick.js +7 -0
  1447. package/dist/node_modules/@antv/g2/esm/shape/point/tick.js.map +1 -0
  1448. package/dist/node_modules/@antv/g2/esm/shape/point/triangle.js +7 -0
  1449. package/dist/node_modules/@antv/g2/esm/shape/point/triangle.js.map +1 -0
  1450. package/dist/node_modules/@antv/g2/esm/shape/point/triangleDown.js +7 -0
  1451. package/dist/node_modules/@antv/g2/esm/shape/point/triangleDown.js.map +1 -0
  1452. package/dist/node_modules/@antv/g2/esm/shape/polygon/polygon.js +45 -0
  1453. package/dist/node_modules/@antv/g2/esm/shape/polygon/polygon.js.map +1 -0
  1454. package/dist/node_modules/@antv/g2/esm/shape/polygon/ribbon.js +38 -0
  1455. package/dist/node_modules/@antv/g2/esm/shape/polygon/ribbon.js.map +1 -0
  1456. package/dist/node_modules/@antv/g2/esm/shape/shape/shape.js +25 -0
  1457. package/dist/node_modules/@antv/g2/esm/shape/shape/shape.js.map +1 -0
  1458. package/dist/node_modules/@antv/g2/esm/shape/text/advance.js +85 -0
  1459. package/dist/node_modules/@antv/g2/esm/shape/text/advance.js.map +1 -0
  1460. package/dist/node_modules/@antv/g2/esm/shape/text/badge.js +50 -0
  1461. package/dist/node_modules/@antv/g2/esm/shape/text/badge.js.map +1 -0
  1462. package/dist/node_modules/@antv/g2/esm/shape/text/tag.js +28 -0
  1463. package/dist/node_modules/@antv/g2/esm/shape/text/tag.js.map +1 -0
  1464. package/dist/node_modules/@antv/g2/esm/shape/text/text.js +25 -0
  1465. package/dist/node_modules/@antv/g2/esm/shape/text/text.js.map +1 -0
  1466. package/dist/node_modules/@antv/g2/esm/shape/utils.js +83 -0
  1467. package/dist/node_modules/@antv/g2/esm/shape/utils.js.map +1 -0
  1468. package/dist/node_modules/@antv/g2/esm/shape/vector/vector.js +32 -0
  1469. package/dist/node_modules/@antv/g2/esm/shape/vector/vector.js.map +1 -0
  1470. package/dist/node_modules/@antv/g2/esm/theme/academy.js +102 -0
  1471. package/dist/node_modules/@antv/g2/esm/theme/academy.js.map +1 -0
  1472. package/dist/node_modules/@antv/g2/esm/theme/classic.js +11 -0
  1473. package/dist/node_modules/@antv/g2/esm/theme/classic.js.map +1 -0
  1474. package/dist/node_modules/@antv/g2/esm/theme/classicDark.js +10 -0
  1475. package/dist/node_modules/@antv/g2/esm/theme/classicDark.js.map +1 -0
  1476. package/dist/node_modules/@antv/g2/esm/theme/create.js +432 -0
  1477. package/dist/node_modules/@antv/g2/esm/theme/create.js.map +1 -0
  1478. package/dist/node_modules/@antv/g2/esm/theme/dark.js +78 -0
  1479. package/dist/node_modules/@antv/g2/esm/theme/dark.js.map +1 -0
  1480. package/dist/node_modules/@antv/g2/esm/theme/light.js +57 -0
  1481. package/dist/node_modules/@antv/g2/esm/theme/light.js.map +1 -0
  1482. package/dist/node_modules/@antv/g2/esm/transform/bin.js +55 -0
  1483. package/dist/node_modules/@antv/g2/esm/transform/bin.js.map +1 -0
  1484. package/dist/node_modules/@antv/g2/esm/transform/binX.js +10 -0
  1485. package/dist/node_modules/@antv/g2/esm/transform/binX.js.map +1 -0
  1486. package/dist/node_modules/@antv/g2/esm/transform/diffY.js +29 -0
  1487. package/dist/node_modules/@antv/g2/esm/transform/diffY.js.map +1 -0
  1488. package/dist/node_modules/@antv/g2/esm/transform/dodgeX.js +47 -0
  1489. package/dist/node_modules/@antv/g2/esm/transform/dodgeX.js.map +1 -0
  1490. package/dist/node_modules/@antv/g2/esm/transform/filter.js +54 -0
  1491. package/dist/node_modules/@antv/g2/esm/transform/filter.js.map +1 -0
  1492. package/dist/node_modules/@antv/g2/esm/transform/flexX.js +26 -0
  1493. package/dist/node_modules/@antv/g2/esm/transform/flexX.js.map +1 -0
  1494. package/dist/node_modules/@antv/g2/esm/transform/group.js +19 -0
  1495. package/dist/node_modules/@antv/g2/esm/transform/group.js.map +1 -0
  1496. package/dist/node_modules/@antv/g2/esm/transform/groupColor.js +7 -0
  1497. package/dist/node_modules/@antv/g2/esm/transform/groupColor.js.map +1 -0
  1498. package/dist/node_modules/@antv/g2/esm/transform/groupN.js +97 -0
  1499. package/dist/node_modules/@antv/g2/esm/transform/groupN.js.map +1 -0
  1500. package/dist/node_modules/@antv/g2/esm/transform/groupX.js +7 -0
  1501. package/dist/node_modules/@antv/g2/esm/transform/groupX.js.map +1 -0
  1502. package/dist/node_modules/@antv/g2/esm/transform/groupY.js +7 -0
  1503. package/dist/node_modules/@antv/g2/esm/transform/groupY.js.map +1 -0
  1504. package/dist/node_modules/@antv/g2/esm/transform/jitter.js +37 -0
  1505. package/dist/node_modules/@antv/g2/esm/transform/jitter.js.map +1 -0
  1506. package/dist/node_modules/@antv/g2/esm/transform/jitterX.js +20 -0
  1507. package/dist/node_modules/@antv/g2/esm/transform/jitterX.js.map +1 -0
  1508. package/dist/node_modules/@antv/g2/esm/transform/jitterY.js +20 -0
  1509. package/dist/node_modules/@antv/g2/esm/transform/jitterY.js.map +1 -0
  1510. package/dist/node_modules/@antv/g2/esm/transform/maybeDefaultX.js +23 -0
  1511. package/dist/node_modules/@antv/g2/esm/transform/maybeDefaultX.js.map +1 -0
  1512. package/dist/node_modules/@antv/g2/esm/transform/maybeDefaultY.js +23 -0
  1513. package/dist/node_modules/@antv/g2/esm/transform/maybeDefaultY.js.map +1 -0
  1514. package/dist/node_modules/@antv/g2/esm/transform/maybeFunctionAttribute.js +15 -0
  1515. package/dist/node_modules/@antv/g2/esm/transform/maybeFunctionAttribute.js.map +1 -0
  1516. package/dist/node_modules/@antv/g2/esm/transform/maybeGradient.js +18 -0
  1517. package/dist/node_modules/@antv/g2/esm/transform/maybeGradient.js.map +1 -0
  1518. package/dist/node_modules/@antv/g2/esm/transform/maybeIdentityX.js +14 -0
  1519. package/dist/node_modules/@antv/g2/esm/transform/maybeIdentityX.js.map +1 -0
  1520. package/dist/node_modules/@antv/g2/esm/transform/maybeIdentityY.js +14 -0
  1521. package/dist/node_modules/@antv/g2/esm/transform/maybeIdentityY.js.map +1 -0
  1522. package/dist/node_modules/@antv/g2/esm/transform/maybeKey.js +22 -0
  1523. package/dist/node_modules/@antv/g2/esm/transform/maybeKey.js.map +1 -0
  1524. package/dist/node_modules/@antv/g2/esm/transform/maybeSeries.js +14 -0
  1525. package/dist/node_modules/@antv/g2/esm/transform/maybeSeries.js.map +1 -0
  1526. package/dist/node_modules/@antv/g2/esm/transform/maybeSize.js +14 -0
  1527. package/dist/node_modules/@antv/g2/esm/transform/maybeSize.js.map +1 -0
  1528. package/dist/node_modules/@antv/g2/esm/transform/maybeStackY.js +20 -0
  1529. package/dist/node_modules/@antv/g2/esm/transform/maybeStackY.js.map +1 -0
  1530. package/dist/node_modules/@antv/g2/esm/transform/maybeTitle.js +36 -0
  1531. package/dist/node_modules/@antv/g2/esm/transform/maybeTitle.js.map +1 -0
  1532. package/dist/node_modules/@antv/g2/esm/transform/maybeTooltip.js +23 -0
  1533. package/dist/node_modules/@antv/g2/esm/transform/maybeTooltip.js.map +1 -0
  1534. package/dist/node_modules/@antv/g2/esm/transform/maybeTuple.js +14 -0
  1535. package/dist/node_modules/@antv/g2/esm/transform/maybeTuple.js.map +1 -0
  1536. package/dist/node_modules/@antv/g2/esm/transform/maybeTupleX.js +11 -0
  1537. package/dist/node_modules/@antv/g2/esm/transform/maybeTupleX.js.map +1 -0
  1538. package/dist/node_modules/@antv/g2/esm/transform/maybeTupleY.js +11 -0
  1539. package/dist/node_modules/@antv/g2/esm/transform/maybeTupleY.js.map +1 -0
  1540. package/dist/node_modules/@antv/g2/esm/transform/maybeVisualPosition.js +39 -0
  1541. package/dist/node_modules/@antv/g2/esm/transform/maybeVisualPosition.js.map +1 -0
  1542. package/dist/node_modules/@antv/g2/esm/transform/maybeZeroPadding.js +10 -0
  1543. package/dist/node_modules/@antv/g2/esm/transform/maybeZeroPadding.js.map +1 -0
  1544. package/dist/node_modules/@antv/g2/esm/transform/maybeZeroX.js +17 -0
  1545. package/dist/node_modules/@antv/g2/esm/transform/maybeZeroX.js.map +1 -0
  1546. package/dist/node_modules/@antv/g2/esm/transform/maybeZeroY.js +17 -0
  1547. package/dist/node_modules/@antv/g2/esm/transform/maybeZeroY.js.map +1 -0
  1548. package/dist/node_modules/@antv/g2/esm/transform/maybeZeroY1.js +16 -0
  1549. package/dist/node_modules/@antv/g2/esm/transform/maybeZeroY1.js.map +1 -0
  1550. package/dist/node_modules/@antv/g2/esm/transform/maybeZeroZ.js +17 -0
  1551. package/dist/node_modules/@antv/g2/esm/transform/maybeZeroZ.js.map +1 -0
  1552. package/dist/node_modules/@antv/g2/esm/transform/normalizeY.js +56 -0
  1553. package/dist/node_modules/@antv/g2/esm/transform/normalizeY.js.map +1 -0
  1554. package/dist/node_modules/@antv/g2/esm/transform/pack.js +28 -0
  1555. package/dist/node_modules/@antv/g2/esm/transform/pack.js.map +1 -0
  1556. package/dist/node_modules/@antv/g2/esm/transform/sample.js +51 -0
  1557. package/dist/node_modules/@antv/g2/esm/transform/sample.js.map +1 -0
  1558. package/dist/node_modules/@antv/g2/esm/transform/select.js +34 -0
  1559. package/dist/node_modules/@antv/g2/esm/transform/select.js.map +1 -0
  1560. package/dist/node_modules/@antv/g2/esm/transform/selectX.js +18 -0
  1561. package/dist/node_modules/@antv/g2/esm/transform/selectX.js.map +1 -0
  1562. package/dist/node_modules/@antv/g2/esm/transform/selectY.js +18 -0
  1563. package/dist/node_modules/@antv/g2/esm/transform/selectY.js.map +1 -0
  1564. package/dist/node_modules/@antv/g2/esm/transform/sort.js +49 -0
  1565. package/dist/node_modules/@antv/g2/esm/transform/sort.js.map +1 -0
  1566. package/dist/node_modules/@antv/g2/esm/transform/sortColor.js +7 -0
  1567. package/dist/node_modules/@antv/g2/esm/transform/sortColor.js.map +1 -0
  1568. package/dist/node_modules/@antv/g2/esm/transform/sortX.js +7 -0
  1569. package/dist/node_modules/@antv/g2/esm/transform/sortX.js.map +1 -0
  1570. package/dist/node_modules/@antv/g2/esm/transform/sortY.js +7 -0
  1571. package/dist/node_modules/@antv/g2/esm/transform/sortY.js.map +1 -0
  1572. package/dist/node_modules/@antv/g2/esm/transform/stackEnter.js +46 -0
  1573. package/dist/node_modules/@antv/g2/esm/transform/stackEnter.js.map +1 -0
  1574. package/dist/node_modules/@antv/g2/esm/transform/stackY.js +60 -0
  1575. package/dist/node_modules/@antv/g2/esm/transform/stackY.js.map +1 -0
  1576. package/dist/node_modules/@antv/g2/esm/transform/symmetryY.js +43 -0
  1577. package/dist/node_modules/@antv/g2/esm/transform/symmetryY.js.map +1 -0
  1578. package/dist/node_modules/@antv/g2/esm/transform/utils/helper.js +53 -0
  1579. package/dist/node_modules/@antv/g2/esm/transform/utils/helper.js.map +1 -0
  1580. package/dist/node_modules/@antv/g2/esm/transform/utils/lttb.js +26 -0
  1581. package/dist/node_modules/@antv/g2/esm/transform/utils/lttb.js.map +1 -0
  1582. package/dist/node_modules/@antv/g2/esm/transform/utils/order.js +59 -0
  1583. package/dist/node_modules/@antv/g2/esm/transform/utils/order.js.map +1 -0
  1584. package/dist/node_modules/@antv/g2/esm/utils/angle.js +10 -0
  1585. package/dist/node_modules/@antv/g2/esm/utils/angle.js.map +1 -0
  1586. package/dist/node_modules/@antv/g2/esm/utils/array.js +51 -0
  1587. package/dist/node_modules/@antv/g2/esm/utils/array.js.map +1 -0
  1588. package/dist/node_modules/@antv/g2/esm/utils/bounds.js +26 -0
  1589. package/dist/node_modules/@antv/g2/esm/utils/bounds.js.map +1 -0
  1590. package/dist/node_modules/@antv/g2/esm/utils/color.js +9 -0
  1591. package/dist/node_modules/@antv/g2/esm/utils/color.js.map +1 -0
  1592. package/dist/node_modules/@antv/g2/esm/utils/container.js +18 -0
  1593. package/dist/node_modules/@antv/g2/esm/utils/container.js.map +1 -0
  1594. package/dist/node_modules/@antv/g2/esm/utils/coordinate.js +72 -0
  1595. package/dist/node_modules/@antv/g2/esm/utils/coordinate.js.map +1 -0
  1596. package/dist/node_modules/@antv/g2/esm/utils/createElement.js +20 -0
  1597. package/dist/node_modules/@antv/g2/esm/utils/createElement.js.map +1 -0
  1598. package/dist/node_modules/@antv/g2/esm/utils/dateFormat.js +11 -0
  1599. package/dist/node_modules/@antv/g2/esm/utils/dateFormat.js.map +1 -0
  1600. package/dist/node_modules/@antv/g2/esm/utils/event.js +36 -0
  1601. package/dist/node_modules/@antv/g2/esm/utils/event.js.map +1 -0
  1602. package/dist/node_modules/@antv/g2/esm/utils/expr.js +27 -0
  1603. package/dist/node_modules/@antv/g2/esm/utils/expr.js.map +1 -0
  1604. package/dist/node_modules/@antv/g2/esm/utils/flow.js +7 -0
  1605. package/dist/node_modules/@antv/g2/esm/utils/flow.js.map +1 -0
  1606. package/dist/node_modules/@antv/g2/esm/utils/helper.js +176 -0
  1607. package/dist/node_modules/@antv/g2/esm/utils/helper.js.map +1 -0
  1608. package/dist/node_modules/@antv/g2/esm/utils/lru.js +14 -0
  1609. package/dist/node_modules/@antv/g2/esm/utils/lru.js.map +1 -0
  1610. package/dist/node_modules/@antv/g2/esm/utils/mark.js +27 -0
  1611. package/dist/node_modules/@antv/g2/esm/utils/mark.js.map +1 -0
  1612. package/dist/node_modules/@antv/g2/esm/utils/marker.js +219 -0
  1613. package/dist/node_modules/@antv/g2/esm/utils/marker.js.map +1 -0
  1614. package/dist/node_modules/@antv/g2/esm/utils/number.js +11 -0
  1615. package/dist/node_modules/@antv/g2/esm/utils/number.js.map +1 -0
  1616. package/dist/node_modules/@antv/g2/esm/utils/scale.js +68 -0
  1617. package/dist/node_modules/@antv/g2/esm/utils/scale.js.map +1 -0
  1618. package/dist/node_modules/@antv/g2/esm/utils/selection.js +190 -0
  1619. package/dist/node_modules/@antv/g2/esm/utils/selection.js.map +1 -0
  1620. package/dist/node_modules/@antv/g2/esm/utils/size.js +12 -0
  1621. package/dist/node_modules/@antv/g2/esm/utils/size.js.map +1 -0
  1622. package/dist/node_modules/@antv/g2/esm/utils/string.js +13 -0
  1623. package/dist/node_modules/@antv/g2/esm/utils/string.js.map +1 -0
  1624. package/dist/node_modules/@antv/g2/esm/utils/style.js +30 -0
  1625. package/dist/node_modules/@antv/g2/esm/utils/style.js.map +1 -0
  1626. package/dist/node_modules/@antv/g2/esm/utils/traverse-elements.js +15 -0
  1627. package/dist/node_modules/@antv/g2/esm/utils/traverse-elements.js.map +1 -0
  1628. package/dist/node_modules/@antv/g2/esm/utils/treeDataTransform.js +53 -0
  1629. package/dist/node_modules/@antv/g2/esm/utils/treeDataTransform.js.map +1 -0
  1630. package/dist/node_modules/@antv/g2/esm/utils/vector.js +40 -0
  1631. package/dist/node_modules/@antv/g2/esm/utils/vector.js.map +1 -0
  1632. package/dist/node_modules/@antv/g2-extension-plot/esm/interaction/drillDown.js +152 -0
  1633. package/dist/node_modules/@antv/g2-extension-plot/esm/interaction/drillDown.js.map +1 -0
  1634. package/dist/node_modules/@antv/g2-extension-plot/esm/lib.js +12 -0
  1635. package/dist/node_modules/@antv/g2-extension-plot/esm/lib.js.map +1 -0
  1636. package/dist/node_modules/@antv/g2-extension-plot/esm/mark/sunburst.js +95 -0
  1637. package/dist/node_modules/@antv/g2-extension-plot/esm/mark/sunburst.js.map +1 -0
  1638. package/dist/node_modules/@antv/g2-extension-plot/esm/utils/hierarchy/partition.js +85 -0
  1639. package/dist/node_modules/@antv/g2-extension-plot/esm/utils/hierarchy/partition.js.map +1 -0
  1640. package/dist/node_modules/@antv/g6/esm/animations/executor.js +51 -0
  1641. package/dist/node_modules/@antv/g6/esm/animations/executor.js.map +1 -0
  1642. package/dist/node_modules/@antv/g6/esm/animations/index.js +14 -0
  1643. package/dist/node_modules/@antv/g6/esm/animations/index.js.map +1 -0
  1644. package/dist/node_modules/@antv/g6/esm/behaviors/auto-adapt-label.js +110 -0
  1645. package/dist/node_modules/@antv/g6/esm/behaviors/auto-adapt-label.js.map +1 -0
  1646. package/dist/node_modules/@antv/g6/esm/behaviors/base-behavior.js +7 -0
  1647. package/dist/node_modules/@antv/g6/esm/behaviors/base-behavior.js.map +1 -0
  1648. package/dist/node_modules/@antv/g6/esm/behaviors/brush-select.js +240 -0
  1649. package/dist/node_modules/@antv/g6/esm/behaviors/brush-select.js.map +1 -0
  1650. package/dist/node_modules/@antv/g6/esm/behaviors/click-select.js +164 -0
  1651. package/dist/node_modules/@antv/g6/esm/behaviors/click-select.js.map +1 -0
  1652. package/dist/node_modules/@antv/g6/esm/behaviors/collapse-expand.js +88 -0
  1653. package/dist/node_modules/@antv/g6/esm/behaviors/collapse-expand.js.map +1 -0
  1654. package/dist/node_modules/@antv/g6/esm/behaviors/create-edge.js +143 -0
  1655. package/dist/node_modules/@antv/g6/esm/behaviors/create-edge.js.map +1 -0
  1656. package/dist/node_modules/@antv/g6/esm/behaviors/drag-canvas.js +146 -0
  1657. package/dist/node_modules/@antv/g6/esm/behaviors/drag-canvas.js.map +1 -0
  1658. package/dist/node_modules/@antv/g6/esm/behaviors/drag-element-force.js +101 -0
  1659. package/dist/node_modules/@antv/g6/esm/behaviors/drag-element-force.js.map +1 -0
  1660. package/dist/node_modules/@antv/g6/esm/behaviors/drag-element.js +265 -0
  1661. package/dist/node_modules/@antv/g6/esm/behaviors/drag-element.js.map +1 -0
  1662. package/dist/node_modules/@antv/g6/esm/behaviors/fix-element-size.js +167 -0
  1663. package/dist/node_modules/@antv/g6/esm/behaviors/fix-element-size.js.map +1 -0
  1664. package/dist/node_modules/@antv/g6/esm/behaviors/focus-element.js +96 -0
  1665. package/dist/node_modules/@antv/g6/esm/behaviors/focus-element.js.map +1 -0
  1666. package/dist/node_modules/@antv/g6/esm/behaviors/hover-activate.js +89 -0
  1667. package/dist/node_modules/@antv/g6/esm/behaviors/hover-activate.js.map +1 -0
  1668. package/dist/node_modules/@antv/g6/esm/behaviors/lasso-select.js +53 -0
  1669. package/dist/node_modules/@antv/g6/esm/behaviors/lasso-select.js.map +1 -0
  1670. package/dist/node_modules/@antv/g6/esm/behaviors/optimize-viewport-transform.js +68 -0
  1671. package/dist/node_modules/@antv/g6/esm/behaviors/optimize-viewport-transform.js.map +1 -0
  1672. package/dist/node_modules/@antv/g6/esm/behaviors/scroll-canvas.js +126 -0
  1673. package/dist/node_modules/@antv/g6/esm/behaviors/scroll-canvas.js.map +1 -0
  1674. package/dist/node_modules/@antv/g6/esm/behaviors/zoom-canvas.js +123 -0
  1675. package/dist/node_modules/@antv/g6/esm/behaviors/zoom-canvas.js.map +1 -0
  1676. package/dist/node_modules/@antv/g6/esm/constants/animation.js +13 -0
  1677. package/dist/node_modules/@antv/g6/esm/constants/animation.js.map +1 -0
  1678. package/dist/node_modules/@antv/g6/esm/constants/change.js +8 -0
  1679. package/dist/node_modules/@antv/g6/esm/constants/change.js.map +1 -0
  1680. package/dist/node_modules/@antv/g6/esm/constants/element.js +6 -0
  1681. package/dist/node_modules/@antv/g6/esm/constants/element.js.map +1 -0
  1682. package/dist/node_modules/@antv/g6/esm/constants/events/animation.js +8 -0
  1683. package/dist/node_modules/@antv/g6/esm/constants/events/animation.js.map +1 -0
  1684. package/dist/node_modules/@antv/g6/esm/constants/events/canvas.js +8 -0
  1685. package/dist/node_modules/@antv/g6/esm/constants/events/canvas.js.map +1 -0
  1686. package/dist/node_modules/@antv/g6/esm/constants/events/combo.js +8 -0
  1687. package/dist/node_modules/@antv/g6/esm/constants/events/combo.js.map +1 -0
  1688. package/dist/node_modules/@antv/g6/esm/constants/events/common.js +8 -0
  1689. package/dist/node_modules/@antv/g6/esm/constants/events/common.js.map +1 -0
  1690. package/dist/node_modules/@antv/g6/esm/constants/events/container.js +8 -0
  1691. package/dist/node_modules/@antv/g6/esm/constants/events/container.js.map +1 -0
  1692. package/dist/node_modules/@antv/g6/esm/constants/events/edge.js +8 -0
  1693. package/dist/node_modules/@antv/g6/esm/constants/events/edge.js.map +1 -0
  1694. package/dist/node_modules/@antv/g6/esm/constants/events/graph.js +8 -0
  1695. package/dist/node_modules/@antv/g6/esm/constants/events/graph.js.map +1 -0
  1696. package/dist/node_modules/@antv/g6/esm/constants/events/history.js +8 -0
  1697. package/dist/node_modules/@antv/g6/esm/constants/events/history.js.map +1 -0
  1698. package/dist/node_modules/@antv/g6/esm/constants/events/node.js +8 -0
  1699. package/dist/node_modules/@antv/g6/esm/constants/events/node.js.map +1 -0
  1700. package/dist/node_modules/@antv/g6/esm/constants/graphlib.js +6 -0
  1701. package/dist/node_modules/@antv/g6/esm/constants/graphlib.js.map +1 -0
  1702. package/dist/node_modules/@antv/g6/esm/constants/registry.js +8 -0
  1703. package/dist/node_modules/@antv/g6/esm/constants/registry.js.map +1 -0
  1704. package/dist/node_modules/@antv/g6/esm/elements/base-element.js +28 -0
  1705. package/dist/node_modules/@antv/g6/esm/elements/base-element.js.map +1 -0
  1706. package/dist/node_modules/@antv/g6/esm/elements/combos/base-combo.js +153 -0
  1707. package/dist/node_modules/@antv/g6/esm/elements/combos/base-combo.js.map +1 -0
  1708. package/dist/node_modules/@antv/g6/esm/elements/combos/circle.js +35 -0
  1709. package/dist/node_modules/@antv/g6/esm/elements/combos/circle.js.map +1 -0
  1710. package/dist/node_modules/@antv/g6/esm/elements/combos/rect.js +25 -0
  1711. package/dist/node_modules/@antv/g6/esm/elements/combos/rect.js.map +1 -0
  1712. package/dist/node_modules/@antv/g6/esm/elements/edges/base-edge.js +183 -0
  1713. package/dist/node_modules/@antv/g6/esm/elements/edges/base-edge.js.map +1 -0
  1714. package/dist/node_modules/@antv/g6/esm/elements/edges/cubic-horizontal.js +22 -0
  1715. package/dist/node_modules/@antv/g6/esm/elements/edges/cubic-horizontal.js.map +1 -0
  1716. package/dist/node_modules/@antv/g6/esm/elements/edges/cubic-radial.js +43 -0
  1717. package/dist/node_modules/@antv/g6/esm/elements/edges/cubic-radial.js.map +1 -0
  1718. package/dist/node_modules/@antv/g6/esm/elements/edges/cubic-vertical.js +22 -0
  1719. package/dist/node_modules/@antv/g6/esm/elements/edges/cubic-vertical.js.map +1 -0
  1720. package/dist/node_modules/@antv/g6/esm/elements/edges/cubic.js +29 -0
  1721. package/dist/node_modules/@antv/g6/esm/elements/edges/cubic.js.map +1 -0
  1722. package/dist/node_modules/@antv/g6/esm/elements/edges/line.js +19 -0
  1723. package/dist/node_modules/@antv/g6/esm/elements/edges/line.js.map +1 -0
  1724. package/dist/node_modules/@antv/g6/esm/elements/edges/polyline.js +46 -0
  1725. package/dist/node_modules/@antv/g6/esm/elements/edges/polyline.js.map +1 -0
  1726. package/dist/node_modules/@antv/g6/esm/elements/edges/quadratic.js +20 -0
  1727. package/dist/node_modules/@antv/g6/esm/elements/edges/quadratic.js.map +1 -0
  1728. package/dist/node_modules/@antv/g6/esm/elements/effect.js +29 -0
  1729. package/dist/node_modules/@antv/g6/esm/elements/effect.js.map +1 -0
  1730. package/dist/node_modules/@antv/g6/esm/elements/nodes/base-node.js +209 -0
  1731. package/dist/node_modules/@antv/g6/esm/elements/nodes/base-node.js.map +1 -0
  1732. package/dist/node_modules/@antv/g6/esm/elements/nodes/circle.js +33 -0
  1733. package/dist/node_modules/@antv/g6/esm/elements/nodes/circle.js.map +1 -0
  1734. package/dist/node_modules/@antv/g6/esm/elements/nodes/diamond.js +15 -0
  1735. package/dist/node_modules/@antv/g6/esm/elements/nodes/diamond.js.map +1 -0
  1736. package/dist/node_modules/@antv/g6/esm/elements/nodes/donut.js +82 -0
  1737. package/dist/node_modules/@antv/g6/esm/elements/nodes/donut.js.map +1 -0
  1738. package/dist/node_modules/@antv/g6/esm/elements/nodes/ellipse.js +33 -0
  1739. package/dist/node_modules/@antv/g6/esm/elements/nodes/ellipse.js.map +1 -0
  1740. package/dist/node_modules/@antv/g6/esm/elements/nodes/hexagon.js +22 -0
  1741. package/dist/node_modules/@antv/g6/esm/elements/nodes/hexagon.js.map +1 -0
  1742. package/dist/node_modules/@antv/g6/esm/elements/nodes/html.js +136 -0
  1743. package/dist/node_modules/@antv/g6/esm/elements/nodes/html.js.map +1 -0
  1744. package/dist/node_modules/@antv/g6/esm/elements/nodes/image.js +84 -0
  1745. package/dist/node_modules/@antv/g6/esm/elements/nodes/image.js.map +1 -0
  1746. package/dist/node_modules/@antv/g6/esm/elements/nodes/rect.js +29 -0
  1747. package/dist/node_modules/@antv/g6/esm/elements/nodes/rect.js.map +1 -0
  1748. package/dist/node_modules/@antv/g6/esm/elements/nodes/star.js +29 -0
  1749. package/dist/node_modules/@antv/g6/esm/elements/nodes/star.js.map +1 -0
  1750. package/dist/node_modules/@antv/g6/esm/elements/nodes/triangle.js +42 -0
  1751. package/dist/node_modules/@antv/g6/esm/elements/nodes/triangle.js.map +1 -0
  1752. package/dist/node_modules/@antv/g6/esm/elements/shapes/badge.js +29 -0
  1753. package/dist/node_modules/@antv/g6/esm/elements/shapes/badge.js.map +1 -0
  1754. package/dist/node_modules/@antv/g6/esm/elements/shapes/base-shape.js +169 -0
  1755. package/dist/node_modules/@antv/g6/esm/elements/shapes/base-shape.js.map +1 -0
  1756. package/dist/node_modules/@antv/g6/esm/elements/shapes/contour.js +45 -0
  1757. package/dist/node_modules/@antv/g6/esm/elements/shapes/contour.js.map +1 -0
  1758. package/dist/node_modules/@antv/g6/esm/elements/shapes/icon.js +24 -0
  1759. package/dist/node_modules/@antv/g6/esm/elements/shapes/icon.js.map +1 -0
  1760. package/dist/node_modules/@antv/g6/esm/elements/shapes/image.js +42 -0
  1761. package/dist/node_modules/@antv/g6/esm/elements/shapes/image.js.map +1 -0
  1762. package/dist/node_modules/@antv/g6/esm/elements/shapes/label.js +69 -0
  1763. package/dist/node_modules/@antv/g6/esm/elements/shapes/label.js.map +1 -0
  1764. package/dist/node_modules/@antv/g6/esm/elements/shapes/polygon.js +28 -0
  1765. package/dist/node_modules/@antv/g6/esm/elements/shapes/polygon.js.map +1 -0
  1766. package/dist/node_modules/@antv/g6/esm/index.js +233 -0
  1767. package/dist/node_modules/@antv/g6/esm/index.js.map +1 -0
  1768. package/dist/node_modules/@antv/g6/esm/layouts/base-layout.js +9 -0
  1769. package/dist/node_modules/@antv/g6/esm/layouts/base-layout.js.map +1 -0
  1770. package/dist/node_modules/@antv/g6/esm/layouts/fishbone.js +163 -0
  1771. package/dist/node_modules/@antv/g6/esm/layouts/fishbone.js.map +1 -0
  1772. package/dist/node_modules/@antv/g6/esm/layouts/snake.js +105 -0
  1773. package/dist/node_modules/@antv/g6/esm/layouts/snake.js.map +1 -0
  1774. package/dist/node_modules/@antv/g6/esm/palettes/index.js +62 -0
  1775. package/dist/node_modules/@antv/g6/esm/palettes/index.js.map +1 -0
  1776. package/dist/node_modules/@antv/g6/esm/plugins/background/index.js +69 -0
  1777. package/dist/node_modules/@antv/g6/esm/plugins/background/index.js.map +1 -0
  1778. package/dist/node_modules/@antv/g6/esm/plugins/base-plugin.js +7 -0
  1779. package/dist/node_modules/@antv/g6/esm/plugins/base-plugin.js.map +1 -0
  1780. package/dist/node_modules/@antv/g6/esm/plugins/bubble-sets.js +191 -0
  1781. package/dist/node_modules/@antv/g6/esm/plugins/bubble-sets.js.map +1 -0
  1782. package/dist/node_modules/@antv/g6/esm/plugins/camera-setting.js +73 -0
  1783. package/dist/node_modules/@antv/g6/esm/plugins/camera-setting.js.map +1 -0
  1784. package/dist/node_modules/@antv/g6/esm/plugins/contextmenu/index.js +127 -0
  1785. package/dist/node_modules/@antv/g6/esm/plugins/contextmenu/index.js.map +1 -0
  1786. package/dist/node_modules/@antv/g6/esm/plugins/contextmenu/util.js +56 -0
  1787. package/dist/node_modules/@antv/g6/esm/plugins/contextmenu/util.js.map +1 -0
  1788. package/dist/node_modules/@antv/g6/esm/plugins/edge-bundling/index.js +172 -0
  1789. package/dist/node_modules/@antv/g6/esm/plugins/edge-bundling/index.js.map +1 -0
  1790. package/dist/node_modules/@antv/g6/esm/plugins/edge-filter-lens/index.js +168 -0
  1791. package/dist/node_modules/@antv/g6/esm/plugins/edge-filter-lens/index.js.map +1 -0
  1792. package/dist/node_modules/@antv/g6/esm/plugins/fisheye/index.js +208 -0
  1793. package/dist/node_modules/@antv/g6/esm/plugins/fisheye/index.js.map +1 -0
  1794. package/dist/node_modules/@antv/g6/esm/plugins/fullscreen/index.js +76 -0
  1795. package/dist/node_modules/@antv/g6/esm/plugins/fullscreen/index.js.map +1 -0
  1796. package/dist/node_modules/@antv/g6/esm/plugins/grid-line.js +89 -0
  1797. package/dist/node_modules/@antv/g6/esm/plugins/grid-line.js.map +1 -0
  1798. package/dist/node_modules/@antv/g6/esm/plugins/history/index.js +142 -0
  1799. package/dist/node_modules/@antv/g6/esm/plugins/history/index.js.map +1 -0
  1800. package/dist/node_modules/@antv/g6/esm/plugins/history/util.js +40 -0
  1801. package/dist/node_modules/@antv/g6/esm/plugins/history/util.js.map +1 -0
  1802. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/format.js +21 -0
  1803. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/format.js.map +1 -0
  1804. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/grid_handle.js +49 -0
  1805. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/grid_handle.js.map +1 -0
  1806. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/index.js +97 -0
  1807. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/index.js.map +1 -0
  1808. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/monotone-convex-hull-2d.js +39 -0
  1809. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/monotone-convex-hull-2d.js.map +1 -0
  1810. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/robust-orientation.js +92 -0
  1811. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/robust-orientation.js.map +1 -0
  1812. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/robust-scale.js +24 -0
  1813. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/robust-scale.js.map +1 -0
  1814. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/robust-segment-intersect.js +20 -0
  1815. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/robust-segment-intersect.js.map +1 -0
  1816. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/robust-subtract.js +26 -0
  1817. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/robust-subtract.js.map +1 -0
  1818. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/robust-sum.js +26 -0
  1819. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/robust-sum.js.map +1 -0
  1820. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/two-product.js +9 -0
  1821. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/two-product.js.map +1 -0
  1822. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/two-sum.js +8 -0
  1823. package/dist/node_modules/@antv/g6/esm/plugins/hull/hull/two-sum.js.map +1 -0
  1824. package/dist/node_modules/@antv/g6/esm/plugins/hull/index.js +133 -0
  1825. package/dist/node_modules/@antv/g6/esm/plugins/hull/index.js.map +1 -0
  1826. package/dist/node_modules/@antv/g6/esm/plugins/hull/util.js +92 -0
  1827. package/dist/node_modules/@antv/g6/esm/plugins/hull/util.js.map +1 -0
  1828. package/dist/node_modules/@antv/g6/esm/plugins/legend.js +200 -0
  1829. package/dist/node_modules/@antv/g6/esm/plugins/legend.js.map +1 -0
  1830. package/dist/node_modules/@antv/g6/esm/plugins/minimap/index.js +208 -0
  1831. package/dist/node_modules/@antv/g6/esm/plugins/minimap/index.js.map +1 -0
  1832. package/dist/node_modules/@antv/g6/esm/plugins/snapline/index.js +165 -0
  1833. package/dist/node_modules/@antv/g6/esm/plugins/snapline/index.js.map +1 -0
  1834. package/dist/node_modules/@antv/g6/esm/plugins/timebar.js +223 -0
  1835. package/dist/node_modules/@antv/g6/esm/plugins/timebar.js.map +1 -0
  1836. package/dist/node_modules/@antv/g6/esm/plugins/title/index.js +143 -0
  1837. package/dist/node_modules/@antv/g6/esm/plugins/title/index.js.map +1 -0
  1838. package/dist/node_modules/@antv/g6/esm/plugins/toolbar/index.js +89 -0
  1839. package/dist/node_modules/@antv/g6/esm/plugins/toolbar/index.js.map +1 -0
  1840. package/dist/node_modules/@antv/g6/esm/plugins/toolbar/util.js +84 -0
  1841. package/dist/node_modules/@antv/g6/esm/plugins/toolbar/util.js.map +1 -0
  1842. package/dist/node_modules/@antv/g6/esm/plugins/tooltip.js +222 -0
  1843. package/dist/node_modules/@antv/g6/esm/plugins/tooltip.js.map +1 -0
  1844. package/dist/node_modules/@antv/g6/esm/plugins/utils/canvas.js +30 -0
  1845. package/dist/node_modules/@antv/g6/esm/plugins/utils/canvas.js.map +1 -0
  1846. package/dist/node_modules/@antv/g6/esm/plugins/utils/dom.js +26 -0
  1847. package/dist/node_modules/@antv/g6/esm/plugins/utils/dom.js.map +1 -0
  1848. package/dist/node_modules/@antv/g6/esm/plugins/watermark/index.js +88 -0
  1849. package/dist/node_modules/@antv/g6/esm/plugins/watermark/index.js.map +1 -0
  1850. package/dist/node_modules/@antv/g6/esm/plugins/watermark/util.js +55 -0
  1851. package/dist/node_modules/@antv/g6/esm/plugins/watermark/util.js.map +1 -0
  1852. package/dist/node_modules/@antv/g6/esm/preset.js +3 -0
  1853. package/dist/node_modules/@antv/g6/esm/preset.js.map +1 -0
  1854. package/dist/node_modules/@antv/g6/esm/registry/build-in.js +245 -0
  1855. package/dist/node_modules/@antv/g6/esm/registry/build-in.js.map +1 -0
  1856. package/dist/node_modules/@antv/g6/esm/registry/extension/index.js +56 -0
  1857. package/dist/node_modules/@antv/g6/esm/registry/extension/index.js.map +1 -0
  1858. package/dist/node_modules/@antv/g6/esm/registry/get.js +15 -0
  1859. package/dist/node_modules/@antv/g6/esm/registry/get.js.map +1 -0
  1860. package/dist/node_modules/@antv/g6/esm/registry/register.js +9 -0
  1861. package/dist/node_modules/@antv/g6/esm/registry/register.js.map +1 -0
  1862. package/dist/node_modules/@antv/g6/esm/registry/store.js +17 -0
  1863. package/dist/node_modules/@antv/g6/esm/registry/store.js.map +1 -0
  1864. package/dist/node_modules/@antv/g6/esm/runtime/animation.js +112 -0
  1865. package/dist/node_modules/@antv/g6/esm/runtime/animation.js.map +1 -0
  1866. package/dist/node_modules/@antv/g6/esm/runtime/batch.js +39 -0
  1867. package/dist/node_modules/@antv/g6/esm/runtime/batch.js.map +1 -0
  1868. package/dist/node_modules/@antv/g6/esm/runtime/behavior.js +80 -0
  1869. package/dist/node_modules/@antv/g6/esm/runtime/behavior.js.map +1 -0
  1870. package/dist/node_modules/@antv/g6/esm/runtime/canvas.js +244 -0
  1871. package/dist/node_modules/@antv/g6/esm/runtime/canvas.js.map +1 -0
  1872. package/dist/node_modules/@antv/g6/esm/runtime/data.js +597 -0
  1873. package/dist/node_modules/@antv/g6/esm/runtime/data.js.map +1 -0
  1874. package/dist/node_modules/@antv/g6/esm/runtime/element.js +582 -0
  1875. package/dist/node_modules/@antv/g6/esm/runtime/element.js.map +1 -0
  1876. package/dist/node_modules/@antv/g6/esm/runtime/graph.js +1464 -0
  1877. package/dist/node_modules/@antv/g6/esm/runtime/graph.js.map +1 -0
  1878. package/dist/node_modules/@antv/g6/esm/runtime/layout.js +287 -0
  1879. package/dist/node_modules/@antv/g6/esm/runtime/layout.js.map +1 -0
  1880. package/dist/node_modules/@antv/g6/esm/runtime/options.js +28 -0
  1881. package/dist/node_modules/@antv/g6/esm/runtime/options.js.map +1 -0
  1882. package/dist/node_modules/@antv/g6/esm/runtime/plugin.js +23 -0
  1883. package/dist/node_modules/@antv/g6/esm/runtime/plugin.js.map +1 -0
  1884. package/dist/node_modules/@antv/g6/esm/runtime/transform.js +30 -0
  1885. package/dist/node_modules/@antv/g6/esm/runtime/transform.js.map +1 -0
  1886. package/dist/node_modules/@antv/g6/esm/runtime/viewport.js +233 -0
  1887. package/dist/node_modules/@antv/g6/esm/runtime/viewport.js.map +1 -0
  1888. package/dist/node_modules/@antv/g6/esm/themes/base.js +255 -0
  1889. package/dist/node_modules/@antv/g6/esm/themes/base.js.map +1 -0
  1890. package/dist/node_modules/@antv/g6/esm/themes/dark.js +40 -0
  1891. package/dist/node_modules/@antv/g6/esm/themes/dark.js.map +1 -0
  1892. package/dist/node_modules/@antv/g6/esm/themes/light.js +24 -0
  1893. package/dist/node_modules/@antv/g6/esm/themes/light.js.map +1 -0
  1894. package/dist/node_modules/@antv/g6/esm/transforms/arrange-draw-order.js +18 -0
  1895. package/dist/node_modules/@antv/g6/esm/transforms/arrange-draw-order.js.map +1 -0
  1896. package/dist/node_modules/@antv/g6/esm/transforms/base-transform.js +12 -0
  1897. package/dist/node_modules/@antv/g6/esm/transforms/base-transform.js.map +1 -0
  1898. package/dist/node_modules/@antv/g6/esm/transforms/collapse-expand-combo.js +52 -0
  1899. package/dist/node_modules/@antv/g6/esm/transforms/collapse-expand-combo.js.map +1 -0
  1900. package/dist/node_modules/@antv/g6/esm/transforms/collapse-expand-node.js +76 -0
  1901. package/dist/node_modules/@antv/g6/esm/transforms/collapse-expand-node.js.map +1 -0
  1902. package/dist/node_modules/@antv/g6/esm/transforms/get-edge-actual-ends.js +96 -0
  1903. package/dist/node_modules/@antv/g6/esm/transforms/get-edge-actual-ends.js.map +1 -0
  1904. package/dist/node_modules/@antv/g6/esm/transforms/map-node-size.js +74 -0
  1905. package/dist/node_modules/@antv/g6/esm/transforms/map-node-size.js.map +1 -0
  1906. package/dist/node_modules/@antv/g6/esm/transforms/place-radial-labels.js +48 -0
  1907. package/dist/node_modules/@antv/g6/esm/transforms/place-radial-labels.js.map +1 -0
  1908. package/dist/node_modules/@antv/g6/esm/transforms/process-parallel-edges.js +150 -0
  1909. package/dist/node_modules/@antv/g6/esm/transforms/process-parallel-edges.js.map +1 -0
  1910. package/dist/node_modules/@antv/g6/esm/transforms/update-related-edge.js +17 -0
  1911. package/dist/node_modules/@antv/g6/esm/transforms/update-related-edge.js.map +1 -0
  1912. package/dist/node_modules/@antv/g6/esm/transforms/utils.js +15 -0
  1913. package/dist/node_modules/@antv/g6/esm/transforms/utils.js.map +1 -0
  1914. package/dist/node_modules/@antv/g6/esm/utils/animation.js +114 -0
  1915. package/dist/node_modules/@antv/g6/esm/utils/animation.js.map +1 -0
  1916. package/dist/node_modules/@antv/g6/esm/utils/bbox.js +117 -0
  1917. package/dist/node_modules/@antv/g6/esm/utils/bbox.js.map +1 -0
  1918. package/dist/node_modules/@antv/g6/esm/utils/cache.js +21 -0
  1919. package/dist/node_modules/@antv/g6/esm/utils/cache.js.map +1 -0
  1920. package/dist/node_modules/@antv/g6/esm/utils/centrality.js +99 -0
  1921. package/dist/node_modules/@antv/g6/esm/utils/centrality.js.map +1 -0
  1922. package/dist/node_modules/@antv/g6/esm/utils/change.js +51 -0
  1923. package/dist/node_modules/@antv/g6/esm/utils/change.js.map +1 -0
  1924. package/dist/node_modules/@antv/g6/esm/utils/collapsibility.js +8 -0
  1925. package/dist/node_modules/@antv/g6/esm/utils/collapsibility.js.map +1 -0
  1926. package/dist/node_modules/@antv/g6/esm/utils/data.js +35 -0
  1927. package/dist/node_modules/@antv/g6/esm/utils/data.js.map +1 -0
  1928. package/dist/node_modules/@antv/g6/esm/utils/diff.js +13 -0
  1929. package/dist/node_modules/@antv/g6/esm/utils/diff.js.map +1 -0
  1930. package/dist/node_modules/@antv/g6/esm/utils/dom.js +22 -0
  1931. package/dist/node_modules/@antv/g6/esm/utils/dom.js.map +1 -0
  1932. package/dist/node_modules/@antv/g6/esm/utils/edge.js +291 -0
  1933. package/dist/node_modules/@antv/g6/esm/utils/edge.js.map +1 -0
  1934. package/dist/node_modules/@antv/g6/esm/utils/element.js +245 -0
  1935. package/dist/node_modules/@antv/g6/esm/utils/element.js.map +1 -0
  1936. package/dist/node_modules/@antv/g6/esm/utils/event/events.js +33 -0
  1937. package/dist/node_modules/@antv/g6/esm/utils/event/events.js.map +1 -0
  1938. package/dist/node_modules/@antv/g6/esm/utils/event/index.js +28 -0
  1939. package/dist/node_modules/@antv/g6/esm/utils/event/index.js.map +1 -0
  1940. package/dist/node_modules/@antv/g6/esm/utils/extension.js +8 -0
  1941. package/dist/node_modules/@antv/g6/esm/utils/extension.js.map +1 -0
  1942. package/dist/node_modules/@antv/g6/esm/utils/graphlib.js +45 -0
  1943. package/dist/node_modules/@antv/g6/esm/utils/graphlib.js.map +1 -0
  1944. package/dist/node_modules/@antv/g6/esm/utils/id.js +25 -0
  1945. package/dist/node_modules/@antv/g6/esm/utils/id.js.map +1 -0
  1946. package/dist/node_modules/@antv/g6/esm/utils/is.js +19 -0
  1947. package/dist/node_modules/@antv/g6/esm/utils/is.js.map +1 -0
  1948. package/dist/node_modules/@antv/g6/esm/utils/layout.js +214 -0
  1949. package/dist/node_modules/@antv/g6/esm/utils/layout.js.map +1 -0
  1950. package/dist/node_modules/@antv/g6/esm/utils/line.js +18 -0
  1951. package/dist/node_modules/@antv/g6/esm/utils/line.js.map +1 -0
  1952. package/dist/node_modules/@antv/g6/esm/utils/math.js +7 -0
  1953. package/dist/node_modules/@antv/g6/esm/utils/math.js.map +1 -0
  1954. package/dist/node_modules/@antv/g6/esm/utils/node.js +10 -0
  1955. package/dist/node_modules/@antv/g6/esm/utils/node.js.map +1 -0
  1956. package/dist/node_modules/@antv/g6/esm/utils/padding.js +16 -0
  1957. package/dist/node_modules/@antv/g6/esm/utils/padding.js.map +1 -0
  1958. package/dist/node_modules/@antv/g6/esm/utils/palette.js +72 -0
  1959. package/dist/node_modules/@antv/g6/esm/utils/palette.js.map +1 -0
  1960. package/dist/node_modules/@antv/g6/esm/utils/path.js +80 -0
  1961. package/dist/node_modules/@antv/g6/esm/utils/path.js.map +1 -0
  1962. package/dist/node_modules/@antv/g6/esm/utils/pinch.js +130 -0
  1963. package/dist/node_modules/@antv/g6/esm/utils/pinch.js.map +1 -0
  1964. package/dist/node_modules/@antv/g6/esm/utils/placement.js +11 -0
  1965. package/dist/node_modules/@antv/g6/esm/utils/placement.js.map +1 -0
  1966. package/dist/node_modules/@antv/g6/esm/utils/point.js +149 -0
  1967. package/dist/node_modules/@antv/g6/esm/utils/point.js.map +1 -0
  1968. package/dist/node_modules/@antv/g6/esm/utils/polygon.js +29 -0
  1969. package/dist/node_modules/@antv/g6/esm/utils/polygon.js.map +1 -0
  1970. package/dist/node_modules/@antv/g6/esm/utils/position.js +24 -0
  1971. package/dist/node_modules/@antv/g6/esm/utils/position.js.map +1 -0
  1972. package/dist/node_modules/@antv/g6/esm/utils/prefix.js +54 -0
  1973. package/dist/node_modules/@antv/g6/esm/utils/prefix.js.map +1 -0
  1974. package/dist/node_modules/@antv/g6/esm/utils/print.js +25 -0
  1975. package/dist/node_modules/@antv/g6/esm/utils/print.js.map +1 -0
  1976. package/dist/node_modules/@antv/g6/esm/utils/relation.js +25 -0
  1977. package/dist/node_modules/@antv/g6/esm/utils/relation.js.map +1 -0
  1978. package/dist/node_modules/@antv/g6/esm/utils/router/orth.js +132 -0
  1979. package/dist/node_modules/@antv/g6/esm/utils/router/orth.js.map +1 -0
  1980. package/dist/node_modules/@antv/g6/esm/utils/router/shortest-path.js +195 -0
  1981. package/dist/node_modules/@antv/g6/esm/utils/router/shortest-path.js.map +1 -0
  1982. package/dist/node_modules/@antv/g6/esm/utils/scale.js +23 -0
  1983. package/dist/node_modules/@antv/g6/esm/utils/scale.js.map +1 -0
  1984. package/dist/node_modules/@antv/g6/esm/utils/shape.js +20 -0
  1985. package/dist/node_modules/@antv/g6/esm/utils/shape.js.map +1 -0
  1986. package/dist/node_modules/@antv/g6/esm/utils/shortcut.js +91 -0
  1987. package/dist/node_modules/@antv/g6/esm/utils/shortcut.js.map +1 -0
  1988. package/dist/node_modules/@antv/g6/esm/utils/size.js +10 -0
  1989. package/dist/node_modules/@antv/g6/esm/utils/size.js.map +1 -0
  1990. package/dist/node_modules/@antv/g6/esm/utils/state.js +7 -0
  1991. package/dist/node_modules/@antv/g6/esm/utils/state.js.map +1 -0
  1992. package/dist/node_modules/@antv/g6/esm/utils/style.js +30 -0
  1993. package/dist/node_modules/@antv/g6/esm/utils/style.js.map +1 -0
  1994. package/dist/node_modules/@antv/g6/esm/utils/symbol.js +45 -0
  1995. package/dist/node_modules/@antv/g6/esm/utils/symbol.js.map +1 -0
  1996. package/dist/node_modules/@antv/g6/esm/utils/text.js +19 -0
  1997. package/dist/node_modules/@antv/g6/esm/utils/text.js.map +1 -0
  1998. package/dist/node_modules/@antv/g6/esm/utils/theme.js +24 -0
  1999. package/dist/node_modules/@antv/g6/esm/utils/theme.js.map +1 -0
  2000. package/dist/node_modules/@antv/g6/esm/utils/transform.js +29 -0
  2001. package/dist/node_modules/@antv/g6/esm/utils/transform.js.map +1 -0
  2002. package/dist/node_modules/@antv/g6/esm/utils/traverse.js +24 -0
  2003. package/dist/node_modules/@antv/g6/esm/utils/traverse.js.map +1 -0
  2004. package/dist/node_modules/@antv/g6/esm/utils/tree.js +27 -0
  2005. package/dist/node_modules/@antv/g6/esm/utils/tree.js.map +1 -0
  2006. package/dist/node_modules/@antv/g6/esm/utils/vector.js +95 -0
  2007. package/dist/node_modules/@antv/g6/esm/utils/vector.js.map +1 -0
  2008. package/dist/node_modules/@antv/g6/esm/utils/visibility.js +12 -0
  2009. package/dist/node_modules/@antv/g6/esm/utils/visibility.js.map +1 -0
  2010. package/dist/node_modules/@antv/g6/esm/utils/z-index.js +8 -0
  2011. package/dist/node_modules/@antv/g6/esm/utils/z-index.js.map +1 -0
  2012. package/dist/node_modules/@antv/g6/esm/version.js +5 -0
  2013. package/dist/node_modules/@antv/g6/esm/version.js.map +1 -0
  2014. package/dist/node_modules/@antv/g6-extension-react/esm/react-node/node.js +103 -0
  2015. package/dist/node_modules/@antv/g6-extension-react/esm/react-node/node.js.map +1 -0
  2016. package/dist/node_modules/@antv/g6-extension-react/esm/react-node/render.js +53 -0
  2017. package/dist/node_modules/@antv/g6-extension-react/esm/react-node/render.js.map +1 -0
  2018. package/dist/node_modules/@antv/g6-extension-react/esm/react-node/render16.js +13 -0
  2019. package/dist/node_modules/@antv/g6-extension-react/esm/react-node/render16.js.map +1 -0
  2020. package/dist/node_modules/@antv/g6-extension-react/esm/react-node/render18.js +63 -0
  2021. package/dist/node_modules/@antv/g6-extension-react/esm/react-node/render18.js.map +1 -0
  2022. package/dist/node_modules/@antv/graphin/es/Graphin.js +34 -0
  2023. package/dist/node_modules/@antv/graphin/es/Graphin.js.map +1 -0
  2024. package/dist/node_modules/@antv/graphin/es/context/index.js +9 -0
  2025. package/dist/node_modules/@antv/graphin/es/context/index.js.map +1 -0
  2026. package/dist/node_modules/@antv/graphin/es/hooks/useGraph.js +127 -0
  2027. package/dist/node_modules/@antv/graphin/es/hooks/useGraph.js.map +1 -0
  2028. package/dist/node_modules/@antv/graphlib/esm/graph.js +780 -0
  2029. package/dist/node_modules/@antv/graphlib/esm/graph.js.map +1 -0
  2030. package/dist/node_modules/@antv/graphlib/esm/graphView.js +194 -0
  2031. package/dist/node_modules/@antv/graphlib/esm/graphView.js.map +1 -0
  2032. package/dist/node_modules/@antv/graphlib/esm/utils/traverse.js +25 -0
  2033. package/dist/node_modules/@antv/graphlib/esm/utils/traverse.js.map +1 -0
  2034. package/dist/node_modules/@antv/hierarchy/dist/hierarchy.es.js +396 -0
  2035. package/dist/node_modules/@antv/hierarchy/dist/hierarchy.es.js.map +1 -0
  2036. package/dist/node_modules/@antv/layout/lib/_virtual/_cloneBuffer.js +5 -0
  2037. package/dist/node_modules/@antv/layout/lib/_virtual/_cloneBuffer.js.map +1 -0
  2038. package/dist/node_modules/@antv/layout/lib/_virtual/_commonjs-dynamic-modules.js +7 -0
  2039. package/dist/node_modules/@antv/layout/lib/_virtual/_commonjs-dynamic-modules.js.map +1 -0
  2040. package/dist/node_modules/@antv/layout/lib/_virtual/_commonjsHelpers.js +34 -0
  2041. package/dist/node_modules/@antv/layout/lib/_virtual/_commonjsHelpers.js.map +1 -0
  2042. package/dist/node_modules/@antv/layout/lib/_virtual/_nodeUtil.js +5 -0
  2043. package/dist/node_modules/@antv/layout/lib/_virtual/_nodeUtil.js.map +1 -0
  2044. package/dist/node_modules/@antv/layout/lib/_virtual/index.js +8 -0
  2045. package/dist/node_modules/@antv/layout/lib/_virtual/index.js.map +1 -0
  2046. package/dist/node_modules/@antv/layout/lib/_virtual/index2.js +7 -0
  2047. package/dist/node_modules/@antv/layout/lib/_virtual/index2.js.map +1 -0
  2048. package/dist/node_modules/@antv/layout/lib/_virtual/index3.js +7 -0
  2049. package/dist/node_modules/@antv/layout/lib/_virtual/index3.js.map +1 -0
  2050. package/dist/node_modules/@antv/layout/lib/_virtual/isBuffer.js +5 -0
  2051. package/dist/node_modules/@antv/layout/lib/_virtual/isBuffer.js.map +1 -0
  2052. package/dist/node_modules/@antv/layout/lib/_virtual/matrix.js +8 -0
  2053. package/dist/node_modules/@antv/layout/lib/_virtual/matrix.js.map +1 -0
  2054. package/dist/node_modules/@antv/layout/lib/_virtual/matrix2.js +5 -0
  2055. package/dist/node_modules/@antv/layout/lib/_virtual/matrix2.js.map +1 -0
  2056. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/acyclic.js +32 -0
  2057. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/acyclic.js.map +1 -0
  2058. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/add-border-segments.js +24 -0
  2059. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/add-border-segments.js.map +1 -0
  2060. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/coordinate-system.js +40 -0
  2061. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/coordinate-system.js.map +1 -0
  2062. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/data/list.js +32 -0
  2063. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/data/list.js.map +1 -0
  2064. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/graph.js +304 -0
  2065. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/graph.js.map +1 -0
  2066. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/greedy-fas.js +71 -0
  2067. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/greedy-fas.js.map +1 -0
  2068. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/index.js +204 -0
  2069. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/index.js.map +1 -0
  2070. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/layout.js +239 -0
  2071. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/layout.js.map +1 -0
  2072. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/nesting-graph.js +80 -0
  2073. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/nesting-graph.js.map +1 -0
  2074. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/normalize.js +47 -0
  2075. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/normalize.js.map +1 -0
  2076. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/add-subgraph-constraints.js +29 -0
  2077. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/add-subgraph-constraints.js.map +1 -0
  2078. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/barycenter.js +18 -0
  2079. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/barycenter.js.map +1 -0
  2080. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/build-layer-graph.js +30 -0
  2081. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/build-layer-graph.js.map +1 -0
  2082. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/cross-count.js +33 -0
  2083. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/cross-count.js.map +1 -0
  2084. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/index.js +52 -0
  2085. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/index.js.map +1 -0
  2086. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/init-data-order.js +16 -0
  2087. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/init-data-order.js.map +1 -0
  2088. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/init-order.js +20 -0
  2089. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/init-order.js.map +1 -0
  2090. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/resolve-conflicts.js +51 -0
  2091. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/resolve-conflicts.js.map +1 -0
  2092. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/sort-subgraph.js +40 -0
  2093. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/sort-subgraph.js.map +1 -0
  2094. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/sort.js +39 -0
  2095. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/order/sort.js.map +1 -0
  2096. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/parent-dummy-chains.js +48 -0
  2097. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/parent-dummy-chains.js.map +1 -0
  2098. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/position/bk.js +201 -0
  2099. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/position/bk.js.map +1 -0
  2100. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/position/index.js +36 -0
  2101. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/position/index.js.map +1 -0
  2102. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/rank/feasible-tree.js +63 -0
  2103. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/rank/feasible-tree.js.map +1 -0
  2104. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/rank/index.js +27 -0
  2105. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/rank/index.js.map +1 -0
  2106. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/rank/network-simplex.js +77 -0
  2107. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/rank/network-simplex.js.map +1 -0
  2108. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/rank/util.js +54 -0
  2109. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/rank/util.js.map +1 -0
  2110. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/util.js +122 -0
  2111. package/dist/node_modules/@antv/layout/lib/algorithm/antv-dagre/util.js.map +1 -0
  2112. package/dist/node_modules/@antv/layout/lib/algorithm/base-layout.js +54 -0
  2113. package/dist/node_modules/@antv/layout/lib/algorithm/base-layout.js.map +1 -0
  2114. package/dist/node_modules/@antv/layout/lib/algorithm/base-simulation.js +44 -0
  2115. package/dist/node_modules/@antv/layout/lib/algorithm/base-simulation.js.map +1 -0
  2116. package/dist/node_modules/@antv/layout/lib/algorithm/circular/index.js +59 -0
  2117. package/dist/node_modules/@antv/layout/lib/algorithm/circular/index.js.map +1 -0
  2118. package/dist/node_modules/@antv/layout/lib/algorithm/combo-combined/index.js +197 -0
  2119. package/dist/node_modules/@antv/layout/lib/algorithm/combo-combined/index.js.map +1 -0
  2120. package/dist/node_modules/@antv/layout/lib/algorithm/concentric/index.js +131 -0
  2121. package/dist/node_modules/@antv/layout/lib/algorithm/concentric/index.js.map +1 -0
  2122. package/dist/node_modules/@antv/layout/lib/algorithm/d3-force/force-in-a-box.js +156 -0
  2123. package/dist/node_modules/@antv/layout/lib/algorithm/d3-force/force-in-a-box.js.map +1 -0
  2124. package/dist/node_modules/@antv/layout/lib/algorithm/d3-force/index.js +323 -0
  2125. package/dist/node_modules/@antv/layout/lib/algorithm/d3-force/index.js.map +1 -0
  2126. package/dist/node_modules/@antv/layout/lib/algorithm/d3-force-3d/index.js +65 -0
  2127. package/dist/node_modules/@antv/layout/lib/algorithm/d3-force-3d/index.js.map +1 -0
  2128. package/dist/node_modules/@antv/layout/lib/algorithm/dagre/index.js +103 -0
  2129. package/dist/node_modules/@antv/layout/lib/algorithm/dagre/index.js.map +1 -0
  2130. package/dist/node_modules/@antv/layout/lib/algorithm/force/attractive.js +27 -0
  2131. package/dist/node_modules/@antv/layout/lib/algorithm/force/attractive.js.map +1 -0
  2132. package/dist/node_modules/@antv/layout/lib/algorithm/force/centripetal.js +47 -0
  2133. package/dist/node_modules/@antv/layout/lib/algorithm/force/centripetal.js.map +1 -0
  2134. package/dist/node_modules/@antv/layout/lib/algorithm/force/collide.js +105 -0
  2135. package/dist/node_modules/@antv/layout/lib/algorithm/force/collide.js.map +1 -0
  2136. package/dist/node_modules/@antv/layout/lib/algorithm/force/gravity.js +27 -0
  2137. package/dist/node_modules/@antv/layout/lib/algorithm/force/gravity.js.map +1 -0
  2138. package/dist/node_modules/@antv/layout/lib/algorithm/force/index.js +283 -0
  2139. package/dist/node_modules/@antv/layout/lib/algorithm/force/index.js.map +1 -0
  2140. package/dist/node_modules/@antv/layout/lib/algorithm/force/repulsive.js +86 -0
  2141. package/dist/node_modules/@antv/layout/lib/algorithm/force/repulsive.js.map +1 -0
  2142. package/dist/node_modules/@antv/layout/lib/algorithm/force/simulation.js +89 -0
  2143. package/dist/node_modules/@antv/layout/lib/algorithm/force/simulation.js.map +1 -0
  2144. package/dist/node_modules/@antv/layout/lib/algorithm/force-atlas2/body.js +42 -0
  2145. package/dist/node_modules/@antv/layout/lib/algorithm/force-atlas2/body.js.map +1 -0
  2146. package/dist/node_modules/@antv/layout/lib/algorithm/force-atlas2/index.js +94 -0
  2147. package/dist/node_modules/@antv/layout/lib/algorithm/force-atlas2/index.js.map +1 -0
  2148. package/dist/node_modules/@antv/layout/lib/algorithm/force-atlas2/quad-tree.js +38 -0
  2149. package/dist/node_modules/@antv/layout/lib/algorithm/force-atlas2/quad-tree.js.map +1 -0
  2150. package/dist/node_modules/@antv/layout/lib/algorithm/force-atlas2/quad.js +56 -0
  2151. package/dist/node_modules/@antv/layout/lib/algorithm/force-atlas2/quad.js.map +1 -0
  2152. package/dist/node_modules/@antv/layout/lib/algorithm/force-atlas2/simulation.js +200 -0
  2153. package/dist/node_modules/@antv/layout/lib/algorithm/force-atlas2/simulation.js.map +1 -0
  2154. package/dist/node_modules/@antv/layout/lib/algorithm/fruchterman/index.js +78 -0
  2155. package/dist/node_modules/@antv/layout/lib/algorithm/fruchterman/index.js.map +1 -0
  2156. package/dist/node_modules/@antv/layout/lib/algorithm/fruchterman/simulation.js +171 -0
  2157. package/dist/node_modules/@antv/layout/lib/algorithm/fruchterman/simulation.js.map +1 -0
  2158. package/dist/node_modules/@antv/layout/lib/algorithm/grid/index.js +125 -0
  2159. package/dist/node_modules/@antv/layout/lib/algorithm/grid/index.js.map +1 -0
  2160. package/dist/node_modules/@antv/layout/lib/algorithm/mds/index.js +81 -0
  2161. package/dist/node_modules/@antv/layout/lib/algorithm/mds/index.js.map +1 -0
  2162. package/dist/node_modules/@antv/layout/lib/algorithm/radial/index.js +157 -0
  2163. package/dist/node_modules/@antv/layout/lib/algorithm/radial/index.js.map +1 -0
  2164. package/dist/node_modules/@antv/layout/lib/algorithm/radial/radial-nonoverlap-force.js +76 -0
  2165. package/dist/node_modules/@antv/layout/lib/algorithm/radial/radial-nonoverlap-force.js.map +1 -0
  2166. package/dist/node_modules/@antv/layout/lib/algorithm/random/index.js +28 -0
  2167. package/dist/node_modules/@antv/layout/lib/algorithm/random/index.js.map +1 -0
  2168. package/dist/node_modules/@antv/layout/lib/model/data.js +199 -0
  2169. package/dist/node_modules/@antv/layout/lib/model/data.js.map +1 -0
  2170. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/event-emitter/esm/index.js +44 -0
  2171. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/event-emitter/esm/index.js.map +1 -0
  2172. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/expr/dist/index.esm.js +301 -0
  2173. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/expr/dist/index.esm.js.map +1 -0
  2174. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/clone.js +20 -0
  2175. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/clone.js.map +1 -0
  2176. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/deep-mix.js +29 -0
  2177. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/deep-mix.js.map +1 -0
  2178. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/each.js +19 -0
  2179. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/each.js.map +1 -0
  2180. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/get-type.js +7 -0
  2181. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/get-type.js.map +1 -0
  2182. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-array-like.js +7 -0
  2183. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-array-like.js.map +1 -0
  2184. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-array.js +7 -0
  2185. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-array.js.map +1 -0
  2186. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-boolean.js +8 -0
  2187. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-boolean.js.map +1 -0
  2188. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-empty.js +24 -0
  2189. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-empty.js.map +1 -0
  2190. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-function.js +7 -0
  2191. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-function.js.map +1 -0
  2192. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-nil.js +7 -0
  2193. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-nil.js.map +1 -0
  2194. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-number.js +7 -0
  2195. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-number.js.map +1 -0
  2196. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-object-like.js +7 -0
  2197. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-object-like.js.map +1 -0
  2198. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-object.js +8 -0
  2199. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-object.js.map +1 -0
  2200. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-plain-object.js +15 -0
  2201. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-plain-object.js.map +1 -0
  2202. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-prototype.js +8 -0
  2203. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-prototype.js.map +1 -0
  2204. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-string.js +7 -0
  2205. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-string.js.map +1 -0
  2206. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-type.js +7 -0
  2207. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/is-type.js.map +1 -0
  2208. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/pick.js +14 -0
  2209. package/dist/node_modules/@antv/layout/lib/node_modules/@antv/util/esm/lodash/pick.js.map +1 -0
  2210. package/dist/node_modules/@antv/layout/lib/node_modules/comlink/dist/esm/comlink.js +259 -0
  2211. package/dist/node_modules/@antv/layout/lib/node_modules/comlink/dist/esm/comlink.js.map +1 -0
  2212. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/add.js +33 -0
  2213. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/add.js.map +1 -0
  2214. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/binarytree.js +49 -0
  2215. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/binarytree.js.map +1 -0
  2216. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/cover.js +23 -0
  2217. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/cover.js.map +1 -0
  2218. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/data.js +12 -0
  2219. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/data.js.map +1 -0
  2220. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/extent.js +7 -0
  2221. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/extent.js.map +1 -0
  2222. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/find.js +21 -0
  2223. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/find.js.map +1 -0
  2224. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/half.js +7 -0
  2225. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/half.js.map +1 -0
  2226. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/remove.js +21 -0
  2227. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/remove.js.map +1 -0
  2228. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/root.js +7 -0
  2229. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/root.js.map +1 -0
  2230. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/size.js +12 -0
  2231. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/size.js.map +1 -0
  2232. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/visit.js +14 -0
  2233. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/visit.js.map +1 -0
  2234. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/visitAfter.js +19 -0
  2235. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/visitAfter.js.map +1 -0
  2236. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/x.js +11 -0
  2237. package/dist/node_modules/@antv/layout/lib/node_modules/d3-binarytree/src/x.js.map +1 -0
  2238. package/dist/node_modules/@antv/layout/lib/node_modules/d3-dispatch/src/dispatch.js +65 -0
  2239. package/dist/node_modules/@antv/layout/lib/node_modules/d3-dispatch/src/dispatch.js.map +1 -0
  2240. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/center.js +24 -0
  2241. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/center.js.map +1 -0
  2242. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/collide.js +53 -0
  2243. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/collide.js.map +1 -0
  2244. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/constant.js +9 -0
  2245. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/constant.js.map +1 -0
  2246. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/jiggle.js +7 -0
  2247. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/jiggle.js.map +1 -0
  2248. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/lcg.js +8 -0
  2249. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/lcg.js.map +1 -0
  2250. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/link.js +59 -0
  2251. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/link.js.map +1 -0
  2252. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/manyBody.js +57 -0
  2253. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/manyBody.js.map +1 -0
  2254. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/radial.js +33 -0
  2255. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/radial.js.map +1 -0
  2256. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/simulation.js +87 -0
  2257. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/simulation.js.map +1 -0
  2258. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/x.js +27 -0
  2259. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/x.js.map +1 -0
  2260. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/y.js +27 -0
  2261. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force/src/y.js.map +1 -0
  2262. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/center.js +26 -0
  2263. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/center.js.map +1 -0
  2264. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/collide.js +58 -0
  2265. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/collide.js.map +1 -0
  2266. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/constant.js +9 -0
  2267. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/constant.js.map +1 -0
  2268. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/jiggle.js +7 -0
  2269. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/jiggle.js.map +1 -0
  2270. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/lcg.js +8 -0
  2271. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/lcg.js.map +1 -0
  2272. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/link.js +59 -0
  2273. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/link.js.map +1 -0
  2274. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/manyBody.js +59 -0
  2275. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/manyBody.js.map +1 -0
  2276. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/radial.js +35 -0
  2277. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/radial.js.map +1 -0
  2278. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/simulation.js +96 -0
  2279. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/simulation.js.map +1 -0
  2280. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/x.js +27 -0
  2281. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/x.js.map +1 -0
  2282. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/y.js +27 -0
  2283. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/y.js.map +1 -0
  2284. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/z.js +27 -0
  2285. package/dist/node_modules/@antv/layout/lib/node_modules/d3-force-3d/src/z.js.map +1 -0
  2286. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/add.js +33 -0
  2287. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/add.js.map +1 -0
  2288. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/cover.js +41 -0
  2289. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/cover.js.map +1 -0
  2290. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/data.js +12 -0
  2291. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/data.js.map +1 -0
  2292. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/extent.js +7 -0
  2293. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/extent.js.map +1 -0
  2294. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/find.js +30 -0
  2295. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/find.js.map +1 -0
  2296. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/findAll.js +16 -0
  2297. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/findAll.js.map +1 -0
  2298. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/octant.js +7 -0
  2299. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/octant.js.map +1 -0
  2300. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/octree.js +55 -0
  2301. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/octree.js.map +1 -0
  2302. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/remove.js +21 -0
  2303. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/remove.js.map +1 -0
  2304. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/root.js +7 -0
  2305. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/root.js.map +1 -0
  2306. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/size.js +12 -0
  2307. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/size.js.map +1 -0
  2308. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/visit.js +14 -0
  2309. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/visit.js.map +1 -0
  2310. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/visitAfter.js +19 -0
  2311. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/visitAfter.js.map +1 -0
  2312. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/x.js +11 -0
  2313. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/x.js.map +1 -0
  2314. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/y.js +11 -0
  2315. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/y.js.map +1 -0
  2316. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/z.js +11 -0
  2317. package/dist/node_modules/@antv/layout/lib/node_modules/d3-octree/src/z.js.map +1 -0
  2318. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/add.js +30 -0
  2319. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/add.js.map +1 -0
  2320. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/cover.js +29 -0
  2321. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/cover.js.map +1 -0
  2322. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/data.js +12 -0
  2323. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/data.js.map +1 -0
  2324. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/extent.js +7 -0
  2325. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/extent.js.map +1 -0
  2326. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/find.js +26 -0
  2327. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/find.js.map +1 -0
  2328. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/quad.js +7 -0
  2329. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/quad.js.map +1 -0
  2330. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/quadtree.js +51 -0
  2331. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/quadtree.js.map +1 -0
  2332. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/remove.js +21 -0
  2333. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/remove.js.map +1 -0
  2334. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/root.js +7 -0
  2335. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/root.js.map +1 -0
  2336. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/size.js +12 -0
  2337. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/size.js.map +1 -0
  2338. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/visit.js +14 -0
  2339. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/visit.js.map +1 -0
  2340. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/visitAfter.js +19 -0
  2341. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/visitAfter.js.map +1 -0
  2342. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/x.js +11 -0
  2343. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/x.js.map +1 -0
  2344. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/y.js +11 -0
  2345. package/dist/node_modules/@antv/layout/lib/node_modules/d3-quadtree/src/y.js.map +1 -0
  2346. package/dist/node_modules/@antv/layout/lib/node_modules/d3-timer/src/timer.js +63 -0
  2347. package/dist/node_modules/@antv/layout/lib/node_modules/d3-timer/src/timer.js.map +1 -0
  2348. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/index.js +22 -0
  2349. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/index.js.map +1 -0
  2350. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/acyclic.js +48 -0
  2351. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/acyclic.js.map +1 -0
  2352. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/add-border-segments.js +29 -0
  2353. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/add-border-segments.js.map +1 -0
  2354. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/coordinate-system.js +58 -0
  2355. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/coordinate-system.js.map +1 -0
  2356. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/data/list.js +33 -0
  2357. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/data/list.js.map +1 -0
  2358. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/debug.js +30 -0
  2359. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/debug.js.map +1 -0
  2360. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/graphlib.js +18 -0
  2361. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/graphlib.js.map +1 -0
  2362. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/greedy-fas.js +68 -0
  2363. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/greedy-fas.js.map +1 -0
  2364. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/layout.js +268 -0
  2365. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/layout.js.map +1 -0
  2366. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/lodash.js +70 -0
  2367. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/lodash.js.map +1 -0
  2368. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/nesting-graph.js +72 -0
  2369. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/nesting-graph.js.map +1 -0
  2370. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/normalize.js +45 -0
  2371. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/normalize.js.map +1 -0
  2372. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/add-subgraph-constraints.js +25 -0
  2373. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/add-subgraph-constraints.js.map +1 -0
  2374. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/barycenter.js +33 -0
  2375. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/barycenter.js.map +1 -0
  2376. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/build-layer-graph.js +33 -0
  2377. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/build-layer-graph.js.map +1 -0
  2378. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/cross-count.js +42 -0
  2379. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/cross-count.js.map +1 -0
  2380. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/index.js +51 -0
  2381. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/index.js.map +1 -0
  2382. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/init-order.js +33 -0
  2383. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/init-order.js.map +1 -0
  2384. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/resolve-conflicts.js +62 -0
  2385. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/resolve-conflicts.js.map +1 -0
  2386. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/sort-subgraph.js +47 -0
  2387. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/sort-subgraph.js.map +1 -0
  2388. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/sort.js +36 -0
  2389. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/order/sort.js.map +1 -0
  2390. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/parent-dummy-chains.js +49 -0
  2391. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/parent-dummy-chains.js.map +1 -0
  2392. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/position/bk.js +226 -0
  2393. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/position/bk.js.map +1 -0
  2394. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/position/index.js +31 -0
  2395. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/position/index.js.map +1 -0
  2396. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/rank/feasible-tree.js +42 -0
  2397. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/rank/feasible-tree.js.map +1 -0
  2398. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/rank/index.js +37 -0
  2399. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/rank/index.js.map +1 -0
  2400. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/rank/network-simplex.js +92 -0
  2401. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/rank/network-simplex.js.map +1 -0
  2402. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/rank/util.js +35 -0
  2403. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/rank/util.js.map +1 -0
  2404. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/util.js +145 -0
  2405. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/util.js.map +1 -0
  2406. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/version.js +8 -0
  2407. package/dist/node_modules/@antv/layout/lib/node_modules/dagre/lib/version.js.map +1 -0
  2408. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/index.js +19 -0
  2409. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/index.js.map +1 -0
  2410. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/components.js +22 -0
  2411. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/components.js.map +1 -0
  2412. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/dfs.js +27 -0
  2413. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/dfs.js.map +1 -0
  2414. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/dijkstra-all.js +19 -0
  2415. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/dijkstra-all.js.map +1 -0
  2416. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/dijkstra.js +39 -0
  2417. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/dijkstra.js.map +1 -0
  2418. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/find-cycles.js +19 -0
  2419. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/find-cycles.js.map +1 -0
  2420. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/floyd-warshall.js +43 -0
  2421. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/floyd-warshall.js.map +1 -0
  2422. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/index.js +31 -0
  2423. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/index.js.map +1 -0
  2424. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/is-acyclic.js +23 -0
  2425. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/is-acyclic.js.map +1 -0
  2426. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/postorder.js +16 -0
  2427. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/postorder.js.map +1 -0
  2428. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/preorder.js +16 -0
  2429. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/preorder.js.map +1 -0
  2430. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/prim.js +41 -0
  2431. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/prim.js.map +1 -0
  2432. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/tarjan.js +35 -0
  2433. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/tarjan.js.map +1 -0
  2434. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/topsort.js +26 -0
  2435. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/alg/topsort.js.map +1 -0
  2436. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/data/priority-queue.js +57 -0
  2437. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/data/priority-queue.js.map +1 -0
  2438. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/graph.js +211 -0
  2439. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/graph.js.map +1 -0
  2440. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/index.js +13 -0
  2441. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/index.js.map +1 -0
  2442. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/json.js +49 -0
  2443. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/json.js.map +1 -0
  2444. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/lodash.js +50 -0
  2445. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/lodash.js.map +1 -0
  2446. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/version.js +8 -0
  2447. package/dist/node_modules/@antv/layout/lib/node_modules/graphlib/lib/version.js.map +1 -0
  2448. package/dist/node_modules/@antv/layout/lib/node_modules/is-any-array/lib-esm/index.js +9 -0
  2449. package/dist/node_modules/@antv/layout/lib/node_modules/is-any-array/lib-esm/index.js.map +1 -0
  2450. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_DataView.js +13 -0
  2451. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_DataView.js.map +1 -0
  2452. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Hash.js +23 -0
  2453. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Hash.js.map +1 -0
  2454. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_ListCache.js +23 -0
  2455. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_ListCache.js.map +1 -0
  2456. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Map.js +13 -0
  2457. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Map.js.map +1 -0
  2458. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_MapCache.js +23 -0
  2459. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_MapCache.js.map +1 -0
  2460. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Promise.js +13 -0
  2461. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Promise.js.map +1 -0
  2462. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Set.js +13 -0
  2463. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Set.js.map +1 -0
  2464. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_SetCache.js +19 -0
  2465. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_SetCache.js.map +1 -0
  2466. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Stack.js +21 -0
  2467. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Stack.js.map +1 -0
  2468. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Symbol.js +12 -0
  2469. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Symbol.js.map +1 -0
  2470. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Uint8Array.js +12 -0
  2471. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_Uint8Array.js.map +1 -0
  2472. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_WeakMap.js +13 -0
  2473. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_WeakMap.js.map +1 -0
  2474. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_apply.js +23 -0
  2475. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_apply.js.map +1 -0
  2476. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayEach.js +15 -0
  2477. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayEach.js.map +1 -0
  2478. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayFilter.js +17 -0
  2479. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayFilter.js.map +1 -0
  2480. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayIncludes.js +16 -0
  2481. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayIncludes.js.map +1 -0
  2482. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayIncludesWith.js +16 -0
  2483. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayIncludesWith.js.map +1 -0
  2484. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayLikeKeys.js +27 -0
  2485. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayLikeKeys.js.map +1 -0
  2486. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayMap.js +15 -0
  2487. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayMap.js.map +1 -0
  2488. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayPush.js +15 -0
  2489. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayPush.js.map +1 -0
  2490. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayReduce.js +16 -0
  2491. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arrayReduce.js.map +1 -0
  2492. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arraySome.js +16 -0
  2493. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_arraySome.js.map +1 -0
  2494. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_asciiSize.js +12 -0
  2495. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_asciiSize.js.map +1 -0
  2496. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_assignMergeValue.js +16 -0
  2497. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_assignMergeValue.js.map +1 -0
  2498. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_assignValue.js +17 -0
  2499. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_assignValue.js.map +1 -0
  2500. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_assocIndexOf.js +18 -0
  2501. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_assocIndexOf.js.map +1 -0
  2502. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseAssign.js +16 -0
  2503. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseAssign.js.map +1 -0
  2504. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseAssignIn.js +16 -0
  2505. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseAssignIn.js.map +1 -0
  2506. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseAssignValue.js +20 -0
  2507. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseAssignValue.js.map +1 -0
  2508. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseClone.js +71 -0
  2509. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseClone.js.map +1 -0
  2510. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseCreate.js +24 -0
  2511. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseCreate.js.map +1 -0
  2512. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseEach.js +13 -0
  2513. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseEach.js.map +1 -0
  2514. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseExtremum.js +20 -0
  2515. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseExtremum.js.map +1 -0
  2516. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseFilter.js +18 -0
  2517. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseFilter.js.map +1 -0
  2518. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseFindIndex.js +16 -0
  2519. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseFindIndex.js.map +1 -0
  2520. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseFlatten.js +21 -0
  2521. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseFlatten.js.map +1 -0
  2522. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseFor.js +12 -0
  2523. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseFor.js.map +1 -0
  2524. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseForOwn.js +16 -0
  2525. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseForOwn.js.map +1 -0
  2526. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseGet.js +19 -0
  2527. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseGet.js.map +1 -0
  2528. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseGetAllKeys.js +17 -0
  2529. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseGetAllKeys.js.map +1 -0
  2530. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseGetTag.js +17 -0
  2531. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseGetTag.js.map +1 -0
  2532. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseGt.js +13 -0
  2533. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseGt.js.map +1 -0
  2534. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseHas.js +14 -0
  2535. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseHas.js.map +1 -0
  2536. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseHasIn.js +13 -0
  2537. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseHasIn.js.map +1 -0
  2538. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIndexOf.js +17 -0
  2539. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIndexOf.js.map +1 -0
  2540. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsArguments.js +16 -0
  2541. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsArguments.js.map +1 -0
  2542. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsEqual.js +16 -0
  2543. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsEqual.js.map +1 -0
  2544. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsEqualDeep.js +39 -0
  2545. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsEqualDeep.js.map +1 -0
  2546. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsMap.js +16 -0
  2547. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsMap.js.map +1 -0
  2548. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsMatch.js +38 -0
  2549. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsMatch.js.map +1 -0
  2550. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsNaN.js +13 -0
  2551. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsNaN.js.map +1 -0
  2552. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsNative.js +23 -0
  2553. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsNative.js.map +1 -0
  2554. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsSet.js +16 -0
  2555. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsSet.js.map +1 -0
  2556. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsTypedArray.js +18 -0
  2557. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIsTypedArray.js.map +1 -0
  2558. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIteratee.js +19 -0
  2559. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseIteratee.js.map +1 -0
  2560. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseKeys.js +21 -0
  2561. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseKeys.js.map +1 -0
  2562. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseKeysIn.js +22 -0
  2563. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseKeysIn.js.map +1 -0
  2564. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseLt.js +13 -0
  2565. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseLt.js.map +1 -0
  2566. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseMap.js +19 -0
  2567. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseMap.js.map +1 -0
  2568. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseMatches.js +20 -0
  2569. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseMatches.js.map +1 -0
  2570. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseMatchesProperty.js +24 -0
  2571. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseMatchesProperty.js.map +1 -0
  2572. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseMerge.js +28 -0
  2573. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseMerge.js.map +1 -0
  2574. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseMergeDeep.js +39 -0
  2575. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseMergeDeep.js.map +1 -0
  2576. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseOrderBy.js +38 -0
  2577. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseOrderBy.js.map +1 -0
  2578. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_basePick.js +18 -0
  2579. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_basePick.js.map +1 -0
  2580. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_basePickBy.js +21 -0
  2581. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_basePickBy.js.map +1 -0
  2582. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseProperty.js +15 -0
  2583. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseProperty.js.map +1 -0
  2584. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_basePropertyDeep.js +17 -0
  2585. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_basePropertyDeep.js.map +1 -0
  2586. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseRange.js +16 -0
  2587. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseRange.js.map +1 -0
  2588. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseReduce.js +15 -0
  2589. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseReduce.js.map +1 -0
  2590. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseRest.js +17 -0
  2591. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseRest.js.map +1 -0
  2592. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseSet.js +32 -0
  2593. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseSet.js.map +1 -0
  2594. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseSetToString.js +21 -0
  2595. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseSetToString.js.map +1 -0
  2596. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseSortBy.js +16 -0
  2597. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseSortBy.js.map +1 -0
  2598. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseTimes.js +15 -0
  2599. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseTimes.js.map +1 -0
  2600. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseToString.js +25 -0
  2601. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseToString.js.map +1 -0
  2602. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseTrim.js +15 -0
  2603. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseTrim.js.map +1 -0
  2604. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseUnary.js +15 -0
  2605. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseUnary.js.map +1 -0
  2606. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseUniq.js +40 -0
  2607. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseUniq.js.map +1 -0
  2608. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseValues.js +17 -0
  2609. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseValues.js.map +1 -0
  2610. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseZipObject.js +17 -0
  2611. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_baseZipObject.js.map +1 -0
  2612. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cacheHas.js +13 -0
  2613. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cacheHas.js.map +1 -0
  2614. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_castFunction.js +15 -0
  2615. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_castFunction.js.map +1 -0
  2616. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_castPath.js +18 -0
  2617. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_castPath.js.map +1 -0
  2618. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneArrayBuffer.js +16 -0
  2619. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneArrayBuffer.js.map +1 -0
  2620. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneBuffer.js +20 -0
  2621. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneBuffer.js.map +1 -0
  2622. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneDataView.js +16 -0
  2623. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneDataView.js.map +1 -0
  2624. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneRegExp.js +15 -0
  2625. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneRegExp.js.map +1 -0
  2626. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneSymbol.js +15 -0
  2627. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneSymbol.js.map +1 -0
  2628. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneTypedArray.js +16 -0
  2629. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_cloneTypedArray.js.map +1 -0
  2630. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_compareAscending.js +22 -0
  2631. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_compareAscending.js.map +1 -0
  2632. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_compareMultiple.js +24 -0
  2633. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_compareMultiple.js.map +1 -0
  2634. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_copyArray.js +16 -0
  2635. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_copyArray.js.map +1 -0
  2636. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_copyObject.js +22 -0
  2637. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_copyObject.js.map +1 -0
  2638. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_copySymbols.js +16 -0
  2639. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_copySymbols.js.map +1 -0
  2640. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_copySymbolsIn.js +16 -0
  2641. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_copySymbolsIn.js.map +1 -0
  2642. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_coreJsData.js +12 -0
  2643. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_coreJsData.js.map +1 -0
  2644. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createAssigner.js +23 -0
  2645. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createAssigner.js.map +1 -0
  2646. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createBaseEach.js +23 -0
  2647. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createBaseEach.js.map +1 -0
  2648. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createBaseFor.js +20 -0
  2649. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createBaseFor.js.map +1 -0
  2650. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createFind.js +27 -0
  2651. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createFind.js.map +1 -0
  2652. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createRange.js +19 -0
  2653. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createRange.js.map +1 -0
  2654. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createSet.js +16 -0
  2655. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_createSet.js.map +1 -0
  2656. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_defineProperty.js +18 -0
  2657. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_defineProperty.js.map +1 -0
  2658. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_equalArrays.js +47 -0
  2659. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_equalArrays.js.map +1 -0
  2660. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_equalByTag.js +52 -0
  2661. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_equalByTag.js.map +1 -0
  2662. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_equalObjects.js +43 -0
  2663. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_equalObjects.js.map +1 -0
  2664. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_flatRest.js +17 -0
  2665. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_flatRest.js.map +1 -0
  2666. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_freeGlobal.js +12 -0
  2667. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_freeGlobal.js.map +1 -0
  2668. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getAllKeys.js +17 -0
  2669. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getAllKeys.js.map +1 -0
  2670. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getAllKeysIn.js +17 -0
  2671. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getAllKeysIn.js.map +1 -0
  2672. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getMapData.js +16 -0
  2673. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getMapData.js.map +1 -0
  2674. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getMatchData.js +20 -0
  2675. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getMatchData.js.map +1 -0
  2676. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getNative.js +17 -0
  2677. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getNative.js.map +1 -0
  2678. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getPrototype.js +12 -0
  2679. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getPrototype.js.map +1 -0
  2680. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getRawTag.js +22 -0
  2681. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getRawTag.js.map +1 -0
  2682. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getSymbols.js +17 -0
  2683. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getSymbols.js.map +1 -0
  2684. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getSymbolsIn.js +19 -0
  2685. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getSymbolsIn.js.map +1 -0
  2686. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getTag.js +34 -0
  2687. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getTag.js.map +1 -0
  2688. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getValue.js +13 -0
  2689. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_getValue.js.map +1 -0
  2690. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hasPath.js +27 -0
  2691. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hasPath.js.map +1 -0
  2692. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hasUnicode.js +14 -0
  2693. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hasUnicode.js.map +1 -0
  2694. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hashClear.js +15 -0
  2695. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hashClear.js.map +1 -0
  2696. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hashDelete.js +14 -0
  2697. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hashDelete.js.map +1 -0
  2698. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hashGet.js +20 -0
  2699. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hashGet.js.map +1 -0
  2700. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hashHas.js +16 -0
  2701. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hashHas.js.map +1 -0
  2702. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hashSet.js +16 -0
  2703. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_hashSet.js.map +1 -0
  2704. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_initCloneArray.js +15 -0
  2705. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_initCloneArray.js.map +1 -0
  2706. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_initCloneByTag.js +49 -0
  2707. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_initCloneByTag.js.map +1 -0
  2708. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_initCloneObject.js +17 -0
  2709. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_initCloneObject.js.map +1 -0
  2710. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isFlattenable.js +17 -0
  2711. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isFlattenable.js.map +1 -0
  2712. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isIndex.js +15 -0
  2713. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isIndex.js.map +1 -0
  2714. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isIterateeCall.js +21 -0
  2715. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isIterateeCall.js.map +1 -0
  2716. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isKey.js +19 -0
  2717. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isKey.js.map +1 -0
  2718. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isKeyable.js +14 -0
  2719. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isKeyable.js.map +1 -0
  2720. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isMasked.js +18 -0
  2721. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isMasked.js.map +1 -0
  2722. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isPrototype.js +15 -0
  2723. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isPrototype.js.map +1 -0
  2724. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isStrictComparable.js +15 -0
  2725. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_isStrictComparable.js.map +1 -0
  2726. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_listCacheClear.js +13 -0
  2727. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_listCacheClear.js.map +1 -0
  2728. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_listCacheDelete.js +19 -0
  2729. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_listCacheDelete.js.map +1 -0
  2730. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_listCacheGet.js +16 -0
  2731. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_listCacheGet.js.map +1 -0
  2732. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_listCacheHas.js +15 -0
  2733. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_listCacheHas.js.map +1 -0
  2734. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_listCacheSet.js +16 -0
  2735. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_listCacheSet.js.map +1 -0
  2736. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapCacheClear.js +21 -0
  2737. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapCacheClear.js.map +1 -0
  2738. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapCacheDelete.js +16 -0
  2739. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapCacheDelete.js.map +1 -0
  2740. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapCacheGet.js +15 -0
  2741. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapCacheGet.js.map +1 -0
  2742. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapCacheHas.js +15 -0
  2743. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapCacheHas.js.map +1 -0
  2744. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapCacheSet.js +16 -0
  2745. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapCacheSet.js.map +1 -0
  2746. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapToArray.js +16 -0
  2747. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_mapToArray.js.map +1 -0
  2748. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_matchesStrictComparable.js +15 -0
  2749. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_matchesStrictComparable.js.map +1 -0
  2750. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_memoizeCapped.js +18 -0
  2751. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_memoizeCapped.js.map +1 -0
  2752. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_nativeCreate.js +12 -0
  2753. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_nativeCreate.js.map +1 -0
  2754. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_nativeKeys.js +12 -0
  2755. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_nativeKeys.js.map +1 -0
  2756. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_nativeKeysIn.js +17 -0
  2757. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_nativeKeysIn.js.map +1 -0
  2758. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_nodeUtil.js +20 -0
  2759. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_nodeUtil.js.map +1 -0
  2760. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_objectToString.js +14 -0
  2761. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_objectToString.js.map +1 -0
  2762. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_overArg.js +15 -0
  2763. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_overArg.js.map +1 -0
  2764. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_overRest.js +22 -0
  2765. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_overRest.js.map +1 -0
  2766. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_root.js +12 -0
  2767. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_root.js.map +1 -0
  2768. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_safeGet.js +14 -0
  2769. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_safeGet.js.map +1 -0
  2770. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_setCacheAdd.js +14 -0
  2771. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_setCacheAdd.js.map +1 -0
  2772. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_setCacheHas.js +13 -0
  2773. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_setCacheHas.js.map +1 -0
  2774. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_setToArray.js +16 -0
  2775. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_setToArray.js.map +1 -0
  2776. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_setToString.js +13 -0
  2777. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_setToString.js.map +1 -0
  2778. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_shortOut.js +23 -0
  2779. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_shortOut.js.map +1 -0
  2780. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stackClear.js +15 -0
  2781. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stackClear.js.map +1 -0
  2782. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stackDelete.js +14 -0
  2783. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stackDelete.js.map +1 -0
  2784. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stackGet.js +13 -0
  2785. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stackGet.js.map +1 -0
  2786. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stackHas.js +13 -0
  2787. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stackHas.js.map +1 -0
  2788. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stackSet.js +24 -0
  2789. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stackSet.js.map +1 -0
  2790. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_strictIndexOf.js +16 -0
  2791. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_strictIndexOf.js.map +1 -0
  2792. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stringSize.js +17 -0
  2793. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stringSize.js.map +1 -0
  2794. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stringToPath.js +17 -0
  2795. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_stringToPath.js.map +1 -0
  2796. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_toKey.js +18 -0
  2797. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_toKey.js.map +1 -0
  2798. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_toSource.js +24 -0
  2799. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_toSource.js.map +1 -0
  2800. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_trimmedEndIndex.js +16 -0
  2801. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
  2802. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_unicodeSize.js +16 -0
  2803. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/_unicodeSize.js.map +1 -0
  2804. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/clone.js +15 -0
  2805. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/clone.js.map +1 -0
  2806. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/cloneDeep.js +15 -0
  2807. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/cloneDeep.js.map +1 -0
  2808. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/constant.js +15 -0
  2809. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/constant.js.map +1 -0
  2810. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/defaults.js +24 -0
  2811. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/defaults.js.map +1 -0
  2812. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/each.js +9 -0
  2813. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/each.js.map +1 -0
  2814. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/eq.js +13 -0
  2815. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/eq.js.map +1 -0
  2816. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/filter.js +19 -0
  2817. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/filter.js.map +1 -0
  2818. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/find.js +13 -0
  2819. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/find.js.map +1 -0
  2820. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/findIndex.js +21 -0
  2821. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/findIndex.js.map +1 -0
  2822. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/flatten.js +16 -0
  2823. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/flatten.js.map +1 -0
  2824. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/forEach.js +19 -0
  2825. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/forEach.js.map +1 -0
  2826. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/forIn.js +17 -0
  2827. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/forIn.js.map +1 -0
  2828. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/get.js +16 -0
  2829. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/get.js.map +1 -0
  2830. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/has.js +16 -0
  2831. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/has.js.map +1 -0
  2832. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/hasIn.js +16 -0
  2833. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/hasIn.js.map +1 -0
  2834. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/identity.js +13 -0
  2835. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/identity.js.map +1 -0
  2836. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isArguments.js +17 -0
  2837. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isArguments.js.map +1 -0
  2838. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isArray.js +11 -0
  2839. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isArray.js.map +1 -0
  2840. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isArrayLike.js +16 -0
  2841. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isArrayLike.js.map +1 -0
  2842. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isArrayLikeObject.js +16 -0
  2843. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isArrayLikeObject.js.map +1 -0
  2844. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isBuffer.js +15 -0
  2845. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isBuffer.js.map +1 -0
  2846. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isEmpty.js +34 -0
  2847. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isEmpty.js.map +1 -0
  2848. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isFunction.js +19 -0
  2849. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isFunction.js.map +1 -0
  2850. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isLength.js +14 -0
  2851. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isLength.js.map +1 -0
  2852. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isMap.js +14 -0
  2853. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isMap.js.map +1 -0
  2854. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isObject.js +14 -0
  2855. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isObject.js.map +1 -0
  2856. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isObjectLike.js +13 -0
  2857. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isObjectLike.js.map +1 -0
  2858. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isPlainObject.js +23 -0
  2859. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isPlainObject.js.map +1 -0
  2860. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isSet.js +14 -0
  2861. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isSet.js.map +1 -0
  2862. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isString.js +17 -0
  2863. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isString.js.map +1 -0
  2864. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isSymbol.js +16 -0
  2865. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isSymbol.js.map +1 -0
  2866. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isTypedArray.js +14 -0
  2867. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isTypedArray.js.map +1 -0
  2868. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isUndefined.js +13 -0
  2869. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/isUndefined.js.map +1 -0
  2870. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/keys.js +17 -0
  2871. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/keys.js.map +1 -0
  2872. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/keysIn.js +17 -0
  2873. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/keysIn.js.map +1 -0
  2874. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/last.js +14 -0
  2875. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/last.js.map +1 -0
  2876. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/map.js +19 -0
  2877. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/map.js.map +1 -0
  2878. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/mapValues.js +20 -0
  2879. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/mapValues.js.map +1 -0
  2880. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/max.js +17 -0
  2881. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/max.js.map +1 -0
  2882. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/memoize.js +24 -0
  2883. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/memoize.js.map +1 -0
  2884. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/merge.js +15 -0
  2885. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/merge.js.map +1 -0
  2886. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/min.js +17 -0
  2887. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/min.js.map +1 -0
  2888. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/minBy.js +17 -0
  2889. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/minBy.js.map +1 -0
  2890. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/noop.js +12 -0
  2891. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/noop.js.map +1 -0
  2892. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/now.js +14 -0
  2893. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/now.js.map +1 -0
  2894. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/pick.js +15 -0
  2895. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/pick.js.map +1 -0
  2896. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/property.js +18 -0
  2897. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/property.js.map +1 -0
  2898. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/range.js +12 -0
  2899. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/range.js.map +1 -0
  2900. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/reduce.js +20 -0
  2901. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/reduce.js.map +1 -0
  2902. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/size.js +24 -0
  2903. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/size.js.map +1 -0
  2904. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/sortBy.js +20 -0
  2905. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/sortBy.js.map +1 -0
  2906. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/stubArray.js +13 -0
  2907. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/stubArray.js.map +1 -0
  2908. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/stubFalse.js +13 -0
  2909. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/stubFalse.js.map +1 -0
  2910. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/toFinite.js +21 -0
  2911. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/toFinite.js.map +1 -0
  2912. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/toInteger.js +16 -0
  2913. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/toInteger.js.map +1 -0
  2914. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/toNumber.js +29 -0
  2915. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/toNumber.js.map +1 -0
  2916. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/toPlainObject.js +16 -0
  2917. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/toPlainObject.js.map +1 -0
  2918. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/toString.js +15 -0
  2919. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/toString.js.map +1 -0
  2920. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/transform.js +31 -0
  2921. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/transform.js.map +1 -0
  2922. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/union.js +17 -0
  2923. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/union.js.map +1 -0
  2924. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/uniqueId.js +16 -0
  2925. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/uniqueId.js.map +1 -0
  2926. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/values.js +16 -0
  2927. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/values.js.map +1 -0
  2928. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/zipObject.js +16 -0
  2929. package/dist/node_modules/@antv/layout/lib/node_modules/lodash/zipObject.js.map +1 -0
  2930. package/dist/node_modules/@antv/layout/lib/node_modules/ml-array-max/lib-es6/index.js +20 -0
  2931. package/dist/node_modules/@antv/layout/lib/node_modules/ml-array-max/lib-es6/index.js.map +1 -0
  2932. package/dist/node_modules/@antv/layout/lib/node_modules/ml-array-min/lib-es6/index.js +20 -0
  2933. package/dist/node_modules/@antv/layout/lib/node_modules/ml-array-min/lib-es6/index.js.map +1 -0
  2934. package/dist/node_modules/@antv/layout/lib/node_modules/ml-array-rescale/lib-es6/index.js +30 -0
  2935. package/dist/node_modules/@antv/layout/lib/node_modules/ml-array-rescale/lib-es6/index.js.map +1 -0
  2936. package/dist/node_modules/@antv/layout/lib/node_modules/ml-matrix/matrix.js +8 -0
  2937. package/dist/node_modules/@antv/layout/lib/node_modules/ml-matrix/matrix.js.map +1 -0
  2938. package/dist/node_modules/@antv/layout/lib/node_modules/ml-matrix/matrix2.js +2936 -0
  2939. package/dist/node_modules/@antv/layout/lib/node_modules/ml-matrix/matrix2.js.map +1 -0
  2940. package/dist/node_modules/@antv/layout/lib/node_modules/tslib/tslib.es6.js +40 -0
  2941. package/dist/node_modules/@antv/layout/lib/node_modules/tslib/tslib.es6.js.map +1 -0
  2942. package/dist/node_modules/@antv/layout/lib/registry.js +32 -0
  2943. package/dist/node_modules/@antv/layout/lib/registry.js.map +1 -0
  2944. package/dist/node_modules/@antv/layout/lib/runtime/context.js +27 -0
  2945. package/dist/node_modules/@antv/layout/lib/runtime/context.js.map +1 -0
  2946. package/dist/node_modules/@antv/layout/lib/runtime/supervisor.js +69 -0
  2947. package/dist/node_modules/@antv/layout/lib/runtime/supervisor.js.map +1 -0
  2948. package/dist/node_modules/@antv/layout/lib/util/common.js +10 -0
  2949. package/dist/node_modules/@antv/layout/lib/util/common.js.map +1 -0
  2950. package/dist/node_modules/@antv/layout/lib/util/expr.js +16 -0
  2951. package/dist/node_modules/@antv/layout/lib/util/expr.js.map +1 -0
  2952. package/dist/node_modules/@antv/layout/lib/util/format.js +58 -0
  2953. package/dist/node_modules/@antv/layout/lib/util/format.js.map +1 -0
  2954. package/dist/node_modules/@antv/layout/lib/util/math.js +83 -0
  2955. package/dist/node_modules/@antv/layout/lib/util/math.js.map +1 -0
  2956. package/dist/node_modules/@antv/layout/lib/util/object.js +12 -0
  2957. package/dist/node_modules/@antv/layout/lib/util/object.js.map +1 -0
  2958. package/dist/node_modules/@antv/layout/lib/util/order.js +59 -0
  2959. package/dist/node_modules/@antv/layout/lib/util/order.js.map +1 -0
  2960. package/dist/node_modules/@antv/layout/lib/util/point.js +8 -0
  2961. package/dist/node_modules/@antv/layout/lib/util/point.js.map +1 -0
  2962. package/dist/node_modules/@antv/layout/lib/util/size.js +19 -0
  2963. package/dist/node_modules/@antv/layout/lib/util/size.js.map +1 -0
  2964. package/dist/node_modules/@antv/layout/lib/util/viewport.js +12 -0
  2965. package/dist/node_modules/@antv/layout/lib/util/viewport.js.map +1 -0
  2966. package/dist/node_modules/@antv/scale/esm/scales/band.js +113 -0
  2967. package/dist/node_modules/@antv/scale/esm/scales/band.js.map +1 -0
  2968. package/dist/node_modules/@antv/scale/esm/scales/base.js +44 -0
  2969. package/dist/node_modules/@antv/scale/esm/scales/base.js.map +1 -0
  2970. package/dist/node_modules/@antv/scale/esm/scales/constant.js +52 -0
  2971. package/dist/node_modules/@antv/scale/esm/scales/constant.js.map +1 -0
  2972. package/dist/node_modules/@antv/scale/esm/scales/continuous.js +86 -0
  2973. package/dist/node_modules/@antv/scale/esm/scales/continuous.js.map +1 -0
  2974. package/dist/node_modules/@antv/scale/esm/scales/identity.js +54 -0
  2975. package/dist/node_modules/@antv/scale/esm/scales/identity.js.map +1 -0
  2976. package/dist/node_modules/@antv/scale/esm/scales/linear.js +83 -0
  2977. package/dist/node_modules/@antv/scale/esm/scales/linear.js.map +1 -0
  2978. package/dist/node_modules/@antv/scale/esm/scales/log.js +35 -0
  2979. package/dist/node_modules/@antv/scale/esm/scales/log.js.map +1 -0
  2980. package/dist/node_modules/@antv/scale/esm/scales/ordinal.js +77 -0
  2981. package/dist/node_modules/@antv/scale/esm/scales/ordinal.js.map +1 -0
  2982. package/dist/node_modules/@antv/scale/esm/scales/point.js +38 -0
  2983. package/dist/node_modules/@antv/scale/esm/scales/point.js.map +1 -0
  2984. package/dist/node_modules/@antv/scale/esm/scales/pow.js +38 -0
  2985. package/dist/node_modules/@antv/scale/esm/scales/pow.js.map +1 -0
  2986. package/dist/node_modules/@antv/scale/esm/scales/quantile.js +42 -0
  2987. package/dist/node_modules/@antv/scale/esm/scales/quantile.js.map +1 -0
  2988. package/dist/node_modules/@antv/scale/esm/scales/quantize.js +56 -0
  2989. package/dist/node_modules/@antv/scale/esm/scales/quantize.js.map +1 -0
  2990. package/dist/node_modules/@antv/scale/esm/scales/sequential.js +47 -0
  2991. package/dist/node_modules/@antv/scale/esm/scales/sequential.js.map +1 -0
  2992. package/dist/node_modules/@antv/scale/esm/scales/sqrt.js +31 -0
  2993. package/dist/node_modules/@antv/scale/esm/scales/sqrt.js.map +1 -0
  2994. package/dist/node_modules/@antv/scale/esm/scales/threshold.js +41 -0
  2995. package/dist/node_modules/@antv/scale/esm/scales/threshold.js.map +1 -0
  2996. package/dist/node_modules/@antv/scale/esm/scales/time.js +51 -0
  2997. package/dist/node_modules/@antv/scale/esm/scales/time.js.map +1 -0
  2998. package/dist/node_modules/@antv/scale/esm/tick-methods/d3-log.js +37 -0
  2999. package/dist/node_modules/@antv/scale/esm/tick-methods/d3-log.js.map +1 -0
  3000. package/dist/node_modules/@antv/scale/esm/tick-methods/d3-ticks.js +29 -0
  3001. package/dist/node_modules/@antv/scale/esm/tick-methods/d3-ticks.js.map +1 -0
  3002. package/dist/node_modules/@antv/scale/esm/tick-methods/d3-time.js +9 -0
  3003. package/dist/node_modules/@antv/scale/esm/tick-methods/d3-time.js.map +1 -0
  3004. package/dist/node_modules/@antv/scale/esm/tick-methods/wilkinson-extended.js +95 -0
  3005. package/dist/node_modules/@antv/scale/esm/tick-methods/wilkinson-extended.js.map +1 -0
  3006. package/dist/node_modules/@antv/scale/esm/utils/bisect.js +13 -0
  3007. package/dist/node_modules/@antv/scale/esm/utils/bisect.js.map +1 -0
  3008. package/dist/node_modules/@antv/scale/esm/utils/choose-mask.js +8 -0
  3009. package/dist/node_modules/@antv/scale/esm/utils/choose-mask.js.map +1 -0
  3010. package/dist/node_modules/@antv/scale/esm/utils/clamp.js +8 -0
  3011. package/dist/node_modules/@antv/scale/esm/utils/clamp.js.map +1 -0
  3012. package/dist/node_modules/@antv/scale/esm/utils/color.js +23 -0
  3013. package/dist/node_modules/@antv/scale/esm/utils/color.js.map +1 -0
  3014. package/dist/node_modules/@antv/scale/esm/utils/compose.js +7 -0
  3015. package/dist/node_modules/@antv/scale/esm/utils/compose.js.map +1 -0
  3016. package/dist/node_modules/@antv/scale/esm/utils/create-quartile.js +21 -0
  3017. package/dist/node_modules/@antv/scale/esm/utils/create-quartile.js.map +1 -0
  3018. package/dist/node_modules/@antv/scale/esm/utils/d3-linear-nice.js +10 -0
  3019. package/dist/node_modules/@antv/scale/esm/utils/d3-linear-nice.js.map +1 -0
  3020. package/dist/node_modules/@antv/scale/esm/utils/d3-log-nice.js +9 -0
  3021. package/dist/node_modules/@antv/scale/esm/utils/d3-log-nice.js.map +1 -0
  3022. package/dist/node_modules/@antv/scale/esm/utils/d3-time-nice.js +9 -0
  3023. package/dist/node_modules/@antv/scale/esm/utils/d3-time-nice.js.map +1 -0
  3024. package/dist/node_modules/@antv/scale/esm/utils/find-tick-interval.js +50 -0
  3025. package/dist/node_modules/@antv/scale/esm/utils/find-tick-interval.js.map +1 -0
  3026. package/dist/node_modules/@antv/scale/esm/utils/internMap.js +38 -0
  3027. package/dist/node_modules/@antv/scale/esm/utils/internMap.js.map +1 -0
  3028. package/dist/node_modules/@antv/scale/esm/utils/interpolate.js +23 -0
  3029. package/dist/node_modules/@antv/scale/esm/utils/interpolate.js.map +1 -0
  3030. package/dist/node_modules/@antv/scale/esm/utils/interpolatize.js +25 -0
  3031. package/dist/node_modules/@antv/scale/esm/utils/interpolatize.js.map +1 -0
  3032. package/dist/node_modules/@antv/scale/esm/utils/is-valid.js +9 -0
  3033. package/dist/node_modules/@antv/scale/esm/utils/is-valid.js.map +1 -0
  3034. package/dist/node_modules/@antv/scale/esm/utils/log.js +12 -0
  3035. package/dist/node_modules/@antv/scale/esm/utils/log.js.map +1 -0
  3036. package/dist/node_modules/@antv/scale/esm/utils/normalize.js +7 -0
  3037. package/dist/node_modules/@antv/scale/esm/utils/normalize.js.map +1 -0
  3038. package/dist/node_modules/@antv/scale/esm/utils/pretty-number.js +7 -0
  3039. package/dist/node_modules/@antv/scale/esm/utils/pretty-number.js.map +1 -0
  3040. package/dist/node_modules/@antv/scale/esm/utils/ticks.js +16 -0
  3041. package/dist/node_modules/@antv/scale/esm/utils/ticks.js.map +1 -0
  3042. package/dist/node_modules/@antv/scale/esm/utils/time-interval.js +94 -0
  3043. package/dist/node_modules/@antv/scale/esm/utils/time-interval.js.map +1 -0
  3044. package/dist/node_modules/@antv/scale/esm/utils/utc-interval.js +58 -0
  3045. package/dist/node_modules/@antv/scale/esm/utils/utc-interval.js.map +1 -0
  3046. package/dist/node_modules/@antv/util/esm/dom/create-dom.js +10 -0
  3047. package/dist/node_modules/@antv/util/esm/dom/create-dom.js.map +1 -0
  3048. package/dist/node_modules/@antv/util/esm/lodash/clamp.js +7 -0
  3049. package/dist/node_modules/@antv/util/esm/lodash/clamp.js.map +1 -0
  3050. package/dist/node_modules/@antv/util/esm/lodash/clone.js +20 -0
  3051. package/dist/node_modules/@antv/util/esm/lodash/clone.js.map +1 -0
  3052. package/dist/node_modules/@antv/util/esm/lodash/contains.js +8 -0
  3053. package/dist/node_modules/@antv/util/esm/lodash/contains.js.map +1 -0
  3054. package/dist/node_modules/@antv/util/esm/lodash/debounce.js +13 -0
  3055. package/dist/node_modules/@antv/util/esm/lodash/debounce.js.map +1 -0
  3056. package/dist/node_modules/@antv/util/esm/lodash/deep-mix.js +29 -0
  3057. package/dist/node_modules/@antv/util/esm/lodash/deep-mix.js.map +1 -0
  3058. package/dist/node_modules/@antv/util/esm/lodash/difference.js +11 -0
  3059. package/dist/node_modules/@antv/util/esm/lodash/difference.js.map +1 -0
  3060. package/dist/node_modules/@antv/util/esm/lodash/each.js +19 -0
  3061. package/dist/node_modules/@antv/util/esm/lodash/each.js.map +1 -0
  3062. package/dist/node_modules/@antv/util/esm/lodash/filter.js +14 -0
  3063. package/dist/node_modules/@antv/util/esm/lodash/filter.js.map +1 -0
  3064. package/dist/node_modules/@antv/util/esm/lodash/find.js +21 -0
  3065. package/dist/node_modules/@antv/util/esm/lodash/find.js.map +1 -0
  3066. package/dist/node_modules/@antv/util/esm/lodash/flatten.js +12 -0
  3067. package/dist/node_modules/@antv/util/esm/lodash/flatten.js.map +1 -0
  3068. package/dist/node_modules/@antv/util/esm/lodash/get-type.js +7 -0
  3069. package/dist/node_modules/@antv/util/esm/lodash/get-type.js.map +1 -0
  3070. package/dist/node_modules/@antv/util/esm/lodash/get.js +10 -0
  3071. package/dist/node_modules/@antv/util/esm/lodash/get.js.map +1 -0
  3072. package/dist/node_modules/@antv/util/esm/lodash/group-by.js +18 -0
  3073. package/dist/node_modules/@antv/util/esm/lodash/group-by.js.map +1 -0
  3074. package/dist/node_modules/@antv/util/esm/lodash/head.js +9 -0
  3075. package/dist/node_modules/@antv/util/esm/lodash/head.js.map +1 -0
  3076. package/dist/node_modules/@antv/util/esm/lodash/identity.js +7 -0
  3077. package/dist/node_modules/@antv/util/esm/lodash/identity.js.map +1 -0
  3078. package/dist/node_modules/@antv/util/esm/lodash/index-of.js +18 -0
  3079. package/dist/node_modules/@antv/util/esm/lodash/index-of.js.map +1 -0
  3080. package/dist/node_modules/@antv/util/esm/lodash/is-array-like.js +7 -0
  3081. package/dist/node_modules/@antv/util/esm/lodash/is-array-like.js.map +1 -0
  3082. package/dist/node_modules/@antv/util/esm/lodash/is-array.js +7 -0
  3083. package/dist/node_modules/@antv/util/esm/lodash/is-array.js.map +1 -0
  3084. package/dist/node_modules/@antv/util/esm/lodash/is-boolean.js +8 -0
  3085. package/dist/node_modules/@antv/util/esm/lodash/is-boolean.js.map +1 -0
  3086. package/dist/node_modules/@antv/util/esm/lodash/is-date.js +7 -0
  3087. package/dist/node_modules/@antv/util/esm/lodash/is-date.js.map +1 -0
  3088. package/dist/node_modules/@antv/util/esm/lodash/is-element.js +7 -0
  3089. package/dist/node_modules/@antv/util/esm/lodash/is-element.js.map +1 -0
  3090. package/dist/node_modules/@antv/util/esm/lodash/is-empty.js +24 -0
  3091. package/dist/node_modules/@antv/util/esm/lodash/is-empty.js.map +1 -0
  3092. package/dist/node_modules/@antv/util/esm/lodash/is-equal.js +29 -0
  3093. package/dist/node_modules/@antv/util/esm/lodash/is-equal.js.map +1 -0
  3094. package/dist/node_modules/@antv/util/esm/lodash/is-function.js +7 -0
  3095. package/dist/node_modules/@antv/util/esm/lodash/is-function.js.map +1 -0
  3096. package/dist/node_modules/@antv/util/esm/lodash/is-match.js +17 -0
  3097. package/dist/node_modules/@antv/util/esm/lodash/is-match.js.map +1 -0
  3098. package/dist/node_modules/@antv/util/esm/lodash/is-nil.js +7 -0
  3099. package/dist/node_modules/@antv/util/esm/lodash/is-nil.js.map +1 -0
  3100. package/dist/node_modules/@antv/util/esm/lodash/is-null.js +7 -0
  3101. package/dist/node_modules/@antv/util/esm/lodash/is-null.js.map +1 -0
  3102. package/dist/node_modules/@antv/util/esm/lodash/is-number-equal.js +8 -0
  3103. package/dist/node_modules/@antv/util/esm/lodash/is-number-equal.js.map +1 -0
  3104. package/dist/node_modules/@antv/util/esm/lodash/is-number.js +7 -0
  3105. package/dist/node_modules/@antv/util/esm/lodash/is-number.js.map +1 -0
  3106. package/dist/node_modules/@antv/util/esm/lodash/is-object-like.js +7 -0
  3107. package/dist/node_modules/@antv/util/esm/lodash/is-object-like.js.map +1 -0
  3108. package/dist/node_modules/@antv/util/esm/lodash/is-object.js +8 -0
  3109. package/dist/node_modules/@antv/util/esm/lodash/is-object.js.map +1 -0
  3110. package/dist/node_modules/@antv/util/esm/lodash/is-plain-object.js +15 -0
  3111. package/dist/node_modules/@antv/util/esm/lodash/is-plain-object.js.map +1 -0
  3112. package/dist/node_modules/@antv/util/esm/lodash/is-prototype.js +8 -0
  3113. package/dist/node_modules/@antv/util/esm/lodash/is-prototype.js.map +1 -0
  3114. package/dist/node_modules/@antv/util/esm/lodash/is-string.js +7 -0
  3115. package/dist/node_modules/@antv/util/esm/lodash/is-string.js.map +1 -0
  3116. package/dist/node_modules/@antv/util/esm/lodash/is-type.js +7 -0
  3117. package/dist/node_modules/@antv/util/esm/lodash/is-type.js.map +1 -0
  3118. package/dist/node_modules/@antv/util/esm/lodash/is-undefined.js +7 -0
  3119. package/dist/node_modules/@antv/util/esm/lodash/is-undefined.js.map +1 -0
  3120. package/dist/node_modules/@antv/util/esm/lodash/keys.js +14 -0
  3121. package/dist/node_modules/@antv/util/esm/lodash/keys.js.map +1 -0
  3122. package/dist/node_modules/@antv/util/esm/lodash/last.js +11 -0
  3123. package/dist/node_modules/@antv/util/esm/lodash/last.js.map +1 -0
  3124. package/dist/node_modules/@antv/util/esm/lodash/lower-first.js +9 -0
  3125. package/dist/node_modules/@antv/util/esm/lodash/lower-first.js.map +1 -0
  3126. package/dist/node_modules/@antv/util/esm/lodash/map-values.js +16 -0
  3127. package/dist/node_modules/@antv/util/esm/lodash/map-values.js.map +1 -0
  3128. package/dist/node_modules/@antv/util/esm/lodash/max-by.js +15 -0
  3129. package/dist/node_modules/@antv/util/esm/lodash/max-by.js.map +1 -0
  3130. package/dist/node_modules/@antv/util/esm/lodash/max.js +14 -0
  3131. package/dist/node_modules/@antv/util/esm/lodash/max.js.map +1 -0
  3132. package/dist/node_modules/@antv/util/esm/lodash/memoize.js +45 -0
  3133. package/dist/node_modules/@antv/util/esm/lodash/memoize.js.map +1 -0
  3134. package/dist/node_modules/@antv/util/esm/lodash/min-by.js +15 -0
  3135. package/dist/node_modules/@antv/util/esm/lodash/min-by.js.map +1 -0
  3136. package/dist/node_modules/@antv/util/esm/lodash/min.js +11 -0
  3137. package/dist/node_modules/@antv/util/esm/lodash/min.js.map +1 -0
  3138. package/dist/node_modules/@antv/util/esm/lodash/mix.js +11 -0
  3139. package/dist/node_modules/@antv/util/esm/lodash/mix.js.map +1 -0
  3140. package/dist/node_modules/@antv/util/esm/lodash/mod.js +7 -0
  3141. package/dist/node_modules/@antv/util/esm/lodash/mod.js.map +1 -0
  3142. package/dist/node_modules/@antv/util/esm/lodash/noop.js +6 -0
  3143. package/dist/node_modules/@antv/util/esm/lodash/noop.js.map +1 -0
  3144. package/dist/node_modules/@antv/util/esm/lodash/omit.js +10 -0
  3145. package/dist/node_modules/@antv/util/esm/lodash/omit.js.map +1 -0
  3146. package/dist/node_modules/@antv/util/esm/lodash/pick.js +15 -0
  3147. package/dist/node_modules/@antv/util/esm/lodash/pick.js.map +1 -0
  3148. package/dist/node_modules/@antv/util/esm/lodash/reduce.js +15 -0
  3149. package/dist/node_modules/@antv/util/esm/lodash/reduce.js.map +1 -0
  3150. package/dist/node_modules/@antv/util/esm/lodash/set.js +13 -0
  3151. package/dist/node_modules/@antv/util/esm/lodash/set.js.map +1 -0
  3152. package/dist/node_modules/@antv/util/esm/lodash/size.js +9 -0
  3153. package/dist/node_modules/@antv/util/esm/lodash/size.js.map +1 -0
  3154. package/dist/node_modules/@antv/util/esm/lodash/substitute.js +9 -0
  3155. package/dist/node_modules/@antv/util/esm/lodash/substitute.js.map +1 -0
  3156. package/dist/node_modules/@antv/util/esm/lodash/throttle.js +19 -0
  3157. package/dist/node_modules/@antv/util/esm/lodash/throttle.js.map +1 -0
  3158. package/dist/node_modules/@antv/util/esm/lodash/to-string.js +8 -0
  3159. package/dist/node_modules/@antv/util/esm/lodash/to-string.js.map +1 -0
  3160. package/dist/node_modules/@antv/util/esm/lodash/uniq.js +14 -0
  3161. package/dist/node_modules/@antv/util/esm/lodash/uniq.js.map +1 -0
  3162. package/dist/node_modules/@antv/util/esm/lodash/unique-id.js +8 -0
  3163. package/dist/node_modules/@antv/util/esm/lodash/unique-id.js.map +1 -0
  3164. package/dist/node_modules/@antv/util/esm/lodash/upper-first.js +9 -0
  3165. package/dist/node_modules/@antv/util/esm/lodash/upper-first.js.map +1 -0
  3166. package/dist/node_modules/@antv/util/esm/path/convert/path-2-absolute.js +61 -0
  3167. package/dist/node_modules/@antv/util/esm/path/convert/path-2-absolute.js.map +1 -0
  3168. package/dist/node_modules/@antv/util/esm/path/convert/path-2-curve.js +22 -0
  3169. package/dist/node_modules/@antv/util/esm/path/convert/path-2-curve.js.map +1 -0
  3170. package/dist/node_modules/@antv/util/esm/path/parser/finalize-segment.js +9 -0
  3171. package/dist/node_modules/@antv/util/esm/path/parser/finalize-segment.js.map +1 -0
  3172. package/dist/node_modules/@antv/util/esm/path/parser/is-arc-command.js +7 -0
  3173. package/dist/node_modules/@antv/util/esm/path/parser/is-arc-command.js.map +1 -0
  3174. package/dist/node_modules/@antv/util/esm/path/parser/is-digit-start.js +11 -0
  3175. package/dist/node_modules/@antv/util/esm/path/parser/is-digit-start.js.map +1 -0
  3176. package/dist/node_modules/@antv/util/esm/path/parser/is-path-command.js +21 -0
  3177. package/dist/node_modules/@antv/util/esm/path/parser/is-path-command.js.map +1 -0
  3178. package/dist/node_modules/@antv/util/esm/path/parser/is-space.js +28 -0
  3179. package/dist/node_modules/@antv/util/esm/path/parser/is-space.js.map +1 -0
  3180. package/dist/node_modules/@antv/util/esm/path/parser/params-count.js +17 -0
  3181. package/dist/node_modules/@antv/util/esm/path/parser/params-count.js.map +1 -0
  3182. package/dist/node_modules/@antv/util/esm/path/parser/params-parser.js +14 -0
  3183. package/dist/node_modules/@antv/util/esm/path/parser/params-parser.js.map +1 -0
  3184. package/dist/node_modules/@antv/util/esm/path/parser/parse-path-string.js +16 -0
  3185. package/dist/node_modules/@antv/util/esm/path/parser/parse-path-string.js.map +1 -0
  3186. package/dist/node_modules/@antv/util/esm/path/parser/path-parser.js +13 -0
  3187. package/dist/node_modules/@antv/util/esm/path/parser/path-parser.js.map +1 -0
  3188. package/dist/node_modules/@antv/util/esm/path/parser/scan-flag.js +16 -0
  3189. package/dist/node_modules/@antv/util/esm/path/parser/scan-flag.js.map +1 -0
  3190. package/dist/node_modules/@antv/util/esm/path/parser/scan-param.js +44 -0
  3191. package/dist/node_modules/@antv/util/esm/path/parser/scan-param.js.map +1 -0
  3192. package/dist/node_modules/@antv/util/esm/path/parser/scan-segment.js +33 -0
  3193. package/dist/node_modules/@antv/util/esm/path/parser/scan-segment.js.map +1 -0
  3194. package/dist/node_modules/@antv/util/esm/path/parser/skip-spaces.js +9 -0
  3195. package/dist/node_modules/@antv/util/esm/path/parser/skip-spaces.js.map +1 -0
  3196. package/dist/node_modules/@antv/util/esm/path/process/arc-2-cubic.js +30 -0
  3197. package/dist/node_modules/@antv/util/esm/path/process/arc-2-cubic.js.map +1 -0
  3198. package/dist/node_modules/@antv/util/esm/path/process/clone-path.js +9 -0
  3199. package/dist/node_modules/@antv/util/esm/path/process/clone-path.js.map +1 -0
  3200. package/dist/node_modules/@antv/util/esm/path/process/fix-arc.js +12 -0
  3201. package/dist/node_modules/@antv/util/esm/path/process/fix-arc.js.map +1 -0
  3202. package/dist/node_modules/@antv/util/esm/path/process/line-2-cubic.js +10 -0
  3203. package/dist/node_modules/@antv/util/esm/path/process/line-2-cubic.js.map +1 -0
  3204. package/dist/node_modules/@antv/util/esm/path/process/normalize-path.js +19 -0
  3205. package/dist/node_modules/@antv/util/esm/path/process/normalize-path.js.map +1 -0
  3206. package/dist/node_modules/@antv/util/esm/path/process/normalize-segment.js +22 -0
  3207. package/dist/node_modules/@antv/util/esm/path/process/normalize-segment.js.map +1 -0
  3208. package/dist/node_modules/@antv/util/esm/path/process/quad-2-cubic.js +20 -0
  3209. package/dist/node_modules/@antv/util/esm/path/process/quad-2-cubic.js.map +1 -0
  3210. package/dist/node_modules/@antv/util/esm/path/process/reverse-curve.js +16 -0
  3211. package/dist/node_modules/@antv/util/esm/path/process/reverse-curve.js.map +1 -0
  3212. package/dist/node_modules/@antv/util/esm/path/process/segment-2-cubic.js +23 -0
  3213. package/dist/node_modules/@antv/util/esm/path/process/segment-2-cubic.js.map +1 -0
  3214. package/dist/node_modules/@antv/util/esm/path/util/distance-square-root.js +7 -0
  3215. package/dist/node_modules/@antv/util/esm/path/util/distance-square-root.js.map +1 -0
  3216. package/dist/node_modules/@antv/util/esm/path/util/equalize-segments.js +53 -0
  3217. package/dist/node_modules/@antv/util/esm/path/util/equalize-segments.js.map +1 -0
  3218. package/dist/node_modules/@antv/util/esm/path/util/get-draw-direction.js +8 -0
  3219. package/dist/node_modules/@antv/util/esm/path/util/get-draw-direction.js.map +1 -0
  3220. package/dist/node_modules/@antv/util/esm/path/util/get-path-area.js +23 -0
  3221. package/dist/node_modules/@antv/util/esm/path/util/get-path-area.js.map +1 -0
  3222. package/dist/node_modules/@antv/util/esm/path/util/get-point-at-length.js +9 -0
  3223. package/dist/node_modules/@antv/util/esm/path/util/get-point-at-length.js.map +1 -0
  3224. package/dist/node_modules/@antv/util/esm/path/util/get-rotated-curve.js +22 -0
  3225. package/dist/node_modules/@antv/util/esm/path/util/get-rotated-curve.js.map +1 -0
  3226. package/dist/node_modules/@antv/util/esm/path/util/get-total-length.js +9 -0
  3227. package/dist/node_modules/@antv/util/esm/path/util/get-total-length.js.map +1 -0
  3228. package/dist/node_modules/@antv/util/esm/path/util/is-absolute-array.js +12 -0
  3229. package/dist/node_modules/@antv/util/esm/path/util/is-absolute-array.js.map +1 -0
  3230. package/dist/node_modules/@antv/util/esm/path/util/is-curve-array.js +11 -0
  3231. package/dist/node_modules/@antv/util/esm/path/util/is-curve-array.js.map +1 -0
  3232. package/dist/node_modules/@antv/util/esm/path/util/is-normalized-array.js +11 -0
  3233. package/dist/node_modules/@antv/util/esm/path/util/is-normalized-array.js.map +1 -0
  3234. package/dist/node_modules/@antv/util/esm/path/util/is-path-array.js +11 -0
  3235. package/dist/node_modules/@antv/util/esm/path/util/is-path-array.js.map +1 -0
  3236. package/dist/node_modules/@antv/util/esm/path/util/mid-point.js +8 -0
  3237. package/dist/node_modules/@antv/util/esm/path/util/mid-point.js.map +1 -0
  3238. package/dist/node_modules/@antv/util/esm/path/util/path-length-factory.js +33 -0
  3239. package/dist/node_modules/@antv/util/esm/path/util/path-length-factory.js.map +1 -0
  3240. package/dist/node_modules/@antv/util/esm/path/util/rotate-vector.js +8 -0
  3241. package/dist/node_modules/@antv/util/esm/path/util/rotate-vector.js.map +1 -0
  3242. package/dist/node_modules/@antv/util/esm/path/util/segment-arc-factory.js +77 -0
  3243. package/dist/node_modules/@antv/util/esm/path/util/segment-arc-factory.js.map +1 -0
  3244. package/dist/node_modules/@antv/util/esm/path/util/segment-cubic-factory.js +46 -0
  3245. package/dist/node_modules/@antv/util/esm/path/util/segment-cubic-factory.js.map +1 -0
  3246. package/dist/node_modules/@antv/util/esm/path/util/segment-line-factory.js +30 -0
  3247. package/dist/node_modules/@antv/util/esm/path/util/segment-line-factory.js.map +1 -0
  3248. package/dist/node_modules/@antv/util/esm/path/util/segment-quad-factory.js +46 -0
  3249. package/dist/node_modules/@antv/util/esm/path/util/segment-quad-factory.js.map +1 -0
  3250. package/dist/node_modules/@antv/vendor/es/d3-scale-chromatic.js +123 -0
  3251. package/dist/node_modules/@antv/vendor/es/d3-scale-chromatic.js.map +1 -0
  3252. package/dist/node_modules/@babel/runtime/helpers/esm/OverloadYield.js +7 -0
  3253. package/dist/node_modules/@babel/runtime/helpers/esm/OverloadYield.js.map +1 -0
  3254. package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +9 -0
  3255. package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js.map +1 -0
  3256. package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +7 -0
  3257. package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js.map +1 -0
  3258. package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +8 -0
  3259. package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js.map +1 -0
  3260. package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +8 -0
  3261. package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +1 -0
  3262. package/dist/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +27 -0
  3263. package/dist/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js.map +1 -0
  3264. package/dist/node_modules/@babel/runtime/helpers/esm/callSuper.js +10 -0
  3265. package/dist/node_modules/@babel/runtime/helpers/esm/callSuper.js.map +1 -0
  3266. package/dist/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +7 -0
  3267. package/dist/node_modules/@babel/runtime/helpers/esm/classCallCheck.js.map +1 -0
  3268. package/dist/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js +8 -0
  3269. package/dist/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js.map +1 -0
  3270. package/dist/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js +8 -0
  3271. package/dist/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js.map +1 -0
  3272. package/dist/node_modules/@babel/runtime/helpers/esm/createClass.js +16 -0
  3273. package/dist/node_modules/@babel/runtime/helpers/esm/createClass.js.map +1 -0
  3274. package/dist/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js +52 -0
  3275. package/dist/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js.map +1 -0
  3276. package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js +13 -0
  3277. package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
  3278. package/dist/node_modules/@babel/runtime/helpers/esm/get.js +14 -0
  3279. package/dist/node_modules/@babel/runtime/helpers/esm/get.js.map +1 -0
  3280. package/dist/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +9 -0
  3281. package/dist/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js.map +1 -0
  3282. package/dist/node_modules/@babel/runtime/helpers/esm/inherits.js +17 -0
  3283. package/dist/node_modules/@babel/runtime/helpers/esm/inherits.js.map +1 -0
  3284. package/dist/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +14 -0
  3285. package/dist/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js.map +1 -0
  3286. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +7 -0
  3287. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js.map +1 -0
  3288. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +25 -0
  3289. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js.map +1 -0
  3290. package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +8 -0
  3291. package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js.map +1 -0
  3292. package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +8 -0
  3293. package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js.map +1 -0
  3294. package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +26 -0
  3295. package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -0
  3296. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +14 -0
  3297. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js.map +1 -0
  3298. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +13 -0
  3299. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
  3300. package/dist/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +11 -0
  3301. package/dist/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js.map +1 -0
  3302. package/dist/node_modules/@babel/runtime/helpers/esm/regenerator.js +80 -0
  3303. package/dist/node_modules/@babel/runtime/helpers/esm/regenerator.js.map +1 -0
  3304. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorAsync.js +11 -0
  3305. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorAsync.js.map +1 -0
  3306. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorAsyncGen.js +9 -0
  3307. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorAsyncGen.js.map +1 -0
  3308. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorAsyncIterator.js +35 -0
  3309. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorAsyncIterator.js.map +1 -0
  3310. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorDefine.js +25 -0
  3311. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorDefine.js.map +1 -0
  3312. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorKeys.js +12 -0
  3313. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorKeys.js.map +1 -0
  3314. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js +76 -0
  3315. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js.map +1 -0
  3316. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorValues.js +21 -0
  3317. package/dist/node_modules/@babel/runtime/helpers/esm/regeneratorValues.js.map +1 -0
  3318. package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +9 -0
  3319. package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -0
  3320. package/dist/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +11 -0
  3321. package/dist/node_modules/@babel/runtime/helpers/esm/slicedToArray.js.map +1 -0
  3322. package/dist/node_modules/@babel/runtime/helpers/esm/superPropBase.js +9 -0
  3323. package/dist/node_modules/@babel/runtime/helpers/esm/superPropBase.js.map +1 -0
  3324. package/dist/node_modules/@babel/runtime/helpers/esm/superPropGet.js +12 -0
  3325. package/dist/node_modules/@babel/runtime/helpers/esm/superPropGet.js.map +1 -0
  3326. package/dist/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +11 -0
  3327. package/dist/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js.map +1 -0
  3328. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +15 -0
  3329. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
  3330. package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +10 -0
  3331. package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
  3332. package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js +12 -0
  3333. package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
  3334. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +12 -0
  3335. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -0
  3336. package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js +11 -0
  3337. package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js.map +1 -0
  3338. package/dist/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js +10 -0
  3339. package/dist/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js.map +1 -0
  3340. package/dist/node_modules/bubblesets-js/build/index.js +1075 -0
  3341. package/dist/node_modules/bubblesets-js/build/index.js.map +1 -0
  3342. package/dist/node_modules/color-name/index.js +157 -0
  3343. package/dist/node_modules/color-name/index.js.map +1 -0
  3344. package/dist/node_modules/color-string/index.js +103 -0
  3345. package/dist/node_modules/color-string/index.js.map +1 -0
  3346. package/dist/node_modules/d3-array/src/array.js +5 -0
  3347. package/dist/node_modules/d3-array/src/array.js.map +1 -0
  3348. package/dist/node_modules/d3-array/src/ascending.js +7 -0
  3349. package/dist/node_modules/d3-array/src/ascending.js.map +1 -0
  3350. package/dist/node_modules/d3-array/src/bin.js +59 -0
  3351. package/dist/node_modules/d3-array/src/bin.js.map +1 -0
  3352. package/dist/node_modules/d3-array/src/bisect.js +11 -0
  3353. package/dist/node_modules/d3-array/src/bisect.js.map +1 -0
  3354. package/dist/node_modules/d3-array/src/bisector.js +38 -0
  3355. package/dist/node_modules/d3-array/src/bisector.js.map +1 -0
  3356. package/dist/node_modules/d3-array/src/constant.js +7 -0
  3357. package/dist/node_modules/d3-array/src/constant.js.map +1 -0
  3358. package/dist/node_modules/d3-array/src/count.js +10 -0
  3359. package/dist/node_modules/d3-array/src/count.js.map +1 -0
  3360. package/dist/node_modules/d3-array/src/descending.js +7 -0
  3361. package/dist/node_modules/d3-array/src/descending.js.map +1 -0
  3362. package/dist/node_modules/d3-array/src/deviation.js +9 -0
  3363. package/dist/node_modules/d3-array/src/deviation.js.map +1 -0
  3364. package/dist/node_modules/d3-array/src/extent.js +16 -0
  3365. package/dist/node_modules/d3-array/src/extent.js.map +1 -0
  3366. package/dist/node_modules/d3-array/src/fsum.js +28 -0
  3367. package/dist/node_modules/d3-array/src/fsum.js.map +1 -0
  3368. package/dist/node_modules/d3-array/src/greatest.js +18 -0
  3369. package/dist/node_modules/d3-array/src/greatest.js.map +1 -0
  3370. package/dist/node_modules/d3-array/src/group.js +35 -0
  3371. package/dist/node_modules/d3-array/src/group.js.map +1 -0
  3372. package/dist/node_modules/d3-array/src/groupSort.js +10 -0
  3373. package/dist/node_modules/d3-array/src/groupSort.js.map +1 -0
  3374. package/dist/node_modules/d3-array/src/identity.js +7 -0
  3375. package/dist/node_modules/d3-array/src/identity.js.map +1 -0
  3376. package/dist/node_modules/d3-array/src/max.js +16 -0
  3377. package/dist/node_modules/d3-array/src/max.js.map +1 -0
  3378. package/dist/node_modules/d3-array/src/maxIndex.js +14 -0
  3379. package/dist/node_modules/d3-array/src/maxIndex.js.map +1 -0
  3380. package/dist/node_modules/d3-array/src/mean.js +16 -0
  3381. package/dist/node_modules/d3-array/src/mean.js.map +1 -0
  3382. package/dist/node_modules/d3-array/src/median.js +12 -0
  3383. package/dist/node_modules/d3-array/src/median.js.map +1 -0
  3384. package/dist/node_modules/d3-array/src/merge.js +11 -0
  3385. package/dist/node_modules/d3-array/src/merge.js.map +1 -0
  3386. package/dist/node_modules/d3-array/src/min.js +16 -0
  3387. package/dist/node_modules/d3-array/src/min.js.map +1 -0
  3388. package/dist/node_modules/d3-array/src/minIndex.js +14 -0
  3389. package/dist/node_modules/d3-array/src/minIndex.js.map +1 -0
  3390. package/dist/node_modules/d3-array/src/nice.js +14 -0
  3391. package/dist/node_modules/d3-array/src/nice.js.map +1 -0
  3392. package/dist/node_modules/d3-array/src/number.js +18 -0
  3393. package/dist/node_modules/d3-array/src/number.js.map +1 -0
  3394. package/dist/node_modules/d3-array/src/permute.js +7 -0
  3395. package/dist/node_modules/d3-array/src/permute.js.map +1 -0
  3396. package/dist/node_modules/d3-array/src/quantile.js +29 -0
  3397. package/dist/node_modules/d3-array/src/quantile.js.map +1 -0
  3398. package/dist/node_modules/d3-array/src/quickselect.js +26 -0
  3399. package/dist/node_modules/d3-array/src/quickselect.js.map +1 -0
  3400. package/dist/node_modules/d3-array/src/range.js +10 -0
  3401. package/dist/node_modules/d3-array/src/range.js.map +1 -0
  3402. package/dist/node_modules/d3-array/src/sort.js +34 -0
  3403. package/dist/node_modules/d3-array/src/sort.js.map +1 -0
  3404. package/dist/node_modules/d3-array/src/sum.js +16 -0
  3405. package/dist/node_modules/d3-array/src/sum.js.map +1 -0
  3406. package/dist/node_modules/d3-array/src/threshold/scott.js +10 -0
  3407. package/dist/node_modules/d3-array/src/threshold/scott.js.map +1 -0
  3408. package/dist/node_modules/d3-array/src/threshold/sturges.js +8 -0
  3409. package/dist/node_modules/d3-array/src/threshold/sturges.js.map +1 -0
  3410. package/dist/node_modules/d3-array/src/ticks.js +27 -0
  3411. package/dist/node_modules/d3-array/src/ticks.js.map +1 -0
  3412. package/dist/node_modules/d3-array/src/variance.js +16 -0
  3413. package/dist/node_modules/d3-array/src/variance.js.map +1 -0
  3414. package/dist/node_modules/d3-color/src/color.js +305 -0
  3415. package/dist/node_modules/d3-color/src/color.js.map +1 -0
  3416. package/dist/node_modules/d3-color/src/cubehelix.js +38 -0
  3417. package/dist/node_modules/d3-color/src/cubehelix.js.map +1 -0
  3418. package/dist/node_modules/d3-color/src/define.js +13 -0
  3419. package/dist/node_modules/d3-color/src/define.js.map +1 -0
  3420. package/dist/node_modules/d3-color/src/math.js +6 -0
  3421. package/dist/node_modules/d3-color/src/math.js.map +1 -0
  3422. package/dist/node_modules/d3-dispatch/src/dispatch.js +65 -0
  3423. package/dist/node_modules/d3-dispatch/src/dispatch.js.map +1 -0
  3424. package/dist/node_modules/d3-dsv/src/autoType.js +20 -0
  3425. package/dist/node_modules/d3-dsv/src/autoType.js.map +1 -0
  3426. package/dist/node_modules/d3-dsv/src/dsv.js +105 -0
  3427. package/dist/node_modules/d3-dsv/src/dsv.js.map +1 -0
  3428. package/dist/node_modules/d3-force/src/center.js +24 -0
  3429. package/dist/node_modules/d3-force/src/center.js.map +1 -0
  3430. package/dist/node_modules/d3-force/src/collide.js +53 -0
  3431. package/dist/node_modules/d3-force/src/collide.js.map +1 -0
  3432. package/dist/node_modules/d3-force/src/constant.js +9 -0
  3433. package/dist/node_modules/d3-force/src/constant.js.map +1 -0
  3434. package/dist/node_modules/d3-force/src/jiggle.js +7 -0
  3435. package/dist/node_modules/d3-force/src/jiggle.js.map +1 -0
  3436. package/dist/node_modules/d3-force/src/lcg.js +8 -0
  3437. package/dist/node_modules/d3-force/src/lcg.js.map +1 -0
  3438. package/dist/node_modules/d3-force/src/link.js +59 -0
  3439. package/dist/node_modules/d3-force/src/link.js.map +1 -0
  3440. package/dist/node_modules/d3-force/src/manyBody.js +57 -0
  3441. package/dist/node_modules/d3-force/src/manyBody.js.map +1 -0
  3442. package/dist/node_modules/d3-force/src/simulation.js +87 -0
  3443. package/dist/node_modules/d3-force/src/simulation.js.map +1 -0
  3444. package/dist/node_modules/d3-force/src/x.js +27 -0
  3445. package/dist/node_modules/d3-force/src/x.js.map +1 -0
  3446. package/dist/node_modules/d3-force/src/y.js +27 -0
  3447. package/dist/node_modules/d3-force/src/y.js.map +1 -0
  3448. package/dist/node_modules/d3-format/src/defaultLocale.js +14 -0
  3449. package/dist/node_modules/d3-format/src/defaultLocale.js.map +1 -0
  3450. package/dist/node_modules/d3-format/src/exponent.js +8 -0
  3451. package/dist/node_modules/d3-format/src/exponent.js.map +1 -0
  3452. package/dist/node_modules/d3-format/src/formatDecimal.js +16 -0
  3453. package/dist/node_modules/d3-format/src/formatDecimal.js.map +1 -0
  3454. package/dist/node_modules/d3-format/src/formatGroup.js +11 -0
  3455. package/dist/node_modules/d3-format/src/formatGroup.js.map +1 -0
  3456. package/dist/node_modules/d3-format/src/formatNumerals.js +11 -0
  3457. package/dist/node_modules/d3-format/src/formatNumerals.js.map +1 -0
  3458. package/dist/node_modules/d3-format/src/formatPrefixAuto.js +13 -0
  3459. package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +1 -0
  3460. package/dist/node_modules/d3-format/src/formatRounded.js +11 -0
  3461. package/dist/node_modules/d3-format/src/formatRounded.js.map +1 -0
  3462. package/dist/node_modules/d3-format/src/formatSpecifier.js +29 -0
  3463. package/dist/node_modules/d3-format/src/formatSpecifier.js.map +1 -0
  3464. package/dist/node_modules/d3-format/src/formatTrim.js +20 -0
  3465. package/dist/node_modules/d3-format/src/formatTrim.js.map +1 -0
  3466. package/dist/node_modules/d3-format/src/formatTypes.js +22 -0
  3467. package/dist/node_modules/d3-format/src/formatTypes.js.map +1 -0
  3468. package/dist/node_modules/d3-format/src/identity.js +7 -0
  3469. package/dist/node_modules/d3-format/src/identity.js.map +1 -0
  3470. package/dist/node_modules/d3-format/src/locale.js +69 -0
  3471. package/dist/node_modules/d3-format/src/locale.js.map +1 -0
  3472. package/dist/node_modules/d3-geo/src/cartesian.js +34 -0
  3473. package/dist/node_modules/d3-geo/src/cartesian.js.map +1 -0
  3474. package/dist/node_modules/d3-geo/src/circle.js +19 -0
  3475. package/dist/node_modules/d3-geo/src/circle.js.map +1 -0
  3476. package/dist/node_modules/d3-geo/src/clip/antimeridian.js +46 -0
  3477. package/dist/node_modules/d3-geo/src/clip/antimeridian.js.map +1 -0
  3478. package/dist/node_modules/d3-geo/src/clip/buffer.js +24 -0
  3479. package/dist/node_modules/d3-geo/src/clip/buffer.js.map +1 -0
  3480. package/dist/node_modules/d3-geo/src/clip/circle.js +67 -0
  3481. package/dist/node_modules/d3-geo/src/clip/circle.js.map +1 -0
  3482. package/dist/node_modules/d3-geo/src/clip/index.js +68 -0
  3483. package/dist/node_modules/d3-geo/src/clip/index.js.map +1 -0
  3484. package/dist/node_modules/d3-geo/src/clip/line.js +44 -0
  3485. package/dist/node_modules/d3-geo/src/clip/line.js.map +1 -0
  3486. package/dist/node_modules/d3-geo/src/clip/rectangle.js +77 -0
  3487. package/dist/node_modules/d3-geo/src/clip/rectangle.js.map +1 -0
  3488. package/dist/node_modules/d3-geo/src/clip/rejoin.js +57 -0
  3489. package/dist/node_modules/d3-geo/src/clip/rejoin.js.map +1 -0
  3490. package/dist/node_modules/d3-geo/src/compose.js +12 -0
  3491. package/dist/node_modules/d3-geo/src/compose.js.map +1 -0
  3492. package/dist/node_modules/d3-geo/src/graticule.js +68 -0
  3493. package/dist/node_modules/d3-geo/src/graticule.js.map +1 -0
  3494. package/dist/node_modules/d3-geo/src/identity.js +5 -0
  3495. package/dist/node_modules/d3-geo/src/identity.js.map +1 -0
  3496. package/dist/node_modules/d3-geo/src/math.js +34 -0
  3497. package/dist/node_modules/d3-geo/src/math.js.map +1 -0
  3498. package/dist/node_modules/d3-geo/src/noop.js +6 -0
  3499. package/dist/node_modules/d3-geo/src/noop.js.map +1 -0
  3500. package/dist/node_modules/d3-geo/src/path/area.js +34 -0
  3501. package/dist/node_modules/d3-geo/src/path/area.js.map +1 -0
  3502. package/dist/node_modules/d3-geo/src/path/bounds.js +19 -0
  3503. package/dist/node_modules/d3-geo/src/path/bounds.js.map +1 -0
  3504. package/dist/node_modules/d3-geo/src/path/centroid.js +49 -0
  3505. package/dist/node_modules/d3-geo/src/path/centroid.js.map +1 -0
  3506. package/dist/node_modules/d3-geo/src/path/context.js +44 -0
  3507. package/dist/node_modules/d3-geo/src/path/context.js.map +1 -0
  3508. package/dist/node_modules/d3-geo/src/path/index.js +42 -0
  3509. package/dist/node_modules/d3-geo/src/path/index.js.map +1 -0
  3510. package/dist/node_modules/d3-geo/src/path/measure.js +32 -0
  3511. package/dist/node_modules/d3-geo/src/path/measure.js.map +1 -0
  3512. package/dist/node_modules/d3-geo/src/path/string.js +70 -0
  3513. package/dist/node_modules/d3-geo/src/path/string.js.map +1 -0
  3514. package/dist/node_modules/d3-geo/src/pointEqual.js +8 -0
  3515. package/dist/node_modules/d3-geo/src/pointEqual.js.map +1 -0
  3516. package/dist/node_modules/d3-geo/src/polygonContains.js +28 -0
  3517. package/dist/node_modules/d3-geo/src/polygonContains.js.map +1 -0
  3518. package/dist/node_modules/d3-geo/src/projection/albers.js +8 -0
  3519. package/dist/node_modules/d3-geo/src/projection/albers.js.map +1 -0
  3520. package/dist/node_modules/d3-geo/src/projection/albersUsa.js +66 -0
  3521. package/dist/node_modules/d3-geo/src/projection/albersUsa.js.map +1 -0
  3522. package/dist/node_modules/d3-geo/src/projection/azimuthal.js +24 -0
  3523. package/dist/node_modules/d3-geo/src/projection/azimuthal.js.map +1 -0
  3524. package/dist/node_modules/d3-geo/src/projection/azimuthalEqualArea.js +17 -0
  3525. package/dist/node_modules/d3-geo/src/projection/azimuthalEqualArea.js.map +1 -0
  3526. package/dist/node_modules/d3-geo/src/projection/azimuthalEquidistant.js +17 -0
  3527. package/dist/node_modules/d3-geo/src/projection/azimuthalEquidistant.js.map +1 -0
  3528. package/dist/node_modules/d3-geo/src/projection/conic.js +12 -0
  3529. package/dist/node_modules/d3-geo/src/projection/conic.js.map +1 -0
  3530. package/dist/node_modules/d3-geo/src/projection/conicConformal.js +27 -0
  3531. package/dist/node_modules/d3-geo/src/projection/conicConformal.js.map +1 -0
  3532. package/dist/node_modules/d3-geo/src/projection/conicEqualArea.js +24 -0
  3533. package/dist/node_modules/d3-geo/src/projection/conicEqualArea.js.map +1 -0
  3534. package/dist/node_modules/d3-geo/src/projection/conicEquidistant.js +23 -0
  3535. package/dist/node_modules/d3-geo/src/projection/conicEquidistant.js.map +1 -0
  3536. package/dist/node_modules/d3-geo/src/projection/cylindricalEqualArea.js +14 -0
  3537. package/dist/node_modules/d3-geo/src/projection/cylindricalEqualArea.js.map +1 -0
  3538. package/dist/node_modules/d3-geo/src/projection/equalEarth.js +26 -0
  3539. package/dist/node_modules/d3-geo/src/projection/equalEarth.js.map +1 -0
  3540. package/dist/node_modules/d3-geo/src/projection/equirectangular.js +13 -0
  3541. package/dist/node_modules/d3-geo/src/projection/equirectangular.js.map +1 -0
  3542. package/dist/node_modules/d3-geo/src/projection/fit.js +34 -0
  3543. package/dist/node_modules/d3-geo/src/projection/fit.js.map +1 -0
  3544. package/dist/node_modules/d3-geo/src/projection/gnomonic.js +16 -0
  3545. package/dist/node_modules/d3-geo/src/projection/gnomonic.js.map +1 -0
  3546. package/dist/node_modules/d3-geo/src/projection/identity.js +60 -0
  3547. package/dist/node_modules/d3-geo/src/projection/identity.js.map +1 -0
  3548. package/dist/node_modules/d3-geo/src/projection/index.js +105 -0
  3549. package/dist/node_modules/d3-geo/src/projection/index.js.map +1 -0
  3550. package/dist/node_modules/d3-geo/src/projection/mercator.js +35 -0
  3551. package/dist/node_modules/d3-geo/src/projection/mercator.js.map +1 -0
  3552. package/dist/node_modules/d3-geo/src/projection/naturalEarth1.js +28 -0
  3553. package/dist/node_modules/d3-geo/src/projection/naturalEarth1.js.map +1 -0
  3554. package/dist/node_modules/d3-geo/src/projection/orthographic.js +15 -0
  3555. package/dist/node_modules/d3-geo/src/projection/orthographic.js.map +1 -0
  3556. package/dist/node_modules/d3-geo/src/projection/resample.js +63 -0
  3557. package/dist/node_modules/d3-geo/src/projection/resample.js.map +1 -0
  3558. package/dist/node_modules/d3-geo/src/projection/stereographic.js +18 -0
  3559. package/dist/node_modules/d3-geo/src/projection/stereographic.js.map +1 -0
  3560. package/dist/node_modules/d3-geo/src/projection/transverseMercator.js +21 -0
  3561. package/dist/node_modules/d3-geo/src/projection/transverseMercator.js.map +1 -0
  3562. package/dist/node_modules/d3-geo/src/rotation.js +49 -0
  3563. package/dist/node_modules/d3-geo/src/rotation.js.map +1 -0
  3564. package/dist/node_modules/d3-geo/src/stream.js +53 -0
  3565. package/dist/node_modules/d3-geo/src/stream.js.map +1 -0
  3566. package/dist/node_modules/d3-geo/src/transform.js +34 -0
  3567. package/dist/node_modules/d3-geo/src/transform.js.map +1 -0
  3568. package/dist/node_modules/d3-hierarchy/src/accessors.js +12 -0
  3569. package/dist/node_modules/d3-hierarchy/src/accessors.js.map +1 -0
  3570. package/dist/node_modules/d3-hierarchy/src/array.js +14 -0
  3571. package/dist/node_modules/d3-hierarchy/src/array.js.map +1 -0
  3572. package/dist/node_modules/d3-hierarchy/src/cluster.js +50 -0
  3573. package/dist/node_modules/d3-hierarchy/src/cluster.js.map +1 -0
  3574. package/dist/node_modules/d3-hierarchy/src/constant.js +13 -0
  3575. package/dist/node_modules/d3-hierarchy/src/constant.js.map +1 -0
  3576. package/dist/node_modules/d3-hierarchy/src/hierarchy/ancestors.js +9 -0
  3577. package/dist/node_modules/d3-hierarchy/src/hierarchy/ancestors.js.map +1 -0
  3578. package/dist/node_modules/d3-hierarchy/src/hierarchy/count.js +13 -0
  3579. package/dist/node_modules/d3-hierarchy/src/hierarchy/count.js.map +1 -0
  3580. package/dist/node_modules/d3-hierarchy/src/hierarchy/descendants.js +7 -0
  3581. package/dist/node_modules/d3-hierarchy/src/hierarchy/descendants.js.map +1 -0
  3582. package/dist/node_modules/d3-hierarchy/src/hierarchy/each.js +10 -0
  3583. package/dist/node_modules/d3-hierarchy/src/hierarchy/each.js.map +1 -0
  3584. package/dist/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js +13 -0
  3585. package/dist/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js.map +1 -0
  3586. package/dist/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js +11 -0
  3587. package/dist/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js.map +1 -0
  3588. package/dist/node_modules/d3-hierarchy/src/hierarchy/find.js +10 -0
  3589. package/dist/node_modules/d3-hierarchy/src/hierarchy/find.js.map +1 -0
  3590. package/dist/node_modules/d3-hierarchy/src/hierarchy/index.js +65 -0
  3591. package/dist/node_modules/d3-hierarchy/src/hierarchy/index.js.map +1 -0
  3592. package/dist/node_modules/d3-hierarchy/src/hierarchy/iterator.js +13 -0
  3593. package/dist/node_modules/d3-hierarchy/src/hierarchy/iterator.js.map +1 -0
  3594. package/dist/node_modules/d3-hierarchy/src/hierarchy/leaves.js +10 -0
  3595. package/dist/node_modules/d3-hierarchy/src/hierarchy/leaves.js.map +1 -0
  3596. package/dist/node_modules/d3-hierarchy/src/hierarchy/links.js +10 -0
  3597. package/dist/node_modules/d3-hierarchy/src/hierarchy/links.js.map +1 -0
  3598. package/dist/node_modules/d3-hierarchy/src/hierarchy/path.js +18 -0
  3599. package/dist/node_modules/d3-hierarchy/src/hierarchy/path.js.map +1 -0
  3600. package/dist/node_modules/d3-hierarchy/src/hierarchy/sort.js +9 -0
  3601. package/dist/node_modules/d3-hierarchy/src/hierarchy/sort.js.map +1 -0
  3602. package/dist/node_modules/d3-hierarchy/src/hierarchy/sum.js +10 -0
  3603. package/dist/node_modules/d3-hierarchy/src/hierarchy/sum.js.map +1 -0
  3604. package/dist/node_modules/d3-hierarchy/src/lcg.js +8 -0
  3605. package/dist/node_modules/d3-hierarchy/src/lcg.js.map +1 -0
  3606. package/dist/node_modules/d3-hierarchy/src/pack/enclose.js +69 -0
  3607. package/dist/node_modules/d3-hierarchy/src/pack/enclose.js.map +1 -0
  3608. package/dist/node_modules/d3-hierarchy/src/pack/index.js +46 -0
  3609. package/dist/node_modules/d3-hierarchy/src/pack/index.js.map +1 -0
  3610. package/dist/node_modules/d3-hierarchy/src/pack/siblings.js +52 -0
  3611. package/dist/node_modules/d3-hierarchy/src/pack/siblings.js.map +1 -0
  3612. package/dist/node_modules/d3-hierarchy/src/partition.js +27 -0
  3613. package/dist/node_modules/d3-hierarchy/src/partition.js.map +1 -0
  3614. package/dist/node_modules/d3-hierarchy/src/stratify.js +73 -0
  3615. package/dist/node_modules/d3-hierarchy/src/stratify.js.map +1 -0
  3616. package/dist/node_modules/d3-hierarchy/src/tree.js +86 -0
  3617. package/dist/node_modules/d3-hierarchy/src/tree.js.map +1 -0
  3618. package/dist/node_modules/d3-hierarchy/src/treemap/binary.js +30 -0
  3619. package/dist/node_modules/d3-hierarchy/src/treemap/binary.js.map +1 -0
  3620. package/dist/node_modules/d3-hierarchy/src/treemap/dice.js +8 -0
  3621. package/dist/node_modules/d3-hierarchy/src/treemap/dice.js.map +1 -0
  3622. package/dist/node_modules/d3-hierarchy/src/treemap/index.js +39 -0
  3623. package/dist/node_modules/d3-hierarchy/src/treemap/index.js.map +1 -0
  3624. package/dist/node_modules/d3-hierarchy/src/treemap/resquarify.js +21 -0
  3625. package/dist/node_modules/d3-hierarchy/src/treemap/resquarify.js.map +1 -0
  3626. package/dist/node_modules/d3-hierarchy/src/treemap/round.js +7 -0
  3627. package/dist/node_modules/d3-hierarchy/src/treemap/round.js.map +1 -0
  3628. package/dist/node_modules/d3-hierarchy/src/treemap/slice.js +8 -0
  3629. package/dist/node_modules/d3-hierarchy/src/treemap/slice.js.map +1 -0
  3630. package/dist/node_modules/d3-hierarchy/src/treemap/sliceDice.js +9 -0
  3631. package/dist/node_modules/d3-hierarchy/src/treemap/sliceDice.js.map +1 -0
  3632. package/dist/node_modules/d3-hierarchy/src/treemap/squarify.js +34 -0
  3633. package/dist/node_modules/d3-hierarchy/src/treemap/squarify.js.map +1 -0
  3634. package/dist/node_modules/d3-interpolate/src/basis.js +16 -0
  3635. package/dist/node_modules/d3-interpolate/src/basis.js.map +1 -0
  3636. package/dist/node_modules/d3-interpolate/src/color.js +30 -0
  3637. package/dist/node_modules/d3-interpolate/src/color.js.map +1 -0
  3638. package/dist/node_modules/d3-interpolate/src/constant.js +5 -0
  3639. package/dist/node_modules/d3-interpolate/src/constant.js.map +1 -0
  3640. package/dist/node_modules/d3-interpolate/src/cubehelix.js +20 -0
  3641. package/dist/node_modules/d3-interpolate/src/cubehelix.js.map +1 -0
  3642. package/dist/node_modules/d3-interpolate/src/rgb.js +28 -0
  3643. package/dist/node_modules/d3-interpolate/src/rgb.js.map +1 -0
  3644. package/dist/node_modules/d3-path/src/path.js +70 -0
  3645. package/dist/node_modules/d3-path/src/path.js.map +1 -0
  3646. package/dist/node_modules/d3-quadtree/src/add.js +30 -0
  3647. package/dist/node_modules/d3-quadtree/src/add.js.map +1 -0
  3648. package/dist/node_modules/d3-quadtree/src/cover.js +29 -0
  3649. package/dist/node_modules/d3-quadtree/src/cover.js.map +1 -0
  3650. package/dist/node_modules/d3-quadtree/src/data.js +12 -0
  3651. package/dist/node_modules/d3-quadtree/src/data.js.map +1 -0
  3652. package/dist/node_modules/d3-quadtree/src/extent.js +7 -0
  3653. package/dist/node_modules/d3-quadtree/src/extent.js.map +1 -0
  3654. package/dist/node_modules/d3-quadtree/src/find.js +26 -0
  3655. package/dist/node_modules/d3-quadtree/src/find.js.map +1 -0
  3656. package/dist/node_modules/d3-quadtree/src/quad.js +7 -0
  3657. package/dist/node_modules/d3-quadtree/src/quad.js.map +1 -0
  3658. package/dist/node_modules/d3-quadtree/src/quadtree.js +51 -0
  3659. package/dist/node_modules/d3-quadtree/src/quadtree.js.map +1 -0
  3660. package/dist/node_modules/d3-quadtree/src/remove.js +21 -0
  3661. package/dist/node_modules/d3-quadtree/src/remove.js.map +1 -0
  3662. package/dist/node_modules/d3-quadtree/src/root.js +7 -0
  3663. package/dist/node_modules/d3-quadtree/src/root.js.map +1 -0
  3664. package/dist/node_modules/d3-quadtree/src/size.js +12 -0
  3665. package/dist/node_modules/d3-quadtree/src/size.js.map +1 -0
  3666. package/dist/node_modules/d3-quadtree/src/visit.js +14 -0
  3667. package/dist/node_modules/d3-quadtree/src/visit.js.map +1 -0
  3668. package/dist/node_modules/d3-quadtree/src/visitAfter.js +19 -0
  3669. package/dist/node_modules/d3-quadtree/src/visitAfter.js.map +1 -0
  3670. package/dist/node_modules/d3-quadtree/src/x.js +11 -0
  3671. package/dist/node_modules/d3-quadtree/src/x.js.map +1 -0
  3672. package/dist/node_modules/d3-quadtree/src/y.js +11 -0
  3673. package/dist/node_modules/d3-quadtree/src/y.js.map +1 -0
  3674. package/dist/node_modules/d3-scale-chromatic/src/categorical/Accent.js +6 -0
  3675. package/dist/node_modules/d3-scale-chromatic/src/categorical/Accent.js.map +1 -0
  3676. package/dist/node_modules/d3-scale-chromatic/src/categorical/Dark2.js +6 -0
  3677. package/dist/node_modules/d3-scale-chromatic/src/categorical/Dark2.js.map +1 -0
  3678. package/dist/node_modules/d3-scale-chromatic/src/categorical/Paired.js +6 -0
  3679. package/dist/node_modules/d3-scale-chromatic/src/categorical/Paired.js.map +1 -0
  3680. package/dist/node_modules/d3-scale-chromatic/src/categorical/Pastel1.js +6 -0
  3681. package/dist/node_modules/d3-scale-chromatic/src/categorical/Pastel1.js.map +1 -0
  3682. package/dist/node_modules/d3-scale-chromatic/src/categorical/Pastel2.js +6 -0
  3683. package/dist/node_modules/d3-scale-chromatic/src/categorical/Pastel2.js.map +1 -0
  3684. package/dist/node_modules/d3-scale-chromatic/src/categorical/Set1.js +6 -0
  3685. package/dist/node_modules/d3-scale-chromatic/src/categorical/Set1.js.map +1 -0
  3686. package/dist/node_modules/d3-scale-chromatic/src/categorical/Set2.js +6 -0
  3687. package/dist/node_modules/d3-scale-chromatic/src/categorical/Set2.js.map +1 -0
  3688. package/dist/node_modules/d3-scale-chromatic/src/categorical/Set3.js +6 -0
  3689. package/dist/node_modules/d3-scale-chromatic/src/categorical/Set3.js.map +1 -0
  3690. package/dist/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js +6 -0
  3691. package/dist/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js.map +1 -0
  3692. package/dist/node_modules/d3-scale-chromatic/src/categorical/category10.js +6 -0
  3693. package/dist/node_modules/d3-scale-chromatic/src/categorical/category10.js.map +1 -0
  3694. package/dist/node_modules/d3-scale-chromatic/src/categorical/observable10.js +6 -0
  3695. package/dist/node_modules/d3-scale-chromatic/src/categorical/observable10.js.map +1 -0
  3696. package/dist/node_modules/d3-scale-chromatic/src/colors.js +8 -0
  3697. package/dist/node_modules/d3-scale-chromatic/src/colors.js.map +1 -0
  3698. package/dist/node_modules/d3-scale-chromatic/src/diverging/BrBG.js +19 -0
  3699. package/dist/node_modules/d3-scale-chromatic/src/diverging/BrBG.js.map +1 -0
  3700. package/dist/node_modules/d3-scale-chromatic/src/diverging/PRGn.js +19 -0
  3701. package/dist/node_modules/d3-scale-chromatic/src/diverging/PRGn.js.map +1 -0
  3702. package/dist/node_modules/d3-scale-chromatic/src/diverging/PiYG.js +19 -0
  3703. package/dist/node_modules/d3-scale-chromatic/src/diverging/PiYG.js.map +1 -0
  3704. package/dist/node_modules/d3-scale-chromatic/src/diverging/PuOr.js +19 -0
  3705. package/dist/node_modules/d3-scale-chromatic/src/diverging/PuOr.js.map +1 -0
  3706. package/dist/node_modules/d3-scale-chromatic/src/diverging/RdBu.js +19 -0
  3707. package/dist/node_modules/d3-scale-chromatic/src/diverging/RdBu.js.map +1 -0
  3708. package/dist/node_modules/d3-scale-chromatic/src/diverging/RdGy.js +19 -0
  3709. package/dist/node_modules/d3-scale-chromatic/src/diverging/RdGy.js.map +1 -0
  3710. package/dist/node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js +19 -0
  3711. package/dist/node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js.map +1 -0
  3712. package/dist/node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js +19 -0
  3713. package/dist/node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js.map +1 -0
  3714. package/dist/node_modules/d3-scale-chromatic/src/diverging/Spectral.js +19 -0
  3715. package/dist/node_modules/d3-scale-chromatic/src/diverging/Spectral.js.map +1 -0
  3716. package/dist/node_modules/d3-scale-chromatic/src/ramp.js +6 -0
  3717. package/dist/node_modules/d3-scale-chromatic/src/ramp.js.map +1 -0
  3718. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js +17 -0
  3719. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js.map +1 -0
  3720. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js +17 -0
  3721. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js.map +1 -0
  3722. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js +17 -0
  3723. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js.map +1 -0
  3724. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js +17 -0
  3725. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js.map +1 -0
  3726. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js +17 -0
  3727. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js.map +1 -0
  3728. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js +17 -0
  3729. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js.map +1 -0
  3730. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js +17 -0
  3731. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js.map +1 -0
  3732. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js +17 -0
  3733. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js.map +1 -0
  3734. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js +17 -0
  3735. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js.map +1 -0
  3736. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js +17 -0
  3737. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js.map +1 -0
  3738. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js +17 -0
  3739. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js.map +1 -0
  3740. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js +17 -0
  3741. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js.map +1 -0
  3742. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js +7 -0
  3743. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js.map +1 -0
  3744. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js +7 -0
  3745. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js.map +1 -0
  3746. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js +14 -0
  3747. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js.map +1 -0
  3748. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js +10 -0
  3749. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js.map +1 -0
  3750. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js +7 -0
  3751. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js.map +1 -0
  3752. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js +16 -0
  3753. package/dist/node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js.map +1 -0
  3754. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Blues.js +17 -0
  3755. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Blues.js.map +1 -0
  3756. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Greens.js +17 -0
  3757. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Greens.js.map +1 -0
  3758. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Greys.js +17 -0
  3759. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Greys.js.map +1 -0
  3760. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js +17 -0
  3761. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js.map +1 -0
  3762. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Purples.js +17 -0
  3763. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Purples.js.map +1 -0
  3764. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Reds.js +17 -0
  3765. package/dist/node_modules/d3-scale-chromatic/src/sequential-single/Reds.js.map +1 -0
  3766. package/dist/node_modules/d3-shape/src/arc.js +86 -0
  3767. package/dist/node_modules/d3-shape/src/arc.js.map +1 -0
  3768. package/dist/node_modules/d3-shape/src/area.js +57 -0
  3769. package/dist/node_modules/d3-shape/src/area.js.map +1 -0
  3770. package/dist/node_modules/d3-shape/src/areaRadial.js +21 -0
  3771. package/dist/node_modules/d3-shape/src/areaRadial.js.map +1 -0
  3772. package/dist/node_modules/d3-shape/src/array.js +7 -0
  3773. package/dist/node_modules/d3-shape/src/array.js.map +1 -0
  3774. package/dist/node_modules/d3-shape/src/constant.js +9 -0
  3775. package/dist/node_modules/d3-shape/src/constant.js.map +1 -0
  3776. package/dist/node_modules/d3-shape/src/curve/cardinal.js +65 -0
  3777. package/dist/node_modules/d3-shape/src/curve/cardinal.js.map +1 -0
  3778. package/dist/node_modules/d3-shape/src/curve/cardinalClosed.js +57 -0
  3779. package/dist/node_modules/d3-shape/src/curve/cardinalClosed.js.map +1 -0
  3780. package/dist/node_modules/d3-shape/src/curve/catmullRom.js +72 -0
  3781. package/dist/node_modules/d3-shape/src/curve/catmullRom.js.map +1 -0
  3782. package/dist/node_modules/d3-shape/src/curve/catmullRomClosed.js +62 -0
  3783. package/dist/node_modules/d3-shape/src/curve/catmullRomClosed.js.map +1 -0
  3784. package/dist/node_modules/d3-shape/src/curve/linear.js +37 -0
  3785. package/dist/node_modules/d3-shape/src/curve/linear.js.map +1 -0
  3786. package/dist/node_modules/d3-shape/src/curve/linearClosed.js +24 -0
  3787. package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +1 -0
  3788. package/dist/node_modules/d3-shape/src/curve/monotone.js +94 -0
  3789. package/dist/node_modules/d3-shape/src/curve/monotone.js.map +1 -0
  3790. package/dist/node_modules/d3-shape/src/curve/radial.js +33 -0
  3791. package/dist/node_modules/d3-shape/src/curve/radial.js.map +1 -0
  3792. package/dist/node_modules/d3-shape/src/curve/step.js +52 -0
  3793. package/dist/node_modules/d3-shape/src/curve/step.js.map +1 -0
  3794. package/dist/node_modules/d3-shape/src/line.js +30 -0
  3795. package/dist/node_modules/d3-shape/src/line.js.map +1 -0
  3796. package/dist/node_modules/d3-shape/src/lineRadial.js +16 -0
  3797. package/dist/node_modules/d3-shape/src/lineRadial.js.map +1 -0
  3798. package/dist/node_modules/d3-shape/src/math.js +23 -0
  3799. package/dist/node_modules/d3-shape/src/math.js.map +1 -0
  3800. package/dist/node_modules/d3-shape/src/noop.js +6 -0
  3801. package/dist/node_modules/d3-shape/src/noop.js.map +1 -0
  3802. package/dist/node_modules/d3-shape/src/path.js +19 -0
  3803. package/dist/node_modules/d3-shape/src/path.js.map +1 -0
  3804. package/dist/node_modules/d3-shape/src/point.js +11 -0
  3805. package/dist/node_modules/d3-shape/src/point.js.map +1 -0
  3806. package/dist/node_modules/d3-timer/src/timer.js +63 -0
  3807. package/dist/node_modules/d3-timer/src/timer.js.map +1 -0
  3808. package/dist/node_modules/eventemitter3/index.js +6 -0
  3809. package/dist/node_modules/eventemitter3/index.js.map +1 -0
  3810. package/dist/node_modules/eventemitter3/index2.js +112 -0
  3811. package/dist/node_modules/eventemitter3/index2.js.map +1 -0
  3812. package/dist/node_modules/fecha/lib/fecha.js +169 -0
  3813. package/dist/node_modules/fecha/lib/fecha.js.map +1 -0
  3814. package/dist/node_modules/flru/dist/flru.js +28 -0
  3815. package/dist/node_modules/flru/dist/flru.js.map +1 -0
  3816. package/dist/node_modules/gl-matrix/esm/common.js +7 -0
  3817. package/dist/node_modules/gl-matrix/esm/common.js.map +1 -0
  3818. package/dist/node_modules/gl-matrix/esm/mat3.js +48 -0
  3819. package/dist/node_modules/gl-matrix/esm/mat3.js.map +1 -0
  3820. package/dist/node_modules/gl-matrix/esm/mat4.js +259 -0
  3821. package/dist/node_modules/gl-matrix/esm/mat4.js.map +1 -0
  3822. package/dist/node_modules/gl-matrix/esm/quat.js +100 -0
  3823. package/dist/node_modules/gl-matrix/esm/quat.js.map +1 -0
  3824. package/dist/node_modules/gl-matrix/esm/vec2.js +39 -0
  3825. package/dist/node_modules/gl-matrix/esm/vec2.js.map +1 -0
  3826. package/dist/node_modules/gl-matrix/esm/vec3.js +113 -0
  3827. package/dist/node_modules/gl-matrix/esm/vec3.js.map +1 -0
  3828. package/dist/node_modules/gl-matrix/esm/vec4.js +41 -0
  3829. package/dist/node_modules/gl-matrix/esm/vec4.js.map +1 -0
  3830. package/dist/node_modules/html2canvas/dist/html2canvas.esm.js +4285 -0
  3831. package/dist/node_modules/html2canvas/dist/html2canvas.esm.js.map +1 -0
  3832. package/dist/node_modules/internmap/src/index.js +36 -0
  3833. package/dist/node_modules/internmap/src/index.js.map +1 -0
  3834. package/dist/node_modules/is-arrayish/index.js +10 -0
  3835. package/dist/node_modules/is-arrayish/index.js.map +1 -0
  3836. package/dist/node_modules/pdfast/src/helper.js +36 -0
  3837. package/dist/node_modules/pdfast/src/helper.js.map +1 -0
  3838. package/dist/node_modules/pdfast/src/index.js +86 -0
  3839. package/dist/node_modules/pdfast/src/index.js.map +1 -0
  3840. package/dist/node_modules/react-dom/cjs/react-dom-client.development.js +17062 -0
  3841. package/dist/node_modules/react-dom/cjs/react-dom-client.development.js.map +1 -0
  3842. package/dist/node_modules/react-dom/cjs/react-dom-client.production.js +9790 -0
  3843. package/dist/node_modules/react-dom/cjs/react-dom-client.production.js.map +1 -0
  3844. package/dist/node_modules/react-dom/client.js +24 -0
  3845. package/dist/node_modules/react-dom/client.js.map +1 -0
  3846. package/dist/node_modules/scheduler/cjs/scheduler.development.js +237 -0
  3847. package/dist/node_modules/scheduler/cjs/scheduler.development.js.map +1 -0
  3848. package/dist/node_modules/scheduler/cjs/scheduler.production.js +234 -0
  3849. package/dist/node_modules/scheduler/cjs/scheduler.production.js.map +1 -0
  3850. package/dist/node_modules/scheduler/index.js +11 -0
  3851. package/dist/node_modules/scheduler/index.js.map +1 -0
  3852. package/dist/node_modules/simple-swizzle/index.js +23 -0
  3853. package/dist/node_modules/simple-swizzle/index.js.map +1 -0
  3854. package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +696 -0
  3855. package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js.map +1 -0
  3856. package/dist/node_modules/styled-components/node_modules/stylis/src/Enum.js +14 -0
  3857. package/dist/node_modules/styled-components/node_modules/stylis/src/Enum.js.map +1 -0
  3858. package/dist/node_modules/styled-components/node_modules/stylis/src/Middleware.js +50 -0
  3859. package/dist/node_modules/styled-components/node_modules/stylis/src/Middleware.js.map +1 -0
  3860. package/dist/node_modules/styled-components/node_modules/stylis/src/Parser.js +137 -0
  3861. package/dist/node_modules/styled-components/node_modules/stylis/src/Parser.js.map +1 -0
  3862. package/dist/node_modules/styled-components/node_modules/stylis/src/Prefixer.js +190 -0
  3863. package/dist/node_modules/styled-components/node_modules/stylis/src/Prefixer.js.map +1 -0
  3864. package/dist/node_modules/styled-components/node_modules/stylis/src/Serializer.js +29 -0
  3865. package/dist/node_modules/styled-components/node_modules/stylis/src/Serializer.js.map +1 -0
  3866. package/dist/node_modules/styled-components/node_modules/stylis/src/Tokenizer.js +148 -0
  3867. package/dist/node_modules/styled-components/node_modules/stylis/src/Tokenizer.js.map +1 -0
  3868. package/dist/node_modules/styled-components/node_modules/stylis/src/Utility.js +57 -0
  3869. package/dist/node_modules/styled-components/node_modules/stylis/src/Utility.js.map +1 -0
  3870. package/dist/node_modules/tslib/tslib.es6.js +88 -0
  3871. package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
  3872. package/dist/styles/global.css +1 -1
  3873. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../node_modules/@antv/g-lite/dist/index.esm.js"],"sourcesContent":["/*!\n * @antv/g-lite\n * @description A core module for rendering engine implements DOM API.\n * @version 2.7.0\n * @date 12/24/2025, 11:55:20 AM\n * @author AntVis\n * @docs https://g.antv.antgroup.com/\n */\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _callSuper from '@babel/runtime/helpers/callSuper';\nimport _inherits from '@babel/runtime/helpers/inherits';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport EventEmitter from 'eventemitter3';\nimport { vec3, vec4, mat4, mat3, quat as quat$1, vec2 } from 'gl-matrix';\nimport '@babel/runtime/helpers/readOnlyError';\nimport { isNumber, distanceSquareRoot, isString, isNil, clamp, getTotalLength, min, max, isNumberEqual, mod, normalizePath, path2Curve, equalizeSegments, getDrawDirection, reverseCurve, clonePath, getRotatedCurve, isUndefined, isArray, isBoolean, isFunction, isObject, getPointAtLength } from '@antv/util';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _superPropGet from '@babel/runtime/helpers/superPropGet';\nimport _arrayLikeToArray from '@babel/runtime/helpers/arrayLikeToArray';\nimport { polylineLength, arcBox, cubicBox, quadBox, linePointAt, lineLength } from '@antv/g-math';\nimport _regeneratorRuntime from '@babel/runtime/helpers/regeneratorRuntime';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport _createForOfIteratorHelper from '@babel/runtime/helpers/createForOfIteratorHelper';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\n\n/// <reference types=\"webxr\" />\n\nvar Shape = /*#__PURE__*/function (Shape) {\n Shape[\"GROUP\"] = \"g\";\n Shape[\"FRAGMENT\"] = \"fragment\";\n Shape[\"CIRCLE\"] = \"circle\";\n Shape[\"ELLIPSE\"] = \"ellipse\";\n Shape[\"IMAGE\"] = \"image\";\n Shape[\"RECT\"] = \"rect\";\n Shape[\"LINE\"] = \"line\";\n Shape[\"POLYLINE\"] = \"polyline\";\n Shape[\"POLYGON\"] = \"polygon\";\n Shape[\"TEXT\"] = \"text\";\n Shape[\"PATH\"] = \"path\";\n Shape[\"HTML\"] = \"html\";\n Shape[\"MESH\"] = \"mesh\";\n return Shape;\n}({});\n\n// prettier-ignore\n\n// prettier-ignore\n\n// Cursor style\n// See: https://developer.mozilla.org/en-US/docs/Web/CSS/cursor\n\nvar ClipSpaceNearZ = /*#__PURE__*/function (ClipSpaceNearZ) {\n ClipSpaceNearZ[ClipSpaceNearZ[\"ZERO\"] = 0] = \"ZERO\";\n ClipSpaceNearZ[ClipSpaceNearZ[\"NEGATIVE_ONE\"] = 1] = \"NEGATIVE_ONE\";\n return ClipSpaceNearZ;\n}({});\n\n/**\n * eg. NodeCanvas, OffscreenCanvas, HTMLCanvasElement\n */\n\n/**\n * The format to use when defining custom easing functions\n */\n\n// @see https://github.com/zhanba/pailye/blob/master/packages/flex/src/types.ts\n\nvar AbstractRendererPlugin = /*#__PURE__*/function () {\n function AbstractRendererPlugin() {\n _classCallCheck(this, AbstractRendererPlugin);\n this.plugins = [];\n }\n return _createClass(AbstractRendererPlugin, [{\n key: \"addRenderingPlugin\",\n value: function addRenderingPlugin(plugin) {\n this.plugins.push(plugin);\n this.context.renderingPlugins.push(plugin);\n }\n }, {\n key: \"removeAllRenderingPlugins\",\n value: function removeAllRenderingPlugins() {\n var _this = this;\n this.plugins.forEach(function (plugin) {\n var index = _this.context.renderingPlugins.indexOf(plugin);\n if (index >= 0) {\n _this.context.renderingPlugins.splice(index, 1);\n }\n });\n }\n }]);\n}();\nvar AbstractRenderer = /*#__PURE__*/function () {\n function AbstractRenderer(config) {\n _classCallCheck(this, AbstractRenderer);\n this.clipSpaceNearZ = ClipSpaceNearZ.NEGATIVE_ONE;\n this.plugins = [];\n this.config = _objectSpread({\n /**\n * only dirty object will cause re-render\n */\n enableDirtyCheck: true,\n enableCulling: false,\n /**\n * enable auto rendering by default\n */\n enableAutoRendering: true,\n /**\n * enable dirty rectangle rendering by default\n */\n enableDirtyRectangleRendering: true,\n enableDirtyRectangleRenderingDebug: false,\n enableSizeAttenuation: true,\n enableRenderingOptimization: false\n }, config);\n }\n return _createClass(AbstractRenderer, [{\n key: \"registerPlugin\",\n value: function registerPlugin(plugin) {\n var index = this.plugins.findIndex(function (p) {\n return p === plugin;\n });\n if (index === -1) {\n this.plugins.push(plugin);\n }\n }\n }, {\n key: \"unregisterPlugin\",\n value: function unregisterPlugin(plugin) {\n var index = this.plugins.findIndex(function (p) {\n return p === plugin;\n });\n if (index > -1) {\n this.plugins.splice(index, 1);\n }\n }\n }, {\n key: \"getPlugins\",\n value: function getPlugins() {\n return this.plugins;\n }\n }, {\n key: \"getPlugin\",\n value: function getPlugin(name) {\n return this.plugins.find(function (plugin) {\n return plugin.name === name;\n });\n }\n }, {\n key: \"getConfig\",\n value: function getConfig() {\n return this.config;\n }\n }, {\n key: \"setConfig\",\n value: function setConfig(config) {\n Object.assign(this.config, config);\n }\n }]);\n}();\n\nvar addVec3 = vec3.add,\n copyVec3 = vec3.copy,\n maxVec3 = vec3.max,\n minVec3 = vec3.min,\n scaleVec3 = vec3.scale,\n subVec3 = vec3.sub;\n\n/**\n * Axis-Aligned Bounding Box\n * 为了便于后续 Frustum Culling,通过查找表定义 p-vertex 和 n-vertex\n * @see https://github.com/antvis/GWebGPUEngine/issues/3\n */\nvar AABB = /*#__PURE__*/function () {\n function AABB() {\n _classCallCheck(this, AABB);\n this.center = [0, 0, 0];\n this.halfExtents = [0, 0, 0];\n this.min = [0, 0, 0];\n this.max = [0, 0, 0];\n }\n return _createClass(AABB, [{\n key: \"update\",\n value: function update(center, halfExtents) {\n copyVec3(this.center, center);\n copyVec3(this.halfExtents, halfExtents);\n subVec3(this.min, this.center, this.halfExtents);\n addVec3(this.max, this.center, this.halfExtents);\n }\n }, {\n key: \"setMinMax\",\n value: function setMinMax(min, max) {\n addVec3(this.center, max, min);\n scaleVec3(this.center, this.center, 0.5);\n subVec3(this.halfExtents, max, min);\n scaleVec3(this.halfExtents, this.halfExtents, 0.5);\n copyVec3(this.min, min);\n copyVec3(this.max, max);\n }\n }, {\n key: \"getMin\",\n value: function getMin() {\n return this.min;\n }\n }, {\n key: \"getMax\",\n value: function getMax() {\n return this.max;\n }\n }, {\n key: \"add\",\n value: function add(aabb) {\n if (AABB.isEmpty(aabb)) {\n return;\n }\n if (AABB.isEmpty(this)) {\n this.setMinMax(aabb.getMin(), aabb.getMax());\n return;\n }\n var tc = this.center;\n var tcx = tc[0];\n var tcy = tc[1];\n var tcz = tc[2];\n var th = this.halfExtents;\n var thx = th[0];\n var thy = th[1];\n var thz = th[2];\n var tminx = tcx - thx;\n var tmaxx = tcx + thx;\n var tminy = tcy - thy;\n var tmaxy = tcy + thy;\n var tminz = tcz - thz;\n var tmaxz = tcz + thz;\n var oc = aabb.center;\n var ocx = oc[0];\n var ocy = oc[1];\n var ocz = oc[2];\n var oh = aabb.halfExtents;\n var ohx = oh[0];\n var ohy = oh[1];\n var ohz = oh[2];\n var ominx = ocx - ohx;\n var omaxx = ocx + ohx;\n var ominy = ocy - ohy;\n var omaxy = ocy + ohy;\n var ominz = ocz - ohz;\n var omaxz = ocz + ohz;\n if (ominx < tminx) {\n tminx = ominx;\n }\n if (omaxx > tmaxx) {\n tmaxx = omaxx;\n }\n if (ominy < tminy) {\n tminy = ominy;\n }\n if (omaxy > tmaxy) {\n tmaxy = omaxy;\n }\n if (ominz < tminz) {\n tminz = ominz;\n }\n if (omaxz > tmaxz) {\n tmaxz = omaxz;\n }\n tc[0] = (tminx + tmaxx) * 0.5;\n tc[1] = (tminy + tmaxy) * 0.5;\n tc[2] = (tminz + tmaxz) * 0.5;\n th[0] = (tmaxx - tminx) * 0.5;\n th[1] = (tmaxy - tminy) * 0.5;\n th[2] = (tmaxz - tminz) * 0.5;\n this.min[0] = tminx;\n this.min[1] = tminy;\n this.min[2] = tminz;\n this.max[0] = tmaxx;\n this.max[1] = tmaxy;\n this.max[2] = tmaxz;\n }\n }, {\n key: \"setFromTransformedAABB\",\n value: function setFromTransformedAABB(aabb, m) {\n var bc = this.center;\n var br = this.halfExtents;\n var ac = aabb.center;\n var ar = aabb.halfExtents;\n var mx0 = m[0];\n var mx1 = m[4];\n var mx2 = m[8];\n var my0 = m[1];\n var my1 = m[5];\n var my2 = m[9];\n var mz0 = m[2];\n var mz1 = m[6];\n var mz2 = m[10];\n var mx0a = Math.abs(mx0);\n var mx1a = Math.abs(mx1);\n var mx2a = Math.abs(mx2);\n var my0a = Math.abs(my0);\n var my1a = Math.abs(my1);\n var my2a = Math.abs(my2);\n var mz0a = Math.abs(mz0);\n var mz1a = Math.abs(mz1);\n var mz2a = Math.abs(mz2);\n bc[0] = m[12] + mx0 * ac[0] + mx1 * ac[1] + mx2 * ac[2];\n bc[1] = m[13] + my0 * ac[0] + my1 * ac[1] + my2 * ac[2];\n bc[2] = m[14] + mz0 * ac[0] + mz1 * ac[1] + mz2 * ac[2];\n\n // vec3.set(\n // bc,\n // m[12] + mx0 * ac[0] + mx1 * ac[1] + mx2 * ac[2],\n // m[13] + my0 * ac[0] + my1 * ac[1] + my2 * ac[2],\n // m[14] + mz0 * ac[0] + mz1 * ac[1] + mz2 * ac[2],\n // );\n\n br[0] = mx0a * ar[0] + mx1a * ar[1] + mx2a * ar[2];\n br[1] = my0a * ar[0] + my1a * ar[1] + my2a * ar[2];\n br[2] = mz0a * ar[0] + mz1a * ar[1] + mz2a * ar[2];\n\n // vec3.set(\n // br,\n // mx0a * ar[0] + mx1a * ar[1] + mx2a * ar[2],\n // my0a * ar[0] + my1a * ar[1] + my2a * ar[2],\n // mz0a * ar[0] + mz1a * ar[1] + mz2a * ar[2],\n // );\n\n // this.min = vec3.sub(this.min, bc, br);\n // this.max = vec3.add(this.max, bc, br);\n\n subVec3(this.min, bc, br);\n addVec3(this.max, bc, br);\n }\n }, {\n key: \"intersects\",\n value: function intersects(aabb) {\n var aMax = this.getMax();\n var aMin = this.getMin();\n var bMax = aabb.getMax();\n var bMin = aabb.getMin();\n return aMin[0] <= bMax[0] && aMax[0] >= bMin[0] && aMin[1] <= bMax[1] && aMax[1] >= bMin[1] && aMin[2] <= bMax[2] && aMax[2] >= bMin[2];\n }\n }, {\n key: \"intersection\",\n value: function intersection(aabb) {\n if (!this.intersects(aabb)) {\n return null;\n }\n var intersection = new AABB();\n var min = maxVec3([0, 0, 0], this.getMin(), aabb.getMin());\n var max = minVec3([0, 0, 0], this.getMax(), aabb.getMax());\n intersection.setMinMax(min, max);\n return intersection;\n }\n\n /**\n * get n-vertex\n * @param plane plane of CullingVolume\n */\n }, {\n key: \"getNegativeFarPoint\",\n value: function getNegativeFarPoint(plane) {\n if (plane.pnVertexFlag === 0x111) {\n return copyVec3([0, 0, 0], this.min);\n // return vec3.copy(vec3.create(), this.min);\n }\n if (plane.pnVertexFlag === 0x110) {\n return [this.min[0], this.min[1], this.max[2]];\n // return vec3.fromValues(this.min[0], this.min[1], this.max[2]);\n }\n if (plane.pnVertexFlag === 0x101) {\n return [this.min[0], this.max[1], this.min[2]];\n // return vec3.fromValues(this.min[0], this.max[1], this.min[2]);\n }\n if (plane.pnVertexFlag === 0x100) {\n return [this.min[0], this.max[1], this.max[2]];\n // return vec3.fromValues(this.min[0], this.max[1], this.max[2]);\n }\n if (plane.pnVertexFlag === 0x011) {\n return [this.max[0], this.min[1], this.min[2]];\n // return vec3.fromValues(this.max[0], this.min[1], this.min[2]);\n }\n if (plane.pnVertexFlag === 0x010) {\n return [this.max[0], this.min[1], this.max[2]];\n // return vec3.fromValues(this.max[0], this.min[1], this.max[2]);\n }\n if (plane.pnVertexFlag === 0x001) {\n return [this.max[0], this.max[1], this.min[2]];\n // return vec3.fromValues(this.max[0], this.max[1], this.min[2]);\n }\n return [this.max[0], this.max[1], this.max[2]];\n // return vec3.fromValues(this.max[0], this.max[1], this.max[2]);\n }\n\n /**\n * get p-vertex\n * @param plane plane of CullingVolume\n */\n }, {\n key: \"getPositiveFarPoint\",\n value: function getPositiveFarPoint(plane) {\n if (plane.pnVertexFlag === 0x111) {\n return copyVec3([0, 0, 0], this.max);\n // return vec3.copy(vec3.create(), this.max);\n }\n if (plane.pnVertexFlag === 0x110) {\n return [this.max[0], this.max[1], this.min[2]];\n // return vec3.fromValues(this.max[0], this.max[1], this.min[2]);\n }\n if (plane.pnVertexFlag === 0x101) {\n return [this.max[0], this.min[1], this.max[2]];\n // return vec3.fromValues(this.max[0], this.min[1], this.max[2]);\n }\n if (plane.pnVertexFlag === 0x100) {\n return [this.max[0], this.min[1], this.min[2]];\n // return vec3.fromValues(this.max[0], this.min[1], this.min[2]);\n }\n if (plane.pnVertexFlag === 0x011) {\n return [this.min[0], this.max[1], this.max[2]];\n // return vec3.fromValues(this.min[0], this.max[1], this.max[2]);\n }\n if (plane.pnVertexFlag === 0x010) {\n return [this.min[0], this.max[1], this.min[2]];\n // return vec3.fromValues(this.min[0], this.max[1], this.min[2]);\n }\n if (plane.pnVertexFlag === 0x001) {\n return [this.min[0], this.min[1], this.max[2]];\n // return vec3.fromValues(this.min[0], this.min[1], this.max[2]);\n }\n return [this.min[0], this.min[1], this.min[2]];\n // return vec3.fromValues(this.min[0], this.min[1], this.min[2]);\n }\n }], [{\n key: \"isEmpty\",\n value: function isEmpty(aabb) {\n return !aabb || aabb.halfExtents[0] === 0 && aabb.halfExtents[1] === 0 && aabb.halfExtents[2] === 0;\n }\n }]);\n}();\n\nvar Plane = /*#__PURE__*/function () {\n /**\n * lookup table for p-vertex & n-vertex when doing frustum culling\n */\n\n function Plane(distance, normal) {\n _classCallCheck(this, Plane);\n this.distance = distance || 0;\n this.normal = normal || vec3.fromValues(0, 1, 0);\n this.updatePNVertexFlag();\n }\n return _createClass(Plane, [{\n key: \"updatePNVertexFlag\",\n value: function updatePNVertexFlag() {\n this.pnVertexFlag = (Number(this.normal[0] >= 0) << 8) + (Number(this.normal[1] >= 0) << 4) + Number(this.normal[2] >= 0);\n }\n }, {\n key: \"distanceToPoint\",\n value: function distanceToPoint(point) {\n return vec3.dot(point, this.normal) - this.distance;\n }\n }, {\n key: \"normalize\",\n value: function normalize() {\n var invLen = 1 / vec3.len(this.normal);\n vec3.scale(this.normal, this.normal, invLen);\n this.distance *= invLen;\n }\n }, {\n key: \"intersectsLine\",\n value: function intersectsLine(start, end, point) {\n var d0 = this.distanceToPoint(start);\n var d1 = this.distanceToPoint(end);\n var t = d0 / (d0 - d1);\n var intersects = t >= 0 && t <= 1;\n if (intersects && point) {\n vec3.lerp(point, start, end, t);\n }\n return intersects;\n }\n }]);\n}();\n\nvar Mask = /*#__PURE__*/function (Mask) {\n Mask[Mask[\"OUTSIDE\"] = 4294967295] = \"OUTSIDE\";\n Mask[Mask[\"INSIDE\"] = 0] = \"INSIDE\";\n Mask[Mask[\"INDETERMINATE\"] = 2147483647] = \"INDETERMINATE\";\n return Mask;\n}({});\nvar Frustum = /*#__PURE__*/function () {\n function Frustum(planes) {\n _classCallCheck(this, Frustum);\n this.planes = [];\n if (planes) {\n this.planes = planes;\n } else {\n for (var i = 0; i < 6; i++) {\n this.planes.push(new Plane());\n }\n }\n }\n\n /**\n * extract 6 planes from projectionMatrix\n * @see http://www8.cs.umu.se/kurser/5DV051/HT12/lab/plane_extraction.pdf\n */\n return _createClass(Frustum, [{\n key: \"extractFromVPMatrix\",\n value: function extractFromVPMatrix(projectionMatrix) {\n // @ts-ignore\n var _projectionMatrix = _slicedToArray(projectionMatrix, 16),\n m0 = _projectionMatrix[0],\n m1 = _projectionMatrix[1],\n m2 = _projectionMatrix[2],\n m3 = _projectionMatrix[3],\n m4 = _projectionMatrix[4],\n m5 = _projectionMatrix[5],\n m6 = _projectionMatrix[6],\n m7 = _projectionMatrix[7],\n m8 = _projectionMatrix[8],\n m9 = _projectionMatrix[9],\n m10 = _projectionMatrix[10],\n m11 = _projectionMatrix[11],\n m12 = _projectionMatrix[12],\n m13 = _projectionMatrix[13],\n m14 = _projectionMatrix[14],\n m15 = _projectionMatrix[15];\n\n // right\n vec3.set(this.planes[0].normal, m3 - m0, m7 - m4, m11 - m8);\n this.planes[0].distance = m15 - m12;\n\n // left\n vec3.set(this.planes[1].normal, m3 + m0, m7 + m4, m11 + m8);\n this.planes[1].distance = m15 + m12;\n\n // bottom\n vec3.set(this.planes[2].normal, m3 + m1, m7 + m5, m11 + m9);\n this.planes[2].distance = m15 + m13;\n\n // top\n vec3.set(this.planes[3].normal, m3 - m1, m7 - m5, m11 - m9);\n this.planes[3].distance = m15 - m13;\n\n // far\n vec3.set(this.planes[4].normal, m3 - m2, m7 - m6, m11 - m10);\n this.planes[4].distance = m15 - m14;\n\n // near\n vec3.set(this.planes[5].normal, m3 + m2, m7 + m6, m11 + m10);\n this.planes[5].distance = m15 + m14;\n this.planes.forEach(function (plane) {\n plane.normalize();\n plane.updatePNVertexFlag();\n });\n }\n }]);\n}();\n\nvar Point = /*#__PURE__*/function () {\n function Point() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n _classCallCheck(this, Point);\n this.x = 0;\n this.y = 0;\n this.x = x;\n this.y = y;\n }\n return _createClass(Point, [{\n key: \"clone\",\n value: function clone() {\n return new Point(this.x, this.y);\n }\n }, {\n key: \"copyFrom\",\n value: function copyFrom(p) {\n this.x = p.x;\n this.y = p.y;\n }\n }]);\n}();\n\nvar Rectangle = /*#__PURE__*/function () {\n function Rectangle(x, y, width, height) {\n _classCallCheck(this, Rectangle);\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.left = x;\n this.right = x + width;\n this.top = y;\n this.bottom = y + height;\n }\n return _createClass(Rectangle, [{\n key: \"toJSON\",\n value: function toJSON() {}\n }], [{\n key: \"fromRect\",\n value:\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMRect/fromRect_static\n */\n function fromRect(rect) {\n return new Rectangle(rect.x, rect.y, rect.width, rect.height);\n }\n\n /**\n * will return a new rect instance\n */\n }, {\n key: \"applyTransform\",\n value: function applyTransform(rect, matrix) {\n var topLeft = vec4.fromValues(rect.x, rect.y, 0, 1);\n var topRight = vec4.fromValues(rect.x + rect.width, rect.y, 0, 1);\n var bottomLeft = vec4.fromValues(rect.x, rect.y + rect.height, 0, 1);\n var bottomRight = vec4.fromValues(rect.x + rect.width, rect.y + rect.height, 0, 1);\n var transformedTopLeft = vec4.create();\n var transformedTopRight = vec4.create();\n var transformedBottomLeft = vec4.create();\n var transformedBottomRight = vec4.create();\n vec4.transformMat4(transformedTopLeft, topLeft, matrix);\n vec4.transformMat4(transformedTopRight, topRight, matrix);\n vec4.transformMat4(transformedBottomLeft, bottomLeft, matrix);\n vec4.transformMat4(transformedBottomRight, bottomRight, matrix);\n var minX = Math.min(transformedTopLeft[0], transformedTopRight[0], transformedBottomLeft[0], transformedBottomRight[0]);\n var minY = Math.min(transformedTopLeft[1], transformedTopRight[1], transformedBottomLeft[1], transformedBottomRight[1]);\n var maxX = Math.max(transformedTopLeft[0], transformedTopRight[0], transformedBottomLeft[0], transformedBottomRight[0]);\n var maxY = Math.max(transformedTopLeft[1], transformedTopRight[1], transformedBottomLeft[1], transformedBottomRight[1]);\n return Rectangle.fromRect({\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n });\n }\n }]);\n}();\n\nvar ERROR_MSG_METHOD_NOT_IMPLEMENTED = 'Method not implemented.';\nvar ERROR_MSG_USE_DOCUMENT_ELEMENT = 'Use document.documentElement instead.';\nvar ERROR_MSG_APPEND_DESTROYED_ELEMENT = 'Cannot append a destroyed element.';\n\nfunction getAngle(angle) {\n if (angle === undefined) {\n return 0;\n }\n if (angle > 360 || angle < -360) {\n return angle % 360;\n }\n return angle;\n}\nvar $vec3$3 = vec3.create();\nfunction createVec3(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var clone = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n if (Array.isArray(x) && x.length === 3) {\n return clone ? vec3.clone(x) : vec3.copy($vec3$3, x);\n }\n if (isNumber(x)) {\n return clone ? vec3.fromValues(x, y, z) : vec3.set($vec3$3, x, y, z);\n }\n return clone ? vec3.fromValues(x[0], x[1] || y, x[2] || z) : vec3.set($vec3$3, x[0], x[1] || y, x[2] || z);\n}\nvar DEG_RAD = Math.PI / 180;\nfunction deg2rad(deg) {\n return deg * DEG_RAD;\n}\nvar RAD_DEG = 180 / Math.PI;\nfunction rad2deg(rad) {\n return rad * RAD_DEG;\n}\nvar GRAD_DEG = 0.9; // 360 / 400;\nfunction grad2deg(grads) {\n grads %= 400;\n if (grads < 0) {\n grads += 400;\n }\n return grads * GRAD_DEG;\n}\nfunction deg2turn(deg) {\n return deg / 360;\n}\nfunction turn2deg(turn) {\n return 360 * turn;\n}\nvar HALF_PI = Math.PI / 2;\nfunction getEulerFromQuat(out, quat) {\n var x = quat[0];\n var y = quat[1];\n var z = quat[2];\n var w = quat[3];\n var x2 = x * x;\n var y2 = y * y;\n var z2 = z * z;\n var w2 = w * w;\n var unit = x2 + y2 + z2 + w2;\n var test = x * w - y * z;\n if (test > 0.499995 * unit) {\n // TODO: Use glmatrix.EPSILON\n // singularity at the north pole\n out[0] = HALF_PI;\n out[1] = 2 * Math.atan2(y, x);\n out[2] = 0;\n } else if (test < -0.499995 * unit) {\n // TODO: Use glmatrix.EPSILON\n // singularity at the south pole\n out[0] = -HALF_PI;\n out[1] = 2 * Math.atan2(y, x);\n out[2] = 0;\n } else {\n out[0] = Math.asin(2 * (x * z - w * y));\n out[1] = Math.atan2(2 * (x * w + y * z), 1 - 2 * (z2 + w2));\n out[2] = Math.atan2(2 * (x * y + z * w), 1 - 2 * (y2 + z2));\n }\n // TODO: Return them as degrees and not as radians\n return out;\n}\nfunction getEulerFromMat4(out, m) {\n var x;\n var z;\n var _mat4$getScaling = mat4.getScaling(vec3.create(), m),\n _mat4$getScaling2 = _slicedToArray(_mat4$getScaling, 3),\n sx = _mat4$getScaling2[0],\n sy = _mat4$getScaling2[1],\n sz = _mat4$getScaling2[2];\n var y = Math.asin(-m[2] / sx);\n if (y < HALF_PI) {\n if (y > -HALF_PI) {\n x = Math.atan2(m[6] / sy, m[10] / sz);\n z = Math.atan2(m[1] / sx, m[0] / sx);\n } else {\n // Not a unique solution\n z = 0;\n x = -Math.atan2(m[4] / sy, m[5] / sy);\n }\n } else {\n // Not a unique solution\n z = 0;\n x = Math.atan2(m[4] / sy, m[5] / sy);\n }\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n\n/**\n * @see https://github.com/toji/gl-matrix/issues/329\n * @see https://doc.babylonjs.com/divingDeeper/mesh/transforms/center_origin/rotation_conventions\n */\nfunction getEuler(out, quat) {\n if (quat.length === 16) {\n return getEulerFromMat4(out, quat);\n }\n return getEulerFromQuat(out, quat);\n}\nfunction fromRotationTranslationScale(rotation, x, y, scaleX, scaleY) {\n var cos = Math.cos(rotation);\n var sin = Math.sin(rotation);\n return mat3.fromValues(scaleX * cos, scaleY * sin, 0, -scaleX * sin, scaleY * cos, 0, x, y, 1);\n}\nfunction makePerspective(out, left, right, top, bottom, near, far) {\n var zero = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;\n var twoNear = 2 * near;\n var rightMinusLeft = right - left;\n var topMinusBottom = top - bottom;\n var x = twoNear / rightMinusLeft;\n var y = twoNear / topMinusBottom;\n var a = (right + left) / rightMinusLeft;\n var b = (top + bottom) / topMinusBottom;\n var c;\n var d;\n var farMinusNear = far - near;\n var farMulNear = far * near;\n if (zero) {\n c = -far / farMinusNear;\n d = -farMulNear / farMinusNear;\n } else {\n c = -(far + near) / farMinusNear;\n d = -2 * farMulNear / farMinusNear;\n }\n out[0] = x;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = y;\n out[6] = 0;\n out[7] = 0;\n out[8] = a;\n out[9] = b;\n out[10] = c;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = d;\n out[15] = 0;\n return out;\n}\nfunction decompose(mat) {\n var row0x = mat[0];\n var row0y = mat[1];\n var row1x = mat[3];\n var row1y = mat[4];\n // decompose 3x3 matrix\n // @see https://www.w3.org/TR/css-transforms-1/#decomposing-a-2d-matrix\n var scalingX = Math.sqrt(row0x * row0x + row0y * row0y);\n var scalingY = Math.sqrt(row1x * row1x + row1y * row1y);\n\n // If determinant is negative, one axis was flipped.\n var determinant = row0x * row1y - row0y * row1x;\n if (determinant < 0) {\n // Flip axis with minimum unit vector dot product.\n if (row0x < row1y) {\n scalingX = -scalingX;\n } else {\n scalingY = -scalingY;\n }\n }\n\n // Renormalize matrix to remove scale.\n if (scalingX) {\n var invScalingX = 1 / scalingX;\n row0x *= invScalingX;\n row0y *= invScalingX;\n }\n if (scalingY) {\n var invScalingY = 1 / scalingY;\n row1x *= invScalingY;\n row1y *= invScalingY;\n }\n\n // Compute rotation and renormalize matrix.\n var rotation = Math.atan2(row0y, row0x);\n var angle = rad2deg(rotation);\n return [mat[6], mat[7], scalingX, scalingY, angle];\n}\nvar tmp = mat4.create();\nvar perspectiveMatrix = mat4.create();\nvar tmpVec4 = vec4.create();\nvar row = [vec3.create(), vec3.create(), vec3.create()];\nvar pdum3 = vec3.create();\n\n/*\nInput: matrix ; a 4x4 matrix\nOutput: translation ; a 3 component vector\n scale ; a 3 component vector\n skew ; skew factors XY,XZ,YZ represented as a 3 component vector\n perspective ; a 4 component vector\n quaternion ; a 4 component vector\nReturns false if the matrix cannot be decomposed, true if it can\n\n\nReferences:\nhttps://github.com/kamicane/matrix3d/blob/master/lib/Matrix3d.js\nhttps://github.com/ChromiumWebApps/chromium/blob/master/ui/gfx/transform_util.cc\nhttp://www.w3.org/TR/css3-transforms/#decomposing-a-3d-matrix\n*/\nfunction decomposeMat4(matrix, translation, scale, skew, perspective, quaternion) {\n // normalize, if not possible then bail out early\n if (!normalize(tmp, matrix)) return false;\n\n // perspectiveMatrix is used to solve for perspective, but it also provides\n // an easy way to test for singularity of the upper 3x3 component.\n mat4.copy(perspectiveMatrix, tmp);\n perspectiveMatrix[3] = 0;\n perspectiveMatrix[7] = 0;\n perspectiveMatrix[11] = 0;\n perspectiveMatrix[15] = 1;\n\n // If the perspectiveMatrix is not invertible, we are also unable to\n // decompose, so we'll bail early. Constant taken from SkMatrix44::invert.\n if (Math.abs(mat4.determinant(perspectiveMatrix)) < 1e-8) return false;\n var a03 = tmp[3];\n var a13 = tmp[7];\n var a23 = tmp[11];\n var a30 = tmp[12];\n var a31 = tmp[13];\n var a32 = tmp[14];\n var a33 = tmp[15];\n\n // First, isolate perspective.\n if (a03 !== 0 || a13 !== 0 || a23 !== 0) {\n tmpVec4[0] = a03;\n tmpVec4[1] = a13;\n tmpVec4[2] = a23;\n tmpVec4[3] = a33;\n\n // Solve the equation by inverting perspectiveMatrix and multiplying\n // rightHandSide by the inverse.\n // resuing the perspectiveMatrix here since it's no longer needed\n var ret = mat4.invert(perspectiveMatrix, perspectiveMatrix);\n if (!ret) return false;\n mat4.transpose(perspectiveMatrix, perspectiveMatrix);\n\n // multiply by transposed inverse perspective matrix, into perspective vec4\n vec4.transformMat4(perspective, tmpVec4, perspectiveMatrix);\n } else {\n // no perspective\n perspective[0] = perspective[1] = perspective[2] = 0;\n perspective[3] = 1;\n }\n\n // Next take care of translation\n translation[0] = a30;\n translation[1] = a31;\n translation[2] = a32;\n\n // Now get scale and shear. 'row' is a 3 element array of 3 component vectors\n mat3from4(row, tmp);\n\n // Compute X scale factor and normalize first row.\n scale[0] = vec3.length(row[0]);\n vec3.normalize(row[0], row[0]);\n\n // Compute XY shear factor and make 2nd row orthogonal to 1st.\n skew[0] = vec3.dot(row[0], row[1]);\n combine(row[1], row[1], row[0], 1.0, -skew[0]);\n\n // Now, compute Y scale and normalize 2nd row.\n scale[1] = vec3.length(row[1]);\n vec3.normalize(row[1], row[1]);\n skew[0] /= scale[1];\n\n // Compute XZ and YZ shears, orthogonalize 3rd row\n skew[1] = vec3.dot(row[0], row[2]);\n combine(row[2], row[2], row[0], 1.0, -skew[1]);\n skew[2] = vec3.dot(row[1], row[2]);\n combine(row[2], row[2], row[1], 1.0, -skew[2]);\n\n // Next, get Z scale and normalize 3rd row.\n scale[2] = vec3.length(row[2]);\n vec3.normalize(row[2], row[2]);\n skew[1] /= scale[2];\n skew[2] /= scale[2];\n\n // At this point, the matrix (in rows) is orthonormal.\n // Check for a coordinate system flip. If the determinant\n // is -1, then negate the matrix and the scaling factors.\n vec3.cross(pdum3, row[1], row[2]);\n if (vec3.dot(row[0], pdum3) < 0) {\n for (var i = 0; i < 3; i++) {\n scale[i] *= -1;\n row[i][0] *= -1;\n row[i][1] *= -1;\n row[i][2] *= -1;\n }\n }\n\n // Now, get the rotations out\n quaternion[0] = 0.5 * Math.sqrt(Math.max(1 + row[0][0] - row[1][1] - row[2][2], 0));\n quaternion[1] = 0.5 * Math.sqrt(Math.max(1 - row[0][0] + row[1][1] - row[2][2], 0));\n quaternion[2] = 0.5 * Math.sqrt(Math.max(1 - row[0][0] - row[1][1] + row[2][2], 0));\n quaternion[3] = 0.5 * Math.sqrt(Math.max(1 + row[0][0] + row[1][1] + row[2][2], 0));\n if (row[2][1] > row[1][2]) quaternion[0] = -quaternion[0];\n if (row[0][2] > row[2][0]) quaternion[1] = -quaternion[1];\n if (row[1][0] > row[0][1]) quaternion[2] = -quaternion[2];\n return true;\n}\nfunction normalize(out, mat) {\n var m44 = mat[15];\n // Cannot normalize.\n if (m44 === 0) return false;\n var scale = 1 / m44;\n for (var i = 0; i < 16; i++) out[i] = mat[i] * scale;\n return true;\n}\n\n// gets upper-left of a 4x4 matrix into a 3x3 of vectors\nfunction mat3from4(out, mat4x4) {\n out[0][0] = mat4x4[0];\n out[0][1] = mat4x4[1];\n out[0][2] = mat4x4[2];\n out[1][0] = mat4x4[4];\n out[1][1] = mat4x4[5];\n out[1][2] = mat4x4[6];\n out[2][0] = mat4x4[8];\n out[2][1] = mat4x4[9];\n out[2][2] = mat4x4[10];\n}\nfunction combine(out, a, b, scale1, scale2) {\n out[0] = a[0] * scale1 + b[0] * scale2;\n out[1] = a[1] * scale1 + b[1] * scale2;\n out[2] = a[2] * scale1 + b[2] * scale2;\n}\n\n/**\n * Different type of cameras, eg. simple camera used in 2D scene or\n * advanced camera which can do actions & switch between landmarks.\n */\n\nvar CameraType = /*#__PURE__*/function (CameraType) {\n /**\n * Performs all the rotational operations with the focal point instead of the camera position.\n * This type of camera is useful in applications(like CAD) where 3D objects are being designed or explored.\n * Camera cannot orbits over the north & south poles.\n * @see http://voxelent.com/tutorial-cameras/\n *\n * In Three.js it's used in OrbitControls.\n * @see https://threejs.org/docs/#examples/zh/controls/OrbitControls\n */\n CameraType[CameraType[\"ORBITING\"] = 0] = \"ORBITING\";\n /**\n * It's similar to the ORBITING camera, but it allows the camera to orbit over the north or south poles.\n *\n * In Three.js it's used in OrbitControls.\n * @see https://threejs.org/docs/#examples/en/controls/TrackballControls\n */\n CameraType[CameraType[\"EXPLORING\"] = 1] = \"EXPLORING\";\n /**\n * Performs all the rotational operations with the camera position.\n * It's useful in first person shooting games.\n * Camera cannot orbits over the north & south poles.\n *\n * In Three.js it's used in FirstPersonControls.\n * @see https://threejs.org/docs/#examples/en/controls/FirstPersonControls\n */\n CameraType[CameraType[\"TRACKING\"] = 2] = \"TRACKING\";\n return CameraType;\n}({});\n\n/**\n * CameraType must be TRACKING\n */\nvar CameraTrackingMode = /*#__PURE__*/function (CameraTrackingMode) {\n CameraTrackingMode[CameraTrackingMode[\"DEFAULT\"] = 0] = \"DEFAULT\";\n CameraTrackingMode[CameraTrackingMode[\"ROTATIONAL\"] = 1] = \"ROTATIONAL\";\n CameraTrackingMode[CameraTrackingMode[\"TRANSLATIONAL\"] = 2] = \"TRANSLATIONAL\";\n CameraTrackingMode[CameraTrackingMode[\"CINEMATIC\"] = 3] = \"CINEMATIC\";\n return CameraTrackingMode;\n}({});\nvar CameraProjectionMode = /*#__PURE__*/function (CameraProjectionMode) {\n CameraProjectionMode[CameraProjectionMode[\"ORTHOGRAPHIC\"] = 0] = \"ORTHOGRAPHIC\";\n CameraProjectionMode[CameraProjectionMode[\"PERSPECTIVE\"] = 1] = \"PERSPECTIVE\";\n return CameraProjectionMode;\n}({});\nvar CameraEvent = {\n UPDATED: 'updated'\n};\n\nvar MIN_DISTANCE = 0.0002;\n\n/**\n * 参考「WebGL Insights - 23.Designing Cameras for WebGL Applications」,基于 Responsible Camera 思路设计\n * @see https://github.com/d13g0/nucleo.js/blob/master/source/camera/Camera.js\n *\n * 保存相机参数,定义相机动作:\n * 1. dolly 沿 n 轴移动\n * 2. pan 沿 u v 轴移动\n * 3. rotate 以方位角旋转\n * 4. 移动到 Landmark,具有平滑的动画效果,其间禁止其他用户交互\n */\n\nvar Camera = /*#__PURE__*/function () {\n function Camera() {\n _classCallCheck(this, Camera);\n /**\n * Clip space near Z, default to range `[-1, 1]`\n */\n this.clipSpaceNearZ = ClipSpaceNearZ.NEGATIVE_ONE;\n this.eventEmitter = new EventEmitter();\n /**\n * Matrix of camera\n */\n this.matrix = mat4.create();\n /**\n * u axis +X is right\n * @see http://learnwebgl.brown37.net/07_cameras/camera_introduction.html#a-camera-definition\n */\n this.right = vec3.fromValues(1, 0, 0);\n /**\n * v axis +Y is up\n */\n this.up = vec3.fromValues(0, 1, 0);\n /**\n * n axis +Z is inside\n */\n this.forward = vec3.fromValues(0, 0, 1);\n /**\n * Position of camera.\n */\n this.position = vec3.fromValues(0, 0, 1);\n /**\n * Position of focal point.\n */\n this.focalPoint = vec3.fromValues(0, 0, 0);\n /**\n * vector from focalPoint to position\n */\n this.distanceVector = vec3.fromValues(0, 0, -1);\n /**\n * length(focalPoint - position)\n */\n this.distance = 1;\n /**\n * @see https://en.wikipedia.org/wiki/Azimuth\n */\n this.azimuth = 0;\n this.elevation = 0;\n this.roll = 0;\n this.relAzimuth = 0;\n this.relElevation = 0;\n this.relRoll = 0;\n /**\n * 沿 n 轴移动时,保证移动速度从快到慢\n */\n this.dollyingStep = 0;\n this.maxDistance = Infinity;\n this.minDistance = -Infinity;\n /**\n * zoom factor of the camera, default is 1\n * eg. https://threejs.org/docs/#api/en/cameras/OrthographicCamera.zoom\n */\n this.zoom = 1;\n /**\n * invert the horizontal coordinate system HCS\n */\n this.rotateWorld = false;\n /**\n * 投影矩阵参数\n */\n /**\n * field of view [0-360]\n * @see http://en.wikipedia.org/wiki/Angle_of_view\n */\n this.fov = 30;\n this.near = 0.1;\n this.far = 1000;\n this.aspect = 1;\n this.projectionMatrix = mat4.create();\n this.projectionMatrixInverse = mat4.create();\n this.jitteredProjectionMatrix = undefined;\n this.enableUpdate = true;\n // protected following = undefined;\n this.type = CameraType.EXPLORING;\n this.trackingMode = CameraTrackingMode.DEFAULT;\n this.projectionMode = CameraProjectionMode.PERSPECTIVE;\n /**\n * for culling use\n */\n this.frustum = new Frustum();\n /**\n * ortho matrix for Canvas2D & SVG\n */\n this.orthoMatrix = mat4.create();\n }\n return _createClass(Camera, [{\n key: \"isOrtho\",\n value:\n // constructor(type = CameraType.EXPLORING, trackingMode = CameraTrackingMode.DEFAULT) {\n // this.setType(type, trackingMode);\n // }\n\n function isOrtho() {\n return this.projectionMode === CameraProjectionMode.ORTHOGRAPHIC;\n }\n }, {\n key: \"getProjectionMode\",\n value: function getProjectionMode() {\n return this.projectionMode;\n }\n }, {\n key: \"getPerspective\",\n value: function getPerspective() {\n // account for TAA\n return this.jitteredProjectionMatrix || this.projectionMatrix;\n }\n }, {\n key: \"getPerspectiveInverse\",\n value: function getPerspectiveInverse() {\n return this.projectionMatrixInverse;\n }\n }, {\n key: \"getFrustum\",\n value: function getFrustum() {\n return this.frustum;\n }\n }, {\n key: \"getPosition\",\n value: function getPosition() {\n return this.position;\n }\n }, {\n key: \"getFocalPoint\",\n value: function getFocalPoint() {\n return this.focalPoint;\n }\n }, {\n key: \"getDollyingStep\",\n value: function getDollyingStep() {\n return this.dollyingStep;\n }\n }, {\n key: \"getNear\",\n value: function getNear() {\n return this.near;\n }\n }, {\n key: \"getFar\",\n value: function getFar() {\n return this.far;\n }\n }, {\n key: \"getZoom\",\n value: function getZoom() {\n return this.zoom;\n }\n }, {\n key: \"getOrthoMatrix\",\n value: function getOrthoMatrix() {\n return this.orthoMatrix;\n }\n }, {\n key: \"getView\",\n value: function getView() {\n return this.view;\n }\n }, {\n key: \"setEnableUpdate\",\n value: function setEnableUpdate(enabled) {\n this.enableUpdate = enabled;\n }\n }, {\n key: \"setType\",\n value: function setType(type, trackingMode) {\n this.type = type;\n if (this.type === CameraType.EXPLORING) {\n this.setWorldRotation(true);\n } else {\n this.setWorldRotation(false);\n }\n this._getAngles();\n if (this.type === CameraType.TRACKING && trackingMode !== undefined) {\n this.setTrackingMode(trackingMode);\n }\n return this;\n }\n }, {\n key: \"setProjectionMode\",\n value: function setProjectionMode(projectionMode) {\n this.projectionMode = projectionMode;\n return this;\n }\n }, {\n key: \"setTrackingMode\",\n value: function setTrackingMode(trackingMode) {\n if (this.type !== CameraType.TRACKING) {\n throw new Error('Impossible to set a tracking mode if the camera is not of tracking type');\n }\n this.trackingMode = trackingMode;\n return this;\n }\n\n /**\n * If flag is true, it reverses the azimuth and elevation angles.\n * Subsequent calls to rotate, setAzimuth, setElevation,\n * changeAzimuth or changeElevation will cause the inverted effect.\n * setRoll or changeRoll is not affected by this method.\n *\n * This inversion is useful when one wants to simulate that the world\n * is moving, instead of the camera.\n *\n * By default the camera angles are not reversed.\n * @param {Boolean} flag the boolean flag to reverse the angles.\n */\n }, {\n key: \"setWorldRotation\",\n value: function setWorldRotation(flag) {\n this.rotateWorld = flag;\n this._getAngles();\n return this;\n }\n\n /**\n * 计算 MV 矩阵,为相机矩阵的逆矩阵\n */\n }, {\n key: \"getViewTransform\",\n value: function getViewTransform() {\n // mat4.scale(this.matrix, this.matrix, vec3.fromValues(1, -1, 1));\n\n return mat4.invert(mat4.create(), this.matrix);\n }\n }, {\n key: \"getWorldTransform\",\n value: function getWorldTransform() {\n return this.matrix;\n }\n }, {\n key: \"jitterProjectionMatrix\",\n value: function jitterProjectionMatrix(x, y) {\n var translation = mat4.fromTranslation(mat4.create(), [x, y, 0]);\n this.jitteredProjectionMatrix = mat4.multiply(mat4.create(), translation, this.projectionMatrix);\n }\n }, {\n key: \"clearJitterProjectionMatrix\",\n value: function clearJitterProjectionMatrix() {\n this.jitteredProjectionMatrix = undefined;\n }\n\n /**\n * 设置相机矩阵\n */\n }, {\n key: \"setMatrix\",\n value: function setMatrix(matrix) {\n this.matrix = matrix;\n this._update();\n return this;\n }\n\n /**\n * Set projection matrix manually.\n */\n }, {\n key: \"setProjectionMatrix\",\n value: function setProjectionMatrix(matrix) {\n this.projectionMatrix = matrix;\n }\n }, {\n key: \"setFov\",\n value: function setFov(fov) {\n this.setPerspective(this.near, this.far, fov, this.aspect);\n return this;\n }\n }, {\n key: \"setAspect\",\n value: function setAspect(aspect) {\n this.setPerspective(this.near, this.far, this.fov, aspect);\n return this;\n }\n }, {\n key: \"setNear\",\n value: function setNear(near) {\n if (this.projectionMode === CameraProjectionMode.PERSPECTIVE) {\n this.setPerspective(near, this.far, this.fov, this.aspect);\n } else {\n this.setOrthographic(this.left, this.rright, this.top, this.bottom, near, this.far);\n }\n return this;\n }\n }, {\n key: \"setFar\",\n value: function setFar(far) {\n if (this.projectionMode === CameraProjectionMode.PERSPECTIVE) {\n this.setPerspective(this.near, far, this.fov, this.aspect);\n } else {\n this.setOrthographic(this.left, this.rright, this.top, this.bottom, this.near, far);\n }\n return this;\n }\n\n /**\n * Sets an offset in a larger frustum, used in PixelPicking\n */\n }, {\n key: \"setViewOffset\",\n value: function setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n this.aspect = fullWidth / fullHeight;\n if (this.view === undefined) {\n this.view = {\n enabled: true,\n fullWidth: 1,\n fullHeight: 1,\n offsetX: 0,\n offsetY: 0,\n width: 1,\n height: 1\n };\n }\n this.view.enabled = true;\n this.view.fullWidth = fullWidth;\n this.view.fullHeight = fullHeight;\n this.view.offsetX = x;\n this.view.offsetY = y;\n this.view.width = width;\n this.view.height = height;\n if (this.projectionMode === CameraProjectionMode.PERSPECTIVE) {\n this.setPerspective(this.near, this.far, this.fov, this.aspect);\n } else {\n this.setOrthographic(this.left, this.rright, this.top, this.bottom, this.near, this.far);\n }\n return this;\n }\n }, {\n key: \"clearViewOffset\",\n value: function clearViewOffset() {\n if (this.view !== undefined) {\n this.view.enabled = false;\n }\n if (this.projectionMode === CameraProjectionMode.PERSPECTIVE) {\n this.setPerspective(this.near, this.far, this.fov, this.aspect);\n } else {\n this.setOrthographic(this.left, this.rright, this.top, this.bottom, this.near, this.far);\n }\n return this;\n }\n }, {\n key: \"setZoom\",\n value: function setZoom(zoom) {\n this.zoom = zoom;\n if (this.projectionMode === CameraProjectionMode.ORTHOGRAPHIC) {\n this.setOrthographic(this.left, this.rright, this.top, this.bottom, this.near, this.far);\n } else if (this.projectionMode === CameraProjectionMode.PERSPECTIVE) {\n this.setPerspective(this.near, this.far, this.fov, this.aspect);\n }\n return this;\n }\n\n /**\n * Zoom by specified point in viewport coordinates.\n */\n }, {\n key: \"setZoomByViewportPoint\",\n value: function setZoomByViewportPoint(zoom, viewportPoint) {\n var _this$canvas$viewport = this.canvas.viewport2Canvas({\n x: viewportPoint[0],\n y: viewportPoint[1]\n }),\n ox = _this$canvas$viewport.x,\n oy = _this$canvas$viewport.y;\n var roll = this.roll;\n this.rotate(0, 0, -roll);\n this.setPosition(ox, oy);\n this.setFocalPoint(ox, oy);\n this.setZoom(zoom);\n this.rotate(0, 0, roll);\n var _this$canvas$viewport2 = this.canvas.viewport2Canvas({\n x: viewportPoint[0],\n y: viewportPoint[1]\n }),\n cx = _this$canvas$viewport2.x,\n cy = _this$canvas$viewport2.y;\n\n // project to rotated axis\n var dvec = vec3.fromValues(cx - ox, cy - oy, 0);\n var dx = vec3.dot(dvec, this.right) / vec3.length(this.right);\n var dy = vec3.dot(dvec, this.up) / vec3.length(this.up);\n var _this$getPosition = this.getPosition(),\n _this$getPosition2 = _slicedToArray(_this$getPosition, 2),\n px = _this$getPosition2[0],\n py = _this$getPosition2[1];\n var _this$getFocalPoint = this.getFocalPoint(),\n _this$getFocalPoint2 = _slicedToArray(_this$getFocalPoint, 2),\n fx = _this$getFocalPoint2[0],\n fy = _this$getFocalPoint2[1];\n this.setPosition(px - dx, py - dy);\n this.setFocalPoint(fx - dx, fy - dy);\n return this;\n }\n }, {\n key: \"setPerspective\",\n value: function setPerspective(near, far, fov, aspect) {\n var _this$view;\n this.projectionMode = CameraProjectionMode.PERSPECTIVE;\n this.fov = fov;\n this.near = near;\n this.far = far;\n this.aspect = aspect;\n var top = this.near * Math.tan(deg2rad(0.5 * this.fov)) / this.zoom;\n var height = 2 * top;\n var width = this.aspect * height;\n var left = -0.5 * width;\n if ((_this$view = this.view) !== null && _this$view !== void 0 && _this$view.enabled) {\n var fullWidth = this.view.fullWidth;\n var fullHeight = this.view.fullHeight;\n left += this.view.offsetX * width / fullWidth;\n top -= this.view.offsetY * height / fullHeight;\n width *= this.view.width / fullWidth;\n height *= this.view.height / fullHeight;\n }\n makePerspective(this.projectionMatrix, left, left + width, top - height, top, near, this.far, this.clipSpaceNearZ === ClipSpaceNearZ.ZERO);\n mat4.invert(this.projectionMatrixInverse, this.projectionMatrix);\n this.triggerUpdate();\n return this;\n }\n }, {\n key: \"setOrthographic\",\n value: function setOrthographic(l, r, t, b, near, far) {\n var _this$view2;\n this.projectionMode = CameraProjectionMode.ORTHOGRAPHIC;\n this.rright = r;\n this.left = l;\n this.top = t;\n this.bottom = b;\n this.near = near;\n this.far = far;\n var dx = (this.rright - this.left) / (2 * this.zoom);\n var dy = (this.top - this.bottom) / (2 * this.zoom);\n var cx = (this.rright + this.left) / 2;\n var cy = (this.top + this.bottom) / 2;\n var left = cx - dx;\n var right = cx + dx;\n var top = cy + dy;\n var bottom = cy - dy;\n if ((_this$view2 = this.view) !== null && _this$view2 !== void 0 && _this$view2.enabled) {\n var scaleW = (this.rright - this.left) / this.view.fullWidth / this.zoom;\n var scaleH = (this.top - this.bottom) / this.view.fullHeight / this.zoom;\n left += scaleW * this.view.offsetX;\n right = left + scaleW * this.view.width;\n top -= scaleH * this.view.offsetY;\n bottom = top - scaleH * this.view.height;\n }\n if (this.clipSpaceNearZ === ClipSpaceNearZ.NEGATIVE_ONE) {\n // FlipY with switching bottom & top.\n // @see https://stackoverflow.com/a/4886656\n mat4.ortho(this.projectionMatrix, left, right, top, bottom, near, far);\n } else {\n mat4.orthoZO(this.projectionMatrix, left, right, top, bottom, near, far);\n }\n mat4.invert(this.projectionMatrixInverse, this.projectionMatrix);\n this._getOrthoMatrix();\n this.triggerUpdate();\n return this;\n }\n\n /**\n * Move the camera in world coordinates.\n * It will keep looking at the current focal point.\n *\n * support scalars or vectors.\n * @example\n * setPosition(1, 2, 3);\n * setPosition([1, 2, 3]);\n */\n }, {\n key: \"setPosition\",\n value: function setPosition(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.position[1];\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.position[2];\n var position = createVec3(x, y, z);\n this._setPosition(position);\n this.setFocalPoint(this.focalPoint);\n this.triggerUpdate();\n return this;\n }\n\n /**\n * Sets the focal point of this camera in world coordinates.\n *\n * support scalars or vectors.\n * @example\n * setFocalPoint(1, 2, 3);\n * setFocalPoint([1, 2, 3]);\n */\n }, {\n key: \"setFocalPoint\",\n value: function setFocalPoint(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.focalPoint[1];\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.focalPoint[2];\n var up = vec3.fromValues(0, 1, 0);\n this.focalPoint = createVec3(x, y, z);\n if (this.trackingMode === CameraTrackingMode.CINEMATIC) {\n var d = vec3.subtract(vec3.create(), this.focalPoint, this.position);\n x = d[0];\n y = d[1];\n z = d[2];\n var r = vec3.length(d);\n var el = rad2deg(Math.asin(y / r));\n var az = 90 + rad2deg(Math.atan2(z, x));\n var m = mat4.create();\n mat4.rotateY(m, m, deg2rad(az));\n mat4.rotateX(m, m, deg2rad(el));\n up = vec3.transformMat4(vec3.create(), [0, 1, 0], m);\n }\n mat4.invert(this.matrix, mat4.lookAt(mat4.create(), this.position, this.focalPoint, up));\n this._getAxes();\n this._getDistance();\n this._getAngles();\n this.triggerUpdate();\n return this;\n }\n }, {\n key: \"getDistance\",\n value: function getDistance() {\n return this.distance;\n }\n }, {\n key: \"getDistanceVector\",\n value: function getDistanceVector() {\n return this.distanceVector;\n }\n\n /**\n * Moves the camera towards/from the focal point.\n */\n }, {\n key: \"setDistance\",\n value: function setDistance(d) {\n if (this.distance === d || d < 0) {\n return this;\n }\n this.distance = d;\n if (this.distance < MIN_DISTANCE) {\n this.distance = MIN_DISTANCE;\n }\n this.dollyingStep = this.distance / 100;\n var pos = vec3.create();\n d = this.distance;\n var n = this.forward;\n var f = this.focalPoint;\n pos[0] = d * n[0] + f[0];\n pos[1] = d * n[1] + f[1];\n pos[2] = d * n[2] + f[2];\n this._setPosition(pos);\n this.triggerUpdate();\n return this;\n }\n }, {\n key: \"setMaxDistance\",\n value: function setMaxDistance(d) {\n this.maxDistance = d;\n return this;\n }\n }, {\n key: \"setMinDistance\",\n value: function setMinDistance(d) {\n this.minDistance = d;\n return this;\n }\n\n /**\n * 设置相机方位角,不同相机模式下需要重新计算相机位置或者是视点位置\n * the azimuth in degrees\n */\n }, {\n key: \"setAzimuth\",\n value: function setAzimuth(az) {\n this.azimuth = getAngle(az);\n this.computeMatrix();\n this._getAxes();\n if (this.type === CameraType.ORBITING || this.type === CameraType.EXPLORING) {\n this._getPosition();\n } else if (this.type === CameraType.TRACKING) {\n this._getFocalPoint();\n }\n this.triggerUpdate();\n return this;\n }\n }, {\n key: \"getAzimuth\",\n value: function getAzimuth() {\n return this.azimuth;\n }\n\n /**\n * 设置相机方位角,不同相机模式下需要重新计算相机位置或者是视点位置\n */\n }, {\n key: \"setElevation\",\n value: function setElevation(el) {\n this.elevation = getAngle(el);\n this.computeMatrix();\n this._getAxes();\n if (this.type === CameraType.ORBITING || this.type === CameraType.EXPLORING) {\n this._getPosition();\n } else if (this.type === CameraType.TRACKING) {\n this._getFocalPoint();\n }\n this.triggerUpdate();\n return this;\n }\n }, {\n key: \"getElevation\",\n value: function getElevation() {\n return this.elevation;\n }\n\n /**\n * 设置相机方位角,不同相机模式下需要重新计算相机位置或者是视点位置\n */\n }, {\n key: \"setRoll\",\n value: function setRoll(angle) {\n this.roll = getAngle(angle);\n this.computeMatrix();\n this._getAxes();\n if (this.type === CameraType.ORBITING || this.type === CameraType.EXPLORING) {\n this._getPosition();\n } else if (this.type === CameraType.TRACKING) {\n this._getFocalPoint();\n }\n this.triggerUpdate();\n return this;\n }\n }, {\n key: \"getRoll\",\n value: function getRoll() {\n return this.roll;\n }\n\n /**\n * 根据相机矩阵重新计算各种相机参数\n */\n }, {\n key: \"_update\",\n value: function _update() {\n this._getAxes();\n this._getPosition();\n this._getDistance();\n this._getAngles();\n this._getOrthoMatrix();\n this.triggerUpdate();\n }\n\n /**\n * 计算相机矩阵\n */\n }, {\n key: \"computeMatrix\",\n value: function computeMatrix() {\n // 使用四元数描述 3D 旋转\n // @see https://xiaoiver.github.io/coding/2018/12/28/Camera-%E8%AE%BE%E8%AE%A1-%E4%B8%80.html\n var rotZ = quat$1.setAxisAngle(quat$1.create(), [0, 0, 1], deg2rad(this.roll));\n mat4.identity(this.matrix);\n\n // only consider HCS for EXPLORING and ORBITING cameras\n var rotX = quat$1.setAxisAngle(quat$1.create(), [1, 0, 0], deg2rad((this.rotateWorld && this.type !== CameraType.TRACKING || this.type === CameraType.TRACKING ? 1 : -1) * this.elevation));\n var rotY = quat$1.setAxisAngle(quat$1.create(), [0, 1, 0], deg2rad((this.rotateWorld && this.type !== CameraType.TRACKING || this.type === CameraType.TRACKING ? 1 : -1) * this.azimuth));\n var rotQ = quat$1.multiply(quat$1.create(), rotY, rotX);\n rotQ = quat$1.multiply(quat$1.create(), rotQ, rotZ);\n var rotMatrix = mat4.fromQuat(mat4.create(), rotQ);\n if (this.type === CameraType.ORBITING || this.type === CameraType.EXPLORING) {\n mat4.translate(this.matrix, this.matrix, this.focalPoint);\n mat4.multiply(this.matrix, this.matrix, rotMatrix);\n mat4.translate(this.matrix, this.matrix, [0, 0, this.distance]);\n } else if (this.type === CameraType.TRACKING) {\n mat4.translate(this.matrix, this.matrix, this.position);\n mat4.multiply(this.matrix, this.matrix, rotMatrix);\n }\n }\n\n /**\n * Sets the camera position in the camera matrix\n */\n }, {\n key: \"_setPosition\",\n value: function _setPosition(x, y, z) {\n this.position = createVec3(x, y, z);\n var m = this.matrix;\n m[12] = this.position[0];\n m[13] = this.position[1];\n m[14] = this.position[2];\n m[15] = 1;\n this._getOrthoMatrix();\n }\n\n /**\n * Recalculates axes based on the current matrix\n */\n }, {\n key: \"_getAxes\",\n value: function _getAxes() {\n vec3.copy(this.right, createVec3(vec4.transformMat4(vec4.create(), [1, 0, 0, 0], this.matrix)));\n vec3.copy(this.up, createVec3(vec4.transformMat4(vec4.create(), [0, 1, 0, 0], this.matrix)));\n vec3.copy(this.forward, createVec3(vec4.transformMat4(vec4.create(), [0, 0, 1, 0], this.matrix)));\n vec3.normalize(this.right, this.right);\n vec3.normalize(this.up, this.up);\n vec3.normalize(this.forward, this.forward);\n }\n\n /**\n * Recalculates euler angles based on the current state\n */\n }, {\n key: \"_getAngles\",\n value: function _getAngles() {\n // Recalculates angles\n var x = this.distanceVector[0];\n var y = this.distanceVector[1];\n var z = this.distanceVector[2];\n var r = vec3.length(this.distanceVector);\n\n // FAST FAIL: If there is no distance we cannot compute angles\n if (r === 0) {\n this.elevation = 0;\n this.azimuth = 0;\n return;\n }\n if (this.type === CameraType.TRACKING) {\n this.elevation = rad2deg(Math.asin(y / r));\n this.azimuth = rad2deg(Math.atan2(-x, -z));\n } else if (this.rotateWorld) {\n this.elevation = rad2deg(Math.asin(y / r));\n this.azimuth = rad2deg(Math.atan2(-x, -z));\n } else {\n this.elevation = -rad2deg(Math.asin(y / r));\n this.azimuth = -rad2deg(Math.atan2(-x, -z));\n }\n }\n\n /**\n * 重新计算相机位置,只有 ORBITING 模式相机位置才会发生变化\n */\n }, {\n key: \"_getPosition\",\n value: function _getPosition() {\n vec3.copy(this.position, createVec3(vec4.transformMat4(vec4.create(), [0, 0, 0, 1], this.matrix)));\n\n // 相机位置变化,需要重新计算视距\n this._getDistance();\n }\n\n /**\n * 重新计算视点,只有 TRACKING 模式视点才会发生变化\n */\n }, {\n key: \"_getFocalPoint\",\n value: function _getFocalPoint() {\n vec3.transformMat3(this.distanceVector, [0, 0, -this.distance], mat3.fromMat4(mat3.create(), this.matrix));\n vec3.add(this.focalPoint, this.position, this.distanceVector);\n\n // 视点变化,需要重新计算视距\n this._getDistance();\n }\n\n /**\n * 重新计算视距\n */\n }, {\n key: \"_getDistance\",\n value: function _getDistance() {\n this.distanceVector = vec3.subtract(vec3.create(), this.focalPoint, this.position);\n this.distance = vec3.length(this.distanceVector);\n this.dollyingStep = this.distance / 100;\n }\n }, {\n key: \"_getOrthoMatrix\",\n value: function _getOrthoMatrix() {\n if (this.projectionMode !== CameraProjectionMode.ORTHOGRAPHIC) {\n return;\n }\n var position = this.position;\n var rotZ = quat$1.setAxisAngle(quat$1.create(), [0, 0, 1], -this.roll * Math.PI / 180);\n mat4.fromRotationTranslationScaleOrigin(this.orthoMatrix, rotZ, vec3.fromValues((this.rright - this.left) / 2 - position[0], (this.top - this.bottom) / 2 - position[1], 0), vec3.fromValues(this.zoom, this.zoom, 1), position);\n }\n }, {\n key: \"triggerUpdate\",\n value: function triggerUpdate() {\n if (this.enableUpdate) {\n // update frustum\n var viewMatrix = this.getViewTransform();\n var vpMatrix = mat4.multiply(mat4.create(), this.getPerspective(), viewMatrix);\n this.getFrustum().extractFromVPMatrix(vpMatrix);\n this.eventEmitter.emit(CameraEvent.UPDATED);\n }\n }\n }, {\n key: \"rotate\",\n value: function rotate(azimuth, elevation, roll) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"pan\",\n value: function pan(tx, ty) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"dolly\",\n value: function dolly(value) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"createLandmark\",\n value: function createLandmark(name, params) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"gotoLandmark\",\n value: function gotoLandmark(name, options) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"cancelLandmarkAnimation\",\n value: function cancelLandmarkAnimation() {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }]);\n}();\n\n/**\n * @see https://doc.babylonjs.com/how_to/optimizing_your_scene#changing-mesh-culling-strategy\n */\nvar Strategy = /*#__PURE__*/function (Strategy) {\n Strategy[Strategy[\"Standard\"] = 0] = \"Standard\";\n return Strategy;\n}({});\n\nvar SortReason = /*#__PURE__*/function (SortReason) {\n SortReason[SortReason[\"ADDED\"] = 0] = \"ADDED\";\n SortReason[SortReason[\"REMOVED\"] = 1] = \"REMOVED\";\n SortReason[SortReason[\"Z_INDEX_CHANGED\"] = 2] = \"Z_INDEX_CHANGED\";\n return SortReason;\n}({});\n\n/**\n * do RTS transformation for 2D/3D\n */\n\n/** shared objects */\nvar $vec3$2 = vec3.create();\n/** shared objects */\nvar $mat4$1 = mat4.create();\n/** shared objects */\nvar $quat$2 = quat$1.create();\nfunction updateLocalTransform(transform) {\n if (!transform.localDirtyFlag) {\n return;\n }\n var hasSkew = transform.localSkew[0] !== 0 || transform.localSkew[1] !== 0;\n if (hasSkew) {\n mat4.fromRotationTranslationScaleOrigin(transform.localTransform, transform.localRotation, transform.localPosition, vec3.fromValues(1, 1, 1), transform.origin);\n\n // apply skew2D\n if (transform.localSkew[0] !== 0 || transform.localSkew[1] !== 0) {\n mat4.identity($mat4$1);\n $mat4$1[4] = Math.tan(transform.localSkew[0]);\n $mat4$1[1] = Math.tan(transform.localSkew[1]);\n mat4.multiply(transform.localTransform, transform.localTransform, $mat4$1);\n }\n var scaling = mat4.fromRotationTranslationScaleOrigin($mat4$1, quat$1.set($quat$2, 0, 0, 0, 1), vec3.set($vec3$2, 1, 1, 1), transform.localScale, transform.origin);\n mat4.multiply(transform.localTransform, transform.localTransform, scaling);\n } else {\n var localTransform = transform.localTransform,\n localPosition = transform.localPosition,\n localRotation = transform.localRotation,\n localScale = transform.localScale,\n origin = transform.origin;\n var hasPosition = localPosition[0] !== 0 || localPosition[1] !== 0 || localPosition[2] !== 0;\n var hasRotation = localRotation[3] !== 1 || localRotation[0] !== 0 || localRotation[1] !== 0 || localRotation[2] !== 0;\n var hasScale = localScale[0] !== 1 || localScale[1] !== 1 || localScale[2] !== 1;\n var hasOrigin = origin[0] !== 0 || origin[1] !== 0 || origin[2] !== 0;\n if (!hasRotation && !hasScale && !hasOrigin) {\n if (hasPosition) {\n mat4.fromTranslation(localTransform, localPosition);\n } else {\n mat4.identity(localTransform);\n }\n } else {\n // @see https://github.com/mattdesl/css-mat4/blob/master/index.js\n mat4.fromRotationTranslationScaleOrigin(localTransform, localRotation, localPosition, localScale, origin);\n }\n }\n transform.localDirtyFlag = false;\n}\nfunction updateWorldTransform(transform, parentTransform) {\n if (!transform.dirtyFlag) {\n return;\n }\n if (!parentTransform) {\n mat4.copy(transform.worldTransform, transform.localTransform);\n } else {\n // TODO: should we support scale compensation?\n // @see https://github.com/playcanvas/engine/issues/1077#issuecomment-359765557\n mat4.multiply(transform.worldTransform, parentTransform.worldTransform, transform.localTransform);\n }\n transform.dirtyFlag = false;\n}\n\nvar EMPTY_PARSED_PATH = {\n absolutePath: [],\n hasArc: false,\n segments: [],\n polygons: [],\n polylines: [],\n curve: null,\n totalLength: 0,\n rect: new Rectangle(0, 0, 0, 0)\n};\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Content_type\n */\nvar PropertySyntax = /*#__PURE__*/function (PropertySyntax) {\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Content_type#coordinate\n */\n PropertySyntax[\"COORDINATE\"] = \"<coordinate>\";\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Content_type#color\n */\n PropertySyntax[\"COLOR\"] = \"<color>\";\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Content_type#paint\n */\n PropertySyntax[\"PAINT\"] = \"<paint>\";\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Content_type#number\n */\n PropertySyntax[\"NUMBER\"] = \"<number>\";\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/angle\n */\n PropertySyntax[\"ANGLE\"] = \"<angle>\";\n /**\n * <number> with range 0..1\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Content_type#opacity_value\n */\n PropertySyntax[\"OPACITY_VALUE\"] = \"<opacity-value>\";\n /**\n * <number> with range 0..Infinity\n */\n PropertySyntax[\"SHADOW_BLUR\"] = \"<shadow-blur>\";\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Content_type#length\n */\n PropertySyntax[\"LENGTH\"] = \"<length>\";\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Content_type#percentage\n */\n PropertySyntax[\"PERCENTAGE\"] = \"<percentage>\";\n PropertySyntax[\"LENGTH_PERCENTAGE\"] = \"<length> | <percentage>\";\n PropertySyntax[\"LENGTH_PERCENTAGE_12\"] = \"[<length> | <percentage>]{1,2}\";\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/margin#formal_syntax\n */\n PropertySyntax[\"LENGTH_PERCENTAGE_14\"] = \"[<length> | <percentage>]{1,4}\";\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Content_type#list-of-ts\n */\n PropertySyntax[\"LIST_OF_POINTS\"] = \"<list-of-points>\";\n PropertySyntax[\"PATH\"] = \"<path>\";\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/filter#formal_syntax\n */\n PropertySyntax[\"FILTER\"] = \"<filter>\";\n PropertySyntax[\"Z_INDEX\"] = \"<z-index>\";\n PropertySyntax[\"OFFSET_DISTANCE\"] = \"<offset-distance>\";\n PropertySyntax[\"DEFINED_PATH\"] = \"<defined-path>\";\n PropertySyntax[\"MARKER\"] = \"<marker>\";\n PropertySyntax[\"TRANSFORM\"] = \"<transform>\";\n PropertySyntax[\"TRANSFORM_ORIGIN\"] = \"<transform-origin>\";\n PropertySyntax[\"TEXT\"] = \"<text>\";\n PropertySyntax[\"TEXT_TRANSFORM\"] = \"<text-transform>\";\n return PropertySyntax;\n}({});\n\nfunction define(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nfunction color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nfunction hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\nfunction memoize(func, resolver) {\n if (typeof func !== 'function' || resolver != null && typeof resolver !== 'function') {\n throw new TypeError('Expected a function');\n }\n var _memoized = function memoized() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var key = resolver ? resolver.apply(this, args) : args[0];\n var cache = _memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n _memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n _memoized.cache = new (memoize.Cache || Map)();\n memoize.cacheList.push(_memoized.cache);\n return _memoized;\n}\nmemoize.Cache = Map;\nmemoize.cacheList = [];\nmemoize.clearCache = function () {\n memoize.cacheList.forEach(function (cache) {\n return cache.clear();\n });\n};\n\n// These units are iterated through, so be careful when adding or changing the\n// order.\nvar UnitType = /*#__PURE__*/function (UnitType) {\n UnitType[UnitType[\"kUnknown\"] = 0] = \"kUnknown\";\n UnitType[UnitType[\"kNumber\"] = 1] = \"kNumber\";\n UnitType[UnitType[\"kPercentage\"] = 2] = \"kPercentage\";\n // Length units\n UnitType[UnitType[\"kEms\"] = 3] = \"kEms\";\n // kExs,\n UnitType[UnitType[\"kPixels\"] = 4] = \"kPixels\";\n // kCentimeters,\n // kMillimeters,\n // kInches,\n // kPoints,\n // kPicas,\n // kQuarterMillimeters,\n // https://drafts.csswg.org/css-values-4/#viewport-relative-lengths\n //\n // See also IsViewportPercentageLength.\n // kViewportWidth,\n // kViewportHeight,\n // kViewportInlineSize,\n // kViewportBlockSize,\n // kViewportMin,\n // kViewportMax,\n // kSmallViewportWidth,\n // kSmallViewportHeight,\n // kSmallViewportInlineSize,\n // kSmallViewportBlockSize,\n // kSmallViewportMin,\n // kSmallViewportMax,\n // kLargeViewportWidth,\n // kLargeViewportHeight,\n // kLargeViewportInlineSize,\n // kLargeViewportBlockSize,\n // kLargeViewportMin,\n // kLargeViewportMax,\n // kDynamicViewportWidth,\n // kDynamicViewportHeight,\n // kDynamicViewportInlineSize,\n // kDynamicViewportBlockSize,\n // kDynamicViewportMin,\n // kDynamicViewportMax,\n // https://drafts.csswg.org/css-contain-3/#container-lengths\n //\n // See also IsContainerPercentageLength.\n // kContainerWidth,\n // kContainerHeight,\n // kContainerInlineSize,\n // kContainerBlockSize,\n // kContainerMin,\n // kContainerMax,\n UnitType[UnitType[\"kRems\"] = 5] = \"kRems\";\n // kChs,\n // kUserUnits, // The SVG term for unitless lengths\n // Angle units\n UnitType[UnitType[\"kDegrees\"] = 6] = \"kDegrees\";\n UnitType[UnitType[\"kRadians\"] = 7] = \"kRadians\";\n UnitType[UnitType[\"kGradians\"] = 8] = \"kGradians\";\n UnitType[UnitType[\"kTurns\"] = 9] = \"kTurns\";\n // Time units\n UnitType[UnitType[\"kMilliseconds\"] = 10] = \"kMilliseconds\";\n UnitType[UnitType[\"kSeconds\"] = 11] = \"kSeconds\";\n // kHertz,\n // kKilohertz,\n // Resolution\n // kDotsPerPixel,\n // kDotsPerInch,\n // kDotsPerCentimeter,\n // Other units\n // kFraction,\n UnitType[UnitType[\"kInteger\"] = 12] = \"kInteger\"; // This value is used to handle quirky margins in reflow roots (body, td,\n // and th) like WinIE. The basic idea is that a stylesheet can use the value\n // __qem (for quirky em) instead of em. When the quirky value is used, if\n // you're in quirks mode, the margin will collapse away inside a table cell.\n // This quirk is specified in the HTML spec but our impl is different.\n // TODO: Remove this. crbug.com/443952\n // kQuirkyEms,\n return UnitType;\n}({});\nvar UnitCategory = /*#__PURE__*/function (UnitCategory) {\n UnitCategory[UnitCategory[\"kUNumber\"] = 0] = \"kUNumber\";\n UnitCategory[UnitCategory[\"kUPercent\"] = 1] = \"kUPercent\";\n UnitCategory[UnitCategory[\"kULength\"] = 2] = \"kULength\";\n UnitCategory[UnitCategory[\"kUAngle\"] = 3] = \"kUAngle\";\n UnitCategory[UnitCategory[\"kUTime\"] = 4] = \"kUTime\";\n // kUFrequency,\n // kUResolution,\n UnitCategory[UnitCategory[\"kUOther\"] = 5] = \"kUOther\";\n return UnitCategory;\n}({});\nvar Nested = /*#__PURE__*/function (Nested) {\n Nested[Nested[\"kYes\"] = 0] = \"kYes\";\n Nested[Nested[\"kNo\"] = 1] = \"kNo\";\n return Nested;\n}({});\nvar ParenLess = /*#__PURE__*/function (ParenLess) {\n ParenLess[ParenLess[\"kYes\"] = 0] = \"kYes\";\n ParenLess[ParenLess[\"kNo\"] = 1] = \"kNo\";\n return ParenLess;\n}({});\n\n// This file specifies the unit strings used in CSSPrimitiveValues.\nvar data = [{\n name: 'em',\n unit_type: UnitType.kEms\n},\n// {\n// name: 'ex',\n// unit_type: UnitType.kExs,\n// },\n{\n name: 'px',\n unit_type: UnitType.kPixels\n},\n// {\n// name: \"cm\",\n// unit_type: UnitType.kCentimeters,\n// },\n// {\n// name: \"mm\",\n// unit_type: UnitType.kMillimeters,\n// },\n// {\n// name: \"q\",\n// unit_type: UnitType.kQuarterMillimeters,\n// },\n// {\n// name: \"in\",\n// unit_type: UnitType.kInches,\n// },\n// {\n// name: \"pt\",\n// unit_type: UnitType.kPoints,\n// },\n// {\n// name: \"pc\",\n// unit_type: UnitType.kPicas,\n// },\n{\n name: 'deg',\n unit_type: UnitType.kDegrees\n}, {\n name: 'rad',\n unit_type: UnitType.kRadians\n}, {\n name: 'grad',\n unit_type: UnitType.kGradians\n}, {\n name: 'ms',\n unit_type: UnitType.kMilliseconds\n}, {\n name: 's',\n unit_type: UnitType.kSeconds\n},\n// {\n// name: \"hz\",\n// unit_type: UnitType.kHertz,\n// },\n// {\n// name: \"khz\",\n// unit_type: UnitType.kKilohertz,\n// },\n// {\n// name: \"dpi\",\n// unit_type: \"kDotsPerInch\",\n// },\n// {\n// name: \"dpcm\",\n// unit_type: \"kDotsPerCentimeter\",\n// },\n// {\n// name: \"dppx\",\n// unit_type: \"kDotsPerPixel\",\n// },\n// {\n// name: \"x\",\n// unit_type: \"kDotsPerPixel\",\n// },\n// {\n// name: \"vw\",\n// unit_type: \"kViewportWidth\",\n// },\n// {\n// name: \"vh\",\n// unit_type: \"kViewportHeight\",\n// },\n// {\n// name: \"vi\",\n// unit_type: \"kViewportInlineSize\",\n// },\n// {\n// name: \"vb\",\n// unit_type: \"kViewportBlockSize\",\n// },\n// {\n// name: \"vmin\",\n// unit_type: UnitType.kViewportMin,\n// },\n// {\n// name: \"vmax\",\n// unit_type: UnitType.kViewportMax,\n// },\n// {\n// name: \"svw\",\n// unit_type: \"kSmallViewportWidth\",\n// },\n// {\n// name: \"svh\",\n// unit_type: \"kSmallViewportHeight\",\n// },\n// {\n// name: \"svi\",\n// unit_type: \"kSmallViewportInlineSize\",\n// },\n// {\n// name: \"svb\",\n// unit_type: \"kSmallViewportBlockSize\",\n// },\n// {\n// name: \"svmin\",\n// unit_type: \"kSmallViewportMin\",\n// },\n// {\n// name: \"svmax\",\n// unit_type: \"kSmallViewportMax\",\n// },\n// {\n// name: \"lvw\",\n// unit_type: \"kLargeViewportWidth\",\n// },\n// {\n// name: \"lvh\",\n// unit_type: \"kLargeViewportHeight\",\n// },\n// {\n// name: \"lvi\",\n// unit_type: \"kLargeViewportInlineSize\",\n// },\n// {\n// name: \"lvb\",\n// unit_type: \"kLargeViewportBlockSize\",\n// },\n// {\n// name: \"lvmin\",\n// unit_type: UnitType.kLargeViewportMin,\n// },\n// {\n// name: \"lvmax\",\n// unit_type: UnitType.kLargeViewportMax,\n// },\n// {\n// name: \"dvw\",\n// unit_type: UnitType.kDynamicViewportWidth,\n// },\n// {\n// name: \"dvh\",\n// unit_type: UnitType.kDynamicViewportHeight,\n// },\n// {\n// name: \"dvi\",\n// unit_type: UnitType.kDynamicViewportInlineSize,\n// },\n// {\n// name: \"dvb\",\n// unit_type: UnitType.kDynamicViewportBlockSize,\n// },\n// {\n// name: \"dvmin\",\n// unit_type: UnitType.kDynamicViewportMin,\n// },\n// {\n// name: \"dvmax\",\n// unit_type: UnitType.kDynamicViewportMax,\n// },\n// {\n// name: \"cqw\",\n// unit_type: UnitType.kContainerWidth,\n// },\n// {\n// name: \"cqh\",\n// unit_type: UnitType.kContainerHeight,\n// },\n// {\n// name: \"cqi\",\n// unit_type: UnitType.kContainerInlineSize,\n// },\n// {\n// name: \"cqb\",\n// unit_type: UnitType.kContainerBlockSize,\n// },\n// {\n// name: \"cqmin\",\n// unit_type: UnitType.kContainerMin,\n// },\n// {\n// name: \"cqmax\",\n// unit_type: UnitType.kContainerMax,\n// },\n{\n name: 'rem',\n unit_type: UnitType.kRems\n},\n// {\n// name: 'fr',\n// unit_type: UnitType.kFraction,\n// },\n{\n name: 'turn',\n unit_type: UnitType.kTurns\n}\n// {\n// name: 'ch',\n// unit_type: UnitType.kChs,\n// },\n// {\n// name: '__qem',\n// unit_type: UnitType.kQuirkyEms,\n// },\n];\nvar CSSStyleValueType = /*#__PURE__*/function (CSSStyleValueType) {\n CSSStyleValueType[CSSStyleValueType[\"kUnknownType\"] = 0] = \"kUnknownType\";\n CSSStyleValueType[CSSStyleValueType[\"kUnparsedType\"] = 1] = \"kUnparsedType\";\n CSSStyleValueType[CSSStyleValueType[\"kKeywordType\"] = 2] = \"kKeywordType\";\n // Start of CSSNumericValue subclasses\n CSSStyleValueType[CSSStyleValueType[\"kUnitType\"] = 3] = \"kUnitType\";\n CSSStyleValueType[CSSStyleValueType[\"kSumType\"] = 4] = \"kSumType\";\n CSSStyleValueType[CSSStyleValueType[\"kProductType\"] = 5] = \"kProductType\";\n CSSStyleValueType[CSSStyleValueType[\"kNegateType\"] = 6] = \"kNegateType\";\n CSSStyleValueType[CSSStyleValueType[\"kInvertType\"] = 7] = \"kInvertType\";\n CSSStyleValueType[CSSStyleValueType[\"kMinType\"] = 8] = \"kMinType\";\n CSSStyleValueType[CSSStyleValueType[\"kMaxType\"] = 9] = \"kMaxType\";\n CSSStyleValueType[CSSStyleValueType[\"kClampType\"] = 10] = \"kClampType\";\n // End of CSSNumericValue subclasses\n CSSStyleValueType[CSSStyleValueType[\"kTransformType\"] = 11] = \"kTransformType\";\n CSSStyleValueType[CSSStyleValueType[\"kPositionType\"] = 12] = \"kPositionType\";\n CSSStyleValueType[CSSStyleValueType[\"kURLImageType\"] = 13] = \"kURLImageType\";\n CSSStyleValueType[CSSStyleValueType[\"kColorType\"] = 14] = \"kColorType\";\n CSSStyleValueType[CSSStyleValueType[\"kUnsupportedColorType\"] = 15] = \"kUnsupportedColorType\";\n return CSSStyleValueType;\n}({});\n\n// function parseCSSStyleValue(propertyName: string, value: string): CSSStyleValue[] {\n// // const propertyId = cssPropertyID(propertyName);\n\n// // if (propertyId === CSSPropertyID.kInvalid) {\n// // return [];\n// // }\n\n// // const customPropertyName = propertyId === CSSPropertyID.kVariable ? propertyName : null;\n// // return fromString(propertyId, customPropertyName, value);\n// return [];\n// }\n\nvar stringToUnitType = function stringToUnitType(name) {\n return data.find(function (item) {\n return item.name === name;\n }).unit_type;\n};\nvar unitFromName = function unitFromName(name) {\n if (!name) {\n return UnitType.kUnknown;\n }\n if (name === 'number') {\n return UnitType.kNumber;\n }\n if (name === 'percent' || name === '%') {\n return UnitType.kPercentage;\n }\n return stringToUnitType(name);\n};\nvar unitTypeToUnitCategory = function unitTypeToUnitCategory(type) {\n switch (type) {\n case UnitType.kNumber:\n case UnitType.kInteger:\n return UnitCategory.kUNumber;\n case UnitType.kPercentage:\n return UnitCategory.kUPercent;\n case UnitType.kPixels:\n // case UnitType.kCentimeters:\n // case UnitType.kMillimeters:\n // case UnitType.kQuarterMillimeters:\n // case UnitType.kInches:\n // case UnitType.kPoints:\n // case UnitType.kPicas:\n // case UnitType.kUserUnits:\n return UnitCategory.kULength;\n case UnitType.kMilliseconds:\n case UnitType.kSeconds:\n return UnitCategory.kUTime;\n case UnitType.kDegrees:\n case UnitType.kRadians:\n case UnitType.kGradians:\n case UnitType.kTurns:\n return UnitCategory.kUAngle;\n // case UnitType.kHertz:\n // case UnitType.kKilohertz:\n // return UnitCategory.kUFrequency;\n // case UnitType.kDotsPerPixel:\n // case UnitType.kDotsPerInch:\n // case UnitType.kDotsPerCentimeter:\n // return UnitCategory.kUResolution;\n default:\n return UnitCategory.kUOther;\n }\n};\nvar canonicalUnitTypeForCategory = function canonicalUnitTypeForCategory(category) {\n // The canonical unit type is chosen according to the way\n // CSSPropertyParser.ValidUnit() chooses the default unit in each category\n // (based on unitflags).\n switch (category) {\n case UnitCategory.kUNumber:\n return UnitType.kNumber;\n case UnitCategory.kULength:\n return UnitType.kPixels;\n case UnitCategory.kUPercent:\n return UnitType.kPercentage;\n // return UnitType.kUnknown; // Cannot convert between numbers and percent.\n case UnitCategory.kUTime:\n return UnitType.kSeconds;\n case UnitCategory.kUAngle:\n return UnitType.kDegrees;\n // case UnitCategory.kUFrequency:\n // return UnitType.kHertz;\n // case UnitCategory.kUResolution:\n // return UnitType.kDotsPerPixel;\n default:\n return UnitType.kUnknown;\n }\n};\n\n/**\n * @see https://chromium.googlesource.com/chromium/src/+/refs/heads/main/third_party/blink/renderer/core/css/css_primitive_value.cc#353\n */\nvar conversionToCanonicalUnitsScaleFactor = function conversionToCanonicalUnitsScaleFactor(unit_type) {\n var factor = 1.0;\n // FIXME: the switch can be replaced by an array of scale factors.\n switch (unit_type) {\n // These are \"canonical\" units in their respective categories.\n case UnitType.kPixels:\n // case UnitType.kUserUnits:\n case UnitType.kDegrees:\n case UnitType.kSeconds:\n // case UnitType.kHertz:\n break;\n case UnitType.kMilliseconds:\n factor = 0.001;\n break;\n // case UnitType.kCentimeters:\n // // factor = kCssPixelsPerCentimeter;\n // break;\n // case UnitType.kDotsPerCentimeter:\n // // factor = 1 / kCssPixelsPerCentimeter;\n // break;\n // case UnitType.kMillimeters:\n // // factor = kCssPixelsPerMillimeter;\n // break;\n // case UnitType.kQuarterMillimeters:\n // // factor = kCssPixelsPerQuarterMillimeter;\n // break;\n // case UnitType.kInches:\n // // factor = kCssPixelsPerInch;\n // break;\n // case UnitType.kDotsPerInch:\n // // factor = 1 / kCssPixelsPerInch;\n // break;\n // case UnitType.kPoints:\n // // factor = kCssPixelsPerPoint;\n // break;\n // case UnitType.kPicas:\n // // factor = kCssPixelsPerPica;\n // break;\n case UnitType.kRadians:\n factor = 180 / Math.PI;\n break;\n case UnitType.kGradians:\n factor = 0.9;\n break;\n case UnitType.kTurns:\n factor = 360;\n break;\n }\n return factor;\n};\nvar unitTypeToString = function unitTypeToString(type) {\n switch (type) {\n case UnitType.kNumber:\n case UnitType.kInteger:\n // case UnitType.kUserUnits:\n return '';\n case UnitType.kPercentage:\n return '%';\n case UnitType.kEms:\n // case UnitType.kQuirkyEms:\n return 'em';\n // case UnitType.kExs:\n // return 'ex';\n case UnitType.kRems:\n return 'rem';\n // case UnitType.kChs:\n // return 'ch';\n case UnitType.kPixels:\n return 'px';\n // case UnitType.kCentimeters:\n // return 'cm';\n // case UnitType.kDotsPerPixel:\n // return 'dppx';\n // case UnitType.kDotsPerInch:\n // return 'dpi';\n // case UnitType.kDotsPerCentimeter:\n // return 'dpcm';\n // case UnitType.kMillimeters:\n // return 'mm';\n // case UnitType.kQuarterMillimeters:\n // return 'q';\n // case UnitType.kInches:\n // return 'in';\n // case UnitType.kPoints:\n // return 'pt';\n // case UnitType.kPicas:\n // return 'pc';\n case UnitType.kDegrees:\n return 'deg';\n case UnitType.kRadians:\n return 'rad';\n case UnitType.kGradians:\n return 'grad';\n case UnitType.kMilliseconds:\n return 'ms';\n case UnitType.kSeconds:\n return 's';\n // case UnitType.kHertz:\n // return 'hz';\n // case UnitType.kKilohertz:\n // return 'khz';\n case UnitType.kTurns:\n return 'turn';\n }\n return '';\n};\n\n/**\n * CSSStyleValue is the base class for all CSS values accessible from Typed OM.\n * Values that are not yet supported as specific types are also returned as base CSSStyleValues.\n *\n * Spec @see https://drafts.css-houdini.org/css-typed-om/#stylevalue-objects\n * Docs @see https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleValue\n */\nvar CSSStyleValue = /*#__PURE__*/function () {\n function CSSStyleValue() {\n _classCallCheck(this, CSSStyleValue);\n }\n return _createClass(CSSStyleValue, [{\n key: \"toString\",\n value:\n // protected abstract toCSSValue(): CSSValue;\n\n function toString() {\n return this.buildCSSText(Nested.kNo, ParenLess.kNo, '');\n }\n }, {\n key: \"isNumericValue\",\n value: function isNumericValue() {\n return this.getType() >= CSSStyleValueType.kUnitType && this.getType() <= CSSStyleValueType.kClampType;\n }\n }], [{\n key: \"isAngle\",\n value:\n // static parse(propertyName: string, value: string): CSSStyleValue {\n // return parseCSSStyleValue(propertyName, value)[0];\n // }\n\n // static parseAll(propertyName: string, value: string): CSSStyleValue[] {\n // return parseCSSStyleValue(propertyName, value);\n // }\n\n function isAngle(unit) {\n return unit === UnitType.kDegrees || unit === UnitType.kRadians || unit === UnitType.kGradians || unit === UnitType.kTurns;\n }\n\n // static isViewportPercentageLength(type: UnitType) {\n // return type >= UnitType.kViewportWidth && type <= UnitType.kDynamicViewportMax;\n // }\n\n // static isContainerPercentageLength(type: UnitType) {\n // return type >= UnitType.kContainerWidth && type <= UnitType.kContainerMax;\n // }\n }, {\n key: \"isLength\",\n value: function isLength(type) {\n // return (type >= UnitType.kEms && type <= UnitType.kUserUnits) || type == UnitType.kQuirkyEms;\n return type >= UnitType.kEms && type < UnitType.kDegrees;\n }\n }, {\n key: \"isRelativeUnit\",\n value: function isRelativeUnit(type) {\n return type === UnitType.kPercentage || type === UnitType.kEms ||\n // type === UnitType.kExs ||\n type === UnitType.kRems\n // type === UnitType.kChs ||\n // this.isViewportPercentageLength(type) ||\n // this.isContainerPercentageLength(type)\n ;\n }\n }, {\n key: \"isTime\",\n value: function isTime(unit) {\n return unit === UnitType.kSeconds || unit === UnitType.kMilliseconds;\n }\n\n // static isFrequency(unit: UnitType) {\n // return unit == UnitType.kHertz || unit == UnitType.kKilohertz;\n // }\n\n // static isResolution(type: UnitType) {\n // return type >= UnitType.kDotsPerPixel && type <= UnitType.kDotsPerCentimeter;\n // }\n\n // static isFlex(unit: UnitType) {\n // return unit === UnitType.kFraction;\n // }\n }]);\n}();\n\n/**\n * @see https://drafts.css-houdini.org/css-typed-om-1/#dom-csscolorvalue-colorspace\n */\n\n/**\n * CSSColorValue is the base class used for the various CSS color interfaces.\n *\n * @see https://drafts.css-houdini.org/css-typed-om-1/#colorvalue-objects\n */\nvar CSSColorValue = /*#__PURE__*/function (_CSSStyleValue) {\n function CSSColorValue(colorSpace) {\n var _this;\n _classCallCheck(this, CSSColorValue);\n _this = _callSuper(this, CSSColorValue);\n _this.colorSpace = colorSpace;\n return _this;\n }\n _inherits(CSSColorValue, _CSSStyleValue);\n return _createClass(CSSColorValue, [{\n key: \"getType\",\n value: function getType() {\n return CSSStyleValueType.kColorType;\n }\n\n /**\n * @see https://drafts.css-houdini.org/css-typed-om-1/#dom-csscolorvalue-to\n */\n }, {\n key: \"to\",\n value: function to(colorSpace) {\n return this;\n }\n }]);\n}(CSSStyleValue);\n\nvar GradientType = /*#__PURE__*/function (GradientType) {\n GradientType[GradientType[\"Constant\"] = 0] = \"Constant\";\n GradientType[GradientType[\"LinearGradient\"] = 1] = \"LinearGradient\";\n GradientType[GradientType[\"RadialGradient\"] = 2] = \"RadialGradient\";\n return GradientType;\n}({});\nvar CSSGradientValue = /*#__PURE__*/function (_CSSStyleValue) {\n function CSSGradientValue(type, value) {\n var _this;\n _classCallCheck(this, CSSGradientValue);\n _this = _callSuper(this, CSSGradientValue);\n _this.type = type;\n _this.value = value;\n return _this;\n }\n _inherits(CSSGradientValue, _CSSStyleValue);\n return _createClass(CSSGradientValue, [{\n key: \"clone\",\n value: function clone() {\n return new CSSGradientValue(this.type, this.value);\n }\n }, {\n key: \"buildCSSText\",\n value: function buildCSSText(n, p, result) {\n return result;\n }\n }, {\n key: \"getType\",\n value: function getType() {\n return CSSStyleValueType.kColorType;\n }\n }]);\n}(CSSStyleValue);\n\n/**\n * CSSKeywordValue represents CSS Values that are specified as keywords\n * eg. 'initial'\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CSSKeywordValue\n * @see https://chromium.googlesource.com/chromium/src/+/refs/heads/main/third_party/blink/renderer/core/css/cssom/css_keyword_value.idl\n */\nvar CSSKeywordValue = /*#__PURE__*/function (_CSSStyleValue) {\n function CSSKeywordValue(value) {\n var _this;\n _classCallCheck(this, CSSKeywordValue);\n _this = _callSuper(this, CSSKeywordValue);\n _this.value = value;\n return _this;\n }\n _inherits(CSSKeywordValue, _CSSStyleValue);\n return _createClass(CSSKeywordValue, [{\n key: \"clone\",\n value: function clone() {\n return new CSSKeywordValue(this.value);\n }\n }, {\n key: \"getType\",\n value: function getType() {\n return CSSStyleValueType.kKeywordType;\n }\n }, {\n key: \"buildCSSText\",\n value: function buildCSSText(n, p, result) {\n return result + this.value;\n }\n }]);\n}(CSSStyleValue);\n\nvar formatInfinityOrNaN = function formatInfinityOrNaN(number) {\n var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var result = '';\n if (!Number.isFinite(number)) {\n if (number > 0) result = 'infinity';else result = '-infinity';\n } else {\n result = 'NaN';\n }\n return result += suffix;\n};\nvar toCanonicalUnit = function toCanonicalUnit(unit) {\n return canonicalUnitTypeForCategory(unitTypeToUnitCategory(unit));\n};\n\n/**\n * CSSNumericValue is the base class for numeric and length typed CSS Values.\n * @see https://drafts.css-houdini.org/css-typed-om/#numeric-objects\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CSSNumericValue\n * @see https://chromium.googlesource.com/chromium/src/+/refs/heads/main/third_party/blink/renderer/core/css/cssom/css_numeric_value.idl\n */\n\n/**\n * Represents numeric values that can be expressed as a single number plus a\n * unit (or a naked number or percentage).\n * @see https://drafts.css-houdini.org/css-typed-om/#cssunitvalue\n */\nvar CSSUnitValue = /*#__PURE__*/function (_CSSStyleValue) {\n function CSSUnitValue(value) {\n var _this;\n var unitOrName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : UnitType.kNumber;\n _classCallCheck(this, CSSUnitValue);\n _this = _callSuper(this, CSSUnitValue);\n var unit;\n if (typeof unitOrName === 'string') {\n unit = unitFromName(unitOrName);\n } else {\n unit = unitOrName;\n }\n _this.unit = unit;\n _this.value = value;\n return _this;\n }\n _inherits(CSSUnitValue, _CSSStyleValue);\n return _createClass(CSSUnitValue, [{\n key: \"clone\",\n value: function clone() {\n return new CSSUnitValue(this.value, this.unit);\n }\n }, {\n key: \"equals\",\n value: function equals(other) {\n var other_unit_value = other;\n return this.value === other_unit_value.value && this.unit === other_unit_value.unit;\n }\n }, {\n key: \"getType\",\n value: function getType() {\n return CSSStyleValueType.kUnitType;\n }\n }, {\n key: \"convertTo\",\n value: function convertTo(target_unit) {\n if (this.unit === target_unit) {\n return new CSSUnitValue(this.value, this.unit);\n }\n\n // Instead of defining the scale factors for every unit to every other unit,\n // we simply convert to the canonical unit and back since we already have\n // the scale factors for canonical units.\n var canonical_unit = toCanonicalUnit(this.unit);\n if (canonical_unit !== toCanonicalUnit(target_unit) || canonical_unit === UnitType.kUnknown) {\n return null;\n }\n var scale_factor = conversionToCanonicalUnitsScaleFactor(this.unit) / conversionToCanonicalUnitsScaleFactor(target_unit);\n return new CSSUnitValue(this.value * scale_factor, target_unit);\n }\n }, {\n key: \"buildCSSText\",\n value: function buildCSSText(n, p, result) {\n var text;\n switch (this.unit) {\n case UnitType.kUnknown:\n // FIXME\n break;\n case UnitType.kInteger:\n text = Number(this.value).toFixed(0);\n break;\n case UnitType.kNumber:\n case UnitType.kPercentage:\n case UnitType.kEms:\n // case UnitType.kQuirkyEms:\n // case UnitType.kExs:\n case UnitType.kRems:\n // case UnitType.kChs:\n case UnitType.kPixels:\n // case UnitType.kCentimeters:\n // case UnitType.kDotsPerPixel:\n // case UnitType.kDotsPerInch:\n // case UnitType.kDotsPerCentimeter:\n // case UnitType.kMillimeters:\n // case UnitType.kQuarterMillimeters:\n // case UnitType.kInches:\n // case UnitType.kPoints:\n // case UnitType.kPicas:\n // case UnitType.kUserUnits:\n case UnitType.kDegrees:\n case UnitType.kRadians:\n case UnitType.kGradians:\n case UnitType.kMilliseconds:\n case UnitType.kSeconds:\n // case UnitType.kHertz:\n // case UnitType.kKilohertz:\n case UnitType.kTurns:\n {\n // case UnitType.kContainerMax: { // case UnitType.kContainerMin: // case UnitType.kContainerBlockSize: // case UnitType.kContainerInlineSize: // case UnitType.kContainerHeight: // case UnitType.kContainerWidth: // case UnitType.kDynamicViewportMax: // case UnitType.kDynamicViewportMin: // case UnitType.kDynamicViewportBlockSize: // case UnitType.kDynamicViewportInlineSize: // case UnitType.kDynamicViewportHeight: // case UnitType.kDynamicViewportWidth: // case UnitType.kLargeViewportMax: // case UnitType.kLargeViewportMin: // case UnitType.kLargeViewportBlockSize: // case UnitType.kLargeViewportInlineSize: // case UnitType.kLargeViewportHeight: // case UnitType.kLargeViewportWidth: // case UnitType.kSmallViewportMax: // case UnitType.kSmallViewportMin: // case UnitType.kSmallViewportBlockSize: // case UnitType.kSmallViewportInlineSize: // case UnitType.kSmallViewportHeight: // case UnitType.kSmallViewportWidth: // case UnitType.kViewportMax: // case UnitType.kViewportMin: // case UnitType.kViewportBlockSize: // case UnitType.kViewportInlineSize: // case UnitType.kViewportHeight: // case UnitType.kViewportWidth: // case UnitType.kFraction:\n var kMinInteger = -999999;\n var kMaxInteger = 999999;\n var value = this.value;\n var unit = unitTypeToString(this.unit);\n if (value < kMinInteger || value > kMaxInteger) {\n var _unit = unitTypeToString(this.unit);\n if (!Number.isFinite(value) || Number.isNaN(value)) {\n text = formatInfinityOrNaN(value, _unit);\n } else {\n text = value + (_unit || '');\n }\n } else {\n text = \"\".concat(value).concat(unit);\n }\n }\n }\n result += text;\n return result;\n }\n }]);\n}(CSSStyleValue);\nvar Opx = new CSSUnitValue(0, 'px');\nnew CSSUnitValue(1, 'px');\nvar Odeg = new CSSUnitValue(0, 'deg');\n\n/**\n * The CSSRGB class represents the CSS rgb()/rgba() functions.\n *\n * @see https://drafts.css-houdini.org/css-typed-om-1/#cssrgb\n */\nvar CSSRGB = /*#__PURE__*/function (_CSSColorValue) {\n function CSSRGB(r, g, b) {\n var _this;\n var alpha = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var isNone = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n _classCallCheck(this, CSSRGB);\n _this = _callSuper(this, CSSRGB, ['rgb']);\n _this.r = r;\n _this.g = g;\n _this.b = b;\n _this.alpha = alpha;\n _this.isNone = isNone;\n return _this;\n }\n _inherits(CSSRGB, _CSSColorValue);\n return _createClass(CSSRGB, [{\n key: \"clone\",\n value: function clone() {\n return new CSSRGB(this.r, this.g, this.b, this.alpha);\n }\n }, {\n key: \"buildCSSText\",\n value: function buildCSSText(n, p, result) {\n return \"\".concat(result, \"rgba(\").concat(this.r, \",\").concat(this.g, \",\").concat(this.b, \",\").concat(this.alpha, \")\");\n }\n }]);\n}(CSSColorValue);\n\n/**\n * CSSKeywordValue\n */\nvar unsetKeywordValue = new CSSKeywordValue('unset');\nvar initialKeywordValue = new CSSKeywordValue('initial');\nvar inheritKeywordValue = new CSSKeywordValue('inherit');\nvar keywordCache = {\n '': unsetKeywordValue,\n unset: unsetKeywordValue,\n initial: initialKeywordValue,\n inherit: inheritKeywordValue\n};\nvar getOrCreateKeyword = function getOrCreateKeyword(name) {\n if (!keywordCache[name]) {\n keywordCache[name] = new CSSKeywordValue(name);\n }\n return keywordCache[name];\n};\n\n/**\n * CSSColor\n */\nvar noneColor = new CSSRGB(0, 0, 0, 0, true);\nvar transparentColor = new CSSRGB(0, 0, 0, 0);\nvar getOrCreateRGBA = memoize(function (r, g, b, a) {\n return new CSSRGB(r, g, b, a);\n}, function (r, g, b, a) {\n return \"rgba(\".concat(r, \",\").concat(g, \",\").concat(b, \",\").concat(a, \")\");\n});\n\n// export const getOrCreateUnitValue = memoize(\n// (value: number, unitOrName: UnitType | string = UnitType.kNumber) => {\n// return new CSSUnitValue(value, unitOrName);\n// },\n// (value: number, unitOrName: UnitType | string = UnitType.kNumber) => {\n// return `${value}${unitOrName}`;\n// },\n// );\n\nvar getOrCreateUnitValue = function getOrCreateUnitValue(value) {\n var unitOrName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : UnitType.kNumber;\n return new CSSUnitValue(value, unitOrName);\n};\nnew CSSUnitValue(50, '%');\n\n/**\n * borrow from gradient-parser, but we delete some browser compatible prefix such as `-webkit-`\n * @see https://github.com/rafaelcaricio/gradient-parser\n */\n\nfunction colorStopToString(colorStop) {\n var type = colorStop.type,\n value = colorStop.value;\n if (type === 'hex') {\n return \"#\".concat(value);\n }\n if (type === 'literal') {\n return value;\n }\n if (type === 'rgb') {\n return \"rgb(\".concat(value.join(','), \")\");\n }\n return \"rgba(\".concat(value.join(','), \")\");\n}\nvar parseGradient$1 = function () {\n var tokens = {\n linearGradient: /^(linear\\-gradient)/i,\n repeatingLinearGradient: /^(repeating\\-linear\\-gradient)/i,\n radialGradient: /^(radial\\-gradient)/i,\n repeatingRadialGradient: /^(repeating\\-radial\\-gradient)/i,\n /**\n * @see https://projects.verou.me/conic-gradient/\n */\n conicGradient: /^(conic\\-gradient)/i,\n sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,\n extentKeywords: /^(closest\\-side|closest\\-corner|farthest\\-side|farthest\\-corner|contain|cover)/,\n positionKeywords: /^(left|center|right|top|bottom)/i,\n pixelValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))px/,\n percentageValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))\\%/,\n emValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))em/,\n angleValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))deg/,\n startCall: /^\\(/,\n endCall: /^\\)/,\n comma: /^,/,\n hexColor: /^\\#([0-9a-fA-F]+)/,\n literalColor: /^([a-zA-Z]+)/,\n rgbColor: /^rgb/i,\n rgbaColor: /^rgba/i,\n number: /^(([0-9]*\\.[0-9]+)|([0-9]+\\.?))/\n };\n var input = '';\n function error(msg) {\n throw new Error(\"\".concat(input, \": \").concat(msg));\n }\n function getAST() {\n var ast = matchListDefinitions();\n if (input.length > 0) {\n error('Invalid input not EOF');\n }\n return ast;\n }\n function matchListDefinitions() {\n return matchListing(matchDefinition);\n }\n function matchDefinition() {\n return matchGradient('linear-gradient', tokens.linearGradient, matchLinearOrientation) || matchGradient('repeating-linear-gradient', tokens.repeatingLinearGradient, matchLinearOrientation) || matchGradient('radial-gradient', tokens.radialGradient, matchListRadialOrientations) || matchGradient('repeating-radial-gradient', tokens.repeatingRadialGradient, matchListRadialOrientations) || matchGradient('conic-gradient', tokens.conicGradient, matchListRadialOrientations);\n }\n function matchGradient(gradientType, pattern, orientationMatcher) {\n return matchCall(pattern, function (captures) {\n var orientation = orientationMatcher();\n if (orientation) {\n if (!scan(tokens.comma)) {\n error('Missing comma before color stops');\n }\n }\n return {\n type: gradientType,\n orientation: orientation,\n colorStops: matchListing(matchColorStop)\n };\n });\n }\n function matchCall(pattern, callback) {\n var captures = scan(pattern);\n if (captures) {\n if (!scan(tokens.startCall)) {\n error('Missing (');\n }\n var result = callback(captures);\n if (!scan(tokens.endCall)) {\n error('Missing )');\n }\n return result;\n }\n }\n function matchLinearOrientation() {\n return matchSideOrCorner() || matchAngle();\n }\n function matchSideOrCorner() {\n return match('directional', tokens.sideOrCorner, 1);\n }\n function matchAngle() {\n return match('angular', tokens.angleValue, 1);\n }\n function matchListRadialOrientations() {\n var radialOrientations;\n var radialOrientation = matchRadialOrientation();\n var lookaheadCache;\n if (radialOrientation) {\n radialOrientations = [];\n radialOrientations.push(radialOrientation);\n lookaheadCache = input;\n if (scan(tokens.comma)) {\n radialOrientation = matchRadialOrientation();\n if (radialOrientation) {\n radialOrientations.push(radialOrientation);\n } else {\n input = lookaheadCache;\n }\n }\n }\n return radialOrientations;\n }\n function matchRadialOrientation() {\n var radialType = matchCircle() || matchEllipse();\n if (radialType) {\n // @ts-ignore\n radialType.at = matchAtPosition();\n } else {\n var extent = matchExtentKeyword();\n if (extent) {\n radialType = extent;\n var positionAt = matchAtPosition();\n if (positionAt) {\n // @ts-ignore\n radialType.at = positionAt;\n }\n } else {\n var defaultPosition = matchPositioning();\n if (defaultPosition) {\n radialType = {\n type: 'default-radial',\n // @ts-ignore\n at: defaultPosition\n };\n }\n }\n }\n return radialType;\n }\n function matchCircle() {\n var circle = match('shape', /^(circle)/i, 0);\n if (circle) {\n // @ts-ignore\n circle.style = matchLength() || matchExtentKeyword();\n }\n return circle;\n }\n function matchEllipse() {\n var ellipse = match('shape', /^(ellipse)/i, 0);\n if (ellipse) {\n // @ts-ignore\n ellipse.style = matchDistance() || matchExtentKeyword();\n }\n return ellipse;\n }\n function matchExtentKeyword() {\n return match('extent-keyword', tokens.extentKeywords, 1);\n }\n function matchAtPosition() {\n if (match('position', /^at/, 0)) {\n var positioning = matchPositioning();\n if (!positioning) {\n error('Missing positioning value');\n }\n return positioning;\n }\n }\n function matchPositioning() {\n var location = matchCoordinates();\n if (location.x || location.y) {\n return {\n type: 'position',\n value: location\n };\n }\n }\n function matchCoordinates() {\n return {\n x: matchDistance(),\n y: matchDistance()\n };\n }\n function matchListing(matcher) {\n var captures = matcher();\n var result = [];\n if (captures) {\n result.push(captures);\n while (scan(tokens.comma)) {\n captures = matcher();\n if (captures) {\n result.push(captures);\n } else {\n error('One extra comma');\n }\n }\n }\n return result;\n }\n function matchColorStop() {\n var color = matchColor();\n if (!color) {\n error('Expected color definition');\n }\n color.length = matchDistance();\n return color;\n }\n function matchColor() {\n return matchHexColor() || matchRGBAColor() || matchRGBColor() || matchLiteralColor();\n }\n function matchLiteralColor() {\n return match('literal', tokens.literalColor, 0);\n }\n function matchHexColor() {\n return match('hex', tokens.hexColor, 1);\n }\n function matchRGBColor() {\n return matchCall(tokens.rgbColor, function () {\n return {\n type: 'rgb',\n value: matchListing(matchNumber)\n };\n });\n }\n function matchRGBAColor() {\n return matchCall(tokens.rgbaColor, function () {\n return {\n type: 'rgba',\n value: matchListing(matchNumber)\n };\n });\n }\n function matchNumber() {\n return scan(tokens.number)[1];\n }\n function matchDistance() {\n return match('%', tokens.percentageValue, 1) || matchPositionKeyword() || matchLength();\n }\n function matchPositionKeyword() {\n return match('position-keyword', tokens.positionKeywords, 1);\n }\n function matchLength() {\n return match('px', tokens.pixelValue, 1) || match('em', tokens.emValue, 1);\n }\n function match(type, pattern, captureIndex) {\n var captures = scan(pattern);\n if (captures) {\n return {\n type: type,\n value: captures[captureIndex]\n };\n }\n }\n function scan(regexp) {\n var blankCaptures = /^[\\n\\r\\t\\s]+/.exec(input);\n if (blankCaptures) {\n consume(blankCaptures[0].length);\n }\n var captures = regexp.exec(input);\n if (captures) {\n consume(captures[0].length);\n }\n return captures;\n }\n function consume(size) {\n input = input.substring(size);\n }\n return function (code) {\n input = code;\n return getAST();\n };\n}();\nfunction computeLinearGradient(min, width, height, angle) {\n var rad = deg2rad(angle.value);\n var rx = 0;\n var ry = 0;\n var rcx = rx + width / 2;\n var rcy = ry + height / 2;\n // get the length of gradient line\n // @see https://observablehq.com/@danburzo/css-gradient-line\n var length = Math.abs(width * Math.cos(rad)) + Math.abs(height * Math.sin(rad));\n var x1 = min[0] + rcx - Math.cos(rad) * length / 2;\n var y1 = min[1] + rcy - Math.sin(rad) * length / 2;\n var x2 = min[0] + rcx + Math.cos(rad) * length / 2;\n var y2 = min[1] + rcy + Math.sin(rad) * length / 2;\n return {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n };\n}\nfunction computeRadialGradient(min, width, height, cx, cy, size) {\n // 'px'\n var x = cx.value;\n var y = cy.value;\n\n // TODO: 'em'\n\n // '%'\n if (cx.unit === UnitType.kPercentage) {\n x = cx.value / 100 * width;\n }\n if (cy.unit === UnitType.kPercentage) {\n y = cy.value / 100 * height;\n }\n\n // default to farthest-side\n var r = Math.max(distanceSquareRoot([0, 0], [x, y]), distanceSquareRoot([0, height], [x, y]), distanceSquareRoot([width, height], [x, y]), distanceSquareRoot([width, 0], [x, y]));\n if (size) {\n if (size instanceof CSSUnitValue) {\n r = size.value;\n } else if (size instanceof CSSKeywordValue) {\n // @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Images/Using_CSS_gradients#example_closest-side_for_circles\n if (size.value === 'closest-side') {\n r = Math.min(x, width - x, y, height - y);\n } else if (size.value === 'farthest-side') {\n r = Math.max(x, width - x, y, height - y);\n } else if (size.value === 'closest-corner') {\n r = Math.min(distanceSquareRoot([0, 0], [x, y]), distanceSquareRoot([0, height], [x, y]), distanceSquareRoot([width, height], [x, y]), distanceSquareRoot([width, 0], [x, y]));\n }\n }\n }\n return {\n x: x + min[0],\n y: y + min[1],\n r: r\n };\n}\n\nvar regexLG = /^l\\s*\\(\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nvar regexRG = /^r\\s*\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nvar regexPR = /^p\\s*\\(\\s*([axyn])\\s*\\)\\s*(.*)/i;\nvar regexColorStop = /[\\d.]+:(#[^\\s]+|[^\\)]+\\))/gi;\nfunction spaceColorStops(colorStops) {\n var _colorStops$length;\n var length = colorStops.length;\n colorStops[length - 1].length = (_colorStops$length = colorStops[length - 1].length) !== null && _colorStops$length !== void 0 ? _colorStops$length : {\n type: '%',\n value: '100'\n };\n if (length > 1) {\n var _colorStops$0$length;\n colorStops[0].length = (_colorStops$0$length = colorStops[0].length) !== null && _colorStops$0$length !== void 0 ? _colorStops$0$length : {\n type: '%',\n value: '0'\n };\n }\n var previousIndex = 0;\n var previousOffset = Number(colorStops[0].length.value);\n for (var i = 1; i < length; i++) {\n var _colorStops$i$length;\n // support '%' & 'px'\n var offset = (_colorStops$i$length = colorStops[i].length) === null || _colorStops$i$length === void 0 ? void 0 : _colorStops$i$length.value;\n if (!isNil(offset) && !isNil(previousOffset)) {\n for (var j = 1; j < i - previousIndex; j++) colorStops[previousIndex + j].length = {\n type: '%',\n value: \"\".concat(previousOffset + (Number(offset) - previousOffset) * j / (i - previousIndex))\n };\n previousIndex = i;\n previousOffset = Number(offset);\n }\n }\n}\n\n// The position of the gradient line's starting point.\n// different from CSS side(to top) @see https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/linear-gradient#values\nvar SideOrCornerToDegMap = {\n left: 270 - 90,\n top: 0 - 90,\n bottom: 180 - 90,\n right: 90 - 90,\n 'left top': 315 - 90,\n 'top left': 315 - 90,\n 'left bottom': 225 - 90,\n 'bottom left': 225 - 90,\n 'right top': 45 - 90,\n 'top right': 45 - 90,\n 'right bottom': 135 - 90,\n 'bottom right': 135 - 90\n};\nvar angleToDeg = memoize(function (orientation) {\n var angle;\n if (orientation.type === 'angular') {\n angle = Number(orientation.value);\n } else {\n angle = SideOrCornerToDegMap[orientation.value] || 0;\n }\n return getOrCreateUnitValue(angle, 'deg');\n});\nvar positonToCSSUnitValue = memoize(function (position) {\n var cx = 50;\n var cy = 50;\n var unitX = '%';\n var unitY = '%';\n if ((position === null || position === void 0 ? void 0 : position.type) === 'position') {\n var _position$value = position.value,\n x = _position$value.x,\n y = _position$value.y;\n if ((x === null || x === void 0 ? void 0 : x.type) === 'position-keyword') {\n if (x.value === 'left') {\n cx = 0;\n } else if (x.value === 'center') {\n cx = 50;\n } else if (x.value === 'right') {\n cx = 100;\n } else if (x.value === 'top') {\n cy = 0;\n } else if (x.value === 'bottom') {\n cy = 100;\n }\n }\n if ((y === null || y === void 0 ? void 0 : y.type) === 'position-keyword') {\n if (y.value === 'left') {\n cx = 0;\n } else if (y.value === 'center') {\n cy = 50;\n } else if (y.value === 'right') {\n cx = 100;\n } else if (y.value === 'top') {\n cy = 0;\n } else if (y.value === 'bottom') {\n cy = 100;\n }\n }\n if ((x === null || x === void 0 ? void 0 : x.type) === 'px' || (x === null || x === void 0 ? void 0 : x.type) === '%' || (x === null || x === void 0 ? void 0 : x.type) === 'em') {\n unitX = x === null || x === void 0 ? void 0 : x.type;\n cx = Number(x.value);\n }\n if ((y === null || y === void 0 ? void 0 : y.type) === 'px' || (y === null || y === void 0 ? void 0 : y.type) === '%' || (y === null || y === void 0 ? void 0 : y.type) === 'em') {\n unitY = y === null || y === void 0 ? void 0 : y.type;\n cy = Number(y.value);\n }\n }\n return {\n cx: getOrCreateUnitValue(cx, unitX),\n cy: getOrCreateUnitValue(cy, unitY)\n };\n});\nvar parseGradient = memoize(function (colorStr) {\n if (colorStr.indexOf('linear') > -1 || colorStr.indexOf('radial') > -1) {\n var ast = parseGradient$1(colorStr);\n return ast.map(function (_ref) {\n var type = _ref.type,\n orientation = _ref.orientation,\n colorStops = _ref.colorStops;\n spaceColorStops(colorStops);\n var steps = colorStops.map(function (colorStop) {\n // TODO: only support % for now, should calc percentage of axis length when using px/em\n return {\n offset: getOrCreateUnitValue(Number(colorStop.length.value), '%'),\n color: colorStopToString(colorStop)\n };\n });\n if (type === 'linear-gradient') {\n return new CSSGradientValue(GradientType.LinearGradient, {\n angle: orientation ? angleToDeg(orientation) : Odeg,\n steps: steps\n });\n }\n if (type === 'radial-gradient') {\n if (!orientation) {\n orientation = [{\n type: 'shape',\n value: 'circle'\n }];\n }\n if (orientation[0].type === 'shape' && orientation[0].value === 'circle') {\n var _positonToCSSUnitValu = positonToCSSUnitValue(orientation[0].at),\n cx = _positonToCSSUnitValu.cx,\n cy = _positonToCSSUnitValu.cy;\n var size;\n if (orientation[0].style) {\n var _orientation$0$style = orientation[0].style,\n _type = _orientation$0$style.type,\n value = _orientation$0$style.value;\n if (_type === 'extent-keyword') {\n size = getOrCreateKeyword(value);\n } else {\n size = getOrCreateUnitValue(value, _type);\n }\n }\n return new CSSGradientValue(GradientType.RadialGradient, {\n cx: cx,\n cy: cy,\n size: size,\n steps: steps\n });\n }\n // TODO: support ellipse shape\n // TODO: repeating-linear-gradient & repeating-radial-gradient\n // } else if (type === 'repeating-linear-gradient') {\n // } else if (type === 'repeating-radial-gradient') {\n }\n return undefined;\n });\n }\n\n // legacy format, should be deprecated later\n var type = colorStr[0];\n if (colorStr[1] === '(' || colorStr[2] === '(') {\n if (type === 'l') {\n var arr = regexLG.exec(colorStr);\n if (arr) {\n var _arr$2$match;\n var steps = ((_arr$2$match = arr[2].match(regexColorStop)) === null || _arr$2$match === void 0 ? void 0 : _arr$2$match.map(function (stop) {\n return stop.split(':');\n })) || [];\n return [new CSSGradientValue(GradientType.LinearGradient, {\n angle: getOrCreateUnitValue(parseFloat(arr[1]), 'deg'),\n steps: steps.map(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n offset = _ref3[0],\n color = _ref3[1];\n return {\n offset: getOrCreateUnitValue(Number(offset) * 100, '%'),\n color: color\n };\n })\n })];\n }\n } else if (type === 'r') {\n var parsedRadialGradient = parseRadialGradient(colorStr);\n if (parsedRadialGradient) {\n if (isString(parsedRadialGradient)) {\n colorStr = parsedRadialGradient;\n } else {\n return [new CSSGradientValue(GradientType.RadialGradient, parsedRadialGradient)];\n }\n }\n } else if (type === 'p') {\n return parsePattern(colorStr);\n }\n }\n});\nfunction parseRadialGradient(gradientStr) {\n var arr = regexRG.exec(gradientStr);\n if (arr) {\n var _arr$4$match;\n var steps = ((_arr$4$match = arr[4].match(regexColorStop)) === null || _arr$4$match === void 0 ? void 0 : _arr$4$match.map(function (stop) {\n return stop.split(':');\n })) || [];\n return {\n cx: getOrCreateUnitValue(50, '%'),\n cy: getOrCreateUnitValue(50, '%'),\n steps: steps.map(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n offset = _ref5[0],\n color = _ref5[1];\n return {\n offset: getOrCreateUnitValue(Number(offset) * 100, '%'),\n color: color\n };\n })\n };\n }\n return null;\n}\nfunction parsePattern(patternStr) {\n var arr = regexPR.exec(patternStr);\n if (arr) {\n var repetition = arr[1];\n var src = arr[2];\n switch (repetition) {\n case 'a':\n repetition = 'repeat';\n break;\n case 'x':\n repetition = 'repeat-x';\n break;\n case 'y':\n repetition = 'repeat-y';\n break;\n case 'n':\n repetition = 'no-repeat';\n break;\n default:\n repetition = 'no-repeat';\n }\n return {\n image: src,\n // @ts-ignore\n repetition: repetition\n };\n }\n return null;\n}\n\n/**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasRenderingContext2D/createPattern\n */\n\nfunction isCSSGradientValue(object) {\n return !!object.type && !!object.value;\n}\nfunction isPattern(object) {\n return object && !!object.image;\n}\nfunction isCSSRGB(object) {\n return object && !isNil(object.r) && !isNil(object.g) && !isNil(object.b);\n}\n\n/**\n * @see https://github.com/WebKit/WebKit/blob/main/Source/WebCore/css/parser/CSSParser.cpp#L97\n */\nvar parseColor = memoize(function (colorStr) {\n if (isPattern(colorStr)) {\n return _objectSpread({\n repetition: 'repeat'\n }, colorStr);\n }\n if (isNil(colorStr)) {\n colorStr = '';\n }\n if (colorStr === 'transparent') {\n // transparent black\n return transparentColor;\n }\n if (colorStr === 'currentColor') {\n // @see https://github.com/adobe-webplatform/Snap.svg/issues/526\n colorStr = 'black';\n } else if (colorStr === 'none') {\n return noneColor;\n }\n\n // support CSS gradient syntax\n var g = parseGradient(colorStr);\n if (g) {\n return g;\n }\n\n // constants\n var color$1 = color(colorStr);\n var rgba = [0, 0, 0, 0];\n if (color$1 !== null) {\n rgba[0] = color$1.r || 0;\n rgba[1] = color$1.g || 0;\n rgba[2] = color$1.b || 0;\n rgba[3] = color$1.opacity;\n }\n\n // return new CSSRGB(...rgba);\n return getOrCreateRGBA.apply(void 0, rgba);\n});\nfunction mergeColors(left, right) {\n // only support constant value, exclude gradient & pattern\n if (!isCSSRGB(left) || !isCSSRGB(right)) {\n return;\n }\n return [[Number(left.r), Number(left.g), Number(left.b), Number(left.alpha)], [Number(right.r), Number(right.g), Number(right.b), Number(right.alpha)], function (color) {\n var rgba = color.slice();\n if (rgba[3]) {\n for (var i = 0; i < 3; i++) rgba[i] = Math.round(clamp(rgba[i], 0, 255));\n }\n rgba[3] = clamp(rgba[3], 0, 1);\n return \"rgba(\".concat(rgba.join(','), \")\");\n }];\n}\n\nfunction parseDimension(unitRegExp, string) {\n if (isNil(string)) {\n return getOrCreateUnitValue(0, 'px');\n }\n string = \"\".concat(string).trim().toLowerCase();\n if (isFinite(Number(string))) {\n if ('px'.search(unitRegExp) >= 0) {\n return getOrCreateUnitValue(Number(string), 'px');\n }\n if ('deg'.search(unitRegExp) >= 0) {\n return getOrCreateUnitValue(Number(string), 'deg');\n }\n }\n var matchedUnits = [];\n string = string.replace(unitRegExp, function (match) {\n matchedUnits.push(match);\n return \"U\".concat(match);\n });\n var taggedUnitRegExp = \"U(\".concat(unitRegExp.source, \")\");\n return matchedUnits.map(function (unit) {\n return getOrCreateUnitValue(Number(string.replace(new RegExp(\"U\".concat(unit), 'g'), '').replace(new RegExp(taggedUnitRegExp, 'g'), '*0')), unit);\n })[0];\n}\n\n/**\n * <length>\n * @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/length\n * length with only absolute unit, eg. 1px\n */\nvar parseLengthUnmemoize = function parseLengthUnmemoize(css) {\n return parseDimension(new RegExp('px', 'g'), css);\n};\nvar parseLength = memoize(parseLengthUnmemoize);\n\n/**\n * <percentage>\n * @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/percentage\n */\nvar parserPercentageUnmemoize = function parserPercentageUnmemoize(css) {\n return parseDimension(new RegExp('%', 'g'), css);\n};\nmemoize(parserPercentageUnmemoize);\n\n/**\n * length with absolute or relative unit,\n * eg. 1px, 0.7em, 50%, calc(100% - 200px);\n *\n * @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/length-percentage\n */\nvar parseLengthOrPercentageUnmemoize = function parseLengthOrPercentageUnmemoize(css) {\n if (isNumber(css) || isFinite(Number(css))) {\n // Number(css) is NaN\n return getOrCreateUnitValue(Number(css) || 0, 'px');\n // return Number(css);\n }\n return parseDimension(new RegExp('px|%|em|rem', 'g'), css);\n};\nvar parseLengthOrPercentage = memoize(parseLengthOrPercentageUnmemoize);\nvar parseAngleUnmemoize = function parseAngleUnmemoize(css) {\n return parseDimension(new RegExp('deg|rad|grad|turn', 'g'), css);\n};\nvar parseAngle = memoize(parseAngleUnmemoize);\n\n/**\n * merge CSSUnitValue\n *\n * @example\n * 10px + 20px = 30px\n * 10deg + 10rad\n * 10% + 20% = 30%\n */\nfunction mergeDimensions(left, right, target, nonNegative) {\n var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var unit = '';\n var leftValue = left.value || 0;\n var rightValue = right.value || 0;\n var canonicalUnit = toCanonicalUnit(left.unit);\n var leftCanonicalUnitValue = left.convertTo(canonicalUnit);\n var rightCanonicalUnitValue = right.convertTo(canonicalUnit);\n if (leftCanonicalUnitValue && rightCanonicalUnitValue) {\n leftValue = leftCanonicalUnitValue.value;\n rightValue = rightCanonicalUnitValue.value;\n unit = unitTypeToString(left.unit);\n }\n // format '%' to 'px'\n else if (CSSUnitValue.isLength(left.unit) || CSSUnitValue.isLength(right.unit)) {\n leftValue = convertPercentUnit(left, index, target);\n rightValue = convertPercentUnit(right, index, target);\n unit = 'px';\n }\n return [leftValue, rightValue, function (value) {\n if (nonNegative) {\n value = Math.max(value, 0);\n }\n return value + unit;\n }];\n}\nfunction convertAngleUnit(value) {\n var deg = 0;\n if (value.unit === UnitType.kDegrees) {\n deg = value.value;\n } else if (value.unit === UnitType.kRadians) {\n deg = rad2deg(Number(value.value));\n } else if (value.unit === UnitType.kTurns) {\n deg = turn2deg(Number(value.value));\n } else if (value.value) {\n deg = value.value;\n }\n return deg;\n}\nfunction parseDimensionArrayFormat(string, size) {\n var parsed;\n if (Array.isArray(string)) {\n // [1, '2px', 3]\n parsed = string.map(function (segment) {\n return Number(segment);\n });\n } else if (isString(string)) {\n parsed = string.split(' ').map(function (segment) {\n return Number(segment);\n });\n } else if (isNumber(string)) {\n parsed = [string];\n }\n if (size === 2) {\n if (parsed.length === 1) {\n return [parsed[0], parsed[0]];\n }\n return [parsed[0], parsed[1]];\n }\n if (size === 4) {\n if (parsed.length === 1) {\n return [parsed[0], parsed[0], parsed[0], parsed[0]];\n }\n if (parsed.length === 2) {\n return [parsed[0], parsed[1], parsed[0], parsed[1]];\n }\n if (parsed.length === 3) {\n return [parsed[0], parsed[1], parsed[2], parsed[1]];\n }\n return [parsed[0], parsed[1], parsed[2], parsed[3]];\n }\n if (size === 'even' && parsed.length % 2 === 1) {\n return [].concat(_toConsumableArray(parsed), _toConsumableArray(parsed));\n }\n return parsed;\n}\n\n// export function mergeDimensionList(\n// left: CSSUnitValue[],\n// right: CSSUnitValue[],\n// target: IElement | null,\n// ): [number[], number[], (list: number[]) => string] | undefined {\n// if (left.length !== right.length) {\n// return;\n// }\n\n// const unit = left[0].unit;\n\n// return [\n// left.map((l) => l.value),\n// right.map((l) => l.value),\n// (values: number[]) => {\n// return values.map((n) => new CSSUnitValue(n, unit)).join(' ');\n// },\n// ];\n// }\n\nfunction convertPercentUnit(valueWithUnit, vec3Index, target) {\n var useMin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (valueWithUnit.unit === UnitType.kPixels) {\n return Number(valueWithUnit.value);\n }\n if (valueWithUnit.unit === UnitType.kPercentage && target) {\n var bounds = target.nodeName === Shape.GROUP ? target.getLocalBounds() : target.getGeometryBounds();\n return (useMin ? bounds.min[vec3Index] : 0) + valueWithUnit.value / 100 * bounds.halfExtents[vec3Index] * 2;\n }\n return 0;\n}\n\nvar parseParam = function parseParam(css) {\n return parseDimension(/deg|rad|grad|turn|px|%/g, css);\n};\nvar supportedFilters = ['blur', 'brightness', 'drop-shadow', 'contrast', 'grayscale', 'sepia', 'saturate', 'hue-rotate', 'invert'];\nfunction parseFilter() {\n var filterStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n filterStr = filterStr.toLowerCase().trim();\n if (filterStr === 'none') {\n return [];\n }\n var filterRegExp = /\\s*([\\w-]+)\\(([^)]*)\\)/g;\n var result = [];\n var match;\n var prevLastIndex = 0;\n while (match = filterRegExp.exec(filterStr)) {\n if (match.index !== prevLastIndex) {\n return [];\n }\n prevLastIndex = match.index + match[0].length;\n if (supportedFilters.indexOf(match[1]) > -1) {\n result.push({\n name: match[1],\n params: match[2].split(' ').map(function (p) {\n return parseParam(p) || parseColor(p);\n })\n });\n }\n if (filterRegExp.lastIndex === filterStr.length) {\n return result;\n }\n }\n return [];\n}\n\nfunction numberToString(x) {\n // scale(0.00000001) -> scale(0)\n // return x.toFixed(6).replace(/0+$/, '').replace(/\\.$/, '');\n return x.toString();\n}\n\n/**\n * parse string or number to CSSUnitValue(numeric)\n *\n * eg.\n * * 0 -> CSSUnitValue(0)\n * * '2' -> CSSUnitValue(2)\n */\nvar parseNumberUnmemoize = function parseNumberUnmemoize(string) {\n if (typeof string === 'number') {\n return getOrCreateUnitValue(string);\n }\n if (/^\\s*[-+]?(\\d*\\.)?\\d+\\s*$/.test(string)) {\n return getOrCreateUnitValue(Number(string));\n }\n return getOrCreateUnitValue(0);\n};\nvar parseNumber = memoize(parseNumberUnmemoize);\nmemoize(function (string) {\n if (isString(string)) {\n return string.split(' ').map(parseNumber);\n }\n return string.map(parseNumber);\n});\nfunction mergeNumbers(left, right) {\n return [left, right, numberToString];\n}\nfunction clampedMergeNumbers(min, max) {\n return function (left, right) {\n return [left, right, function (x) {\n return numberToString(clamp(x, min, max));\n }];\n };\n}\nfunction mergeNumberLists(left, right) {\n if (left.length !== right.length) {\n return;\n }\n return [left, right, function (numberList) {\n return numberList;\n }];\n}\n\nfunction getOrCalculatePathTotalLength(path) {\n if (path.parsedStyle.d.totalLength === 0) {\n path.parsedStyle.d.totalLength = getTotalLength(path.parsedStyle.d.absolutePath);\n }\n return path.parsedStyle.d.totalLength;\n}\nfunction getOrCalculatePolylineTotalLength(polyline) {\n if (polyline.parsedStyle.points.totalLength === 0) {\n polyline.parsedStyle.points.totalLength = polylineLength(polyline.parsedStyle.points.points);\n }\n return polyline.parsedStyle.points.totalLength;\n}\nfunction removeRedundantMCommand(path) {\n for (var i = 0; i < path.length; i++) {\n var prevSegment = path[i - 1];\n var segment = path[i];\n var cmd = segment[0];\n if (cmd === 'M') {\n if (prevSegment) {\n var prevCmd = prevSegment[0];\n var srcPoint = [segment[1], segment[2]];\n var destPoint = void 0;\n if (prevCmd === 'L' || prevCmd === 'M') {\n destPoint = [prevSegment[1], prevSegment[2]];\n } else if (prevCmd === 'C' || prevCmd === 'A' || prevCmd === 'Q') {\n destPoint = [prevSegment[prevSegment.length - 2], prevSegment[prevSegment.length - 1]];\n }\n if (destPoint && isSamePoint(srcPoint, destPoint)) {\n path.splice(i, 1);\n i--;\n }\n }\n }\n }\n}\nfunction hasArcOrBezier(path) {\n var hasArc = false;\n var count = path.length;\n for (var i = 0; i < count; i++) {\n var params = path[i];\n var cmd = params[0];\n if (cmd === 'C' || cmd === 'A' || cmd === 'Q') {\n hasArc = true;\n break;\n }\n }\n return hasArc;\n}\nfunction extractPolygons(pathArray) {\n var polygons = [];\n var polylines = [];\n var points = []; // 防止第一个命令不是 'M'\n for (var i = 0; i < pathArray.length; i++) {\n var params = pathArray[i];\n var cmd = params[0];\n if (cmd === 'M') {\n // 遇到 'M' 判定是否是新数组,新数组中没有点\n if (points.length) {\n // 如果存在点,则说明没有遇到 'Z',开始了一个新的多边形\n polylines.push(points);\n points = []; // 创建新的点\n }\n points.push([params[1], params[2]]);\n } else if (cmd === 'Z') {\n if (points.length) {\n // 存在点\n polygons.push(points);\n points = []; // 开始新的点集合\n }\n // 如果不存在点,同时 'Z',则说明是错误,不处理\n } else {\n points.push([params[1], params[2]]);\n }\n }\n // 说明 points 未放入 polygons 或者 polyline\n // 仅当只有一个 M,没有 Z 时会发生这种情况\n if (points.length > 0) {\n polylines.push(points);\n }\n return {\n polygons: polygons,\n polylines: polylines\n };\n}\nfunction isSamePoint(point1, point2) {\n return point1[0] === point2[0] && point1[1] === point2[1];\n}\nfunction getPathBBox(segments, lineWidth) {\n var xArr = [];\n var yArr = [];\n var segmentsWithAngle = [];\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n var currentPoint = segment.currentPoint,\n params = segment.params,\n prePoint = segment.prePoint;\n var box = void 0;\n switch (segment.command) {\n case 'Q':\n box = quadBox(prePoint[0], prePoint[1], params[1], params[2], params[3], params[4]);\n break;\n case 'C':\n box = cubicBox(prePoint[0], prePoint[1], params[1], params[2], params[3], params[4], params[5], params[6]);\n break;\n case 'A':\n var arcParams = segment.arcParams;\n box = arcBox(arcParams.cx, arcParams.cy, arcParams.rx, arcParams.ry, arcParams.xRotation, arcParams.startAngle, arcParams.endAngle);\n break;\n default:\n xArr.push(currentPoint[0]);\n yArr.push(currentPoint[1]);\n break;\n }\n if (box) {\n segment.box = box;\n xArr.push(box.x, box.x + box.width);\n yArr.push(box.y, box.y + box.height);\n }\n if (lineWidth && (segment.command === 'L' || segment.command === 'M') && segment.prePoint && segment.nextPoint) {\n segmentsWithAngle.push(segment);\n }\n }\n // bbox calculation should ignore NaN for path attribute\n // ref: https://github.com/antvis/g/issues/210\n // ref: https://github.com/antvis/G2/issues/3109\n xArr = xArr.filter(function (item) {\n return !Number.isNaN(item) && item !== Infinity && item !== -Infinity;\n });\n yArr = yArr.filter(function (item) {\n return !Number.isNaN(item) && item !== Infinity && item !== -Infinity;\n });\n var minX = min(xArr);\n var minY = min(yArr);\n var maxX = max(xArr);\n var maxY = max(yArr);\n if (segmentsWithAngle.length === 0) {\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n for (var _i = 0; _i < segmentsWithAngle.length; _i++) {\n var _segment = segmentsWithAngle[_i];\n var _currentPoint = _segment.currentPoint;\n var extra = void 0;\n if (_currentPoint[0] === minX) {\n extra = getExtraFromSegmentWithAngle(_segment, lineWidth);\n minX -= extra.xExtra;\n } else if (_currentPoint[0] === maxX) {\n extra = getExtraFromSegmentWithAngle(_segment, lineWidth);\n maxX += extra.xExtra;\n }\n if (_currentPoint[1] === minY) {\n extra = getExtraFromSegmentWithAngle(_segment, lineWidth);\n minY -= extra.yExtra;\n } else if (_currentPoint[1] === maxY) {\n extra = getExtraFromSegmentWithAngle(_segment, lineWidth);\n maxY += extra.yExtra;\n }\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getExtraFromSegmentWithAngle(segment, lineWidth) {\n var prePoint = segment.prePoint,\n currentPoint = segment.currentPoint,\n nextPoint = segment.nextPoint;\n var currentAndPre = Math.pow(currentPoint[0] - prePoint[0], 2) + Math.pow(currentPoint[1] - prePoint[1], 2);\n var currentAndNext = Math.pow(currentPoint[0] - nextPoint[0], 2) + Math.pow(currentPoint[1] - nextPoint[1], 2);\n var preAndNext = Math.pow(prePoint[0] - nextPoint[0], 2) + Math.pow(prePoint[1] - nextPoint[1], 2);\n // 以 currentPoint 为顶点的夹角\n var currentAngle = Math.acos((currentAndPre + currentAndNext - preAndNext) / (2 * Math.sqrt(currentAndPre) * Math.sqrt(currentAndNext)));\n // 夹角为空、 0 或 PI 时,不需要计算夹角处的额外宽度\n // 注意: 由于计算精度问题,夹角为 0 的情况计算出来的角度可能是一个很小的值,还需要判断其与 0 是否近似相等\n if (!currentAngle || Math.sin(currentAngle) === 0 || isNumberEqual(currentAngle, 0)) {\n return {\n xExtra: 0,\n yExtra: 0\n };\n }\n var xAngle = Math.abs(Math.atan2(nextPoint[1] - currentPoint[1], nextPoint[0] - currentPoint[0]));\n var yAngle = Math.abs(Math.atan2(nextPoint[0] - currentPoint[0], nextPoint[1] - currentPoint[1]));\n // 将夹角转为锐角\n xAngle = xAngle > Math.PI / 2 ? Math.PI - xAngle : xAngle;\n yAngle = yAngle > Math.PI / 2 ? Math.PI - yAngle : yAngle;\n // 这里不考虑在水平和垂直方向的投影,直接使用最大差值\n // 由于上层统一加减了二分之一线宽,这里需要进行弥补\n var extra = {\n // 水平方向投影\n xExtra: Math.cos(currentAngle / 2 - xAngle) * (lineWidth / 2 * (1 / Math.sin(currentAngle / 2))) - lineWidth / 2 || 0,\n // 垂直方向投影\n yExtra: Math.cos(yAngle - currentAngle / 2) * (lineWidth / 2 * (1 / Math.sin(currentAngle / 2))) - lineWidth / 2 || 0\n };\n return extra;\n}\n\n// 点对称\nfunction toSymmetry(point, center) {\n return [center[0] + (center[0] - point[0]), center[1] + (center[1] - point[1])];\n}\nvar angleBetween = function angleBetween(v0, v1) {\n var p = v0.x * v1.x + v0.y * v1.y;\n var n = Math.sqrt((Math.pow(v0.x, 2) + Math.pow(v0.y, 2)) * (Math.pow(v1.x, 2) + Math.pow(v1.y, 2)));\n var sign = v0.x * v1.y - v0.y * v1.x < 0 ? -1 : 1;\n var angle = sign * Math.acos(p / n);\n return angle;\n};\n/**\n * @see https://github.com/rveciana/svg-path-properties/blob/b6bd9a322966f6ef7a311872d80c56e3718de861/src/arc.ts#L121\n */\nvar pointOnEllipticalArc = function pointOnEllipticalArc(p0, rx, ry, xAxisRotation, largeArcFlag, sweepFlag, p1, t) {\n // In accordance to: http://www.w3.org/TR/SVG/implnote.html#ArcOutOfRangeParameters\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n xAxisRotation = mod(xAxisRotation, 360);\n var xAxisRotationRadians = deg2rad(xAxisRotation);\n // If the endpoints are identical, then this is equivalent to omitting the elliptical arc segment entirely.\n if (p0.x === p1.x && p0.y === p1.y) {\n return {\n x: p0.x,\n y: p0.y,\n ellipticalArcAngle: 0\n }; // Check if angle is correct\n }\n\n // If rx = 0 or ry = 0 then this arc is treated as a straight line segment joining the endpoints.\n if (rx === 0 || ry === 0) {\n // return this.pointOnLine(p0, p1, t);\n return {\n x: 0,\n y: 0,\n ellipticalArcAngle: 0\n }; // Check if angle is correct\n }\n\n // Following \"Conversion from endpoint to center parameterization\"\n // http://www.w3.org/TR/SVG/implnote.html#ArcConversionEndpointToCenter\n\n // Step #1: Compute transformedPoint\n var dx = (p0.x - p1.x) / 2;\n var dy = (p0.y - p1.y) / 2;\n var transformedPoint = {\n x: Math.cos(xAxisRotationRadians) * dx + Math.sin(xAxisRotationRadians) * dy,\n y: -Math.sin(xAxisRotationRadians) * dx + Math.cos(xAxisRotationRadians) * dy\n };\n // Ensure radii are large enough\n var radiiCheck = Math.pow(transformedPoint.x, 2) / Math.pow(rx, 2) + Math.pow(transformedPoint.y, 2) / Math.pow(ry, 2);\n if (radiiCheck > 1) {\n rx *= Math.sqrt(radiiCheck);\n ry *= Math.sqrt(radiiCheck);\n }\n\n // Step #2: Compute transformedCenter\n var cSquareNumerator = Math.pow(rx, 2) * Math.pow(ry, 2) - Math.pow(rx, 2) * Math.pow(transformedPoint.y, 2) - Math.pow(ry, 2) * Math.pow(transformedPoint.x, 2);\n var cSquareRootDenom = Math.pow(rx, 2) * Math.pow(transformedPoint.y, 2) + Math.pow(ry, 2) * Math.pow(transformedPoint.x, 2);\n var cRadicand = cSquareNumerator / cSquareRootDenom;\n // Make sure this never drops below zero because of precision\n cRadicand = cRadicand < 0 ? 0 : cRadicand;\n var cCoef = (largeArcFlag !== sweepFlag ? 1 : -1) * Math.sqrt(cRadicand);\n var transformedCenter = {\n x: cCoef * (rx * transformedPoint.y / ry),\n y: cCoef * (-(ry * transformedPoint.x) / rx)\n };\n\n // Step #3: Compute center\n var center = {\n x: Math.cos(xAxisRotationRadians) * transformedCenter.x - Math.sin(xAxisRotationRadians) * transformedCenter.y + (p0.x + p1.x) / 2,\n y: Math.sin(xAxisRotationRadians) * transformedCenter.x + Math.cos(xAxisRotationRadians) * transformedCenter.y + (p0.y + p1.y) / 2\n };\n\n // Step #4: Compute start/sweep angles\n // Start angle of the elliptical arc prior to the stretch and rotate operations.\n // Difference between the start and end angles\n var startVector = {\n x: (transformedPoint.x - transformedCenter.x) / rx,\n y: (transformedPoint.y - transformedCenter.y) / ry\n };\n var startAngle = angleBetween({\n x: 1,\n y: 0\n }, startVector);\n var endVector = {\n x: (-transformedPoint.x - transformedCenter.x) / rx,\n y: (-transformedPoint.y - transformedCenter.y) / ry\n };\n var sweepAngle = angleBetween(startVector, endVector);\n if (!sweepFlag && sweepAngle > 0) {\n sweepAngle -= 2 * Math.PI;\n } else if (sweepFlag && sweepAngle < 0) {\n sweepAngle += 2 * Math.PI;\n }\n // We use % instead of `mod(..)` because we want it to be -360deg to 360deg(but actually in radians)\n sweepAngle %= 2 * Math.PI;\n\n // From http://www.w3.org/TR/SVG/implnote.html#ArcParameterizationAlternatives\n var angle = startAngle + sweepAngle * t;\n var ellipseComponentX = rx * Math.cos(angle);\n var ellipseComponentY = ry * Math.sin(angle);\n var point = {\n x: Math.cos(xAxisRotationRadians) * ellipseComponentX - Math.sin(xAxisRotationRadians) * ellipseComponentY + center.x,\n y: Math.sin(xAxisRotationRadians) * ellipseComponentX + Math.cos(xAxisRotationRadians) * ellipseComponentY + center.y,\n ellipticalArcStartAngle: startAngle,\n ellipticalArcEndAngle: startAngle + sweepAngle,\n ellipticalArcAngle: angle,\n ellipticalArcCenter: center,\n resultantRx: rx,\n resultantRy: ry\n };\n return point;\n};\nfunction path2Segments(path) {\n var segments = [];\n var currentPoint = null; // 当前图形\n var nextParams = null; // 下一节点的 path 参数\n var startMovePoint = null; // 开始 M 的点,可能会有多个\n var lastStartMovePointIndex = 0; // 最近一个开始点 M 的索引\n var count = path.length;\n for (var i = 0; i < count; i++) {\n var params = path[i];\n nextParams = path[i + 1];\n var command = params[0];\n // 数学定义上的参数,便于后面的计算\n var segment = {\n command: command,\n prePoint: currentPoint,\n params: params,\n startTangent: null,\n endTangent: null,\n currentPoint: null,\n nextPoint: null,\n arcParams: null,\n box: null,\n cubicParams: null\n };\n switch (command) {\n case 'M':\n startMovePoint = [params[1], params[2]];\n lastStartMovePointIndex = i;\n break;\n case 'A':\n var arcParams = getArcParams(currentPoint, params);\n segment.arcParams = arcParams;\n break;\n }\n if (command === 'Z') {\n // 有了 Z 后,当前节点从开始 M 的点开始\n currentPoint = startMovePoint;\n // 如果当前点的命令为 Z,相当于当前点为最近一个 M 点,则下一个点直接指向最近一个 M 点的下一个点\n nextParams = path[lastStartMovePointIndex + 1];\n } else {\n var len = params.length;\n currentPoint = [params[len - 2], params[len - 1]];\n }\n if (nextParams && nextParams[0] === 'Z') {\n // 如果下一个点的命令为 Z,则下一个点直接指向最近一个 M 点\n nextParams = path[lastStartMovePointIndex];\n if (segments[lastStartMovePointIndex]) {\n // 如果下一个点的命令为 Z,则最近一个 M 点的前一个点为当前点\n segments[lastStartMovePointIndex].prePoint = currentPoint;\n }\n }\n segment.currentPoint = currentPoint;\n // 如果当前点与最近一个 M 点相同,则最近一个 M 点的前一个点为当前点的前一个点\n if (segments[lastStartMovePointIndex] && isSamePoint(currentPoint, segments[lastStartMovePointIndex].currentPoint)) {\n segments[lastStartMovePointIndex].prePoint = segment.prePoint;\n }\n var nextPoint = nextParams ? [nextParams[nextParams.length - 2], nextParams[nextParams.length - 1]] : null;\n segment.nextPoint = nextPoint;\n // Add startTangent and endTangent\n var prePoint = segment.prePoint;\n if (['L', 'H', 'V'].includes(command)) {\n segment.startTangent = [prePoint[0] - currentPoint[0], prePoint[1] - currentPoint[1]];\n segment.endTangent = [currentPoint[0] - prePoint[0], currentPoint[1] - prePoint[1]];\n } else if (command === 'Q') {\n // 二次贝塞尔曲线只有一个控制点\n var cp = [params[1], params[2]];\n // 二次贝塞尔曲线的终点为 currentPoint\n segment.startTangent = [prePoint[0] - cp[0], prePoint[1] - cp[1]];\n segment.endTangent = [currentPoint[0] - cp[0], currentPoint[1] - cp[1]];\n } else if (command === 'T') {\n var preSegment = segments[i - 1];\n var _cp = toSymmetry(preSegment.currentPoint, prePoint);\n if (preSegment.command === 'Q') {\n segment.command = 'Q';\n segment.startTangent = [prePoint[0] - _cp[0], prePoint[1] - _cp[1]];\n segment.endTangent = [currentPoint[0] - _cp[0], currentPoint[1] - _cp[1]];\n } else {\n // @ts-ignore\n segment.command = 'TL';\n segment.startTangent = [prePoint[0] - currentPoint[0], prePoint[1] - currentPoint[1]];\n segment.endTangent = [currentPoint[0] - prePoint[0], currentPoint[1] - prePoint[1]];\n }\n } else if (command === 'C') {\n // 三次贝塞尔曲线有两个控制点\n var cp1 = [params[1], params[2]];\n var cp2 = [params[3], params[4]];\n segment.startTangent = [prePoint[0] - cp1[0], prePoint[1] - cp1[1]];\n segment.endTangent = [currentPoint[0] - cp2[0], currentPoint[1] - cp2[1]];\n\n // horizontal line, eg. ['C', 100, 100, 100, 100, 200, 200]\n if (segment.startTangent[0] === 0 && segment.startTangent[1] === 0) {\n segment.startTangent = [cp1[0] - cp2[0], cp1[1] - cp2[1]];\n }\n if (segment.endTangent[0] === 0 && segment.endTangent[1] === 0) {\n segment.endTangent = [cp2[0] - cp1[0], cp2[1] - cp1[1]];\n }\n } else if (command === 'S') {\n var _preSegment = segments[i - 1];\n var _cp2 = toSymmetry(_preSegment.currentPoint, prePoint);\n var _cp3 = [params[1], params[2]];\n if (_preSegment.command === 'C') {\n segment.command = 'C'; // 将 S 命令变换为 C 命令\n segment.startTangent = [prePoint[0] - _cp2[0], prePoint[1] - _cp2[1]];\n segment.endTangent = [currentPoint[0] - _cp3[0], currentPoint[1] - _cp3[1]];\n } else {\n // @ts-ignore\n segment.command = 'SQ'; // 将 S 命令变换为 SQ 命令\n segment.startTangent = [prePoint[0] - _cp3[0], prePoint[1] - _cp3[1]];\n segment.endTangent = [currentPoint[0] - _cp3[0], currentPoint[1] - _cp3[1]];\n }\n } else if (command === 'A') {\n var _getTangentAtRatio = getTangentAtRatio(segment, 0),\n dx1 = _getTangentAtRatio.x,\n dy1 = _getTangentAtRatio.y;\n var _getTangentAtRatio2 = getTangentAtRatio(segment, 1, false),\n dx2 = _getTangentAtRatio2.x,\n dy2 = _getTangentAtRatio2.y;\n segment.startTangent = [dx1, dy1];\n segment.endTangent = [dx2, dy2];\n }\n segments.push(segment);\n }\n return segments;\n}\n\n/**\n * Use length instead of ratio\n */\nfunction getTangentAtRatio(segment, ratio) {\n var sign = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _segment$arcParams = segment.arcParams,\n _segment$arcParams$rx = _segment$arcParams.rx,\n rx = _segment$arcParams$rx === void 0 ? 0 : _segment$arcParams$rx,\n _segment$arcParams$ry = _segment$arcParams.ry,\n ry = _segment$arcParams$ry === void 0 ? 0 : _segment$arcParams$ry,\n xRotation = _segment$arcParams.xRotation,\n arcFlag = _segment$arcParams.arcFlag,\n sweepFlag = _segment$arcParams.sweepFlag;\n var p1 = pointOnEllipticalArc({\n x: segment.prePoint[0],\n y: segment.prePoint[1]\n }, rx, ry, xRotation, !!arcFlag, !!sweepFlag, {\n x: segment.currentPoint[0],\n y: segment.currentPoint[1]\n }, ratio);\n var p2 = pointOnEllipticalArc({\n x: segment.prePoint[0],\n y: segment.prePoint[1]\n }, rx, ry, xRotation, !!arcFlag, !!sweepFlag, {\n x: segment.currentPoint[0],\n y: segment.currentPoint[1]\n }, sign ? ratio + 0.005 : ratio - 0.005);\n var xDist = p2.x - p1.x;\n var yDist = p2.y - p1.y;\n var dist = Math.sqrt(xDist * xDist + yDist * yDist);\n return {\n x: -xDist / dist,\n y: -yDist / dist\n };\n}\n\n// 向量长度\nfunction vMag(v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n\n// u.v/|u||v|,计算夹角的余弦值\nfunction vRatio(u, v) {\n // 当存在一个向量的长度为 0 时,夹角也为 0,即夹角的余弦值为 1\n return vMag(u) * vMag(v) ? (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)) : 1;\n}\n\n// 向量角度\nfunction vAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n}\nfunction getArcParams(startPoint, params) {\n var rx = params[1];\n var ry = params[2];\n var xRotation = mod(deg2rad(params[3]), Math.PI * 2);\n var arcFlag = params[4];\n var sweepFlag = params[5];\n // 弧形起点坐标\n var x1 = startPoint[0];\n var y1 = startPoint[1];\n // 弧形终点坐标\n var x2 = params[6];\n var y2 = params[7];\n var xp = Math.cos(xRotation) * (x1 - x2) / 2.0 + Math.sin(xRotation) * (y1 - y2) / 2.0;\n var yp = -1 * Math.sin(xRotation) * (x1 - x2) / 2.0 + Math.cos(xRotation) * (y1 - y2) / 2.0;\n var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n var diff = rx * rx * (yp * yp) + ry * ry * (xp * xp);\n var f = diff ? Math.sqrt((rx * rx * (ry * ry) - diff) / diff) : 1;\n if (arcFlag === sweepFlag) {\n f *= -1;\n }\n if (isNaN(f)) {\n f = 0;\n }\n\n // 旋转前的起点坐标,且当长半轴和短半轴的长度为 0 时,坐标按 (0, 0) 处理\n var cxp = ry ? f * rx * yp / ry : 0;\n var cyp = rx ? f * -ry * xp / rx : 0;\n\n // 椭圆圆心坐标\n var cx = (x1 + x2) / 2.0 + Math.cos(xRotation) * cxp - Math.sin(xRotation) * cyp;\n var cy = (y1 + y2) / 2.0 + Math.sin(xRotation) * cxp + Math.cos(xRotation) * cyp;\n\n // 起始点的单位向量\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n // 终止点的单位向量\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n // 计算起始点和圆心的连线,与 x 轴正方向的夹角\n var theta = vAngle([1, 0], u);\n\n // 计算圆弧起始点和终止点与椭圆圆心连线的夹角\n var dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (sweepFlag === 0 && dTheta > 0) {\n dTheta -= 2 * Math.PI;\n }\n if (sweepFlag === 1 && dTheta < 0) {\n dTheta += 2 * Math.PI;\n }\n return {\n cx: cx,\n cy: cy,\n // 弧形的起点和终点相同时,长轴和短轴的长度按 0 处理\n rx: isSamePoint(startPoint, [x2, y2]) ? 0 : rx,\n ry: isSamePoint(startPoint, [x2, y2]) ? 0 : ry,\n startAngle: theta,\n endAngle: theta + dTheta,\n xRotation: xRotation,\n arcFlag: arcFlag,\n sweepFlag: sweepFlag\n };\n}\nfunction commandsToPathString(commands, object, transform) {\n return commands.reduce(function (prev, cur) {\n var path = '';\n if (cur[0] === 'M' || cur[0] === 'L') {\n var p = vec3.fromValues(cur[1], cur[2], 0);\n if (transform) {\n vec3.transformMat4(p, p, transform);\n }\n path = \"\".concat(cur[0]).concat(p[0], \",\").concat(p[1]);\n } else if (cur[0] === 'Z') {\n path = cur[0];\n } else if (cur[0] === 'C') {\n var p1 = vec3.fromValues(cur[1], cur[2], 0);\n var p2 = vec3.fromValues(cur[3], cur[4], 0);\n var p3 = vec3.fromValues(cur[5], cur[6], 0);\n if (transform) {\n vec3.transformMat4(p1, p1, transform);\n vec3.transformMat4(p2, p2, transform);\n vec3.transformMat4(p3, p3, transform);\n }\n path = \"\".concat(cur[0]).concat(p1[0], \",\").concat(p1[1], \",\").concat(p2[0], \",\").concat(p2[1], \",\").concat(p3[0], \",\").concat(p3[1]);\n } else if (cur[0] === 'A') {\n var c = vec3.fromValues(cur[6], cur[7], 0);\n if (transform) {\n vec3.transformMat4(c, c, transform);\n }\n path = \"\".concat(cur[0]).concat(cur[1], \",\").concat(cur[2], \",\").concat(cur[3], \",\").concat(cur[4], \",\").concat(cur[5], \",\").concat(c[0], \",\").concat(c[1]);\n } else if (cur[0] === 'Q') {\n var _p = vec3.fromValues(cur[1], cur[2], 0);\n var _p2 = vec3.fromValues(cur[3], cur[4], 0);\n if (transform) {\n vec3.transformMat4(_p, _p, transform);\n vec3.transformMat4(_p2, _p2, transform);\n }\n path = \"\".concat(cur[0]).concat(cur[1], \",\").concat(cur[2], \",\").concat(cur[3], \",\").concat(cur[4], \"}\");\n }\n return prev += path;\n }, '');\n}\nfunction lineToCommands(x1, y1, x2, y2) {\n return [['M', x1, y1], ['L', x2, y2]];\n}\nfunction ellipseToCommands(rx, ry, cx, cy) {\n var factor = (-1 + Math.sqrt(2)) / 3 * 4;\n var dx = rx * factor;\n var dy = ry * factor;\n var left = cx - rx;\n var right = cx + rx;\n var top = cy - ry;\n var bottom = cy + ry;\n return [['M', left, cy], ['C', left, cy - dy, cx - dx, top, cx, top], ['C', cx + dx, top, right, cy - dy, right, cy], ['C', right, cy + dy, cx + dx, bottom, cx, bottom], ['C', cx - dx, bottom, left, cy + dy, left, cy], ['Z']];\n}\nfunction polygonToCommands(points, closed) {\n var result = points.map(function (point, i) {\n return [i === 0 ? 'M' : 'L', point[0], point[1]];\n });\n if (closed) {\n result.push(['Z']);\n }\n return result;\n}\nfunction rectToCommands(width, height, x, y, radius) {\n // @see https://gist.github.com/danielpquinn/dd966af424030d47e476\n if (radius) {\n var _radius = _slicedToArray(radius, 4),\n tlr = _radius[0],\n trr = _radius[1],\n brr = _radius[2],\n blr = _radius[3];\n var signX = width > 0 ? 1 : -1;\n var signY = height > 0 ? 1 : -1;\n // sweep-flag @see https://developer.mozilla.org/zh-CN/docs/Web/SVG/Tutorial/Paths#arcs\n var sweepFlag = signX + signY !== 0 ? 1 : 0;\n return [['M', signX * tlr + x, y], ['L', width - signX * trr + x, y], trr ? ['A', trr, trr, 0, 0, sweepFlag, width + x, signY * trr + y] : null, ['L', width + x, height - signY * brr + y], brr ? ['A', brr, brr, 0, 0, sweepFlag, width + x - signX * brr, height + y] : null, ['L', x + signX * blr, height + y], blr ? ['A', blr, blr, 0, 0, sweepFlag, x, height + y - signY * blr] : null, ['L', x, signY * tlr + y], tlr ? ['A', tlr, tlr, 0, 0, sweepFlag, signX * tlr + x, y] : null, ['Z']].filter(function (command) {\n return command;\n });\n }\n return [['M', x, y], ['L', x + width, y], ['L', x + width, y + height], ['L', x, y + height], ['Z']];\n}\n\n/**\n * convert object to path, should account for:\n * * transform & origin\n * * lineWidth\n */\nfunction convertToPath(object) {\n var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : object.getLocalTransform();\n var commands = [];\n switch (object.nodeName) {\n case Shape.LINE:\n var _parsedStyle = object.parsedStyle,\n _parsedStyle$x = _parsedStyle.x1,\n x1 = _parsedStyle$x === void 0 ? 0 : _parsedStyle$x,\n _parsedStyle$y = _parsedStyle.y1,\n y1 = _parsedStyle$y === void 0 ? 0 : _parsedStyle$y,\n _parsedStyle$x2 = _parsedStyle.x2,\n x2 = _parsedStyle$x2 === void 0 ? 0 : _parsedStyle$x2,\n _parsedStyle$y2 = _parsedStyle.y2,\n y2 = _parsedStyle$y2 === void 0 ? 0 : _parsedStyle$y2;\n commands = lineToCommands(x1, y1, x2, y2);\n break;\n case Shape.CIRCLE:\n {\n var _parsedStyle2 = object.parsedStyle,\n _parsedStyle2$r = _parsedStyle2.r,\n r = _parsedStyle2$r === void 0 ? 0 : _parsedStyle2$r,\n _parsedStyle2$cx = _parsedStyle2.cx,\n cx = _parsedStyle2$cx === void 0 ? 0 : _parsedStyle2$cx,\n _parsedStyle2$cy = _parsedStyle2.cy,\n cy = _parsedStyle2$cy === void 0 ? 0 : _parsedStyle2$cy;\n commands = ellipseToCommands(r, r, cx, cy);\n break;\n }\n case Shape.ELLIPSE:\n {\n var _parsedStyle3 = object.parsedStyle,\n _parsedStyle3$rx = _parsedStyle3.rx,\n rx = _parsedStyle3$rx === void 0 ? 0 : _parsedStyle3$rx,\n _parsedStyle3$ry = _parsedStyle3.ry,\n ry = _parsedStyle3$ry === void 0 ? 0 : _parsedStyle3$ry,\n _parsedStyle3$cx = _parsedStyle3.cx,\n _cx = _parsedStyle3$cx === void 0 ? 0 : _parsedStyle3$cx,\n _parsedStyle3$cy = _parsedStyle3.cy,\n _cy = _parsedStyle3$cy === void 0 ? 0 : _parsedStyle3$cy;\n commands = ellipseToCommands(rx, ry, _cx, _cy);\n break;\n }\n case Shape.POLYLINE:\n case Shape.POLYGON:\n var points = object.parsedStyle.points;\n commands = polygonToCommands(points.points, object.nodeName === Shape.POLYGON);\n break;\n case Shape.RECT:\n var _parsedStyle4 = object.parsedStyle,\n _parsedStyle4$width = _parsedStyle4.width,\n width = _parsedStyle4$width === void 0 ? 0 : _parsedStyle4$width,\n _parsedStyle4$height = _parsedStyle4.height,\n height = _parsedStyle4$height === void 0 ? 0 : _parsedStyle4$height,\n _parsedStyle4$x = _parsedStyle4.x,\n x = _parsedStyle4$x === void 0 ? 0 : _parsedStyle4$x,\n _parsedStyle4$y = _parsedStyle4.y,\n y = _parsedStyle4$y === void 0 ? 0 : _parsedStyle4$y,\n radius = _parsedStyle4.radius;\n var hasRadius = radius && radius.some(function (r) {\n return r !== 0;\n });\n commands = rectToCommands(width, height, x, y, hasRadius && radius.map(function (r) {\n return clamp(r, 0, Math.min(Math.abs(width) / 2, Math.abs(height) / 2));\n }));\n break;\n case Shape.PATH:\n var absolutePath = object.parsedStyle.d.absolutePath;\n commands = _toConsumableArray(absolutePath);\n break;\n }\n if (commands.length) {\n return commandsToPathString(commands, object, transform);\n }\n}\nfunction translatePathToString(absolutePath) {\n var startOffsetX = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var startOffsetY = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var endOffsetX = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var endOffsetY = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var newValue = absolutePath.map(function (params, i) {\n var command = params[0];\n var nextSegment = absolutePath[i + 1];\n var useStartOffset = i === 0 && (startOffsetX !== 0 || startOffsetY !== 0);\n var useEndOffset = (i === absolutePath.length - 1 || nextSegment && (nextSegment[0] === 'M' || nextSegment[0] === 'Z')) && endOffsetX !== 0 && endOffsetY !== 0;\n var _ref = useStartOffset ? [startOffsetX, startOffsetY] : [0, 0],\n _ref2 = _slicedToArray(_ref, 2),\n startOffsetXTemp = _ref2[0],\n startOffsetYTemp = _ref2[1];\n var _ref3 = useEndOffset ? [endOffsetX, endOffsetY] : [0, 0],\n _ref4 = _slicedToArray(_ref3, 2),\n endOffsetXTemp = _ref4[0],\n endOffsetYTemp = _ref4[1];\n switch (command) {\n case 'M':\n return \"M \".concat(params[1] + startOffsetXTemp, \",\").concat(params[2] + startOffsetYTemp);\n case 'L':\n return \"L \".concat(params[1] + endOffsetXTemp, \",\").concat(params[2] + endOffsetYTemp);\n case 'Q':\n return \"Q \".concat(params[1], \" \").concat(params[2], \",\").concat(params[3] + endOffsetXTemp, \" \").concat(params[4] + endOffsetYTemp);\n case 'C':\n return \"C \".concat(params[1], \" \").concat(params[2], \",\").concat(params[3], \" \").concat(params[4], \",\").concat(params[5] + endOffsetXTemp, \" \").concat(params[6] + endOffsetYTemp);\n case 'A':\n return \"A \".concat(params[1], \" \").concat(params[2], \" \").concat(params[3], \" \").concat(params[4], \" \").concat(params[5], \" \").concat(params[6], \" \").concat(params[7]).concat(useEndOffset ? \" L \".concat(params[6] + endOffsetX, \",\").concat(params[7] + endOffsetY) : '');\n case 'Z':\n return 'Z';\n default:\n return null;\n }\n }).filter(function (item) {\n return item !== null;\n }).join(' ');\n if (~newValue.indexOf('NaN')) {\n return '';\n }\n return newValue;\n}\n\nvar internalParsePath = function internalParsePath(path) {\n // empty path\n if (path === '' || Array.isArray(path) && path.length === 0) {\n return {\n absolutePath: [],\n hasArc: false,\n segments: [],\n polygons: [],\n polylines: [],\n curve: null,\n totalLength: 0,\n rect: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n }\n };\n }\n var absolutePath;\n try {\n absolutePath = normalizePath(path);\n } catch (_unused) {\n absolutePath = normalizePath('');\n console.error(\"[g]: Invalid SVG Path definition: \".concat(path));\n }\n removeRedundantMCommand(absolutePath);\n var hasArc = hasArcOrBezier(absolutePath);\n var _extractPolygons = extractPolygons(absolutePath),\n polygons = _extractPolygons.polygons,\n polylines = _extractPolygons.polylines;\n\n // for later use\n var segments = path2Segments(absolutePath);\n\n // Only calculate bbox here since we don't need length now.\n var _getPathBBox = getPathBBox(segments, 0),\n x = _getPathBBox.x,\n y = _getPathBBox.y,\n width = _getPathBBox.width,\n height = _getPathBBox.height;\n return {\n absolutePath: absolutePath,\n hasArc: hasArc,\n segments: segments,\n polygons: polygons,\n polylines: polylines,\n // curve,\n // Delay the calculation of length.\n totalLength: 0,\n rect: {\n x: Number.isFinite(x) ? x : 0,\n y: Number.isFinite(y) ? y : 0,\n width: Number.isFinite(width) ? width : 0,\n height: Number.isFinite(height) ? height : 0\n }\n };\n};\nvar memoizedParsePath = memoize(internalParsePath);\nfunction parsePath(path) {\n return isString(path) ? memoizedParsePath(path) : internalParsePath(path);\n}\nfunction mergePaths(left, right, object) {\n var curve1 = left.curve;\n var curve2 = right.curve;\n if (!curve1 || curve1.length === 0) {\n // convert to curves to do morphing & picking later\n // @see http://thednp.github.io/kute.js/svgCubicMorph.html\n curve1 = path2Curve(left.absolutePath, false);\n left.curve = curve1;\n }\n if (!curve2 || curve2.length === 0) {\n curve2 = path2Curve(right.absolutePath, false);\n right.curve = curve2;\n }\n var curves = [curve1, curve2];\n if (curve1.length !== curve2.length) {\n curves = equalizeSegments(curve1, curve2);\n }\n var curve0 = getDrawDirection(curves[0]) !== getDrawDirection(curves[1]) ? reverseCurve(curves[0]) : clonePath(curves[0]);\n return [curve0, getRotatedCurve(curves[1], curve0), function (pathArray) {\n // need converting to path string?\n return pathArray;\n }];\n}\n\n/**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/SVG/Attribute/points\n *\n * @example\n * points=\"100,10 250,150 200,110\"\n */\nfunction parsePoints(pointsOrStr, object) {\n var points;\n if (isString(pointsOrStr)) {\n points = pointsOrStr.split(' ').map(function (pointStr) {\n var _pointStr$split = pointStr.split(','),\n _pointStr$split2 = _slicedToArray(_pointStr$split, 2),\n x = _pointStr$split2[0],\n y = _pointStr$split2[1];\n return [Number(x), Number(y)];\n });\n } else {\n points = pointsOrStr;\n }\n return {\n points: points,\n totalLength: 0,\n segments: []\n };\n}\nfunction mergePoints(left, right) {\n return [left.points, right.points, function (points) {\n return points;\n }];\n}\n\n// eg. { t: 'scale', d: [CSSUnitValue(1), CSSUnitValue(2)] }\n\nvar _ = null;\nvar TRANSFORM_REGEXP = /\\s*(\\w+)\\(([^)]*)\\)/g;\nfunction cast(pattern) {\n return function (contents) {\n var i = 0;\n return pattern.map(function (x) {\n return x === _ ? contents[i++] : x;\n });\n };\n}\nfunction id(x) {\n return x;\n}\n\n// type: [argTypes, convertTo3D, convertTo2D]\n// In the argument types string, lowercase characters represent optional arguments\nvar transformFunctions = {\n // @ts-ignore\n matrix: ['NNNNNN', [_, _, 0, 0, _, _, 0, 0, 0, 0, 1, 0, _, _, 0, 1], id],\n matrix3d: ['NNNNNNNNNNNNNNNN', id],\n rotate: ['A'],\n rotateX: ['A'],\n rotateY: ['A'],\n rotateZ: ['A'],\n rotate3d: ['NNNA'],\n perspective: ['L'],\n scale: ['Nn', cast([_, _, new CSSUnitValue(1)]), id],\n scaleX: ['N', cast([_, new CSSUnitValue(1), new CSSUnitValue(1)]), cast([_, new CSSUnitValue(1)])],\n scaleY: ['N', cast([new CSSUnitValue(1), _, new CSSUnitValue(1)]), cast([new CSSUnitValue(1), _])],\n scaleZ: ['N', cast([new CSSUnitValue(1), new CSSUnitValue(1), _])],\n scale3d: ['NNN', id],\n skew: ['Aa', null, id],\n skewX: ['A', null, cast([_, Odeg])],\n skewY: ['A', null, cast([Odeg, _])],\n translate: ['Tt', cast([_, _, Opx]), id],\n translateX: ['T', cast([_, Opx, Opx]), cast([_, Opx])],\n translateY: ['T', cast([Opx, _, Opx]), cast([Opx, _])],\n translateZ: ['L', cast([Opx, Opx, _])],\n translate3d: ['TTL', id]\n};\nfunction parseArrayTransform(transform) {\n var result = [];\n var length = transform.length;\n for (var i = 0; i < length; i++) {\n var item = transform[i];\n var name = item[0];\n var args = item.slice(1);\n // infer default value\n if (name === 'translate' || name === 'skew') {\n if (args.length === 1) args.push(0);\n } else if (name === 'scale') {\n if (args.length === 1) args.push(args[0]);\n }\n var functionData = transformFunctions[name];\n if (!functionData) return [];\n var parsedArgs = args.map(function (value) {\n return getOrCreateUnitValue(value);\n });\n result.push({\n t: name,\n d: parsedArgs\n });\n }\n return result;\n}\n\n/**\n * none\n * scale(1) scale(1, 2)\n * scaleX(1)\n */\nfunction parseTransform(transform) {\n if (Array.isArray(transform)) {\n return parseArrayTransform(transform);\n }\n transform = (transform || 'none').trim();\n if (transform === 'none') {\n return [];\n }\n var result = [];\n var match;\n var prevLastIndex = 0;\n TRANSFORM_REGEXP.lastIndex = 0;\n while (match = TRANSFORM_REGEXP.exec(transform)) {\n if (match.index !== prevLastIndex) {\n return [];\n }\n prevLastIndex = match.index + match[0].length;\n var functionName = match[1]; // scale\n var functionData = transformFunctions[functionName]; // scale(1, 2)\n if (!functionData) {\n // invalid, eg. scale()\n return [];\n }\n var args = match[2].split(','); // 1,2\n var argTypes = functionData[0]; // Nn\n if (argTypes.length < args.length) {\n // scale(N, n)\n return [];\n }\n var parsedArgs = [];\n for (var i = 0; i < argTypes.length; i++) {\n var arg = args[i];\n var type = argTypes[i];\n var parsedArg = void 0;\n if (!arg) {\n // @ts-ignore\n parsedArg = {\n a: Odeg,\n n: parsedArgs[0],\n t: Opx\n }[type];\n } else {\n // @ts-ignore\n parsedArg = {\n A: function A(s) {\n return s.trim() === '0' ? Odeg : parseAngle(s);\n },\n N: parseNumber,\n T: parseLengthOrPercentage,\n L: parseLength\n }[type.toUpperCase()](arg);\n }\n if (parsedArg === undefined) {\n return [];\n }\n parsedArgs.push(parsedArg);\n }\n result.push({\n t: functionName,\n d: parsedArgs\n }); // { t: scale, d: [1, 2] }\n\n if (TRANSFORM_REGEXP.lastIndex === transform.length) {\n return result;\n }\n }\n return [];\n}\nfunction parseTransformUnmemoize(transform) {\n if (Array.isArray(transform)) {\n return parseArrayTransform(transform);\n }\n transform = (transform || 'none').trim();\n if (transform === 'none') {\n return [];\n }\n var result = [];\n var match;\n var prevLastIndex = 0;\n TRANSFORM_REGEXP.lastIndex = 0;\n while (match = TRANSFORM_REGEXP.exec(transform)) {\n if (match.index !== prevLastIndex) {\n return [];\n }\n prevLastIndex = match.index + match[0].length;\n var functionName = match[1]; // scale\n var functionData = transformFunctions[functionName]; // scale(1, 2)\n if (!functionData) {\n // invalid, eg. scale()\n return [];\n }\n var args = match[2].split(','); // 1,2\n var argTypes = functionData[0]; // Nn\n if (argTypes.length < args.length) {\n // scale(N, n)\n return [];\n }\n var parsedArgs = [];\n for (var i = 0; i < argTypes.length; i++) {\n var arg = args[i];\n var type = argTypes[i];\n var parsedArg = void 0;\n if (!arg) {\n // @ts-ignore\n parsedArg = {\n a: Odeg,\n n: parsedArgs[0],\n t: Opx\n }[type];\n } else {\n // @ts-ignore\n parsedArg = {\n A: function A(s) {\n return s.trim() === '0' ? Odeg : parseAngleUnmemoize(s);\n },\n N: parseNumberUnmemoize,\n T: parseLengthOrPercentageUnmemoize,\n L: parseLengthUnmemoize\n }[type.toUpperCase()](arg);\n }\n if (parsedArg === undefined) {\n return [];\n }\n parsedArgs.push(parsedArg);\n }\n result.push({\n t: functionName,\n d: parsedArgs\n }); // { t: scale, d: [1, 2] }\n\n if (TRANSFORM_REGEXP.lastIndex === transform.length) {\n return result;\n }\n }\n return [];\n}\nfunction convertItemToMatrix(item) {\n var x;\n var y;\n var z;\n var angle;\n switch (item.t) {\n case 'rotateX':\n angle = deg2rad(convertAngleUnit(item.d[0]));\n return [1, 0, 0, 0, 0, Math.cos(angle), Math.sin(angle), 0, 0, -Math.sin(angle), Math.cos(angle), 0, 0, 0, 0, 1];\n case 'rotateY':\n angle = deg2rad(convertAngleUnit(item.d[0]));\n return [Math.cos(angle), 0, -Math.sin(angle), 0, 0, 1, 0, 0, Math.sin(angle), 0, Math.cos(angle), 0, 0, 0, 0, 1];\n case 'rotate':\n case 'rotateZ':\n angle = deg2rad(convertAngleUnit(item.d[0]));\n return [Math.cos(angle), Math.sin(angle), 0, 0, -Math.sin(angle), Math.cos(angle), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n case 'rotate3d':\n x = item.d[0].value;\n y = item.d[1].value;\n z = item.d[2].value;\n angle = deg2rad(convertAngleUnit(item.d[3]));\n var sqrLength = x * x + y * y + z * z;\n if (sqrLength === 0) {\n x = 1;\n y = 0;\n z = 0;\n } else if (sqrLength !== 1) {\n var length = Math.sqrt(sqrLength);\n x /= length;\n y /= length;\n z /= length;\n }\n var s = Math.sin(angle / 2);\n var sc = s * Math.cos(angle / 2);\n var sq = s * s;\n return [1 - 2 * (y * y + z * z) * sq, 2 * (x * y * sq + z * sc), 2 * (x * z * sq - y * sc), 0, 2 * (x * y * sq - z * sc), 1 - 2 * (x * x + z * z) * sq, 2 * (y * z * sq + x * sc), 0, 2 * (x * z * sq + y * sc), 2 * (y * z * sq - x * sc), 1 - 2 * (x * x + y * y) * sq, 0, 0, 0, 0, 1];\n case 'scale':\n return [item.d[0].value, 0, 0, 0, 0, item.d[1].value, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n case 'scaleX':\n return [item.d[0].value, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n case 'scaleY':\n return [1, 0, 0, 0, 0, item.d[0].value, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n case 'scaleZ':\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, item.d[0].value, 0, 0, 0, 0, 1];\n case 'scale3d':\n return [item.d[0].value, 0, 0, 0, 0, item.d[1].value, 0, 0, 0, 0, item.d[2].value, 0, 0, 0, 0, 1];\n case 'skew':\n var xAngle = deg2rad(convertAngleUnit(item.d[0]));\n var yAngle = deg2rad(convertAngleUnit(item.d[1]));\n return [1, Math.tan(yAngle), 0, 0, Math.tan(xAngle), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n case 'skewX':\n angle = deg2rad(convertAngleUnit(item.d[0]));\n return [1, 0, 0, 0, Math.tan(angle), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n case 'skewY':\n angle = deg2rad(convertAngleUnit(item.d[0]));\n return [1, Math.tan(angle), 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n case 'translate':\n // TODO: pass target\n x = convertPercentUnit(item.d[0], 0, null) || 0;\n y = convertPercentUnit(item.d[1], 0, null) || 0;\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, x, y, 0, 1];\n case 'translateX':\n x = convertPercentUnit(item.d[0], 0, null) || 0;\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, x, 0, 0, 1];\n case 'translateY':\n y = convertPercentUnit(item.d[0], 0, null) || 0;\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, y, 0, 1];\n case 'translateZ':\n z = convertPercentUnit(item.d[0], 0, null) || 0;\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, z, 1];\n case 'translate3d':\n x = convertPercentUnit(item.d[0], 0, null) || 0;\n y = convertPercentUnit(item.d[1], 0, null) || 0;\n z = convertPercentUnit(item.d[2], 0, null) || 0;\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, x, y, z, 1];\n case 'perspective':\n var t = convertPercentUnit(item.d[0], 0, null) || 0;\n var p = t ? -1 / t : 0;\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, p, 0, 0, 0, 1];\n case 'matrix':\n return [item.d[0].value, item.d[1].value, 0, 0, item.d[2].value, item.d[3].value, 0, 0, 0, 0, 1, 0, item.d[4].value, item.d[5].value, 0, 1];\n case 'matrix3d':\n return item.d.map(function (d) {\n return d.value;\n });\n }\n}\nfunction multiplyMatrices(a, b) {\n return [a[0] * b[0] + a[4] * b[1] + a[8] * b[2] + a[12] * b[3], a[1] * b[0] + a[5] * b[1] + a[9] * b[2] + a[13] * b[3], a[2] * b[0] + a[6] * b[1] + a[10] * b[2] + a[14] * b[3], a[3] * b[0] + a[7] * b[1] + a[11] * b[2] + a[15] * b[3], a[0] * b[4] + a[4] * b[5] + a[8] * b[6] + a[12] * b[7], a[1] * b[4] + a[5] * b[5] + a[9] * b[6] + a[13] * b[7], a[2] * b[4] + a[6] * b[5] + a[10] * b[6] + a[14] * b[7], a[3] * b[4] + a[7] * b[5] + a[11] * b[6] + a[15] * b[7], a[0] * b[8] + a[4] * b[9] + a[8] * b[10] + a[12] * b[11], a[1] * b[8] + a[5] * b[9] + a[9] * b[10] + a[13] * b[11], a[2] * b[8] + a[6] * b[9] + a[10] * b[10] + a[14] * b[11], a[3] * b[8] + a[7] * b[9] + a[11] * b[10] + a[15] * b[11], a[0] * b[12] + a[4] * b[13] + a[8] * b[14] + a[12] * b[15], a[1] * b[12] + a[5] * b[13] + a[9] * b[14] + a[13] * b[15], a[2] * b[12] + a[6] * b[13] + a[10] * b[14] + a[14] * b[15], a[3] * b[12] + a[7] * b[13] + a[11] * b[14] + a[15] * b[15]];\n}\nfunction convertToMatrix(transformList) {\n if (transformList.length === 0) {\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n }\n return transformList.map(convertItemToMatrix).reduce(multiplyMatrices);\n}\nfunction makeMatrixDecomposition(transformList) {\n var translate = [0, 0, 0];\n var scale = [1, 1, 1];\n var skew = [0, 0, 0];\n var perspective = [0, 0, 0, 1];\n var quaternion = [0, 0, 0, 1];\n decomposeMat4(\n // @ts-ignore\n convertToMatrix(transformList), translate, scale, skew, perspective, quaternion);\n return [[translate, scale, skew, quaternion, perspective]];\n}\nvar composeMatrix = function () {\n function multiply(a, b) {\n var result = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];\n for (var i = 0; i < 4; i++) {\n for (var j = 0; j < 4; j++) {\n for (var k = 0; k < 4; k++) {\n result[i][j] += b[i][k] * a[k][j];\n }\n }\n }\n return result;\n }\n function is2D(m) {\n return m[0][2] === 0 && m[0][3] === 0 && m[1][2] === 0 && m[1][3] === 0 && m[2][0] === 0 && m[2][1] === 0 && m[2][2] === 1 && m[2][3] === 0 && m[3][2] === 0 && m[3][3] === 1;\n }\n function composeMatrix(translate, scale, skew, quat, perspective) {\n var matrix = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]];\n for (var i = 0; i < 4; i++) {\n matrix[i][3] = perspective[i];\n }\n for (var _i = 0; _i < 3; _i++) {\n for (var j = 0; j < 3; j++) {\n matrix[3][_i] += translate[j] * matrix[j][_i];\n }\n }\n var x = quat[0];\n var y = quat[1];\n var z = quat[2];\n var w = quat[3];\n var rotMatrix = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]];\n rotMatrix[0][0] = 1 - 2 * (y * y + z * z);\n rotMatrix[0][1] = 2 * (x * y - z * w);\n rotMatrix[0][2] = 2 * (x * z + y * w);\n rotMatrix[1][0] = 2 * (x * y + z * w);\n rotMatrix[1][1] = 1 - 2 * (x * x + z * z);\n rotMatrix[1][2] = 2 * (y * z - x * w);\n rotMatrix[2][0] = 2 * (x * z - y * w);\n rotMatrix[2][1] = 2 * (y * z + x * w);\n rotMatrix[2][2] = 1 - 2 * (x * x + y * y);\n matrix = multiply(matrix, rotMatrix);\n var temp = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]];\n if (skew[2]) {\n temp[2][1] = skew[2];\n matrix = multiply(matrix, temp);\n }\n if (skew[1]) {\n temp[2][1] = 0;\n temp[2][0] = skew[0];\n matrix = multiply(matrix, temp);\n }\n if (skew[0]) {\n temp[2][0] = 0;\n temp[1][0] = skew[0];\n matrix = multiply(matrix, temp);\n }\n for (var _i2 = 0; _i2 < 3; _i2++) {\n for (var _j = 0; _j < 3; _j++) {\n matrix[_i2][_j] *= scale[_i2];\n }\n }\n if (is2D(matrix)) {\n return [matrix[0][0], matrix[0][1], matrix[1][0], matrix[1][1], matrix[3][0], matrix[3][1]];\n }\n return matrix[0].concat(matrix[1], matrix[2], matrix[3]);\n }\n return composeMatrix;\n}();\nfunction numberToLongString(x) {\n return x.toFixed(6).replace('.000000', '');\n}\nfunction mergeMatrices(left, right) {\n var leftArgs;\n var rightArgs;\n // @ts-ignore\n if (left.decompositionPair !== right) {\n // @ts-ignore\n left.decompositionPair = right;\n // @ts-ignore\n leftArgs = makeMatrixDecomposition(left);\n }\n // @ts-ignore\n if (right.decompositionPair !== left) {\n // @ts-ignore\n right.decompositionPair = left;\n // @ts-ignore\n rightArgs = makeMatrixDecomposition(right);\n }\n if (leftArgs[0] === null || rightArgs[0] === null) return [\n // @ts-ignore\n [false],\n // @ts-ignore\n [true],\n // @ts-ignore\n function (x) {\n return x ? right[0].d : left[0].d;\n }];\n leftArgs[0].push(0);\n rightArgs[0].push(1);\n return [leftArgs, rightArgs,\n // @ts-ignore\n function (list) {\n // @ts-ignore\n var q = quat(leftArgs[0][3], rightArgs[0][3], list[5]);\n var mat = composeMatrix(list[0], list[1], list[2], q, list[4]);\n var stringifiedArgs = mat.map(numberToLongString).join(',');\n return stringifiedArgs;\n }];\n}\nfunction dot(v1, v2) {\n var result = 0;\n for (var i = 0; i < v1.length; i++) {\n result += v1[i] * v2[i];\n }\n return result;\n}\nfunction quat(fromQ, toQ, f) {\n var product = dot(fromQ, toQ);\n product = clamp(product, -1.0, 1.0);\n var quat = [];\n if (product === 1.0) {\n quat = fromQ;\n } else {\n var theta = Math.acos(product);\n var w = Math.sin(f * theta) * 1 / Math.sqrt(1 - product * product);\n for (var i = 0; i < 4; i++) {\n quat.push(fromQ[i] * (Math.cos(f * theta) - product * w) + toQ[i] * w);\n }\n }\n return quat;\n}\n\n// scaleX/Y/Z -> scale\nfunction typeTo2D(type) {\n return type.replace(/[XY]/, '');\n}\n\n// scaleX/Y/Z -> scale3d\nfunction typeTo3D(type) {\n return type.replace(/(X|Y|Z|3d)?$/, '3d');\n}\nvar isMatrixOrPerspective = function isMatrixOrPerspective(lt, rt) {\n return lt === 'perspective' && rt === 'perspective' || (lt === 'matrix' || lt === 'matrix3d') && (rt === 'matrix' || rt === 'matrix3d');\n};\nfunction mergeTransforms(left, right, target) {\n var flipResults = false;\n // padding empty transform, eg. merge 'scale(10)' with 'none' -> scale(1)\n if (!left.length || !right.length) {\n if (!left.length) {\n flipResults = true;\n left = right;\n right = [];\n }\n var _loop = function _loop() {\n var _left$i = left[i],\n type = _left$i.t,\n args = _left$i.d;\n // none -> scale(1)/translateX(0)\n var defaultValue = type.substring(0, 5) === 'scale' ? 1 : 0;\n right.push({\n t: type,\n d: args.map(function (arg) {\n if (typeof arg === 'number') {\n return getOrCreateUnitValue(defaultValue);\n }\n return getOrCreateUnitValue(defaultValue, arg.unit);\n // {\n // unit: arg.unit,\n // value: defaultValue,\n // };\n })\n });\n };\n for (var i = 0; i < left.length; i++) {\n _loop();\n }\n }\n var leftResult = [];\n var rightResult = [];\n var types = [];\n\n // merge matrix() with matrix3d()\n if (left.length !== right.length) {\n var merged = mergeMatrices(left, right);\n // @ts-ignore\n leftResult = [merged[0]];\n // @ts-ignore\n rightResult = [merged[1]];\n types = [['matrix', [merged[2]]]];\n } else {\n for (var _i3 = 0; _i3 < left.length; _i3++) {\n var leftType = left[_i3].t;\n var rightType = right[_i3].t;\n var leftArgs = left[_i3].d;\n var rightArgs = right[_i3].d;\n var leftFunctionData = transformFunctions[leftType];\n var rightFunctionData = transformFunctions[rightType];\n var type = void 0;\n if (isMatrixOrPerspective(leftType, rightType)) {\n var _merged = mergeMatrices([left[_i3]], [right[_i3]]);\n // @ts-ignore\n leftResult.push(_merged[0]);\n // @ts-ignore\n rightResult.push(_merged[1]);\n types.push(['matrix', [_merged[2]]]);\n continue;\n } else if (leftType === rightType) {\n type = leftType;\n } else if (leftFunctionData[2] && rightFunctionData[2] && typeTo2D(leftType) === typeTo2D(rightType)) {\n type = typeTo2D(leftType);\n // @ts-ignore\n leftArgs = leftFunctionData[2](leftArgs);\n // @ts-ignore\n rightArgs = rightFunctionData[2](rightArgs);\n } else if (leftFunctionData[1] && rightFunctionData[1] && typeTo3D(leftType) === typeTo3D(rightType)) {\n type = typeTo3D(leftType);\n // @ts-ignore\n leftArgs = leftFunctionData[1](leftArgs);\n // @ts-ignore\n rightArgs = rightFunctionData[1](rightArgs);\n } else {\n var _merged2 = mergeMatrices(left, right);\n // @ts-ignore\n leftResult = [_merged2[0]];\n // @ts-ignore\n rightResult = [_merged2[1]];\n types = [['matrix', [_merged2[2]]]];\n break;\n }\n var leftArgsCopy = [];\n var rightArgsCopy = [];\n var stringConversions = [];\n for (var j = 0; j < leftArgs.length; j++) {\n // const merge = leftArgs[j].unit === UnitType.kNumber ? mergeDimensions : mergeDimensions;\n var _merged3 = mergeDimensions(leftArgs[j], rightArgs[j], target, false, j);\n leftArgsCopy[j] = _merged3[0];\n rightArgsCopy[j] = _merged3[1];\n stringConversions.push(_merged3[2]);\n }\n leftResult.push(leftArgsCopy);\n rightResult.push(rightArgsCopy);\n types.push([type, stringConversions]);\n }\n }\n if (flipResults) {\n var tmp = leftResult;\n leftResult = rightResult;\n rightResult = tmp;\n }\n return [leftResult, rightResult, function (list) {\n return list.map(function (args, i) {\n var stringifiedArgs = args.map(function (arg, j) {\n return types[i][1][j](arg);\n }).join(',');\n if (types[i][0] === 'matrix' && stringifiedArgs.split(',').length === 16) {\n types[i][0] = 'matrix3d';\n }\n if (types[i][0] === 'matrix3d' && stringifiedArgs.split(',').length === 6) {\n types[i][0] = 'matrix';\n }\n return \"\".concat(types[i][0], \"(\").concat(stringifiedArgs, \")\");\n }).join(' ');\n }];\n}\n\n/**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/transform-origin\n * eg. 'center' 'top left' '50px 50px'\n */\nvar parseTransformOrigin = memoize(function (value) {\n if (isString(value)) {\n if (value === 'text-anchor') {\n return [getOrCreateUnitValue(0, 'px'), getOrCreateUnitValue(0, 'px')];\n }\n var values = value.split(' ');\n if (values.length === 1) {\n if (values[0] === 'top' || values[0] === 'bottom') {\n // 'top' -> 'center top'\n values[1] = values[0];\n values[0] = 'center';\n } else {\n // '50px' -> '50px center'\n values[1] = 'center';\n }\n }\n if (values.length !== 2) {\n return null;\n }\n\n // eg. center bottom\n return [parseLengthOrPercentage(convertKeyword2Percent(values[0])), parseLengthOrPercentage(convertKeyword2Percent(values[1]))];\n }\n return [getOrCreateUnitValue(value[0] || 0, 'px'), getOrCreateUnitValue(value[1] || 0, 'px')];\n});\nfunction convertKeyword2Percent(keyword) {\n if (keyword === 'center') {\n return '50%';\n }\n if (keyword === 'left' || keyword === 'top') {\n return '0%';\n }\n if (keyword === 'right' || keyword === 'bottom') {\n return '100%';\n }\n return keyword;\n}\n\n/**\n * Blink used them in code generation(css_properties.json5)\n */\nvar BUILT_IN_PROPERTIES = [{\n /**\n * used in CSS Layout API\n * eg. `display: 'flex'`\n */\n n: 'display',\n k: ['none']\n}, {\n /**\n * range [0.0, 1.0]\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/opacity\n */\n n: 'opacity',\n \"int\": true,\n inh: true,\n d: '1',\n syntax: PropertySyntax.OPACITY_VALUE\n}, {\n /**\n * inheritable, range [0.0, 1.0]\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-opacity\n * @see https://svgwg.org/svg2-draft/painting.html#FillOpacity\n */\n n: 'fillOpacity',\n \"int\": true,\n inh: true,\n d: '1',\n syntax: PropertySyntax.OPACITY_VALUE\n}, {\n /**\n * inheritable, range [0.0, 1.0]\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-opacity\n * @see https://svgwg.org/svg2-draft/painting.html#StrokeOpacity\n */\n n: 'strokeOpacity',\n \"int\": true,\n inh: true,\n d: '1',\n syntax: PropertySyntax.OPACITY_VALUE\n}, {\n /**\n * background-color is not inheritable\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Fills_and_Strokes\n */\n n: 'fill',\n \"int\": true,\n k: ['none'],\n d: 'none',\n syntax: PropertySyntax.PAINT\n}, {\n n: 'fillRule',\n k: ['nonzero', 'evenodd'],\n d: 'nonzero'\n},\n/**\n * default to none\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke#usage_notes\n */\n{\n n: 'stroke',\n \"int\": true,\n k: ['none'],\n d: 'none',\n syntax: PropertySyntax.PAINT,\n /**\n * Stroke 'none' won't affect geometry but others will.\n */\n l: true\n}, {\n n: 'shadowType',\n k: ['inner', 'outer', 'both'],\n d: 'outer',\n l: true\n}, {\n n: 'shadowColor',\n \"int\": true,\n syntax: PropertySyntax.COLOR\n}, {\n n: 'shadowOffsetX',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'shadowOffsetY',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'shadowBlur',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.SHADOW_BLUR\n}, {\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-width\n */\n n: 'lineWidth',\n \"int\": true,\n inh: true,\n d: '1',\n l: true,\n a: ['strokeWidth'],\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'increasedLineWidthForHitTesting',\n inh: true,\n d: '0',\n l: true,\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'lineJoin',\n inh: true,\n l: true,\n a: ['strokeLinejoin'],\n k: ['miter', 'bevel', 'round'],\n d: 'miter'\n}, {\n n: 'lineCap',\n inh: true,\n l: true,\n a: ['strokeLinecap'],\n k: ['butt', 'round', 'square'],\n d: 'butt'\n}, {\n n: 'lineDash',\n \"int\": true,\n inh: true,\n k: ['none'],\n a: ['strokeDasharray'],\n syntax: PropertySyntax.LENGTH_PERCENTAGE_12\n}, {\n n: 'lineDashOffset',\n \"int\": true,\n inh: true,\n d: '0',\n a: ['strokeDashoffset'],\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'offsetPath',\n syntax: PropertySyntax.DEFINED_PATH\n}, {\n n: 'offsetDistance',\n \"int\": true,\n syntax: PropertySyntax.OFFSET_DISTANCE\n}, {\n n: 'dx',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'dy',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'zIndex',\n ind: true,\n \"int\": true,\n d: '0',\n k: ['auto'],\n syntax: PropertySyntax.Z_INDEX\n}, {\n n: 'visibility',\n k: ['visible', 'hidden'],\n ind: true,\n inh: true,\n /**\n * support interpolation\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/visibility#interpolation\n */\n \"int\": true,\n d: 'visible'\n}, {\n n: 'pointerEvents',\n inh: true,\n k: ['none', 'auto', 'stroke', 'fill', 'painted', 'visible', 'visiblestroke', 'visiblefill', 'visiblepainted',\n // 'bounding-box',\n 'all'],\n d: 'auto'\n}, {\n n: 'filter',\n ind: true,\n l: true,\n k: ['none'],\n d: 'none',\n syntax: PropertySyntax.FILTER\n}, {\n n: 'clipPath',\n syntax: PropertySyntax.DEFINED_PATH\n}, {\n n: 'textPath',\n syntax: PropertySyntax.DEFINED_PATH\n}, {\n n: 'textPathSide',\n k: ['left', 'right'],\n d: 'left'\n}, {\n n: 'textPathStartOffset',\n l: true,\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'transform',\n p: 100,\n \"int\": true,\n k: ['none'],\n d: 'none',\n syntax: PropertySyntax.TRANSFORM\n}, {\n n: 'transformOrigin',\n p: 100,\n d: '0 0',\n // // int: true,\n // d: (nodeName: string) => {\n // if (nodeName === Shape.CIRCLE || nodeName === Shape.ELLIPSE) {\n // return 'center';\n // }\n // if (nodeName === Shape.TEXT) {\n // return 'text-anchor';\n // }\n // return 'left top';\n // },\n l: true,\n syntax: PropertySyntax.TRANSFORM_ORIGIN\n}, {\n n: 'cx',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.COORDINATE\n}, {\n n: 'cy',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.COORDINATE\n}, {\n n: 'cz',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.COORDINATE\n}, {\n n: 'r',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'rx',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'ry',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n},\n// Rect Image Group\n{\n // x in local space\n n: 'x',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.COORDINATE\n}, {\n // y in local space\n n: 'y',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.COORDINATE\n}, {\n // z in local space\n n: 'z',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.COORDINATE\n}, {\n n: 'width',\n \"int\": true,\n l: true,\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/width\n */\n k: ['auto', 'fit-content', 'min-content', 'max-content'],\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'height',\n \"int\": true,\n l: true,\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/height\n */\n k: ['auto', 'fit-content', 'min-content', 'max-content'],\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'radius',\n \"int\": true,\n l: true,\n d: '0',\n syntax: PropertySyntax.LENGTH_PERCENTAGE_14\n},\n// Line\n{\n n: 'x1',\n \"int\": true,\n l: true,\n syntax: PropertySyntax.COORDINATE\n}, {\n n: 'y1',\n \"int\": true,\n l: true,\n syntax: PropertySyntax.COORDINATE\n}, {\n n: 'z1',\n \"int\": true,\n l: true,\n syntax: PropertySyntax.COORDINATE\n}, {\n n: 'x2',\n \"int\": true,\n l: true,\n syntax: PropertySyntax.COORDINATE\n}, {\n n: 'y2',\n \"int\": true,\n l: true,\n syntax: PropertySyntax.COORDINATE\n}, {\n n: 'z2',\n \"int\": true,\n l: true,\n syntax: PropertySyntax.COORDINATE\n},\n// Path\n{\n n: 'd',\n \"int\": true,\n l: true,\n d: '',\n syntax: PropertySyntax.PATH,\n p: 50\n},\n// Polyline & Polygon\n{\n n: 'points',\n /**\n * support interpolation\n */\n \"int\": true,\n l: true,\n syntax: PropertySyntax.LIST_OF_POINTS,\n p: 50\n},\n// Text\n{\n n: 'text',\n l: true,\n d: '',\n syntax: PropertySyntax.TEXT,\n p: 50\n}, {\n n: 'textTransform',\n l: true,\n inh: true,\n k: ['capitalize', 'uppercase', 'lowercase', 'none'],\n d: 'none',\n syntax: PropertySyntax.TEXT_TRANSFORM,\n p: 51 // it must get parsed after text\n}, {\n n: 'font',\n l: true\n}, {\n n: 'fontSize',\n \"int\": true,\n inh: true,\n /**\n * @see https://www.w3schools.com/css/css_font_size.asp\n */\n d: '16px',\n l: true,\n syntax: PropertySyntax.LENGTH_PERCENTAGE\n}, {\n n: 'fontFamily',\n l: true,\n inh: true,\n d: 'sans-serif'\n}, {\n n: 'fontStyle',\n l: true,\n inh: true,\n k: ['normal', 'italic', 'oblique'],\n d: 'normal'\n}, {\n n: 'fontWeight',\n l: true,\n inh: true,\n k: ['normal', 'bold', 'bolder', 'lighter'],\n d: 'normal'\n}, {\n n: 'fontVariant',\n l: true,\n inh: true,\n k: ['normal', 'small-caps'],\n d: 'normal'\n}, {\n n: 'lineHeight',\n l: true,\n syntax: PropertySyntax.LENGTH,\n \"int\": true,\n d: '0'\n}, {\n n: 'letterSpacing',\n l: true,\n syntax: PropertySyntax.LENGTH,\n \"int\": true,\n d: '0'\n}, {\n n: 'miterLimit',\n l: true,\n syntax: PropertySyntax.NUMBER,\n d: function d(nodeName) {\n if (nodeName === Shape.PATH || nodeName === Shape.POLYGON || nodeName === Shape.POLYLINE) {\n return '4';\n }\n return '10';\n }\n}, {\n n: 'wordWrap',\n l: true\n}, {\n n: 'wordWrapWidth',\n l: true\n}, {\n n: 'maxLines',\n l: true\n}, {\n n: 'textOverflow',\n l: true,\n d: 'clip'\n}, {\n n: 'leading',\n l: true\n}, {\n n: 'textBaseline',\n l: true,\n inh: true,\n k: ['top', 'hanging', 'middle', 'alphabetic', 'ideographic', 'bottom'],\n d: 'alphabetic'\n}, {\n n: 'textAlign',\n l: true,\n inh: true,\n k: ['start', 'center', 'middle', 'end', 'left', 'right'],\n d: 'start'\n},\n// {\n// n: 'whiteSpace',\n// l: true,\n// },\n{\n n: 'markerStart',\n syntax: PropertySyntax.MARKER\n}, {\n n: 'markerEnd',\n syntax: PropertySyntax.MARKER\n}, {\n n: 'markerMid',\n syntax: PropertySyntax.MARKER\n}, {\n n: 'markerStartOffset',\n syntax: PropertySyntax.LENGTH,\n l: true,\n \"int\": true,\n d: '0'\n}, {\n n: 'markerEndOffset',\n syntax: PropertySyntax.LENGTH,\n l: true,\n \"int\": true,\n d: '0'\n}];\nvar GEOMETRY_ATTRIBUTE_NAMES = new Set(BUILT_IN_PROPERTIES.filter(function (n) {\n return !!n.l;\n}).map(function (n) {\n return n.n;\n}));\nvar propertyMetadataCache = {};\nvar DefaultStyleValueRegistry = /*#__PURE__*/function () {\n function DefaultStyleValueRegistry(runtime) {\n var _this = this;\n _classCallCheck(this, DefaultStyleValueRegistry);\n this.runtime = runtime;\n BUILT_IN_PROPERTIES.forEach(function (property) {\n _this.registerMetadata(property);\n });\n }\n return _createClass(DefaultStyleValueRegistry, [{\n key: \"registerMetadata\",\n value: function registerMetadata(metadata) {\n [metadata.n].concat(_toConsumableArray(metadata.a || [])).forEach(function (name) {\n propertyMetadataCache[name] = metadata;\n });\n }\n }, {\n key: \"getPropertySyntax\",\n value: function getPropertySyntax(syntax) {\n return this.runtime.CSSPropertySyntaxFactory[syntax];\n }\n\n /**\n * * parse value, eg.\n * fill: 'red' => CSSRGB\n * translateX: '10px' => CSSUnitValue { unit: 'px', value: 10 }\n * fontSize: '2em' => { unit: 'px', value: 32 }\n *\n * * calculate used value\n * * post process\n */\n }, {\n key: \"processProperties\",\n value: function processProperties(object, attributes) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n skipUpdateAttribute: false,\n skipParse: false,\n forceUpdateGeometry: false,\n usedAttributes: [],\n memoize: true\n };\n Object.assign(object.attributes, attributes);\n\n // clipPath\n var oldClipPath = object.parsedStyle.clipPath;\n var oldOffsetPath = object.parsedStyle.offsetPath;\n assignParsedStyle(object, attributes);\n var needUpdateGeometry = !!options.forceUpdateGeometry;\n if (!needUpdateGeometry) {\n for (var i in attributes) {\n if (GEOMETRY_ATTRIBUTE_NAMES.has(i)) {\n needUpdateGeometry = true;\n break;\n }\n }\n }\n var list = getParsedStyleListOf(object);\n if (list.has('fill') && attributes.fill) {\n object.parsedStyle.fill = parseColor(attributes.fill);\n }\n if (list.has('stroke') && attributes.stroke) {\n object.parsedStyle.stroke = parseColor(attributes.stroke);\n }\n if (list.has('shadowColor') && attributes.shadowColor) {\n object.parsedStyle.shadowColor = parseColor(attributes.shadowColor);\n }\n if (list.has('filter') && attributes.filter) {\n object.parsedStyle.filter = parseFilter(attributes.filter);\n }\n // Rect\n // @ts-ignore\n if (list.has('radius') && !isNil(attributes.radius)) {\n // @ts-ignore\n object.parsedStyle.radius = parseDimensionArrayFormat(\n // @ts-ignore\n attributes.radius, 4);\n }\n // Polyline\n if (list.has('lineDash') && !isNil(attributes.lineDash)) {\n // dom标准自动转化奇数长度数组,webgl需要手动处理\n object.parsedStyle.lineDash = parseDimensionArrayFormat(attributes.lineDash, 'even');\n }\n // @ts-ignore\n if (list.has('points') && attributes.points) {\n // @ts-ignore\n object.parsedStyle.points = parsePoints(attributes.points);\n }\n // Path\n // @ts-ignore\n if (list.has('d') && attributes.d === '') {\n object.parsedStyle.d = _objectSpread({}, EMPTY_PARSED_PATH);\n }\n // @ts-ignore\n if (list.has('d') && attributes.d) {\n object.parsedStyle.d = parsePath(\n // @ts-ignore\n attributes.d);\n }\n // Text\n if (list.has('textTransform') && attributes.textTransform) {\n this.runtime.CSSPropertySyntaxFactory[PropertySyntax.TEXT_TRANSFORM].calculator(null, null, {\n value: attributes.textTransform\n }, object, null);\n }\n if (list.has('clipPath') && !isUndefined(attributes.clipPath)) {\n this.runtime.CSSPropertySyntaxFactory[PropertySyntax.DEFINED_PATH].calculator('clipPath', oldClipPath, attributes.clipPath, object, this.runtime);\n }\n if (list.has('offsetPath') && attributes.offsetPath) {\n this.runtime.CSSPropertySyntaxFactory[PropertySyntax.DEFINED_PATH].calculator('offsetPath', oldOffsetPath, attributes.offsetPath, object, this.runtime);\n }\n if (list.has('transform') && attributes.transform) {\n object.parsedStyle.transform = parseTransform(attributes.transform);\n }\n if (list.has('transformOrigin') && attributes.transformOrigin) {\n object.parsedStyle.transformOrigin = parseTransformOrigin(attributes.transformOrigin);\n }\n // Marker\n // @ts-ignore\n if (list.has('markerStart') && attributes.markerStart) {\n object.parsedStyle.markerStart = this.runtime.CSSPropertySyntaxFactory[PropertySyntax.MARKER].calculator(null,\n // @ts-ignore\n attributes.markerStart,\n // @ts-ignore\n attributes.markerStart, null, null);\n }\n // @ts-ignore\n if (list.has('markerEnd') && attributes.markerEnd) {\n object.parsedStyle.markerEnd = this.runtime.CSSPropertySyntaxFactory[PropertySyntax.MARKER].calculator(null,\n // @ts-ignore\n attributes.markerEnd,\n // @ts-ignore\n attributes.markerEnd, null, null);\n }\n // @ts-ignore\n if (list.has('markerMid') && attributes.markerMid) {\n object.parsedStyle.markerMid = this.runtime.CSSPropertySyntaxFactory[PropertySyntax.MARKER].calculator('',\n // @ts-ignore\n attributes.markerMid,\n // @ts-ignore\n attributes.markerMid, null, null);\n }\n if (list.has('zIndex') && !isNil(attributes.zIndex)) {\n this.runtime.CSSPropertySyntaxFactory[PropertySyntax.Z_INDEX].postProcessor(object);\n }\n if (list.has('offsetDistance') && !isNil(attributes.offsetDistance)) {\n this.runtime.CSSPropertySyntaxFactory[PropertySyntax.OFFSET_DISTANCE].postProcessor(object);\n }\n if (list.has('transform') && attributes.transform) {\n this.runtime.CSSPropertySyntaxFactory[PropertySyntax.TRANSFORM].postProcessor(object);\n }\n if (list.has('transformOrigin') && attributes.transformOrigin) {\n this.runtime.CSSPropertySyntaxFactory[PropertySyntax.TRANSFORM_ORIGIN].postProcessor(object);\n }\n if (needUpdateGeometry) {\n object.dirty(true, true);\n if (!options.forceUpdateGeometry) {\n this.runtime.sceneGraphService.dirtyToRoot(object);\n }\n }\n }\n\n /**\n * update geometry when relative props changed,\n * eg. r of Circle, width/height of Rect\n */\n }, {\n key: \"updateGeometry\",\n value: function updateGeometry(object) {\n var nodeName = object.nodeName;\n var geometryUpdater = this.runtime.geometryUpdaterFactory[nodeName];\n if (geometryUpdater) {\n var geometry = object.geometry;\n if (!geometry.contentBounds) {\n geometry.contentBounds = new AABB();\n }\n if (!geometry.renderBounds) {\n geometry.renderBounds = new AABB();\n }\n var parsedStyle = object.parsedStyle;\n var _geometryUpdater$upda = geometryUpdater.update(parsedStyle, object),\n _geometryUpdater$upda2 = _geometryUpdater$upda.cx,\n cx = _geometryUpdater$upda2 === void 0 ? 0 : _geometryUpdater$upda2,\n _geometryUpdater$upda3 = _geometryUpdater$upda.cy,\n cy = _geometryUpdater$upda3 === void 0 ? 0 : _geometryUpdater$upda3,\n _geometryUpdater$upda4 = _geometryUpdater$upda.cz,\n cz = _geometryUpdater$upda4 === void 0 ? 0 : _geometryUpdater$upda4,\n _geometryUpdater$upda5 = _geometryUpdater$upda.hwidth,\n hwidth = _geometryUpdater$upda5 === void 0 ? 0 : _geometryUpdater$upda5,\n _geometryUpdater$upda6 = _geometryUpdater$upda.hheight,\n hheight = _geometryUpdater$upda6 === void 0 ? 0 : _geometryUpdater$upda6,\n _geometryUpdater$upda7 = _geometryUpdater$upda.hdepth,\n hdepth = _geometryUpdater$upda7 === void 0 ? 0 : _geometryUpdater$upda7;\n // init with content box\n var halfExtents = [Math.abs(hwidth), Math.abs(hheight), hdepth];\n // anchor is center by default, don't account for lineWidth here\n var stroke = parsedStyle.stroke,\n _parsedStyle$lineWidt = parsedStyle.lineWidth,\n lineWidth = _parsedStyle$lineWidt === void 0 ? 1 : _parsedStyle$lineWidt,\n _parsedStyle$increase = parsedStyle.increasedLineWidthForHitTesting,\n increasedLineWidthForHitTesting = _parsedStyle$increase === void 0 ? 0 : _parsedStyle$increase,\n _parsedStyle$shadowTy = parsedStyle.shadowType,\n shadowType = _parsedStyle$shadowTy === void 0 ? 'outer' : _parsedStyle$shadowTy,\n shadowColor = parsedStyle.shadowColor,\n _parsedStyle$filter = parsedStyle.filter,\n filter = _parsedStyle$filter === void 0 ? [] : _parsedStyle$filter,\n transformOrigin = parsedStyle.transformOrigin;\n var center = [cx, cy, cz];\n // update geometry's AABB\n geometry.contentBounds.update(center, halfExtents);\n // @see https://github.molgen.mpg.de/git-mirror/cairo/blob/master/src/cairo-stroke-style.c#L97..L128\n var expansion = nodeName === Shape.POLYLINE || nodeName === Shape.POLYGON || nodeName === Shape.PATH ? Math.SQRT2 : 0.5;\n // append border only if stroke existed\n var hasStroke = stroke && !stroke.isNone;\n if (hasStroke) {\n var halfLineWidth = ((lineWidth || 0) + (increasedLineWidthForHitTesting || 0)) * expansion;\n halfExtents[0] += halfLineWidth;\n halfExtents[1] += halfLineWidth;\n }\n geometry.renderBounds.update(center, halfExtents);\n // account for shadow, only support constant value now\n if (shadowColor && shadowType && shadowType !== 'inner') {\n var _geometry$renderBound = geometry.renderBounds,\n min = _geometry$renderBound.min,\n max = _geometry$renderBound.max;\n var shadowBlur = parsedStyle.shadowBlur,\n shadowOffsetX = parsedStyle.shadowOffsetX,\n shadowOffsetY = parsedStyle.shadowOffsetY;\n var shadowBlurInPixels = shadowBlur || 0;\n var shadowOffsetXInPixels = shadowOffsetX || 0;\n var shadowOffsetYInPixels = shadowOffsetY || 0;\n var shadowLeft = min[0] - shadowBlurInPixels + shadowOffsetXInPixels;\n var shadowRight = max[0] + shadowBlurInPixels + shadowOffsetXInPixels;\n var shadowTop = min[1] - shadowBlurInPixels + shadowOffsetYInPixels;\n var shadowBottom = max[1] + shadowBlurInPixels + shadowOffsetYInPixels;\n min[0] = Math.min(min[0], shadowLeft);\n max[0] = Math.max(max[0], shadowRight);\n min[1] = Math.min(min[1], shadowTop);\n max[1] = Math.max(max[1], shadowBottom);\n geometry.renderBounds.setMinMax(min, max);\n }\n // account for filter, eg. blur(5px), drop-shadow()\n filter.forEach(function (_ref) {\n var name = _ref.name,\n params = _ref.params;\n if (name === 'blur') {\n var blurRadius = params[0].value;\n geometry.renderBounds.update(geometry.renderBounds.center, vec3.add(geometry.renderBounds.halfExtents, geometry.renderBounds.halfExtents, [blurRadius, blurRadius, 0]));\n } else if (name === 'drop-shadow') {\n var _shadowOffsetX = params[0].value;\n var _shadowOffsetY = params[1].value;\n var _shadowBlur = params[2].value;\n var _geometry$renderBound2 = geometry.renderBounds,\n _min = _geometry$renderBound2.min,\n _max = _geometry$renderBound2.max;\n var _shadowLeft = _min[0] - _shadowBlur + _shadowOffsetX;\n var _shadowRight = _max[0] + _shadowBlur + _shadowOffsetX;\n var _shadowTop = _min[1] - _shadowBlur + _shadowOffsetY;\n var _shadowBottom = _max[1] + _shadowBlur + _shadowOffsetY;\n _min[0] = Math.min(_min[0], _shadowLeft);\n _max[0] = Math.max(_max[0], _shadowRight);\n _min[1] = Math.min(_min[1], _shadowTop);\n _max[1] = Math.max(_max[1], _shadowBottom);\n geometry.renderBounds.setMinMax(_min, _max);\n }\n });\n object.geometry.dirty = false;\n\n // @see https://github.com/antvis/g/issues/957\n var flipY = hwidth < 0;\n var flipX = hheight < 0;\n // set transform origin\n var usedOriginXValue = (flipY ? -1 : 1) * (transformOrigin ? convertPercentUnit(transformOrigin[0], 0, object, true) : 0);\n var usedOriginYValue = (flipX ? -1 : 1) * (transformOrigin ? convertPercentUnit(transformOrigin[1], 1, object, true) : 0);\n if (usedOriginXValue || usedOriginYValue) {\n object.setOrigin(usedOriginXValue, usedOriginYValue);\n }\n }\n }\n }, {\n key: \"updateSizeAttenuation\",\n value: function updateSizeAttenuation(node, zoom) {\n if (node.style.isSizeAttenuation) {\n if (!node.style.rawLineWidth) {\n node.style.rawLineWidth = node.style.lineWidth;\n }\n node.style.lineWidth = (node.style.rawLineWidth || 1) / zoom;\n if (node.nodeName === Shape.CIRCLE) {\n if (!node.style.rawR) {\n node.style.rawR = node.style.r;\n }\n node.style.r = (node.style.rawR || 1) / zoom;\n }\n } else {\n if (node.style.rawLineWidth) {\n node.style.lineWidth = node.style.rawLineWidth;\n delete node.style.rawLineWidth;\n }\n if (node.nodeName === Shape.CIRCLE) {\n if (node.style.rawR) {\n node.style.r = node.style.rawR;\n delete node.style.rawR;\n }\n }\n }\n }\n }]);\n}();\nfunction assignParsedStyle(object, attributes) {\n var list = getParsedStyleListOf(object);\n for (var key in attributes) {\n if (list.has(key)) {\n object.parsedStyle[key] = attributes[key];\n }\n }\n}\nfunction getParsedStyleListOf(object) {\n return object.constructor.PARSED_STYLE_LIST;\n}\n\nvar CSSPropertyAngle = /*#__PURE__*/function () {\n function CSSPropertyAngle() {\n _classCallCheck(this, CSSPropertyAngle);\n this.mixer = mergeNumbers;\n }\n return _createClass(CSSPropertyAngle, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, parsed, object) {\n return convertAngleUnit(parsed);\n }\n }]);\n}();\n\n/**\n * clipPath / textPath / offsetPath\n */\nvar CSSPropertyClipPath = /*#__PURE__*/function () {\n function CSSPropertyClipPath() {\n _classCallCheck(this, CSSPropertyClipPath);\n }\n return _createClass(CSSPropertyClipPath, [{\n key: \"calculator\",\n value: function calculator(name, oldPath, newPath, object, runtime) {\n // unset\n if (newPath instanceof CSSKeywordValue) {\n newPath = null;\n }\n runtime.sceneGraphService.updateDisplayObjectDependency(name, oldPath, newPath, object);\n if (name === 'clipPath') {\n // should affect children\n object.forEach(function (leaf) {\n if (leaf.childNodes.length === 0) {\n runtime.sceneGraphService.dirtyToRoot(leaf);\n }\n });\n }\n return newPath;\n }\n }]);\n}();\n\nvar CSSPropertyColor = /*#__PURE__*/function () {\n function CSSPropertyColor() {\n _classCallCheck(this, CSSPropertyColor);\n this.parser = parseColor;\n this.mixer = mergeColors;\n }\n return _createClass(CSSPropertyColor, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, parsed, object) {\n if (parsed instanceof CSSKeywordValue) {\n // 'unset' 'none'\n return parsed.value === 'none' ? noneColor : transparentColor;\n }\n return parsed;\n }\n }]);\n}();\n\nvar CSSPropertyFilter = /*#__PURE__*/function () {\n function CSSPropertyFilter() {\n _classCallCheck(this, CSSPropertyFilter);\n }\n return _createClass(CSSPropertyFilter, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, parsed) {\n // unset or none\n if (parsed instanceof CSSKeywordValue) {\n return [];\n }\n return parsed;\n }\n }]);\n}();\n\nfunction getFontSize(object) {\n var _ref = object.parsedStyle,\n fontSize = _ref.fontSize;\n return isNil(fontSize) ? null : fontSize;\n}\n\n/**\n * <length> & <percentage>\n */\nvar CSSPropertyLengthOrPercentage = /*#__PURE__*/function () {\n function CSSPropertyLengthOrPercentage() {\n _classCallCheck(this, CSSPropertyLengthOrPercentage);\n this.mixer = mergeNumbers;\n }\n return _createClass(CSSPropertyLengthOrPercentage, [{\n key: \"calculator\",\n value:\n /**\n * according to parent's bounds\n *\n * @example\n * CSS.percent(50) -> CSS.px(0.5 * parent.width)\n */\n function calculator(name, oldParsed, computed, object, runtime) {\n if (isNumber(computed)) {\n return computed;\n }\n if (CSSUnitValue.isRelativeUnit(computed.unit)) {\n if (computed.unit === UnitType.kPercentage) {\n // TODO: merge dimensions\n return 0;\n }\n if (computed.unit === UnitType.kEms) {\n if (object.parentNode) {\n var fontSize = getFontSize(object.parentNode);\n if (fontSize) {\n fontSize *= computed.value;\n return fontSize;\n }\n }\n return 0;\n }\n if (computed.unit === UnitType.kRems) {\n var _object$ownerDocument;\n if (object !== null && object !== void 0 && (_object$ownerDocument = object.ownerDocument) !== null && _object$ownerDocument !== void 0 && _object$ownerDocument.documentElement) {\n var _fontSize = getFontSize(object.ownerDocument.documentElement);\n if (_fontSize) {\n _fontSize *= computed.value;\n return _fontSize;\n }\n }\n return 0;\n }\n } else {\n // remove listener if exists\n // registry.unregisterParentGeometryBoundsChangedHandler(object, name);\n\n // return absolute value\n return computed.value;\n }\n }\n }]);\n}();\n\n/**\n * format to Tuple2<CSSUnitValue>\n *\n * @example\n * rect.style.lineDash = 10;\n * rect.style.lineDash = [10, 10];\n * rect.style.lineDash = '10 10';\n */\nvar CSSPropertyLengthOrPercentage12 = /*#__PURE__*/function () {\n function CSSPropertyLengthOrPercentage12() {\n _classCallCheck(this, CSSPropertyLengthOrPercentage12);\n this.mixer = mergeNumberLists;\n }\n return _createClass(CSSPropertyLengthOrPercentage12, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, computed) {\n return computed.map(function (c) {\n return c.value;\n });\n }\n }]);\n}();\n\n/**\n * used in rounded rect\n *\n * @example\n * rect.style.radius = 10;\n * rect.style.radius = '10 10';\n * rect.style.radius = '10 10 10 10';\n */\nvar CSSPropertyLengthOrPercentage14 = /*#__PURE__*/function () {\n function CSSPropertyLengthOrPercentage14() {\n _classCallCheck(this, CSSPropertyLengthOrPercentage14);\n this.mixer = mergeNumberLists;\n }\n return _createClass(CSSPropertyLengthOrPercentage14, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, computed) {\n return computed.map(function (c) {\n return c.value;\n });\n }\n }]);\n}();\n\nvar CSSPropertyMarker = /*#__PURE__*/function () {\n function CSSPropertyMarker() {\n _classCallCheck(this, CSSPropertyMarker);\n }\n return _createClass(CSSPropertyMarker, [{\n key: \"calculator\",\n value: function calculator(name, oldMarker, newMarker, object) {\n var _newMarker;\n // unset\n if (newMarker instanceof CSSKeywordValue) {\n newMarker = null;\n }\n var cloned = (_newMarker = newMarker) === null || _newMarker === void 0 ? void 0 : _newMarker.cloneNode(true);\n if (cloned) {\n // FIXME: SVG should not inherit parent's style, add a flag here\n cloned.style.isMarker = true;\n }\n return cloned;\n }\n }]);\n}();\n\nvar CSSPropertyNumber = /*#__PURE__*/function () {\n function CSSPropertyNumber() {\n _classCallCheck(this, CSSPropertyNumber);\n this.mixer = mergeNumbers;\n }\n return _createClass(CSSPropertyNumber, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, computed) {\n return computed.value;\n }\n }]);\n}();\n\nvar CSSPropertyOffsetDistance = /*#__PURE__*/function () {\n function CSSPropertyOffsetDistance() {\n _classCallCheck(this, CSSPropertyOffsetDistance);\n this.mixer = clampedMergeNumbers(0, 1);\n }\n return _createClass(CSSPropertyOffsetDistance, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, computed) {\n return computed.value;\n }\n }, {\n key: \"postProcessor\",\n value: function postProcessor(object) {\n var _object$parsedStyle = object.parsedStyle,\n offsetPath = _object$parsedStyle.offsetPath,\n offsetDistance = _object$parsedStyle.offsetDistance;\n if (!offsetPath) {\n return;\n }\n var nodeName = offsetPath.nodeName;\n if (nodeName === Shape.LINE || nodeName === Shape.PATH || nodeName === Shape.POLYLINE) {\n // set position in world space\n var point = offsetPath.getPoint(offsetDistance);\n if (point) {\n object.setLocalPosition(point.x, point.y);\n }\n }\n }\n }]);\n}();\n\n/**\n * opacity\n */\nvar CSSPropertyOpacity = /*#__PURE__*/function () {\n function CSSPropertyOpacity() {\n _classCallCheck(this, CSSPropertyOpacity);\n this.mixer = clampedMergeNumbers(0, 1);\n }\n return _createClass(CSSPropertyOpacity, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, computed) {\n return computed.value;\n }\n }]);\n}();\n\nvar CSSPropertyPath = /*#__PURE__*/function () {\n function CSSPropertyPath() {\n _classCallCheck(this, CSSPropertyPath);\n /**\n * path2Curve\n */\n this.parser = parsePath;\n this.mixer = mergePaths;\n }\n return _createClass(CSSPropertyPath, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, parsed) {\n // unset\n if (parsed instanceof CSSKeywordValue && parsed.value === 'unset') {\n return {\n absolutePath: [],\n hasArc: false,\n segments: [],\n polygons: [],\n polylines: [],\n curve: null,\n totalLength: 0,\n rect: new Rectangle(0, 0, 0, 0)\n };\n }\n return parsed;\n }\n }]);\n}();\n\nvar CSSPropertyPoints = /*#__PURE__*/_createClass(function CSSPropertyPoints() {\n _classCallCheck(this, CSSPropertyPoints);\n this.mixer = mergePoints;\n});\n\nvar CSSPropertyShadowBlur = /*#__PURE__*/function (_CSSPropertyLengthOrP) {\n function CSSPropertyShadowBlur() {\n var _this;\n _classCallCheck(this, CSSPropertyShadowBlur);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, CSSPropertyShadowBlur, [].concat(args));\n _this.mixer = clampedMergeNumbers(0, Infinity);\n return _this;\n }\n _inherits(CSSPropertyShadowBlur, _CSSPropertyLengthOrP);\n return _createClass(CSSPropertyShadowBlur);\n}(CSSPropertyLengthOrPercentage);\n\nvar CSSPropertyText = /*#__PURE__*/function () {\n function CSSPropertyText() {\n _classCallCheck(this, CSSPropertyText);\n }\n return _createClass(CSSPropertyText, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, parsed, object) {\n if (parsed instanceof CSSKeywordValue) {\n if (parsed.value === 'unset') {\n return '';\n }\n return parsed.value;\n }\n\n // allow number as valid text content\n return \"\".concat(parsed);\n }\n }, {\n key: \"postProcessor\",\n value: function postProcessor(object) {\n object.nodeValue = \"\".concat(object.parsedStyle.text) || '';\n }\n }]);\n}();\n\n/**\n * it must transform after text get parsed\n * @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/text-transform\n */\nvar CSSPropertyTextTransform = /*#__PURE__*/function () {\n function CSSPropertyTextTransform() {\n _classCallCheck(this, CSSPropertyTextTransform);\n }\n return _createClass(CSSPropertyTextTransform, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, parsed, object) {\n var rawText = object.getAttribute('text');\n if (rawText) {\n var transformedText = rawText;\n if (parsed.value === 'capitalize') {\n transformedText = rawText.charAt(0).toUpperCase() + rawText.slice(1);\n } else if (parsed.value === 'lowercase') {\n transformedText = rawText.toLowerCase();\n } else if (parsed.value === 'uppercase') {\n transformedText = rawText.toUpperCase();\n }\n object.parsedStyle.text = transformedText;\n }\n return parsed.value;\n }\n }]);\n}();\n\nvar definedProps = function definedProps(obj) {\n return Object.fromEntries(Object.entries(obj).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n v = _ref2[1];\n return v !== undefined;\n }));\n};\n\nvar CANVAS_Map = new WeakMap();\n\n/**\n * destroy existed canvas with the same id\n */\nfunction cleanExistedCanvas(container, canvas, cleanUp) {\n if (container) {\n var $dom = typeof container === 'string' ? document.getElementById(container) : container;\n if (CANVAS_Map.has($dom)) CANVAS_Map.get($dom).destroy(cleanUp);\n CANVAS_Map.set($dom, canvas);\n }\n}\nvar isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\nfunction isElement(target) {\n return !!target.getAttribute;\n}\nfunction sortedIndex(array, value) {\n var low = 0;\n var high = array.length;\n while (low < high) {\n var mid = low + high >>> 1;\n if (sortByZIndex(array[mid], value) < 0) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return low;\n}\nfunction sortByZIndex(o1, o2) {\n var zIndex1 = Number(o1.parsedStyle.zIndex || 0);\n var zIndex2 = Number(o2.parsedStyle.zIndex || 0);\n if (zIndex1 === zIndex2) {\n var parent = o1.parentNode;\n if (parent) {\n var children = parent.childNodes || [];\n return children.indexOf(o1) - children.indexOf(o2);\n }\n }\n return zIndex1 - zIndex2;\n}\nfunction findClosestClipPathTarget(object) {\n var el = object;\n do {\n var _el$parsedStyle;\n var clipPath = (_el$parsedStyle = el.parsedStyle) === null || _el$parsedStyle === void 0 ? void 0 : _el$parsedStyle.clipPath;\n if (clipPath) return el;\n el = el.parentElement;\n } while (el !== null);\n return null;\n}\nvar PX_SUFFIX = 'px';\nfunction setDOMSize($el, width, height) {\n if (isBrowser && $el.style) {\n $el.style.width = width + PX_SUFFIX;\n $el.style.height = height + PX_SUFFIX;\n }\n}\nfunction getStyle($el, property) {\n if (isBrowser) {\n return document.defaultView.getComputedStyle($el, null).getPropertyValue(property);\n }\n}\nfunction getWidth($el) {\n var width = getStyle($el, 'width');\n if (width === 'auto') {\n return $el.offsetWidth;\n }\n return parseFloat(width);\n}\nfunction getHeight($el) {\n var height = getStyle($el, 'height');\n if (height === 'auto') {\n return $el.offsetHeight;\n }\n return parseFloat(height);\n}\n\n// borrow from hammer.js\nvar MOUSE_POINTER_ID = 1;\nvar TOUCH_TO_POINTER = {\n touchstart: 'pointerdown',\n touchend: 'pointerup',\n touchendoutside: 'pointerupoutside',\n touchmove: 'pointermove',\n touchcancel: 'pointercancel'\n};\nvar clock = typeof performance === 'object' && performance.now ? performance : Date;\n\nfunction isInFragment(node) {\n if (node.nodeName === Shape.FRAGMENT) return true;\n return node.getRootNode().nodeName === Shape.FRAGMENT;\n}\n\nfunction isFillOrStrokeAffected() {\n var pointerEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'auto';\n var fill = arguments.length > 1 ? arguments[1] : undefined;\n var stroke = arguments.length > 2 ? arguments[2] : undefined;\n // account for pointerEvents\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events\n\n var hasFill = false;\n var hasStroke = false;\n var isFillOtherThanNone = !!fill && !fill.isNone;\n var isStrokeOtherThanNone = !!stroke && !stroke.isNone;\n if (pointerEvents === 'visiblepainted' || pointerEvents === 'painted' || pointerEvents === 'auto') {\n hasFill = isFillOtherThanNone;\n hasStroke = isStrokeOtherThanNone;\n } else if (pointerEvents === 'visiblefill' || pointerEvents === 'fill') {\n hasFill = true;\n } else if (pointerEvents === 'visiblestroke' || pointerEvents === 'stroke') {\n hasStroke = true;\n } else if (pointerEvents === 'visible' || pointerEvents === 'all') {\n // The values of the fill and stroke do not affect event processing.\n hasFill = true;\n hasStroke = true;\n }\n return [hasFill, hasStroke];\n}\n\n/**\n * Thanks for following contributor of codes\n * https://gist.github.com/1866474\n * http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n * http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n * https://github.com/Financial-Times/polyfill-library/blob/master/polyfills/requestAnimationFrame/polyfill.js\n * */\n\nvar uId = 1;\nvar uniqueId = function uniqueId() {\n return uId++;\n};\n\n// We use `self` instead of `window` for `WebWorker` support.\nvar root =\n// eslint-disable-next-line no-nested-ternary\ntypeof self === 'object' && self.self === self ? self :\n// @ts-ignore\ntypeof global === 'object' && global.global === global ?\n// @ts-ignore\nglobal : {};\nvar nowOffset = Date.now();\n\n// use performance api if exist, otherwise use Date.now.\n// Date.now polyfill required.\nvar pnow = function pnow() {\n if (root.performance && typeof root.performance.now === 'function') {\n return root.performance.now();\n }\n\n // fallback\n return Date.now() - nowOffset;\n};\nvar reservedCBs = {};\nvar lastTime = Date.now();\nvar polyfillRaf = function polyfillRaf(callback) {\n if (typeof callback !== 'function') {\n throw new TypeError(\"\".concat(callback, \" is not a function\"));\n }\n var currentTime = Date.now();\n var gap = currentTime - lastTime;\n var delay = gap > 16 ? 0 : 16 - gap;\n var id = uniqueId();\n reservedCBs[id] = callback;\n\n // keys(reservedCBs).length > 1 의미는 이미 setTimeout 이 걸려있는 경우.\n // 함께 callback 이 실행될 수 있게 reservedCBs 에만 추가해주고 return\n if (Object.keys(reservedCBs).length > 1) return id;\n setTimeout(function () {\n lastTime = currentTime;\n var copied = reservedCBs;\n reservedCBs = {};\n Object.keys(copied).forEach(function (key) {\n return copied[key](pnow());\n });\n }, delay);\n return id;\n};\nvar polyfillCaf = function polyfillCaf(id) {\n delete reservedCBs[id];\n};\nvar vendorPrefixes = ['', 'webkit', 'moz', 'ms', 'o'];\nvar getRequestAnimationFrame = function getRequestAnimationFrame(vp) {\n if (typeof vp !== 'string') return polyfillRaf;\n if (vp === '') return root.requestAnimationFrame;\n return root[\"\".concat(vp, \"RequestAnimationFrame\")];\n};\nvar getCancelAnimationFrame = function getCancelAnimationFrame(vp) {\n if (typeof vp !== 'string') return polyfillCaf;\n if (vp === '') return root.cancelAnimationFrame;\n return root[\"\".concat(vp, \"CancelAnimationFrame\")] || root[\"\".concat(vp, \"CancelRequestAnimationFrame\")];\n};\nvar find = function find(arr, predicate) {\n var i = 0;\n while (arr[i] !== undefined) {\n if (predicate(arr[i])) return arr[i];\n i += 1;\n }\n};\nvar vp = find(vendorPrefixes, function (vp) {\n return !!getRequestAnimationFrame(vp);\n});\nvar raf = getRequestAnimationFrame(vp);\nvar caf = getCancelAnimationFrame(vp);\nroot.requestAnimationFrame = raf;\nroot.cancelAnimationFrame = caf;\n\nvar AsyncParallelHook = /*#__PURE__*/function () {\n function AsyncParallelHook() {\n _classCallCheck(this, AsyncParallelHook);\n this.callbacks = [];\n }\n return _createClass(AsyncParallelHook, [{\n key: \"getCallbacksNum\",\n value: function getCallbacksNum() {\n return this.callbacks.length;\n }\n }, {\n key: \"tapPromise\",\n value: function tapPromise(options, fn) {\n this.callbacks.push(fn);\n }\n }, {\n key: \"promise\",\n value: function promise() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return Promise.all(this.callbacks.map(function (callback) {\n return callback.apply(void 0, args);\n }));\n }\n }]);\n}();\n\nvar AsyncSeriesWaterfallHook = /*#__PURE__*/function () {\n function AsyncSeriesWaterfallHook() {\n _classCallCheck(this, AsyncSeriesWaterfallHook);\n this.callbacks = [];\n }\n return _createClass(AsyncSeriesWaterfallHook, [{\n key: \"tapPromise\",\n value: function tapPromise(options, fn) {\n this.callbacks.push(fn);\n }\n }, {\n key: \"promise\",\n value: function () {\n var _promise = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _this$callbacks,\n result,\n i,\n callback,\n _args = arguments;\n return _regeneratorRuntime().wrap(function (_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!this.callbacks.length) {\n _context.next = 6;\n break;\n }\n _context.next = 1;\n return (_this$callbacks = this.callbacks)[0].apply(_this$callbacks, _args);\n case 1:\n result = _context.sent;\n i = 1;\n case 2:\n if (!(i < this.callbacks.length)) {\n _context.next = 5;\n break;\n }\n callback = this.callbacks[i]; // @ts-ignore\n // eslint-disable-next-line no-await-in-loop\n _context.next = 3;\n return callback(result);\n case 3:\n result = _context.sent;\n case 4:\n i++;\n _context.next = 2;\n break;\n case 5:\n return _context.abrupt(\"return\", result);\n case 6:\n return _context.abrupt(\"return\", null);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function promise() {\n return _promise.apply(this, arguments);\n }\n return promise;\n }()\n }]);\n}();\n\nvar SyncHook = /*#__PURE__*/function () {\n function SyncHook() {\n _classCallCheck(this, SyncHook);\n this.callbacks = [];\n }\n return _createClass(SyncHook, [{\n key: \"tap\",\n value: function tap(options, fn) {\n this.callbacks.push(fn);\n }\n }, {\n key: \"call\",\n value: function call() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n /* eslint-disable-next-line prefer-rest-params */\n var argsArr = arguments;\n this.callbacks.forEach(function (callback) {\n /* eslint-disable-next-line prefer-spread */\n callback.apply(undefined, argsArr);\n });\n }\n }]);\n}();\n\nvar SyncWaterfallHook = /*#__PURE__*/function () {\n function SyncWaterfallHook() {\n _classCallCheck(this, SyncWaterfallHook);\n this.callbacks = [];\n }\n return _createClass(SyncWaterfallHook, [{\n key: \"tap\",\n value: function tap(options, fn) {\n this.callbacks.push(fn);\n }\n }, {\n key: \"call\",\n value: function call() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (this.callbacks.length) {\n /* eslint-disable-next-line prefer-rest-params */\n var argsArr = arguments;\n /* eslint-disable-next-line prefer-spread */\n var result = this.callbacks[0].apply(undefined, argsArr);\n for (var i = 1; i < this.callbacks.length; i++) {\n var callback = this.callbacks[i];\n // @ts-ignore\n result = callback(result);\n }\n return result;\n }\n return null;\n }\n }]);\n}();\n\nvar genericFontFamilies = ['serif', 'sans-serif', 'monospace', 'cursive', 'fantasy', 'system-ui'];\nvar stringRegExp = /([\\\"\\'])[^\\'\\\"]+\\1/;\nfunction getFontAttr(attributes) {\n var _attributes$fontSize = attributes.fontSize,\n fontSize = _attributes$fontSize === void 0 ? 16 : _attributes$fontSize,\n _attributes$fontFamil = attributes.fontFamily,\n fontFamily = _attributes$fontFamil === void 0 ? 'sans-serif' : _attributes$fontFamil,\n _attributes$fontStyle = attributes.fontStyle,\n fontStyle = _attributes$fontStyle === void 0 ? 'normal' : _attributes$fontStyle,\n _attributes$fontVaria = attributes.fontVariant,\n fontVariant = _attributes$fontVaria === void 0 ? 'normal' : _attributes$fontVaria,\n _attributes$fontWeigh = attributes.fontWeight,\n fontWeight = _attributes$fontWeigh === void 0 ? 'normal' : _attributes$fontWeigh;\n return {\n fontSize: fontSize,\n fontFamily: fontFamily,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight\n };\n}\nvar toFontString = memoize(function toFontStringRaw(attributes) {\n var _getFontAttr = getFontAttr(attributes),\n fontSize = _getFontAttr.fontSize,\n fontFamily = _getFontAttr.fontFamily,\n fontStyle = _getFontAttr.fontStyle,\n fontVariant = _getFontAttr.fontVariant,\n fontWeight = _getFontAttr.fontWeight;\n\n // build canvas api font setting from individual components. Convert a numeric this.fontSize to px\n // const fontSizeString: string = isNumber(fontSize) ? `${fontSize}px` : fontSize.toString();\n var fontSizeString = isNumber(fontSize) && \"\".concat(fontSize, \"px\") || '16px';\n // Clean-up fontFamily property by quoting each font name\n // this will support font names with spaces\n\n var fontFamilies = fontFamily.split(',');\n for (var i = fontFamilies.length - 1; i >= 0; i--) {\n // Trim any extra white-space\n var _fontFamily = fontFamilies[i].trim();\n // Check if font already contains strings\n if (!stringRegExp.test(_fontFamily) && genericFontFamilies.indexOf(_fontFamily) < 0) {\n _fontFamily = \"\\\"\".concat(_fontFamily, \"\\\"\");\n }\n fontFamilies[i] = _fontFamily;\n }\n return \"\".concat(fontStyle, \" \").concat(fontVariant, \" \").concat(fontWeight, \" \").concat(fontSizeString, \" \").concat(fontFamilies.join(','));\n}, function (attributes) {\n var _getFontAttr2 = getFontAttr(attributes),\n fontSize = _getFontAttr2.fontSize,\n fontFamily = _getFontAttr2.fontFamily,\n fontStyle = _getFontAttr2.fontStyle,\n fontVariant = _getFontAttr2.fontVariant,\n fontWeight = _getFontAttr2.fontWeight;\n return \"\".concat(fontStyle, \"_\").concat(fontVariant, \"_\").concat(fontWeight, \"_\").concat(fontSize, \"_\").concat(fontFamily);\n});\n\n/**\n * Minimum scaling limit\n *\n * When `scale` is 0, the matrix will become an irreversible matrix,\n * and `NaN` will appear during matrix calculation and decomposition,\n * causing exceptions\n */\nvar MIN_SCALE = 0.000001;\nvar clampScale = function clampScale(item) {\n return Math.max(item, MIN_SCALE);\n};\nfunction createSkewMatrix(skewMatrix, skewX, skewY) {\n // Create an identity matrix\n mat4.identity(skewMatrix);\n // Apply skew to the matrix\n skewMatrix[4] = Math.tan(skewX); // Skew Y axis in X direction\n skewMatrix[1] = Math.tan(skewY); // Skew X axis in Y direction\n\n return skewMatrix;\n}\nvar $mat4_1 = mat4.create();\nvar $mat4_2 = mat4.create();\nvar parser = {\n scale: function scale(d) {\n mat4.fromScaling($mat4_1, [d[0].value, d[1].value, 1].map(function (item) {\n return clampScale(item);\n }));\n },\n scaleX: function scaleX(d) {\n mat4.fromScaling($mat4_1, [d[0].value, 1, 1].map(function (item) {\n return clampScale(item);\n }));\n },\n scaleY: function scaleY(d) {\n mat4.fromScaling($mat4_1, [1, d[0].value, 1].map(function (item) {\n return clampScale(item);\n }));\n },\n scaleZ: function scaleZ(d) {\n mat4.fromScaling($mat4_1, [1, 1, d[0].value].map(function (item) {\n return clampScale(item);\n }));\n },\n scale3d: function scale3d(d) {\n mat4.fromScaling($mat4_1, [d[0].value, d[1].value, d[2].value].map(function (item) {\n return clampScale(item);\n }));\n },\n translate: function translate(d) {\n mat4.fromTranslation($mat4_1, [d[0].value, d[1].value, 0]);\n },\n translateX: function translateX(d) {\n mat4.fromTranslation($mat4_1, [d[0].value, 0, 0]);\n },\n translateY: function translateY(d) {\n mat4.fromTranslation($mat4_1, [0, d[0].value, 0]);\n },\n translateZ: function translateZ(d) {\n mat4.fromTranslation($mat4_1, [0, 0, d[0].value]);\n },\n translate3d: function translate3d(d) {\n mat4.fromTranslation($mat4_1, [d[0].value, d[1].value, d[2].value]);\n },\n rotate: function rotate(d) {\n mat4.fromZRotation($mat4_1, deg2rad(convertAngleUnit(d[0])));\n },\n rotateX: function rotateX(d) {\n mat4.fromXRotation($mat4_1, deg2rad(convertAngleUnit(d[0])));\n },\n rotateY: function rotateY(d) {\n mat4.fromYRotation($mat4_1, deg2rad(convertAngleUnit(d[0])));\n },\n rotateZ: function rotateZ(d) {\n mat4.fromZRotation($mat4_1, deg2rad(convertAngleUnit(d[0])));\n },\n rotate3d: function rotate3d(d) {\n mat4.fromRotation($mat4_1, deg2rad(convertAngleUnit(d[3])), [d[0].value, d[1].value, d[2].value]);\n },\n skew: function skew(d) {\n createSkewMatrix($mat4_1, deg2rad(d[0].value), deg2rad(d[1].value));\n },\n skewX: function skewX(d) {\n createSkewMatrix($mat4_1, deg2rad(d[0].value), 0);\n },\n skewY: function skewY(d) {\n createSkewMatrix($mat4_1, 0, deg2rad(d[0].value));\n },\n matrix: function matrix(d) {\n // prettier-ignore\n mat4.set($mat4_1, d[0].value, d[1].value, 0, 0, d[2].value, d[3].value, 0, 0, 0, 0, 1, 0, d[4].value, d[5].value, 0, 1);\n },\n matrix3d: function matrix3d(d) {\n // @ts-ignore\n mat4.set.apply(mat4, [$mat4_1].concat(_toConsumableArray(d.map(function (s) {\n return s.value;\n }))));\n }\n};\nvar $vec3One$1 = vec3.fromValues(1, 1, 1);\nvar $vec3Zero$1 = vec3.create();\nvar optimizer = {\n translate: function translate(object, d) {\n runtime.sceneGraphService.setLocalScale(object, $vec3One$1, false);\n runtime.sceneGraphService.setLocalEulerAngles(object, $vec3Zero$1, undefined, undefined, false);\n runtime.sceneGraphService.setLocalPosition(object, [d[0].value, d[1].value, 0], false);\n runtime.sceneGraphService.dirtyLocalTransform(object, object.transformable);\n }\n};\nfunction parsedTransformToMat4(transform, object) {\n if (transform.length) {\n if (transform.length === 1 && optimizer[transform[0].t]) {\n optimizer[transform[0].t](object, transform[0].d);\n return;\n }\n var m = mat4.identity($mat4_2);\n for (var i = 0; i < transform.length; i++) {\n var _transform$i = transform[i],\n t = _transform$i.t,\n d = _transform$i.d;\n var p = parser[t];\n if (p) {\n p(d);\n mat4.mul(m, m, $mat4_1);\n }\n }\n object.setLocalTransform(m);\n } else {\n object.resetLocalTransform();\n }\n return object.getLocalTransform();\n}\n\n/**\n * @see /zh/docs/api/animation#支持变换的属性\n *\n * support the following formats like CSS Transform:\n *\n * scale\n * * scale(x, y)\n * * scaleX(x)\n * * scaleY(x)\n * * scaleZ(z)\n * * scale3d(x, y, z)\n *\n * translate (unit: none, px, %(relative to its bounds))\n * * translate(x, y) eg. translate(0, 0) translate(0, 30px) translate(100%, 100%)\n * * translateX(0)\n * * translateY(0)\n * * translateZ(0)\n * * translate3d(0, 0, 0)\n *\n * rotate (unit: deg rad turn)\n * * rotate(0.5turn) rotate(30deg) rotate(1rad)\n *\n * none\n *\n * unsupported for now:\n * * calc() eg. translate(calc(100% + 10px))\n * * matrix/matrix3d()\n * * skew/skewX/skewY\n * * perspective\n */\nvar CSSPropertyTransform = /*#__PURE__*/function () {\n function CSSPropertyTransform() {\n _classCallCheck(this, CSSPropertyTransform);\n this.parser = parseTransformUnmemoize;\n this.mixer = mergeTransforms;\n }\n return _createClass(CSSPropertyTransform, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, parsed, object) {\n // 'none'\n if (parsed instanceof CSSKeywordValue) {\n return [];\n }\n return parsed;\n }\n }, {\n key: \"postProcessor\",\n value: function postProcessor(object) {\n parsedTransformToMat4(object.parsedStyle.transform, object);\n }\n }]);\n}();\n\n/**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/transform-origin\n * @example\n * [10px, 10px] [10%, 10%]\n */\nvar CSSPropertyTransformOrigin = /*#__PURE__*/function () {\n function CSSPropertyTransformOrigin() {\n _classCallCheck(this, CSSPropertyTransformOrigin);\n }\n return _createClass(CSSPropertyTransformOrigin, [{\n key: \"postProcessor\",\n value: function postProcessor(object) {\n var transformOrigin = object.parsedStyle.transformOrigin;\n if (transformOrigin[0].unit === UnitType.kPixels && transformOrigin[1].unit === UnitType.kPixels) {\n object.setOrigin(transformOrigin[0].value, transformOrigin[1].value);\n } else {\n // Relative to geometry bounds, calculate later.\n object.getGeometryBounds();\n }\n }\n }]);\n}();\n\nvar CSSPropertyZIndex = /*#__PURE__*/function () {\n function CSSPropertyZIndex() {\n _classCallCheck(this, CSSPropertyZIndex);\n }\n return _createClass(CSSPropertyZIndex, [{\n key: \"calculator\",\n value: function calculator(name, oldParsed, computed, object) {\n return computed.value;\n }\n }, {\n key: \"postProcessor\",\n value: function postProcessor(object) {\n if (object.parentNode) {\n var parentEntity = object.parentNode;\n var parentRenderable = parentEntity.renderable;\n var parentSortable = parentEntity.sortable;\n if (parentRenderable) {\n parentEntity.dirty();\n }\n // need re-sort on parent\n if (parentSortable) {\n parentSortable.dirty = true;\n parentSortable.dirtyReason = SortReason.Z_INDEX_CHANGED;\n }\n }\n }\n }]);\n}();\n\nvar CircleUpdater = /*#__PURE__*/function () {\n function CircleUpdater() {\n _classCallCheck(this, CircleUpdater);\n }\n return _createClass(CircleUpdater, [{\n key: \"update\",\n value: function update(parsedStyle, object) {\n var _parsedStyle$cx = parsedStyle.cx,\n cx = _parsedStyle$cx === void 0 ? 0 : _parsedStyle$cx,\n _parsedStyle$cy = parsedStyle.cy,\n cy = _parsedStyle$cy === void 0 ? 0 : _parsedStyle$cy,\n _parsedStyle$r = parsedStyle.r,\n r = _parsedStyle$r === void 0 ? 0 : _parsedStyle$r;\n return {\n cx: cx,\n cy: cy,\n hwidth: r,\n hheight: r\n };\n }\n }]);\n}();\n\nvar EllipseUpdater = /*#__PURE__*/function () {\n function EllipseUpdater() {\n _classCallCheck(this, EllipseUpdater);\n }\n return _createClass(EllipseUpdater, [{\n key: \"update\",\n value: function update(parsedStyle, object) {\n var _parsedStyle$cx = parsedStyle.cx,\n cx = _parsedStyle$cx === void 0 ? 0 : _parsedStyle$cx,\n _parsedStyle$cy = parsedStyle.cy,\n cy = _parsedStyle$cy === void 0 ? 0 : _parsedStyle$cy,\n _parsedStyle$rx = parsedStyle.rx,\n rx = _parsedStyle$rx === void 0 ? 0 : _parsedStyle$rx,\n _parsedStyle$ry = parsedStyle.ry,\n ry = _parsedStyle$ry === void 0 ? 0 : _parsedStyle$ry;\n return {\n cx: cx,\n cy: cy,\n hwidth: rx,\n hheight: ry\n };\n }\n }]);\n}();\n\nvar LineUpdater = /*#__PURE__*/function () {\n function LineUpdater() {\n _classCallCheck(this, LineUpdater);\n }\n return _createClass(LineUpdater, [{\n key: \"update\",\n value: function update(parsedStyle) {\n var x1 = parsedStyle.x1,\n y1 = parsedStyle.y1,\n x2 = parsedStyle.x2,\n y2 = parsedStyle.y2;\n var minX = Math.min(x1, x2);\n var maxX = Math.max(x1, x2);\n var minY = Math.min(y1, y2);\n var maxY = Math.max(y1, y2);\n var width = maxX - minX;\n var height = maxY - minY;\n var hwidth = width / 2;\n var hheight = height / 2;\n return {\n cx: minX + hwidth,\n cy: minY + hheight,\n hwidth: hwidth,\n hheight: hheight\n };\n }\n }]);\n}();\n\nvar PathUpdater = /*#__PURE__*/function () {\n function PathUpdater() {\n _classCallCheck(this, PathUpdater);\n }\n return _createClass(PathUpdater, [{\n key: \"update\",\n value: function update(parsedStyle) {\n var d = parsedStyle.d;\n var _d$rect = d.rect,\n x = _d$rect.x,\n y = _d$rect.y,\n width = _d$rect.width,\n height = _d$rect.height;\n var hwidth = width / 2;\n var hheight = height / 2;\n return {\n cx: x + hwidth,\n cy: y + hheight,\n hwidth: hwidth,\n hheight: hheight\n };\n }\n }]);\n}();\n\nvar PolylineUpdater = /*#__PURE__*/function () {\n function PolylineUpdater() {\n _classCallCheck(this, PolylineUpdater);\n }\n return _createClass(PolylineUpdater, [{\n key: \"update\",\n value: function update(parsedStyle) {\n if (parsedStyle.points && isArray(parsedStyle.points.points)) {\n var points = parsedStyle.points.points;\n\n // FIXME: account for miter lineJoin\n var minX = Math.min.apply(Math, _toConsumableArray(points.map(function (point) {\n return point[0];\n })));\n var maxX = Math.max.apply(Math, _toConsumableArray(points.map(function (point) {\n return point[0];\n })));\n var minY = Math.min.apply(Math, _toConsumableArray(points.map(function (point) {\n return point[1];\n })));\n var maxY = Math.max.apply(Math, _toConsumableArray(points.map(function (point) {\n return point[1];\n })));\n var width = maxX - minX;\n var height = maxY - minY;\n var hwidth = width / 2;\n var hheight = height / 2;\n return {\n cx: minX + hwidth,\n cy: minY + hheight,\n hwidth: hwidth,\n hheight: hheight\n };\n }\n return {\n cx: 0,\n cy: 0,\n hwidth: 0,\n hheight: 0\n };\n }\n }]);\n}();\n\nvar RectUpdater = /*#__PURE__*/function () {\n function RectUpdater() {\n _classCallCheck(this, RectUpdater);\n }\n return _createClass(RectUpdater, [{\n key: \"update\",\n value: function update(parsedStyle, object) {\n var _parsedStyle$x = parsedStyle.x,\n x = _parsedStyle$x === void 0 ? 0 : _parsedStyle$x,\n _parsedStyle$y = parsedStyle.y,\n y = _parsedStyle$y === void 0 ? 0 : _parsedStyle$y,\n src = parsedStyle.src,\n _parsedStyle$width = parsedStyle.width,\n width = _parsedStyle$width === void 0 ? 0 : _parsedStyle$width,\n _parsedStyle$height = parsedStyle.height,\n height = _parsedStyle$height === void 0 ? 0 : _parsedStyle$height;\n var contentWidth = width;\n var contentHeight = height;\n\n // resize with HTMLImageElement's size\n if (src && !isString(src)) {\n if (!contentWidth) {\n contentWidth = src.width;\n parsedStyle.width = contentWidth;\n }\n if (!contentHeight) {\n contentHeight = src.height;\n parsedStyle.height = contentHeight;\n }\n }\n return {\n cx: x + contentWidth / 2,\n cy: y + contentHeight / 2,\n hwidth: contentWidth / 2,\n hheight: contentHeight / 2\n };\n }\n }]);\n}();\n\nvar TextUpdater = /*#__PURE__*/function () {\n function TextUpdater(globalRuntime) {\n _classCallCheck(this, TextUpdater);\n this.globalRuntime = globalRuntime;\n }\n return _createClass(TextUpdater, [{\n key: \"isReadyToMeasure\",\n value: function isReadyToMeasure(parsedStyle, object) {\n var text = parsedStyle.text;\n return text;\n }\n }, {\n key: \"update\",\n value: function update(parsedStyle, object) {\n var _object$ownerDocument;\n var text = parsedStyle.text,\n _parsedStyle$textAlig = parsedStyle.textAlign,\n textAlign = _parsedStyle$textAlig === void 0 ? 'start' : _parsedStyle$textAlig,\n _parsedStyle$lineWidt = parsedStyle.lineWidth,\n lineWidth = _parsedStyle$lineWidt === void 0 ? 1 : _parsedStyle$lineWidt,\n _parsedStyle$textBase = parsedStyle.textBaseline,\n textBaseline = _parsedStyle$textBase === void 0 ? 'alphabetic' : _parsedStyle$textBase,\n _parsedStyle$dx = parsedStyle.dx,\n dx = _parsedStyle$dx === void 0 ? 0 : _parsedStyle$dx,\n _parsedStyle$dy = parsedStyle.dy,\n dy = _parsedStyle$dy === void 0 ? 0 : _parsedStyle$dy,\n _parsedStyle$x = parsedStyle.x,\n x = _parsedStyle$x === void 0 ? 0 : _parsedStyle$x,\n _parsedStyle$y = parsedStyle.y,\n y = _parsedStyle$y === void 0 ? 0 : _parsedStyle$y;\n if (!this.isReadyToMeasure(parsedStyle, object)) {\n parsedStyle.metrics = {\n font: '',\n width: 0,\n height: 0,\n lines: [],\n lineWidths: [],\n lineHeight: 0,\n maxLineWidth: 0,\n fontProperties: {\n ascent: 0,\n descent: 0,\n fontSize: 0\n },\n lineMetrics: []\n };\n return {\n hwidth: 0,\n hheight: 0,\n cx: 0,\n cy: 0\n };\n }\n var _ref = (object === null || object === void 0 || (_object$ownerDocument = object.ownerDocument) === null || _object$ownerDocument === void 0 || (_object$ownerDocument = _object$ownerDocument.defaultView) === null || _object$ownerDocument === void 0 ? void 0 : _object$ownerDocument.getConfig()) || {},\n offscreenCanvas = _ref.offscreenCanvas;\n var metrics = this.globalRuntime.textService.measureText(text, parsedStyle, offscreenCanvas);\n parsedStyle.metrics = metrics;\n var width = metrics.width,\n height = metrics.height;\n var hwidth = width / 2;\n var hheight = height / 2;\n\n // default 'left'\n var lineXOffset = x + hwidth;\n if (textAlign === 'center' || textAlign === 'middle') {\n lineXOffset += lineWidth / 2 - hwidth;\n } else if (textAlign === 'right' || textAlign === 'end') {\n lineXOffset += lineWidth - hwidth * 2;\n }\n var lineYOffset = y - hheight;\n if (textBaseline === 'middle') {\n lineYOffset += hheight;\n } else if (textBaseline === 'top' || textBaseline === 'hanging') {\n lineYOffset += hheight * 2;\n } else if (textBaseline === 'alphabetic') ; else if (textBaseline === 'bottom' || textBaseline === 'ideographic') {\n lineYOffset += 0;\n }\n // TODO: ideographic & bottom\n\n if (dx) {\n lineXOffset += dx;\n }\n if (dy) {\n lineYOffset += dy;\n }\n return {\n cx: lineXOffset,\n cy: lineYOffset,\n hwidth: hwidth,\n hheight: hheight\n };\n }\n }]);\n}();\n\nvar GroupUpdater = /*#__PURE__*/function () {\n function GroupUpdater() {\n _classCallCheck(this, GroupUpdater);\n }\n return _createClass(GroupUpdater, [{\n key: \"update\",\n value: function update(parsedStyle, object) {\n return {\n cx: 0,\n cy: 0,\n hwidth: 0,\n hheight: 0\n };\n }\n }]);\n}();\n\nvar HTMLUpdater = /*#__PURE__*/function () {\n function HTMLUpdater() {\n _classCallCheck(this, HTMLUpdater);\n }\n return _createClass(HTMLUpdater, [{\n key: \"update\",\n value: function update(parsedStyle, object) {\n var _parsedStyle$x = parsedStyle.x,\n x = _parsedStyle$x === void 0 ? 0 : _parsedStyle$x,\n _parsedStyle$y = parsedStyle.y,\n y = _parsedStyle$y === void 0 ? 0 : _parsedStyle$y,\n _parsedStyle$width = parsedStyle.width,\n width = _parsedStyle$width === void 0 ? 0 : _parsedStyle$width,\n _parsedStyle$height = parsedStyle.height,\n height = _parsedStyle$height === void 0 ? 0 : _parsedStyle$height;\n return {\n cx: x + width / 2,\n cy: y + height / 2,\n hwidth: width / 2,\n hheight: height / 2\n };\n }\n }]);\n}();\n\nfunction isFederatedEvent(value) {\n return !!value.type;\n}\n\n/**\n * An DOM-compatible synthetic event implementation that is \"forwarded\" on behalf of an original\n * FederatedEvent or native Event.\n */\nvar FederatedEvent = /*#__PURE__*/function () {\n /**\n * The event boundary which manages this event. Propagation can only occur\n * within the boundary's jurisdiction.\n */\n function FederatedEvent(manager) {\n _classCallCheck(this, FederatedEvent);\n /**\n * The propagation phase.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase\n */\n this.eventPhase = FederatedEvent.prototype.NONE;\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Event/bubbles\n */\n this.bubbles = true;\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Event/cancelBubble\n */\n this.cancelBubble = true;\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Event/cancelable\n */\n this.cancelable = false;\n /** Flags whether the default response of the user agent was prevent through this event. */\n this.defaultPrevented = false;\n /** Flags whether propagation was stopped. */\n this.propagationStopped = false;\n /** Flags whether propagation was immediately stopped. */\n this.propagationImmediatelyStopped = false;\n /**\n * The coordinates of the evnet relative to the nearest DOM layer.\n * This is a non-standard property.\n */\n this.layer = new Point();\n /**\n * The coordinates of the event relative to the DOM document.\n * This is a non-standard property.\n * relative to the DOM document.\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/MouseEvent/pageX\n */\n this.page = new Point();\n /**\n * relative to Canvas, origin is left-top\n */\n this.canvas = new Point();\n /**\n * relative to Viewport, account for Camera\n */\n this.viewport = new Point();\n this.composed = false;\n this.NONE = 0;\n this.CAPTURING_PHASE = 1;\n this.AT_TARGET = 2;\n this.BUBBLING_PHASE = 3;\n this.manager = manager;\n }\n return _createClass(FederatedEvent, [{\n key: \"name\",\n get:\n /**\n * The type of event, supports the following:\n * * pointerdown\n * * touchstart\n * * mousedown\n * * rightdown\n * * ...\n */\n\n /**\n * @deprecated\n */\n function get() {\n return this.type;\n }\n }, {\n key: \"layerX\",\n get: function get() {\n return this.layer.x;\n }\n }, {\n key: \"layerY\",\n get: function get() {\n return this.layer.y;\n }\n }, {\n key: \"pageX\",\n get: function get() {\n return this.page.x;\n }\n }, {\n key: \"pageY\",\n get: function get() {\n return this.page.y;\n }\n }, {\n key: \"x\",\n get: function get() {\n return this.canvas.x;\n }\n }, {\n key: \"y\",\n get: function get() {\n return this.canvas.y;\n }\n }, {\n key: \"canvasX\",\n get: function get() {\n return this.canvas.x;\n }\n }, {\n key: \"canvasY\",\n get: function get() {\n return this.canvas.y;\n }\n }, {\n key: \"viewportX\",\n get: function get() {\n return this.viewport.x;\n }\n }, {\n key: \"viewportY\",\n get: function get() {\n return this.viewport.y;\n }\n }, {\n key: \"composedPath\",\n value:\n /**\n * The propagation path for this event\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Event/composedPath\n *\n * So composedPath()[0] represents the original target.\n * @see https://polymer-library.polymer-project.org/3.0/docs/devguide/events#retargeting\n */\n function composedPath() {\n if (this.manager && (!this.path || this.path[0] !== this.target)) {\n this.path = this.target ? this.manager.propagationPath(this.target) : [];\n }\n return this.path;\n }\n /**\n * @deprecated\n */\n }, {\n key: \"propagationPath\",\n get: function get() {\n return this.composedPath();\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Event/preventDefault\n */\n }, {\n key: \"preventDefault\",\n value: function preventDefault() {\n if (this.nativeEvent instanceof Event && this.nativeEvent.cancelable) {\n this.nativeEvent.preventDefault();\n }\n this.defaultPrevented = true;\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Event/stopImmediatePropagation\n */\n }, {\n key: \"stopImmediatePropagation\",\n value: function stopImmediatePropagation() {\n this.propagationImmediatelyStopped = true;\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Event/stopPropagation\n */\n }, {\n key: \"stopPropagation\",\n value: function stopPropagation() {\n this.propagationStopped = true;\n }\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/view\n */\n }, {\n key: \"initEvent\",\n value:\n /**\n * added for compatibility with DOM Event,\n * deprecated props and methods\n */\n function initEvent() {}\n }, {\n key: \"initUIEvent\",\n value: function initUIEvent() {}\n }, {\n key: \"clone\",\n value: function clone() {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }]);\n}();\n\nvar FederatedMouseEvent = /*#__PURE__*/function (_ref) {\n function FederatedMouseEvent() {\n var _this;\n _classCallCheck(this, FederatedMouseEvent);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, FederatedMouseEvent, [].concat(args));\n /** Whether the \"alt\" key was pressed when this mouse event occurred. */\n /** The specific button that was pressed in this mouse event. */\n /** The button depressed when this event occurred. */\n /** Whether the \"control\" key was pressed when this mouse event occurred. */\n /** Whether the \"meta\" key was pressed when this mouse event occurred. */\n /** This is currently not implemented in the Federated Events API. */\n // @ts-ignore\n /** Whether the \"shift\" key was pressed when this mouse event occurred. */\n /**\n * The coordinates of the mouse event relative to the canvas.\n */\n _this.client = new Point();\n /**\n * The movement in this pointer relative to the last `mousemove` event.\n */\n _this.movement = new Point();\n /**\n * The offset of the pointer coordinates w.r.t. target DisplayObject in world space. This is\n * not supported at the moment.\n */\n _this.offset = new Point();\n /**\n * The pointer coordinates in world space.\n */\n _this.global = new Point();\n /**\n * The pointer coordinates in sceen space.\n */\n _this.screen = new Point();\n return _this;\n }\n _inherits(FederatedMouseEvent, _ref);\n return _createClass(FederatedMouseEvent, [{\n key: \"clientX\",\n get: function get() {\n return this.client.x;\n }\n }, {\n key: \"clientY\",\n get: function get() {\n return this.client.y;\n }\n }, {\n key: \"movementX\",\n get: function get() {\n return this.movement.x;\n }\n }, {\n key: \"movementY\",\n get: function get() {\n return this.movement.y;\n }\n }, {\n key: \"offsetX\",\n get: function get() {\n return this.offset.x;\n }\n }, {\n key: \"offsetY\",\n get: function get() {\n return this.offset.y;\n }\n }, {\n key: \"globalX\",\n get: function get() {\n return this.global.x;\n }\n }, {\n key: \"globalY\",\n get: function get() {\n return this.global.y;\n }\n }, {\n key: \"screenX\",\n get: function get() {\n return this.screen.x;\n }\n }, {\n key: \"screenY\",\n get: function get() {\n return this.screen.y;\n }\n }, {\n key: \"getModifierState\",\n value: function getModifierState(key) {\n return 'getModifierState' in this.nativeEvent && this.nativeEvent.getModifierState(key);\n }\n }, {\n key: \"initMouseEvent\",\n value: function initMouseEvent() {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }]);\n}(FederatedEvent);\n\n// @ts-ignore\nvar FederatedPointerEvent = /*#__PURE__*/function (_FederatedMouseEvent) {\n function FederatedPointerEvent() {\n var _this;\n _classCallCheck(this, FederatedPointerEvent);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, FederatedPointerEvent, [].concat(args));\n /**\n * The unique identifier of the pointer.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerId\n */\n /**\n * The width of the pointer's contact along the x-axis, measured in CSS pixels.\n * radiusX of TouchEvents will be represented by this value.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/width\n */\n _this.width = 0;\n /**\n * The height of the pointer's contact along the y-axis, measured in CSS pixels.\n * radiusY of TouchEvents will be represented by this value.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/height\n */\n _this.height = 0;\n /**\n * Indicates whether or not the pointer device that created the event is the primary pointer.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/isPrimary\n */\n _this.isPrimary = false;\n return _this;\n }\n _inherits(FederatedPointerEvent, _FederatedMouseEvent);\n return _createClass(FederatedPointerEvent, [{\n key: \"getCoalescedEvents\",\n value:\n /**\n * The type of pointer that triggered the event.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType\n */\n\n /**\n * Pressure applied by the pointing device during the event.\n *s\n * A Touch's force property will be represented by this value.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pressure\n */\n\n /**\n * Barrel pressure on a stylus pointer.\n *\n * @see https://w3c.github.io/pointerevents/#pointerevent-interface\n */\n\n /**\n * The angle, in degrees, between the pointer device and the screen.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/tiltX\n */\n\n /**\n * The angle, in degrees, between the pointer device and the screen.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/tiltY\n */\n\n /**\n * Twist of a stylus pointer.\n *\n * @see https://w3c.github.io/pointerevents/#pointerevent-interface\n */\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/getCoalescedEvents\n */\n function getCoalescedEvents() {\n if (this.type === 'pointermove' || this.type === 'mousemove' || this.type === 'touchmove') {\n // @ts-ignore\n return [this];\n }\n return [];\n }\n\n /**\n * @see https://chromestatus.com/feature/5765569655603200\n */\n }, {\n key: \"getPredictedEvents\",\n value: function getPredictedEvents() {\n throw new Error('getPredictedEvents is not supported!');\n }\n\n /**\n * @see https://github.com/antvis/G/issues/1115\n * We currently reuses event objects in the event system,\n * avoiding the creation of a large number of event objects.\n * Reused objects are only used to carry different data,\n * such as coordinate information, native event objects,\n * and therefore the lifecycle is limited to the event handler,\n * which can lead to unintended consequences if an attempt is made to cache the entire event object.\n *\n * Therefore, while keeping the above performance considerations in mind, it is possible to provide a clone method that creates a new object when the user really wants to cache it, e.g.\n */\n }, {\n key: \"clone\",\n value: function clone() {\n return this.manager.clonePointerEvent(this);\n }\n }]);\n}(FederatedMouseEvent);\n\n// @ts-ignore\nvar FederatedWheelEvent = /*#__PURE__*/function (_FederatedMouseEvent) {\n function FederatedWheelEvent() {\n _classCallCheck(this, FederatedWheelEvent);\n return _callSuper(this, FederatedWheelEvent, arguments);\n }\n _inherits(FederatedWheelEvent, _FederatedMouseEvent);\n return _createClass(FederatedWheelEvent, [{\n key: \"clone\",\n value:\n /**\n * The units of `deltaX`, `deltaY`, and `deltaZ`. This is one of `DOM_DELTA_LINE`,\n * `DOM_DELTA_PAGE`, `DOM_DELTA_PIXEL`.\n */\n\n /** Horizontal scroll amount */\n\n /** Vertical scroll amount */\n\n /** z-axis scroll amount. */\n\n function clone() {\n return this.manager.cloneWheelEvent(this);\n }\n }]);\n}(FederatedMouseEvent);\n\n/**\n * @link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent\n * @link https://developer.mozilla.org/en-US/docs/Web/Events/Creating_and_triggering_events\n *\n * @example\n const event = new CustomEvent('build', { detail: { prop1: 'xx' } });\n circle.addEventListener('build', (e) => {\n e.target; // circle\n e.detail; // { prop1: 'xx' }\n });\n\n circle.dispatchEvent(event);\n */\nvar CustomEvent = /*#__PURE__*/function (_FederatedEvent) {\n function CustomEvent(eventName, options) {\n var _this;\n _classCallCheck(this, CustomEvent);\n _this = _callSuper(this, CustomEvent, [null]);\n _this.type = eventName;\n _this.detail = options === null || options === void 0 ? void 0 : options.detail;\n\n // compatible\n if (options && !('detail' in options)) {\n _this.detail = options;\n }\n\n // compatible with G 3.0\n Object.assign(_this, options);\n return _this;\n }\n _inherits(CustomEvent, _FederatedEvent);\n return _createClass(CustomEvent);\n}(FederatedEvent);\n\n/**\n * Objects that can receive events and may have listeners for them.\n * eg. Element, Canvas, DisplayObject\n * @docs https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n */\nvar EventTarget = /*#__PURE__*/function () {\n function EventTarget() {\n _classCallCheck(this, EventTarget);\n /**\n * event emitter\n */\n this.emitter = new EventEmitter();\n }\n return _createClass(EventTarget, [{\n key: \"on\",\n value:\n /**\n * @deprecated\n * @alias addEventListener\n */\n function on(type, listener, options) {\n this.addEventListener(type, listener, options);\n return this;\n }\n /**\n * support `capture` & `once` in options\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener\n */\n }, {\n key: \"addEventListener\",\n value: function addEventListener(type, listener, options) {\n var capture = false;\n var once = false;\n if (isBoolean(options)) capture = options;else if (options) {\n var _options$capture = options.capture;\n capture = _options$capture === void 0 ? false : _options$capture;\n var _options$once = options.once;\n once = _options$once === void 0 ? false : _options$once;\n }\n if (capture) type += 'capture';\n // eslint-disable-next-line @typescript-eslint/unbound-method\n listener = isFunction(listener) ? listener : listener.handleEvent;\n var context = isFunction(listener) ? undefined : listener;\n if (once) this.emitter.once(type, listener, context);else this.emitter.on(type, listener, context);\n return this;\n }\n /**\n * @deprecated\n * @alias removeEventListener\n */\n }, {\n key: \"off\",\n value: function off(type, listener, options) {\n if (type) {\n this.removeEventListener(type, listener, options);\n } else {\n // remove all listeners\n this.removeAllEventListeners();\n }\n return this;\n }\n }, {\n key: \"removeAllEventListeners\",\n value: function removeAllEventListeners() {\n var _this$emitter;\n (_this$emitter = this.emitter) === null || _this$emitter === void 0 || _this$emitter.removeAllListeners();\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, listener, options) {\n var _listener;\n if (!this.emitter) return this;\n var capture = isBoolean(options) ? options : options === null || options === void 0 ? void 0 : options.capture;\n if (capture) type += 'capture';\n // eslint-disable-next-line @typescript-eslint/unbound-method\n listener = isFunction(listener) ? listener : (_listener = listener) === null || _listener === void 0 ? void 0 : _listener.handleEvent;\n var context = isFunction(listener) ? undefined : listener;\n this.emitter.off(type, listener, context);\n return this;\n }\n /**\n * @deprecated\n * @alias dispatchEvent\n */\n }, {\n key: \"emit\",\n value: function emit(eventName, object) {\n this.dispatchEvent(new CustomEvent(eventName, object));\n }\n }, {\n key: \"dispatchEventToSelf\",\n value: function dispatchEventToSelf(e) {\n e.target || (e.target = this);\n e.currentTarget = this;\n this.emitter.emit(e.type, e);\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(e) {\n var skipPropagate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var dispatchToSelf = arguments.length > 2 ? arguments[2] : undefined;\n if (dispatchToSelf) {\n this.dispatchEventToSelf(e);\n return true;\n }\n var canvas;\n if (this.document) {\n canvas = this;\n } else if (this.defaultView) {\n canvas = this.defaultView;\n } else {\n var _ownerDocument;\n canvas = (_ownerDocument = this.ownerDocument) === null || _ownerDocument === void 0 ? void 0 : _ownerDocument.defaultView;\n }\n if (canvas) {\n e.manager = canvas.getEventService();\n if (!e.manager) return false;\n e.defaultPrevented = false;\n if (e.path) {\n e.path.length = 0;\n } else {\n // @ts-ignore\n e.page = [];\n }\n if (!skipPropagate) {\n e.target = this;\n }\n e.manager.dispatchEvent(e, e.type, skipPropagate);\n } else {\n // HACK Fixed the issue that after an element leaves the DOM tree, there is no associated canvas,\n // which causes the removed and destroy events to not be triggered\n this.dispatchEventToSelf(e);\n }\n return !e.defaultPrevented;\n }\n }]);\n}();\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Node\n */\nvar Node = /*#__PURE__*/function (_EventTarget) {\n function Node() {\n var _this;\n _classCallCheck(this, Node);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Node, [].concat(args));\n _this.shadow = false;\n /**\n * points to canvas.document\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/ownerDocument\n */\n _this.ownerDocument = null;\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Node/isConnected\n * @example\n circle.isConnected; // false\n canvas.appendChild(circle);\n circle.isConnected; // true\n */\n _this.isConnected = false;\n /**\n * Returns node's node document's document base URL.\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Node\n */\n _this.baseURI = '';\n /**\n * Returns the children.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/childNodes\n */\n _this.childNodes = [];\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Node/nodeType\n */\n _this.nodeType = 0;\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Node/nodeName\n */\n _this.nodeName = '';\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Node/nodeValue\n */\n _this.nodeValue = null;\n _this.mutations = undefined;\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ParentNode\n */\n _this.parentNode = null;\n _this.destroyed = false;\n return _this;\n }\n _inherits(Node, _EventTarget);\n return _createClass(Node, [{\n key: \"textContent\",\n get:\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Node/textContent\n */\n function get() {\n var out = '';\n if (this.nodeName === Shape.TEXT) {\n // @ts-ignore\n out += this.style.text;\n }\n var _iterator = _createForOfIteratorHelper(this.childNodes),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _child = _step.value;\n if (_child.nodeName === Shape.TEXT) {\n out += _child.nodeValue;\n } else {\n out += _child.textContent;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return out;\n },\n set: function set(content) {\n var _this2 = this;\n // remove all children\n this.childNodes.slice().forEach(function (child) {\n _this2.removeChild(child);\n });\n if (this.nodeName === Shape.TEXT) {\n // @ts-ignore\n this.style.text = \"\".concat(content);\n }\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Node/getRootNode\n */\n }, {\n key: \"getRootNode\",\n value: function getRootNode() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (this.parentNode) {\n return this.parentNode.getRootNode(opts);\n }\n if (opts.composed && this.host) {\n return this.host.getRootNode(opts);\n }\n return this;\n }\n }, {\n key: \"hasChildNodes\",\n value: function hasChildNodes() {\n return this.childNodes.length > 0;\n }\n }, {\n key: \"isDefaultNamespace\",\n value: function isDefaultNamespace(namespace) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"lookupNamespaceURI\",\n value: function lookupNamespaceURI(prefix) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"lookupPrefix\",\n value: function lookupPrefix(namespace) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"normalize\",\n value: function normalize() {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Node/isEqualNode\n */\n }, {\n key: \"isEqualNode\",\n value: function isEqualNode(otherNode) {\n // TODO: compare 2 nodes, not sameness\n return this === otherNode;\n }\n }, {\n key: \"isSameNode\",\n value: function isSameNode(otherNode) {\n return this.isEqualNode(otherNode);\n }\n }, {\n key: \"parent\",\n get:\n /**\n * @deprecated\n * @alias parentNode\n */\n function get() {\n return this.parentNode;\n }\n }, {\n key: \"parentElement\",\n get: function get() {\n return null;\n }\n }, {\n key: \"nextSibling\",\n get: function get() {\n return null;\n }\n }, {\n key: \"previousSibling\",\n get: function get() {\n return null;\n }\n }, {\n key: \"firstChild\",\n get: function get() {\n return this.childNodes.length > 0 ? this.childNodes[0] : null;\n }\n }, {\n key: \"lastChild\",\n get: function get() {\n return this.childNodes.length > 0 ? this.childNodes[this.childNodes.length - 1] : null;\n }\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n * @see https://github.com/b-fuze/deno-dom/blob/master/src/dom/node.ts#L338\n */\n }, {\n key: \"compareDocumentPosition\",\n value: function compareDocumentPosition(other) {\n if (other === this) {\n // same node\n return 0;\n }\n\n // if (!(other instanceof Node)) {\n // throw new TypeError(\n // 'Node.compareDocumentPosition: Argument 1 does not implement interface Node.',\n // );\n // }\n\n var node1Root = other;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var node2Root = this;\n var node1Hierarchy = [node1Root];\n var node2Hierarchy = [node2Root];\n while ((_node1Root$parentNode = node1Root.parentNode) !== null && _node1Root$parentNode !== void 0 ? _node1Root$parentNode : node2Root.parentNode) {\n var _node1Root$parentNode;\n node1Root = node1Root.parentNode ? (node1Hierarchy.push(node1Root.parentNode), node1Root.parentNode) : node1Root;\n node2Root = node2Root.parentNode ? (node2Hierarchy.push(node2Root.parentNode), node2Root.parentNode) : node2Root;\n }\n\n // Check if they don't share the same root node\n if (node1Root !== node2Root) {\n return Node.DOCUMENT_POSITION_DISCONNECTED | Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | Node.DOCUMENT_POSITION_PRECEDING;\n }\n var longerHierarchy = node1Hierarchy.length > node2Hierarchy.length ? node1Hierarchy : node2Hierarchy;\n var shorterHierarchy = longerHierarchy === node1Hierarchy ? node2Hierarchy : node1Hierarchy;\n\n // Check if either is a container of the other\n if (longerHierarchy[longerHierarchy.length - shorterHierarchy.length] === shorterHierarchy[0]) {\n return longerHierarchy === node1Hierarchy ?\n // other is a child of this\n Node.DOCUMENT_POSITION_CONTAINED_BY | Node.DOCUMENT_POSITION_FOLLOWING :\n // this is a child of other\n Node.DOCUMENT_POSITION_CONTAINS | Node.DOCUMENT_POSITION_PRECEDING;\n }\n\n // Find their first common ancestor and see whether they\n // are preceding or following\n var longerStart = longerHierarchy.length - shorterHierarchy.length;\n for (var i = shorterHierarchy.length - 1; i >= 0; i--) {\n var shorterHierarchyNode = shorterHierarchy[i];\n var longerHierarchyNode = longerHierarchy[longerStart + i];\n\n // We found the first common ancestor\n if (longerHierarchyNode !== shorterHierarchyNode) {\n var siblings = shorterHierarchyNode.parentNode.childNodes;\n if (siblings.indexOf(shorterHierarchyNode) < siblings.indexOf(longerHierarchyNode)) {\n // Shorter is before longer\n if (shorterHierarchy === node1Hierarchy) {\n // Other is before this\n return Node.DOCUMENT_POSITION_PRECEDING;\n }\n // This is before other\n return Node.DOCUMENT_POSITION_FOLLOWING;\n }\n // Longer is before shorter\n if (longerHierarchy === node1Hierarchy) {\n // Other is before this\n return Node.DOCUMENT_POSITION_PRECEDING;\n }\n // Other is after this\n return Node.DOCUMENT_POSITION_FOLLOWING;\n }\n }\n return Node.DOCUMENT_POSITION_FOLLOWING;\n }\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/cloneNode\n */\n }, {\n key: \"contain\",\n value:\n /**\n * @deprecated\n * @alias contains\n */\n function contain(other) {\n return this.contains(other);\n }\n }, {\n key: \"contains\",\n value: function contains(other) {\n // the node itself, one of its direct children\n var tmp = other;\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Node/contains\n while (tmp && this !== tmp) {\n tmp = tmp.parentNode;\n }\n return !!tmp;\n }\n }, {\n key: \"getAncestor\",\n value: function getAncestor(n) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var temp = this;\n while (n > 0 && temp) {\n temp = temp.parentNode;\n n--;\n }\n return temp;\n }\n }, {\n key: \"forEach\",\n value: function forEach(callback) {\n var stack = [this];\n while (stack.length > 0) {\n var node = stack.pop();\n var result = callback(node);\n if (result === false) {\n break;\n }\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n stack.push(node.childNodes[i]);\n }\n }\n }\n }], [{\n key: \"isNode\",\n value: function isNode(target) {\n return !!target.childNodes;\n }\n }]);\n}(EventTarget);\n/**\n * Both nodes are in different documents or different trees in the same document.\n */\nNode.DOCUMENT_POSITION_DISCONNECTED = 1;\n/**\n * otherNode precedes the node in either a pre-order depth-first traversal\n * of a tree containing both (e.g., as an ancestor or previous sibling or a descendant of a previous sibling or previous sibling of an ancestor) or (if they are disconnected) in an arbitrary but consistent ordering.\n */\nNode.DOCUMENT_POSITION_PRECEDING = 2;\n/**\n * otherNode follows the node in either a pre-order depth-first traversal of a tree containing both (e.g., as a descendant or following sibling or a descendant of a following sibling or following sibling of an ancestor) or (if they are disconnected) in an arbitrary but consistent ordering.\n */\nNode.DOCUMENT_POSITION_FOLLOWING = 4;\n/**\n * otherNode is an ancestor of the node.\n */\nNode.DOCUMENT_POSITION_CONTAINS = 8;\n/**\n * otherNode is a descendant of the node.\n */\nNode.DOCUMENT_POSITION_CONTAINED_BY = 16;\n/**\n * The result relies upon arbitrary and/or implementation-specific behavior and is not guaranteed to be portable.\n */\nNode.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32;\n\nvar PROPAGATION_LIMIT = 2048;\nvar EventService = /*#__PURE__*/function () {\n function EventService(globalRuntime, context) {\n var _this = this;\n _classCallCheck(this, EventService);\n /**\n * Store HTML elements in current canvas.\n */\n this.nativeHTMLMap = new WeakMap();\n this.cursor = 'default';\n this.mappingTable = {};\n this.mappingState = {\n trackingData: {}\n };\n this.eventPool = new Map();\n this.tmpMatrix = mat4.create();\n this.tmpVec3 = vec3.create();\n this.onPointerDown = function (from) {\n var e = _this.createPointerEvent(from);\n _this.dispatchEvent(e, 'pointerdown');\n if (e.pointerType === 'touch') {\n _this.dispatchEvent(e, 'touchstart');\n } else if (e.pointerType === 'mouse' || e.pointerType === 'pen') {\n var isRightButton = e.button === 2;\n _this.dispatchEvent(e, isRightButton ? 'rightdown' : 'mousedown');\n }\n var trackingData = _this.trackingData(from.pointerId);\n trackingData.pressTargetsByButton[from.button] = e.composedPath();\n _this.freeEvent(e);\n };\n this.onPointerUp = function (from) {\n var now = clock.now();\n var e = _this.createPointerEvent(from, undefined, undefined, _this.context.config.alwaysTriggerPointerEventOnCanvas ? _this.rootTarget : undefined);\n _this.dispatchEvent(e, 'pointerup');\n if (e.pointerType === 'touch') {\n _this.dispatchEvent(e, 'touchend');\n } else if (e.pointerType === 'mouse' || e.pointerType === 'pen') {\n var isRightButton = e.button === 2;\n _this.dispatchEvent(e, isRightButton ? 'rightup' : 'mouseup');\n }\n var trackingData = _this.trackingData(from.pointerId);\n var pressTarget = _this.findMountedTarget(trackingData.pressTargetsByButton[from.button]);\n var clickTarget = pressTarget;\n\n // pointerupoutside only bubbles. It only bubbles upto the parent that doesn't contain\n // the pointerup location.\n if (pressTarget && !e.composedPath().includes(pressTarget)) {\n var currentTarget = pressTarget;\n while (currentTarget && !e.composedPath().includes(currentTarget)) {\n e.currentTarget = currentTarget;\n _this.notifyTarget(e, 'pointerupoutside');\n if (e.pointerType === 'touch') {\n _this.notifyTarget(e, 'touchendoutside');\n } else if (e.pointerType === 'mouse' || e.pointerType === 'pen') {\n var _isRightButton = e.button === 2;\n _this.notifyTarget(e, _isRightButton ? 'rightupoutside' : 'mouseupoutside');\n }\n if (Node.isNode(currentTarget)) {\n currentTarget = currentTarget.parentNode;\n }\n }\n delete trackingData.pressTargetsByButton[from.button];\n\n // currentTarget is the most specific ancestor holding both the pointerdown and pointerup\n // targets. That is - it's our click target!\n clickTarget = currentTarget;\n }\n if (clickTarget) {\n var _e$detail;\n var clickEvent = _this.clonePointerEvent(e, 'click');\n clickEvent.target = clickTarget;\n clickEvent.path = [];\n if (!trackingData.clicksByButton[from.button]) {\n trackingData.clicksByButton[from.button] = {\n clickCount: 0,\n target: clickEvent.target,\n timeStamp: now\n };\n }\n var canvas = _this.context.renderingContext.root.ownerDocument.defaultView;\n var clickHistory = trackingData.clicksByButton[from.button];\n if (clickHistory.target === clickEvent.target && now - clickHistory.timeStamp < canvas.getConfig().dblClickSpeed) {\n ++clickHistory.clickCount;\n } else {\n clickHistory.clickCount = 1;\n }\n clickHistory.target = clickEvent.target;\n clickHistory.timeStamp = now;\n clickEvent.detail = clickHistory.clickCount;\n\n // @see https://github.com/antvis/G/issues/1091\n if (!((_e$detail = e.detail) !== null && _e$detail !== void 0 && _e$detail.preventClick)) {\n if (!_this.context.config.useNativeClickEvent && (clickEvent.pointerType === 'mouse' || clickEvent.pointerType === 'touch')) {\n _this.dispatchEvent(clickEvent, 'click');\n }\n _this.dispatchEvent(clickEvent, 'pointertap');\n }\n _this.freeEvent(clickEvent);\n }\n _this.freeEvent(e);\n };\n this.onPointerMove = function (from) {\n var e = _this.createPointerEvent(from, undefined, undefined, _this.context.config.alwaysTriggerPointerEventOnCanvas ? _this.rootTarget : undefined);\n var isMouse = e.pointerType === 'mouse' || e.pointerType === 'pen';\n var trackingData = _this.trackingData(from.pointerId);\n var outTarget = _this.findMountedTarget(trackingData.overTargets);\n\n // First pointerout/pointerleave\n if (trackingData.overTargets && outTarget !== e.target) {\n // pointerout always occurs on the overTarget when the pointer hovers over another element.\n var outType = from.type === 'mousemove' ? 'mouseout' : 'pointerout';\n var outEvent = _this.createPointerEvent(from, outType, outTarget || undefined);\n _this.dispatchEvent(outEvent, 'pointerout');\n if (isMouse) _this.dispatchEvent(outEvent, 'mouseout');\n\n // If the pointer exits overTarget and its descendants, then a pointerleave event is also fired. This event\n // is dispatched to all ancestors that no longer capture the pointer.\n if (!e.composedPath().includes(outTarget)) {\n var leaveEvent = _this.createPointerEvent(from, 'pointerleave', outTarget || undefined);\n leaveEvent.eventPhase = leaveEvent.AT_TARGET;\n while (leaveEvent.target && !e.composedPath().includes(leaveEvent.target)) {\n leaveEvent.currentTarget = leaveEvent.target;\n _this.notifyTarget(leaveEvent);\n if (isMouse) {\n _this.notifyTarget(leaveEvent, 'mouseleave');\n }\n if (Node.isNode(leaveEvent.target)) {\n leaveEvent.target = leaveEvent.target.parentNode;\n }\n }\n _this.freeEvent(leaveEvent);\n }\n _this.freeEvent(outEvent);\n }\n\n // Then pointerover\n if (outTarget !== e.target) {\n // pointerover always occurs on the new overTarget\n var overType = from.type === 'mousemove' ? 'mouseover' : 'pointerover';\n var overEvent = _this.clonePointerEvent(e, overType); // clone faster\n\n _this.dispatchEvent(overEvent, 'pointerover');\n if (isMouse) _this.dispatchEvent(overEvent, 'mouseover');\n\n // Probe whether the newly hovered Node is an ancestor of the original overTarget.\n var overTargetAncestor = outTarget && Node.isNode(outTarget) && outTarget.parentNode;\n while (overTargetAncestor && overTargetAncestor !== (Node.isNode(_this.rootTarget) && _this.rootTarget.parentNode)) {\n if (overTargetAncestor === e.target) break;\n overTargetAncestor = overTargetAncestor.parentNode;\n }\n\n // The pointer has entered a non-ancestor of the original overTarget. This means we need a pointerentered\n // event.\n var didPointerEnter = !overTargetAncestor || overTargetAncestor === (Node.isNode(_this.rootTarget) && _this.rootTarget.parentNode);\n if (didPointerEnter) {\n var enterEvent = _this.clonePointerEvent(e, 'pointerenter');\n enterEvent.eventPhase = enterEvent.AT_TARGET;\n while (enterEvent.target && enterEvent.target !== outTarget && enterEvent.target !== (Node.isNode(_this.rootTarget) && _this.rootTarget.parentNode)) {\n enterEvent.currentTarget = enterEvent.target;\n _this.notifyTarget(enterEvent);\n if (isMouse) _this.notifyTarget(enterEvent, 'mouseenter');\n if (Node.isNode(enterEvent.target)) {\n enterEvent.target = enterEvent.target.parentNode;\n }\n }\n _this.freeEvent(enterEvent);\n }\n _this.freeEvent(overEvent);\n }\n\n // Then pointermove\n _this.dispatchEvent(e, 'pointermove');\n if (e.pointerType === 'touch') _this.dispatchEvent(e, 'touchmove');\n if (isMouse) {\n _this.dispatchEvent(e, 'mousemove');\n _this.cursor = _this.getCursor(e.target);\n }\n trackingData.overTargets = e.composedPath();\n _this.freeEvent(e);\n };\n this.onPointerOut = function (from) {\n var trackingData = _this.trackingData(from.pointerId);\n if (trackingData.overTargets) {\n var isMouse = from.pointerType === 'mouse' || from.pointerType === 'pen';\n var outTarget = _this.findMountedTarget(trackingData.overTargets);\n\n // pointerout first\n var outEvent = _this.createPointerEvent(from, 'pointerout', outTarget || undefined);\n _this.dispatchEvent(outEvent);\n if (isMouse) _this.dispatchEvent(outEvent, 'mouseout');\n\n // pointerleave(s) are also dispatched b/c the pointer must've left rootTarget and its descendants to\n // get an upstream pointerout event (upstream events do not know rootTarget has descendants).\n var leaveEvent = _this.createPointerEvent(from, 'pointerleave', outTarget || undefined);\n leaveEvent.eventPhase = leaveEvent.AT_TARGET;\n while (leaveEvent.target && leaveEvent.target !== (Node.isNode(_this.rootTarget) && _this.rootTarget.parentNode)) {\n leaveEvent.currentTarget = leaveEvent.target;\n _this.notifyTarget(leaveEvent);\n if (isMouse) {\n _this.notifyTarget(leaveEvent, 'mouseleave');\n }\n if (Node.isNode(leaveEvent.target)) {\n leaveEvent.target = leaveEvent.target.parentNode;\n }\n }\n trackingData.overTargets = null;\n _this.freeEvent(outEvent);\n _this.freeEvent(leaveEvent);\n }\n _this.cursor = null;\n };\n this.onPointerOver = function (from) {\n var trackingData = _this.trackingData(from.pointerId);\n var e = _this.createPointerEvent(from);\n var isMouse = e.pointerType === 'mouse' || e.pointerType === 'pen';\n _this.dispatchEvent(e, 'pointerover');\n if (isMouse) _this.dispatchEvent(e, 'mouseover');\n if (e.pointerType === 'mouse') _this.cursor = _this.getCursor(e.target);\n\n // pointerenter events must be fired since the pointer entered from upstream.\n var enterEvent = _this.clonePointerEvent(e, 'pointerenter');\n enterEvent.eventPhase = enterEvent.AT_TARGET;\n while (enterEvent.target && enterEvent.target !== (Node.isNode(_this.rootTarget) && _this.rootTarget.parentNode)) {\n enterEvent.currentTarget = enterEvent.target;\n _this.notifyTarget(enterEvent);\n if (isMouse) {\n // mouseenter should not bubble\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Element/mouseenter_event#usage_notes\n _this.notifyTarget(enterEvent, 'mouseenter');\n }\n if (Node.isNode(enterEvent.target)) {\n enterEvent.target = enterEvent.target.parentNode;\n }\n }\n trackingData.overTargets = e.composedPath();\n _this.freeEvent(e);\n _this.freeEvent(enterEvent);\n };\n this.onPointerUpOutside = function (from) {\n var trackingData = _this.trackingData(from.pointerId);\n var pressTarget = _this.findMountedTarget(trackingData.pressTargetsByButton[from.button]);\n var e = _this.createPointerEvent(from);\n if (pressTarget) {\n var currentTarget = pressTarget;\n while (currentTarget) {\n e.currentTarget = currentTarget;\n _this.notifyTarget(e, 'pointerupoutside');\n if (e.pointerType === 'touch') ; else if (e.pointerType === 'mouse' || e.pointerType === 'pen') {\n _this.notifyTarget(e, e.button === 2 ? 'rightupoutside' : 'mouseupoutside');\n }\n if (Node.isNode(currentTarget)) {\n currentTarget = currentTarget.parentNode;\n }\n }\n delete trackingData.pressTargetsByButton[from.button];\n }\n _this.freeEvent(e);\n };\n this.onWheel = function (from) {\n var wheelEvent = _this.createWheelEvent(from);\n _this.dispatchEvent(wheelEvent);\n _this.freeEvent(wheelEvent);\n };\n this.onClick = function (from) {\n if (_this.context.config.useNativeClickEvent) {\n var e = _this.createPointerEvent(from);\n _this.dispatchEvent(e);\n _this.freeEvent(e);\n }\n };\n this.onPointerCancel = function (from) {\n var e = _this.createPointerEvent(from, undefined, undefined, _this.context.config.alwaysTriggerPointerEventOnCanvas ? _this.rootTarget : undefined);\n _this.dispatchEvent(e);\n _this.freeEvent(e);\n };\n this.globalRuntime = globalRuntime;\n this.context = context;\n }\n return _createClass(EventService, [{\n key: \"init\",\n value: function init() {\n this.rootTarget = this.context.renderingContext.root.parentNode; // document\n this.addEventMapping('pointerdown', this.onPointerDown);\n this.addEventMapping('pointerup', this.onPointerUp);\n this.addEventMapping('pointermove', this.onPointerMove);\n this.addEventMapping('pointerout', this.onPointerOut);\n this.addEventMapping('pointerleave', this.onPointerOut);\n this.addEventMapping('pointercancel', this.onPointerCancel);\n this.addEventMapping('pointerover', this.onPointerOver);\n this.addEventMapping('pointerupoutside', this.onPointerUpOutside);\n this.addEventMapping('wheel', this.onWheel);\n this.addEventMapping('click', this.onClick);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.mappingTable = {};\n this.mappingState = {};\n this.eventPool.clear();\n }\n }, {\n key: \"getScale\",\n value: function getScale() {\n var bbox = this.context.contextService.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n var $el = this.context.contextService.getDomElement();\n if ($el && bbox) {\n var offsetWidth = $el.offsetWidth,\n offsetHeight = $el.offsetHeight;\n if (offsetWidth && offsetHeight) {\n scaleX = bbox.width / offsetWidth;\n scaleY = bbox.height / offsetHeight;\n }\n }\n return {\n scaleX: scaleX,\n scaleY: scaleY,\n bbox: bbox\n };\n }\n\n /**\n * Should account for CSS Transform applied on container.\n * @see https://github.com/antvis/G/issues/1161\n * @see https://github.com/antvis/G/issues/1677\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/MouseEvent/offsetX\n */\n }, {\n key: \"client2Viewport\",\n value: function client2Viewport(client) {\n var _this$getScale = this.getScale(),\n scaleX = _this$getScale.scaleX,\n scaleY = _this$getScale.scaleY,\n bbox = _this$getScale.bbox;\n return new Point((client.x - ((bbox === null || bbox === void 0 ? void 0 : bbox.left) || 0)) / scaleX, (client.y - ((bbox === null || bbox === void 0 ? void 0 : bbox.top) || 0)) / scaleY);\n }\n }, {\n key: \"viewport2Client\",\n value: function viewport2Client(canvas) {\n var _this$getScale2 = this.getScale(),\n scaleX = _this$getScale2.scaleX,\n scaleY = _this$getScale2.scaleY,\n bbox = _this$getScale2.bbox;\n return new Point((canvas.x + ((bbox === null || bbox === void 0 ? void 0 : bbox.left) || 0)) * scaleX, (canvas.y + ((bbox === null || bbox === void 0 ? void 0 : bbox.top) || 0)) * scaleY);\n }\n }, {\n key: \"viewport2Canvas\",\n value: function viewport2Canvas(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var canvas = this.rootTarget.defaultView;\n var camera = canvas.getCamera();\n var _this$context$config = this.context.config,\n width = _this$context$config.width,\n height = _this$context$config.height;\n var projectionMatrixInverse = camera.getPerspectiveInverse();\n var worldMatrix = camera.getWorldTransform();\n var vpMatrix = mat4.multiply(this.tmpMatrix, worldMatrix, projectionMatrixInverse);\n var viewport = vec3.set(this.tmpVec3, x / width * 2 - 1, (1 - y / height) * 2 - 1, 0);\n vec3.transformMat4(viewport, viewport, vpMatrix);\n return new Point(viewport[0], viewport[1]);\n }\n }, {\n key: \"canvas2Viewport\",\n value: function canvas2Viewport(canvasP) {\n var canvas = this.rootTarget.defaultView;\n var camera = canvas.getCamera();\n\n // World -> Clip\n var projectionMatrix = camera.getPerspective();\n var viewMatrix = camera.getViewTransform();\n var vpMatrix = mat4.multiply(this.tmpMatrix, projectionMatrix, viewMatrix);\n var clip = vec3.set(this.tmpVec3, canvasP.x, canvasP.y, 0);\n vec3.transformMat4(this.tmpVec3, this.tmpVec3, vpMatrix);\n\n // Clip -> NDC -> Viewport, flip Y\n var _this$context$config2 = this.context.config,\n width = _this$context$config2.width,\n height = _this$context$config2.height;\n return new Point((clip[0] + 1) / 2 * width, (1 - (clip[1] + 1) / 2) * height);\n }\n }, {\n key: \"setPickHandler\",\n value: function setPickHandler(pickHandler) {\n this.pickHandler = pickHandler;\n }\n }, {\n key: \"addEventMapping\",\n value: function addEventMapping(type, fn) {\n if (!this.mappingTable[type]) {\n this.mappingTable[type] = [];\n }\n this.mappingTable[type].push({\n fn: fn,\n priority: 0\n });\n this.mappingTable[type].sort(function (a, b) {\n return a.priority - b.priority;\n });\n }\n }, {\n key: \"mapEvent\",\n value: function mapEvent(e) {\n if (!this.rootTarget) {\n return;\n }\n var mappers = this.mappingTable[e.type];\n if (mappers) {\n for (var i = 0, j = mappers.length; i < j; i++) {\n mappers[i].fn(e);\n }\n } else {\n console.warn(\"[EventService]: Event mapping not defined for \".concat(e.type));\n }\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(e, type, skipPropagate) {\n // Canvas should skip\n if (!skipPropagate) {\n e.propagationStopped = false;\n e.propagationImmediatelyStopped = false;\n this.propagate(e, type);\n } else {\n // target phase\n e.eventPhase = e.AT_TARGET;\n var canvas = this.rootTarget.defaultView || null;\n e.currentTarget = canvas;\n this.notifyListeners(e, type);\n }\n }\n }, {\n key: \"propagate\",\n value: function propagate(e, type) {\n if (!e.target) {\n return;\n }\n\n // [target, parent, root, Canvas]\n var composedPath = e.composedPath();\n\n // event flow: capture -> target -> bubbling\n\n // capture phase\n e.eventPhase = e.CAPTURING_PHASE;\n for (var i = composedPath.length - 1; i >= 1; i--) {\n e.currentTarget = composedPath[i];\n this.notifyTarget(e, type);\n if (e.propagationStopped || e.propagationImmediatelyStopped) return;\n }\n\n // target phase\n e.eventPhase = e.AT_TARGET;\n e.currentTarget = e.target;\n this.notifyTarget(e, type);\n if (e.propagationStopped || e.propagationImmediatelyStopped) return;\n\n // find current target in composed path\n var index = composedPath.indexOf(e.currentTarget);\n\n // bubbling phase\n e.eventPhase = e.BUBBLING_PHASE;\n for (var _i = index + 1; _i < composedPath.length; _i++) {\n e.currentTarget = composedPath[_i];\n this.notifyTarget(e, type);\n if (e.propagationStopped || e.propagationImmediatelyStopped) return;\n }\n }\n }, {\n key: \"propagationPath\",\n value: function propagationPath(target) {\n var propagationPath = [target];\n var canvas = this.rootTarget.defaultView || null;\n if (canvas && canvas === target) {\n propagationPath.unshift(canvas.document);\n return propagationPath;\n }\n for (var i = 0; i < PROPAGATION_LIMIT && target !== this.rootTarget; i++) {\n // if (Node.isNode(target) && !target.parentNode) {\n // throw new Error('Cannot find propagation path to disconnected target');\n // }\n\n if (Node.isNode(target) && target.parentNode) {\n // [target, parent, parent, root]\n propagationPath.push(target.parentNode);\n target = target.parentNode;\n }\n }\n if (canvas) {\n // @ts-ignore\n propagationPath.push(canvas);\n }\n return propagationPath;\n }\n }, {\n key: \"hitTest\",\n value: function hitTest(position) {\n var viewportX = position.viewportX,\n viewportY = position.viewportY;\n var _this$context$config3 = this.context.config,\n width = _this$context$config3.width,\n height = _this$context$config3.height,\n disableHitTesting = _this$context$config3.disableHitTesting;\n // outside canvas\n if (viewportX < 0 || viewportY < 0 || viewportX > width || viewportY > height) {\n return null;\n }\n return !disableHitTesting && this.pickHandler(position) || this.rootTarget ||\n // return Document\n null;\n }\n\n /**\n * whether the native event trigger came from Canvas,\n * should account for HTML shape\n */\n }, {\n key: \"isNativeEventFromCanvas\",\n value: function isNativeEventFromCanvas($el, nativeEvent) {\n var _target;\n var target = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.target;\n // Get event target inside a web component.\n // @see https://stackoverflow.com/questions/57963312/get-event-target-inside-a-web-component\n if ((_target = target) !== null && _target !== void 0 && _target.shadowRoot) {\n target = nativeEvent.composedPath()[0];\n }\n if (target) {\n // from <canvas>\n if (target === $el) {\n return true;\n }\n\n // from <svg>\n if ($el && $el.contains) {\n return $el.contains(target);\n }\n }\n if (nativeEvent !== null && nativeEvent !== void 0 && nativeEvent.composedPath) {\n return nativeEvent.composedPath().indexOf($el) > -1;\n }\n\n // account for Touch\n return false;\n }\n\n /**\n * Find HTML from composed path in native UI event.\n */\n }, {\n key: \"getExistedHTML\",\n value: function getExistedHTML(event) {\n if (event.nativeEvent.composedPath) {\n for (var _i2 = 0, _arr = event.nativeEvent.composedPath(); _i2 < _arr.length; _i2++) {\n var eventTarget = _arr[_i2];\n var existed = this.nativeHTMLMap.get(eventTarget);\n if (existed) {\n return existed;\n }\n }\n }\n return null;\n }\n }, {\n key: \"pickTarget\",\n value: function pickTarget(event) {\n return this.hitTest({\n clientX: event.clientX,\n clientY: event.clientY,\n viewportX: event.viewportX,\n viewportY: event.viewportY,\n x: event.canvasX,\n y: event.canvasY\n });\n }\n }, {\n key: \"createPointerEvent\",\n value: function createPointerEvent(from, type, target, fallbackTarget) {\n var event = this.allocateEvent(FederatedPointerEvent);\n this.copyPointerData(from, event);\n this.copyMouseData(from, event);\n this.copyData(from, event);\n event.nativeEvent = from.nativeEvent;\n event.originalEvent = from;\n var existedHTML = this.getExistedHTML(event);\n var $el = this.context.contextService.getDomElement();\n event.target = target !== null && target !== void 0 ? target : existedHTML || this.isNativeEventFromCanvas($el, event.nativeEvent) && this.pickTarget(event) || fallbackTarget;\n if (typeof type === 'string') {\n event.type = type;\n }\n return event;\n }\n }, {\n key: \"createWheelEvent\",\n value: function createWheelEvent(from) {\n var event = this.allocateEvent(FederatedWheelEvent);\n this.copyWheelData(from, event);\n this.copyMouseData(from, event);\n this.copyData(from, event);\n event.nativeEvent = from.nativeEvent;\n event.originalEvent = from;\n var existedHTML = this.getExistedHTML(event);\n var $el = this.context.contextService.getDomElement();\n event.target = existedHTML || this.isNativeEventFromCanvas($el, event.nativeEvent) && this.pickTarget(event);\n return event;\n }\n }, {\n key: \"trackingData\",\n value: function trackingData(id) {\n if (!this.mappingState.trackingData[id]) {\n this.mappingState.trackingData[id] = {\n pressTargetsByButton: {},\n clicksByButton: {},\n overTarget: null\n };\n }\n return this.mappingState.trackingData[id];\n }\n }, {\n key: \"cloneWheelEvent\",\n value: function cloneWheelEvent(from) {\n var event = this.allocateEvent(FederatedWheelEvent);\n event.nativeEvent = from.nativeEvent;\n event.originalEvent = from.originalEvent;\n this.copyWheelData(from, event);\n this.copyMouseData(from, event);\n this.copyData(from, event);\n event.target = from.target;\n event.path = from.composedPath().slice();\n event.type = from.type;\n return event;\n }\n }, {\n key: \"clonePointerEvent\",\n value: function clonePointerEvent(from, type) {\n var event = this.allocateEvent(FederatedPointerEvent);\n event.nativeEvent = from.nativeEvent;\n event.originalEvent = from.originalEvent;\n this.copyPointerData(from, event);\n this.copyMouseData(from, event);\n this.copyData(from, event);\n event.target = from.target;\n event.path = from.composedPath().slice();\n event.type = type !== null && type !== void 0 ? type : event.type;\n return event;\n }\n }, {\n key: \"copyPointerData\",\n value: function copyPointerData(from, to) {\n // if (\n // !(\n // from instanceof FederatedPointerEvent &&\n // to instanceof FederatedPointerEvent\n // )\n // )\n // return;\n\n to.pointerId = from.pointerId;\n to.width = from.width;\n to.height = from.height;\n to.isPrimary = from.isPrimary;\n to.pointerType = from.pointerType;\n to.pressure = from.pressure;\n to.tangentialPressure = from.tangentialPressure;\n to.tiltX = from.tiltX;\n to.tiltY = from.tiltY;\n to.twist = from.twist;\n }\n }, {\n key: \"copyMouseData\",\n value: function copyMouseData(from, to) {\n // if (\n // !(\n // from instanceof FederatedMouseEvent && to instanceof FederatedMouseEvent\n // )\n // )\n // return;\n\n to.altKey = from.altKey;\n to.button = from.button;\n to.buttons = from.buttons;\n to.ctrlKey = from.ctrlKey;\n to.metaKey = from.metaKey;\n to.shiftKey = from.shiftKey;\n to.client.copyFrom(from.client);\n to.movement.copyFrom(from.movement);\n to.canvas.copyFrom(from.canvas);\n to.screen.copyFrom(from.screen);\n to.global.copyFrom(from.global);\n to.offset.copyFrom(from.offset);\n }\n }, {\n key: \"copyWheelData\",\n value: function copyWheelData(from, to) {\n to.deltaMode = from.deltaMode;\n to.deltaX = from.deltaX;\n to.deltaY = from.deltaY;\n to.deltaZ = from.deltaZ;\n }\n }, {\n key: \"copyData\",\n value: function copyData(from, to) {\n to.isTrusted = from.isTrusted;\n to.timeStamp = clock.now();\n to.type = from.type;\n to.detail = from.detail;\n to.view = from.view;\n to.page.copyFrom(from.page);\n to.viewport.copyFrom(from.viewport);\n }\n }, {\n key: \"allocateEvent\",\n value: function allocateEvent(constructor) {\n if (!this.eventPool.has(constructor)) {\n this.eventPool.set(constructor, []);\n }\n\n // @ts-ignore\n var event = this.eventPool.get(constructor).pop() || new constructor(this);\n event.eventPhase = event.NONE;\n event.currentTarget = null;\n event.path = [];\n event.target = null;\n return event;\n }\n }, {\n key: \"freeEvent\",\n value: function freeEvent(event) {\n if (event.manager !== this) throw new Error('It is illegal to free an event not managed by this EventBoundary!');\n var constructor = event.constructor;\n if (!this.eventPool.has(constructor)) {\n this.eventPool.set(constructor, []);\n }\n\n // @ts-ignore\n this.eventPool.get(constructor).push(event);\n }\n }, {\n key: \"notifyTarget\",\n value: function notifyTarget(e, type) {\n type = type !== null && type !== void 0 ? type : e.type;\n var key = e.eventPhase === e.CAPTURING_PHASE || e.eventPhase === e.AT_TARGET ? \"\".concat(type, \"capture\") : type;\n this.notifyListeners(e, key);\n if (e.eventPhase === e.AT_TARGET) {\n this.notifyListeners(e, type);\n }\n }\n }, {\n key: \"notifyListeners\",\n value: function notifyListeners(e, type) {\n // hack EventEmitter, stops if the `propagationImmediatelyStopped` flag is set\n var emitter = e.currentTarget.emitter;\n // @ts-ignore\n var listeners = emitter._events[type];\n if (!listeners) return;\n if ('fn' in listeners) {\n if (listeners.once) {\n emitter.removeListener(type, listeners.fn, undefined, true);\n }\n listeners.fn.call(e.currentTarget || listeners.context, e);\n // listeners.fn.call(listeners.context, e);\n } else {\n for (var i = 0; i < listeners.length && !e.propagationImmediatelyStopped; i++) {\n if (listeners[i].once) {\n emitter.removeListener(type, listeners[i].fn, undefined, true);\n }\n listeners[i].fn.call(e.currentTarget || listeners[i].context, e);\n // listeners[i].fn.call(listeners[i].context, e);\n }\n }\n }\n\n /**\n * some detached nodes may exist in propagation path, need to skip them\n */\n }, {\n key: \"findMountedTarget\",\n value: function findMountedTarget(propagationPath) {\n if (!propagationPath) {\n return null;\n }\n var currentTarget = propagationPath[propagationPath.length - 1];\n for (var i = propagationPath.length - 2; i >= 0; i--) {\n var target = propagationPath[i];\n if (target === this.rootTarget || Node.isNode(target) && target.parentNode === currentTarget) {\n currentTarget = propagationPath[i];\n } else {\n break;\n }\n }\n return currentTarget;\n }\n }, {\n key: \"getCursor\",\n value: function getCursor(target) {\n var tmp = target;\n while (tmp) {\n var cursor = isElement(tmp) && tmp.getAttribute('cursor');\n if (cursor) {\n return cursor;\n }\n tmp = Node.isNode(tmp) && tmp.parentNode;\n }\n }\n }]);\n}();\n\n/**\n * used in following scenes:\n * - g `ctx.measureText`\n * - canvas-picker `ctx.isPointInPath`\n * - g-plugin-device-renderer `ctx.createLinearGradient` and generate texture\n *\n * @see https://blog.scottlogic.com/2020/03/19/offscreen-canvas.html\n */\nvar OffscreenCanvasCreator = /*#__PURE__*/function () {\n function OffscreenCanvasCreator() {\n _classCallCheck(this, OffscreenCanvasCreator);\n }\n return _createClass(OffscreenCanvasCreator, [{\n key: \"getOrCreateCanvas\",\n value: function getOrCreateCanvas(offscreenCanvas, contextAttributes) {\n if (this.canvas) {\n return this.canvas;\n }\n\n // user-defined offscreen canvas\n if (offscreenCanvas || runtime.offscreenCanvas) {\n this.canvas = offscreenCanvas || runtime.offscreenCanvas;\n this.context = this.canvas.getContext('2d', _objectSpread({\n willReadFrequently: true\n }, contextAttributes));\n } else {\n try {\n // OffscreenCanvas2D measureText can be up to 40% faster.\n this.canvas = new window.OffscreenCanvas(0, 0);\n this.context = this.canvas.getContext('2d', _objectSpread({\n willReadFrequently: true\n }, contextAttributes));\n if (!this.context || !this.context.measureText) {\n this.canvas = document.createElement('canvas');\n this.context = this.canvas.getContext('2d');\n }\n } catch (_unused) {\n this.canvas = document.createElement('canvas');\n this.context = this.canvas.getContext('2d', _objectSpread({\n willReadFrequently: true\n }, contextAttributes));\n }\n }\n this.canvas.width = 10;\n this.canvas.height = 10;\n return this.canvas;\n }\n }, {\n key: \"getOrCreateContext\",\n value: function getOrCreateContext(offscreenCanvas, contextAttributes) {\n if (this.context) {\n return this.context;\n }\n this.getOrCreateCanvas(offscreenCanvas, contextAttributes);\n return this.context;\n }\n }], [{\n key: \"createCanvas\",\n value:\n /**\n * @returns new canvas instance\n */\n function createCanvas() {\n try {\n return new window.OffscreenCanvas(0, 0);\n } catch (_unused2) {\n //\n }\n try {\n return document.createElement('canvas');\n } catch (_unused3) {\n //\n }\n return null;\n }\n }]);\n}();\n\n/**\n * why we need re-render\n */\nvar RenderReason = /*#__PURE__*/function (RenderReason) {\n RenderReason[RenderReason[\"CAMERA_CHANGED\"] = 0] = \"CAMERA_CHANGED\";\n RenderReason[RenderReason[\"DISPLAY_OBJECT_CHANGED\"] = 1] = \"DISPLAY_OBJECT_CHANGED\";\n RenderReason[RenderReason[\"NONE\"] = 2] = \"NONE\";\n return RenderReason;\n}({});\n\n/**\n * Use frame renderer implemented by `g-canvas/svg/webgl`, in every frame we do followings:\n * * update & merge dirty rectangles\n * * begin frame\n * * filter by visible\n * * sort by z-index in scene graph\n * * culling with strategies registered in `g-canvas/webgl`\n * * end frame\n */\nvar RenderingService = /*#__PURE__*/function () {\n function RenderingService(globalRuntime, context) {\n _classCallCheck(this, RenderingService);\n this.inited = false;\n this.stats = {\n /**\n * total display objects in scenegraph\n */\n total: 0,\n /**\n * number of display objects need to render in current frame\n */\n rendered: 0\n };\n this.zIndexCounter = 0;\n this.hooks = {\n /**\n * called before any frame rendered\n */\n init: new SyncHook(),\n initAsync: new AsyncParallelHook(),\n /**\n * only dirty object which has sth changed will be rendered\n */\n dirtycheck: new SyncWaterfallHook(),\n /**\n * do culling\n */\n cull: new SyncWaterfallHook(),\n /**\n * called at beginning of each frame, won't get called if nothing to re-render\n */\n beginFrame: new SyncHook(),\n /**\n * called before every dirty object get rendered\n */\n beforeRender: new SyncHook(),\n /**\n * called when every dirty object rendering even it's culled\n */\n render: new SyncHook(),\n /**\n * called after every dirty object get rendered\n */\n afterRender: new SyncHook(),\n /**\n * commit - draw the result on the canvas\n */\n endFrame: new SyncHook(),\n destroy: new SyncHook(),\n /**\n * use async but faster method such as GPU-based picking in `g-plugin-device-renderer`\n */\n pick: new AsyncSeriesWaterfallHook(),\n /**\n * Unsafe but sync version of pick.\n */\n pickSync: new SyncWaterfallHook(),\n /**\n * used in event system\n */\n pointerDown: new SyncHook(),\n pointerUp: new SyncHook(),\n pointerMove: new SyncHook(),\n pointerOut: new SyncHook(),\n pointerOver: new SyncHook(),\n pointerWheel: new SyncHook(),\n pointerCancel: new SyncHook(),\n click: new SyncHook()\n };\n this.globalRuntime = globalRuntime;\n this.context = context;\n }\n return _createClass(RenderingService, [{\n key: \"init\",\n value: function init(callback) {\n var _this = this;\n var context = _objectSpread(_objectSpread({}, this.globalRuntime), this.context);\n\n // register rendering plugins\n this.context.renderingPlugins.forEach(function (plugin) {\n plugin.apply(context, _this.globalRuntime);\n });\n this.hooks.init.call();\n if (this.hooks.initAsync.getCallbacksNum() === 0) {\n this.inited = true;\n callback();\n } else {\n this.hooks.initAsync.promise().then(function () {\n _this.inited = true;\n callback();\n })[\"catch\"](function (err) {});\n }\n }\n }, {\n key: \"getStats\",\n value: function getStats() {\n return this.stats;\n }\n\n /**\n * Meet the following conditions:\n * * disable DirtyRectangleRendering\n * * camera changed\n */\n }, {\n key: \"disableDirtyRectangleRendering\",\n value: function disableDirtyRectangleRendering() {\n var renderer = this.context.config.renderer;\n var _renderer$getConfig = renderer.getConfig(),\n enableDirtyRectangleRendering = _renderer$getConfig.enableDirtyRectangleRendering;\n return !enableDirtyRectangleRendering || this.context.renderingContext.renderReasons.has(RenderReason.CAMERA_CHANGED);\n }\n }, {\n key: \"render\",\n value: function render(canvas, frame, rerenderCallback) {\n var _this2 = this;\n var canvasConfig = canvas.getConfig();\n var renderingContext = this.context.renderingContext;\n this.stats.total = 0;\n this.stats.rendered = 0;\n this.zIndexCounter = 0;\n this.globalRuntime.sceneGraphService.syncHierarchy(renderingContext.root);\n this.globalRuntime.sceneGraphService.notifyMutationObservers(canvas);\n if (renderingContext.renderReasons.size && this.inited) {\n // @ts-ignore\n renderingContext.dirtyRectangleRenderingDisabled = this.disableDirtyRectangleRendering();\n var onlyCameraChanged = renderingContext.renderReasons.size === 1 && renderingContext.renderReasons.has(RenderReason.CAMERA_CHANGED);\n var shouldTriggerRenderHooks = !canvasConfig.disableRenderHooks || !onlyCameraChanged;\n if (shouldTriggerRenderHooks) {\n this.renderDisplayObject(renderingContext.root, canvasConfig, renderingContext);\n }\n this.hooks.beginFrame.call(frame);\n if (shouldTriggerRenderHooks) {\n renderingContext.renderListCurrentFrame.forEach(function (object) {\n _this2.hooks.beforeRender.call(object);\n _this2.hooks.render.call(object);\n _this2.hooks.afterRender.call(object);\n });\n }\n this.hooks.endFrame.call(frame);\n renderingContext.renderListCurrentFrame = [];\n renderingContext.renderReasons.clear();\n rerenderCallback();\n }\n }\n }, {\n key: \"renderDisplayObject\",\n value: function renderDisplayObject(displayObject, canvasConfig, renderingContext) {\n var self = this;\n var _canvasConfig$rendere = canvasConfig.renderer.getConfig(),\n enableDirtyCheck = _canvasConfig$rendere.enableDirtyCheck,\n enableCulling = _canvasConfig$rendere.enableCulling;\n function internalRenderSingleDisplayObject(object) {\n // TODO: relayout\n\n // dirtycheck first\n var renderable = object.renderable,\n sortable = object.sortable;\n // eslint-disable-next-line no-nested-ternary\n var objectChanged = enableDirtyCheck ?\n // @ts-ignore\n renderable.dirty || renderingContext.dirtyRectangleRenderingDisabled ? object : null : object;\n var objectToRender = null;\n if (objectChanged) {\n objectToRender = enableCulling ? self.hooks.cull.call(objectChanged, self.context.camera) : objectChanged;\n if (objectToRender) {\n self.stats.rendered += 1;\n renderingContext.renderListCurrentFrame.push(objectToRender);\n }\n }\n object.dirty(false);\n sortable.renderOrder = self.zIndexCounter;\n self.zIndexCounter += 1;\n self.stats.total += 1;\n\n // sort is very expensive, use cached result if possible\n if (sortable.dirty) {\n self.sort(object, sortable);\n sortable.dirty = false;\n sortable.dirtyChildren = [];\n sortable.dirtyReason = undefined;\n }\n }\n var stack = [displayObject];\n while (stack.length > 0) {\n var _currentObject$sortab;\n var currentObject = stack.pop();\n internalRenderSingleDisplayObject(currentObject);\n\n // recursive rendering its children\n var objects = ((_currentObject$sortab = currentObject.sortable) === null || _currentObject$sortab === void 0 || (_currentObject$sortab = _currentObject$sortab.sorted) === null || _currentObject$sortab === void 0 ? void 0 : _currentObject$sortab.length) > 0 ? currentObject.sortable.sorted : currentObject.childNodes;\n for (var i = objects.length - 1; i >= 0; i--) {\n stack.push(objects[i]);\n }\n }\n }\n }, {\n key: \"sort\",\n value: function sort(displayObject, sortable) {\n var _sortable$sorted, _sortable$sorted2;\n if ((sortable === null || sortable === void 0 || (_sortable$sorted = sortable.sorted) === null || _sortable$sorted === void 0 ? void 0 : _sortable$sorted.length) > 0 && sortable.dirtyReason !== SortReason.Z_INDEX_CHANGED) {\n // avoid re-sorting the whole children list\n sortable.dirtyChildren.forEach(function (child) {\n // remove from sorted list\n var sortIndex = sortable.sorted.indexOf(child);\n if (sortIndex > -1) {\n sortable.sorted.splice(sortIndex, 1);\n }\n var index = displayObject.childNodes.indexOf(child);\n if (index > -1) {\n if (sortable.sorted.length === 0) {\n sortable.sorted.push(child);\n } else {\n var _index = sortedIndex(sortable.sorted, child);\n sortable.sorted.splice(_index, 0, child);\n }\n }\n });\n } else {\n sortable.sorted = displayObject.childNodes.slice().sort(sortByZIndex);\n }\n\n // When the child elements are changed and sorted, if there are no more stacked elements in the child elements (i.e. zIndex != 0), clear the sort list\n if (((_sortable$sorted2 = sortable.sorted) === null || _sortable$sorted2 === void 0 ? void 0 : _sortable$sorted2.length) > 0 && displayObject.childNodes.filter(function (child) {\n return child.parsedStyle.zIndex;\n }).length === 0) {\n sortable.sorted = [];\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.inited = false;\n this.hooks.destroy.call();\n }\n }, {\n key: \"dirty\",\n value: function dirty() {\n // need re-render\n this.context.renderingContext.renderReasons.add(RenderReason.DISPLAY_OBJECT_CHANGED);\n }\n }]);\n}();\n\nvar ATTRIBUTE_REGEXP = /\\[\\s*(.*)=(.*)\\s*\\]/;\n\n/**\n * support the following DOM API:\n * * getElementById\n * * getElementsByClassName\n * * getElementsByName\n * * getElementsByTag\n * * querySelector\n * * querySelectorAll\n */\nvar DefaultSceneGraphSelector = /*#__PURE__*/function () {\n function DefaultSceneGraphSelector() {\n _classCallCheck(this, DefaultSceneGraphSelector);\n }\n return _createClass(DefaultSceneGraphSelector, [{\n key: \"selectOne\",\n value: function selectOne(query, root) {\n var _this = this;\n if (query.startsWith('.')) {\n return root.find(function (node) {\n // return !node.shadow && node.id === query.substring(1);\n return ((node === null || node === void 0 ? void 0 : node.classList) || []).indexOf(_this.getIdOrClassname(query)) > -1;\n });\n }\n if (query.startsWith('#')) {\n // getElementById('id')\n return root.find(function (node) {\n // return !node.shadow && node.id === query.substring(1);\n return node.id === _this.getIdOrClassname(query);\n });\n }\n if (query.startsWith('[')) {\n var _this$getAttribute = this.getAttribute(query),\n name = _this$getAttribute.name,\n value = _this$getAttribute.value;\n if (name) {\n // getElementByName();\n return root.find(function (node) {\n return root !== node && (name === 'name' ? node.name === value : _this.attributeToString(node, name) === value);\n });\n }\n return null;\n }\n // getElementsByTag('circle');\n return root.find(function (node) {\n return root !== node && node.nodeName === query;\n });\n }\n }, {\n key: \"selectAll\",\n value: function selectAll(query, root) {\n var _this2 = this;\n // only support `[name=\"${name}\"]` `.className` `#id`\n if (query.startsWith('.')) {\n // getElementsByClassName('className');\n // should not include itself\n return root.findAll(function (node) {\n return root !== node && ((node === null || node === void 0 ? void 0 : node.classList) || []).indexOf(_this2.getIdOrClassname(query)) > -1;\n });\n }\n if (query.startsWith('#')) {\n return root.findAll(function (node) {\n return root !== node && node.id === _this2.getIdOrClassname(query);\n });\n }\n if (query.startsWith('[')) {\n var _this$getAttribute2 = this.getAttribute(query),\n name = _this$getAttribute2.name,\n value = _this$getAttribute2.value;\n if (name) {\n // getElementsByName();\n return root.findAll(function (node) {\n return root !== node && (name === 'name' ? node.name === value : _this2.attributeToString(node, name) === value);\n });\n }\n return [];\n }\n // getElementsByTag('circle');\n return root.findAll(function (node) {\n return root !== node && node.nodeName === query;\n });\n }\n }, {\n key: \"is\",\n value: function is(query, node) {\n // a simple `matches` implementation\n if (query.startsWith('.')) {\n return node.className === this.getIdOrClassname(query);\n }\n if (query.startsWith('#')) {\n return node.id === this.getIdOrClassname(query);\n }\n if (query.startsWith('[')) {\n var _this$getAttribute3 = this.getAttribute(query),\n name = _this$getAttribute3.name,\n value = _this$getAttribute3.value;\n return name === 'name' ? node.name === value : this.attributeToString(node, name) === value;\n }\n return node.nodeName === query;\n }\n }, {\n key: \"getIdOrClassname\",\n value: function getIdOrClassname(query) {\n return query.substring(1);\n }\n }, {\n key: \"getAttribute\",\n value: function getAttribute(query) {\n var matches = query.match(ATTRIBUTE_REGEXP);\n var name = '';\n var value = '';\n if (matches && matches.length > 2) {\n name = matches[1].replace(/\"/g, '');\n value = matches[2].replace(/\"/g, '');\n }\n return {\n name: name,\n value: value\n };\n }\n }, {\n key: \"attributeToString\",\n value: function attributeToString(node, name) {\n if (!node.getAttribute) {\n return '';\n }\n var value = node.getAttribute(name);\n if (isNil(value)) {\n return '';\n }\n if (value.toString) {\n return value.toString();\n }\n return '';\n }\n }]);\n}();\n\n/**\n * built-in events for element\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent\n *\n * TODO: use MutationObserver instead\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver\n */\nvar ElementEvent = /*#__PURE__*/function (ElementEvent) {\n // --- @see https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent\n /**\n * @see https://www.w3.org/TR/DOM-Level-3-Events/#event-type-DOMAttrModified\n */\n ElementEvent[\"ATTR_MODIFIED\"] = \"DOMAttrModified\";\n /**\n * it has been inserted\n * @see https://www.w3.org/TR/DOM-Level-3-Events/#event-type-DOMNodeInserted\n */\n ElementEvent[\"INSERTED\"] = \"DOMNodeInserted\";\n /**\n * @see https://www.w3.org/TR/DOM-Level-3-Events/#domnodeinsertedintodocument\n */\n ElementEvent[\"MOUNTED\"] = \"DOMNodeInsertedIntoDocument\";\n /**\n * it is being removed\n * @see https://www.w3.org/TR/DOM-Level-3-Events/#event-type-DOMNodeRemoved\n */\n ElementEvent[\"REMOVED\"] = \"removed\";\n /**\n * @see https://www.w3.org/TR/DOM-Level-3-Events/#domnoderemovedfromdocument\n */\n ElementEvent[\"UNMOUNTED\"] = \"DOMNodeRemovedFromDocument\";\n // ---\n ElementEvent[\"REPARENT\"] = \"reparent\";\n ElementEvent[\"DESTROY\"] = \"destroy\";\n ElementEvent[\"BOUNDS_CHANGED\"] = \"bounds-changed\";\n ElementEvent[\"CULLED\"] = \"culled\";\n return ElementEvent;\n}({});\n\n// #region EventTarget\n\n// #region Node\n\n// #region Element\n\n// #region AnimationTimeline\n\n// #region Document\n\n// #region CSSStyleDeclaration\n/**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/CSSStyleDeclaration\n */\n\n// #region Canvas\n\n/**\n * @deprecated https://developer.chrome.com/blog/mutation-events-deprecation\n */\nvar MutationEvent = /*#__PURE__*/function (_FederatedEvent) {\n function MutationEvent(typeArg, relatedNode, prevValue, newValue, attrName, attrChange, prevParsedValue, newParsedValue) {\n var _this;\n _classCallCheck(this, MutationEvent);\n _this = _callSuper(this, MutationEvent, [null]);\n _this.relatedNode = relatedNode;\n _this.prevValue = prevValue;\n _this.newValue = newValue;\n _this.attrName = attrName;\n _this.attrChange = attrChange;\n _this.prevParsedValue = prevParsedValue;\n _this.newParsedValue = newParsedValue;\n _this.type = typeArg;\n return _this;\n }\n _inherits(MutationEvent, _FederatedEvent);\n return _createClass(MutationEvent);\n}(FederatedEvent);\nMutationEvent.ADDITION = 2;\nMutationEvent.MODIFICATION = 1;\nMutationEvent.REMOVAL = 3;\n\nvar reparentEvent = new MutationEvent(ElementEvent.REPARENT, null, '', '', '', 0, '', '');\n\n// Object pooling\n/** do not modify this objects */\nvar $vec2Zero = vec2.create();\n/** do not modify this objects */\nvar $vec3Zero = vec3.create();\n/** do not modify this objects */\nvar $vec3One = vec3.fromValues(1, 1, 1);\n/** do not modify this objects */\nvar $mat4Identity = mat4.create();\n\n/** shared objects */\nvar $vec2 = vec2.create();\n/** shared objects */\nvar $vec3$1 = vec3.create();\n/** shared objects */\nvar $mat4 = mat4.create();\n/** shared objects */\nvar $quat$1 = quat$1.create();\nvar $setLocalTransform_1 = vec3.create();\nvar $setLocalTransform_2 = quat$1.create();\nvar $setLocalTransform_3 = vec3.create();\nvar $setLocalPosition = vec3.create();\nvar $setPosition_1 = vec3.create();\nvar $setPosition_ParentInvertMatrix = mat4.create();\nvar $setEulerAngles_InvParentRot = quat$1.create();\nvar $rotateLocal = quat$1.create();\nvar $rotate_ParentInvertRotation = quat$1.create();\n\n/**\n * update transform in scene graph\n *\n * @see https://community.khronos.org/t/scene-graphs/50542/7\n */\nvar DefaultSceneGraphService = /*#__PURE__*/function () {\n function DefaultSceneGraphService(runtime) {\n _classCallCheck(this, DefaultSceneGraphService);\n this.displayObjectDependencyMap = new WeakMap();\n this.runtime = runtime;\n }\n return _createClass(DefaultSceneGraphService, [{\n key: \"matches\",\n value: function matches(query, root) {\n return this.runtime.sceneGraphSelector.is(query, root);\n }\n }, {\n key: \"querySelector\",\n value: function querySelector(query, root) {\n return this.runtime.sceneGraphSelector.selectOne(query, root);\n }\n }, {\n key: \"querySelectorAll\",\n value: function querySelectorAll(query, root) {\n return this.runtime.sceneGraphSelector.selectAll(query, root);\n // .filter((node) => !node.shadow);\n }\n }, {\n key: \"attach\",\n value: function attach(child, parent, index) {\n var _sortable$sorted;\n var detached = false;\n if (child.parentNode) {\n detached = child.parentNode !== parent;\n this.detach(child);\n }\n var isChildFragment = child.nodeName === Shape.FRAGMENT;\n var isAttachToFragment = isInFragment(parent);\n child.parentNode = parent;\n var nodes = isChildFragment ? child.childNodes : [child];\n if (isNumber(index)) {\n nodes.forEach(function (node) {\n parent.childNodes.splice(index, 0, node);\n node.parentNode = parent;\n });\n } else {\n nodes.forEach(function (node) {\n parent.childNodes.push(node);\n node.parentNode = parent;\n });\n }\n\n // parent needs re-sort\n var _ref = parent,\n sortable = _ref.sortable;\n if (sortable !== null && sortable !== void 0 && (_sortable$sorted = sortable.sorted) !== null && _sortable$sorted !== void 0 && _sortable$sorted.length || sortable.dirty || child.parsedStyle.zIndex) {\n if (sortable.dirtyChildren.indexOf(child) === -1) {\n sortable.dirtyChildren.push(child);\n }\n // if (sortable) {\n // only child has z-Index\n sortable.dirty = true;\n sortable.dirtyReason = SortReason.ADDED;\n }\n if (isAttachToFragment) return;\n if (isChildFragment) {\n this.dirtyFragment(child);\n } else {\n var transform = child.transformable;\n if (transform) {\n this.dirtyWorldTransform(child, transform);\n }\n }\n if (detached) {\n var _parent$ownerDocument;\n var enableCancelEventPropagation = ((_parent$ownerDocument = parent.ownerDocument) === null || _parent$ownerDocument === void 0 || (_parent$ownerDocument = _parent$ownerDocument.defaultView) === null || _parent$ownerDocument === void 0 || (_parent$ownerDocument = _parent$ownerDocument.getConfig()) === null || _parent$ownerDocument === void 0 || (_parent$ownerDocument = _parent$ownerDocument.future) === null || _parent$ownerDocument === void 0 ? void 0 : _parent$ownerDocument.experimentalCancelEventPropagation) === true;\n child.dispatchEvent(reparentEvent, enableCancelEventPropagation, enableCancelEventPropagation);\n }\n }\n }, {\n key: \"detach\",\n value: function detach(child) {\n var _sortable$sorted2, _style;\n if (!child.parentNode) {\n return;\n }\n var transform = child.transformable;\n // if (transform) {\n // const worldTransform = this.getWorldTransform(child, transform);\n // mat4.getScaling(transform.localScale, worldTransform);\n // mat4.getTranslation(transform.localPosition, worldTransform);\n // mat4.getRotation(transform.localRotation, worldTransform);\n // transform.localDirtyFlag = true;\n // }\n\n // parent needs re-sort\n var _ref2 = child.parentNode,\n sortable = _ref2.sortable;\n // if (sortable) {\n if (sortable !== null && sortable !== void 0 && (_sortable$sorted2 = sortable.sorted) !== null && _sortable$sorted2 !== void 0 && _sortable$sorted2.length || (_style = child.style) !== null && _style !== void 0 && _style.zIndex) {\n if (sortable.dirtyChildren.indexOf(child) === -1) {\n sortable.dirtyChildren.push(child);\n }\n sortable.dirty = true;\n sortable.dirtyReason = SortReason.REMOVED;\n }\n var index = child.parentNode.childNodes.indexOf(child);\n if (index > -1) {\n child.parentNode.childNodes.splice(index, 1);\n }\n if (transform) {\n this.dirtyWorldTransform(child, transform);\n }\n child.parentNode = null;\n }\n\n // #region local-transform ----------------------------------------------------------------\n }, {\n key: \"getLocalPosition\",\n value: function getLocalPosition(element) {\n return element.transformable.localPosition;\n }\n }, {\n key: \"getLocalRotation\",\n value: function getLocalRotation(element) {\n return element.transformable.localRotation;\n }\n }, {\n key: \"getLocalScale\",\n value: function getLocalScale(element) {\n return element.transformable.localScale;\n }\n }, {\n key: \"getLocalSkew\",\n value: function getLocalSkew(element) {\n return element.transformable.localSkew;\n }\n }, {\n key: \"getLocalTransform\",\n value: function getLocalTransform(element) {\n var transform = element.transformable;\n updateLocalTransform(transform);\n return transform.localTransform;\n }\n\n /**\n * move to position in local space\n */\n }, {\n key: \"setLocalPosition\",\n value: function setLocalPosition(element, position) {\n var _position$;\n var dirtify = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var transform = element.transformable;\n $setLocalPosition[0] = position[0];\n $setLocalPosition[1] = position[1];\n $setLocalPosition[2] = (_position$ = position[2]) !== null && _position$ !== void 0 ? _position$ : 0;\n if (vec3.equals(transform.localPosition, $setLocalPosition)) {\n return;\n }\n vec3.copy(transform.localPosition, $setLocalPosition);\n if (dirtify) {\n this.dirtyLocalTransform(element, transform);\n }\n }\n\n /**\n * translate in local space\n *\n * @example\n * ```\n * translateLocal(x, y, z)\n * translateLocal(vec3(x, y, z))\n * ```\n */\n }, {\n key: \"translateLocal\",\n value: function translateLocal(element, translation) {\n var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var z = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n if (typeof translation === 'number') {\n translation = vec3.fromValues(translation, y, z);\n }\n var transform = element.transformable;\n if (vec3.equals(translation, $vec3Zero)) return;\n vec3.transformQuat(translation, translation, transform.localRotation);\n vec3.add(transform.localPosition, transform.localPosition, translation);\n this.dirtyLocalTransform(element, transform);\n }\n }, {\n key: \"setLocalRotation\",\n value: function setLocalRotation(element, rotation, y, z, w) {\n var dirtify = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n if (typeof rotation === 'number') {\n rotation = quat$1.set($quat$1, rotation, y, z, w);\n }\n var transform = element.transformable;\n quat$1.copy(transform.localRotation, rotation);\n if (dirtify) {\n this.dirtyLocalTransform(element, transform);\n }\n }\n\n /**\n * rotate in local space\n * @see @see https://docs.microsoft.com/en-us/windows/win32/api/directxmath/nf-directxmath-xmquaternionrotationrollpitchyaw\n */\n }, {\n key: \"rotateLocal\",\n value: function rotateLocal(element, degrees) {\n var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var z = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n if (typeof degrees === 'number') {\n degrees = vec3.fromValues(degrees, y, z);\n }\n var transform = element.transformable;\n quat$1.fromEuler($rotateLocal, degrees[0], degrees[1], degrees[2]);\n quat$1.mul(transform.localRotation, transform.localRotation, $rotateLocal);\n this.dirtyLocalTransform(element, transform);\n }\n }, {\n key: \"setLocalScale\",\n value: function setLocalScale(element, scaling) {\n var _scaling$;\n var dirtify = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var transform = element.transformable;\n vec3.set($vec3$1, scaling[0], scaling[1], (_scaling$ = scaling[2]) !== null && _scaling$ !== void 0 ? _scaling$ : transform.localScale[2]);\n if (vec3.equals($vec3$1, transform.localScale)) {\n return;\n }\n vec3.copy(transform.localScale, $vec3$1);\n if (dirtify) {\n this.dirtyLocalTransform(element, transform);\n }\n }\n\n /**\n * scale in local space\n */\n }, {\n key: \"scaleLocal\",\n value: function scaleLocal(element, scaling) {\n var _scaling$2;\n var transform = element.transformable;\n vec3.multiply(transform.localScale, transform.localScale, vec3.set($vec3$1, scaling[0], scaling[1], (_scaling$2 = scaling[2]) !== null && _scaling$2 !== void 0 ? _scaling$2 : 1));\n this.dirtyLocalTransform(element, transform);\n }\n }, {\n key: \"setLocalSkew\",\n value: function setLocalSkew(element, skew, y) {\n var dirtify = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n if (typeof skew === 'number') {\n skew = vec2.set($vec2, skew, y);\n }\n var transform = element.transformable;\n vec2.copy(transform.localSkew, skew);\n if (dirtify) {\n this.dirtyLocalTransform(element, transform);\n }\n }\n\n /**\n * set euler angles(degrees) in local space\n */\n }, {\n key: \"setLocalEulerAngles\",\n value: function setLocalEulerAngles(element, degrees) {\n var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var z = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var dirtify = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n if (typeof degrees === 'number') {\n degrees = vec3.fromValues(degrees, y, z);\n }\n var transform = element.transformable;\n quat$1.fromEuler(transform.localRotation, degrees[0], degrees[1], degrees[2]);\n if (dirtify) {\n this.dirtyLocalTransform(element, transform);\n }\n }\n }, {\n key: \"setLocalTransform\",\n value: function setLocalTransform(element, transform) {\n var t = mat4.getTranslation($setLocalTransform_1, transform);\n var r = mat4.getRotation($setLocalTransform_2, transform);\n var s = mat4.getScaling($setLocalTransform_3, transform);\n this.setLocalScale(element, s, false);\n this.setLocalPosition(element, t, false);\n this.setLocalRotation(element, r, undefined, undefined, undefined, false);\n this.dirtyLocalTransform(element, element.transformable);\n }\n }, {\n key: \"resetLocalTransform\",\n value: function resetLocalTransform(element) {\n this.setLocalScale(element, $vec3One, false);\n this.setLocalPosition(element, $vec3Zero, false);\n this.setLocalEulerAngles(element, $vec3Zero, undefined, undefined, false);\n this.setLocalSkew(element, $vec2Zero, undefined, false);\n this.dirtyLocalTransform(element, element.transformable);\n }\n\n // #endregion local-transform\n // #region transform ----------------------------------------------------------------\n }, {\n key: \"getPosition\",\n value: function getPosition(element) {\n var transform = element.transformable;\n return mat4.getTranslation(transform.position, this.getWorldTransform(element, transform));\n }\n }, {\n key: \"getRotation\",\n value: function getRotation(element) {\n var transform = element.transformable;\n return mat4.getRotation(transform.rotation, this.getWorldTransform(element, transform));\n }\n }, {\n key: \"getScale\",\n value: function getScale(element) {\n var transform = element.transformable;\n return mat4.getScaling(transform.scaling, this.getWorldTransform(element, transform));\n }\n }, {\n key: \"getOrigin\",\n value: function getOrigin(element) {\n element.getGeometryBounds();\n return element.transformable.origin;\n }\n }, {\n key: \"getWorldTransform\",\n value: function getWorldTransform(element) {\n var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : element.transformable;\n if (!transform.localDirtyFlag && !transform.dirtyFlag) {\n return transform.worldTransform;\n }\n if (element.parentNode && element.parentNode.transformable) {\n this.getWorldTransform(element.parentNode);\n }\n this.internalUpdateTransform(element);\n return transform.worldTransform;\n }\n\n /**\n * move to position in world space\n *\n * 对应 g 原版的 move/moveTo\n * @see https://github.com/antvis/g/blob/master/packages/g-base/src/abstract/element.ts#L684-L689\n */\n }, {\n key: \"setPosition\",\n value: function setPosition(element, position) {\n var _position$2;\n var transform = element.transformable;\n $setPosition_1[0] = position[0];\n $setPosition_1[1] = position[1];\n $setPosition_1[2] = (_position$2 = position[2]) !== null && _position$2 !== void 0 ? _position$2 : 0;\n if (vec3.equals(this.getPosition(element), $setPosition_1)) {\n return;\n }\n vec3.copy(transform.position, $setPosition_1);\n if (element.parentNode === null || !element.parentNode.transformable) {\n vec3.copy(transform.localPosition, $setPosition_1);\n } else {\n var parentTransform = element.parentNode.transformable;\n mat4.copy($setPosition_ParentInvertMatrix, parentTransform.worldTransform);\n mat4.invert($setPosition_ParentInvertMatrix, $setPosition_ParentInvertMatrix);\n vec3.transformMat4(transform.localPosition, $setPosition_1, $setPosition_ParentInvertMatrix);\n }\n this.dirtyLocalTransform(element, transform);\n }\n\n /**\n * translate in world space\n *\n * @example\n * ```\n * translate(x, y, z)\n * translate(vec3(x, y, z))\n * ```\n *\n * 对应 g 原版的 translate 2D\n * @see https://github.com/antvis/g/blob/master/packages/g-base/src/abstract/element.ts#L665-L676\n */\n }, {\n key: \"translate\",\n value: function translate(element, translation) {\n var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var z = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n if (typeof translation === 'number') {\n translation = vec3.set($vec3$1, translation, y, z);\n }\n if (vec3.equals(translation, $vec3Zero)) return;\n vec3.add($vec3$1, this.getPosition(element), translation);\n this.setPosition(element, $vec3$1);\n }\n }, {\n key: \"setRotation\",\n value: function setRotation(element, rotation, y, z, w) {\n var transform = element.transformable;\n if (typeof rotation === 'number') {\n rotation = quat$1.fromValues(rotation, y, z, w);\n }\n if (element.parentNode === null || !element.parentNode.transformable) {\n this.setLocalRotation(element, rotation);\n } else {\n var parentRot = this.getRotation(element.parentNode);\n quat$1.copy($quat$1, parentRot);\n quat$1.invert($quat$1, $quat$1);\n quat$1.multiply(transform.localRotation, $quat$1, rotation);\n quat$1.normalize(transform.localRotation, transform.localRotation);\n this.dirtyLocalTransform(element, transform);\n }\n }\n\n /**\n * rotate in world space\n */\n }, {\n key: \"rotate\",\n value: function rotate(element, degrees) {\n var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var z = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n if (typeof degrees === 'number') {\n degrees = vec3.fromValues(degrees, y, z);\n }\n var transform = element.transformable;\n if (element.parentNode === null || !element.parentNode.transformable) {\n this.rotateLocal(element, degrees);\n } else {\n var rotation = $quat$1;\n quat$1.fromEuler(rotation, degrees[0], degrees[1], degrees[2]);\n var rot = this.getRotation(element);\n var parentRot = this.getRotation(element.parentNode);\n quat$1.copy($rotate_ParentInvertRotation, parentRot);\n quat$1.invert($rotate_ParentInvertRotation, $rotate_ParentInvertRotation);\n quat$1.multiply(rotation, $rotate_ParentInvertRotation, rotation);\n quat$1.multiply(transform.localRotation, rotation, rot);\n quat$1.normalize(transform.localRotation, transform.localRotation);\n this.dirtyLocalTransform(element, transform);\n }\n }\n\n /**\n * same as pivot in Pixi.js\n *\n * @see https://stackoverflow.com/questions/40748452/how-to-change-css-transform-origin-but-preserve-transformation\n */\n }, {\n key: \"setOrigin\",\n value: function setOrigin(element, origin) {\n var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var z = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n if (typeof origin === 'number') {\n origin = [origin, y, z];\n }\n var transform = element.transformable;\n if (origin[0] === transform.origin[0] && origin[1] === transform.origin[1] && origin[2] === transform.origin[2]) {\n return;\n }\n var originVec = transform.origin;\n\n // const delta = vec3.subtract(vec3.create(), origin, originVec);\n // vec3.add(transform.localPosition, transform.localPosition, delta);\n\n // update origin\n originVec[0] = origin[0];\n originVec[1] = origin[1];\n originVec[2] = origin[2] || 0;\n this.dirtyLocalTransform(element, transform);\n }\n\n /**\n * set euler angles(degrees) in world space\n */\n }, {\n key: \"setEulerAngles\",\n value: function setEulerAngles(element, degrees) {\n var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var z = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n if (typeof degrees === 'number') {\n degrees = vec3.fromValues(degrees, y, z);\n }\n var transform = element.transformable;\n if (element.parentNode === null || !element.parentNode.transformable) {\n this.setLocalEulerAngles(element, degrees);\n } else {\n quat$1.fromEuler(transform.localRotation, degrees[0], degrees[1], degrees[2]);\n var parentRotation = this.getRotation(element.parentNode);\n quat$1.copy($setEulerAngles_InvParentRot, quat$1.invert($quat$1, parentRotation));\n quat$1.mul(transform.localRotation, transform.localRotation, $setEulerAngles_InvParentRot);\n this.dirtyLocalTransform(element, transform);\n }\n }\n\n // #endregion transform\n // #region bbox ----------------------------------------------------------------\n\n /**\n * Get the geometry bounds of the element itself, excluding children.\n *\n * @param element - The element to get geometry bounds for\n * @param render - If true, returns render bounds (including strokes, etc.); otherwise returns content bounds\n */\n }, {\n key: \"getGeometryBounds\",\n value: function getGeometryBounds(element) {\n var render = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _ref3 = element,\n geometry = _ref3.geometry;\n if (geometry.dirty) {\n runtime.styleValueRegistry.updateGeometry(element);\n }\n var bounds = render ? geometry.renderBounds : geometry.contentBounds || null;\n // return (bounds && new AABB(bounds.center, bounds.halfExtents)) || new AABB();\n return bounds || new AABB();\n }\n\n /**\n * Get the geometry bounds of the element itself in world space, excluding children.\n *\n * @param element - The element to get transformed geometry bounds for\n * @param render - If true, returns render bounds (including strokes, etc.); otherwise returns content bounds\n * @param existedAABB - Optional existing AABB to reuse\n */\n }, {\n key: \"getTransformedGeometryBounds\",\n value: function getTransformedGeometryBounds(element) {\n var render = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var existedAABB = arguments.length > 2 ? arguments[2] : undefined;\n var bounds = this.getGeometryBounds(element, render);\n if (!AABB.isEmpty(bounds)) {\n var aabb = existedAABB || new AABB();\n aabb.setFromTransformedAABB(bounds, this.getWorldTransform(element));\n return aabb;\n }\n return null;\n }\n\n /**\n * account for children in world space\n */\n }, {\n key: \"getBounds\",\n value: function getBounds(element) {\n var _this = this;\n var render = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _ref4 = element,\n renderable = _ref4.renderable;\n if (!renderable.boundsDirty && !render && renderable.bounds) {\n return renderable.bounds;\n }\n if (!renderable.renderBoundsDirty && render && renderable.renderBounds) {\n return renderable.renderBounds;\n }\n\n // reuse existed if possible\n var existedAABB = render ? renderable.renderBounds : renderable.bounds;\n\n // reset with geometry's aabb\n var aabb = this.getTransformedGeometryBounds(element, render, existedAABB);\n\n // merge children's aabbs\n var children = element.childNodes;\n children.forEach(function (child) {\n var childBounds = _this.getBounds(child, render);\n if (childBounds) {\n if (!aabb) {\n aabb = existedAABB || new AABB();\n aabb.update(childBounds.center, childBounds.halfExtents);\n } else {\n aabb.add(childBounds);\n }\n }\n });\n if (!aabb) {\n aabb = new AABB();\n }\n if (render) {\n // FIXME: account for clip path\n var clipped = findClosestClipPathTarget(element);\n if (clipped) {\n // use bounds under world space\n var clipPathBounds = clipped.parsedStyle.clipPath.getBounds(render);\n if (!aabb) {\n aabb.update(clipPathBounds.center, clipPathBounds.halfExtents);\n } else if (clipPathBounds) {\n aabb = clipPathBounds.intersection(aabb);\n }\n }\n }\n if (render) {\n renderable.renderBounds = aabb;\n renderable.renderBoundsDirty = false;\n } else {\n renderable.bounds = aabb;\n renderable.boundsDirty = false;\n }\n return aabb;\n }\n\n /**\n * account for children in local space\n */\n }, {\n key: \"getLocalBounds\",\n value: function getLocalBounds(element) {\n if (element.parentNode) {\n var parentInvert = $mat4Identity;\n if (element.parentNode.transformable) {\n parentInvert = mat4.invert($mat4, this.getWorldTransform(element.parentNode));\n }\n var bounds = this.getBounds(element);\n if (!AABB.isEmpty(bounds)) {\n var localBounds = new AABB();\n localBounds.setFromTransformedAABB(bounds, parentInvert);\n return localBounds;\n }\n }\n return this.getBounds(element);\n }\n }, {\n key: \"getBoundingClientRect\",\n value: function getBoundingClientRect(element) {\n var _element$ownerDocumen;\n var aabb;\n var bounds = this.getGeometryBounds(element);\n if (!AABB.isEmpty(bounds)) {\n aabb = new AABB();\n // apply transformation to aabb\n aabb.setFromTransformedAABB(bounds, this.getWorldTransform(element));\n }\n\n // calc context's offset\n var bbox = (_element$ownerDocumen = element.ownerDocument) === null || _element$ownerDocumen === void 0 || (_element$ownerDocumen = _element$ownerDocumen.defaultView) === null || _element$ownerDocumen === void 0 ? void 0 : _element$ownerDocumen.getContextService().getBoundingClientRect();\n if (aabb) {\n var _aabb$getMin = aabb.getMin(),\n _aabb$getMin2 = _slicedToArray(_aabb$getMin, 2),\n left = _aabb$getMin2[0],\n top = _aabb$getMin2[1];\n var _aabb$getMax = aabb.getMax(),\n _aabb$getMax2 = _slicedToArray(_aabb$getMax, 2),\n right = _aabb$getMax2[0],\n bottom = _aabb$getMax2[1];\n return new Rectangle(left + ((bbox === null || bbox === void 0 ? void 0 : bbox.left) || 0), top + ((bbox === null || bbox === void 0 ? void 0 : bbox.top) || 0), right - left, bottom - top);\n }\n return new Rectangle((bbox === null || bbox === void 0 ? void 0 : bbox.left) || 0, (bbox === null || bbox === void 0 ? void 0 : bbox.top) || 0, 0, 0);\n }\n\n // #endregion bbox\n // #region other ----------------------------------------------------------------\n }, {\n key: \"internalUpdateTransform\",\n value: function internalUpdateTransform(element) {\n var _element$parentNode;\n var parentTransform = (_element$parentNode = element.parentNode) === null || _element$parentNode === void 0 ? void 0 : _element$parentNode.transformable;\n updateLocalTransform(element.transformable);\n updateWorldTransform(element.transformable, parentTransform);\n }\n }, {\n key: \"internalUpdateElement\",\n value: function internalUpdateElement(element, ancestors) {\n var _element$ownerDocumen2, _element$transformabl, _element$renderable, _element$renderable2;\n var enableAttributeUpdateOptimization = ((_element$ownerDocumen2 = element.ownerDocument) === null || _element$ownerDocumen2 === void 0 || (_element$ownerDocumen2 = _element$ownerDocumen2.defaultView) === null || _element$ownerDocumen2 === void 0 || (_element$ownerDocumen2 = _element$ownerDocumen2.getConfig()) === null || _element$ownerDocumen2 === void 0 || (_element$ownerDocumen2 = _element$ownerDocumen2.future) === null || _element$ownerDocumen2 === void 0 ? void 0 : _element$ownerDocumen2.experimentalAttributeUpdateOptimization) === true;\n var parent = ancestors[ancestors.length - 1];\n // parent nodes affect child nodes\n var transformDirty = (parent === null || parent === void 0 ? void 0 : parent.transformDirty) || ((_element$transformabl = element.transformable) === null || _element$transformabl === void 0 ? void 0 : _element$transformabl.localDirtyFlag);\n if (element.transformable) {\n var _element$transformabl2;\n (_element$transformabl2 = element.transformable).dirtyFlag || (_element$transformabl2.dirtyFlag = transformDirty);\n }\n this.internalUpdateTransform(element);\n if (transformDirty) {\n var _element$dirty;\n (_element$dirty = element.dirty) === null || _element$dirty === void 0 || _element$dirty.call(element, true, true);\n }\n var shapeUpdated = ((_element$renderable = element.renderable) === null || _element$renderable === void 0 ? void 0 : _element$renderable.boundsDirty) || ((_element$renderable2 = element.renderable) === null || _element$renderable2 === void 0 ? void 0 : _element$renderable2.renderBoundsDirty);\n\n // The transformation matrix of the child node changes,\n // which will cause the bounding box data of the ancestor node to become outdated.\n if ((transformDirty || shapeUpdated) && (parent === null || parent === void 0 ? void 0 : parent.shapeUpdated) === false && enableAttributeUpdateOptimization) {\n var tempElIndex = ancestors.length - 1;\n while (tempElIndex >= 0) {\n var _dirty, _ref5;\n var tempEl = ancestors[tempElIndex];\n if (tempEl.shapeUpdated) {\n break;\n }\n (_dirty = (_ref5 = tempEl.node).dirty) === null || _dirty === void 0 || _dirty.call(_ref5, true, true);\n tempEl.shapeUpdated = true;\n tempElIndex -= 1;\n }\n }\n return transformDirty;\n }\n }, {\n key: \"syncHierarchy\",\n value: function syncHierarchy(rootNode) {\n var _transformable, _transformable2;\n var stack = [rootNode];\n var ancestors = rootNode.parentNode ? [{\n node: rootNode.parentNode,\n transformDirty: ((_transformable = rootNode.parentNode.transformable) === null || _transformable === void 0 ? void 0 : _transformable.localDirtyFlag) || ((_transformable2 = rootNode.parentNode.transformable) === null || _transformable2 === void 0 ? void 0 : _transformable2.dirtyFlag),\n shapeUpdated: false\n }] : [];\n while (stack.length > 0) {\n var node = stack.pop();\n var parent = ancestors[ancestors.length - 1];\n while (ancestors.length > 0 && node.parentNode !== parent.node) {\n parent = ancestors.pop();\n }\n var transformDirty = this.internalUpdateElement(node, ancestors);\n if (node.childNodes.length > 0) {\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n stack.push(node.childNodes[i]);\n }\n ancestors.push({\n node: node,\n transformDirty: transformDirty,\n shapeUpdated: false\n });\n }\n }\n }\n }, {\n key: \"dirtyLocalTransform\",\n value: function dirtyLocalTransform(element, transform) {\n if (isInFragment(element)) return;\n if (!transform.localDirtyFlag) {\n transform.localDirtyFlag = true;\n if (!transform.dirtyFlag) {\n this.dirtyWorldTransform(element, transform);\n }\n }\n }\n }, {\n key: \"dirtyWorldTransform\",\n value: function dirtyWorldTransform(element, transform) {\n this.dirtyWorldInternal(element, transform);\n this.dirtyToRoot(element, true);\n }\n }, {\n key: \"dirtyWorldInternal\",\n value: function dirtyWorldInternal(element, transform) {\n var _element$ownerDocumen3,\n _this2 = this;\n var enableAttributeUpdateOptimization = ((_element$ownerDocumen3 = element.ownerDocument) === null || _element$ownerDocumen3 === void 0 || (_element$ownerDocumen3 = _element$ownerDocumen3.defaultView) === null || _element$ownerDocumen3 === void 0 || (_element$ownerDocumen3 = _element$ownerDocumen3.getConfig()) === null || _element$ownerDocumen3 === void 0 || (_element$ownerDocumen3 = _element$ownerDocumen3.future) === null || _element$ownerDocumen3 === void 0 ? void 0 : _element$ownerDocumen3.experimentalAttributeUpdateOptimization) === true;\n if (!transform.dirtyFlag) {\n transform.dirtyFlag = true;\n element.dirty(true, true);\n if (!enableAttributeUpdateOptimization) {\n element.childNodes.forEach(function (child) {\n var childTransform = child.transformable;\n _this2.dirtyWorldInternal(child, childTransform);\n });\n }\n }\n }\n }, {\n key: \"dirtyToRoot\",\n value: function dirtyToRoot(element) {\n var _element$ownerDocumen4;\n var affectChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var p = element;\n var enableAttributeUpdateOptimization = ((_element$ownerDocumen4 = element.ownerDocument) === null || _element$ownerDocumen4 === void 0 || (_element$ownerDocumen4 = _element$ownerDocumen4.defaultView) === null || _element$ownerDocumen4 === void 0 || (_element$ownerDocumen4 = _element$ownerDocumen4.getConfig()) === null || _element$ownerDocumen4 === void 0 || (_element$ownerDocumen4 = _element$ownerDocumen4.future) === null || _element$ownerDocumen4 === void 0 ? void 0 : _element$ownerDocumen4.experimentalAttributeUpdateOptimization) === true;\n while (p) {\n var _dirty2, _ref6;\n (_dirty2 = (_ref6 = p).dirty) === null || _dirty2 === void 0 || _dirty2.call(_ref6, true, true);\n if (enableAttributeUpdateOptimization) {\n break;\n } else {\n p = p.parentNode;\n }\n }\n if (affectChildren) {\n element.forEach(function (e) {\n var _e$dirty;\n (_e$dirty = e.dirty) === null || _e$dirty === void 0 || _e$dirty.call(e, true, true);\n });\n }\n this.informDependentDisplayObjects(element);\n var mutations = element.mutations || [];\n var boundChangeMutation = mutations.find(function (item) {\n return item.type === 'attributes' && item._boundsChangeData;\n });\n if (!boundChangeMutation) {\n boundChangeMutation = {\n type: 'attributes',\n target: element,\n _boundsChangeData: {\n affectChildren: affectChildren\n }\n };\n mutations.push(boundChangeMutation);\n } else {\n boundChangeMutation._boundsChangeData = {\n affectChildren: boundChangeMutation._boundsChangeData.affectChildren || affectChildren\n };\n }\n element.mutations = mutations;\n }\n }, {\n key: \"dirtyFragment\",\n value: function dirtyFragment(element) {\n var _dirty3, _ref7;\n var transform = element.transformable;\n if (transform) {\n transform.dirtyFlag = true;\n transform.localDirtyFlag = true;\n }\n (_dirty3 = (_ref7 = element).dirty) === null || _dirty3 === void 0 || _dirty3.call(_ref7, true, true);\n var length = element.childNodes.length;\n for (var i = 0; i < length; i++) {\n this.dirtyFragment(element.childNodes[i]);\n }\n }\n }, {\n key: \"notifyMutationObservers\",\n value: function notifyMutationObservers(canvas) {\n var mutations = new Set();\n canvas.getRoot().forEach(function (item) {\n (item.mutations || []).forEach(function (mutation) {\n if (mutation.type === 'attributes' && mutation._boundsChangeData) {\n if (mutation._boundsChangeData.affectChildren) {\n item.forEach(function (node) {\n var newMutation = _objectSpread({}, mutation);\n newMutation.target = node;\n mutations.add(newMutation);\n });\n } else {\n mutations.add(mutation);\n }\n }\n });\n item.mutations = undefined;\n });\n if (mutations.size > 0) {\n var event = new CustomEvent(ElementEvent.BOUNDS_CHANGED, {\n detail: Array.from(mutations)\n });\n canvas.dispatchEvent(event, true, true);\n }\n }\n }, {\n key: \"updateDisplayObjectDependency\",\n value: function updateDisplayObjectDependency(name, oldPath, newPath, object) {\n // clear ref to old clip path\n if (oldPath && oldPath !== newPath) {\n var oldDependencyMap = this.displayObjectDependencyMap.get(oldPath);\n if (oldDependencyMap && oldDependencyMap[name]) {\n var index = oldDependencyMap[name].indexOf(object);\n oldDependencyMap[name].splice(index, 1);\n }\n }\n if (newPath) {\n var newDependencyMap = this.displayObjectDependencyMap.get(newPath);\n if (!newDependencyMap) {\n this.displayObjectDependencyMap.set(newPath, {});\n newDependencyMap = this.displayObjectDependencyMap.get(newPath);\n }\n if (!newDependencyMap[name]) {\n newDependencyMap[name] = [];\n }\n newDependencyMap[name].push(object);\n }\n }\n }, {\n key: \"informDependentDisplayObjects\",\n value: function informDependentDisplayObjects(object) {\n var _object$ownerDocument,\n _this3 = this;\n var dependencyMap = this.displayObjectDependencyMap.get(object);\n if (!dependencyMap) {\n return;\n }\n var enableCancelEventPropagation = (_object$ownerDocument = object.ownerDocument) === null || _object$ownerDocument === void 0 || (_object$ownerDocument = _object$ownerDocument.defaultView) === null || _object$ownerDocument === void 0 || (_object$ownerDocument = _object$ownerDocument.getConfig()) === null || _object$ownerDocument === void 0 || (_object$ownerDocument = _object$ownerDocument.future) === null || _object$ownerDocument === void 0 ? void 0 : _object$ownerDocument.experimentalCancelEventPropagation;\n Object.keys(dependencyMap).forEach(function (name) {\n dependencyMap[name].forEach(function (target) {\n _this3.dirtyToRoot(target, true);\n target.dispatchEvent(new MutationEvent(ElementEvent.ATTR_MODIFIED, target, _this3, _this3, name, MutationEvent.MODIFICATION, _this3, _this3), enableCancelEventPropagation, enableCancelEventPropagation);\n if (target.isCustomElement && target.isConnected) {\n if (target.attributeChangedCallback) {\n target.attributeChangedCallback(name, _this3, _this3);\n }\n }\n });\n });\n }\n }]);\n}();\n\n/**\n * A classic LRU (Least Recently Used) cache implementation.\n * It evicts the least recently used item when the cache is full.\n *\n * It uses a Map for O(1) key-based access\n * to maintain the usage order of items.\n *\n * 通过利用 JavaScript 内置 Map 的特性(按插入顺序迭代),我们不再需要手动维护一个双向链表\n */\nvar LRU = /*#__PURE__*/function () {\n function LRU(capacity) {\n _classCallCheck(this, LRU);\n if (capacity <= 0) {\n throw new Error('LRU capacity must be a positive number.');\n }\n this.capacity = capacity;\n // Using a Map directly simplifies the implementation significantly.\n // A Map in modern JS engines iterates in insertion order, which is exactly what we need.\n this.cache = new Map();\n }\n\n /**\n * Retrieves an item from the cache. Marks the item as recently used.\n * @param key The key of the item to retrieve.\n * @returns The value of the item, or undefined if not found.\n */\n return _createClass(LRU, [{\n key: \"get\",\n value: function get(key) {\n if (!this.cache.has(key)) {\n return undefined;\n }\n\n // Get the value.\n var value = this.cache.get(key);\n\n // Mark as recently used by deleting and re-setting the key.\n // This moves the key to the end of the Map's internal order.\n this.cache[\"delete\"](key);\n this.cache.set(key, value);\n return value;\n }\n\n /**\n * Adds or updates an item in the cache. Marks the item as recently used.\n * If the cache is full, it removes the least recently used item.\n * @param key The key of the item.\n * @param value The value of the item.\n */\n }, {\n key: \"put\",\n value: function put(key, value) {\n // If the key already exists, delete it first to ensure it's moved to the end.\n if (this.cache.has(key)) {\n this.cache[\"delete\"](key);\n }\n\n // Add the new item. It will be the most recently used.\n this.cache.set(key, value);\n\n // Check if the cache has exceeded its capacity.\n if (this.cache.size > this.capacity) {\n // Evict the least recently used item, which is the first one in the Map's iteration order.\n var leastRecentlyUsedKey = this.cache.keys().next().value;\n this.cache[\"delete\"](leastRecentlyUsedKey);\n }\n }\n\n /**\n * Returns the current number of items in the cache.\n */\n }, {\n key: \"len\",\n value: function len() {\n return this.cache.size;\n }\n\n /**\n * Clears all items from the cache.\n */\n }, {\n key: \"clear\",\n value: function clear() {\n this.cache.clear();\n }\n }]);\n}();\n\nvar TEXT_METRICS = {\n MetricsString: '|ÉqÅ',\n BaselineSymbol: 'M',\n BaselineMultiplier: 1.4,\n HeightMultiplier: 2,\n Newlines: [0x000a,\n // line feed\n 0x000d // carriage return\n ],\n BreakingSpaces: [0x0009,\n // character tabulation\n 0x0020,\n // space\n 0x2000,\n // en quad\n 0x2001,\n // em quad\n 0x2002,\n // en space\n 0x2003,\n // em space\n 0x2004,\n // three-per-em space\n 0x2005,\n // four-per-em space\n 0x2006,\n // six-per-em space\n 0x2008,\n // punctuation space\n 0x2009,\n // thin space\n 0x200a,\n // hair space\n 0x205f,\n // medium mathematical space\n 0x3000 // ideographic space\n ]\n};\nvar LATIN_REGEX = /[a-zA-Z0-9\\u00C0-\\u00D6\\u00D8-\\u00f6\\u00f8-\\u00ff!\"#$%&'()*+,-./:;]/;\n\n// Line breaking rules in CJK (Kinsoku Shori)\n// Refer from https://en.wikipedia.org/wiki/Line_breaking_rules_in_East_Asian_languages\nvar regexCannotStartZhCn = /[!%),.:;?\\]}¢°·'\"\"†‡›℃∶、。〃〆〕〗〞﹚﹜!"%'),.:;?!]}~]/;\nvar regexCannotEndZhCn = /[$(£¥·'\"〈《「『【〔〖〝﹙﹛$(.[{£¥]/;\nvar regexCannotStartZhTw = /[!),.:;?\\]}¢·–—'\"•\"、。〆〞〕〉》」︰︱︲︳﹐﹑﹒﹓﹔﹕﹖﹘﹚﹜!),.:;?︶︸︺︼︾﹀﹂﹗]|}、]/;\nvar regexCannotEndZhTw = /[([{£¥'\"‵〈《「『〔〝︴﹙﹛({︵︷︹︻︽︿﹁﹃﹏]/;\nvar regexCannotStartJaJp = /[)\\]}〕〉》」』】〙〗〟'\"⦆»ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻‐゠–〜?!‼⁇⁈⁉・、:;,。.]/;\nvar regexCannotEndJaJp = /[([{〔〈《「『【〘〖〝'\"⦅«—...‥〳〴〵]/;\nvar regexCannotStartKoKr = /[!%),.:;?\\]}¢°'\"†‡℃〆〈《「『〕!%),.:;?]}]/;\nvar regexCannotEndKoKr = /[$([{£¥'\"々〇〉》」〔$([{⦆¥₩#]/;\nvar regexCannotStart = new RegExp(\"\".concat(regexCannotStartZhCn.source, \"|\").concat(regexCannotStartZhTw.source, \"|\").concat(regexCannotStartJaJp.source, \"|\").concat(regexCannotStartKoKr.source));\nvar regexCannotEnd = new RegExp(\"\".concat(regexCannotEndZhCn.source, \"|\").concat(regexCannotEndZhTw.source, \"|\").concat(regexCannotEndJaJp.source, \"|\").concat(regexCannotEndKoKr.source));\n\n/**\n * Borrow from pixi/packages/text/src/TextMetrics.ts\n */\nvar TextService = /*#__PURE__*/function () {\n function TextService(runtime) {\n var _this = this;\n _classCallCheck(this, TextService);\n /**\n * font metrics cache\n */\n this.fontMetricsCache = {};\n this.shouldBreakByKinsokuShorui = function (_char, nextChar) {\n if (_this.isBreakingSpace(nextChar)) return false;\n if (_char) {\n // Line breaking rules in CJK (Kinsoku Shori)\n if (regexCannotEnd.exec(nextChar) || regexCannotStart.exec(_char)) {\n return true;\n }\n }\n return false;\n };\n this.trimByKinsokuShorui = function (prev) {\n var next = _toConsumableArray(prev);\n var prevLine = next[next.length - 2];\n if (!prevLine) {\n return prev;\n }\n var lastChar = prevLine[prevLine.length - 1];\n next[next.length - 2] = prevLine.slice(0, -1);\n next[next.length - 1] = lastChar + next[next.length - 1];\n return next;\n };\n this.runtime = runtime;\n this.charWidthCache = new LRU(100);\n }\n return _createClass(TextService, [{\n key: \"measureFont\",\n value:\n /**\n * A global cache for character widths, keyed by font string.\n * e.g. { '16px Arial': { 'a': 8, 'b': 9 } }\n */\n\n /**\n * Calculates the ascent, descent and fontSize of a given font-style.\n */\n function measureFont(font, offscreenCanvas) {\n // as this method is used for preparing assets, don't recalculate things if we don't need to\n if (this.fontMetricsCache[font]) {\n return this.fontMetricsCache[font];\n }\n var properties = {\n ascent: 0,\n descent: 0,\n fontSize: 0\n };\n var canvas = this.runtime.offscreenCanvasCreator.getOrCreateCanvas(offscreenCanvas);\n var context = this.runtime.offscreenCanvasCreator.getOrCreateContext(offscreenCanvas, {\n willReadFrequently: true\n });\n context.font = font;\n var metricsString = TEXT_METRICS.MetricsString + TEXT_METRICS.BaselineSymbol;\n var width = Math.ceil(context.measureText(metricsString).width);\n var baseline = Math.ceil(context.measureText(TEXT_METRICS.BaselineSymbol).width);\n var height = TEXT_METRICS.HeightMultiplier * baseline;\n baseline = baseline * TEXT_METRICS.BaselineMultiplier | 0;\n // @ts-ignore\n canvas.width = width;\n // @ts-ignore\n canvas.height = height;\n context.fillStyle = '#f00';\n context.fillRect(0, 0, width, height);\n context.font = font;\n context.textBaseline = 'alphabetic';\n context.fillStyle = '#000';\n context.fillText(metricsString, 0, baseline);\n var imagedata = context.getImageData(0, 0, width || 1, height || 1).data;\n var pixels = imagedata.length;\n var line = width * 4;\n var i = 0;\n var idx = 0;\n var stop = false;\n // ascent. scan from top to bottom until we find a non red pixel\n for (i = 0; i < baseline; ++i) {\n for (var j = 0; j < line; j += 4) {\n if (imagedata[idx + j] !== 255) {\n stop = true;\n break;\n }\n }\n if (!stop) {\n idx += line;\n } else {\n break;\n }\n }\n properties.ascent = baseline - i;\n idx = pixels - line;\n stop = false;\n // descent. scan from bottom to top until we find a non red pixel\n for (i = height; i > baseline; --i) {\n for (var _j = 0; _j < line; _j += 4) {\n if (imagedata[idx + _j] !== 255) {\n stop = true;\n break;\n }\n }\n if (!stop) {\n idx -= line;\n } else {\n break;\n }\n }\n properties.descent = i - baseline;\n properties.fontSize = properties.ascent + properties.descent;\n this.fontMetricsCache[font] = properties;\n return properties;\n }\n }, {\n key: \"measureText\",\n value: function measureText(text, parsedStyle, offscreenCanvas) {\n var _parsedStyle$fontSize = parsedStyle.fontSize,\n fontSize = _parsedStyle$fontSize === void 0 ? 16 : _parsedStyle$fontSize,\n _parsedStyle$wordWrap = parsedStyle.wordWrap,\n wordWrap = _parsedStyle$wordWrap === void 0 ? false : _parsedStyle$wordWrap,\n strokeHeight = parsedStyle.lineHeight,\n _parsedStyle$lineWidt = parsedStyle.lineWidth,\n lineWidth = _parsedStyle$lineWidt === void 0 ? 1 : _parsedStyle$lineWidt,\n _parsedStyle$textBase = parsedStyle.textBaseline,\n textBaseline = _parsedStyle$textBase === void 0 ? 'alphabetic' : _parsedStyle$textBase,\n _parsedStyle$textAlig = parsedStyle.textAlign,\n textAlign = _parsedStyle$textAlig === void 0 ? 'start' : _parsedStyle$textAlig,\n _parsedStyle$letterSp = parsedStyle.letterSpacing,\n letterSpacing = _parsedStyle$letterSp === void 0 ? 0 : _parsedStyle$letterSp,\n textPath = parsedStyle.textPath;\n parsedStyle.textPathSide;\n parsedStyle.textPathStartOffset;\n var _parsedStyle$leading = parsedStyle.leading,\n leading = _parsedStyle$leading === void 0 ? 0 : _parsedStyle$leading;\n var font = toFontString(parsedStyle);\n var fontProperties = this.measureFont(font, offscreenCanvas);\n // fallback in case UA disallow canvas data extraction\n if (fontProperties.fontSize === 0) {\n fontProperties.fontSize = fontSize;\n fontProperties.ascent = fontSize;\n }\n var context = this.runtime.offscreenCanvasCreator.getOrCreateContext(offscreenCanvas);\n context.font = font;\n\n // no overflowing by default\n parsedStyle.isOverflowing = false;\n var outputText = wordWrap ? this.wordWrap(text, parsedStyle, offscreenCanvas) : text;\n var lines = outputText.split(/(?:\\r\\n|\\r|\\n)/);\n var lineWidths = new Array(lines.length);\n var maxLineWidth = 0;\n\n // account for textPath\n if (textPath) {\n textPath.getTotalLength();\n\n // const startingPoint = textPath.getPoint(0);\n\n for (var i = 0; i < lines.length; i++) {\n context.measureText(lines[i]).width + (lines[i].length - 1) * letterSpacing;\n // for (\n // let i = reverse ? lines[0].length - 1 : 0;\n // reverse ? i >= 0 : i < lines[0].length;\n // reverse ? i-- : i++\n // ) {\n // graphemeInfo = lineBounds[i];\n // if (positionInPath > totalPathLength) {\n // positionInPath %= totalPathLength;\n // } else if (positionInPath < 0) {\n // positionInPath += totalPathLength;\n // }\n // // it would probably much faster to send all the grapheme position for a line\n // // and calculate path position/angle at once.\n // this.setGraphemeOnPath(\n // positionInPath,\n // graphemeInfo,\n // startingPoint\n // );\n // positionInPath += graphemeInfo.kernedWidth;\n // }\n }\n } else {\n for (var _i = 0; _i < lines.length; _i++) {\n // char width + letterSpacing\n var _lineWidth = context.measureText(lines[_i]).width + (lines[_i].length - 1) * letterSpacing;\n lineWidths[_i] = _lineWidth;\n maxLineWidth = Math.max(maxLineWidth, _lineWidth);\n }\n var _width = maxLineWidth + lineWidth;\n\n // if (dropShadow) {\n // width += dropShadowDistance;\n // }\n var lineHeight = strokeHeight || fontProperties.fontSize + lineWidth;\n var height = Math.max(lineHeight, fontProperties.fontSize + lineWidth) + (lines.length - 1) * (lineHeight + leading);\n // if (dropShadow) {\n // height += dropShadowDistance;\n // }\n lineHeight += leading;\n\n // handle vertical text baseline\n var offsetY = 0;\n if (textBaseline === 'middle') {\n offsetY = -height / 2;\n } else if (textBaseline === 'bottom' || textBaseline === 'alphabetic' || textBaseline === 'ideographic') {\n offsetY = -height;\n } else if (textBaseline === 'top' || textBaseline === 'hanging') {\n offsetY = 0;\n }\n return {\n font: font,\n width: _width,\n height: height,\n lines: lines,\n lineWidths: lineWidths,\n lineHeight: lineHeight,\n maxLineWidth: maxLineWidth,\n fontProperties: fontProperties,\n lineMetrics: lineWidths.map(function (width, i) {\n var offsetX = 0;\n // handle horizontal text align\n if (textAlign === 'center' || textAlign === 'middle') {\n offsetX -= width / 2;\n } else if (textAlign === 'right' || textAlign === 'end') {\n offsetX -= width;\n }\n return new Rectangle(offsetX - lineWidth / 2, offsetY + i * lineHeight, width + lineWidth, lineHeight);\n })\n };\n }\n }\n }, {\n key: \"wordWrap\",\n value: function wordWrap(text, parsedStyle, offscreenCanvas) {\n var _this2 = this;\n var chars = Array.from(text);\n if (chars.length === 0) {\n return '';\n }\n var self = this;\n var _parsedStyle$wordWrap2 = parsedStyle.wordWrapWidth,\n wordWrapWidth = _parsedStyle$wordWrap2 === void 0 ? 0 : _parsedStyle$wordWrap2,\n _parsedStyle$letterSp2 = parsedStyle.letterSpacing,\n letterSpacing = _parsedStyle$letterSp2 === void 0 ? 0 : _parsedStyle$letterSp2,\n _parsedStyle$maxLines = parsedStyle.maxLines,\n maxLines = _parsedStyle$maxLines === void 0 ? Infinity : _parsedStyle$maxLines,\n textOverflow = parsedStyle.textOverflow;\n var context = this.runtime.offscreenCanvasCreator.getOrCreateContext(offscreenCanvas);\n var maxWidth = wordWrapWidth + letterSpacing;\n var ellipsis = '';\n if (textOverflow === 'ellipsis') {\n ellipsis = '...';\n } else if (textOverflow && textOverflow !== 'clip') {\n ellipsis = textOverflow;\n }\n var lines = [''];\n var currentLineIndex = 0;\n var currentLineWidth = 0;\n // @see https://github.com/antvis/G/issues/1932\n var prevLineLastCharIndex = -1;\n\n // --- 优化核心 ---\n // 1. 获取或创建当前字体对应的字符缓存\n var font = toFontString(parsedStyle);\n var charCache = this.charWidthCache.get(font);\n if (!charCache) {\n charCache = new LRU(500);\n this.charWidthCache.put(font, charCache);\n }\n\n // 2. calcWidth 现在直接使用持久化的 charCache\n var calcWidth = function calcWidth(_char2) {\n return _this2.getFromCache(_char2, letterSpacing, charCache, context);\n };\n var ellipsisWidth = calcWidth(ellipsis);\n\n /**\n * Find text fragments that will take up as much of the given line width as possible when rendered.\n *\n * @see https://github.com/antvis/G/issues/1833\n *\n * @param lineTxt - Current line of text\n * @param txtLastCharIndex - The index of the last character of the current line in the entire text\n * @param txtStartCharIndex - The index of the start character of the current line in the entire text\n */\n function findCharIndexClosestWidthThreshold(lineTxt, txtLastCharIndex, txtStartCharIndex, widthThreshold) {\n while (calcWidth(lineTxt) < widthThreshold && txtLastCharIndex < chars.length - 1) {\n if (self.isNewline(chars[txtLastCharIndex + 1])) {\n break;\n }\n txtLastCharIndex += 1;\n lineTxt += chars[txtLastCharIndex];\n }\n while (calcWidth(lineTxt) > widthThreshold &&\n // @see https://github.com/antvis/G/issues/1932\n txtLastCharIndex >= txtStartCharIndex) {\n txtLastCharIndex -= 1;\n lineTxt = lineTxt.slice(0, -1);\n }\n return {\n lineTxt: lineTxt,\n txtLastCharIndex: txtLastCharIndex\n };\n }\n function appendEllipsis(lineIndex, textCharIndex) {\n // If there is not enough space to display the string itself, it is clipped.\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow#values\n if (ellipsisWidth <= 0 || ellipsisWidth > maxWidth) {\n return;\n }\n if (!lines[lineIndex]) {\n lines[lineIndex] = ellipsis;\n return;\n }\n var result = findCharIndexClosestWidthThreshold(lines[lineIndex], textCharIndex, prevLineLastCharIndex + 1, maxWidth - ellipsisWidth);\n lines[lineIndex] = result.lineTxt + ellipsis;\n }\n for (var i = 0; i < chars.length; i++) {\n var _char3 = chars[i];\n var prevChar = chars[i - 1];\n var nextChar = chars[i + 1];\n var charWidth = calcWidth(_char3);\n if (this.isNewline(_char3)) {\n // exceed maxLines, break immediately\n if (currentLineIndex + 1 >= maxLines) {\n if (i < chars.length - 1) {\n appendEllipsis(currentLineIndex, i - 1);\n }\n parsedStyle.isOverflowing = true;\n break;\n }\n prevLineLastCharIndex = i - 1;\n currentLineIndex += 1;\n currentLineWidth = 0;\n lines[currentLineIndex] = '';\n continue;\n }\n\n // If char width exceeds max width, no need to continue\n if (charWidth > maxWidth) {\n appendEllipsis(currentLineIndex, i - 1);\n parsedStyle.isOverflowing = true;\n break;\n }\n if (currentLineWidth > 0 && currentLineWidth + charWidth > maxWidth) {\n var result = findCharIndexClosestWidthThreshold(lines[currentLineIndex], i - 1, prevLineLastCharIndex + 1, maxWidth);\n if (result.txtLastCharIndex !== i - 1) {\n lines[currentLineIndex] = result.lineTxt;\n if (result.txtLastCharIndex === chars.length - 1) {\n break;\n }\n i = result.txtLastCharIndex + 1;\n _char3 = chars[i];\n prevChar = chars[i - 1];\n nextChar = chars[i + 1];\n charWidth = calcWidth(_char3);\n }\n if (currentLineIndex + 1 >= maxLines) {\n appendEllipsis(currentLineIndex, i - 1);\n parsedStyle.isOverflowing = true;\n break;\n }\n prevLineLastCharIndex = i - 1;\n currentLineIndex += 1;\n currentLineWidth = 0;\n lines[currentLineIndex] = '';\n if (this.isBreakingSpace(_char3)) {\n continue;\n }\n if (!this.canBreakInLastChar(_char3)) {\n lines = this.trimToBreakable(lines);\n currentLineWidth = this.sumTextWidthByCache(lines[currentLineIndex] || '', calcWidth);\n }\n if (this.shouldBreakByKinsokuShorui(_char3, nextChar)) {\n lines = this.trimByKinsokuShorui(lines);\n currentLineWidth += calcWidth(prevChar || '');\n }\n }\n currentLineWidth += charWidth;\n lines[currentLineIndex] += _char3;\n }\n return lines.join('\\n');\n }\n }, {\n key: \"isBreakingSpace\",\n value: function isBreakingSpace(_char4) {\n if (typeof _char4 !== 'string') {\n return false;\n }\n return TEXT_METRICS.BreakingSpaces.indexOf(_char4.charCodeAt(0)) >= 0;\n }\n }, {\n key: \"isNewline\",\n value: function isNewline(_char5) {\n if (typeof _char5 !== 'string') {\n return false;\n }\n return TEXT_METRICS.Newlines.indexOf(_char5.charCodeAt(0)) >= 0;\n }\n }, {\n key: \"trimToBreakable\",\n value: function trimToBreakable(prev) {\n var next = _toConsumableArray(prev);\n var prevLine = next[next.length - 2];\n var index = this.findBreakableIndex(prevLine);\n if (index === -1 || !prevLine) return next;\n var trimmedChar = prevLine.slice(index, index + 1);\n var isTrimmedWithSpace = this.isBreakingSpace(trimmedChar);\n var trimFrom = index + 1;\n var trimTo = index + (isTrimmedWithSpace ? 0 : 1);\n next[next.length - 1] += prevLine.slice(trimFrom, prevLine.length);\n next[next.length - 2] = prevLine.slice(0, trimTo);\n return next;\n }\n }, {\n key: \"canBreakInLastChar\",\n value: function canBreakInLastChar(_char6) {\n if (_char6 && LATIN_REGEX.test(_char6)) return false;\n return true;\n }\n }, {\n key: \"sumTextWidthByCache\",\n value: function sumTextWidthByCache(text, calcWidthWithCache) {\n return text.split('').reduce(function (sum, c) {\n return sum + calcWidthWithCache(c);\n }, 0);\n }\n }, {\n key: \"findBreakableIndex\",\n value: function findBreakableIndex(line) {\n for (var i = line.length - 1; i >= 0; i--) {\n if (!LATIN_REGEX.test(line[i])) return i;\n }\n return -1;\n }\n }, {\n key: \"getFromCache\",\n value: function getFromCache(key, letterSpacing, cache, context) {\n var width = cache.get(key);\n if (typeof width !== 'number') {\n var spacing = key.length * letterSpacing;\n var metrics = context.measureText(key);\n width = metrics.width + spacing;\n cache.put(key, width);\n }\n return width;\n }\n }, {\n key: \"clearCache\",\n value: function clearCache() {\n this.fontMetricsCache = {};\n this.charWidthCache.clear();\n }\n }]);\n}();\n\nvar runtime = {};\n/**\n * Replace with IoC container\n */\nvar geometryUpdaterFactory = function (_ref) {\n var rectUpdater = new RectUpdater();\n var polylineUpdater = new PolylineUpdater();\n return _ref = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ref, Shape.FRAGMENT, null), Shape.CIRCLE, new CircleUpdater()), Shape.ELLIPSE, new EllipseUpdater()), Shape.RECT, rectUpdater), Shape.IMAGE, rectUpdater), Shape.GROUP, new GroupUpdater()), Shape.LINE, new LineUpdater()), Shape.TEXT, new TextUpdater(runtime)), Shape.POLYLINE, polylineUpdater), Shape.POLYGON, polylineUpdater), _defineProperty(_defineProperty(_defineProperty(_ref, Shape.PATH, new PathUpdater()), Shape.HTML, new HTMLUpdater()), Shape.MESH, null);\n}();\nvar CSSPropertySyntaxFactory = function (_ref2) {\n var color = new CSSPropertyColor();\n var length = new CSSPropertyLengthOrPercentage();\n return _ref2 = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ref2, PropertySyntax.PERCENTAGE, null), PropertySyntax.NUMBER, new CSSPropertyNumber()), PropertySyntax.ANGLE, new CSSPropertyAngle()), PropertySyntax.DEFINED_PATH, new CSSPropertyClipPath()), PropertySyntax.PAINT, color), PropertySyntax.COLOR, color), PropertySyntax.FILTER, new CSSPropertyFilter()), PropertySyntax.LENGTH, length), PropertySyntax.LENGTH_PERCENTAGE, length), PropertySyntax.LENGTH_PERCENTAGE_12, new CSSPropertyLengthOrPercentage12()), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ref2, PropertySyntax.LENGTH_PERCENTAGE_14, new CSSPropertyLengthOrPercentage14()), PropertySyntax.COORDINATE, new CSSPropertyLengthOrPercentage()), PropertySyntax.OFFSET_DISTANCE, new CSSPropertyOffsetDistance()), PropertySyntax.OPACITY_VALUE, new CSSPropertyOpacity()), PropertySyntax.PATH, new CSSPropertyPath()), PropertySyntax.LIST_OF_POINTS, new CSSPropertyPoints()), PropertySyntax.SHADOW_BLUR, new CSSPropertyShadowBlur()), PropertySyntax.TEXT, new CSSPropertyText()), PropertySyntax.TEXT_TRANSFORM, new CSSPropertyTextTransform()), PropertySyntax.TRANSFORM, new CSSPropertyTransform()), _defineProperty(_defineProperty(_defineProperty(_ref2, PropertySyntax.TRANSFORM_ORIGIN, new CSSPropertyTransformOrigin()), PropertySyntax.Z_INDEX, new CSSPropertyZIndex()), PropertySyntax.MARKER, new CSSPropertyMarker());\n}();\nvar getGlobalThis = function getGlobalThis() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n // @ts-ignore\n if (typeof global !== 'undefined') return global;\n return {};\n // [!] Error: The 'this' keyword is equivalent to 'undefined' at the top level of an ES module, and has been rewritten\n // @see https://rollupjs.org/troubleshooting/#error-this-is-undefined\n // if (typeof this !== 'undefined') return this;\n};\n\n/**\n * Camera\n * `camera-api` will provide an advanced implementation\n */\nruntime.CameraContribution = Camera;\n\n/**\n * `web-animations-api` will provide an AnimationTimeline\n */\nruntime.AnimationTimeline = null;\nruntime.EasingFunction = null;\nruntime.offscreenCanvasCreator = new OffscreenCanvasCreator();\nruntime.sceneGraphSelector = new DefaultSceneGraphSelector();\nruntime.sceneGraphService = new DefaultSceneGraphService(runtime);\nruntime.textService = new TextService(runtime);\nruntime.geometryUpdaterFactory = geometryUpdaterFactory;\nruntime.CSSPropertySyntaxFactory = CSSPropertySyntaxFactory;\nruntime.styleValueRegistry = new DefaultStyleValueRegistry(runtime);\nruntime.layoutRegistry = null;\nruntime.globalThis = getGlobalThis();\nruntime.enableStyleSyntax = true;\nruntime.enableSizeAttenuation = false;\n\nvar entityCounter = 0;\nfunction resetEntityCounter() {\n entityCounter = 0;\n}\nvar insertedEvent = new MutationEvent(ElementEvent.INSERTED, null, '', '', '', 0, '', '');\nvar removedEvent = new MutationEvent(ElementEvent.REMOVED, null, '', '', '', 0, '', '');\nvar destroyEvent = new CustomEvent(ElementEvent.DESTROY);\n\n/**\n * Has following capabilities:\n * * Node insert/remove, eg. appendChild, removeChild, remove...\n * * Query eg. querySelector getElementById...\n * * Animation\n */\nvar Element = /*#__PURE__*/function (_Node) {\n function Element() {\n var _this;\n _classCallCheck(this, Element);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Element, [].concat(args));\n /**\n * Unique id.\n */\n _this.entity = entityCounter++;\n _this.transformable = {\n dirtyFlag: false,\n localDirtyFlag: false,\n localPosition: [0, 0, 0],\n localRotation: [0, 0, 0, 1],\n localScale: [1, 1, 1],\n localTransform: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],\n localSkew: [0, 0],\n position: [0, 0, 0],\n rotation: [0, 0, 0, 1],\n scaling: [1, 1, 1],\n worldTransform: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],\n origin: [0, 0, 0]\n };\n _this.renderable = {\n bounds: undefined,\n boundsDirty: true,\n renderBounds: undefined,\n renderBoundsDirty: true,\n dirtyRenderBounds: undefined,\n dirty: false\n };\n _this.geometry = {\n contentBounds: undefined,\n renderBounds: undefined,\n dirty: true\n };\n _this.cullable = {\n strategy: Strategy.Standard,\n visibilityPlaneMask: -1,\n visible: true,\n enable: true\n };\n _this.sortable = {\n dirty: false,\n sorted: undefined,\n renderOrder: 0,\n dirtyChildren: [],\n dirtyReason: undefined\n };\n /**\n * https://developer.mozilla.org/zh-CN/docs/Web/API/Element/namespaceURI\n */\n _this.namespaceURI = 'g';\n _this.scrollLeft = 0;\n _this.scrollTop = 0;\n /**\n * We don't support border now\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/clientTop\n */\n _this.clientTop = 0;\n _this.clientLeft = 0;\n /**\n * compatible with `style`\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style\n */\n _this.style = {};\n _this.computedStyle = {};\n /**\n * Renderers will use these used values.\n */\n _this.parsedStyle = {\n // opacity: '',\n // fillOpacity: '',\n // strokeOpacity: '',\n // transformOrigin: '',\n // visibility: '',\n // pointerEvents: '',\n // lineWidth: '',\n // lineCap: '',\n // lineJoin: '',\n // increasedLineWidthForHitTesting: '',\n // fontSize: '',\n // fontFamily: '',\n // fontStyle: '',\n // fontWeight: '',\n // fontVariant: '',\n // textAlign: '',\n // textBaseline: '',\n // textTransform: '',\n };\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/attributes\n */\n _this.attributes = {};\n return _this;\n }\n _inherits(Element, _Node);\n return _createClass(Element, [{\n key: \"dirty\",\n value:\n /**\n * Marks the element as dirty, indicating it needs re-rendering or relayout.\n *\n * @param styleFlag - Whether to update style state (default: true).\n * When true, sets `renderable.dirty` to true.\n * @param layoutFlag - Optional. When provided, updates layout-related dirty flags:\n * - `renderable.boundsDirty`\n * - `renderable.renderBoundsDirty`\n * - `geometry.dirty`\n */\n function dirty() {\n var styleFlag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var layoutFlag = arguments.length > 1 ? arguments[1] : undefined;\n this.renderable.dirty = styleFlag;\n if (layoutFlag !== undefined) {\n this.renderable.boundsDirty = layoutFlag;\n this.renderable.renderBoundsDirty = layoutFlag;\n this.geometry.dirty = layoutFlag;\n }\n }\n }, {\n key: \"className\",\n get:\n /**\n * used with `getElementById()`\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/id\n */\n\n /**\n * used in `getElementsByClassName`\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n */\n function get() {\n // @ts-ignore\n return this.getAttribute('class') || '';\n },\n set: function set(className) {\n this.setAttribute('class', className);\n }\n\n /**\n * used in `getElementsByName`\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByName\n */\n }, {\n key: \"classList\",\n get:\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/classList\n */\n function get() {\n return this.className.split(' ').filter(function (c) {\n return c !== '';\n });\n }\n }, {\n key: \"tagName\",\n get: function get() {\n return this.nodeName;\n }\n }, {\n key: \"children\",\n get: function get() {\n return this.childNodes;\n }\n }, {\n key: \"childElementCount\",\n get: function get() {\n return this.childNodes.length;\n }\n }, {\n key: \"firstElementChild\",\n get: function get() {\n return this.firstChild;\n }\n }, {\n key: \"lastElementChild\",\n get: function get() {\n return this.lastChild;\n }\n }, {\n key: \"parentElement\",\n get: function get() {\n return this.parentNode;\n }\n }, {\n key: \"nextSibling\",\n get: function get() {\n if (this.parentNode) {\n var index = this.parentNode.childNodes.indexOf(this);\n return this.parentNode.childNodes[index + 1] || null;\n }\n return null;\n }\n }, {\n key: \"previousSibling\",\n get: function get() {\n if (this.parentNode) {\n var index = this.parentNode.childNodes.indexOf(this);\n return this.parentNode.childNodes[index - 1] || null;\n }\n return null;\n }\n }, {\n key: \"cloneNode\",\n value: function cloneNode(deep) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"appendChild\",\n value: function appendChild(child, index) {\n var _this$ownerDocument;\n if (child.destroyed) {\n throw new Error(ERROR_MSG_APPEND_DESTROYED_ELEMENT);\n }\n runtime.sceneGraphService.attach(child, this, index);\n if ((_this$ownerDocument = this.ownerDocument) !== null && _this$ownerDocument !== void 0 && _this$ownerDocument.defaultView) {\n if (!isInFragment(this) && child.nodeName === Shape.FRAGMENT) {\n this.ownerDocument.defaultView.mountFragment(child);\n } else {\n this.ownerDocument.defaultView.mountChildren(child);\n }\n }\n\n // @ts-ignore\n if (this.isMutationObserved) {\n insertedEvent.relatedNode = this;\n child.dispatchEvent(insertedEvent);\n }\n return child;\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(newChild, refChild) {\n if (!refChild) {\n this.appendChild(newChild);\n } else {\n if (newChild.parentElement) {\n newChild.parentElement.removeChild(newChild);\n }\n var index = this.childNodes.indexOf(refChild);\n if (index === -1) {\n this.appendChild(newChild);\n } else {\n this.appendChild(newChild, index);\n }\n }\n return newChild;\n }\n }, {\n key: \"replaceChild\",\n value: function replaceChild(newChild, oldChild) {\n var index = this.childNodes.indexOf(oldChild);\n this.removeChild(oldChild);\n this.appendChild(newChild, index);\n return oldChild;\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(child) {\n var _this$ownerDocument2, _child$ownerDocument;\n var enableCancelEventPropagation = ((_this$ownerDocument2 = this.ownerDocument) === null || _this$ownerDocument2 === void 0 || (_this$ownerDocument2 = _this$ownerDocument2.defaultView) === null || _this$ownerDocument2 === void 0 || (_this$ownerDocument2 = _this$ownerDocument2.getConfig().future) === null || _this$ownerDocument2 === void 0 ? void 0 : _this$ownerDocument2.experimentalCancelEventPropagation) === true;\n\n // should emit on itself before detach\n removedEvent.relatedNode = this;\n child.dispatchEvent(removedEvent, enableCancelEventPropagation, enableCancelEventPropagation);\n if ((_child$ownerDocument = child.ownerDocument) !== null && _child$ownerDocument !== void 0 && _child$ownerDocument.defaultView) {\n child.ownerDocument.defaultView.unmountChildren(child);\n }\n\n // remove from scene graph\n runtime.sceneGraphService.detach(child);\n return child;\n }\n\n /**\n * Remove all children which can be appended to its original parent later again.\n */\n }, {\n key: \"removeChildren\",\n value: function removeChildren() {\n for (var i = this.childNodes.length - 1; i >= 0; i--) {\n var child = this.childNodes[i];\n this.removeChild(child);\n }\n }\n\n /**\n * Recursively destroy all children which can not be appended to its original parent later again.\n */\n }, {\n key: \"destroyChildren\",\n value: function destroyChildren() {\n for (var i = this.childNodes.length - 1; i >= 0; i--) {\n var child = this.childNodes[i];\n if (child.childNodes.length > 0) {\n child.destroyChildren();\n }\n child.destroy();\n }\n }\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n */\n }, {\n key: \"matches\",\n value: function matches(selector) {\n return runtime.sceneGraphService.matches(selector, this);\n }\n }, {\n key: \"getElementById\",\n value: function getElementById(id) {\n return runtime.sceneGraphService.querySelector(\"#\".concat(id), this);\n }\n }, {\n key: \"getElementsByName\",\n value: function getElementsByName(name) {\n return runtime.sceneGraphService.querySelectorAll(\"[name=\\\"\".concat(name, \"\\\"]\"), this);\n }\n }, {\n key: \"getElementsByClassName\",\n value: function getElementsByClassName(className) {\n return runtime.sceneGraphService.querySelectorAll(\".\".concat(className), this);\n }\n }, {\n key: \"getElementsByTagName\",\n value: function getElementsByTagName(tagName) {\n return runtime.sceneGraphService.querySelectorAll(tagName, this);\n }\n }, {\n key: \"querySelector\",\n value: function querySelector(selectors) {\n return runtime.sceneGraphService.querySelector(selectors, this);\n }\n }, {\n key: \"querySelectorAll\",\n value: function querySelectorAll(selectors) {\n return runtime.sceneGraphService.querySelectorAll(selectors, this);\n }\n\n /**\n * should traverses the element and its parents (heading toward the document root)\n * until it finds a node that matches the specified CSS selector.\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/closest\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#polyfill\n */\n }, {\n key: \"closest\",\n value: function closest(selectors) {\n var el = this;\n do {\n if (runtime.sceneGraphService.matches(selectors, el)) return el;\n el = el.parentElement;\n } while (el !== null);\n return null;\n }\n\n /**\n * search in scene group, but should not include itself\n */\n }, {\n key: \"find\",\n value: function find(filter) {\n var _this2 = this;\n var target = null;\n this.forEach(function (object) {\n if (object !== _this2 && filter(object)) {\n target = object;\n return false;\n }\n return true;\n });\n return target;\n }\n }, {\n key: \"findAll\",\n value: function findAll(filter) {\n var _this3 = this;\n var objects = [];\n this.forEach(function (object) {\n if (object !== _this3 && filter(object)) {\n objects.push(object);\n }\n });\n return objects;\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/after\n */\n }, {\n key: \"after\",\n value: function after() {\n var _this4 = this;\n if (this.parentNode) {\n var index = this.parentNode.childNodes.indexOf(this);\n for (var _len2 = arguments.length, nodes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nodes[_key2] = arguments[_key2];\n }\n nodes.forEach(function (node, i) {\n var _this4$parentNode;\n return (_this4$parentNode = _this4.parentNode) === null || _this4$parentNode === void 0 ? void 0 : _this4$parentNode.appendChild(node, index + i + 1);\n });\n }\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/before\n */\n }, {\n key: \"before\",\n value: function before() {\n if (this.parentNode) {\n var _ref;\n var index = this.parentNode.childNodes.indexOf(this);\n for (var _len3 = arguments.length, nodes = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nodes[_key3] = arguments[_key3];\n }\n var first = nodes[0],\n rest = _arrayLikeToArray(nodes).slice(1);\n this.parentNode.appendChild(first, index);\n (_ref = first).after.apply(_ref, _toConsumableArray(rest));\n }\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/replaceWith\n */\n }, {\n key: \"replaceWith\",\n value: function replaceWith() {\n this.after.apply(this, arguments);\n this.remove();\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/append\n */\n }, {\n key: \"append\",\n value: function append() {\n var _this5 = this;\n for (var _len4 = arguments.length, nodes = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n nodes[_key4] = arguments[_key4];\n }\n nodes.forEach(function (node) {\n return _this5.appendChild(node);\n });\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/prepend\n */\n }, {\n key: \"prepend\",\n value: function prepend() {\n var _this6 = this;\n for (var _len5 = arguments.length, nodes = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n nodes[_key5] = arguments[_key5];\n }\n nodes.forEach(function (node, i) {\n return _this6.appendChild(node, i);\n });\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/replaceChildren\n */\n }, {\n key: \"replaceChildren\",\n value: function replaceChildren() {\n while (this.childNodes.length && this.firstChild) {\n this.removeChild(this.firstChild);\n }\n this.append.apply(this, arguments);\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/remove\n */\n }, {\n key: \"remove\",\n value: function remove() {\n if (this.parentNode) {\n return this.parentNode.removeChild(this);\n }\n return this;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this$ownerDocument3;\n var enableCancelEventPropagation = ((_this$ownerDocument3 = this.ownerDocument) === null || _this$ownerDocument3 === void 0 || (_this$ownerDocument3 = _this$ownerDocument3.defaultView) === null || _this$ownerDocument3 === void 0 || (_this$ownerDocument3 = _this$ownerDocument3.getConfig().future) === null || _this$ownerDocument3 === void 0 ? void 0 : _this$ownerDocument3.experimentalCancelEventPropagation) === true;\n\n // fix https://github.com/antvis/G/issues/1813\n this.destroyChildren();\n\n // destroy itself before remove\n this.dispatchEvent(destroyEvent, enableCancelEventPropagation, enableCancelEventPropagation);\n\n // remove from scenegraph first\n this.remove();\n\n // remove event listeners\n this.emitter.removeAllListeners();\n this.destroyed = true;\n }\n }, {\n key: \"getGeometryBounds\",\n value: function getGeometryBounds() {\n var render = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return runtime.sceneGraphService.getGeometryBounds(this, render);\n }\n\n /**\n * get geometry bounds in world space, not accounting for children\n */\n }, {\n key: \"getTransformedGeometryBounds\",\n value: function getTransformedGeometryBounds() {\n var render = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return runtime.sceneGraphService.getTransformedGeometryBounds(this, render);\n }\n\n /**\n * get bounds in world space, account for children\n */\n }, {\n key: \"getBounds\",\n value: function getBounds() {\n return runtime.sceneGraphService.getBounds(this);\n }\n }, {\n key: \"getRenderBounds\",\n value: function getRenderBounds() {\n return runtime.sceneGraphService.getBounds(this, true);\n }\n\n /**\n * get bounds in local space, account for children\n */\n }, {\n key: \"getLocalBounds\",\n value: function getLocalBounds() {\n return runtime.sceneGraphService.getLocalBounds(this);\n }\n\n /**\n * account for context's bounds in client space,\n * but not accounting for children\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect\n */\n }, {\n key: \"getBoundingClientRect\",\n value: function getBoundingClientRect() {\n return runtime.sceneGraphService.getBoundingClientRect(this);\n }\n\n /**\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getClientRects\n */\n }, {\n key: \"getClientRects\",\n value: function getClientRects() {\n return [this.getBoundingClientRect()];\n }\n }, {\n key: \"computedStyleMap\",\n value:\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/computedStyleMap\n * eg. circle.computedStyleMap().get('fill');\n */\n function computedStyleMap() {\n return new Map(Object.entries(this.computedStyle));\n }\n }, {\n key: \"getAttributeNames\",\n value:\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNames\n */\n function getAttributeNames() {\n return Object.keys(this.attributes);\n }\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute\n */\n }, {\n key: \"getAttribute\",\n value: function getAttribute(name) {\n // @see https://github.com/antvis/G/issues/1267\n if (typeof name === 'symbol') {\n return undefined;\n }\n var value = this.attributes[name];\n if (value === undefined) {\n // if the given attribute does not exist, the value returned will either be null or \"\"\n return value;\n }\n return value;\n }\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/hasAttribute\n */\n }, {\n key: \"hasAttribute\",\n value: function hasAttribute(qualifiedName) {\n return this.getAttributeNames().includes(qualifiedName);\n }\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/hasAttributes\n */\n }, {\n key: \"hasAttributes\",\n value: function hasAttributes() {\n return !!this.getAttributeNames().length;\n }\n\n /**\n * should use removeAttribute() instead of setting the attribute value to null either directly or using setAttribute(). Many attributes will not behave as expected if you set them to null.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute\n */\n }, {\n key: \"removeAttribute\",\n value: function removeAttribute(attributeName) {\n this.setAttribute(attributeName, null);\n delete this.attributes[attributeName];\n }\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute\n */\n }, {\n key: \"setAttribute\",\n value: function setAttribute(attributeName, value) {\n this.attributes[attributeName] = value;\n }\n }, {\n key: \"getAttributeNS\",\n value: function getAttributeNS(namespace, localName) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"getAttributeNode\",\n value: function getAttributeNode(qualifiedName) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"getAttributeNodeNS\",\n value: function getAttributeNodeNS(namespace, localName) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"hasAttributeNS\",\n value: function hasAttributeNS(namespace, localName) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"removeAttributeNS\",\n value: function removeAttributeNS(namespace, localName) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"removeAttributeNode\",\n value: function removeAttributeNode(attr) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"setAttributeNS\",\n value: function setAttributeNS(namespace, qualifiedName, value) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"setAttributeNode\",\n value: function setAttributeNode(attr) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"setAttributeNodeNS\",\n value: function setAttributeNodeNS(attr) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"toggleAttribute\",\n value: function toggleAttribute(qualifiedName, force) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }]);\n}(Node);\n\nfunction isDisplayObject(value) {\n return !!(value !== null && value !== void 0 && value.nodeName);\n}\nvar Proxy = runtime.globalThis.Proxy ? runtime.globalThis.Proxy : function () {};\nvar attrModifiedEvent = new MutationEvent(ElementEvent.ATTR_MODIFIED, null, null, null, null, MutationEvent.MODIFICATION, null, null);\nvar $vec3 = vec3.create();\nvar $quat = quat$1.create();\n\n/**\n * prototype chains: DisplayObject -> Element -> Node -> EventTarget\n *\n * mixins: Animatable, Transformable, Visible\n * @see https://github.com/tannerntannern/ts-mixer/blob/master/README.md#mixing-generic-classes\n *\n * Provide abilities in scene graph, such as:\n * * transform `translate/rotate/scale`\n * * add/remove child\n * * visibility and z-index\n *\n * Those abilities are implemented with those components: `Transform/Sortable/Visible`.\n *\n * Emit following events:\n * * init\n * * destroy\n * * attributeChanged\n */\nvar DisplayObject = /*#__PURE__*/function (_Element) {\n function DisplayObject(config) {\n var _this;\n _classCallCheck(this, DisplayObject);\n _this = _callSuper(this, DisplayObject);\n\n // assign name, id to config\n // eg. group.get('name')\n _this.isCustomElement = false;\n _this.isMutationObserved = false;\n /**\n * push to active animations after calling `animate()`\n */\n _this.activeAnimations = [];\n _this.config = config;\n\n // init scene graph node\n _this.id = config.id || '';\n _this.name = config.name || '';\n if (config.className || config[\"class\"]) {\n _this.className = config.className || config[\"class\"];\n }\n _this.nodeName = config.type || Shape.GROUP;\n if (config.initialParsedStyle) {\n Object.assign(_this.parsedStyle, config.initialParsedStyle);\n }\n\n // start to process attributes\n _this.initAttributes(config.style);\n if (runtime.enableStyleSyntax) {\n _this.style = new Proxy(\n // @ts-ignore\n {\n // ...this.attributes,\n setProperty: function setProperty(propertyName, value\n // priority?: string,\n ) {\n _this.setAttribute(propertyName, value);\n },\n getPropertyValue: function getPropertyValue(propertyName) {\n return _this.getAttribute(propertyName);\n },\n removeProperty: function removeProperty(propertyName) {\n _this.removeAttribute(propertyName);\n },\n item: function item() {\n return '';\n }\n }, {\n get: function get(target, name) {\n if (target[name] !== undefined) {\n // if (name in target) {\n return target[name];\n }\n return _this.getAttribute(name);\n },\n set: function set(_, prop, value) {\n _this.setAttribute(prop, value);\n return true;\n }\n });\n }\n return _this;\n }\n _inherits(DisplayObject, _Element);\n return _createClass(DisplayObject, [{\n key: \"destroy\",\n value: function destroy() {\n _superPropGet(DisplayObject, \"destroy\", this, 3)([]);\n\n // stop all active animations\n this.getAnimations().forEach(function (animation) {\n animation.cancel();\n });\n }\n }, {\n key: \"cloneNode\",\n value: function cloneNode(deep, customCloneFunc) {\n var clonedStyle = _objectSpread({}, this.attributes);\n for (var attributeName in clonedStyle) {\n var attribute = clonedStyle[attributeName];\n\n // @see https://github.com/antvis/G/issues/1095\n if (isDisplayObject(attribute) &&\n // share the same clipPath if possible\n attributeName !== 'clipPath' && attributeName !== 'offsetPath' && attributeName !== 'textPath') {\n clonedStyle[attributeName] = attribute.cloneNode(deep);\n }\n // TODO: clone other type\n if (customCloneFunc) {\n clonedStyle[attributeName] = customCloneFunc(attributeName, attribute);\n }\n }\n var cloned = new this.constructor(_objectSpread(_objectSpread({}, this.config), {}, {\n style: clonedStyle\n }));\n\n // apply transform\n cloned.setLocalTransform(this.getLocalTransform());\n if (deep) {\n this.children.forEach(function (child) {\n // skip marker\n if (!child.style.isMarker) {\n var clonedChild = child.cloneNode(deep);\n cloned.appendChild(clonedChild);\n }\n });\n }\n return cloned;\n }\n }, {\n key: \"initAttributes\",\n value: function initAttributes() {\n var attributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = {\n forceUpdateGeometry: true\n };\n runtime.styleValueRegistry.processProperties(this, attributes, options);\n\n // redraw at next frame\n this.dirty();\n }\n }, {\n key: \"setAttribute\",\n value: function setAttribute(name, value) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var memoize = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n // ignore undefined value\n if (isUndefined(value)) {\n return;\n }\n if (force || value !== this.attributes[name]) {\n this.internalSetAttribute(name, value, {\n memoize: memoize\n });\n _superPropGet(DisplayObject, \"setAttribute\", this, 3)([name, value]);\n }\n }\n\n /**\n * batch update attributes without attributeChangedCallback, for performance\n * use with caution\n * @param attributes\n * @param parseOptions\n * @experimental\n */\n }, {\n key: \"setAttributes\",\n value: function setAttributes(attributes) {\n var parseOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _parseOptions$skipDis = parseOptions.skipDispatchAttrModifiedEvent,\n skipDispatchAttrModifiedEvent = _parseOptions$skipDis === void 0 ? false : _parseOptions$skipDis;\n var oldAttributes;\n var oldParsedValues;\n if (!skipDispatchAttrModifiedEvent) {\n oldAttributes = _objectSpread({}, this.attributes);\n oldParsedValues = _objectSpread({}, this.parsedStyle);\n }\n runtime.styleValueRegistry.processProperties(this, attributes, parseOptions);\n // redraw at next frame\n this.dirty();\n if (!skipDispatchAttrModifiedEvent) {\n for (var key in attributes) {\n this.dispatchAttrModifiedEvent(key, oldAttributes[key], attributes[key], oldParsedValues[key]);\n }\n }\n }\n\n /**\n * called when attributes get changed or initialized\n */\n }, {\n key: \"internalSetAttribute\",\n value: function internalSetAttribute(name, value) {\n var parseOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var oldValue = this.attributes[name];\n var oldParsedValue = this.parsedStyle[name];\n runtime.styleValueRegistry.processProperties(this, _defineProperty({}, name, value), parseOptions);\n\n // redraw at next frame\n this.dirty();\n\n // return;\n\n this.dispatchAttrModifiedEvent(name, oldValue, value, oldParsedValue);\n }\n }, {\n key: \"dispatchAttrModifiedEvent\",\n value: function dispatchAttrModifiedEvent(name, oldValue, value, oldParsedValue) {\n var newParsedValue = this.parsedStyle[name];\n if (this.isConnected) {\n attrModifiedEvent.relatedNode = this;\n attrModifiedEvent.prevValue = oldValue;\n attrModifiedEvent.newValue = value;\n attrModifiedEvent.attrName = name;\n attrModifiedEvent.prevParsedValue = oldParsedValue;\n attrModifiedEvent.newParsedValue = newParsedValue;\n if (this.isMutationObserved) {\n this.dispatchEvent(attrModifiedEvent);\n } else {\n var _this$ownerDocument$d;\n var enableCancelEventPropagation = ((_this$ownerDocument$d = this.ownerDocument.defaultView.getConfig().future) === null || _this$ownerDocument$d === void 0 ? void 0 : _this$ownerDocument$d.experimentalCancelEventPropagation) === true;\n attrModifiedEvent.target = this;\n this.ownerDocument.defaultView.dispatchEvent(attrModifiedEvent, true, enableCancelEventPropagation);\n }\n }\n if (this.isCustomElement && this.isConnected || !this.isCustomElement) {\n var _attributeChangedCall, _ref;\n (_attributeChangedCall = (_ref = this).attributeChangedCallback) === null || _attributeChangedCall === void 0 || _attributeChangedCall.call(_ref, name, oldValue, value, oldParsedValue, newParsedValue);\n }\n }\n\n // #region transformable\n /**\n * returns different values than getBoundingClientRect(), as the latter returns value relative to the viewport\n * @see https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement/getBBox\n *\n * FIXME: It is worth noting that getBBox responds to original untransformed values of a drawn object.\n * @see https://www.w3.org/Graphics/SVG/IG/resources/svgprimer.html#getBBox\n */\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n var aabb = this.getBounds();\n var _aabb$getMin = aabb.getMin(),\n _aabb$getMin2 = _slicedToArray(_aabb$getMin, 2),\n left = _aabb$getMin2[0],\n top = _aabb$getMin2[1];\n var _aabb$getMax = aabb.getMax(),\n _aabb$getMax2 = _slicedToArray(_aabb$getMax, 2),\n right = _aabb$getMax2[0],\n bottom = _aabb$getMax2[1];\n return new Rectangle(left, top, right - left, bottom - top);\n }\n }, {\n key: \"setOrigin\",\n value: function setOrigin(position) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n runtime.sceneGraphService.setOrigin(this, createVec3(position, y, z, false));\n return this;\n }\n }, {\n key: \"getOrigin\",\n value: function getOrigin() {\n return runtime.sceneGraphService.getOrigin(this);\n }\n\n /**\n * set position in world space\n */\n }, {\n key: \"setPosition\",\n value: function setPosition(position) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n runtime.sceneGraphService.setPosition(this, createVec3(position, y, z, false));\n return this;\n }\n\n /**\n * set position in local space\n */\n }, {\n key: \"setLocalPosition\",\n value: function setLocalPosition(position) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n runtime.sceneGraphService.setLocalPosition(this, createVec3(position, y, z, false));\n return this;\n }\n\n /**\n * translate in world space\n */\n }, {\n key: \"translate\",\n value: function translate(position) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n runtime.sceneGraphService.translate(this, createVec3(position, y, z, false));\n return this;\n }\n\n /**\n * translate in local space\n */\n }, {\n key: \"translateLocal\",\n value: function translateLocal(position) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n runtime.sceneGraphService.translateLocal(this, createVec3(position, y, z, false));\n return this;\n }\n }, {\n key: \"getPosition\",\n value: function getPosition() {\n return runtime.sceneGraphService.getPosition(this);\n }\n }, {\n key: \"getLocalPosition\",\n value: function getLocalPosition() {\n return runtime.sceneGraphService.getLocalPosition(this);\n }\n\n /**\n * compatible with G 3.0\n *\n * scaling in local space\n * scale(10) = scale(10, 10, 10)\n *\n * we can't set scale in world space\n */\n }, {\n key: \"scale\",\n value: function scale(scaling, y, z) {\n return this.scaleLocal(scaling, y, z);\n }\n }, {\n key: \"scaleLocal\",\n value: function scaleLocal(scaling, y, z) {\n if (typeof scaling === 'number') {\n y = y || scaling;\n z = z || scaling;\n scaling = createVec3(scaling, y, z, false);\n }\n runtime.sceneGraphService.scaleLocal(this, scaling);\n return this;\n }\n\n /**\n * set scaling in local space\n */\n }, {\n key: \"setLocalScale\",\n value: function setLocalScale(scaling, y, z) {\n if (typeof scaling === 'number') {\n y = y || scaling;\n z = z || scaling;\n scaling = createVec3(scaling, y, z, false);\n }\n runtime.sceneGraphService.setLocalScale(this, scaling);\n return this;\n }\n\n /**\n * get scaling in local space\n */\n }, {\n key: \"getLocalScale\",\n value: function getLocalScale() {\n return runtime.sceneGraphService.getLocalScale(this);\n }\n\n /**\n * get scaling in world space\n */\n }, {\n key: \"getScale\",\n value: function getScale() {\n return runtime.sceneGraphService.getScale(this);\n }\n\n /**\n * only return degrees of Z axis in world space\n */\n }, {\n key: \"getEulerAngles\",\n value: function getEulerAngles() {\n var _getEuler = getEuler($vec3, runtime.sceneGraphService.getWorldTransform(this)),\n _getEuler2 = _slicedToArray(_getEuler, 3),\n ez = _getEuler2[2];\n return rad2deg(ez);\n }\n\n /**\n * only return degrees of Z axis in local space\n */\n }, {\n key: \"getLocalEulerAngles\",\n value: function getLocalEulerAngles() {\n var _getEuler3 = getEuler($vec3, runtime.sceneGraphService.getLocalRotation(this)),\n _getEuler4 = _slicedToArray(_getEuler3, 3),\n ez = _getEuler4[2];\n return rad2deg(ez);\n }\n\n /**\n * set euler angles(degrees) in world space\n */\n }, {\n key: \"setEulerAngles\",\n value: function setEulerAngles(z) {\n runtime.sceneGraphService.setEulerAngles(this, 0, 0, z);\n return this;\n }\n\n /**\n * set euler angles(degrees) in local space\n */\n }, {\n key: \"setLocalEulerAngles\",\n value: function setLocalEulerAngles(z) {\n runtime.sceneGraphService.setLocalEulerAngles(this, 0, 0, z);\n return this;\n }\n }, {\n key: \"rotateLocal\",\n value: function rotateLocal(x, y, z) {\n if (isNil(y) && isNil(z)) {\n runtime.sceneGraphService.rotateLocal(this, 0, 0, x);\n } else {\n runtime.sceneGraphService.rotateLocal(this, x, y, z);\n }\n return this;\n }\n }, {\n key: \"rotate\",\n value: function rotate(x, y, z) {\n if (isNil(y) && isNil(z)) {\n runtime.sceneGraphService.rotate(this, 0, 0, x);\n } else {\n runtime.sceneGraphService.rotate(this, x, y, z);\n }\n return this;\n }\n }, {\n key: \"setRotation\",\n value: function setRotation(rotation, y, z, w) {\n runtime.sceneGraphService.setRotation(this, rotation, y, z, w);\n return this;\n }\n }, {\n key: \"setLocalRotation\",\n value: function setLocalRotation(rotation, y, z, w) {\n runtime.sceneGraphService.setLocalRotation(this, rotation, y, z, w);\n return this;\n }\n }, {\n key: \"setLocalSkew\",\n value: function setLocalSkew(skew, y) {\n runtime.sceneGraphService.setLocalSkew(this, skew, y);\n return this;\n }\n }, {\n key: \"getRotation\",\n value: function getRotation() {\n return runtime.sceneGraphService.getRotation(this);\n }\n }, {\n key: \"getLocalRotation\",\n value: function getLocalRotation() {\n return runtime.sceneGraphService.getLocalRotation(this);\n }\n }, {\n key: \"getLocalSkew\",\n value: function getLocalSkew() {\n return runtime.sceneGraphService.getLocalSkew(this);\n }\n }, {\n key: \"getLocalTransform\",\n value: function getLocalTransform() {\n return runtime.sceneGraphService.getLocalTransform(this);\n }\n }, {\n key: \"getWorldTransform\",\n value: function getWorldTransform() {\n return runtime.sceneGraphService.getWorldTransform(this);\n }\n }, {\n key: \"setLocalTransform\",\n value: function setLocalTransform(transform) {\n runtime.sceneGraphService.setLocalTransform(this, transform);\n return this;\n }\n }, {\n key: \"resetLocalTransform\",\n value: function resetLocalTransform() {\n runtime.sceneGraphService.resetLocalTransform(this);\n }\n // #endregion transformable\n\n // #region animatable\n /**\n * returns an array of all Animation objects affecting this element\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/getAnimations\n */\n }, {\n key: \"getAnimations\",\n value: function getAnimations() {\n return this.activeAnimations;\n }\n /**\n * create an animation with WAAPI\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/animate\n */\n }, {\n key: \"animate\",\n value: function animate(keyframes, options) {\n var _this$ownerDocument;\n var timeline = (_this$ownerDocument = this.ownerDocument) === null || _this$ownerDocument === void 0 ? void 0 : _this$ownerDocument.timeline;\n if (timeline) {\n return timeline.play(this, keyframes, options);\n }\n return null;\n }\n // #endregion animatable\n\n // #region visible\n /**\n * shortcut for Used value of `visibility`\n */\n }, {\n key: \"isVisible\",\n value: function isVisible() {\n var _this$parsedStyle;\n return ((_this$parsedStyle = this.parsedStyle) === null || _this$parsedStyle === void 0 ? void 0 : _this$parsedStyle.visibility) !== 'hidden';\n }\n }, {\n key: \"interactive\",\n get: function get() {\n return this.isInteractive();\n },\n set: function set(b) {\n this.style.pointerEvents = b ? 'auto' : 'none';\n }\n }, {\n key: \"isInteractive\",\n value: function isInteractive() {\n var _this$parsedStyle2;\n return ((_this$parsedStyle2 = this.parsedStyle) === null || _this$parsedStyle2 === void 0 ? void 0 : _this$parsedStyle2.pointerEvents) !== 'none';\n }\n }, {\n key: \"isCulled\",\n value: function isCulled() {\n return !!(this.cullable && this.cullable.enable && !this.cullable.visible);\n }\n\n /**\n * bring to front in current group\n */\n }, {\n key: \"toFront\",\n value: function toFront() {\n if (this.parentNode) {\n this.style.zIndex = Math.max.apply(Math, _toConsumableArray(this.parentNode.children.map(function (child) {\n return Number(child.style.zIndex);\n }))) + 1;\n }\n return this;\n }\n\n /**\n * send to back in current group\n */\n }, {\n key: \"toBack\",\n value: function toBack() {\n if (this.parentNode) {\n this.style.zIndex = Math.min.apply(Math, _toConsumableArray(this.parentNode.children.map(function (child) {\n return Number(child.style.zIndex);\n }))) - 1;\n }\n return this;\n }\n // #endregion visible\n\n // #region deprecated\n\n /**\n * compatible with G 3.0\n * @alias object.config\n * @deprecated\n */\n }, {\n key: \"getConfig\",\n value: function getConfig() {\n return this.config;\n }\n\n /**\n * @alias style\n * @example\n * circle.style.r = 10;\n * const r = circle.style;\n * @deprecated\n */\n }, {\n key: \"attr\",\n value: function attr() {\n var _this2 = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var name = args[0],\n value = args[1];\n if (!name) {\n return this.attributes;\n }\n if (isObject(name)) {\n Object.keys(name).forEach(function (key) {\n _this2.setAttribute(key, name[key]);\n });\n return this;\n }\n if (args.length === 2) {\n this.setAttribute(name, value);\n return this;\n }\n return this.attributes[name];\n }\n\n /**\n * return 3x3 matrix in world space\n * @deprecated\n */\n }, {\n key: \"getMatrix\",\n value: function getMatrix(transformMat4) {\n var transform = transformMat4 || this.getWorldTransform();\n var _mat4$getTranslation = mat4.getTranslation($vec3, transform),\n _mat4$getTranslation2 = _slicedToArray(_mat4$getTranslation, 2),\n tx = _mat4$getTranslation2[0],\n ty = _mat4$getTranslation2[1];\n var _mat4$getScaling = mat4.getScaling($vec3, transform),\n _mat4$getScaling2 = _slicedToArray(_mat4$getScaling, 2),\n sx = _mat4$getScaling2[0],\n sy = _mat4$getScaling2[1];\n var rotation = mat4.getRotation($quat, transform);\n var _getEuler5 = getEuler($vec3, rotation),\n _getEuler6 = _slicedToArray(_getEuler5, 3),\n eux = _getEuler6[0],\n euz = _getEuler6[2];\n // gimbal lock at 90 degrees\n return fromRotationTranslationScale(eux || euz, tx, ty, sx, sy);\n }\n\n /**\n * return 3x3 matrix in local space\n * @deprecated\n */\n }, {\n key: \"getLocalMatrix\",\n value: function getLocalMatrix() {\n return this.getMatrix(this.getLocalTransform());\n }\n\n /**\n * set 3x3 matrix in world space\n * @deprecated\n */\n }, {\n key: \"setMatrix\",\n value: function setMatrix(mat) {\n var _decompose = decompose(mat),\n _decompose2 = _slicedToArray(_decompose, 5),\n tx = _decompose2[0],\n ty = _decompose2[1],\n scalingX = _decompose2[2],\n scalingY = _decompose2[3],\n angle = _decompose2[4];\n this.setEulerAngles(angle).setPosition(tx, ty).setLocalScale(scalingX, scalingY);\n }\n\n /**\n * set 3x3 matrix in local space\n * @deprecated\n */\n }, {\n key: \"setLocalMatrix\",\n value: function setLocalMatrix(mat) {\n var _decompose3 = decompose(mat),\n _decompose4 = _slicedToArray(_decompose3, 5),\n tx = _decompose4[0],\n ty = _decompose4[1],\n scalingX = _decompose4[2],\n scalingY = _decompose4[3],\n angle = _decompose4[4];\n this.setLocalEulerAngles(angle).setLocalPosition(tx, ty).setLocalScale(scalingX, scalingY);\n }\n\n /**\n * Use `visibility: visible` instead.\n * @deprecated\n */\n }, {\n key: \"show\",\n value: function show() {\n this.forEach(function (object) {\n object.style.visibility = 'visible';\n });\n }\n\n /**\n * Use `visibility: hidden` instead.\n * @deprecated\n */\n }, {\n key: \"hide\",\n value: function hide() {\n this.forEach(function (object) {\n object.style.visibility = 'hidden';\n });\n }\n\n /**\n * Use `childElementCount` instead.\n * @deprecated\n */\n }, {\n key: \"getCount\",\n value: function getCount() {\n return this.childElementCount;\n }\n\n /**\n * Use `parentElement` instead.\n * @deprecated\n */\n }, {\n key: \"getParent\",\n value: function getParent() {\n return this.parentElement;\n }\n\n /**\n * Use `children` instead.\n * @deprecated\n */\n }, {\n key: \"getChildren\",\n value: function getChildren() {\n return this.children;\n }\n\n /**\n * Use `firstElementChild` instead.\n * @deprecated\n */\n }, {\n key: \"getFirst\",\n value: function getFirst() {\n return this.firstElementChild;\n }\n\n /**\n * Use `lastElementChild` instead.\n * @deprecated\n */\n }, {\n key: \"getLast\",\n value: function getLast() {\n return this.lastElementChild;\n }\n\n /**\n * Use `this.children[index]` instead.\n * @deprecated\n */\n }, {\n key: \"getChildByIndex\",\n value: function getChildByIndex(index) {\n return this.children[index] || null;\n }\n\n /**\n * Use `appendChild` instead.\n * @deprecated\n */\n }, {\n key: \"add\",\n value: function add(child, index) {\n return this.appendChild(child, index);\n }\n\n /**\n * @deprecated\n */\n }, {\n key: \"set\",\n value: function set(name, value) {\n // @ts-ignore\n this.config[name] = value;\n }\n\n /**\n * @deprecated\n */\n }, {\n key: \"get\",\n value: function get(name) {\n return this.config[name];\n }\n\n /**\n * Use `setPosition` instead.\n * @deprecated\n */\n }, {\n key: \"moveTo\",\n value: function moveTo(position) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n this.setPosition(position, y, z);\n return this;\n }\n\n /**\n * Use `setPosition` instead.\n * @deprecated\n */\n }, {\n key: \"move\",\n value: function move(position) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n this.setPosition(position, y, z);\n return this;\n }\n\n /**\n * Use `this.style.zIndex` instead.\n * @deprecated\n */\n }, {\n key: \"setZIndex\",\n value: function setZIndex(zIndex) {\n this.style.zIndex = zIndex;\n return this;\n }\n\n // #endregion deprecated\n }]);\n}(Element);\nDisplayObject.PARSED_STYLE_LIST = new Set(['class', 'className', 'clipPath', 'cursor', 'display', 'draggable', 'droppable', 'fill', 'fillOpacity', 'fillRule', 'filter', 'increasedLineWidthForHitTesting', 'lineCap', 'lineDash', 'lineDashOffset', 'lineJoin', 'lineWidth', 'miterLimit', 'hitArea', 'offsetDistance', 'offsetPath', 'offsetX', 'offsetY', 'opacity', 'pointerEvents', 'shadowColor', 'shadowType', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'stroke', 'strokeOpacity', 'strokeWidth', 'strokeLinecap', 'strokeLineJoin', 'strokeDasharray', 'strokeDashoffset', 'transform', 'transformOrigin', 'textTransform', 'visibility', 'zIndex']);\n\nvar Circle = /*#__PURE__*/function (_DisplayObject) {\n function Circle() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Circle);\n return _callSuper(this, Circle, [_objectSpread({\n type: Shape.CIRCLE\n }, options)]);\n }\n _inherits(Circle, _DisplayObject);\n return _createClass(Circle);\n}(DisplayObject);\nCircle.PARSED_STYLE_LIST = new Set([].concat(_toConsumableArray(DisplayObject.PARSED_STYLE_LIST), ['cx', 'cy', 'cz', 'r', 'isBillboard', 'isSizeAttenuation']));\n\nvar _excluded$6 = [\"style\"];\n/**\n * shadow root\n * @see https://yuque.antfin-inc.com/antv/czqvg5/pgqipg\n */\nvar CustomElement = /*#__PURE__*/function (_DisplayObject) {\n // private shadowNodes: DisplayObject[] = [];\n\n function CustomElement() {\n var _this;\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n style = _ref.style,\n rest = _objectWithoutProperties(_ref, _excluded$6);\n _classCallCheck(this, CustomElement);\n _this = _callSuper(this, CustomElement, [_objectSpread({\n style: style\n }, rest)]);\n _this.isCustomElement = true;\n return _this;\n }\n\n /**\n * fired after element insert into DOM tree\n */\n _inherits(CustomElement, _DisplayObject);\n return _createClass(CustomElement);\n}(DisplayObject);\nCustomElement.PARSED_STYLE_LIST = new Set(['class', 'className', 'clipPath', 'cursor', 'draggable', 'droppable', 'opacity', 'pointerEvents', 'transform', 'transformOrigin', 'zIndex', 'visibility']);\n\nvar Ellipse = /*#__PURE__*/function (_DisplayObject) {\n function Ellipse() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Ellipse);\n return _callSuper(this, Ellipse, [_objectSpread({\n type: Shape.ELLIPSE\n }, options)]);\n }\n _inherits(Ellipse, _DisplayObject);\n return _createClass(Ellipse);\n}(DisplayObject);\nEllipse.PARSED_STYLE_LIST = new Set([].concat(_toConsumableArray(DisplayObject.PARSED_STYLE_LIST), ['cx', 'cy', 'cz', 'rx', 'ry', 'isBillboard', 'isSizeAttenuation']));\n\n/**\n * 节点片段,用于包裹多个节点并批量操作\n *\n * 向 Fragment 或者根节点为 Fragment 的节点添加子节点时,不会触发渲染和事件。\n *\n * 当 Fragment 被挂载到 Canvas 中的节点时,其子节点会一次性被渲染,并触发合并事件。\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment\n */\nvar Fragment = /*#__PURE__*/function (_DisplayObject) {\n function Fragment() {\n _classCallCheck(this, Fragment);\n return _callSuper(this, Fragment, [{\n type: Shape.FRAGMENT\n }]);\n }\n _inherits(Fragment, _DisplayObject);\n return _createClass(Fragment);\n}(DisplayObject);\nFragment.PARSED_STYLE_LIST = new Set(['class', 'className']);\n\n/**\n * its attributes are inherited by its children.\n * @see https://developer.mozilla.org/zh-CN/docs/Web/SVG/Element/g\n * \n * @example\n * <g fill=\"white\" stroke=\"green\" stroke-width=\"5\">\n <circle cx=\"40\" cy=\"40\" r=\"25\" />\n <circle cx=\"60\" cy=\"60\" r=\"25\" />\n </g>\n */\nvar Group = /*#__PURE__*/function (_DisplayObject) {\n function Group() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Group);\n return _callSuper(this, Group, [_objectSpread({\n type: Shape.GROUP\n }, options)]);\n }\n _inherits(Group, _DisplayObject);\n return _createClass(Group);\n}(DisplayObject);\nGroup.PARSED_STYLE_LIST = new Set(['class', 'className', 'clipPath', 'cursor', 'draggable', 'droppable', 'opacity', 'pointerEvents', 'transform', 'transformOrigin', 'zIndex', 'visibility']);\n\nvar _excluded$5 = [\"style\"];\n/**\n * HTML container\n * @see https://github.com/pmndrs/drei#html\n */\nvar HTML = /*#__PURE__*/function (_DisplayObject) {\n function HTML() {\n var _this;\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n style = _ref.style,\n rest = _objectWithoutProperties(_ref, _excluded$5);\n _classCallCheck(this, HTML);\n _this = _callSuper(this, HTML, [_objectSpread({\n type: Shape.HTML,\n style: style\n }, rest)]);\n _this.cullable.enable = false;\n return _this;\n }\n\n /**\n * return wrapper HTMLElement\n * * <div> in g-webgl/canvas\n * * <foreignObject> in g-svg\n */\n _inherits(HTML, _DisplayObject);\n return _createClass(HTML, [{\n key: \"getDomElement\",\n value: function getDomElement() {\n return this.parsedStyle.$el;\n }\n\n /**\n * override with $el.getBoundingClientRect\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect\n *\n * ! The calculation logic of the html element should be consistent with that of the canvas element\n */\n // getBoundingClientRect(): Rectangle {\n // if (this.parsedStyle.$el) {\n // return this.parsedStyle.$el.getBoundingClientRect();\n // } else {\n // const { x, y, width, height } = this.parsedStyle;\n // return new Rectangle(x, y, width, height);\n // }\n // }\n }, {\n key: \"getClientRects\",\n value: function getClientRects() {\n return [this.getBoundingClientRect()];\n }\n\n // getBounds() {\n // const clientRect = this.getBoundingClientRect();\n // // calc context's offset\n // // @ts-ignore\n // const canvasRect = this.ownerDocument?.defaultView\n // ?.getContextService()\n // .getBoundingClientRect();\n\n // const aabb = new AABB();\n // const minX = clientRect.left - (canvasRect?.left || 0);\n // const minY = clientRect.top - (canvasRect?.top || 0);\n // aabb.setMinMax(\n // [minX, minY, 0],\n // [minX + clientRect.width, minY + clientRect.height, 0],\n // );\n // return aabb;\n // }\n }, {\n key: \"getLocalBounds\",\n value: function getLocalBounds() {\n if (this.parentNode) {\n var parentInvert = mat4.invert(mat4.create(), this.parentNode.getWorldTransform());\n var bounds = this.getBounds();\n if (!AABB.isEmpty(bounds)) {\n var localBounds = new AABB();\n localBounds.setFromTransformedAABB(bounds, parentInvert);\n return localBounds;\n }\n }\n return this.getBounds();\n }\n }]);\n}(DisplayObject);\nHTML.PARSED_STYLE_LIST = new Set([].concat(_toConsumableArray(DisplayObject.PARSED_STYLE_LIST), ['x', 'y', '$el', 'innerHTML', 'width', 'height']));\n\nvar Image = /*#__PURE__*/function (_DisplayObject) {\n function Image() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Image);\n return _callSuper(this, Image, [_objectSpread({\n type: Shape.IMAGE\n }, options)]);\n }\n _inherits(Image, _DisplayObject);\n return _createClass(Image);\n}(DisplayObject);\nImage.PARSED_STYLE_LIST = new Set([].concat(_toConsumableArray(DisplayObject.PARSED_STYLE_LIST), ['x', 'y', 'z', 'src', 'width', 'height', 'isBillboard', 'billboardRotation', 'isSizeAttenuation', 'keepAspectRatio']));\n\nvar _excluded$4 = [\"style\"];\n/**\n * Create a line connecting two points.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Element/line\n *\n * Also support for using marker.\n */\nvar Line = /*#__PURE__*/function (_DisplayObject) {\n function Line() {\n var _this;\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n style = _ref.style,\n rest = _objectWithoutProperties(_ref, _excluded$4);\n _classCallCheck(this, Line);\n _this = _callSuper(this, Line, [_objectSpread({\n type: Shape.LINE,\n style: _objectSpread({\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n z1: 0,\n z2: 0\n }, style)\n }, rest)]);\n _this.markerStartAngle = 0;\n _this.markerEndAngle = 0;\n var _this$parsedStyle = _this.parsedStyle,\n markerStart = _this$parsedStyle.markerStart,\n markerEnd = _this$parsedStyle.markerEnd;\n if (markerStart && isDisplayObject(markerStart)) {\n _this.markerStartAngle = markerStart.getLocalEulerAngles();\n _this.appendChild(markerStart);\n }\n if (markerEnd && isDisplayObject(markerEnd)) {\n _this.markerEndAngle = markerEnd.getLocalEulerAngles();\n _this.appendChild(markerEnd);\n }\n _this.transformMarker(true);\n _this.transformMarker(false);\n return _this;\n }\n _inherits(Line, _DisplayObject);\n return _createClass(Line, [{\n key: \"attributeChangedCallback\",\n value: function attributeChangedCallback(attrName, oldValue, newValue, prevParsedValue, newParsedValue) {\n if (attrName === 'x1' || attrName === 'y1' || attrName === 'x2' || attrName === 'y2' || attrName === 'markerStartOffset' || attrName === 'markerEndOffset') {\n this.transformMarker(true);\n this.transformMarker(false);\n } else if (attrName === 'markerStart') {\n if (prevParsedValue && isDisplayObject(prevParsedValue)) {\n this.markerStartAngle = 0;\n prevParsedValue.remove();\n }\n\n // CSSKeyword 'unset'\n if (newParsedValue && isDisplayObject(newParsedValue)) {\n this.markerStartAngle = newParsedValue.getLocalEulerAngles();\n this.appendChild(newParsedValue);\n this.transformMarker(true);\n }\n } else if (attrName === 'markerEnd') {\n if (prevParsedValue && isDisplayObject(prevParsedValue)) {\n this.markerEndAngle = 0;\n prevParsedValue.remove();\n }\n if (newParsedValue && isDisplayObject(newParsedValue)) {\n this.markerEndAngle = newParsedValue.getLocalEulerAngles();\n this.appendChild(newParsedValue);\n this.transformMarker(false);\n }\n }\n }\n }, {\n key: \"transformMarker\",\n value: function transformMarker(isStart) {\n var _this$parsedStyle2 = this.parsedStyle,\n markerStart = _this$parsedStyle2.markerStart,\n markerEnd = _this$parsedStyle2.markerEnd,\n markerStartOffset = _this$parsedStyle2.markerStartOffset,\n markerEndOffset = _this$parsedStyle2.markerEndOffset,\n x1 = _this$parsedStyle2.x1,\n x2 = _this$parsedStyle2.x2,\n y1 = _this$parsedStyle2.y1,\n y2 = _this$parsedStyle2.y2;\n var marker = isStart ? markerStart : markerEnd;\n if (!marker || !isDisplayObject(marker)) {\n return;\n }\n var rad = 0;\n var x;\n var y;\n var ox;\n var oy;\n var offset;\n var originalAngle;\n if (isStart) {\n ox = x1;\n oy = y1;\n x = x2 - x1;\n y = y2 - y1;\n offset = markerStartOffset || 0;\n originalAngle = this.markerStartAngle;\n } else {\n ox = x2;\n oy = y2;\n x = x1 - x2;\n y = y1 - y2;\n offset = markerEndOffset || 0;\n originalAngle = this.markerEndAngle;\n }\n rad = Math.atan2(y, x);\n\n // account for markerOffset\n marker.setLocalEulerAngles(rad * 180 / Math.PI + originalAngle);\n marker.setLocalPosition(ox + Math.cos(rad) * offset, oy + Math.sin(rad) * offset);\n }\n }, {\n key: \"getPoint\",\n value: function getPoint(ratio) {\n var inWorldSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n // TODO: account for z1/z2 in 3D line\n var _this$parsedStyle3 = this.parsedStyle,\n x1 = _this$parsedStyle3.x1,\n y1 = _this$parsedStyle3.y1,\n x2 = _this$parsedStyle3.x2,\n y2 = _this$parsedStyle3.y2;\n var _linePointAt = linePointAt(x1, y1, x2, y2, ratio),\n x = _linePointAt.x,\n y = _linePointAt.y;\n var transformed = vec3.transformMat4(vec3.create(), vec3.fromValues(x, y, 0), inWorldSpace ? this.getWorldTransform() : this.getLocalTransform());\n\n // apply local transformation\n return new Point(transformed[0], transformed[1]);\n }\n }, {\n key: \"getPointAtLength\",\n value: function getPointAtLength(distance) {\n var inWorldSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return this.getPoint(distance / this.getTotalLength(), inWorldSpace);\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n // TODO: account for z1/z2 in 3D line\n var _this$parsedStyle4 = this.parsedStyle,\n x1 = _this$parsedStyle4.x1,\n y1 = _this$parsedStyle4.y1,\n x2 = _this$parsedStyle4.x2,\n y2 = _this$parsedStyle4.y2;\n return lineLength(x1, y1, x2, y2);\n }\n }]);\n}(DisplayObject);\nLine.PARSED_STYLE_LIST = new Set([].concat(_toConsumableArray(DisplayObject.PARSED_STYLE_LIST), ['x1', 'y1', 'x2', 'y2', 'z1', 'z2', 'isBillboard', 'isSizeAttenuation', 'markerStart', 'markerEnd', 'markerStartOffset', 'markerEndOffset']));\n\nvar _excluded$3 = [\"style\"];\nvar Path = /*#__PURE__*/function (_DisplayObject) {\n function Path() {\n var _this;\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n style = _ref.style,\n rest = _objectWithoutProperties(_ref, _excluded$3);\n _classCallCheck(this, Path);\n _this = _callSuper(this, Path, [_objectSpread({\n type: Shape.PATH,\n style: style,\n initialParsedStyle: {\n miterLimit: 4,\n d: _objectSpread({}, EMPTY_PARSED_PATH)\n }\n }, rest)]);\n _this.markerStartAngle = 0;\n _this.markerEndAngle = 0;\n /**\n * markers placed at the mid\n */\n _this.markerMidList = [];\n var _this$parsedStyle = _this.parsedStyle,\n markerStart = _this$parsedStyle.markerStart,\n markerEnd = _this$parsedStyle.markerEnd,\n markerMid = _this$parsedStyle.markerMid;\n if (markerStart && isDisplayObject(markerStart)) {\n _this.markerStartAngle = markerStart.getLocalEulerAngles();\n _this.appendChild(markerStart);\n }\n if (markerMid && isDisplayObject(markerMid)) {\n _this.placeMarkerMid(markerMid);\n }\n if (markerEnd && isDisplayObject(markerEnd)) {\n _this.markerEndAngle = markerEnd.getLocalEulerAngles();\n _this.appendChild(markerEnd);\n }\n _this.transformMarker(true);\n _this.transformMarker(false);\n return _this;\n }\n _inherits(Path, _DisplayObject);\n return _createClass(Path, [{\n key: \"attributeChangedCallback\",\n value: function attributeChangedCallback(attrName, oldValue, newValue, prevParsedValue, newParsedValue) {\n if (attrName === 'd') {\n // recalc markers\n this.transformMarker(true);\n this.transformMarker(false);\n this.placeMarkerMid(this.parsedStyle.markerMid);\n } else if (attrName === 'markerStartOffset' || attrName === 'markerEndOffset') {\n this.transformMarker(true);\n this.transformMarker(false);\n } else if (attrName === 'markerStart') {\n if (prevParsedValue && isDisplayObject(prevParsedValue)) {\n this.markerStartAngle = 0;\n prevParsedValue.remove();\n }\n\n // CSSKeyword 'unset'\n if (newParsedValue && isDisplayObject(newParsedValue)) {\n this.markerStartAngle = newParsedValue.getLocalEulerAngles();\n this.appendChild(newParsedValue);\n this.transformMarker(true);\n }\n } else if (attrName === 'markerEnd') {\n if (prevParsedValue && isDisplayObject(prevParsedValue)) {\n this.markerEndAngle = 0;\n prevParsedValue.remove();\n }\n if (newParsedValue && isDisplayObject(newParsedValue)) {\n this.markerEndAngle = newParsedValue.getLocalEulerAngles();\n this.appendChild(newParsedValue);\n this.transformMarker(false);\n }\n } else if (attrName === 'markerMid') {\n this.placeMarkerMid(newParsedValue);\n }\n }\n }, {\n key: \"transformMarker\",\n value: function transformMarker(isStart) {\n var _this$parsedStyle2 = this.parsedStyle,\n markerStart = _this$parsedStyle2.markerStart,\n markerEnd = _this$parsedStyle2.markerEnd,\n markerStartOffset = _this$parsedStyle2.markerStartOffset,\n markerEndOffset = _this$parsedStyle2.markerEndOffset;\n var marker = isStart ? markerStart : markerEnd;\n if (!marker || !isDisplayObject(marker)) {\n return;\n }\n var rad = 0;\n var x;\n var y;\n var ox;\n var oy;\n var offset;\n var originalAngle;\n if (isStart) {\n var _this$getStartTangent = this.getStartTangent(),\n _this$getStartTangent2 = _slicedToArray(_this$getStartTangent, 2),\n p1 = _this$getStartTangent2[0],\n p2 = _this$getStartTangent2[1];\n ox = p2[0];\n oy = p2[1];\n x = p1[0] - p2[0];\n y = p1[1] - p2[1];\n offset = markerStartOffset || 0;\n originalAngle = this.markerStartAngle;\n } else {\n var _this$getEndTangent = this.getEndTangent(),\n _this$getEndTangent2 = _slicedToArray(_this$getEndTangent, 2),\n _p = _this$getEndTangent2[0],\n _p2 = _this$getEndTangent2[1];\n ox = _p2[0];\n oy = _p2[1];\n x = _p[0] - _p2[0];\n y = _p[1] - _p2[1];\n offset = markerEndOffset || 0;\n originalAngle = this.markerEndAngle;\n }\n rad = Math.atan2(y, x);\n\n // account for markerOffset\n marker.setLocalEulerAngles(rad * 180 / Math.PI + originalAngle);\n marker.setLocalPosition(ox + Math.cos(rad) * offset, oy + Math.sin(rad) * offset);\n }\n }, {\n key: \"placeMarkerMid\",\n value: function placeMarkerMid(marker) {\n var segments = this.parsedStyle.d.segments;\n // clear all existed markers\n this.markerMidList.forEach(function (marker) {\n marker.remove();\n });\n if (marker && isDisplayObject(marker)) {\n for (var i = 1; i < segments.length - 1; i++) {\n var _segments$i$currentPo = _slicedToArray(segments[i].currentPoint, 2),\n ox = _segments$i$currentPo[0],\n oy = _segments$i$currentPo[1];\n var cloned = i === 1 ? marker : marker.cloneNode(true);\n this.markerMidList.push(cloned);\n this.appendChild(cloned);\n cloned.setLocalPosition(ox, oy);\n // TODO: orient of marker\n }\n }\n }\n\n /**\n * Returns the total length of the path.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/SVGGeometryElement/getTotalLength\n */\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n return getOrCalculatePathTotalLength(this);\n }\n\n /**\n * Returns the point at a given distance along the path.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/SVGGeometryElement/getPointAtLength\n */\n }, {\n key: \"getPointAtLength\",\n value: function getPointAtLength$1(distance) {\n var inWorldSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var absolutePath = this.parsedStyle.d.absolutePath;\n var _getPointAtLength2 = getPointAtLength(absolutePath, distance),\n x = _getPointAtLength2.x,\n y = _getPointAtLength2.y;\n var transformed = vec3.transformMat4(vec3.create(), vec3.fromValues(x, y, 0), inWorldSpace ? this.getWorldTransform() : this.getLocalTransform());\n\n // apply local transformation\n return new Point(transformed[0], transformed[1]);\n }\n\n /**\n * Returns the point at a given ratio of the total length in path.\n */\n }, {\n key: \"getPoint\",\n value: function getPoint(ratio) {\n var inWorldSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return this.getPointAtLength(ratio * getOrCalculatePathTotalLength(this), inWorldSpace);\n }\n\n /**\n * Get start tangent vector\n */\n }, {\n key: \"getStartTangent\",\n value: function getStartTangent() {\n var segments = this.parsedStyle.d.segments;\n var result = [];\n if (segments.length > 1) {\n var startPoint = segments[0].currentPoint;\n var endPoint = segments[1].currentPoint;\n var tangent = segments[1].startTangent;\n result = [];\n if (tangent) {\n result.push([startPoint[0] - tangent[0], startPoint[1] - tangent[1]]);\n result.push([startPoint[0], startPoint[1]]);\n } else {\n result.push([endPoint[0], endPoint[1]]);\n result.push([startPoint[0], startPoint[1]]);\n }\n }\n return result;\n }\n\n /**\n * Get end tangent vector\n */\n }, {\n key: \"getEndTangent\",\n value: function getEndTangent() {\n var segments = this.parsedStyle.d.segments;\n var length = segments.length;\n var result = [];\n if (length > 1) {\n var startPoint = segments[length - 2].currentPoint;\n var endPoint = segments[length - 1].currentPoint;\n var tangent = segments[length - 1].endTangent;\n result = [];\n if (tangent) {\n result.push([endPoint[0] - tangent[0], endPoint[1] - tangent[1]]);\n result.push([endPoint[0], endPoint[1]]);\n } else {\n result.push([startPoint[0], startPoint[1]]);\n result.push([endPoint[0], endPoint[1]]);\n }\n }\n return result;\n }\n }]);\n}(DisplayObject);\nPath.PARSED_STYLE_LIST = new Set([].concat(_toConsumableArray(DisplayObject.PARSED_STYLE_LIST), ['d', 'markerStart', 'markerMid', 'markerEnd', 'markerStartOffset', 'markerEndOffset', 'isBillboard', 'isSizeAttenuation']));\n\nvar _excluded$2 = [\"style\"];\nvar Polygon = /*#__PURE__*/function (_DisplayObject) {\n function Polygon() {\n var _this;\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n style = _ref.style,\n rest = _objectWithoutProperties(_ref, _excluded$2);\n _classCallCheck(this, Polygon);\n _this = _callSuper(this, Polygon, [_objectSpread({\n type: Shape.POLYGON,\n style: style,\n initialParsedStyle: {\n points: {\n points: [],\n totalLength: 0,\n segments: []\n },\n miterLimit: 4,\n isClosed: true\n }\n }, rest)]);\n _this.markerStartAngle = 0;\n _this.markerEndAngle = 0;\n /**\n * markers placed at the mid\n */\n _this.markerMidList = [];\n var _this$parsedStyle = _this.parsedStyle,\n markerStart = _this$parsedStyle.markerStart,\n markerEnd = _this$parsedStyle.markerEnd,\n markerMid = _this$parsedStyle.markerMid;\n if (markerStart && isDisplayObject(markerStart)) {\n _this.markerStartAngle = markerStart.getLocalEulerAngles();\n _this.appendChild(markerStart);\n }\n if (markerMid && isDisplayObject(markerMid)) {\n _this.placeMarkerMid(markerMid);\n }\n if (markerEnd && isDisplayObject(markerEnd)) {\n _this.markerEndAngle = markerEnd.getLocalEulerAngles();\n _this.appendChild(markerEnd);\n }\n _this.transformMarker(true);\n _this.transformMarker(false);\n return _this;\n }\n _inherits(Polygon, _DisplayObject);\n return _createClass(Polygon, [{\n key: \"attributeChangedCallback\",\n value: function attributeChangedCallback(attrName, oldValue, newValue, prevParsedValue, newParsedValue) {\n if (attrName === 'points') {\n // recalc markers\n this.transformMarker(true);\n this.transformMarker(false);\n this.placeMarkerMid(this.parsedStyle.markerMid);\n } else if (attrName === 'markerStartOffset' || attrName === 'markerEndOffset') {\n this.transformMarker(true);\n this.transformMarker(false);\n } else if (attrName === 'markerStart') {\n if (prevParsedValue && isDisplayObject(prevParsedValue)) {\n this.markerStartAngle = 0;\n prevParsedValue.remove();\n }\n\n // CSSKeyword 'unset'\n if (newParsedValue && isDisplayObject(newParsedValue)) {\n this.markerStartAngle = newParsedValue.getLocalEulerAngles();\n this.appendChild(newParsedValue);\n this.transformMarker(true);\n }\n } else if (attrName === 'markerEnd') {\n if (prevParsedValue && isDisplayObject(prevParsedValue)) {\n this.markerEndAngle = 0;\n prevParsedValue.remove();\n }\n if (newParsedValue && isDisplayObject(newParsedValue)) {\n this.markerEndAngle = newParsedValue.getLocalEulerAngles();\n this.appendChild(newParsedValue);\n this.transformMarker(false);\n }\n } else if (attrName === 'markerMid') {\n this.placeMarkerMid(newParsedValue);\n }\n }\n }, {\n key: \"transformMarker\",\n value: function transformMarker(isStart) {\n var _this$parsedStyle2 = this.parsedStyle,\n markerStart = _this$parsedStyle2.markerStart,\n markerEnd = _this$parsedStyle2.markerEnd,\n markerStartOffset = _this$parsedStyle2.markerStartOffset,\n markerEndOffset = _this$parsedStyle2.markerEndOffset,\n P = _this$parsedStyle2.points;\n var _ref2 = P || {},\n points = _ref2.points;\n var marker = isStart ? markerStart : markerEnd;\n if (!marker || !isDisplayObject(marker) || !points) {\n return;\n }\n var rad = 0;\n var x;\n var y;\n var ox;\n var oy;\n var offset;\n var originalAngle;\n ox = points[0][0];\n oy = points[0][1];\n if (isStart) {\n x = points[1][0] - points[0][0];\n y = points[1][1] - points[0][1];\n offset = markerStartOffset || 0;\n originalAngle = this.markerStartAngle;\n } else {\n var length = points.length;\n if (!this.parsedStyle.isClosed) {\n ox = points[length - 1][0];\n oy = points[length - 1][1];\n x = points[length - 2][0] - points[length - 1][0];\n y = points[length - 2][1] - points[length - 1][1];\n } else {\n x = points[length - 1][0] - points[0][0];\n y = points[length - 1][1] - points[0][1];\n }\n offset = markerEndOffset || 0;\n originalAngle = this.markerEndAngle;\n }\n rad = Math.atan2(y, x);\n\n // account for markerOffset\n marker.setLocalEulerAngles(rad * 180 / Math.PI + originalAngle);\n marker.setLocalPosition(ox + Math.cos(rad) * offset, oy + Math.sin(rad) * offset);\n }\n }, {\n key: \"placeMarkerMid\",\n value: function placeMarkerMid(marker) {\n var P = this.parsedStyle.points;\n var _ref3 = P || {},\n points = _ref3.points;\n\n // clear all existed markers\n this.markerMidList.forEach(function (marker) {\n marker.remove();\n });\n this.markerMidList = [];\n if (marker && isDisplayObject(marker) && points) {\n for (var i = 1; i < (this.parsedStyle.isClosed ? points.length : points.length - 1); i++) {\n var ox = points[i][0];\n var oy = points[i][1];\n var cloned = i === 1 ? marker : marker.cloneNode(true);\n this.markerMidList.push(cloned);\n this.appendChild(cloned);\n cloned.setLocalPosition(ox, oy);\n\n // TODO: orient of marker\n }\n }\n }\n }]);\n}(DisplayObject);\nPolygon.PARSED_STYLE_LIST = new Set([].concat(_toConsumableArray(DisplayObject.PARSED_STYLE_LIST), ['points', 'markerStart', 'markerMid', 'markerEnd', 'markerStartOffset', 'markerEndOffset', 'isClosed', 'isBillboard', 'isSizeAttenuation']));\n\nvar _excluded$1 = [\"style\"];\n/**\n * Polyline inherits the marker-related capabilities of Polygon.\n */\nvar Polyline = /*#__PURE__*/function (_Polygon) {\n function Polyline() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n style = _ref.style,\n rest = _objectWithoutProperties(_ref, _excluded$1);\n _classCallCheck(this, Polyline);\n return _callSuper(this, Polyline, [_objectSpread({\n type: Shape.POLYLINE,\n style: style,\n initialParsedStyle: {\n points: {\n points: [],\n totalLength: 0,\n segments: []\n },\n miterLimit: 4,\n isClosed: false\n }\n }, rest)]);\n }\n _inherits(Polyline, _Polygon);\n return _createClass(Polyline, [{\n key: \"getTotalLength\",\n value: function getTotalLength() {\n return getOrCalculatePolylineTotalLength(this);\n }\n }, {\n key: \"getPointAtLength\",\n value: function getPointAtLength(distance) {\n var inWorldSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return this.getPoint(distance / this.getTotalLength(), inWorldSpace);\n }\n }, {\n key: \"getPoint\",\n value: function getPoint(ratio) {\n var inWorldSpace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var points = this.parsedStyle.points.points;\n if (this.parsedStyle.points.segments.length === 0) {\n var segments = [];\n var tempLength = 0;\n var segmentT;\n var segmentL;\n var totalLength = this.getTotalLength();\n points.forEach(function (p, i) {\n if (points[i + 1]) {\n segmentT = [0, 0];\n segmentT[0] = tempLength / totalLength;\n segmentL = lineLength(p[0], p[1], points[i + 1][0], points[i + 1][1]);\n tempLength += segmentL;\n segmentT[1] = tempLength / totalLength;\n segments.push(segmentT);\n }\n });\n this.parsedStyle.points.segments = segments;\n }\n var subt = 0;\n var index = 0;\n this.parsedStyle.points.segments.forEach(function (v, i) {\n if (ratio >= v[0] && ratio <= v[1]) {\n subt = (ratio - v[0]) / (v[1] - v[0]);\n index = i;\n }\n });\n var _linePointAt = linePointAt(points[index][0], points[index][1], points[index + 1][0], points[index + 1][1], subt),\n x = _linePointAt.x,\n y = _linePointAt.y;\n var transformed = vec3.transformMat4(vec3.create(), vec3.fromValues(x, y, 0), inWorldSpace ? this.getWorldTransform() : this.getLocalTransform());\n\n // apply local transformation\n return new Point(transformed[0], transformed[1]);\n }\n }, {\n key: \"getStartTangent\",\n value: function getStartTangent() {\n var points = this.parsedStyle.points.points;\n var result = [];\n result.push([points[1][0], points[1][1]]);\n result.push([points[0][0], points[0][1]]);\n return result;\n }\n }, {\n key: \"getEndTangent\",\n value: function getEndTangent() {\n var points = this.parsedStyle.points.points;\n var l = points.length - 1;\n var result = [];\n result.push([points[l - 1][0], points[l - 1][1]]);\n result.push([points[l][0], points[l][1]]);\n return result;\n }\n }]);\n}(Polygon);\nPolyline.PARSED_STYLE_LIST = new Set([].concat(_toConsumableArray(Polygon.PARSED_STYLE_LIST), ['points', 'markerStart', 'markerMid', 'markerEnd', 'markerStartOffset', 'markerEndOffset', 'isBillboard']));\n\nvar Rect = /*#__PURE__*/function (_DisplayObject) {\n function Rect() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Rect);\n return _callSuper(this, Rect, [_objectSpread({\n type: Shape.RECT\n }, options)]);\n }\n _inherits(Rect, _DisplayObject);\n return _createClass(Rect);\n}(DisplayObject);\nRect.PARSED_STYLE_LIST = new Set([].concat(_toConsumableArray(DisplayObject.PARSED_STYLE_LIST), ['x', 'y', 'z', 'width', 'height', 'isBillboard', 'isSizeAttenuation', 'radius']));\n\nvar _excluded = [\"style\"];\n/**\n * <text> @see https://developer.mozilla.org/en-US/docs/Web/API/SVGTextElement\n */\nvar Text = /*#__PURE__*/function (_DisplayObject) {\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement#constants\n */\n // LENGTHADJUST_SPACING: number = 1;\n // LENGTHADJUST_SPACINGANDGLYPHS: number = 2;\n // LENGTHADJUST_UNKNOWN: number = 0;\n\n function Text() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n style = _ref.style,\n rest = _objectWithoutProperties(_ref, _excluded);\n _classCallCheck(this, Text);\n return _callSuper(this, Text, [_objectSpread({\n type: Shape.TEXT,\n style: _objectSpread({\n fill: 'black'\n }, style)\n }, rest)]);\n }\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement\n */\n _inherits(Text, _DisplayObject);\n return _createClass(Text, [{\n key: \"getComputedTextLength\",\n value: function getComputedTextLength() {\n var _this$parsedStyle$met;\n this.getGeometryBounds();\n return ((_this$parsedStyle$met = this.parsedStyle.metrics) === null || _this$parsedStyle$met === void 0 ? void 0 : _this$parsedStyle$met.maxLineWidth) || 0;\n }\n }, {\n key: \"getLineBoundingRects\",\n value: function getLineBoundingRects() {\n var _this$parsedStyle$met2;\n this.getGeometryBounds();\n return ((_this$parsedStyle$met2 = this.parsedStyle.metrics) === null || _this$parsedStyle$met2 === void 0 ? void 0 : _this$parsedStyle$met2.lineMetrics) || [];\n }\n }, {\n key: \"isOverflowing\",\n value: function isOverflowing() {\n this.getGeometryBounds();\n return !!this.parsedStyle.isOverflowing;\n }\n }]);\n}(DisplayObject);\nText.PARSED_STYLE_LIST = new Set([].concat(_toConsumableArray(DisplayObject.PARSED_STYLE_LIST), ['x', 'y', 'z', 'isBillboard', 'billboardRotation', 'isSizeAttenuation', 'text', 'textAlign', 'textBaseline', 'fontStyle', 'fontSize', 'fontFamily', 'fontWeight', 'fontVariant', 'lineHeight', 'letterSpacing', 'leading', 'wordWrap', 'wordWrapWidth', 'maxLines', 'textOverflow', 'isOverflowing', 'textPath', 'textDecorationLine', 'textDecorationColor', 'textDecorationStyle', 'textDecorationThickness', 'textPathSide', 'textPathStartOffset', 'metrics', 'dx', 'dy']));\n\n/**\n * canvas.customElements\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry\n */\nvar CustomElementRegistry = /*#__PURE__*/function () {\n function CustomElementRegistry() {\n _classCallCheck(this, CustomElementRegistry);\n this.registry = {};\n this.define(Shape.CIRCLE, Circle);\n this.define(Shape.ELLIPSE, Ellipse);\n this.define(Shape.RECT, Rect);\n this.define(Shape.IMAGE, Image);\n this.define(Shape.LINE, Line);\n this.define(Shape.GROUP, Group);\n this.define(Shape.PATH, Path);\n this.define(Shape.POLYGON, Polygon);\n this.define(Shape.POLYLINE, Polyline);\n this.define(Shape.TEXT, Text);\n this.define(Shape.HTML, HTML);\n }\n return _createClass(CustomElementRegistry, [{\n key: \"define\",\n value: function define(name, constructor) {\n this.registry[name] = constructor;\n }\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/get\n */\n }, {\n key: \"get\",\n value: function get(name) {\n return this.registry[name];\n }\n }]);\n}();\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CSS/RegisterProperty#parameters\n */\n\n/**\n * holds useful CSS-related methods.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CSS\n *\n * * CSS Typed OM @see https://developer.mozilla.org/en-US/docs/Web/API/CSS/factory_functions\n * * register property @see https://developer.mozilla.org/en-US/docs/Web/API/CSS/RegisterProperty\n * * CSS Layout API\n */\nvar CSS = {\n /**\n * <number>\n * @see https://drafts.csswg.org/css-values-4/#number-value\n */\n number: function number(n) {\n return new CSSUnitValue(n);\n },\n /**\n * <percentage>\n * @see https://drafts.csswg.org/css-values-4/#percentage-value\n */\n percent: function percent(n) {\n return new CSSUnitValue(n, '%');\n },\n /**\n * <length>\n */\n px: function px(n) {\n return new CSSUnitValue(n, 'px');\n },\n /**\n * <length>\n */\n em: function em(n) {\n return new CSSUnitValue(n, 'em');\n },\n rem: function rem(n) {\n return new CSSUnitValue(n, 'rem');\n },\n /**\n * <angle>\n */\n deg: function deg(n) {\n return new CSSUnitValue(n, 'deg');\n },\n /**\n * <angle>\n */\n grad: function grad(n) {\n return new CSSUnitValue(n, 'grad');\n },\n /**\n * <angle>\n */\n rad: function rad(n) {\n return new CSSUnitValue(n, 'rad');\n },\n /**\n * <angle>\n */\n turn: function turn(n) {\n return new CSSUnitValue(n, 'turn');\n },\n /**\n * <time>\n */\n s: function s(n) {\n return new CSSUnitValue(n, 's');\n },\n /**\n * <time>\n */\n ms: function ms(n) {\n return new CSSUnitValue(n, 'ms');\n },\n /**\n * CSS Properties & Values API\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CSS_Properties_and_Values_API\n * @see https://drafts.css-houdini.org/css-properties-values-api/#registering-custom-properties\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CSS/RegisterProperty\n */\n registerProperty: function registerProperty(definition) {\n var name = definition.name,\n inherits = definition.inherits,\n interpolable = definition.interpolable,\n initialValue = definition.initialValue,\n syntax = definition.syntax;\n runtime.styleValueRegistry.registerMetadata({\n n: name,\n inh: inherits,\n \"int\": interpolable,\n d: initialValue,\n syntax: syntax\n });\n },\n /**\n * CSS Layout API\n * register layout\n *\n * @see https://github.com/w3c/css-houdini-drafts/blob/main/css-layout-api/EXPLAINER.md\n * @see https://developer.mozilla.org/en-US/docs/Web/Guide/Houdini#css_layout_api\n */\n registerLayout: function registerLayout(name, clazz) {\n runtime.layoutRegistry.registerLayout(name, clazz);\n }\n};\n\n/**\n * the entry of DOM tree\n * Document -> Node -> EventTarget\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document\n */\nvar Document = /*#__PURE__*/function (_Node) {\n function Document() {\n var _this;\n _classCallCheck(this, Document);\n _this = _callSuper(this, Document);\n /**\n * only document has defaultView, points to canvas,\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/defaultView\n */\n _this.defaultView = null;\n _this.ownerDocument = null;\n _this.nodeName = 'document';\n\n // create timeline\n try {\n _this.timeline = new runtime.AnimationTimeline(_this);\n } catch (_unused) {}\n\n /**\n * for inherited properties, the initial value is used on the root element only,\n * as long as no specified value is supplied.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/initial_value\n */\n var initialStyle = {};\n BUILT_IN_PROPERTIES.forEach(function (_ref) {\n var n = _ref.n,\n inh = _ref.inh,\n d = _ref.d;\n if (inh && d) {\n initialStyle[n] = isFunction(d) ? d(Shape.GROUP) : d;\n }\n });\n\n // like <html> in DOM tree\n _this.documentElement = new Group({\n id: 'g-root',\n style: initialStyle\n });\n _this.documentElement.ownerDocument = _this;\n _this.documentElement.parentNode = _this;\n _this.childNodes = [_this.documentElement];\n return _this;\n }\n _inherits(Document, _Node);\n return _createClass(Document, [{\n key: \"children\",\n get: function get() {\n return this.childNodes;\n }\n }, {\n key: \"childElementCount\",\n get: function get() {\n return this.childNodes.length;\n }\n }, {\n key: \"firstElementChild\",\n get: function get() {\n return this.firstChild;\n }\n }, {\n key: \"lastElementChild\",\n get: function get() {\n return this.lastChild;\n }\n }, {\n key: \"createElement\",\n value:\n /**\n * @example const circle = document.createElement('circle', { style: { r: 10 } });\n */\n function createElement(tagName, options) {\n // @observablehq/plot will create <svg>\n if (tagName === 'svg') {\n return this.documentElement;\n }\n\n // d3 will use <tspan>\n var clazz = this.defaultView.customElements.get(tagName);\n if (!clazz) {\n console.warn('Unsupported tagName: ', tagName);\n clazz = tagName === 'tspan' ? Text : Group;\n }\n var shape = new clazz(options);\n shape.ownerDocument = this;\n return shape;\n }\n }, {\n key: \"createElementNS\",\n value: function createElementNS(namespaceURI, tagName, options) {\n return this.createElement(tagName, options);\n }\n }, {\n key: \"cloneNode\",\n value: function cloneNode(deep) {\n throw new Error(ERROR_MSG_METHOD_NOT_IMPLEMENTED);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n try {\n this.documentElement.destroyChildren();\n this.timeline.destroy();\n } catch (_unused2) {}\n }\n\n /**\n * Picking 2D graphics by traversing elements and checking bounding boxes.\n */\n }, {\n key: \"elementsFromBBox\",\n value: function elementsFromBBox(minX, minY, maxX, maxY) {\n var hitTestList = [];\n\n // Traverse all elements in the document\n var _traverse = function traverse(node) {\n if (!node.isInteractive() || node.isCulled()) {\n return;\n }\n var _node$parsedStyle$poi = node.parsedStyle.pointerEvents,\n pointerEvents = _node$parsedStyle$poi === void 0 ? 'auto' : _node$parsedStyle$poi;\n\n // Account for `visibility`\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events\n var isVisibilityAffected = ['auto', 'visiblepainted', 'visiblefill', 'visiblestroke', 'visible'].includes(pointerEvents);\n if (!isVisibilityAffected || node.isVisible()) {\n var bounds = node.getTransformedGeometryBounds(true);\n if (bounds && !AABB.isEmpty(bounds)) {\n if (bounds.max[0] >= minX && bounds.min[0] <= maxX && bounds.max[1] >= minY && bounds.min[1] <= maxY) {\n hitTestList.push(node);\n }\n }\n }\n\n // Traverse children if it's a container\n if (node.childNodes) {\n node.childNodes.forEach(function (child) {\n if (child instanceof DisplayObject) {\n _traverse(child);\n }\n });\n }\n };\n\n // Start traversal from documentElement\n _traverse(this.documentElement);\n\n // Sort by render order (z-index)\n hitTestList.sort(function (a, b) {\n return b.sortable.renderOrder - a.sortable.renderOrder;\n });\n return hitTestList;\n }\n }, {\n key: \"elementFromPointSync\",\n value: function elementFromPointSync(x, y) {\n var _this$defaultView$can = this.defaultView.canvas2Viewport({\n x: x,\n y: y\n }),\n viewportX = _this$defaultView$can.x,\n viewportY = _this$defaultView$can.y;\n var _this$defaultView$get = this.defaultView.getConfig(),\n width = _this$defaultView$get.width,\n height = _this$defaultView$get.height;\n // outside canvas' viewport\n if (viewportX < 0 || viewportY < 0 || viewportX > width || viewportY > height) {\n return null;\n }\n var _this$defaultView$vie = this.defaultView.viewport2Client({\n x: viewportX,\n y: viewportY\n }),\n clientX = _this$defaultView$vie.x,\n clientY = _this$defaultView$vie.y;\n var _this$defaultView$get2 = this.defaultView.getRenderingService().hooks.pickSync.call({\n topmost: true,\n position: {\n x: x,\n y: y,\n viewportX: viewportX,\n viewportY: viewportY,\n clientX: clientX,\n clientY: clientY\n },\n picked: []\n }),\n picked = _this$defaultView$get2.picked;\n return picked && picked[0] || this.documentElement;\n }\n\n /**\n * Do picking with API instead of triggering interactive events.\n *\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Document/elementFromPoint\n */\n }, {\n key: \"elementFromPoint\",\n value: (function () {\n var _elementFromPoint = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(x, y) {\n var _this$defaultView$can2, viewportX, viewportY, _this$defaultView$get3, width, height, _this$defaultView$vie2, clientX, clientY, _yield$this$defaultVi, picked;\n return _regeneratorRuntime().wrap(function (_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _this$defaultView$can2 = this.defaultView.canvas2Viewport({\n x: x,\n y: y\n }), viewportX = _this$defaultView$can2.x, viewportY = _this$defaultView$can2.y;\n _this$defaultView$get3 = this.defaultView.getConfig(), width = _this$defaultView$get3.width, height = _this$defaultView$get3.height; // outside canvas' viewport\n if (!(viewportX < 0 || viewportY < 0 || viewportX > width || viewportY > height)) {\n _context.next = 1;\n break;\n }\n return _context.abrupt(\"return\", null);\n case 1:\n _this$defaultView$vie2 = this.defaultView.viewport2Client({\n x: viewportX,\n y: viewportY\n }), clientX = _this$defaultView$vie2.x, clientY = _this$defaultView$vie2.y;\n _context.next = 2;\n return this.defaultView.getRenderingService().hooks.pick.promise({\n topmost: true,\n position: {\n x: x,\n y: y,\n viewportX: viewportX,\n viewportY: viewportY,\n clientX: clientX,\n clientY: clientY\n },\n picked: []\n });\n case 2:\n _yield$this$defaultVi = _context.sent;\n picked = _yield$this$defaultVi.picked;\n return _context.abrupt(\"return\", picked && picked[0] || this.documentElement);\n case 3:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function elementFromPoint(_x, _x2) {\n return _elementFromPoint.apply(this, arguments);\n }\n return elementFromPoint;\n }())\n }, {\n key: \"elementsFromPointSync\",\n value: function elementsFromPointSync(x, y) {\n var _this$defaultView$can3 = this.defaultView.canvas2Viewport({\n x: x,\n y: y\n }),\n viewportX = _this$defaultView$can3.x,\n viewportY = _this$defaultView$can3.y;\n var _this$defaultView$get4 = this.defaultView.getConfig(),\n width = _this$defaultView$get4.width,\n height = _this$defaultView$get4.height;\n // outside canvas' viewport\n if (viewportX < 0 || viewportY < 0 || viewportX > width || viewportY > height) {\n return [];\n }\n var _this$defaultView$vie3 = this.defaultView.viewport2Client({\n x: viewportX,\n y: viewportY\n }),\n clientX = _this$defaultView$vie3.x,\n clientY = _this$defaultView$vie3.y;\n var _this$defaultView$get5 = this.defaultView.getRenderingService().hooks.pickSync.call({\n topmost: false,\n position: {\n x: x,\n y: y,\n viewportX: viewportX,\n viewportY: viewportY,\n clientX: clientX,\n clientY: clientY\n },\n picked: []\n }),\n picked = _this$defaultView$get5.picked;\n if (picked[picked.length - 1] !== this.documentElement) {\n picked.push(this.documentElement);\n }\n return picked;\n }\n\n /**\n * Do picking with API instead of triggering interactive events.\n *\n * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Document/elementsFromPoint\n */\n }, {\n key: \"elementsFromPoint\",\n value: (function () {\n var _elementsFromPoint = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(x, y) {\n var _this$defaultView$can4, viewportX, viewportY, _this$defaultView$get6, width, height, _this$defaultView$vie4, clientX, clientY, _yield$this$defaultVi2, picked;\n return _regeneratorRuntime().wrap(function (_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _this$defaultView$can4 = this.defaultView.canvas2Viewport({\n x: x,\n y: y\n }), viewportX = _this$defaultView$can4.x, viewportY = _this$defaultView$can4.y;\n _this$defaultView$get6 = this.defaultView.getConfig(), width = _this$defaultView$get6.width, height = _this$defaultView$get6.height; // outside canvas' viewport\n if (!(viewportX < 0 || viewportY < 0 || viewportX > width || viewportY > height)) {\n _context2.next = 1;\n break;\n }\n return _context2.abrupt(\"return\", []);\n case 1:\n _this$defaultView$vie4 = this.defaultView.viewport2Client({\n x: viewportX,\n y: viewportY\n }), clientX = _this$defaultView$vie4.x, clientY = _this$defaultView$vie4.y;\n _context2.next = 2;\n return this.defaultView.getRenderingService().hooks.pick.promise({\n topmost: false,\n position: {\n x: x,\n y: y,\n viewportX: viewportX,\n viewportY: viewportY,\n clientX: clientX,\n clientY: clientY\n },\n picked: []\n });\n case 2:\n _yield$this$defaultVi2 = _context2.sent;\n picked = _yield$this$defaultVi2.picked;\n if (picked[picked.length - 1] !== this.documentElement) {\n picked.push(this.documentElement);\n }\n return _context2.abrupt(\"return\", picked);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function elementsFromPoint(_x3, _x4) {\n return _elementsFromPoint.apply(this, arguments);\n }\n return elementsFromPoint;\n }()\n /**\n * eg. Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.\n */\n )\n }, {\n key: \"appendChild\",\n value: function appendChild(newChild, index) {\n throw new Error(ERROR_MSG_USE_DOCUMENT_ELEMENT);\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(newChild, refChild) {\n throw new Error(ERROR_MSG_USE_DOCUMENT_ELEMENT);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(oldChild, destroy) {\n throw new Error(ERROR_MSG_USE_DOCUMENT_ELEMENT);\n }\n }, {\n key: \"replaceChild\",\n value: function replaceChild(newChild, oldChild, destroy) {\n throw new Error(ERROR_MSG_USE_DOCUMENT_ELEMENT);\n }\n }, {\n key: \"append\",\n value: function append() {\n throw new Error(ERROR_MSG_USE_DOCUMENT_ELEMENT);\n }\n }, {\n key: \"prepend\",\n value: function prepend() {\n throw new Error(ERROR_MSG_USE_DOCUMENT_ELEMENT);\n }\n\n /**\n * Execute query on documentElement.\n */\n }, {\n key: \"getElementById\",\n value: function getElementById(id) {\n return this.documentElement.getElementById(id);\n }\n }, {\n key: \"getElementsByName\",\n value: function getElementsByName(name) {\n return this.documentElement.getElementsByName(name);\n }\n }, {\n key: \"getElementsByTagName\",\n value: function getElementsByTagName(tagName) {\n return this.documentElement.getElementsByTagName(tagName);\n }\n }, {\n key: \"getElementsByClassName\",\n value: function getElementsByClassName(className) {\n return this.documentElement.getElementsByClassName(className);\n }\n }, {\n key: \"querySelector\",\n value: function querySelector(selectors) {\n return this.documentElement.querySelector(selectors);\n }\n }, {\n key: \"querySelectorAll\",\n value: function querySelectorAll(selectors) {\n return this.documentElement.querySelectorAll(selectors);\n }\n }, {\n key: \"find\",\n value: function find(filter) {\n return this.documentElement.find(filter);\n }\n }, {\n key: \"findAll\",\n value: function findAll(filter) {\n return this.documentElement.findAll(filter);\n }\n }]);\n}(Node);\n\n/**\n * apply following rules:\n * 1. `visibility` in scenegraph node\n * 2. other custom culling strategies, eg. frustum culling\n */\nvar CullingPlugin = /*#__PURE__*/function () {\n function CullingPlugin(strategies) {\n _classCallCheck(this, CullingPlugin);\n this.strategies = strategies;\n }\n return _createClass(CullingPlugin, [{\n key: \"apply\",\n value: function apply(context) {\n var config = context.config,\n camera = context.camera,\n renderingService = context.renderingService,\n renderingContext = context.renderingContext;\n var strategies = this.strategies;\n renderingService.hooks.cull.tap(CullingPlugin.tag, function (object) {\n if (object) {\n var _config$future;\n var cullable = object.cullable;\n // cullable.visible = true;\n // const renderBounds = object.getRenderBounds();\n // if (AABB.isEmpty(renderBounds)) {\n // cullable.visible = false;\n // } else {\n // const isShape2D = shape2D.indexOf(object.nodeName as Shape) > -1;\n // const [p0, p1, p2, p3] = camera.getFrustum().planes;\n // tmpAABB.setMinMax([-p1.distance, -p3.distance, 0], [p0.distance, p2.distance, 0]);\n\n // cullable.visible = isShape2D ? renderBounds.intersects(tmpAABB) : true;\n // }\n\n if (strategies.length === 0) {\n cullable.visible = renderingContext.unculledEntities.indexOf(object.entity) > -1;\n } else {\n // eg. implemented by g-webgl(frustum culling)\n cullable.visible = strategies.every(function (strategy) {\n return strategy.isVisible(camera, object);\n });\n }\n if (!object.isCulled() && object.isVisible()) {\n return object;\n }\n var enableCancelEventPropagation = ((_config$future = config.future) === null || _config$future === void 0 ? void 0 : _config$future.experimentalCancelEventPropagation) === true;\n\n // if (this.renderingContext.renderListLastFrame.indexOf(object) > -1) {\n object.dispatchEvent(new CustomEvent(ElementEvent.CULLED), enableCancelEventPropagation, enableCancelEventPropagation);\n // }\n\n return null;\n }\n return object;\n });\n renderingService.hooks.afterRender.tap(CullingPlugin.tag, function (object) {\n object.cullable.visibilityPlaneMask = -1;\n });\n }\n }]);\n}();\nCullingPlugin.tag = 'Culling';\n\n/**\n * support mouse & touch events\n * @see https://github.com/pixijs/pixi.js/blob/dev/packages/interaction/README.md\n *\n * also provide some extra events such as `drag`\n */\nvar EventPlugin = /*#__PURE__*/function () {\n function EventPlugin() {\n var _this = this;\n _classCallCheck(this, EventPlugin);\n this.autoPreventDefault = false;\n this.rootPointerEvent = new FederatedPointerEvent(null);\n this.rootWheelEvent = new FederatedWheelEvent(null);\n this.onPointerMove = function (nativeEvent) {\n var _this$context$renderi;\n var canvas = (_this$context$renderi = _this.context.renderingContext.root) === null || _this$context$renderi === void 0 || (_this$context$renderi = _this$context$renderi.ownerDocument) === null || _this$context$renderi === void 0 ? void 0 : _this$context$renderi.defaultView;\n if (canvas.supportsTouchEvents && nativeEvent.pointerType === 'touch') return;\n var normalizedEvents = _this.normalizeToPointerEvent(nativeEvent, canvas);\n var _iterator = _createForOfIteratorHelper(normalizedEvents),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var normalizedEvent = _step.value;\n var event = _this.bootstrapEvent(_this.rootPointerEvent, normalizedEvent, canvas, nativeEvent);\n _this.context.eventService.mapEvent(event);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n _this.setCursor(_this.context.eventService.cursor);\n };\n this.onClick = function (nativeEvent) {\n var _this$context$renderi2;\n var canvas = (_this$context$renderi2 = _this.context.renderingContext.root) === null || _this$context$renderi2 === void 0 || (_this$context$renderi2 = _this$context$renderi2.ownerDocument) === null || _this$context$renderi2 === void 0 ? void 0 : _this$context$renderi2.defaultView;\n var normalizedEvents = _this.normalizeToPointerEvent(nativeEvent, canvas);\n var _iterator2 = _createForOfIteratorHelper(normalizedEvents),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var normalizedEvent = _step2.value;\n var event = _this.bootstrapEvent(_this.rootPointerEvent, normalizedEvent, canvas, nativeEvent);\n _this.context.eventService.mapEvent(event);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n _this.setCursor(_this.context.eventService.cursor);\n };\n }\n return _createClass(EventPlugin, [{\n key: \"apply\",\n value: function apply(context) {\n var _this2 = this;\n this.context = context;\n var renderingService = context.renderingService;\n var canvas = this.context.renderingContext.root.ownerDocument.defaultView;\n this.context.eventService.setPickHandler(function (position) {\n var _this2$context$render = _this2.context.renderingService.hooks.pickSync.call({\n position: position,\n picked: [],\n topmost: true // we only concern the topmost element\n }),\n picked = _this2$context$render.picked;\n return picked[0] || null;\n });\n renderingService.hooks.pointerWheel.tap(EventPlugin.tag, function (nativeEvent) {\n var wheelEvent = _this2.normalizeWheelEvent(nativeEvent);\n _this2.context.eventService.mapEvent(wheelEvent);\n });\n renderingService.hooks.pointerDown.tap(EventPlugin.tag, function (nativeEvent) {\n if (canvas.supportsTouchEvents && nativeEvent.pointerType === 'touch') return;\n var events = _this2.normalizeToPointerEvent(nativeEvent, canvas);\n if (_this2.autoPreventDefault && events[0].isNormalized) {\n var cancelable = nativeEvent.cancelable || !('cancelable' in nativeEvent);\n if (cancelable) {\n nativeEvent.preventDefault();\n }\n }\n var _iterator3 = _createForOfIteratorHelper(events),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var event = _step3.value;\n var federatedEvent = _this2.bootstrapEvent(_this2.rootPointerEvent, event, canvas, nativeEvent);\n _this2.context.eventService.mapEvent(federatedEvent);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n _this2.setCursor(_this2.context.eventService.cursor);\n });\n renderingService.hooks.pointerUp.tap(EventPlugin.tag, function (nativeEvent) {\n if (canvas.supportsTouchEvents && nativeEvent.pointerType === 'touch') return;\n\n // account for element in SVG\n var $element = _this2.context.contextService.getDomElement();\n var isNativeEventFromCanvas = _this2.context.eventService.isNativeEventFromCanvas($element, nativeEvent);\n var outside = !isNativeEventFromCanvas ? 'outside' : '';\n var normalizedEvents = _this2.normalizeToPointerEvent(nativeEvent, canvas);\n var _iterator4 = _createForOfIteratorHelper(normalizedEvents),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var normalizedEvent = _step4.value;\n var event = _this2.bootstrapEvent(_this2.rootPointerEvent, normalizedEvent, canvas, nativeEvent);\n event.type += outside;\n _this2.context.eventService.mapEvent(event);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n _this2.setCursor(_this2.context.eventService.cursor);\n });\n renderingService.hooks.pointerMove.tap(EventPlugin.tag, this.onPointerMove);\n renderingService.hooks.pointerOver.tap(EventPlugin.tag, this.onPointerMove);\n renderingService.hooks.pointerOut.tap(EventPlugin.tag, this.onPointerMove);\n renderingService.hooks.click.tap(EventPlugin.tag, this.onClick);\n renderingService.hooks.pointerCancel.tap(EventPlugin.tag, function (nativeEvent) {\n var normalizedEvents = _this2.normalizeToPointerEvent(nativeEvent, canvas);\n var _iterator5 = _createForOfIteratorHelper(normalizedEvents),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var normalizedEvent = _step5.value;\n var event = _this2.bootstrapEvent(_this2.rootPointerEvent, normalizedEvent, canvas, nativeEvent);\n _this2.context.eventService.mapEvent(event);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n _this2.setCursor(_this2.context.eventService.cursor);\n });\n }\n }, {\n key: \"bootstrapEvent\",\n value: function bootstrapEvent(event, normalizedEvent, view, nativeEvent) {\n event.view = view;\n event.originalEvent = null;\n event.nativeEvent = nativeEvent;\n event.pointerId = normalizedEvent.pointerId;\n event.width = normalizedEvent.width;\n event.height = normalizedEvent.height;\n event.isPrimary = normalizedEvent.isPrimary;\n event.pointerType = normalizedEvent.pointerType;\n event.pressure = normalizedEvent.pressure;\n event.tangentialPressure = normalizedEvent.tangentialPressure;\n event.tiltX = normalizedEvent.tiltX;\n event.tiltY = normalizedEvent.tiltY;\n event.twist = normalizedEvent.twist;\n this.transferMouseData(event, normalizedEvent);\n var _this$context$eventSe = this.context.eventService.client2Viewport({\n x: normalizedEvent.clientX,\n y: normalizedEvent.clientY\n }),\n x = _this$context$eventSe.x,\n y = _this$context$eventSe.y;\n event.viewport.x = x;\n event.viewport.y = y;\n var _this$context$eventSe2 = this.context.eventService.viewport2Canvas(event.viewport),\n canvasX = _this$context$eventSe2.x,\n canvasY = _this$context$eventSe2.y;\n event.canvas.x = canvasX;\n event.canvas.y = canvasY;\n event.global.copyFrom(event.canvas);\n event.offset.copyFrom(event.canvas);\n event.isTrusted = nativeEvent.isTrusted;\n if (event.type === 'pointerleave') {\n event.type = 'pointerout';\n }\n if (event.type.startsWith('mouse')) {\n event.type = event.type.replace('mouse', 'pointer');\n }\n if (event.type.startsWith('touch')) {\n event.type = TOUCH_TO_POINTER[event.type] || event.type;\n }\n return event;\n }\n }, {\n key: \"normalizeWheelEvent\",\n value: function normalizeWheelEvent(nativeEvent) {\n var event = this.rootWheelEvent;\n this.transferMouseData(event, nativeEvent);\n event.deltaMode = nativeEvent.deltaMode;\n event.deltaX = nativeEvent.deltaX;\n event.deltaY = nativeEvent.deltaY;\n event.deltaZ = nativeEvent.deltaZ;\n var _this$context$eventSe3 = this.context.eventService.client2Viewport({\n x: nativeEvent.clientX,\n y: nativeEvent.clientY\n }),\n x = _this$context$eventSe3.x,\n y = _this$context$eventSe3.y;\n event.viewport.x = x;\n event.viewport.y = y;\n var _this$context$eventSe4 = this.context.eventService.viewport2Canvas(event.viewport),\n canvasX = _this$context$eventSe4.x,\n canvasY = _this$context$eventSe4.y;\n event.canvas.x = canvasX;\n event.canvas.y = canvasY;\n event.global.copyFrom(event.canvas);\n event.offset.copyFrom(event.canvas);\n event.nativeEvent = nativeEvent;\n event.type = nativeEvent.type;\n return event;\n }\n\n /**\n * Transfers base & mouse event data from the nativeEvent to the federated event.\n */\n }, {\n key: \"transferMouseData\",\n value: function transferMouseData(event, nativeEvent) {\n event.isTrusted = nativeEvent.isTrusted;\n event.srcElement = nativeEvent.srcElement;\n event.timeStamp = clock.now();\n event.type = nativeEvent.type;\n event.altKey = nativeEvent.altKey;\n event.metaKey = nativeEvent.metaKey;\n event.shiftKey = nativeEvent.shiftKey;\n event.ctrlKey = nativeEvent.ctrlKey;\n event.button = nativeEvent.button;\n event.buttons = nativeEvent.buttons;\n event.client.x = nativeEvent.clientX;\n event.client.y = nativeEvent.clientY;\n event.movement.x = nativeEvent.movementX;\n event.movement.y = nativeEvent.movementY;\n event.page.x = nativeEvent.pageX;\n event.page.y = nativeEvent.pageY;\n event.screen.x = nativeEvent.screenX;\n event.screen.y = nativeEvent.screenY;\n event.relatedTarget = null;\n }\n }, {\n key: \"setCursor\",\n value: function setCursor(cursor) {\n this.context.contextService.applyCursorStyle(cursor || this.context.config.cursor || 'default');\n }\n }, {\n key: \"normalizeToPointerEvent\",\n value: function normalizeToPointerEvent(event, canvas) {\n var normalizedEvents = [];\n if (canvas.isTouchEvent(event)) {\n for (var i = 0; i < event.changedTouches.length; i++) {\n var touch = event.changedTouches[i];\n\n // use changedTouches instead of touches since touchend has no touches\n // @see https://stackoverflow.com/a/10079076\n if (isUndefined(touch.button)) touch.button = 0;\n if (isUndefined(touch.buttons)) touch.buttons = 1;\n if (isUndefined(touch.isPrimary)) {\n touch.isPrimary = event.touches.length === 1 && event.type === 'touchstart';\n }\n if (isUndefined(touch.width)) touch.width = touch.radiusX || 1;\n if (isUndefined(touch.height)) touch.height = touch.radiusY || 1;\n if (isUndefined(touch.tiltX)) touch.tiltX = 0;\n if (isUndefined(touch.tiltY)) touch.tiltY = 0;\n if (isUndefined(touch.pointerType)) touch.pointerType = 'touch';\n // @see https://developer.mozilla.org/zh-CN/docs/Web/API/Touch/identifier\n if (isUndefined(touch.pointerId)) touch.pointerId = touch.identifier || 0;\n if (isUndefined(touch.pressure)) touch.pressure = touch.force || 0.5;\n if (isUndefined(touch.twist)) touch.twist = 0;\n if (isUndefined(touch.tangentialPressure)) touch.tangentialPressure = 0;\n touch.isNormalized = true;\n touch.type = event.type;\n normalizedEvents.push(touch);\n }\n } else if (canvas.isMouseEvent(event)) {\n var tempEvent = event;\n if (isUndefined(tempEvent.isPrimary)) tempEvent.isPrimary = true;\n if (isUndefined(tempEvent.width)) tempEvent.width = 1;\n if (isUndefined(tempEvent.height)) tempEvent.height = 1;\n if (isUndefined(tempEvent.tiltX)) tempEvent.tiltX = 0;\n if (isUndefined(tempEvent.tiltY)) tempEvent.tiltY = 0;\n if (isUndefined(tempEvent.pointerType)) tempEvent.pointerType = 'mouse';\n if (isUndefined(tempEvent.pointerId)) tempEvent.pointerId = MOUSE_POINTER_ID;\n if (isUndefined(tempEvent.pressure)) tempEvent.pressure = 0.5;\n if (isUndefined(tempEvent.twist)) tempEvent.twist = 0;\n if (isUndefined(tempEvent.tangentialPressure)) tempEvent.tangentialPressure = 0;\n tempEvent.isNormalized = true;\n normalizedEvents.push(tempEvent);\n } else {\n normalizedEvents.push(event);\n }\n return normalizedEvents;\n }\n }]);\n}();\nEventPlugin.tag = 'Event';\n\n// group is not a 2d shape\nvar shape2D = [Shape.CIRCLE, Shape.ELLIPSE, Shape.IMAGE, Shape.RECT, Shape.LINE, Shape.POLYLINE, Shape.POLYGON, Shape.TEXT, Shape.PATH, Shape.HTML];\nvar FrustumCullingStrategy = /*#__PURE__*/function () {\n function FrustumCullingStrategy() {\n _classCallCheck(this, FrustumCullingStrategy);\n }\n return _createClass(FrustumCullingStrategy, [{\n key: \"isVisible\",\n value: function isVisible(camera, object) {\n var _object$parentNode;\n // return true;\n\n var cullable = object.cullable;\n if (!cullable.enable) {\n return true;\n }\n var renderBounds = object.getRenderBounds();\n if (AABB.isEmpty(renderBounds)) {\n return false;\n }\n\n // get VP matrix from camera\n var frustum = camera.getFrustum();\n var parentVisibilityPlaneMask = (_object$parentNode = object.parentNode) === null || _object$parentNode === void 0 || (_object$parentNode = _object$parentNode.cullable) === null || _object$parentNode === void 0 ? void 0 : _object$parentNode.visibilityPlaneMask;\n cullable.visibilityPlaneMask = this.computeVisibilityWithPlaneMask(object, renderBounds, parentVisibilityPlaneMask || Mask.INDETERMINATE, frustum.planes);\n cullable.visible = cullable.visibilityPlaneMask !== Mask.OUTSIDE;\n return cullable.visible;\n }\n\n /**\n *\n * @see「Optimized View Frustum Culling Algorithms for Bounding Boxes」\n * @see https://github.com/antvis/GWebGPUEngine/issues/3\n *\n * * 基础相交测试 the basic intersection test\n * * 标记 masking @see https://cesium.com/blog/2015/08/04/fast-hierarchical-culling/\n * * TODO: 平面一致性测试 the plane-coherency test\n * * TODO: 支持 mesh 指定自身的剔除策略,参考 Babylon.js @see https://doc.babylonjs.com/how_to/optimizing_your_scene#changing-mesh-culling-strategy\n *\n * @param aabb aabb\n * @param parentPlaneMask mask of parent\n * @param planes planes of frustum\n */\n }, {\n key: \"computeVisibilityWithPlaneMask\",\n value: function computeVisibilityWithPlaneMask(object, aabb, parentPlaneMask, planes) {\n if (parentPlaneMask === Mask.OUTSIDE || parentPlaneMask === Mask.INSIDE) {\n // 父节点完全位于视锥内或者外部,直接返回\n return parentPlaneMask;\n }\n\n // Start with MASK_INSIDE (all zeros) so that after the loop, the return value can be compared with MASK_INSIDE.\n // (Because if there are fewer than 31 planes, the upper bits wont be changed.)\n var mask = Mask.INSIDE;\n var isShape2D = shape2D.indexOf(object.nodeName) > -1;\n\n // Use viewport culling for 2D shapes\n // @see https://github.com/antvis/g/issues/914\n for (var k = 0, len = planes.length; k < len; ++k) {\n // For k greater than 31 (since 31 is the maximum number of INSIDE/INTERSECTING bits we can store), skip the optimization.\n var flag = 1 << k;\n if ((parentPlaneMask & flag) === 0) {\n // 父节点处于当前面内部,可以跳过\n continue;\n }\n\n // skip near & far planes when testing 2D shapes\n if (isShape2D && (k === 4 || k === 5)) {\n continue;\n }\n\n // p-vertex n-vertex <-|plane p-vertex n-vertex\n // 使用 p-vertex 和 n-vertex 加速,避免进行平面和 aabb 全部顶点的相交检测\n var _planes$k = planes[k],\n normal = _planes$k.normal,\n distance = _planes$k.distance;\n if (vec3.dot(normal, aabb.getPositiveFarPoint(planes[k])) + distance < 0) {\n return Mask.OUTSIDE;\n }\n if (vec3.dot(normal, aabb.getNegativeFarPoint(planes[k])) + distance < 0) {\n // 和当前面相交,对应位置为1,继续检测下一个面\n mask |= flag;\n }\n }\n return mask;\n }\n }]);\n}();\n\n/**\n * PrepareRendererPlugin handles rendering preparation tasks\n * Simplified implementation focused on core rendering needs\n */\nvar PrepareRendererPlugin = /*#__PURE__*/function () {\n function PrepareRendererPlugin() {\n _classCallCheck(this, PrepareRendererPlugin);\n this.mutationRecords = [];\n this.isFirstTimeRendering = true;\n this.isFirstTimeRenderingFinished = false;\n }\n return _createClass(PrepareRendererPlugin, [{\n key: \"apply\",\n value: function apply(context) {\n var _this = this,\n _runtime$globalThis$r;\n var renderingService = context.renderingService,\n renderingContext = context.renderingContext;\n var canvas = renderingContext.root.ownerDocument.defaultView;\n var handleAttributeChanged = function handleAttributeChanged(e) {\n renderingService.dirty();\n };\n var handleBoundsChanged = function handleBoundsChanged(e) {\n var _this$mutationRecords;\n var records = e.detail;\n // Store mutation records for potential future processing\n (_this$mutationRecords = _this.mutationRecords).push.apply(_this$mutationRecords, _toConsumableArray(records));\n renderingService.dirty();\n };\n var handleMounted = function handleMounted(e) {\n var object = e.target;\n if (runtime.enableSizeAttenuation) {\n runtime.styleValueRegistry.updateSizeAttenuation(object, canvas.getCamera().getZoom());\n }\n };\n var handleUnmounted = function handleUnmounted(e) {\n var object = e.target;\n\n // No spatial index cleanup needed\n runtime.sceneGraphService.dirtyToRoot(object);\n renderingService.dirty();\n };\n renderingService.hooks.init.tap(PrepareRendererPlugin.tag, function () {\n canvas.addEventListener(ElementEvent.MOUNTED, handleMounted);\n canvas.addEventListener(ElementEvent.UNMOUNTED, handleUnmounted);\n canvas.addEventListener(ElementEvent.ATTR_MODIFIED, handleAttributeChanged);\n canvas.addEventListener(ElementEvent.BOUNDS_CHANGED, handleBoundsChanged);\n });\n renderingService.hooks.destroy.tap(PrepareRendererPlugin.tag, function () {\n canvas.removeEventListener(ElementEvent.MOUNTED, handleMounted);\n canvas.removeEventListener(ElementEvent.UNMOUNTED, handleUnmounted);\n canvas.removeEventListener(ElementEvent.ATTR_MODIFIED, handleAttributeChanged);\n canvas.removeEventListener(ElementEvent.BOUNDS_CHANGED, handleBoundsChanged);\n _this.mutationRecords = [];\n });\n var ric = (_runtime$globalThis$r = runtime.globalThis.requestIdleCallback) !== null && _runtime$globalThis$r !== void 0 ? _runtime$globalThis$r : raf.bind(runtime.globalThis);\n renderingService.hooks.endFrame.tap(PrepareRendererPlugin.tag, function () {\n if (_this.isFirstTimeRendering) {\n _this.isFirstTimeRendering = false;\n ric(function () {\n _this.isFirstTimeRenderingFinished = true;\n });\n }\n\n // Clear mutation records after each frame\n _this.mutationRecords = [];\n });\n }\n }]);\n}();\nPrepareRendererPlugin.tag = 'Prepare';\n\nfunction isCanvas(value) {\n return !!value.document;\n}\nvar CanvasEvent = /*#__PURE__*/function (CanvasEvent) {\n CanvasEvent[\"READY\"] = \"ready\";\n CanvasEvent[\"BEFORE_RENDER\"] = \"beforerender\";\n CanvasEvent[\"RERENDER\"] = \"rerender\";\n CanvasEvent[\"AFTER_RENDER\"] = \"afterrender\";\n CanvasEvent[\"BEFORE_DESTROY\"] = \"beforedestroy\";\n CanvasEvent[\"AFTER_DESTROY\"] = \"afterdestroy\";\n CanvasEvent[\"RESIZE\"] = \"resize\";\n CanvasEvent[\"DIRTY_RECTANGLE\"] = \"dirtyrectangle\";\n CanvasEvent[\"RENDERER_CHANGED\"] = \"rendererchanged\";\n return CanvasEvent;\n}({});\nvar DEFAULT_CAMERA_Z = 500;\nvar DEFAULT_CAMERA_NEAR = 0.1;\nvar DEFAULT_CAMERA_FAR = 1000;\n\n/**\n * reuse custom event preventing from re-create them in every frame\n */\nvar mountedEvent = new CustomEvent(ElementEvent.MOUNTED);\nvar unmountedEvent = new CustomEvent(ElementEvent.UNMOUNTED);\nvar beforeRenderEvent = new CustomEvent(CanvasEvent.BEFORE_RENDER);\nvar rerenderEvent = new CustomEvent(CanvasEvent.RERENDER);\nvar afterRenderEvent = new CustomEvent(CanvasEvent.AFTER_RENDER);\n\n/**\n * can be treated like Window in DOM\n * provide some extra methods like `window`, such as:\n * * `window.requestAnimationFrame`\n * * `window.devicePixelRatio`\n *\n * prototype chains: Canvas(Window) -> EventTarget\n *\n * @docs https://g.antv.antgroup.com/api/canvas/intro\n */\nvar Canvas = /*#__PURE__*/function (_EventTarget) {\n function Canvas(config) {\n var _this;\n _classCallCheck(this, Canvas);\n _this = _callSuper(this, Canvas);\n // #region environment\n /**\n * window.document\n */\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element\n */\n _this.Element = DisplayObject;\n _this.inited = false;\n _this.context = {};\n var container = config.container,\n canvas = config.canvas,\n renderer = config.renderer,\n width = config.width,\n height = config.height,\n background = config.background,\n cursor = config.cursor,\n supportsMutipleCanvasesInOneContainer = config.supportsMutipleCanvasesInOneContainer,\n _config$cleanUpOnDest = config.cleanUpOnDestroy,\n cleanUpOnDestroy = _config$cleanUpOnDest === void 0 ? true : _config$cleanUpOnDest,\n offscreenCanvas = config.offscreenCanvas,\n devicePixelRatio = config.devicePixelRatio,\n requestAnimationFrame = config.requestAnimationFrame,\n cancelAnimationFrame = config.cancelAnimationFrame,\n createImage = config.createImage,\n supportsTouchEvents = config.supportsTouchEvents,\n supportsPointerEvents = config.supportsPointerEvents,\n isTouchEvent = config.isTouchEvent,\n isMouseEvent = config.isMouseEvent,\n dblClickSpeed = config.dblClickSpeed;\n var canvasWidth = width;\n var canvasHeight = height;\n var dpr = devicePixelRatio || isBrowser && window.devicePixelRatio || 1;\n dpr = dpr >= 1 ? Math.ceil(dpr) : 1;\n\n // use user-defined <canvas> or OffscreenCanvas\n if (canvas) {\n // infer width & height with dpr\n canvasWidth = width || getWidth(canvas) || canvas.width / dpr;\n canvasHeight = height || getHeight(canvas) || canvas.height / dpr;\n }\n\n /**\n * implements `Window` interface\n */\n _this.customElements = new CustomElementRegistry();\n _this.devicePixelRatio = dpr;\n _this.requestAnimationFrame = requestAnimationFrame !== null && requestAnimationFrame !== void 0 ? requestAnimationFrame : raf.bind(runtime.globalThis);\n _this.cancelAnimationFrame = cancelAnimationFrame !== null && cancelAnimationFrame !== void 0 ? cancelAnimationFrame : caf.bind(runtime.globalThis);\n _this.createImage = createImage !== null && createImage !== void 0 ? createImage : function () {\n return new window.Image();\n };\n // the following feature-detect from hammer.js\n // @see https://github.com/hammerjs/hammer.js/blob/master/src/inputjs/input-consts.js#L5\n _this.supportsTouchEvents = supportsTouchEvents !== null && supportsTouchEvents !== void 0 ? supportsTouchEvents : 'ontouchstart' in runtime.globalThis;\n _this.supportsPointerEvents = supportsPointerEvents !== null && supportsPointerEvents !== void 0 ? supportsPointerEvents : !!runtime.globalThis.PointerEvent;\n _this.isTouchEvent = isTouchEvent !== null && isTouchEvent !== void 0 ? isTouchEvent : function (event) {\n return _this.supportsTouchEvents && event instanceof runtime.globalThis.TouchEvent;\n };\n _this.isMouseEvent = isMouseEvent !== null && isMouseEvent !== void 0 ? isMouseEvent : function (event) {\n return !runtime.globalThis.MouseEvent || event instanceof runtime.globalThis.MouseEvent && (!_this.supportsPointerEvents || !(event instanceof runtime.globalThis.PointerEvent));\n };\n\n // override it in runtime\n if (offscreenCanvas) {\n runtime.offscreenCanvas = offscreenCanvas;\n }\n\n // create document\n _this.document = new Document();\n _this.document.defaultView = _this;\n if (!supportsMutipleCanvasesInOneContainer) {\n cleanExistedCanvas(container, _this, cleanUpOnDestroy);\n }\n _this.initRenderingContext(_objectSpread(_objectSpread({}, config), {}, {\n width: canvasWidth,\n height: canvasHeight,\n background: background !== null && background !== void 0 ? background : 'transparent',\n cursor: cursor !== null && cursor !== void 0 ? cursor : 'default',\n cleanUpOnDestroy: cleanUpOnDestroy,\n devicePixelRatio: dpr,\n requestAnimationFrame: _this.requestAnimationFrame,\n cancelAnimationFrame: _this.cancelAnimationFrame,\n createImage: _this.createImage,\n supportsTouchEvents: _this.supportsTouchEvents,\n supportsPointerEvents: _this.supportsPointerEvents,\n isTouchEvent: _this.isTouchEvent,\n isMouseEvent: _this.isMouseEvent,\n dblClickSpeed: dblClickSpeed !== null && dblClickSpeed !== void 0 ? dblClickSpeed : 200\n }));\n _this.initDefaultCamera(canvasWidth, canvasHeight, renderer.clipSpaceNearZ);\n _this.initRenderer(renderer, true);\n return _this;\n }\n _inherits(Canvas, _EventTarget);\n return _createClass(Canvas, [{\n key: \"initRenderingContext\",\n value: function initRenderingContext(mergedConfig) {\n this.context.config = mergedConfig;\n\n // bind rendering context, shared by all renderers\n this.context.renderingContext = {\n /**\n * the root node in scene graph\n */\n root: this.document.documentElement,\n unculledEntities: [],\n renderListCurrentFrame: [],\n renderReasons: new Set(),\n force: false,\n dirty: false\n };\n }\n }, {\n key: \"initDefaultCamera\",\n value: function initDefaultCamera(width, height, clipSpaceNearZ) {\n var _this2 = this;\n // set a default ortho camera\n var camera = new runtime.CameraContribution();\n camera.clipSpaceNearZ = clipSpaceNearZ;\n camera.setType(CameraType.EXPLORING, CameraTrackingMode.DEFAULT).setPosition(width / 2, height / 2, DEFAULT_CAMERA_Z).setFocalPoint(width / 2, height / 2, 0).setOrthographic(width / -2, width / 2, height / 2, height / -2, DEFAULT_CAMERA_NEAR, DEFAULT_CAMERA_FAR);\n\n // keep ref since it will use raf in camera animation\n camera.canvas = this;\n\n // redraw when camera changed\n camera.eventEmitter.on(CameraEvent.UPDATED, function () {\n _this2.context.renderingContext.renderReasons.add(RenderReason.CAMERA_CHANGED);\n if (runtime.enableSizeAttenuation && _this2.getConfig().renderer.getConfig().enableSizeAttenuation) {\n _this2.updateSizeAttenuation();\n }\n });\n\n // bind camera\n this.context.camera = camera;\n }\n }, {\n key: \"updateSizeAttenuation\",\n value: function updateSizeAttenuation() {\n var zoom = this.getCamera().getZoom();\n this.document.documentElement.forEach(function (node) {\n runtime.styleValueRegistry.updateSizeAttenuation(node, zoom);\n });\n }\n }, {\n key: \"getConfig\",\n value: function getConfig() {\n return this.context.config;\n }\n\n /**\n * get the root displayObject in scenegraph\n * @alias this.document.documentElement\n */\n }, {\n key: \"getRoot\",\n value: function getRoot() {\n return this.document.documentElement;\n }\n\n /**\n * get the camera of canvas\n */\n }, {\n key: \"getCamera\",\n value: function getCamera() {\n return this.context.camera;\n }\n }, {\n key: \"getContextService\",\n value: function getContextService() {\n return this.context.contextService;\n }\n }, {\n key: \"getEventService\",\n value: function getEventService() {\n return this.context.eventService;\n }\n }, {\n key: \"getRenderingService\",\n value: function getRenderingService() {\n return this.context.renderingService;\n }\n }, {\n key: \"getRenderingContext\",\n value: function getRenderingContext() {\n return this.context.renderingContext;\n }\n }, {\n key: \"getStats\",\n value: function getStats() {\n return this.getRenderingService().getStats();\n }\n\n // /**\n // * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Window/getComputedStyle\n // */\n // getComputedStyle(node: DisplayObject) {\n // return node.computedStyle;\n // }\n }, {\n key: \"ready\",\n get: function get() {\n var _this3 = this;\n if (!this.readyPromise) {\n this.readyPromise = new Promise(function (resolve) {\n _this3.resolveReadyPromise = function () {\n resolve(_this3);\n };\n });\n if (this.inited) {\n this.resolveReadyPromise();\n }\n }\n return this.readyPromise;\n }\n\n /**\n * @param cleanUp - whether to clean up all the internal services of Canvas\n * @param skipTriggerEvent - whether to skip trigger destroy event\n */\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this$getConfig$futur;\n var cleanUp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var skipTriggerEvent = arguments.length > 1 ? arguments[1] : undefined;\n memoize.clearCache();\n var enableCancelEventPropagation = ((_this$getConfig$futur = this.getConfig().future) === null || _this$getConfig$futur === void 0 ? void 0 : _this$getConfig$futur.experimentalCancelEventPropagation) === true;\n if (!skipTriggerEvent) {\n this.dispatchEvent(new CustomEvent(CanvasEvent.BEFORE_DESTROY), enableCancelEventPropagation, enableCancelEventPropagation);\n }\n if (this.frameId) {\n this.cancelAnimationFrame(this.frameId);\n }\n\n // unmount all children\n var root = this.getRoot();\n if (cleanUp) {\n this.unmountChildren(root);\n // destroy Document\n this.document.destroy();\n this.getEventService().destroy();\n }\n\n // destroy services\n this.getRenderingService().destroy();\n this.getContextService().destroy();\n\n // clear root after render service destroyed\n\n if (!skipTriggerEvent) {\n this.dispatchEvent(new CustomEvent(CanvasEvent.AFTER_DESTROY), enableCancelEventPropagation, enableCancelEventPropagation);\n }\n var clearEventRetain = function clearEventRetain(event) {\n event.currentTarget = null;\n event.manager = null;\n event.target = null;\n event.relatedNode = null;\n };\n clearEventRetain(mountedEvent);\n clearEventRetain(unmountedEvent);\n clearEventRetain(beforeRenderEvent);\n clearEventRetain(rerenderEvent);\n clearEventRetain(afterRenderEvent);\n clearEventRetain(attrModifiedEvent);\n clearEventRetain(insertedEvent);\n clearEventRetain(removedEvent);\n clearEventRetain(destroyEvent);\n runtime.textService.clearCache();\n }\n\n /**\n * compatible with G 3.0\n * @deprecated\n * @alias resize\n */\n }, {\n key: \"changeSize\",\n value: function changeSize(width, height) {\n this.resize(width, height);\n }\n }, {\n key: \"resize\",\n value: function resize(width, height) {\n var _canvasConfig$future;\n // update canvas' config\n var canvasConfig = this.context.config;\n canvasConfig.width = width;\n canvasConfig.height = height;\n\n // resize context\n this.getContextService().resize(width, height);\n\n // resize camera\n var camera = this.context.camera;\n var projectionMode = camera.getProjectionMode();\n camera.setPosition(width / 2, height / 2, DEFAULT_CAMERA_Z).setFocalPoint(width / 2, height / 2, 0);\n if (projectionMode === CameraProjectionMode.ORTHOGRAPHIC) {\n camera.setOrthographic(width / -2, width / 2, height / 2, height / -2, camera.getNear(), camera.getFar());\n } else {\n camera.setAspect(width / height);\n }\n var enableCancelEventPropagation = ((_canvasConfig$future = canvasConfig.future) === null || _canvasConfig$future === void 0 ? void 0 : _canvasConfig$future.experimentalCancelEventPropagation) === true;\n this.dispatchEvent(new CustomEvent(CanvasEvent.RESIZE, {\n width: width,\n height: height\n }), enableCancelEventPropagation, enableCancelEventPropagation);\n }\n\n // proxy to document.documentElement\n }, {\n key: \"appendChild\",\n value: function appendChild(child, index) {\n return this.document.documentElement.appendChild(child, index);\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(newChild, refChild) {\n return this.document.documentElement.insertBefore(newChild, refChild);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(child) {\n return this.document.documentElement.removeChild(child);\n }\n\n /**\n * Remove all children which can be appended to its original parent later again.\n */\n }, {\n key: \"removeChildren\",\n value: function removeChildren() {\n this.document.documentElement.removeChildren();\n }\n\n /**\n * Recursively destroy all children which can not be appended to its original parent later again.\n * But the canvas remains running which means display objects can be appended later.\n */\n }, {\n key: \"destroyChildren\",\n value: function destroyChildren() {\n this.document.documentElement.destroyChildren();\n }\n }, {\n key: \"render\",\n value: function render(frame) {\n var _this$getConfig$futur2,\n _this4 = this;\n if (frame) {\n beforeRenderEvent.detail = frame;\n afterRenderEvent.detail = frame;\n }\n var enableCancelEventPropagation = ((_this$getConfig$futur2 = this.getConfig().future) === null || _this$getConfig$futur2 === void 0 ? void 0 : _this$getConfig$futur2.experimentalCancelEventPropagation) === true;\n this.dispatchEvent(beforeRenderEvent, enableCancelEventPropagation, enableCancelEventPropagation);\n var renderingService = this.getRenderingService();\n renderingService.render(this, frame, function () {\n // trigger actual rerender event\n // @see https://github.com/antvis/G/issues/1268\n _this4.dispatchEvent(rerenderEvent, enableCancelEventPropagation, enableCancelEventPropagation);\n });\n this.dispatchEvent(afterRenderEvent, enableCancelEventPropagation, enableCancelEventPropagation);\n }\n }, {\n key: \"run\",\n value: function run() {\n var _this5 = this;\n var _tick = function tick(time, frame) {\n _this5.render(frame);\n _this5.frameId = _this5.requestAnimationFrame(_tick);\n };\n _tick();\n }\n }, {\n key: \"initRenderer\",\n value: function initRenderer(renderer) {\n var _this6 = this;\n var firstContentfullPaint = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!renderer) {\n throw new Error('Renderer is required.');\n }\n\n // reset\n this.inited = false;\n this.readyPromise = undefined;\n\n // reset rendering plugins\n this.context.renderingPlugins = [];\n this.context.renderingPlugins.push(new EventPlugin(), new PrepareRendererPlugin(),\n // new DirtyCheckPlugin(),\n new CullingPlugin([new FrustumCullingStrategy()]));\n\n //\n this.loadRendererContainerModule(renderer);\n\n // init context service\n this.context.contextService = new this.context.ContextService(_objectSpread(_objectSpread({}, runtime), this.context));\n\n // init rendering service\n this.context.renderingService = new RenderingService(runtime, this.context);\n\n // init event service\n this.context.eventService = new EventService(runtime, this.context);\n this.context.eventService.init();\n if (this.context.contextService.init) {\n this.context.contextService.init();\n this.initRenderingService(renderer, firstContentfullPaint, true);\n } else {\n this.context.contextService.initAsync().then(function () {\n _this6.initRenderingService(renderer, firstContentfullPaint);\n })[\"catch\"](function (err) {\n console.error(err);\n });\n }\n }\n }, {\n key: \"initRenderingService\",\n value: function initRenderingService(renderer) {\n var _this7 = this;\n var firstContentfullPaint = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var async = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.context.renderingService.init(function () {\n var _this7$getConfig$futu;\n _this7.inited = true;\n var enableCancelEventPropagation = ((_this7$getConfig$futu = _this7.getConfig().future) === null || _this7$getConfig$futu === void 0 ? void 0 : _this7$getConfig$futu.experimentalCancelEventPropagation) === true;\n if (firstContentfullPaint) {\n if (async) {\n _this7.requestAnimationFrame(function () {\n _this7.dispatchEvent(new CustomEvent(CanvasEvent.READY), enableCancelEventPropagation, enableCancelEventPropagation);\n });\n } else {\n _this7.dispatchEvent(new CustomEvent(CanvasEvent.READY), enableCancelEventPropagation, enableCancelEventPropagation);\n }\n } else {\n _this7.dispatchEvent(new CustomEvent(CanvasEvent.RENDERER_CHANGED), enableCancelEventPropagation, enableCancelEventPropagation);\n }\n if (_this7.readyPromise) {\n _this7.resolveReadyPromise();\n }\n if (!firstContentfullPaint) {\n _this7.getRoot().forEach(function (node) {\n var _dirty, _ref;\n (_dirty = (_ref = node).dirty) === null || _dirty === void 0 || _dirty.call(_ref, true, true);\n });\n }\n\n // keep current scenegraph unchanged, just trigger mounted event\n _this7.mountChildren(_this7.getRoot());\n if (renderer.getConfig().enableAutoRendering) {\n _this7.run();\n }\n });\n }\n }, {\n key: \"loadRendererContainerModule\",\n value: function loadRendererContainerModule(renderer) {\n var _this8 = this;\n // load other container modules provided by g-canvas/g-svg/g-webgl\n var plugins = renderer.getPlugins();\n plugins.forEach(function (plugin) {\n plugin.context = _this8.context;\n plugin.init(runtime);\n });\n }\n }, {\n key: \"setRenderer\",\n value: function setRenderer(renderer) {\n // update canvas' config\n var canvasConfig = this.getConfig();\n if (canvasConfig.renderer === renderer) {\n return;\n }\n var oldRenderer = canvasConfig.renderer;\n canvasConfig.renderer = renderer;\n\n // keep all children undestroyed\n this.destroy(false, true);\n\n // destroy all plugins, reverse will mutate origin array\n _toConsumableArray((oldRenderer === null || oldRenderer === void 0 ? void 0 : oldRenderer.getPlugins()) || []).reverse().forEach(function (plugin) {\n plugin.destroy(runtime);\n });\n this.initRenderer(renderer);\n }\n }, {\n key: \"setCursor\",\n value: function setCursor(cursor) {\n var canvasConfig = this.getConfig();\n canvasConfig.cursor = cursor;\n this.getContextService().applyCursorStyle(cursor);\n }\n }, {\n key: \"unmountChildren\",\n value: function unmountChildren(parent) {\n var _this9 = this;\n // unmountChildren recursively\n parent.childNodes.forEach(function (child) {\n _this9.unmountChildren(child);\n });\n if (this.inited) {\n if (parent.isMutationObserved) {\n parent.dispatchEvent(unmountedEvent);\n } else {\n var _this$getConfig$futur3;\n var enableCancelEventPropagation = ((_this$getConfig$futur3 = this.getConfig().future) === null || _this$getConfig$futur3 === void 0 ? void 0 : _this$getConfig$futur3.experimentalCancelEventPropagation) === true;\n unmountedEvent.target = parent;\n this.dispatchEvent(unmountedEvent, true, enableCancelEventPropagation);\n }\n\n // skip document.documentElement\n if (parent !== this.document.documentElement) {\n parent.ownerDocument = null;\n }\n parent.isConnected = false;\n }\n\n // trigger after unmounted\n if (parent.isCustomElement) {\n if (parent.disconnectedCallback) {\n parent.disconnectedCallback();\n }\n }\n }\n }, {\n key: \"mountChildren\",\n value: function mountChildren(child) {\n var _this0 = this;\n var skipTriggerEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isInFragment(child);\n if (this.inited) {\n if (!child.isConnected) {\n child.ownerDocument = this.document;\n child.isConnected = true;\n if (!skipTriggerEvent) {\n if (child.isMutationObserved) {\n child.dispatchEvent(mountedEvent);\n } else {\n var _this$getConfig$futur4;\n var enableCancelEventPropagation = ((_this$getConfig$futur4 = this.getConfig().future) === null || _this$getConfig$futur4 === void 0 ? void 0 : _this$getConfig$futur4.experimentalCancelEventPropagation) === true;\n mountedEvent.target = child;\n this.dispatchEvent(mountedEvent, true, enableCancelEventPropagation);\n }\n }\n }\n } else {\n console.warn(\"[g]: You are trying to call `canvas.appendChild` before canvas' initialization finished. You can either await `canvas.ready` or listen to `CanvasEvent.READY` manually.\", 'appended child: ', child.nodeName);\n }\n\n // recursively mount children\n child.childNodes.forEach(function (c) {\n _this0.mountChildren(c, skipTriggerEvent);\n });\n\n // trigger after mounted\n if (child.isCustomElement) {\n if (child.connectedCallback) {\n child.connectedCallback();\n }\n }\n }\n }, {\n key: \"mountFragment\",\n value: function mountFragment(child) {\n this.mountChildren(child, false);\n }\n }, {\n key: \"client2Viewport\",\n value: function client2Viewport(client) {\n return this.getEventService().client2Viewport(client);\n }\n }, {\n key: \"viewport2Client\",\n value: function viewport2Client(canvas) {\n return this.getEventService().viewport2Client(canvas);\n }\n }, {\n key: \"viewport2Canvas\",\n value: function viewport2Canvas(viewport) {\n return this.getEventService().viewport2Canvas(viewport);\n }\n }, {\n key: \"canvas2Viewport\",\n value: function canvas2Viewport(canvas) {\n return this.getEventService().canvas2Viewport(canvas);\n }\n\n /**\n * @deprecated\n * @alias client2Viewport\n */\n }, {\n key: \"getPointByClient\",\n value: function getPointByClient(clientX, clientY) {\n return this.client2Viewport({\n x: clientX,\n y: clientY\n });\n }\n\n /**\n * @deprecated\n * @alias viewport2Client\n */\n }, {\n key: \"getClientByPoint\",\n value: function getClientByPoint(x, y) {\n return this.viewport2Client({\n x: x,\n y: y\n });\n }\n }]);\n}(EventTarget);\n\nvar uidCounter = 0;\nvar registrationsTable = new WeakMap();\nvar MutationRecord = /*#__PURE__*/function () {\n function MutationRecord(type, target) {\n _classCallCheck(this, MutationRecord);\n this.addedNodes = [];\n this.attributeName = null;\n this.attributeNamespace = null;\n this.nextSibling = null;\n this.oldValue = null;\n this.previousSibling = null;\n this.removedNodes = [];\n this.type = type;\n this.target = target;\n }\n return _createClass(MutationRecord, null, [{\n key: \"copy\",\n value: function copy(original) {\n var record = new MutationRecord(original.type, original.target);\n record.addedNodes = original.addedNodes.slice();\n record.removedNodes = original.removedNodes.slice();\n record.previousSibling = original.previousSibling;\n record.nextSibling = original.nextSibling;\n record.attributeName = original.attributeName;\n record.attributeNamespace = original.attributeNamespace;\n record.oldValue = original.oldValue;\n return record;\n }\n }]);\n}();\nvar Registration = /*#__PURE__*/function () {\n function Registration(observer, target, options) {\n _classCallCheck(this, Registration);\n this.transientObservedNodes = [];\n this.observer = observer;\n this.target = target;\n this.options = options;\n }\n return _createClass(Registration, [{\n key: \"enqueue\",\n value: function enqueue(record) {\n var records = this.observer.records;\n var length = records.length;\n\n // There are cases where we replace the last record with the new record.\n // For example if the record represents the same mutation we need to use\n // the one with the oldValue. If we get same record (this can happen as we\n // walk up the tree) we ignore the new record.\n if (records.length > 0) {\n var lastRecord = records[length - 1];\n var recordToReplaceLast = selectRecord(lastRecord, record);\n if (recordToReplaceLast) {\n records[length - 1] = recordToReplaceLast;\n return;\n }\n } else {\n scheduleCallback(this.observer);\n }\n records[length] = record;\n }\n }, {\n key: \"addListeners\",\n value: function addListeners() {\n this.addListeners_(this.target);\n }\n }, {\n key: \"addListeners_\",\n value: function addListeners_(node) {\n var options = this.options;\n if (options.attributes) node.addEventListener(ElementEvent.ATTR_MODIFIED, this, true);\n\n // if (options.characterData) node.addEventListener('DOMCharacterDataModified', this, true);\n\n if (options.childList) node.addEventListener(ElementEvent.INSERTED, this, true);\n if (options.childList || options.subtree) node.addEventListener(ElementEvent.REMOVED, this, true);\n }\n }, {\n key: \"removeListeners\",\n value: function removeListeners() {\n this.removeListeners_(this.target);\n }\n }, {\n key: \"removeListeners_\",\n value: function removeListeners_(node) {\n var options = this.options;\n if (options.attributes) node.removeEventListener(ElementEvent.ATTR_MODIFIED, this, true);\n\n // if (options.characterData) node.removeEventListener('DOMCharacterDataModified', this, true);\n\n if (options.childList) node.removeEventListener(ElementEvent.INSERTED, this, true);\n if (options.childList || options.subtree) node.removeEventListener(ElementEvent.REMOVED, this, true);\n }\n\n /**\n * Adds a transient observer on node. The transient observer gets removed\n * next time we deliver the change records.\n */\n // addTransientObserver(node: Node) {\n // // Don't add transient observers on the target itself. We already have all\n // // the required listeners set up on the target.\n // if (node === this.target) return;\n\n // this.addListeners_(node);\n // this.transientObservedNodes.push(node);\n // let registrations = registrationsTable.get(node);\n // if (!registrations) registrationsTable.set(node, (registrations = []));\n\n // // We know that registrations does not contain this because we already\n // // checked if node === this.target.\n // registrations.push(this);\n // }\n }, {\n key: \"removeTransientObservers\",\n value: function removeTransientObservers() {\n var transientObservedNodes = this.transientObservedNodes;\n this.transientObservedNodes = [];\n transientObservedNodes.forEach(function (node) {\n // Transient observers are never added to the target.\n this.removeListeners_(node);\n var registrations = registrationsTable.get(node);\n for (var i = 0; i < registrations.length; i++) {\n if (registrations[i] === this) {\n registrations.splice(i, 1);\n // Each node can only have one registered observer associated with\n // this observer.\n break;\n }\n }\n }, this);\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e) {\n // Stop propagation since we are managing the propagation manually.\n // This means that other mutation events on the page will not work\n // correctly but that is by design.\n e.stopImmediatePropagation();\n var record;\n var target;\n switch (e.type) {\n case ElementEvent.ATTR_MODIFIED:\n // http://dom.spec.whatwg.org/#concept-mo-queue-attributes\n\n var name = e.attrName;\n // @ts-ignore\n var namespace = e.relatedNode.namespaceURI;\n target = e.target;\n\n // 1.\n record = getRecord('attributes', target);\n record.attributeName = name;\n record.attributeNamespace = namespace;\n\n // 2.\n var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue;\n forEachAncestorAndObserverEnqueueRecord(target, function (options) {\n // 3.1, 4.2\n if (!options.attributes) return;\n\n // 3.2, 4.3\n if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) {\n return;\n }\n // 3.3, 4.4\n if (options.attributeOldValue) return getRecordWithOldValue(oldValue);\n\n // 3.4, 4.5\n return record;\n });\n break;\n\n // case 'DOMCharacterDataModified':\n // // http://dom.spec.whatwg.org/#concept-mo-queue-characterdata\n // var target = e.target;\n\n // // 1.\n // var record = getRecord('characterData', target);\n\n // // 2.\n // var oldValue = e.prevValue;\n\n // forEachAncestorAndObserverEnqueueRecord(target, function(options) {\n // // 3.1, 4.2\n // if (!options.characterData)\n // return;\n\n // // 3.2, 4.3\n // if (options.characterDataOldValue)\n // return getRecordWithOldValue(oldValue);\n\n // // 3.3, 4.4\n // return record;\n // });\n\n // break;\n\n case ElementEvent.REMOVED:\n // this.addTransientObserver(e.target as Node);\n // Fall through.\n case ElementEvent.INSERTED:\n // http://dom.spec.whatwg.org/#concept-mo-queue-childlist\n target = e.relatedNode;\n var changedNode = e.target;\n var addedNodes;\n var removedNodes;\n if (e.type === ElementEvent.INSERTED) {\n addedNodes = [changedNode];\n removedNodes = [];\n } else {\n addedNodes = [];\n removedNodes = [changedNode];\n }\n var previousSibling = changedNode.previousSibling;\n var nextSibling = changedNode.nextSibling;\n\n // 1.\n record = getRecord('childList', target);\n record.addedNodes = addedNodes;\n record.removedNodes = removedNodes;\n record.previousSibling = previousSibling;\n record.nextSibling = nextSibling;\n forEachAncestorAndObserverEnqueueRecord(target, function (options) {\n // 2.1, 3.2\n if (!options.childList) return;\n\n // 2.2, 3.3\n return record;\n });\n }\n clearRecords();\n }\n }]);\n}();\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver\n * @see https://github.com/googlearchive/MutationObservers/blob/master/MutationObserver.js\n */\nvar MutationObserver = /*#__PURE__*/function () {\n function MutationObserver(callback) {\n _classCallCheck(this, MutationObserver);\n this.nodes = [];\n this.records = [];\n this.uid = uidCounter++;\n this.callback = callback;\n }\n return _createClass(MutationObserver, [{\n key: \"observe\",\n value: function observe(target, options) {\n // 1.1\n if (!options.childList && !options.attributes && !options.characterData ||\n // 1.2\n options.attributeOldValue && !options.attributes ||\n // 1.3\n options.attributeFilter && options.attributeFilter.length && !options.attributes ||\n // 1.4\n options.characterDataOldValue && !options.characterData) {\n throw new SyntaxError();\n }\n var registrations = registrationsTable.get(target);\n if (!registrations) registrationsTable.set(target, registrations = []);\n\n // 2\n // If target's list of registered observers already includes a registered\n // observer associated with the context object, replace that registered\n // observer's options with options.\n var registration;\n for (var i = 0; i < registrations.length; i++) {\n if (registrations[i].observer === this) {\n registration = registrations[i];\n registration.removeListeners();\n registration.options = options;\n break;\n }\n }\n\n // 3.\n // Otherwise, add a new registered observer to target's list of registered\n // observers with the context object as the observer and options as the\n // options, and add target to context object's list of nodes on which it\n // is registered.\n if (!registration) {\n registration = new Registration(this, target, options);\n registrations.push(registration);\n this.nodes.push(target);\n }\n registration.addListeners();\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n var _this = this;\n this.nodes.forEach(function (node) {\n var registrations = registrationsTable.get(node);\n for (var i = 0; i < registrations.length; i++) {\n var registration = registrations[i];\n if (registration.observer === _this) {\n registration.removeListeners();\n registrations.splice(i, 1);\n // Each node can only have one registered observer associated with\n // this observer.\n break;\n }\n }\n }, this);\n this.records = [];\n }\n }, {\n key: \"takeRecords\",\n value: function takeRecords() {\n var copyOfRecords = this.records;\n this.records = [];\n return copyOfRecords;\n }\n }]);\n}();\n\n// We keep track of the two (possibly one) records used in a single mutation.\nvar currentRecord;\nvar recordWithOldValue;\n\n/**\n * Creates a record without |oldValue| and caches it as |currentRecord| for\n * later use.\n */\nfunction getRecord(type, target) {\n return currentRecord = new MutationRecord(type, target);\n}\n\n/**\n * Gets or creates a record with |oldValue| based in the |currentRecord|\n */\nfunction getRecordWithOldValue(oldValue) {\n if (recordWithOldValue) return recordWithOldValue;\n recordWithOldValue = MutationRecord.copy(currentRecord);\n recordWithOldValue.oldValue = oldValue;\n return recordWithOldValue;\n}\nfunction clearRecords() {\n currentRecord = recordWithOldValue = undefined;\n}\n\n/**\n * Whether the record represents a record from the current\n * mutation event.\n */\nfunction recordRepresentsCurrentMutation(record) {\n return record === recordWithOldValue || record === currentRecord;\n}\n\n/**\n * Selects which record, if any, to replace the last record in the queue.\n * This returns |null| if no record should be replaced.\n */\nfunction selectRecord(lastRecord, newRecord) {\n if (lastRecord === newRecord) return lastRecord;\n\n // Check if the the record we are adding represents the same record. If\n // so, we keep the one with the oldValue in it.\n if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue;\n return null;\n}\nfunction removeTransientObserversFor(observer) {\n observer.nodes.forEach(function (node) {\n var registrations = registrationsTable.get(node);\n if (!registrations) return;\n registrations.forEach(function (registration) {\n if (registration.observer === observer) registration.removeTransientObservers();\n });\n });\n}\n\n/**\n * This function is used for the \"For each registered observer observer (with\n * observer's options as options) in target's list of registered observers,\n * run these substeps:\" and the \"For each ancestor ancestor of target, and for\n * each registered observer observer (with options options) in ancestor's list\n * of registered observers, run these substeps:\" part of the algorithms. The\n * |options.subtree| is checked to ensure that the callback is called\n * correctly.\n *\n * @param {Node} target\n * @param {function(MutationObserverInit):MutationRecord} callback\n */\nfunction forEachAncestorAndObserverEnqueueRecord(target, callback) {\n for (var node = target; node; node = node.parentNode) {\n var registrations = registrationsTable.get(node);\n if (registrations) {\n for (var j = 0; j < registrations.length; j++) {\n var registration = registrations[j];\n var _options = registration.options;\n\n // Only target ignores subtree.\n if (node !== target && !_options.subtree) continue;\n var record = callback(_options);\n if (record) registration.enqueue(record);\n }\n }\n }\n}\n\n// This is used to ensure that we never schedule 2 callas to setImmediate\nvar isScheduled = false;\n\n// Keep track of observers that needs to be notified next time.\nvar scheduledObservers = [];\n\n/**\n * Schedules |dispatchCallback| to be called in the future.\n */\nfunction scheduleCallback(observer) {\n scheduledObservers.push(observer);\n if (!isScheduled) {\n isScheduled = true;\n // setImmediate(dispatchCallbacks);\n if (typeof runtime.globalThis !== 'undefined') {\n runtime.globalThis.setTimeout(dispatchCallbacks);\n } else {\n dispatchCallbacks();\n }\n }\n}\nfunction dispatchCallbacks() {\n // http://dom.spec.whatwg.org/#mutation-observers\n\n isScheduled = false; // Used to allow a new setImmediate call above.\n\n var observers = scheduledObservers;\n scheduledObservers = [];\n // Sort observers based on their creation UID (incremental).\n observers.sort(function (o1, o2) {\n return o1.uid - o2.uid;\n });\n var anyNonEmpty = false;\n observers.forEach(function (observer) {\n // 2.1, 2.2\n var queue = observer.takeRecords();\n // 2.3. Remove all transient registered observers whose observer is mo.\n removeTransientObserversFor(observer);\n\n // 2.4\n if (queue.length) {\n // @ts-ignore\n observer.callback(queue, observer);\n anyNonEmpty = true;\n }\n });\n\n // 3.\n if (anyNonEmpty) dispatchCallbacks();\n}\n\nvar RefCountCache = /*#__PURE__*/function () {\n function RefCountCache() {\n _classCallCheck(this, RefCountCache);\n this.cacheStore = new Map();\n }\n return _createClass(RefCountCache, [{\n key: \"onRefAdded\",\n value: function onRefAdded(ref) {}\n }, {\n key: \"has\",\n value: function has(key) {\n return this.cacheStore.has(key);\n }\n }, {\n key: \"put\",\n value: function put(key, item, ref) {\n if (this.cacheStore.has(key)) {\n return false;\n }\n this.cacheStore.set(key, {\n value: item,\n counter: new Set([ref.entity])\n });\n this.onRefAdded(ref);\n return true;\n }\n }, {\n key: \"get\",\n value: function get(key, ref) {\n var cacheItem = this.cacheStore.get(key);\n if (!cacheItem) {\n return null;\n }\n if (!cacheItem.counter.has(ref.entity)) {\n cacheItem.counter.add(ref.entity);\n this.onRefAdded(ref);\n }\n return cacheItem.value;\n }\n }, {\n key: \"update\",\n value: function update(key, value, ref) {\n var cacheItem = this.cacheStore.get(key);\n if (!cacheItem) {\n return false;\n }\n cacheItem.value = _objectSpread(_objectSpread({}, cacheItem.value), value);\n if (!cacheItem.counter.has(ref.entity)) {\n cacheItem.counter.add(ref.entity);\n this.onRefAdded(ref);\n }\n return true;\n }\n }, {\n key: \"release\",\n value: function release(key, ref) {\n var cacheItem = this.cacheStore.get(key);\n if (!cacheItem) {\n return false;\n }\n cacheItem.counter[\"delete\"](ref.entity);\n if (cacheItem.counter.size <= 0) {\n this.cacheStore[\"delete\"](key);\n }\n return true;\n }\n }, {\n key: \"releaseRef\",\n value: function releaseRef(ref) {\n var _this = this;\n Array.from(this.cacheStore.keys()).forEach(function (key) {\n _this.release(key, ref);\n });\n }\n }, {\n key: \"getSize\",\n value: function getSize() {\n return this.cacheStore.size;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.cacheStore.clear();\n }\n }]);\n}();\n\nvar tasks = [];\nvar nextFrameTasks = [];\nvar ImageSlicer = /*#__PURE__*/function () {\n function ImageSlicer() {\n _classCallCheck(this, ImageSlicer);\n }\n return _createClass(ImageSlicer, null, [{\n key: \"stop\",\n value: function stop() {\n var api = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ImageSlicer.api;\n if (ImageSlicer.rafId) {\n api.cancelAnimationFrame(ImageSlicer.rafId);\n ImageSlicer.rafId = null;\n }\n }\n }, {\n key: \"executeTask\",\n value: function executeTask() {\n var api = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ImageSlicer.api;\n if (tasks.length <= 0 && nextFrameTasks.length <= 0) {\n return;\n }\n nextFrameTasks.forEach(function (task) {\n return task();\n });\n nextFrameTasks = tasks.splice(0, ImageSlicer.TASK_NUM_PER_FRAME);\n ImageSlicer.rafId = api.requestAnimationFrame(function () {\n ImageSlicer.executeTask(api);\n });\n }\n }, {\n key: \"sliceImage\",\n value: function sliceImage(image, sliceWidth, sliceHeight, rerender) {\n var overlap = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var api = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : ImageSlicer.api;\n var imageWidth = image.naturalWidth || image.width;\n var imageHeight = image.naturalHeight || image.height;\n\n // 计算步长(考虑重叠区域)\n var strideW = sliceWidth - overlap;\n var strideH = sliceHeight - overlap;\n\n // 计算网格尺寸\n var gridCols = Math.ceil(imageWidth / strideW);\n var gridRows = Math.ceil(imageHeight / strideH);\n var result = {\n tileSize: [sliceWidth, sliceHeight],\n gridSize: [gridRows, gridCols],\n tiles: Array(gridRows).fill(null).map(function () {\n return Array(gridCols).fill(null);\n })\n };\n\n // 遍历网格创建切片\n var _loop = function _loop(row) {\n var _loop2 = function _loop2(col) {\n tasks.push(function () {\n // 计算当前切片的坐标\n var startX = col * strideW;\n var startY = row * strideH;\n\n // 处理最后一列/行的特殊情况\n var _ref = [Math.min(sliceWidth, imageWidth - startX), Math.min(sliceHeight, imageHeight - startY)],\n tempSliceWidth = _ref[0],\n tempSliceHeight = _ref[1];\n\n // 创建切片canvas\n var sliceCanvas = api.createCanvas();\n sliceCanvas.width = sliceWidth;\n sliceCanvas.height = sliceHeight;\n var sliceCtx = sliceCanvas.getContext('2d');\n\n // 将图像部分绘制到切片canvas上\n sliceCtx.drawImage(image, startX, startY, tempSliceWidth, tempSliceHeight, 0, 0, tempSliceWidth, tempSliceHeight);\n\n // 存储切片信息\n result.tiles[row][col] = {\n x: startX,\n y: startY,\n tileX: col,\n tileY: row,\n data: sliceCanvas\n };\n rerender();\n });\n };\n for (var col = 0; col < gridCols; col++) {\n _loop2(col);\n }\n };\n for (var row = 0; row < gridRows; row++) {\n _loop(row);\n }\n ImageSlicer.stop();\n ImageSlicer.executeTask();\n return result;\n }\n }]);\n}();\nImageSlicer.TASK_NUM_PER_FRAME = 10;\n\nvar IMAGE_CACHE = new RefCountCache();\nIMAGE_CACHE.onRefAdded = function onRefAdded(ref) {\n var _this = this;\n ref.addEventListener(ElementEvent.DESTROY, function () {\n _this.releaseRef(ref);\n }, {\n once: true\n });\n};\nvar ImagePool = /*#__PURE__*/function () {\n function ImagePool(context, runtime) {\n _classCallCheck(this, ImagePool);\n this.gradientCache = {};\n this.patternCache = {};\n this.context = context;\n this.runtime = runtime;\n }\n return _createClass(ImagePool, [{\n key: \"getImageSync\",\n value: function getImageSync(src, ref, callback) {\n var imageSource = isString(src) ? src : src.src;\n if (IMAGE_CACHE.has(imageSource)) {\n var imageCache = IMAGE_CACHE.get(imageSource, ref);\n if (imageCache.img.complete) {\n callback === null || callback === void 0 || callback(imageCache);\n return imageCache;\n }\n }\n this.getOrCreateImage(src, ref).then(function (cache) {\n callback === null || callback === void 0 || callback(cache);\n })[\"catch\"](function (reason) {\n console.error(reason);\n });\n return null;\n }\n }, {\n key: \"getOrCreateImage\",\n value: function getOrCreateImage(src, ref) {\n var _this2 = this;\n var imageSource = isString(src) ? src : src.src;\n if (!isString(src) && !IMAGE_CACHE.has(imageSource)) {\n var imageCache = {\n img: src,\n size: [src.naturalWidth || src.width, src.naturalHeight || src.height],\n tileSize: calculateImageTileSize(src)\n };\n IMAGE_CACHE.put(imageSource, imageCache, ref);\n }\n if (IMAGE_CACHE.has(imageSource)) {\n var _imageCache = IMAGE_CACHE.get(imageSource, ref);\n if (_imageCache.img.complete) {\n return Promise.resolve(_imageCache);\n }\n return new Promise(function (resolve, reject) {\n _imageCache.img.addEventListener('load', function () {\n _imageCache.size = [_imageCache.img.naturalWidth || _imageCache.img.width, _imageCache.img.naturalHeight || _imageCache.img.height];\n _imageCache.tileSize = calculateImageTileSize(_imageCache.img);\n resolve(_imageCache);\n });\n _imageCache.img.addEventListener('error', function (ev) {\n reject(ev);\n });\n });\n }\n return new Promise(function (resolve, reject) {\n // @see https://github.com/antvis/g/issues/938\n var image = _this2.context.config.createImage();\n if (image) {\n var _imageCache2 = {\n img: image,\n size: [0, 0],\n tileSize: calculateImageTileSize(image)\n };\n IMAGE_CACHE.put(imageSource, _imageCache2, ref);\n image.onload = function () {\n _imageCache2.size = [image.naturalWidth || image.width, image.naturalHeight || image.height];\n _imageCache2.tileSize = calculateImageTileSize(_imageCache2.img);\n resolve(_imageCache2);\n };\n image.onerror = function (ev) {\n reject(ev);\n };\n image.crossOrigin = 'Anonymous';\n image.src = imageSource;\n }\n });\n }\n }, {\n key: \"createDownSampledImage\",\n value: function () {\n var _createDownSampledImage = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(src, ref) {\n var imageCache, enableLargeImageOptimization, _ref, _ref$maxDownSampledIm, maxDownSampledImageSize, _ref$downSamplingRate, downSamplingRateThreshold, createImageBitmapFunc, _imageCache$size, originWidth, originHeight, resizedImage, downSamplingRate, updateCache;\n return _regeneratorRuntime().wrap(function (_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 1;\n return this.getOrCreateImage(src, ref);\n case 1:\n imageCache = _context.sent;\n if (!(typeof imageCache.downSamplingRate !== 'undefined')) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\", imageCache);\n case 2:\n enableLargeImageOptimization = this.context.config.enableLargeImageOptimization;\n _ref = typeof enableLargeImageOptimization === 'boolean' ? {} : enableLargeImageOptimization, _ref$maxDownSampledIm = _ref.maxDownSampledImageSize, maxDownSampledImageSize = _ref$maxDownSampledIm === void 0 ? 2048 : _ref$maxDownSampledIm, _ref$downSamplingRate = _ref.downSamplingRateThreshold, downSamplingRateThreshold = _ref$downSamplingRate === void 0 ? 0.5 : _ref$downSamplingRate;\n createImageBitmapFunc = this.runtime.globalThis.createImageBitmap;\n _imageCache$size = _slicedToArray(imageCache.size, 2), originWidth = _imageCache$size[0], originHeight = _imageCache$size[1];\n resizedImage = imageCache.img;\n downSamplingRate = Math.min((maxDownSampledImageSize + maxDownSampledImageSize) / (originWidth + originHeight), Math.max(0.01, Math.min(downSamplingRateThreshold, 0.5)));\n updateCache = _objectSpread(_objectSpread({}, imageCache), {}, {\n downSamplingRate: downSamplingRate\n });\n IMAGE_CACHE.update(imageCache.img.src, updateCache, ref);\n if (!createImageBitmapFunc) {\n _context.next = 7;\n break;\n }\n _context.prev = 3;\n _context.next = 4;\n return createImageBitmapFunc(imageCache.img, {\n resizeWidth: originWidth * downSamplingRate,\n resizeHeight: originHeight * downSamplingRate\n });\n case 4:\n resizedImage = _context.sent;\n _context.next = 6;\n break;\n case 5:\n _context.prev = 5;\n _context[\"catch\"](3);\n downSamplingRate = 1;\n case 6:\n _context.next = 8;\n break;\n case 7:\n downSamplingRate = 1;\n case 8:\n updateCache = _objectSpread(_objectSpread({}, this.getImageSync(src, ref)), {}, {\n downSampled: resizedImage,\n downSamplingRate: downSamplingRate\n });\n IMAGE_CACHE.update(imageCache.img.src, updateCache, ref);\n return _context.abrupt(\"return\", updateCache);\n case 9:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[3, 5]]);\n }));\n function createDownSampledImage(_x, _x2) {\n return _createDownSampledImage.apply(this, arguments);\n }\n return createDownSampledImage;\n }()\n }, {\n key: \"createImageTiles\",\n value: function () {\n var _createImageTiles = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(src, tiles, rerender, ref) {\n var imageCache, _ref$ownerDocument$de, requestAnimationFrame, cancelAnimationFrame, updateCache;\n return _regeneratorRuntime().wrap(function (_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 1;\n return this.getOrCreateImage(src, ref);\n case 1:\n imageCache = _context2.sent;\n _ref$ownerDocument$de = ref.ownerDocument.defaultView, requestAnimationFrame = _ref$ownerDocument$de.requestAnimationFrame, cancelAnimationFrame = _ref$ownerDocument$de.cancelAnimationFrame;\n ImageSlicer.api = {\n requestAnimationFrame: requestAnimationFrame,\n cancelAnimationFrame: cancelAnimationFrame,\n createCanvas: function createCanvas() {\n return OffscreenCanvasCreator.createCanvas();\n }\n };\n updateCache = _objectSpread(_objectSpread({}, imageCache), ImageSlicer.sliceImage(imageCache.img, imageCache.tileSize[0], imageCache.tileSize[0], rerender));\n IMAGE_CACHE.update(imageCache.img.src, updateCache, ref);\n return _context2.abrupt(\"return\", updateCache);\n case 2:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function createImageTiles(_x3, _x4, _x5, _x6) {\n return _createImageTiles.apply(this, arguments);\n }\n return createImageTiles;\n }()\n }, {\n key: \"releaseImage\",\n value: function releaseImage(src, ref) {\n IMAGE_CACHE.release(isString(src) ? src : src.src, ref);\n }\n }, {\n key: \"releaseImageRef\",\n value: function releaseImageRef(ref) {\n IMAGE_CACHE.releaseRef(ref);\n }\n }, {\n key: \"getOrCreatePatternSync\",\n value: function getOrCreatePatternSync(object, pattern, context, $offscreenCanvas, dpr, min, callback) {\n var patternKey = this.generatePatternKey(pattern);\n if (patternKey && this.patternCache[patternKey]) {\n return this.patternCache[patternKey];\n }\n var image = pattern.image,\n repetition = pattern.repetition,\n transform = pattern.transform;\n var src;\n var needScaleWithDPR = false;\n // Image URL\n if (isString(image)) {\n var imageCache = this.getImageSync(image, object, callback);\n src = imageCache === null || imageCache === void 0 ? void 0 : imageCache.img;\n } else if ($offscreenCanvas) {\n src = $offscreenCanvas;\n needScaleWithDPR = true;\n } else {\n src = image;\n }\n\n // @see https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasRenderingContext2D/createPattern\n var canvasPattern = src && context.createPattern(src, repetition);\n if (canvasPattern) {\n var mat;\n // @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasPattern/setTransform\n if (transform) {\n mat = parsedTransformToMat4(parseTransform(transform), new DisplayObject({}));\n } else {\n mat = mat4.identity(mat4.create());\n }\n if (needScaleWithDPR) {\n mat4.scale(mat, mat, [1 / dpr, 1 / dpr, 1]);\n }\n canvasPattern.setTransform({\n a: mat[0],\n b: mat[1],\n c: mat[4],\n d: mat[5],\n e: mat[12] + min[0],\n f: mat[13] + min[1]\n });\n }\n if (patternKey && canvasPattern) {\n this.patternCache[patternKey] = canvasPattern;\n }\n return canvasPattern;\n }\n }, {\n key: \"getOrCreateGradient\",\n value: function getOrCreateGradient(params, context) {\n var key = this.generateGradientKey(params);\n var type = params.type,\n steps = params.steps,\n min = params.min,\n width = params.width,\n height = params.height,\n angle = params.angle,\n cx = params.cx,\n cy = params.cy,\n size = params.size;\n if (this.gradientCache[key]) {\n return this.gradientCache[key];\n }\n var gradient = null;\n if (type === GradientType.LinearGradient) {\n var _computeLinearGradien = computeLinearGradient(min, width, height, angle),\n x1 = _computeLinearGradien.x1,\n y1 = _computeLinearGradien.y1,\n x2 = _computeLinearGradien.x2,\n y2 = _computeLinearGradien.y2;\n // @see https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasRenderingContext2D/createLinearGradient\n gradient = context.createLinearGradient(x1, y1, x2, y2);\n } else if (type === GradientType.RadialGradient) {\n var _computeRadialGradien = computeRadialGradient(min, width, height, cx, cy, size),\n x = _computeRadialGradien.x,\n y = _computeRadialGradien.y,\n r = _computeRadialGradien.r;\n // @see https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasRenderingContext2D/createRadialGradient\n gradient = context.createRadialGradient(x, y, 0, x, y, r);\n }\n if (gradient) {\n steps.forEach(function (_ref2) {\n var offset = _ref2.offset,\n color = _ref2.color;\n if (offset.unit === UnitType.kPercentage) {\n var _gradient;\n (_gradient = gradient) === null || _gradient === void 0 || _gradient.addColorStop(offset.value / 100, color.toString());\n }\n });\n this.gradientCache[key] = gradient;\n }\n return this.gradientCache[key];\n }\n }, {\n key: \"generateGradientKey\",\n value: function generateGradientKey(params) {\n var type = params.type,\n min = params.min,\n width = params.width,\n height = params.height,\n steps = params.steps,\n angle = params.angle,\n cx = params.cx,\n cy = params.cy,\n size = params.size;\n return \"gradient-\".concat(type, \"-\").concat((angle === null || angle === void 0 ? void 0 : angle.toString()) || 0, \"-\").concat((cx === null || cx === void 0 ? void 0 : cx.toString()) || 0, \"-\").concat((cy === null || cy === void 0 ? void 0 : cy.toString()) || 0, \"-\").concat((size === null || size === void 0 ? void 0 : size.toString()) || 0, \"-\").concat(min[0], \"-\").concat(min[1], \"-\").concat(width, \"-\").concat(height, \"-\").concat(steps.map(function (_ref3) {\n var offset = _ref3.offset,\n color = _ref3.color;\n return \"\".concat(offset).concat(color);\n }).join('-'));\n }\n }, {\n key: \"generatePatternKey\",\n value: function generatePatternKey(pattern) {\n var image = pattern.image,\n repetition = pattern.repetition;\n // only generate cache for Image\n if (isString(image)) {\n return \"pattern-\".concat(image, \"-\").concat(repetition);\n }\n if (image.nodeName === 'rect') {\n return \"pattern-\".concat(image.entity, \"-\").concat(repetition);\n }\n }\n }]);\n}();\nImagePool.isSupportTile = !!OffscreenCanvasCreator.createCanvas();\nfunction calculateImageTileSize(img) {\n if (!img.complete) {\n return [0, 0];\n }\n var width = img.naturalWidth || img.width,\n height = img.naturalHeight || img.height;\n var tileSize = 256;\n [256, 512].forEach(function (size) {\n var rows = Math.ceil(height / size);\n var cols = Math.ceil(width / size);\n if (rows * cols < 1e3) {\n tileSize = size;\n }\n });\n return [tileSize, tileSize];\n}\n\nvar LoadImagePlugin = /*#__PURE__*/function () {\n function LoadImagePlugin() {\n _classCallCheck(this, LoadImagePlugin);\n }\n return _createClass(LoadImagePlugin, [{\n key: \"apply\",\n value: function apply(context) {\n var renderingService = context.renderingService,\n renderingContext = context.renderingContext,\n imagePool = context.imagePool;\n var canvas = renderingContext.root.ownerDocument.defaultView;\n var calculateWithAspectRatio = function calculateWithAspectRatio(object, imageWidth, imageHeight) {\n var _object$parsedStyle = object.parsedStyle,\n width = _object$parsedStyle.width,\n height = _object$parsedStyle.height;\n if (width && !height) {\n object.setAttribute('height', imageHeight / imageWidth * width);\n } else if (!width && height) {\n object.setAttribute('width', imageWidth / imageHeight * height);\n }\n };\n var handleMounted = function handleMounted(e) {\n var object = e.target;\n var nodeName = object.nodeName,\n attributes = object.attributes;\n if (nodeName === Shape.IMAGE) {\n var src = attributes.src,\n keepAspectRatio = attributes.keepAspectRatio;\n imagePool.getImageSync(src, object, function (_ref) {\n var _ref$img = _ref.img,\n width = _ref$img.width,\n height = _ref$img.height;\n if (keepAspectRatio) {\n calculateWithAspectRatio(object, width, height);\n }\n object.dirty();\n renderingService.dirty();\n });\n }\n };\n var handleAttributeChanged = function handleAttributeChanged(e) {\n var object = e.target;\n var attrName = e.attrName,\n prevValue = e.prevValue,\n newValue = e.newValue;\n if (object.nodeName !== Shape.IMAGE || attrName !== 'src') {\n return;\n }\n if (prevValue !== newValue) {\n imagePool.releaseImage(prevValue, object);\n }\n if (isString(newValue)) {\n imagePool.getOrCreateImage(newValue, object).then(function (_ref2) {\n var _ref2$img = _ref2.img,\n width = _ref2$img.width,\n height = _ref2$img.height;\n if (object.attributes.keepAspectRatio) {\n calculateWithAspectRatio(object, width, height);\n }\n object.dirty();\n renderingService.dirty();\n })[\"catch\"](function () {\n //\n });\n }\n };\n renderingService.hooks.init.tap(LoadImagePlugin.tag, function () {\n canvas.addEventListener(ElementEvent.MOUNTED, handleMounted);\n canvas.addEventListener(ElementEvent.ATTR_MODIFIED, handleAttributeChanged);\n });\n renderingService.hooks.destroy.tap(LoadImagePlugin.tag, function () {\n canvas.removeEventListener(ElementEvent.MOUNTED, handleMounted);\n canvas.removeEventListener(ElementEvent.ATTR_MODIFIED, handleAttributeChanged);\n });\n }\n }]);\n}();\nLoadImagePlugin.tag = 'LoadImage';\n\nvar Plugin$3 = /*#__PURE__*/function (_AbstractRendererPlug) {\n function Plugin() {\n var _this;\n _classCallCheck(this, Plugin);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Plugin, [].concat(args));\n _this.name = 'image-loader';\n return _this;\n }\n _inherits(Plugin, _AbstractRendererPlug);\n return _createClass(Plugin, [{\n key: \"init\",\n value: function init(runtime) {\n // @ts-ignore\n this.context.imagePool = new ImagePool(this.context, runtime);\n this.addRenderingPlugin(new LoadImagePlugin());\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.removeAllRenderingPlugins();\n }\n }]);\n}(AbstractRendererPlugin);\n\nvar index$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ImagePool: ImagePool,\n Plugin: Plugin$3\n});\n\nvar CANVAS_CAMERA_ID = 'g-canvas-camera';\nvar HTMLRenderingPlugin = /*#__PURE__*/function () {\n function HTMLRenderingPlugin() {\n _classCallCheck(this, HTMLRenderingPlugin);\n this.displayObjectHTMLElementMap = new WeakMap();\n }\n return _createClass(HTMLRenderingPlugin, [{\n key: \"joinTransformMatrix\",\n value:\n /**\n * ! The reason for adding `offset` is that the `transform-origin` coordinate system of DOM is the local coordinate system of the element, while the `transform-origin` coordinate system of canvas drawing is the local coordinate system of the element's parent element. At the same time, the `transform` attribute value of the DOM element does not include `transform-origin`.\n */\n function joinTransformMatrix(matrix) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0];\n return \"matrix(\".concat([matrix[0], matrix[1], matrix[4], matrix[5], matrix[12] + offset[0], matrix[13] + offset[1]].join(','), \")\");\n }\n }, {\n key: \"apply\",\n value: function apply(context, runtime) {\n var _this = this;\n var camera = context.camera,\n renderingContext = context.renderingContext,\n renderingService = context.renderingService;\n this.context = context;\n var canvas = renderingContext.root.ownerDocument.defaultView;\n var nativeHTMLMap = canvas.context.eventService.nativeHTMLMap;\n var setTransform = function setTransform(object, $el) {\n $el.style.transform = _this.joinTransformMatrix(object.getWorldTransform(), object.getOrigin());\n };\n var handleMounted = function handleMounted(e) {\n var object = e.target;\n if (object.nodeName === Shape.HTML) {\n if (!_this.$camera) {\n _this.$camera = _this.createCamera(camera);\n }\n\n // create DOM element\n var $el = _this.getOrCreateEl(object);\n _this.$camera.appendChild($el);\n Object.keys(object.attributes).forEach(function (name) {\n _this.updateAttribute(name, object);\n });\n setTransform(object, $el);\n nativeHTMLMap.set($el, object);\n }\n };\n var handleUnmounted = function handleUnmounted(e) {\n var object = e.target;\n if (object.nodeName === Shape.HTML && _this.$camera) {\n var $el = _this.getOrCreateEl(object);\n if ($el) {\n $el.remove();\n nativeHTMLMap[\"delete\"]($el);\n }\n }\n };\n var handleAttributeChanged = function handleAttributeChanged(e) {\n var object = e.target;\n if (object.nodeName === Shape.HTML) {\n var attrName = e.attrName;\n _this.updateAttribute(attrName, object);\n }\n };\n var handleBoundsChanged = function handleBoundsChanged(e) {\n var records = e.detail;\n for (var i = 0; i < records.length; i++) {\n var record = records[i];\n var object = record.target;\n var nodes = object.nodeName === Shape.FRAGMENT ? object.childNodes : [object];\n nodes.forEach(function (node) {\n if (node.nodeName === Shape.HTML) {\n var $el = _this.getOrCreateEl(node);\n setTransform(node, $el);\n }\n });\n }\n };\n var handleCanvasResize = function handleCanvasResize() {\n if (_this.$camera) {\n var _this$context$config = _this.context.config,\n width = _this$context$config.width,\n height = _this$context$config.height;\n _this.$camera.parentElement.style.width = \"\".concat(width || 0, \"px\");\n _this.$camera.parentElement.style.height = \"\".concat(height || 0, \"px\");\n }\n };\n renderingService.hooks.init.tap(HTMLRenderingPlugin.tag, function () {\n canvas.addEventListener(CanvasEvent.RESIZE, handleCanvasResize);\n canvas.addEventListener(ElementEvent.MOUNTED, handleMounted);\n canvas.addEventListener(ElementEvent.UNMOUNTED, handleUnmounted);\n canvas.addEventListener(ElementEvent.ATTR_MODIFIED, handleAttributeChanged);\n canvas.addEventListener(ElementEvent.BOUNDS_CHANGED, handleBoundsChanged);\n });\n renderingService.hooks.endFrame.tap(HTMLRenderingPlugin.tag, function () {\n if (_this.$camera && renderingContext.renderReasons.has(RenderReason.CAMERA_CHANGED)) {\n _this.$camera.style.transform = _this.joinTransformMatrix(camera.getOrthoMatrix());\n }\n });\n renderingService.hooks.destroy.tap(HTMLRenderingPlugin.tag, function () {\n // remove camera\n if (_this.$camera) {\n _this.$camera.remove();\n }\n canvas.removeEventListener(CanvasEvent.RESIZE, handleCanvasResize);\n canvas.removeEventListener(ElementEvent.MOUNTED, handleMounted);\n canvas.removeEventListener(ElementEvent.UNMOUNTED, handleUnmounted);\n canvas.removeEventListener(ElementEvent.ATTR_MODIFIED, handleAttributeChanged);\n canvas.removeEventListener(ElementEvent.BOUNDS_CHANGED, handleBoundsChanged);\n });\n }\n }, {\n key: \"createCamera\",\n value: function createCamera(camera) {\n var _this$context$config2 = this.context.config,\n doc = _this$context$config2.document,\n width = _this$context$config2.width,\n height = _this$context$config2.height;\n var $canvas = this.context.contextService.getDomElement();\n var $container = $canvas.parentNode;\n if ($container) {\n var cameraId = CANVAS_CAMERA_ID;\n var $existedCamera = $container.querySelector(\"#\".concat(cameraId));\n if (!$existedCamera) {\n // fix @see https://github.com/antvis/G/issues/1702\n var $cameraContainer = (doc || document).createElement('div');\n // HTML elements should not overflow with canvas @see https://github.com/antvis/G/issues/1163\n $cameraContainer.style.overflow = 'hidden';\n $cameraContainer.style.pointerEvents = 'none';\n $cameraContainer.style.position = 'absolute';\n $cameraContainer.style.left = \"0px\";\n $cameraContainer.style.top = \"0px\";\n $cameraContainer.style.width = \"\".concat(width || 0, \"px\");\n $cameraContainer.style.height = \"\".concat(height || 0, \"px\");\n var $camera = (doc || document).createElement('div');\n $existedCamera = $camera;\n $camera.id = cameraId;\n // use absolute position\n $camera.style.position = 'absolute';\n // account for DOM element's offset @see https://github.com/antvis/G/issues/1150\n $camera.style.left = \"\".concat($canvas.offsetLeft || 0, \"px\");\n $camera.style.top = \"\".concat($canvas.offsetTop || 0, \"px\");\n $camera.style.transformOrigin = 'left top';\n $camera.style.transform = this.joinTransformMatrix(camera.getOrthoMatrix());\n $camera.style.pointerEvents = 'none';\n $camera.style.width = \"100%\";\n $camera.style.height = \"100%\";\n $cameraContainer.appendChild($camera);\n $container.appendChild($cameraContainer);\n }\n return $existedCamera;\n }\n return null;\n }\n }, {\n key: \"getOrCreateEl\",\n value: function getOrCreateEl(object) {\n var doc = this.context.config.document;\n var $existedElement = this.displayObjectHTMLElementMap.get(object);\n if (!$existedElement) {\n $existedElement = (doc || document).createElement('div');\n object.parsedStyle.$el = $existedElement;\n this.displayObjectHTMLElementMap.set(object, $existedElement);\n if (object.id) {\n $existedElement.id = object.id;\n }\n if (object.name) {\n $existedElement.setAttribute('name', object.name);\n }\n if (object.className) {\n $existedElement.className = object.className;\n }\n\n // use absolute position\n $existedElement.style.position = 'absolute';\n // @see https://github.com/antvis/G/issues/1150\n $existedElement.style['will-change'] = 'transform';\n $existedElement.style.transform = this.joinTransformMatrix(object.getWorldTransform(), object.getOrigin());\n }\n return $existedElement;\n }\n }, {\n key: \"updateAttribute\",\n value: function updateAttribute(name, object) {\n var $el = this.getOrCreateEl(object);\n switch (name) {\n case 'innerHTML':\n var innerHTML = object.parsedStyle.innerHTML;\n if (isString(innerHTML)) {\n $el.innerHTML = innerHTML;\n } else {\n $el.innerHTML = '';\n $el.appendChild(innerHTML);\n }\n break;\n case 'x':\n $el.style.left = \"\".concat(object.parsedStyle.x, \"px\");\n break;\n case 'y':\n $el.style.top = \"\".concat(object.parsedStyle.y, \"px\");\n break;\n case 'transformOrigin':\n var transformOrigin = object.parsedStyle.transformOrigin;\n $el.style['transform-origin'] = \"\".concat(transformOrigin[0].buildCSSText(null, null, ''), \" \").concat(transformOrigin[1].buildCSSText(null, null, ''));\n break;\n case 'width':\n var width = object.parsedStyle.width;\n $el.style.width = isNumber(width) ? \"\".concat(width, \"px\") : width.toString();\n break;\n case 'height':\n var height = object.parsedStyle.height;\n $el.style.height = isNumber(height) ? \"\".concat(height, \"px\") : height.toString();\n break;\n case 'zIndex':\n var zIndex = object.parsedStyle.zIndex;\n $el.style['z-index'] = \"\".concat(zIndex);\n break;\n case 'visibility':\n var visibility = object.parsedStyle.visibility;\n $el.style.visibility = visibility;\n break;\n case 'pointerEvents':\n var _object$parsedStyle$p = object.parsedStyle.pointerEvents,\n pointerEvents = _object$parsedStyle$p === void 0 ? 'auto' : _object$parsedStyle$p;\n $el.style.pointerEvents = pointerEvents;\n break;\n case 'opacity':\n var opacity = object.parsedStyle.opacity;\n $el.style.opacity = \"\".concat(opacity);\n break;\n case 'fill':\n var fill = object.parsedStyle.fill;\n var color = '';\n if (isCSSRGB(fill)) {\n if (fill.isNone) {\n color = 'transparent';\n } else {\n color = object.getAttribute('fill');\n }\n } else if (Array.isArray(fill)) {\n color = object.getAttribute('fill');\n } else if (isPattern(fill)) ;\n $el.style.background = color;\n break;\n case 'stroke':\n var stroke = object.parsedStyle.stroke;\n var borderColor = '';\n if (isCSSRGB(stroke)) {\n if (stroke.isNone) {\n borderColor = 'transparent';\n } else {\n borderColor = object.getAttribute('stroke');\n }\n } else if (Array.isArray(stroke)) {\n borderColor = object.getAttribute('stroke');\n } else if (isPattern(stroke)) ;\n $el.style['border-color'] = borderColor;\n $el.style['border-style'] = 'solid';\n break;\n case 'lineWidth':\n var lineWidth = object.parsedStyle.lineWidth;\n $el.style['border-width'] = \"\".concat(lineWidth || 0, \"px\");\n break;\n case 'lineDash':\n $el.style['border-style'] = 'dashed';\n break;\n case 'filter':\n var filter = object.style.filter;\n $el.style.filter = filter;\n break;\n default:\n if (!isNil(object.style[name]) && object.style[name] !== '') {\n $el.style[name] = object.style[name];\n }\n }\n }\n }]);\n}();\nHTMLRenderingPlugin.tag = 'HTMLRendering';\n\nvar Plugin$2 = /*#__PURE__*/function (_AbstractRendererPlug) {\n function Plugin() {\n var _this;\n _classCallCheck(this, Plugin);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Plugin, [].concat(args));\n _this.name = 'html-renderer';\n return _this;\n }\n _inherits(Plugin, _AbstractRendererPlug);\n return _createClass(Plugin, [{\n key: \"init\",\n value: function init() {\n this.addRenderingPlugin(new HTMLRenderingPlugin());\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.removeAllRenderingPlugins();\n }\n }]);\n}(AbstractRendererPlugin);\n\nvar index$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Plugin: Plugin$2\n});\n\n// const MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\n/**\n * listen to mouse/touch/pointer events on DOM wrapper, trigger pointer events\n */\nvar DOMInteractionPlugin = /*#__PURE__*/function () {\n function DOMInteractionPlugin() {\n _classCallCheck(this, DOMInteractionPlugin);\n }\n return _createClass(DOMInteractionPlugin, [{\n key: \"apply\",\n value: function apply(context, runtime) {\n var _this = this;\n var renderingService = context.renderingService,\n renderingContext = context.renderingContext,\n config = context.config;\n this.context = context;\n var canvas = renderingContext.root.ownerDocument.defaultView;\n // const SUPPORT_ONLY_TOUCH = canvas.supportsTouchEvents && MOBILE_REGEX.test(navigator.userAgent);\n\n var onPointerMove = function onPointerMove(ev) {\n renderingService.hooks.pointerMove.call(ev);\n };\n var onPointerUp = function onPointerUp(ev) {\n renderingService.hooks.pointerUp.call(ev);\n };\n var onPointerDown = function onPointerDown(ev) {\n renderingService.hooks.pointerDown.call(ev);\n };\n var onPointerOver = function onPointerOver(ev) {\n renderingService.hooks.pointerOver.call(ev);\n };\n var onPointerOut = function onPointerOut(ev) {\n renderingService.hooks.pointerOut.call(ev);\n };\n var onPointerCancel = function onPointerCancel(ev) {\n renderingService.hooks.pointerCancel.call(ev);\n };\n var onPointerWheel = function onPointerWheel(ev) {\n renderingService.hooks.pointerWheel.call(ev);\n };\n var onClick = function onClick(ev) {\n renderingService.hooks.click.call(ev);\n };\n var addPointerEventListener = function addPointerEventListener($el) {\n runtime.globalThis.document.addEventListener('pointermove', onPointerMove, true);\n $el.addEventListener('pointerdown', onPointerDown, true);\n $el.addEventListener('pointerleave', onPointerOut, true);\n $el.addEventListener('pointerover', onPointerOver, true);\n runtime.globalThis.addEventListener('pointerup', onPointerUp, true);\n runtime.globalThis.addEventListener('pointercancel', onPointerCancel, true);\n };\n var addTouchEventListener = function addTouchEventListener($el) {\n $el.addEventListener('touchstart', onPointerDown, true);\n $el.addEventListener('touchend', onPointerUp, true);\n $el.addEventListener('touchmove', onPointerMove, true);\n $el.addEventListener('touchcancel', onPointerCancel, true);\n };\n var addMouseEventListener = function addMouseEventListener($el) {\n runtime.globalThis.document.addEventListener('mousemove', onPointerMove, true);\n $el.addEventListener('mousedown', onPointerDown, true);\n $el.addEventListener('mouseout', onPointerOut, true);\n $el.addEventListener('mouseover', onPointerOver, true);\n runtime.globalThis.addEventListener('mouseup', onPointerUp, true);\n };\n var removePointerEventListener = function removePointerEventListener($el) {\n runtime.globalThis.document.removeEventListener('pointermove', onPointerMove, true);\n $el.removeEventListener('pointerdown', onPointerDown, true);\n $el.removeEventListener('pointerleave', onPointerOut, true);\n $el.removeEventListener('pointerover', onPointerOver, true);\n runtime.globalThis.removeEventListener('pointerup', onPointerUp, true);\n runtime.globalThis.removeEventListener('pointercancel', onPointerCancel, true);\n };\n var removeTouchEventListener = function removeTouchEventListener($el) {\n $el.removeEventListener('touchstart', onPointerDown, true);\n $el.removeEventListener('touchend', onPointerUp, true);\n $el.removeEventListener('touchmove', onPointerMove, true);\n $el.removeEventListener('touchcancel', onPointerCancel, true);\n };\n var removeMouseEventListener = function removeMouseEventListener($el) {\n runtime.globalThis.document.removeEventListener('mousemove', onPointerMove, true);\n $el.removeEventListener('mousedown', onPointerDown, true);\n $el.removeEventListener('mouseout', onPointerOut, true);\n $el.removeEventListener('mouseover', onPointerOver, true);\n runtime.globalThis.removeEventListener('mouseup', onPointerUp, true);\n };\n renderingService.hooks.init.tap(DOMInteractionPlugin.tag, function () {\n var $el = _this.context.contextService.getDomElement();\n\n // @ts-ignore\n if (runtime.globalThis.navigator.msPointerEnabled) {\n // @ts-ignore\n $el.style.msContentZooming = 'none';\n // @ts-ignore\n $el.style.msTouchAction = 'none';\n } else if (canvas.supportsPointerEvents) {\n $el.style.touchAction = 'none';\n }\n if (canvas.supportsPointerEvents) {\n addPointerEventListener($el);\n } else {\n addMouseEventListener($el);\n }\n if (canvas.supportsTouchEvents) {\n addTouchEventListener($el);\n }\n if (config.useNativeClickEvent) {\n $el.addEventListener('click', onClick, true);\n }\n\n // use passive event listeners\n // @see https://zhuanlan.zhihu.com/p/24555031\n $el.addEventListener('wheel', onPointerWheel, {\n passive: true,\n capture: true\n });\n });\n renderingService.hooks.destroy.tap(DOMInteractionPlugin.tag, function () {\n var $el = _this.context.contextService.getDomElement();\n\n // @ts-ignore\n if (runtime.globalThis.navigator.msPointerEnabled) {\n // @ts-ignore\n $el.style.msContentZooming = '';\n // @ts-ignore\n $el.style.msTouchAction = '';\n } else if (canvas.supportsPointerEvents) {\n $el.style.touchAction = '';\n }\n if (canvas.supportsPointerEvents) {\n removePointerEventListener($el);\n } else {\n removeMouseEventListener($el);\n }\n if (canvas.supportsTouchEvents) {\n removeTouchEventListener($el);\n }\n if (config.useNativeClickEvent) {\n $el.removeEventListener('click', onClick, true);\n }\n $el.removeEventListener('wheel', onPointerWheel, true);\n });\n }\n }]);\n}();\nDOMInteractionPlugin.tag = 'DOMInteraction';\n\nvar Plugin$1 = /*#__PURE__*/function (_AbstractRendererPlug) {\n function Plugin() {\n var _this;\n _classCallCheck(this, Plugin);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Plugin, [].concat(args));\n _this.name = 'dom-interaction';\n return _this;\n }\n _inherits(Plugin, _AbstractRendererPlug);\n return _createClass(Plugin, [{\n key: \"init\",\n value: function init() {\n this.addRenderingPlugin(new DOMInteractionPlugin());\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.removeAllRenderingPlugins();\n }\n }]);\n}(AbstractRendererPlugin);\n\nvar index$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Plugin: Plugin$1\n});\n\n/**\n * listen to mouse/touch/pointer events on DOM wrapper, trigger pointer events\n */\nvar MobileInteractionPlugin = /*#__PURE__*/function () {\n function MobileInteractionPlugin() {\n _classCallCheck(this, MobileInteractionPlugin);\n }\n return _createClass(MobileInteractionPlugin, [{\n key: \"apply\",\n value: function apply(context) {\n var renderingService = context.renderingService,\n contextService = context.contextService,\n config = context.config;\n // 获取小程序上下文\n var canvasEl = contextService.getDomElement();\n var onPointerDown = function onPointerDown(ev) {\n renderingService.hooks.pointerDown.call(ev);\n };\n var onPointerUp = function onPointerUp(ev) {\n renderingService.hooks.pointerUp.call(ev);\n };\n var onPointerMove = function onPointerMove(ev) {\n // 触发 G 定义的标准 pointerMove 事件\n renderingService.hooks.pointerMove.call(ev);\n };\n var onPointerOver = function onPointerOver(ev) {\n renderingService.hooks.pointerOver.call(ev);\n };\n var onPointerOut = function onPointerOut(ev) {\n renderingService.hooks.pointerOut.call(ev);\n };\n var onClick = function onClick(ev) {\n renderingService.hooks.click.call(ev);\n };\n var onPointerCancel = function onPointerCancel(ev) {\n renderingService.hooks.pointerCancel.call(ev);\n };\n renderingService.hooks.init.tap(MobileInteractionPlugin.tag, function () {\n // 基于小程序上下文的事件监听方式,绑定事件监听,可以参考下面基于 DOM 的方式\n canvasEl.addEventListener('touchstart', onPointerDown, true);\n canvasEl.addEventListener('touchend', onPointerUp, true);\n canvasEl.addEventListener('touchmove', onPointerMove, true);\n canvasEl.addEventListener('touchcancel', onPointerCancel, true);\n // FIXME: 这里不应该只在 canvasEl 上监听 mousemove 和 mouseup,而应该在更高层级的节点上例如 document 监听。\n // 否则无法判断是否移出了 canvasEl\n // canvasEl.addEventListener('mousemove', onPointerMove, true);\n // canvasEl.addEventListener('mousedown', onPointerDown, true);\n canvasEl.addEventListener('mouseout', onPointerOut, true);\n canvasEl.addEventListener('mouseover', onPointerOver, true);\n // canvasEl.addEventListener('mouseup', onPointerUp, true);\n\n if (config.useNativeClickEvent) {\n canvasEl.addEventListener('click', onClick, true);\n }\n });\n renderingService.hooks.destroy.tap(MobileInteractionPlugin.tag, function () {\n // 基于小程序上下文的事件监听方式,移除事件监听\n canvasEl.removeEventListener('touchstart', onPointerDown, true);\n canvasEl.removeEventListener('touchend', onPointerUp, true);\n canvasEl.removeEventListener('touchmove', onPointerMove, true);\n canvasEl.removeEventListener('touchcancel', onPointerCancel, true);\n\n // canvasEl.removeEventListener('mousemove', onPointerMove, true);\n // canvasEl.removeEventListener('mousedown', onPointerDown, true);\n canvasEl.removeEventListener('mouseout', onPointerOut, true);\n canvasEl.removeEventListener('mouseover', onPointerOver, true);\n // canvasEl.removeEventListener('mouseup', onPointerUp, true);\n\n if (config.useNativeClickEvent) {\n canvasEl.removeEventListener('click', onClick, true);\n }\n });\n }\n }]);\n}();\nMobileInteractionPlugin.tag = 'MobileInteraction';\n\nvar Plugin = /*#__PURE__*/function (_AbstractRendererPlug) {\n function Plugin() {\n var _this;\n _classCallCheck(this, Plugin);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Plugin, [].concat(args));\n _this.name = 'mobile-interaction';\n return _this;\n }\n _inherits(Plugin, _AbstractRendererPlug);\n return _createClass(Plugin, [{\n key: \"init\",\n value: function init() {\n this.addRenderingPlugin(new MobileInteractionPlugin());\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.removeAllRenderingPlugins();\n }\n }]);\n}(AbstractRendererPlugin);\n\nvar index = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Plugin: Plugin\n});\n\nexport { AABB, AbstractRenderer, AbstractRendererPlugin, BUILT_IN_PROPERTIES, CSS, CSSGradientValue, CSSKeywordValue, CSSRGB, CSSStyleValue, CSSUnitValue, Camera, CameraEvent, CameraProjectionMode, CameraTrackingMode, CameraType, Canvas, CanvasEvent, Circle, CircleUpdater, ClipSpaceNearZ, CustomElement, CustomElementRegistry, CustomEvent, DefaultSceneGraphSelector, DefaultSceneGraphService, DisplayObject, Document, index$1 as DomInteraction, ERROR_MSG_METHOD_NOT_IMPLEMENTED, Element, ElementEvent, Ellipse, EllipseUpdater, EventService, EventTarget, FederatedEvent, FederatedMouseEvent, FederatedPointerEvent, FederatedWheelEvent, Fragment, Frustum, GradientType, Group, GroupUpdater, HTML, index$2 as HTMLRenderer, HTMLUpdater, Image, index$3 as ImageLoader, ImagePool, Line, LineUpdater, Mask, index as MobileInteraction, MutationEvent, MutationObserver, MutationRecord, Node, OffscreenCanvasCreator, Path, PathUpdater, Plane, Point, Polygon, Polyline, PolylineUpdater, PropertySyntax, Rect, RectUpdater, Rectangle, Registration, RenderReason, RenderingService, Shape, SortReason, Strategy, Text, TextService, TextUpdater, UnitType, attrModifiedEvent, computeLinearGradient, computeRadialGradient, convertToPath, createVec3, decompose, definedProps, deg2rad, deg2turn, destroyEvent, findClosestClipPathTarget, fromRotationTranslationScale, getAngle, getEuler, getOrCalculatePathTotalLength, grad2deg, insertedEvent, isBrowser, isCSSGradientValue, isCSSRGB, isCanvas, isDisplayObject, isFederatedEvent, isFillOrStrokeAffected, isPattern, mergeColors, parseColor, parseLength, parsePath, parseTransform, parsedTransformToMat4, propertyMetadataCache, rad2deg, removedEvent, resetEntityCounter, runtime, setDOMSize, translatePathToString, turn2deg, updateLocalTransform, updateWorldTransform };\n//# sourceMappingURL=index.esm.js.map\n"],"names":["Shape","ClipSpaceNearZ","AbstractRendererPlugin","_classCallCheck","_createClass","plugin","_this","index","AbstractRenderer","config","_objectSpread","p","name","addVec3","vec3.add","copyVec3","vec3.copy","maxVec3","vec3.max","minVec3","vec3.min","scaleVec3","vec3.scale","subVec3","vec3.sub","AABB","center","halfExtents","min","max","aabb","tc","tcx","tcy","tcz","th","thx","thy","thz","tminx","tmaxx","tminy","tmaxy","tminz","tmaxz","oc","ocx","ocy","ocz","oh","ohx","ohy","ohz","ominx","omaxx","ominy","omaxy","ominz","omaxz","m","bc","br","ac","ar","mx0","mx1","mx2","my0","my1","my2","mz0","mz1","mz2","mx0a","mx1a","mx2a","my0a","my1a","my2a","mz0a","mz1a","mz2a","aMax","aMin","bMax","bMin","intersection","plane","Plane","distance","normal","vec3.fromValues","point","vec3.dot","invLen","vec3.len","start","end","d0","d1","t","intersects","vec3.lerp","Mask","Frustum","planes","i","projectionMatrix","_projectionMatrix","_slicedToArray","m0","m1","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12","m13","m14","m15","vec3.set","Point","x","y","Rectangle","width","height","rect","matrix","topLeft","vec4.fromValues","topRight","bottomLeft","bottomRight","transformedTopLeft","vec4.create","transformedTopRight","transformedBottomLeft","transformedBottomRight","vec4.transformMat4","minX","minY","maxX","maxY","ERROR_MSG_METHOD_NOT_IMPLEMENTED","ERROR_MSG_USE_DOCUMENT_ELEMENT","ERROR_MSG_APPEND_DESTROYED_ELEMENT","getAngle","angle","$vec3$3","vec3.create","createVec3","z","clone","vec3.clone","isNumber","DEG_RAD","deg2rad","deg","RAD_DEG","rad2deg","rad","turn2deg","turn","HALF_PI","getEulerFromQuat","out","quat","w","x2","y2","z2","w2","unit","test","getEulerFromMat4","_mat4$getScaling","mat4.getScaling","_mat4$getScaling2","sx","sy","sz","getEuler","fromRotationTranslationScale","rotation","scaleX","scaleY","cos","sin","mat3.fromValues","makePerspective","left","right","top","bottom","near","far","zero","twoNear","rightMinusLeft","topMinusBottom","a","b","c","d","farMinusNear","farMulNear","decompose","mat","row0x","row0y","row1x","row1y","scalingX","scalingY","determinant","invScalingX","invScalingY","tmp","mat4.create","perspectiveMatrix","tmpVec4","row","pdum3","decomposeMat4","translation","scale","skew","perspective","quaternion","normalize","mat4.copy","mat4.determinant","a03","a13","a23","a30","a31","a32","a33","ret","mat4.invert","mat4.transpose","mat3from4","vec3.length","vec3.normalize","combine","vec3.cross","m44","mat4x4","scale1","scale2","CameraType","CameraTrackingMode","CameraProjectionMode","CameraEvent","MIN_DISTANCE","Camera","EventEmitter","enabled","type","trackingMode","projectionMode","flag","mat4.fromTranslation","mat4.multiply","fov","aspect","fullWidth","fullHeight","zoom","viewportPoint","_this$canvas$viewport","ox","oy","roll","_this$canvas$viewport2","cx","cy","dvec","dx","dy","_this$getPosition","_this$getPosition2","px","py","_this$getFocalPoint","_this$getFocalPoint2","fx","fy","_this$view","l","r","_this$view2","scaleW","scaleH","mat4.ortho","mat4.orthoZO","position","up","vec3.subtract","el","az","mat4.rotateY","mat4.rotateX","vec3.transformMat4","mat4.lookAt","pos","n","f","rotZ","quat$1.setAxisAngle","quat$1.create","mat4.identity","rotX","rotY","rotQ","quat$1.multiply","rotMatrix","mat4.fromQuat","mat4.translate","vec3.transformMat3","mat3.fromMat4","mat3.create","mat4.fromRotationTranslationScaleOrigin","viewMatrix","vpMatrix","azimuth","elevation","tx","ty","value","params","options","Strategy","SortReason","$vec3$2","$mat4$1","$quat$2","updateLocalTransform","transform","hasSkew","scaling","quat$1.set","localTransform","localPosition","localRotation","localScale","origin","hasPosition","hasRotation","hasScale","hasOrigin","updateWorldTransform","parentTransform","EMPTY_PARSED_PATH","PropertySyntax","define","constructor","factory","prototype","extend","parent","definition","key","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","format","rgbn","Rgb","rgba","hsla","g","rgbConvert","o","rgb","opacity","k","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","h","s","Hsl","hsl","hsl2rgb","clamph","clampt","memoize","func","resolver","_memoized","_len","args","_key","cache","result","UnitType","UnitCategory","Nested","ParenLess","data","CSSStyleValueType","stringToUnitType","item","unitFromName","unitTypeToUnitCategory","canonicalUnitTypeForCategory","category","conversionToCanonicalUnitsScaleFactor","unit_type","factor","unitTypeToString","CSSStyleValue","CSSColorValue","_CSSStyleValue","colorSpace","_callSuper","_inherits","GradientType","CSSGradientValue","CSSKeywordValue","formatInfinityOrNaN","number","suffix","toCanonicalUnit","CSSUnitValue","unitOrName","other","other_unit_value","target_unit","canonical_unit","scale_factor","text","kMinInteger","kMaxInteger","_unit","Opx","Odeg","CSSRGB","_CSSColorValue","alpha","isNone","unsetKeywordValue","initialKeywordValue","inheritKeywordValue","keywordCache","getOrCreateKeyword","noneColor","transparentColor","getOrCreateRGBA","getOrCreateUnitValue","colorStopToString","colorStop","parseGradient$1","tokens","input","error","msg","getAST","ast","matchListDefinitions","matchListing","matchDefinition","matchGradient","matchLinearOrientation","matchListRadialOrientations","gradientType","pattern","orientationMatcher","matchCall","captures","orientation","scan","matchColorStop","callback","matchSideOrCorner","matchAngle","match","radialOrientations","radialOrientation","matchRadialOrientation","lookaheadCache","radialType","matchCircle","matchEllipse","matchAtPosition","extent","matchExtentKeyword","positionAt","defaultPosition","matchPositioning","circle","matchLength","ellipse","matchDistance","positioning","location","matchCoordinates","matcher","matchColor","matchHexColor","matchRGBAColor","matchRGBColor","matchLiteralColor","matchNumber","matchPositionKeyword","captureIndex","regexp","blankCaptures","consume","size","code","computeLinearGradient","rx","ry","rcx","rcy","length","x1","y1","computeRadialGradient","distanceSquareRoot","regexLG","regexRG","regexPR","regexColorStop","spaceColorStops","colorStops","_colorStops$length","_colorStops$0$length","previousIndex","previousOffset","_colorStops$i$length","offset","isNil","j","SideOrCornerToDegMap","angleToDeg","positonToCSSUnitValue","unitX","unitY","_position$value","parseGradient","colorStr","_ref","steps","_positonToCSSUnitValu","_orientation$0$style","_type","arr","_arr$2$match","stop","_ref2","_ref3","parsedRadialGradient","parseRadialGradient","isString","parsePattern","gradientStr","_arr$4$match","_ref4","_ref5","patternStr","repetition","src","isPattern","object","isCSSRGB","parseColor","color$1","mergeColors","clamp","parseDimension","unitRegExp","string","matchedUnits","taggedUnitRegExp","parseLengthUnmemoize","css","parseLength","parserPercentageUnmemoize","parseLengthOrPercentageUnmemoize","parseLengthOrPercentage","parseAngleUnmemoize","parseAngle","mergeDimensions","target","nonNegative","leftValue","rightValue","canonicalUnit","leftCanonicalUnitValue","rightCanonicalUnitValue","convertPercentUnit","convertAngleUnit","parseDimensionArrayFormat","parsed","segment","_toConsumableArray","valueWithUnit","vec3Index","useMin","bounds","parseParam","supportedFilters","parseFilter","filterStr","filterRegExp","prevLastIndex","numberToString","parseNumberUnmemoize","parseNumber","mergeNumbers","clampedMergeNumbers","mergeNumberLists","numberList","getOrCalculatePathTotalLength","path","getTotalLength","getOrCalculatePolylineTotalLength","polyline","polylineLength","removeRedundantMCommand","prevSegment","cmd","prevCmd","srcPoint","destPoint","isSamePoint","hasArcOrBezier","hasArc","count","extractPolygons","pathArray","polygons","polylines","points","point1","point2","getPathBBox","segments","lineWidth","xArr","yArr","segmentsWithAngle","currentPoint","prePoint","box","quadBox","cubicBox","arcParams","arcBox","_i","_segment","_currentPoint","extra","getExtraFromSegmentWithAngle","nextPoint","currentAndPre","currentAndNext","preAndNext","currentAngle","isNumberEqual","xAngle","yAngle","toSymmetry","angleBetween","v0","v1","sign","pointOnEllipticalArc","p0","xAxisRotation","largeArcFlag","sweepFlag","p1","mod","xAxisRotationRadians","transformedPoint","radiiCheck","cSquareNumerator","cSquareRootDenom","cRadicand","cCoef","transformedCenter","startVector","startAngle","endVector","sweepAngle","ellipseComponentX","ellipseComponentY","path2Segments","nextParams","startMovePoint","lastStartMovePointIndex","command","getArcParams","len","cp","preSegment","_cp","cp1","cp2","_preSegment","_cp2","_cp3","_getTangentAtRatio","getTangentAtRatio","dx1","dy1","_getTangentAtRatio2","dx2","dy2","ratio","_segment$arcParams","_segment$arcParams$rx","_segment$arcParams$ry","xRotation","arcFlag","p2","xDist","yDist","dist","vMag","v","vRatio","u","vAngle","startPoint","xp","yp","lambda","diff","cxp","cyp","theta","dTheta","commandsToPathString","commands","prev","cur","p3","_p","_p2","lineToCommands","ellipseToCommands","polygonToCommands","closed","rectToCommands","radius","_radius","tlr","trr","brr","blr","signX","signY","convertToPath","_parsedStyle","_parsedStyle$x","_parsedStyle$y","_parsedStyle$x2","_parsedStyle$y2","_parsedStyle2","_parsedStyle2$r","_parsedStyle2$cx","_parsedStyle2$cy","_parsedStyle3","_parsedStyle3$rx","_parsedStyle3$ry","_parsedStyle3$cx","_cx","_parsedStyle3$cy","_cy","_parsedStyle4","_parsedStyle4$width","_parsedStyle4$height","_parsedStyle4$x","_parsedStyle4$y","hasRadius","absolutePath","internalParsePath","normalizePath","_extractPolygons","_getPathBBox","memoizedParsePath","parsePath","mergePaths","curve1","curve2","path2Curve","curves","equalizeSegments","curve0","getDrawDirection","reverseCurve","clonePath","getRotatedCurve","parsePoints","pointsOrStr","pointStr","_pointStr$split","_pointStr$split2","mergePoints","_","TRANSFORM_REGEXP","cast","contents","id","transformFunctions","parseArrayTransform","functionData","parsedArgs","parseTransform","functionName","argTypes","arg","parsedArg","parseTransformUnmemoize","convertItemToMatrix","sqrLength","sc","sq","multiplyMatrices","convertToMatrix","transformList","makeMatrixDecomposition","translate","composeMatrix","multiply","is2D","temp","_i2","_j","numberToLongString","mergeMatrices","leftArgs","rightArgs","list","q","stringifiedArgs","dot","v2","fromQ","toQ","product","typeTo2D","typeTo3D","isMatrixOrPerspective","lt","rt","mergeTransforms","flipResults","_loop","_left$i","defaultValue","leftResult","rightResult","types","merged","_i3","leftType","rightType","leftFunctionData","rightFunctionData","_merged","_merged2","leftArgsCopy","rightArgsCopy","stringConversions","_merged3","parseTransformOrigin","values","convertKeyword2Percent","keyword","BUILT_IN_PROPERTIES","nodeName","GEOMETRY_ATTRIBUTE_NAMES","propertyMetadataCache","DefaultStyleValueRegistry","runtime","property","metadata","syntax","attributes","oldClipPath","oldOffsetPath","assignParsedStyle","needUpdateGeometry","getParsedStyleListOf","isUndefined","geometryUpdater","geometry","parsedStyle","_geometryUpdater$upda","_geometryUpdater$upda2","_geometryUpdater$upda3","_geometryUpdater$upda4","cz","_geometryUpdater$upda5","hwidth","_geometryUpdater$upda6","hheight","_geometryUpdater$upda7","hdepth","stroke","_parsedStyle$lineWidt","_parsedStyle$increase","increasedLineWidthForHitTesting","_parsedStyle$shadowTy","shadowType","shadowColor","_parsedStyle$filter","filter","transformOrigin","expansion","hasStroke","halfLineWidth","_geometry$renderBound","shadowBlur","shadowOffsetX","shadowOffsetY","shadowBlurInPixels","shadowOffsetXInPixels","shadowOffsetYInPixels","shadowLeft","shadowRight","shadowTop","shadowBottom","blurRadius","_shadowOffsetX","_shadowOffsetY","_shadowBlur","_geometry$renderBound2","_min","_max","_shadowLeft","_shadowRight","_shadowTop","_shadowBottom","flipY","flipX","usedOriginXValue","usedOriginYValue","node","CSSPropertyAngle","oldParsed","CSSPropertyClipPath","oldPath","newPath","leaf","CSSPropertyColor","CSSPropertyFilter","getFontSize","fontSize","CSSPropertyLengthOrPercentage","computed","_object$ownerDocument","_fontSize","CSSPropertyLengthOrPercentage12","CSSPropertyLengthOrPercentage14","CSSPropertyMarker","oldMarker","newMarker","_newMarker","cloned","CSSPropertyNumber","CSSPropertyOffsetDistance","_object$parsedStyle","offsetPath","offsetDistance","CSSPropertyOpacity","CSSPropertyPath","CSSPropertyPoints","CSSPropertyShadowBlur","_CSSPropertyLengthOrP","CSSPropertyText","CSSPropertyTextTransform","rawText","transformedText","CANVAS_Map","cleanExistedCanvas","container","canvas","cleanUp","$dom","isBrowser","isElement","sortedIndex","array","low","high","mid","sortByZIndex","o1","o2","zIndex1","zIndex2","children","findClosestClipPathTarget","_el$parsedStyle","clipPath","PX_SUFFIX","setDOMSize","$el","getStyle","getWidth","getHeight","MOUSE_POINTER_ID","TOUCH_TO_POINTER","clock","isInFragment","isFillOrStrokeAffected","pointerEvents","fill","hasFill","isFillOtherThanNone","isStrokeOtherThanNone","uId","uniqueId","root","nowOffset","pnow","reservedCBs","lastTime","polyfillRaf","currentTime","gap","delay","copied","polyfillCaf","vendorPrefixes","getRequestAnimationFrame","vp","getCancelAnimationFrame","find","predicate","raf","caf","AsyncParallelHook","fn","AsyncSeriesWaterfallHook","_promise","_asyncToGenerator","_regeneratorRuntime","_callee","_this$callbacks","_args","_context","promise","SyncHook","argsArr","SyncWaterfallHook","genericFontFamilies","stringRegExp","getFontAttr","_attributes$fontSize","_attributes$fontFamil","fontFamily","_attributes$fontStyle","fontStyle","_attributes$fontVaria","fontVariant","_attributes$fontWeigh","fontWeight","toFontString","_getFontAttr","fontSizeString","fontFamilies","_fontFamily","_getFontAttr2","MIN_SCALE","clampScale","createSkewMatrix","skewMatrix","skewX","skewY","$mat4_1","$mat4_2","parser","mat4.fromScaling","mat4.fromZRotation","mat4.fromXRotation","mat4.fromYRotation","mat4.fromRotation","mat4.set","mat4","$vec3One$1","$vec3Zero$1","optimizer","parsedTransformToMat4","_transform$i","mat4.mul","CSSPropertyTransform","CSSPropertyTransformOrigin","CSSPropertyZIndex","parentEntity","parentRenderable","parentSortable","CircleUpdater","_parsedStyle$cx","_parsedStyle$cy","_parsedStyle$r","EllipseUpdater","_parsedStyle$rx","_parsedStyle$ry","LineUpdater","PathUpdater","_d$rect","PolylineUpdater","isArray","RectUpdater","_parsedStyle$width","_parsedStyle$height","contentWidth","contentHeight","TextUpdater","globalRuntime","_parsedStyle$textAlig","textAlign","_parsedStyle$textBase","textBaseline","_parsedStyle$dx","_parsedStyle$dy","offscreenCanvas","metrics","lineXOffset","lineYOffset","GroupUpdater","HTMLUpdater","FederatedEvent","manager","FederatedMouseEvent","FederatedPointerEvent","_FederatedMouseEvent","FederatedWheelEvent","CustomEvent","_FederatedEvent","eventName","EventTarget","listener","capture","once","isBoolean","_options$capture","_options$once","isFunction","context","_this$emitter","_listener","skipPropagate","dispatchToSelf","_ownerDocument","Node","_EventTarget","_iterator","_createForOfIteratorHelper","_step","_child","err","content","_this2","child","opts","namespace","prefix","otherNode","node1Root","node2Root","node1Hierarchy","node2Hierarchy","_node1Root$parentNode","longerHierarchy","shorterHierarchy","longerStart","shorterHierarchyNode","longerHierarchyNode","siblings","stack","PROPAGATION_LIMIT","EventService","from","e","isRightButton","trackingData","now","pressTarget","clickTarget","currentTarget","_isRightButton","_e$detail","clickEvent","clickHistory","isMouse","outTarget","outType","outEvent","leaveEvent","overType","overEvent","overTargetAncestor","didPointerEnter","enterEvent","wheelEvent","bbox","offsetWidth","offsetHeight","client","_this$getScale","_this$getScale2","camera","_this$context$config","projectionMatrixInverse","worldMatrix","viewport","canvasP","clip","_this$context$config2","pickHandler","mappers","composedPath","propagationPath","viewportX","viewportY","_this$context$config3","disableHitTesting","nativeEvent","_target","event","_arr","eventTarget","existed","fallbackTarget","existedHTML","to","emitter","listeners","cursor","OffscreenCanvasCreator","contextAttributes","RenderReason","RenderingService","renderer","_renderer$getConfig","enableDirtyRectangleRendering","frame","rerenderCallback","canvasConfig","renderingContext","onlyCameraChanged","shouldTriggerRenderHooks","displayObject","self","_canvasConfig$rendere","enableDirtyCheck","enableCulling","internalRenderSingleDisplayObject","renderable","sortable","objectChanged","objectToRender","_currentObject$sortab","currentObject","objects","_sortable$sorted","_sortable$sorted2","sortIndex","_index","ATTRIBUTE_REGEXP","DefaultSceneGraphSelector","query","_this$getAttribute","_this$getAttribute2","_this$getAttribute3","matches","ElementEvent","MutationEvent","typeArg","relatedNode","prevValue","newValue","attrName","attrChange","prevParsedValue","newParsedValue","reparentEvent","$vec2Zero","vec2.create","$vec3Zero","$vec3One","$mat4Identity","$vec2","$vec3$1","$mat4","$quat$1","$setLocalTransform_1","$setLocalTransform_2","$setLocalTransform_3","$setLocalPosition","$setPosition_1","$setPosition_ParentInvertMatrix","$setEulerAngles_InvParentRot","$rotateLocal","$rotate_ParentInvertRotation","DefaultSceneGraphService","detached","isChildFragment","isAttachToFragment","nodes","_parent$ownerDocument","enableCancelEventPropagation","_style","element","_position$","dirtify","vec3.equals","vec3.transformQuat","quat$1.copy","degrees","quat$1.fromEuler","quat$1.mul","_scaling$","_scaling$2","vec3.multiply","vec2.set","vec2.copy","mat4.getTranslation","mat4.getRotation","_position$2","quat$1.fromValues","parentRot","quat$1.invert","quat$1.normalize","rot","originVec","parentRotation","render","existedAABB","childBounds","clipped","clipPathBounds","parentInvert","localBounds","_element$ownerDocumen","_aabb$getMin","_aabb$getMin2","_aabb$getMax","_aabb$getMax2","_element$parentNode","ancestors","_element$ownerDocumen2","_element$transformabl","_element$renderable","_element$renderable2","enableAttributeUpdateOptimization","transformDirty","_element$transformabl2","_element$dirty","shapeUpdated","tempElIndex","_dirty","tempEl","rootNode","_transformable","_transformable2","_element$ownerDocumen3","childTransform","_element$ownerDocumen4","affectChildren","_dirty2","_ref6","_e$dirty","mutations","boundChangeMutation","_dirty3","_ref7","mutation","newMutation","oldDependencyMap","newDependencyMap","_this3","dependencyMap","LRU","capacity","leastRecentlyUsedKey","TEXT_METRICS","LATIN_REGEX","regexCannotStartZhCn","regexCannotEndZhCn","regexCannotStartZhTw","regexCannotEndZhTw","regexCannotStartJaJp","regexCannotEndJaJp","regexCannotStartKoKr","regexCannotEndKoKr","regexCannotStart","regexCannotEnd","TextService","_char","nextChar","next","prevLine","lastChar","font","properties","metricsString","baseline","imagedata","pixels","line","idx","_parsedStyle$fontSize","_parsedStyle$wordWrap","wordWrap","strokeHeight","_parsedStyle$letterSp","letterSpacing","textPath","_parsedStyle$leading","leading","fontProperties","outputText","lines","lineWidths","maxLineWidth","_lineWidth","_width","lineHeight","offsetY","offsetX","chars","_parsedStyle$wordWrap2","wordWrapWidth","_parsedStyle$letterSp2","_parsedStyle$maxLines","maxLines","textOverflow","maxWidth","ellipsis","currentLineIndex","currentLineWidth","prevLineLastCharIndex","charCache","calcWidth","_char2","ellipsisWidth","findCharIndexClosestWidthThreshold","lineTxt","txtLastCharIndex","txtStartCharIndex","widthThreshold","appendEllipsis","lineIndex","textCharIndex","_char3","prevChar","charWidth","_char4","_char5","trimmedChar","isTrimmedWithSpace","trimFrom","trimTo","_char6","calcWidthWithCache","sum","spacing","geometryUpdaterFactory","rectUpdater","polylineUpdater","_defineProperty","CSSPropertySyntaxFactory","getGlobalThis","entityCounter","insertedEvent","removedEvent","destroyEvent","Element","_Node","styleFlag","layoutFlag","className","deep","_this$ownerDocument","newChild","refChild","oldChild","_this$ownerDocument2","_child$ownerDocument","selector","tagName","selectors","_this4","_len2","_key2","_this4$parentNode","_len3","_key3","first","rest","_arrayLikeToArray","_this5","_len4","_key4","_this6","_len5","_key5","_this$ownerDocument3","qualifiedName","attributeName","localName","attr","force","isDisplayObject","Proxy","attrModifiedEvent","$vec3","$quat","DisplayObject","_Element","propertyName","prop","_superPropGet","animation","customCloneFunc","clonedStyle","attribute","clonedChild","parseOptions","_parseOptions$skipDis","skipDispatchAttrModifiedEvent","oldAttributes","oldParsedValues","oldValue","oldParsedValue","_this$ownerDocument$d","_attributeChangedCall","_getEuler","_getEuler2","ez","_getEuler3","_getEuler4","keyframes","timeline","_this$parsedStyle","_this$parsedStyle2","isObject","transformMat4","_mat4$getTranslation","_mat4$getTranslation2","_getEuler5","_getEuler6","eux","euz","_decompose","_decompose2","_decompose3","_decompose4","zIndex","Circle","_DisplayObject","_excluded$6","CustomElement","style","_objectWithoutProperties","Ellipse","Fragment","Group","_excluded$5","HTML","Image","_excluded$4","Line","markerStart","markerEnd","isStart","markerStartOffset","markerEndOffset","marker","originalAngle","inWorldSpace","_this$parsedStyle3","_linePointAt","linePointAt","transformed","_this$parsedStyle4","lineLength","_excluded$3","Path","markerMid","_this$getStartTangent","_this$getStartTangent2","_this$getEndTangent","_this$getEndTangent2","_segments$i$currentPo","_getPointAtLength2","getPointAtLength","endPoint","tangent","_excluded$2","Polygon","P","_excluded$1","Polyline","_Polygon","tempLength","segmentT","segmentL","totalLength","subt","Rect","_excluded","Text","_this$parsedStyle$met","_this$parsedStyle$met2","CustomElementRegistry","CSS","inherits","interpolable","initialValue","clazz","Document","initialStyle","inh","shape","namespaceURI","hitTestList","_traverse","_node$parsedStyle$poi","isVisibilityAffected","_this$defaultView$can","_this$defaultView$get","_this$defaultView$vie","clientX","clientY","_this$defaultView$get2","picked","_elementFromPoint","_this$defaultView$can2","_this$defaultView$get3","_this$defaultView$vie2","_yield$this$defaultVi","elementFromPoint","_x","_x2","_this$defaultView$can3","_this$defaultView$get4","_this$defaultView$vie3","_this$defaultView$get5","_elementsFromPoint","_callee2","_this$defaultView$can4","_this$defaultView$get6","_this$defaultView$vie4","_yield$this$defaultVi2","_context2","elementsFromPoint","_x3","_x4","destroy","CullingPlugin","strategies","renderingService","_config$future","cullable","strategy","EventPlugin","_this$context$renderi","normalizedEvents","normalizedEvent","_this$context$renderi2","_iterator2","_step2","_this2$context$render","events","cancelable","_iterator3","_step3","federatedEvent","$element","isNativeEventFromCanvas","outside","_iterator4","_step4","_iterator5","_step5","view","_this$context$eventSe","_this$context$eventSe2","canvasX","canvasY","_this$context$eventSe3","_this$context$eventSe4","touch","tempEvent","shape2D","FrustumCullingStrategy","_object$parentNode","renderBounds","frustum","parentVisibilityPlaneMask","parentPlaneMask","mask","isShape2D","_planes$k","PrepareRendererPlugin","_runtime$globalThis$r","handleAttributeChanged","handleBoundsChanged","_this$mutationRecords","records","handleMounted","handleUnmounted","ric","CanvasEvent","DEFAULT_CAMERA_Z","DEFAULT_CAMERA_NEAR","DEFAULT_CAMERA_FAR","mountedEvent","unmountedEvent","beforeRenderEvent","rerenderEvent","afterRenderEvent","Canvas","background","supportsMutipleCanvasesInOneContainer","_config$cleanUpOnDest","cleanUpOnDestroy","devicePixelRatio","requestAnimationFrame","cancelAnimationFrame","createImage","supportsTouchEvents","supportsPointerEvents","isTouchEvent","isMouseEvent","dblClickSpeed","canvasWidth","canvasHeight","dpr","mergedConfig","clipSpaceNearZ","resolve","_this$getConfig$futur","skipTriggerEvent","clearEventRetain","_canvasConfig$future","_this$getConfig$futur2","_tick","time","firstContentfullPaint","_this7","async","_this7$getConfig$futu","_this8","plugins","oldRenderer","_this9","_this$getConfig$futur3","_this0","_this$getConfig$futur4","RefCountCache","ref","cacheItem","tasks","nextFrameTasks","ImageSlicer","api","task","image","sliceWidth","sliceHeight","rerender","overlap","imageWidth","imageHeight","strideW","strideH","gridCols","gridRows","_loop2","col","startX","startY","tempSliceWidth","tempSliceHeight","sliceCanvas","sliceCtx","IMAGE_CACHE","ImagePool","imageSource","imageCache","reason","calculateImageTileSize","_imageCache","reject","ev","_imageCache2","_createDownSampledImage","enableLargeImageOptimization","_ref$maxDownSampledIm","maxDownSampledImageSize","_ref$downSamplingRate","downSamplingRateThreshold","createImageBitmapFunc","_imageCache$size","originWidth","originHeight","resizedImage","downSamplingRate","updateCache","createDownSampledImage","_createImageTiles","tiles","_ref$ownerDocument$de","createImageTiles","_x5","_x6","$offscreenCanvas","patternKey","needScaleWithDPR","canvasPattern","mat4.scale","gradient","_computeLinearGradien","_computeRadialGradien","_gradient","img","tileSize","rows","cols","LoadImagePlugin","imagePool","calculateWithAspectRatio","keepAspectRatio","_ref$img","_ref2$img","Plugin$3","_AbstractRendererPlug","Plugin","index$3","CANVAS_CAMERA_ID","HTMLRenderingPlugin","nativeHTMLMap","setTransform","record","handleCanvasResize","doc","$canvas","$container","cameraId","$existedCamera","$cameraContainer","$camera","$existedElement","innerHTML","visibility","_object$parsedStyle$p","borderColor","Plugin$2","index$2","DOMInteractionPlugin","onPointerMove","onPointerUp","onPointerDown","onPointerOver","onPointerOut","onPointerCancel","onPointerWheel","onClick","addPointerEventListener","addTouchEventListener","addMouseEventListener","removePointerEventListener","removeTouchEventListener","removeMouseEventListener","Plugin$1","index$1","MobileInteractionPlugin","contextService","canvasEl"],"mappings":"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","x_google_ignoreList":[0]}