@jimka/typescript-ui 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/dist/lib/{AbstractBooleanInput-C3rj7sje.js → AbstractBooleanInput-BGesvIZy.js} +2 -2
  2. package/dist/lib/{AbstractBooleanInput-C3rj7sje.js.map → AbstractBooleanInput-BGesvIZy.js.map} +1 -1
  3. package/dist/lib/{AbstractInput-CfjW_HM2.js → AbstractInput-BxOtFrER.js} +2 -2
  4. package/dist/lib/{AbstractInput-CfjW_HM2.js.map → AbstractInput-BxOtFrER.js.map} +1 -1
  5. package/dist/lib/AnimatedDropdown-CZQEqQi-.js +2 -0
  6. package/dist/lib/AnimatedDropdown-CZQEqQi-.js.map +1 -0
  7. package/dist/lib/Border-BgaZkc1R.js +2 -0
  8. package/dist/lib/Border-BgaZkc1R.js.map +1 -0
  9. package/dist/lib/{BoxLayout-8ryMD4j5.js → BoxLayout-DrKGfsup.js} +2 -2
  10. package/dist/lib/{BoxLayout-8ryMD4j5.js.map → BoxLayout-DrKGfsup.js.map} +1 -1
  11. package/dist/lib/Button-U1rsP4v8.js +2 -0
  12. package/dist/lib/Button-U1rsP4v8.js.map +1 -0
  13. package/dist/lib/{Card-AKIUAWYS.js → Card-BVwOS8AG.js} +2 -2
  14. package/dist/lib/{Card-AKIUAWYS.js.map → Card-BVwOS8AG.js.map} +1 -1
  15. package/dist/lib/ComboBox-B9EDPu6T.js +2 -0
  16. package/dist/lib/ComboBox-B9EDPu6T.js.map +1 -0
  17. package/dist/lib/Component-DXf5a3g0.js +2 -0
  18. package/dist/lib/Component-DXf5a3g0.js.map +1 -0
  19. package/dist/lib/Container-D5H8VxJK.js +2 -0
  20. package/dist/lib/{Container-3KsvsJ6S.js.map → Container-D5H8VxJK.js.map} +1 -1
  21. package/dist/lib/DOM-CGn7xyTw.js +2 -0
  22. package/dist/lib/DOM-CGn7xyTw.js.map +1 -0
  23. package/dist/lib/{DragManager-c6M_mE3e.js → DragManager-CI4mZQFy.js} +2 -2
  24. package/dist/lib/{DragManager-tPMnbjeO.js.map → DragManager-CI4mZQFy.js.map} +1 -1
  25. package/dist/lib/FieldDecorator-CJs9gwqH.js +2 -0
  26. package/dist/lib/{FieldDecorator-Bl0h9UEF.js.map → FieldDecorator-CJs9gwqH.js.map} +1 -1
  27. package/dist/lib/{Fit-CFIr4P9R.js → Fit-DjRsiwlg.js} +2 -2
  28. package/dist/lib/{Fit-CUS1JXy3.js.map → Fit-DjRsiwlg.js.map} +1 -1
  29. package/dist/lib/Glyph-KEf4nIv2.js +2 -0
  30. package/dist/lib/Glyph-KEf4nIv2.js.map +1 -0
  31. package/dist/lib/{Grid-Czux--Mr.js → Grid-DdL9TVeJ.js} +2 -2
  32. package/dist/lib/{Grid-D8luwRPI.js.map → Grid-DdL9TVeJ.js.map} +1 -1
  33. package/dist/lib/GridConstraints-DkLueyrf.js +2 -0
  34. package/dist/lib/GridConstraints-DkLueyrf.js.map +1 -0
  35. package/dist/lib/{HBox-BWMf9h6r.js → HBox-Ce0GTCJP.js} +2 -2
  36. package/dist/lib/{HBox-BWMf9h6r.js.map → HBox-Ce0GTCJP.js.map} +1 -1
  37. package/dist/lib/{Header-CQjomjo0.js → Header-BQIVpBte.js} +2 -2
  38. package/dist/lib/{Header-CQjomjo0.js.map → Header-BQIVpBte.js.map} +1 -1
  39. package/dist/lib/{IconText-BXJK0MOq.js → IconText-Bo4Qcnot.js} +2 -2
  40. package/dist/lib/{IconText-BXJK0MOq.js.map → IconText-Bo4Qcnot.js.map} +1 -1
  41. package/dist/lib/LayoutConstraints-DkctJZXB.js +2 -0
  42. package/dist/lib/LayoutConstraints-DkctJZXB.js.map +1 -0
  43. package/dist/lib/LayoutSerialization-BT66TY83.js +2 -0
  44. package/dist/lib/LayoutSerialization-BT66TY83.js.map +1 -0
  45. package/dist/lib/LayoutSizes-DU3qSq0w.js +2 -0
  46. package/dist/lib/LayoutSizes-DU3qSq0w.js.map +1 -0
  47. package/dist/lib/List-DtTVTyWW.js +2 -0
  48. package/dist/lib/List-DtTVTyWW.js.map +1 -0
  49. package/dist/lib/Menu-Dz4L7EKJ.js +2 -0
  50. package/dist/lib/Menu-Dz4L7EKJ.js.map +1 -0
  51. package/dist/lib/{MenuButton-D15cSbMf.js → MenuButton-VJ5uC3c1.js} +2 -2
  52. package/dist/lib/{MenuButton-D15cSbMf.js.map → MenuButton-VJ5uC3c1.js.map} +1 -1
  53. package/dist/lib/Panel-DzWdYwq1.js +2 -0
  54. package/dist/lib/Panel-DzWdYwq1.js.map +1 -0
  55. package/dist/lib/{Position-DJKB0N3l.js → Position-A39T7-_1.js} +2 -2
  56. package/dist/lib/{Position-DJKB0N3l.js.map → Position-A39T7-_1.js.map} +1 -1
  57. package/dist/lib/ProgressSpinner-zJKtGyNJ.js +2 -0
  58. package/dist/lib/ProgressSpinner-zJKtGyNJ.js.map +1 -0
  59. package/dist/lib/RadioButton-CYSSv4nV.js +2 -0
  60. package/dist/lib/RadioButton-CYSSv4nV.js.map +1 -0
  61. package/dist/lib/{RovingTabIndex-CFIzIjjU.js → RovingTabIndex-BSZ31Vp5.js} +2 -2
  62. package/dist/lib/{RovingTabIndex-D-zOuptw.js.map → RovingTabIndex-BSZ31Vp5.js.map} +1 -1
  63. package/dist/lib/Scrollbar-BhtOjqkG.js +2 -0
  64. package/dist/lib/Scrollbar-BhtOjqkG.js.map +1 -0
  65. package/dist/lib/Slider-CdXm7E64.js +2 -0
  66. package/dist/lib/Slider-CdXm7E64.js.map +1 -0
  67. package/dist/lib/{Spacer-BVQncB5B.js → Spacer-D9NGW4QG.js} +2 -2
  68. package/dist/lib/{Spacer-BVQncB5B.js.map → Spacer-D9NGW4QG.js.map} +1 -1
  69. package/dist/lib/{TabButton-DqYDfN7P.js → TabButton-CThevdY_.js} +2 -2
  70. package/dist/lib/{TabButton-DqYDfN7P.js.map → TabButton-CThevdY_.js.map} +1 -1
  71. package/dist/lib/Text-gz6qjFfP.js +2 -0
  72. package/dist/lib/Text-gz6qjFfP.js.map +1 -0
  73. package/dist/lib/Tooltip-tkXDk5Bo.js +3 -0
  74. package/dist/lib/Tooltip-tkXDk5Bo.js.map +1 -0
  75. package/dist/lib/{VBox-CdV9VGxR.js → VBox-EIqw85Rh.js} +2 -2
  76. package/dist/lib/{VBox-CdV9VGxR.js.map → VBox-EIqw85Rh.js.map} +1 -1
  77. package/dist/lib/{VirtualRowView-C18j90n5.js → VirtualRowView-BxpHQ_u8.js} +2 -2
  78. package/dist/lib/{VirtualRowView-C18j90n5.js.map → VirtualRowView-BxpHQ_u8.js.map} +1 -1
  79. package/dist/lib/{VirtualScroller-BKMvTisA.js → VirtualScroller-DwEEJE1_.js} +2 -2
  80. package/dist/lib/{VirtualScroller-BKMvTisA.js.map → VirtualScroller-DwEEJE1_.js.map} +1 -1
  81. package/dist/lib/component/button.es.js +1 -1
  82. package/dist/lib/component/button.es.js.map +1 -1
  83. package/dist/lib/component/chart.es.js +1 -1
  84. package/dist/lib/component/chart.es.js.map +1 -1
  85. package/dist/lib/component/container.es.js +1 -1
  86. package/dist/lib/component/container.es.js.map +1 -1
  87. package/dist/lib/component/diagram.es.js +1 -1
  88. package/dist/lib/component/diagram.es.js.map +1 -1
  89. package/dist/lib/component/display.es.js +1 -1
  90. package/dist/lib/component/display.es.js.map +1 -1
  91. package/dist/lib/component/editor.es.js +2 -2
  92. package/dist/lib/component/editor.es.js.map +1 -1
  93. package/dist/lib/component/input.es.js +1 -1
  94. package/dist/lib/component/input.es.js.map +1 -1
  95. package/dist/lib/component/list.es.js +1 -1
  96. package/dist/lib/component/menubar.es.js +1 -1
  97. package/dist/lib/component/menubar.es.js.map +1 -1
  98. package/dist/lib/component/table.es.js +2 -2
  99. package/dist/lib/component/table.es.js.map +1 -1
  100. package/dist/lib/component/tree.es.js +1 -1
  101. package/dist/lib/component/tree.es.js.map +1 -1
  102. package/dist/lib/core.es.js +1 -1
  103. package/dist/lib/core.es.js.map +1 -1
  104. package/dist/lib/layout.es.js +1 -1
  105. package/dist/lib/overlay.es.js +1 -1
  106. package/dist/lib/overlay.es.js.map +1 -1
  107. package/dist/lib/primitive.es.js +1 -1
  108. package/dist/lib/router.es.js +1 -1
  109. package/dist/lib/types/component/button/Button.d.ts +4 -3
  110. package/dist/lib/types/component/chart/AbstractChart.d.ts +1 -1
  111. package/dist/lib/types/component/chart/ChartLegend.d.ts +1 -1
  112. package/dist/lib/types/component/container/DialogBackdrop.d.ts +2 -1
  113. package/dist/lib/types/component/container/MenuItem.d.ts +1 -1
  114. package/dist/lib/types/component/container/ScrollStrip.d.ts +1 -0
  115. package/dist/lib/types/component/container/SplitGutter.d.ts +3 -2
  116. package/dist/lib/types/component/container/TabBar.d.ts +1 -2
  117. package/dist/lib/types/component/container/TabPanel.d.ts +6 -3
  118. package/dist/lib/types/component/container/WindowBorder.d.ts +2 -1
  119. package/dist/lib/types/component/container/WindowHeader.d.ts +2 -1
  120. package/dist/lib/types/component/display/Glyph.d.ts +2 -1
  121. package/dist/lib/types/component/display/Markdown.d.ts +1 -1
  122. package/dist/lib/types/component/display/PaginationBar.d.ts +1 -1
  123. package/dist/lib/types/component/display/SpinnerWrap.d.ts +2 -0
  124. package/dist/lib/types/component/display/Video.d.ts +1 -1
  125. package/dist/lib/types/component/display/VideoPlayer.d.ts +1 -1
  126. package/dist/lib/types/component/editor/CodeEditor.d.ts +2 -1
  127. package/dist/lib/types/component/editor/MarkdownEditor.d.ts +1 -1
  128. package/dist/lib/types/component/input/Checkbox.d.ts +2 -1
  129. package/dist/lib/types/component/input/Link.d.ts +1 -1
  130. package/dist/lib/types/component/input/RadioButton.d.ts +2 -1
  131. package/dist/lib/types/component/input/Slider.d.ts +2 -1
  132. package/dist/lib/types/component/input/Text.d.ts +1 -3
  133. package/dist/lib/types/component/input/TextInput.d.ts +3 -2
  134. package/dist/lib/types/component/list/AbstractSelectableList.d.ts +2 -1
  135. package/dist/lib/types/component/menubar/MenuBarButton.d.ts +1 -1
  136. package/dist/lib/types/core/AnimatedDropdown.d.ts +6 -2
  137. package/dist/lib/types/core/Animation.d.ts +9 -6
  138. package/dist/lib/types/core/Component.d.ts +16 -11
  139. package/dist/lib/types/core/DOM.d.ts +8 -0
  140. package/dist/lib/types/core/Event.d.ts +12 -6
  141. package/dist/lib/types/core/index.d.ts +2 -2
  142. package/dist/lib/types/layout/Accordion.d.ts +2 -0
  143. package/dist/lib/types/layout/Border.d.ts +1 -0
  144. package/dist/lib/types/layout/CollapseSupport.d.ts +5 -1
  145. package/dist/lib/types/layout/LayoutConstraints.d.ts +1 -0
  146. package/dist/lib/types/layout/LayoutManager.d.ts +2 -0
  147. package/dist/lib/types/layout/Split.d.ts +1 -0
  148. package/dist/lib/types/layout/Tab.d.ts +10 -3
  149. package/dist/lib/types/overlay/AbstractWindow.d.ts +9 -2
  150. package/dist/lib/types/overlay/Dialog.d.ts +6 -0
  151. package/dist/lib/types/overlay/Dock.d.ts +12 -2
  152. package/dist/lib/types/overlay/Drawer.d.ts +5 -0
  153. package/dist/lib/types/overlay/Menu.d.ts +3 -1
  154. package/dist/lib/types/overlay/Notification.d.ts +3 -0
  155. package/dist/lib/types/overlay/Popover.d.ts +3 -1
  156. package/dist/lib/types/overlay/Rail.d.ts +7 -0
  157. package/dist/lib/types/overlay/Tooltip.d.ts +3 -0
  158. package/dist/lib/types/overlay/index.d.ts +1 -1
  159. package/dist/lib/validation.es.js +1 -1
  160. package/llms.txt +1 -1
  161. package/package.json +1 -1
  162. package/dist/lib/AbstractBooleanInput-C6CidMMX.js +0 -2
  163. package/dist/lib/AbstractBooleanInput-C6CidMMX.js.map +0 -1
  164. package/dist/lib/AbstractInput-DD-NpicS.js +0 -2
  165. package/dist/lib/AbstractInput-DD-NpicS.js.map +0 -1
  166. package/dist/lib/AnimatedDropdown-BFz-DO7R.js +0 -2
  167. package/dist/lib/AnimatedDropdown-BFz-DO7R.js.map +0 -1
  168. package/dist/lib/AnimatedDropdown-BbGCs70E.js +0 -2
  169. package/dist/lib/AnimatedDropdown-BbGCs70E.js.map +0 -1
  170. package/dist/lib/Border-5Ki2DCWz.js +0 -2
  171. package/dist/lib/Border-5Ki2DCWz.js.map +0 -1
  172. package/dist/lib/Border-oZC_SDy8.js +0 -2
  173. package/dist/lib/Border-oZC_SDy8.js.map +0 -1
  174. package/dist/lib/BoxLayout-DgZukB5_.js +0 -2
  175. package/dist/lib/BoxLayout-DgZukB5_.js.map +0 -1
  176. package/dist/lib/Button-Cdq2ySPL.js +0 -2
  177. package/dist/lib/Button-Cdq2ySPL.js.map +0 -1
  178. package/dist/lib/Button-DEUtBqK4.js +0 -2
  179. package/dist/lib/Button-DEUtBqK4.js.map +0 -1
  180. package/dist/lib/Card-UF0fq8cQ.js +0 -2
  181. package/dist/lib/Card-UF0fq8cQ.js.map +0 -1
  182. package/dist/lib/ComboBox-GOBOAJ1N.js +0 -2
  183. package/dist/lib/ComboBox-GOBOAJ1N.js.map +0 -1
  184. package/dist/lib/ComboBox-e_YVsWBr.js +0 -2
  185. package/dist/lib/ComboBox-e_YVsWBr.js.map +0 -1
  186. package/dist/lib/Component-BR2f0Itb.js +0 -2
  187. package/dist/lib/Component-BR2f0Itb.js.map +0 -1
  188. package/dist/lib/Component-Bs6TvaGZ.js +0 -2
  189. package/dist/lib/Component-Bs6TvaGZ.js.map +0 -1
  190. package/dist/lib/Container-3KsvsJ6S.js +0 -2
  191. package/dist/lib/Container-CzyZeMyZ.js +0 -2
  192. package/dist/lib/Container-CzyZeMyZ.js.map +0 -1
  193. package/dist/lib/DOM-DeF_dWe2.js +0 -2
  194. package/dist/lib/DOM-DeF_dWe2.js.map +0 -1
  195. package/dist/lib/DragManager-c6M_mE3e.js.map +0 -1
  196. package/dist/lib/DragManager-tPMnbjeO.js +0 -2
  197. package/dist/lib/FieldDecorator-Bl0h9UEF.js +0 -2
  198. package/dist/lib/FieldDecorator-E7WzutjO.js +0 -2
  199. package/dist/lib/FieldDecorator-E7WzutjO.js.map +0 -1
  200. package/dist/lib/Fit-CFIr4P9R.js.map +0 -1
  201. package/dist/lib/Fit-CUS1JXy3.js +0 -2
  202. package/dist/lib/Glyph-6Ki3A1_a.js +0 -2
  203. package/dist/lib/Glyph-6Ki3A1_a.js.map +0 -1
  204. package/dist/lib/Glyph-WUqTF_Z9.js +0 -2
  205. package/dist/lib/Glyph-WUqTF_Z9.js.map +0 -1
  206. package/dist/lib/Grid-Czux--Mr.js.map +0 -1
  207. package/dist/lib/Grid-D8luwRPI.js +0 -2
  208. package/dist/lib/GridConstraints-CzC0w4i-.js +0 -2
  209. package/dist/lib/GridConstraints-CzC0w4i-.js.map +0 -1
  210. package/dist/lib/GridConstraints-Q3wvuovN.js +0 -2
  211. package/dist/lib/GridConstraints-Q3wvuovN.js.map +0 -1
  212. package/dist/lib/HBox-Q8y1PHlk.js +0 -2
  213. package/dist/lib/HBox-Q8y1PHlk.js.map +0 -1
  214. package/dist/lib/Header-zPdvC2AX.js +0 -2
  215. package/dist/lib/Header-zPdvC2AX.js.map +0 -1
  216. package/dist/lib/IconText-BvGfu7eq.js +0 -2
  217. package/dist/lib/IconText-BvGfu7eq.js.map +0 -1
  218. package/dist/lib/LayoutConstraints-CHI2lhPd.js +0 -2
  219. package/dist/lib/LayoutConstraints-CHI2lhPd.js.map +0 -1
  220. package/dist/lib/LayoutSerialization-CWU0iEuV.js +0 -2
  221. package/dist/lib/LayoutSerialization-CWU0iEuV.js.map +0 -1
  222. package/dist/lib/LayoutSerialization-C_zcwaN3.js +0 -2
  223. package/dist/lib/LayoutSerialization-C_zcwaN3.js.map +0 -1
  224. package/dist/lib/LayoutSizes-BW4wyGDI.js +0 -2
  225. package/dist/lib/LayoutSizes-BW4wyGDI.js.map +0 -1
  226. package/dist/lib/LayoutSizes-XdhpAOmc.js +0 -2
  227. package/dist/lib/LayoutSizes-XdhpAOmc.js.map +0 -1
  228. package/dist/lib/List-BgxnLWnl.js +0 -2
  229. package/dist/lib/List-BgxnLWnl.js.map +0 -1
  230. package/dist/lib/List-D-GhoVgB.js +0 -2
  231. package/dist/lib/List-D-GhoVgB.js.map +0 -1
  232. package/dist/lib/Menu-BdnwRY0M.js +0 -2
  233. package/dist/lib/Menu-BdnwRY0M.js.map +0 -1
  234. package/dist/lib/Menu-Wz4MK6sA.js +0 -2
  235. package/dist/lib/Menu-Wz4MK6sA.js.map +0 -1
  236. package/dist/lib/MenuButton-JQQaKThJ.js +0 -2
  237. package/dist/lib/MenuButton-JQQaKThJ.js.map +0 -1
  238. package/dist/lib/Panel-DApa7vA6.js +0 -2
  239. package/dist/lib/Panel-DApa7vA6.js.map +0 -1
  240. package/dist/lib/Panel-DIsdaqc2.js +0 -2
  241. package/dist/lib/Panel-DIsdaqc2.js.map +0 -1
  242. package/dist/lib/Position-B-WfZYAJ.js +0 -2
  243. package/dist/lib/Position-B-WfZYAJ.js.map +0 -1
  244. package/dist/lib/ProgressSpinner-CNYcsBhw.js +0 -2
  245. package/dist/lib/ProgressSpinner-CNYcsBhw.js.map +0 -1
  246. package/dist/lib/ProgressSpinner-Dzaka7_c.js +0 -2
  247. package/dist/lib/ProgressSpinner-Dzaka7_c.js.map +0 -1
  248. package/dist/lib/RadioButton-CepkneSA.js +0 -2
  249. package/dist/lib/RadioButton-CepkneSA.js.map +0 -1
  250. package/dist/lib/RadioButton-eI3-vXn3.js +0 -2
  251. package/dist/lib/RadioButton-eI3-vXn3.js.map +0 -1
  252. package/dist/lib/RovingTabIndex-CFIzIjjU.js.map +0 -1
  253. package/dist/lib/RovingTabIndex-D-zOuptw.js +0 -2
  254. package/dist/lib/Scrollbar-DQdCdj94.js +0 -2
  255. package/dist/lib/Scrollbar-DQdCdj94.js.map +0 -1
  256. package/dist/lib/Scrollbar-DchfiFKC.js +0 -2
  257. package/dist/lib/Scrollbar-DchfiFKC.js.map +0 -1
  258. package/dist/lib/Slider-DvDdVvRm.js +0 -2
  259. package/dist/lib/Slider-DvDdVvRm.js.map +0 -1
  260. package/dist/lib/Slider-xRxNSjFN.js +0 -2
  261. package/dist/lib/Slider-xRxNSjFN.js.map +0 -1
  262. package/dist/lib/Spacer-BqiPiCqz.js +0 -2
  263. package/dist/lib/Spacer-BqiPiCqz.js.map +0 -1
  264. package/dist/lib/TabButton-pZKFYg7b.js +0 -2
  265. package/dist/lib/TabButton-pZKFYg7b.js.map +0 -1
  266. package/dist/lib/Text-D1RrBY52.js +0 -2
  267. package/dist/lib/Text-D1RrBY52.js.map +0 -1
  268. package/dist/lib/Text-DJoUHukb.js +0 -2
  269. package/dist/lib/Text-DJoUHukb.js.map +0 -1
  270. package/dist/lib/Tooltip-4lU_tf6r.js +0 -3
  271. package/dist/lib/Tooltip-4lU_tf6r.js.map +0 -1
  272. package/dist/lib/Tooltip-5BR7yYEX.js +0 -3
  273. package/dist/lib/Tooltip-5BR7yYEX.js.map +0 -1
  274. package/dist/lib/VBox-D5B9ecw0.js +0 -2
  275. package/dist/lib/VBox-D5B9ecw0.js.map +0 -1
  276. package/dist/lib/VirtualRowView-Con9SWiU.js +0 -2
  277. package/dist/lib/VirtualRowView-Con9SWiU.js.map +0 -1
  278. package/dist/lib/VirtualScroller-BPDmO1ir.js +0 -2
  279. package/dist/lib/VirtualScroller-BPDmO1ir.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{t as e}from"../DOM-DeF_dWe2.js";import{n as t}from"../Position-DJKB0N3l.js";import{f as n,n as r,t as i,y as a}from"../Component-Bs6TvaGZ.js";import{t as o}from"../ListenerBag-WPdKuuds.js";import{t as s}from"../Panel-DApa7vA6.js";import{t as c}from"../Tooltip-5BR7yYEX.js";import{t as l}from"../Text-DJoUHukb.js";import{t as u}from"../HBox-BWMf9h6r.js";import{n as d}from"../VBox-CdV9VGxR.js";function constant_default$1(e){return function constant(){return e}}var f=Math.PI,p=2*f,m=1e-6,h=p-m;function append(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function appendRound(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return append;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}var Path=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?append:appendRound(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,i=+i,i<0)throw Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,c=r-t,l=a-e,u=o-t,d=l*l+u*u;if(this._x1===null)this._append`M${this._x1=e},${this._y1=t}`;else if(d>m)if(!(Math.abs(u*s-c*l)>m)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let p=n-a,h=r-o,g=s*s+c*c,_=p*p+h*h,v=Math.sqrt(g),b=Math.sqrt(d),S=i*Math.tan((f-Math.acos((g+d-_)/(2*v*b)))/2),C=S/b,w=S/v;Math.abs(C-1)>m&&this._append`L${e+C*l},${t+C*u}`,this._append`A${i},${i},0,0,${+(u*p>l*h)},${this._x1=e+w*s},${this._y1=t+w*c}`}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>m||Math.abs(this._y1-l)>m)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%p+p),d>h?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>m&&this._append`A${n},${n},0,${+(d>=f)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function path(){return new Path}path.prototype=Path.prototype;function withPath(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new Path(t)}Array.prototype.slice;function array_default(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Linear(e){this._context=e}Linear.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function linear_default(e){return new Linear(e)}function x(e){return e[0]}function y(e){return e[1]}function line_default(e,t){var n=constant_default$1(!0),r=null,i=linear_default,a=null,o=withPath(line);e=typeof e==`function`?e:e===void 0?x:constant_default$1(e),t=typeof t==`function`?t:t===void 0?y:constant_default$1(t);function line(s){var c,l=(s=array_default(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c<l&&n(u=s[c],c,s))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+e(u,c,s),+t(u,c,s));if(f)return a=null,f+``||null}return line.x=function(t){return arguments.length?(e=typeof t==`function`?t:constant_default$1(+t),line):e},line.y=function(e){return arguments.length?(t=typeof e==`function`?e:constant_default$1(+e),line):t},line.defined=function(e){return arguments.length?(n=typeof e==`function`?e:constant_default$1(!!e),line):n},line.curve=function(e){return arguments.length?(i=e,r!=null&&(a=i(r)),line):i},line.context=function(e){return arguments.length?(e==null?r=a=null:a=i(r=e),line):r},line}function sign(e){return e<0?-1:1}function slope3(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(sign(a)+sign(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function slope2(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function point(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function MonotoneX(e){this._context=e}MonotoneX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:point(this,this._t0,slope2(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,point(this,slope2(this,n=slope3(this,e,t)),n);break;default:point(this,this._t0,n=slope3(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function MonotoneY(e){this._context=new ReflectContext(e)}(MonotoneY.prototype=Object.create(MonotoneX.prototype)).point=function(e,t){MonotoneX.prototype.point.call(this,t,e)};function ReflectContext(e){this._context=e}ReflectContext.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}};function monotoneX(e){return new MonotoneX(e)}function ascending(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function descending(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function bisector(e){let t,compare2,delta;e.length===2?(t=e===ascending||e===descending?e:zero$1,compare2=e,delta=e):(t=ascending,compare2=(t,n)=>ascending(e(t),n),delta=(t,n)=>e(t)-n);function left(e,n,r=0,i=e.length){if(r<i){if(t(n,n)!==0)return i;do{let t=r+i>>>1;compare2(e[t],n)<0?r=t+1:i=t}while(r<i)}return r}function right(e,n,r=0,i=e.length){if(r<i){if(t(n,n)!==0)return i;do{let t=r+i>>>1;compare2(e[t],n)<=0?r=t+1:i=t}while(r<i)}return r}function center(e,t,n=0,r=e.length){let i=left(e,t,n,r-1);return i>n&&delta(e[i-1],t)>-delta(e[i],t)?i-1:i}return{left,center,right}}function zero$1(){return 0}function number$2(e){return e===null?NaN:+e}var g=bisector(ascending),_=g.right;g.left,bisector(number$2).center;function extent(e,t){let n,r;if(t===void 0)for(let t of e)t!=null&&(n===void 0?t>=t&&(n=r=t):(n>t&&(n=t),r<t&&(r=t)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}var InternMap=class extends Map{constructor(e,t=keyof){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(intern_get(this,e))}has(e){return super.has(intern_get(this,e))}set(e,t){return super.set(intern_set(this,e),t)}delete(e){return super.delete(intern_delete(this,e))}};function intern_get({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function intern_set({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function intern_delete({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function keyof(e){return typeof e==`object`&&e?e.valueOf():e}var v=Math.sqrt(50),b=Math.sqrt(10),S=Math.sqrt(2);function tickSpec(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=v?10:a>=b?5:a>=S?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/l<e&&++s,c/l>t&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*l<e&&++s,c*l>t&&--c),c<s&&.5<=n&&n<2?tickSpec(e,t,n*2):[s,c,l]}function ticks(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[i,a,o]=r?tickSpec(t,e,n):tickSpec(e,t,n);if(!(a>=i))return[];let s=a-i+1,c=Array(s);if(r)if(o<0)for(let e=0;e<s;++e)c[e]=(a-e)/-o;else for(let e=0;e<s;++e)c[e]=(a-e)*o;else if(o<0)for(let e=0;e<s;++e)c[e]=(i+e)/-o;else for(let e=0;e<s;++e)c[e]=(i+e)*o;return c}function tickIncrement(e,t,n){return t=+t,e=+e,n=+n,tickSpec(e,t,n)[2]}function tickStep(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?tickIncrement(t,e,n):tickIncrement(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function max(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n<t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function min(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n>t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function range(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function initRange(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}var C=Symbol(`implicit`);function ordinal(){var e=new InternMap,t=[],n=[],r=C;function scale(i){let a=e.get(i);if(a===void 0){if(r!==C)return r;e.set(i,a=t.push(i)-1)}return n[a%n.length]}return scale.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new InternMap;for(let r of n)e.has(r)||e.set(r,t.push(r)-1);return scale},scale.range=function(e){return arguments.length?(n=Array.from(e),scale):n.slice()},scale.unknown=function(e){return arguments.length?(r=e,scale):r},scale.copy=function(){return ordinal(t,n).unknown(r)},initRange.apply(scale,arguments),scale}function band(){var e=ordinal().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function rescale(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=range(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),rescale()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,rescale()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,rescale()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,rescale()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),rescale()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),rescale()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,rescale()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),rescale()):u},e.copy=function(){return band(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},initRange.apply(rescale(),arguments)}function define_default(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function extend(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Color(){}var w=.7,T=1/w,E=`\\s*([+-]?\\d+)\\s*`,D=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,O=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,ee=/^#([0-9a-f]{3,8})$/,te=RegExp(`^rgb\\(${E},${E},${E}\\)$`),ne=RegExp(`^rgb\\(${O},${O},${O}\\)$`),re=RegExp(`^rgba\\(${E},${E},${E},${D}\\)$`),ie=RegExp(`^rgba\\(${O},${O},${O},${D}\\)$`),ae=RegExp(`^hsl\\(${D},${O},${O}\\)$`),oe=RegExp(`^hsla\\(${D},${O},${O},${D}\\)$`),se={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};define_default(Color,color,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:color_formatHex,formatHex:color_formatHex,formatHex8:color_formatHex8,formatHsl:color_formatHsl,formatRgb:color_formatRgb,toString:color_formatRgb});function color_formatHex(){return this.rgb().formatHex()}function color_formatHex8(){return this.rgb().formatHex8()}function color_formatHsl(){return hslConvert(this).formatHsl()}function color_formatRgb(){return this.rgb().formatRgb()}function color(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=ee.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?rgbn(t):n===3?new Rgb(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?rgba(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?rgba(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=te.exec(e))?new Rgb(t[1],t[2],t[3],1):(t=ne.exec(e))?new Rgb(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=re.exec(e))?rgba(t[1],t[2],t[3],t[4]):(t=ie.exec(e))?rgba(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=ae.exec(e))?hsla(t[1],t[2]/100,t[3]/100,1):(t=oe.exec(e))?hsla(t[1],t[2]/100,t[3]/100,t[4]):se.hasOwnProperty(e)?rgbn(se[e]):e===`transparent`?new Rgb(NaN,NaN,NaN,0):null}function rgbn(e){return new Rgb(e>>16&255,e>>8&255,e&255,1)}function rgba(e,t,n,r){return r<=0&&(e=t=n=NaN),new Rgb(e,t,n,r)}function rgbConvert(e){return e instanceof Color||(e=color(e)),e?(e=e.rgb(),new Rgb(e.r,e.g,e.b,e.opacity)):new Rgb}function rgb(e,t,n,r){return arguments.length===1?rgbConvert(e):new Rgb(e,t,n,r??1)}function Rgb(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}define_default(Rgb,rgb,extend(Color,{brighter(e){return e=e==null?T:T**+e,new Rgb(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?w:w**+e,new Rgb(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){let e=clampa(this.opacity);return`${e===1?`rgb(`:`rgba(`}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${e===1?`)`:`, ${e})`}`}function clampa(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function clampi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function hex(e){return e=clampi(e),(e<16?`0`:``)+e.toString(16)}function hsla(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Hsl(e,t,n,r)}function hslConvert(e){if(e instanceof Hsl)return new Hsl(e.h,e.s,e.l,e.opacity);if(e instanceof Color||(e=color(e)),!e)return new Hsl;if(e instanceof Hsl)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new Hsl(o,s,c,e.opacity)}function hsl(e,t,n,r){return arguments.length===1?hslConvert(e):new Hsl(e,t,n,r??1)}function Hsl(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}define_default(Hsl,hsl,extend(Color,{brighter(e){return e=e==null?T:T**+e,new Hsl(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?w:w**+e,new Hsl(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Rgb(hsl2rgb(e>=240?e-240:e+120,i,r),hsl2rgb(e,i,r),hsl2rgb(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=clampa(this.opacity);return`${e===1?`hsl(`:`hsla(`}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function clamph(e){return e=(e||0)%360,e<0?e+360:e}function clampt(e){return Math.max(0,Math.min(1,e||0))}function hsl2rgb(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var constant_default=e=>()=>e;function linear$1(e,t){return function(n){return e+n*t}}function exponential(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function gamma(e){return(e=+e)==1?nogamma:function(t,n){return n-t?exponential(t,n,e):constant_default(isNaN(t)?n:t)}}function nogamma(e,t){var n=t-e;return n?linear$1(e,n):constant_default(isNaN(e)?t:e)}var ce=(function rgbGamma(e){var t=gamma(e);function rgb$1(e,n){var r=t((e=rgb(e)).r,(n=rgb(n)).r),i=t(e.g,n.g),a=t(e.b,n.b),o=nogamma(e.opacity,n.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return rgb$1.gamma=rgbGamma,rgb$1})(1);function numberArray_default(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function isNumberArray(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function genericArray(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=value_default(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function date_default(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function number_default(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function object_default(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=value_default(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var le=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ue=new RegExp(le.source,`g`);function zero(e){return function(){return e}}function one(e){return function(t){return e(t)+``}}function string_default(e,t){var n=le.lastIndex=ue.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=le.exec(e))&&(i=ue.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:number_default(r,i)})),n=ue.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?one(c[0].x):zero(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function value_default(e,t){var n=typeof t,r;return t==null||n===`boolean`?constant_default(t):(n===`number`?number_default:n===`string`?(r=color(t))?(t=r,ce):string_default:t instanceof color?ce:t instanceof Date?date_default:isNumberArray(t)?numberArray_default:Array.isArray(t)?genericArray:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?object_default:number_default)(e,t)}function round_default(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function constants(e){return function(){return e}}function number$1(e){return+e}var de=[0,1];function identity(e){return e}function normalize(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:constants(isNaN(t)?NaN:.5)}function clamper(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function bimap(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=normalize(i,r),a=n(o,a)):(r=normalize(r,i),a=n(a,o)),function(e){return a(r(e))}}function polymap(e,t,n){var r=Math.min(e.length,t.length)-1,i=Array(r),a=Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=normalize(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=_(e,t,1,r)-1;return a[n](i[n](t))}}function copy(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function transformer(){var e=de,t=de,n=value_default,r,i,a,o=identity,s,c,l;function rescale(){var n=Math.min(e.length,t.length);return o!==identity&&(o=clamper(e[0],e[n-1])),s=n>2?polymap:bimap,c=l=null,scale}function scale(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return scale.invert=function(n){return o(i((l||=s(t,e.map(r),number_default))(n)))},scale.domain=function(t){return arguments.length?(e=Array.from(t,number$1),rescale()):e.slice()},scale.range=function(e){return arguments.length?(t=Array.from(e),rescale()):t.slice()},scale.rangeRound=function(e){return t=Array.from(e),n=round_default,rescale()},scale.clamp=function(e){return arguments.length?(o=e?!0:identity,rescale()):o!==identity},scale.interpolate=function(e){return arguments.length?(n=e,rescale()):n},scale.unknown=function(e){return arguments.length?(a=e,scale):a},function(e,t){return r=e,i=t,rescale()}}function continuous(){return transformer()(identity,identity)}function formatDecimal_default(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function formatDecimalParts(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function exponent_default(e){return e=formatDecimalParts(Math.abs(e)),e?e[1]:NaN}function formatGroup_default(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function formatNumerals_default(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var fe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(e){if(!(t=fe.exec(e)))throw Error(`invalid format: `+e);var t;return new FormatSpecifier({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function formatTrim_default(e){out:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case`.`:r=i=n;break;case`0`:r===0&&(r=n),i=n;break;default:if(!+e[n])break out;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var k;function formatPrefixAuto_default(e,t){var n=formatDecimalParts(e,t);if(!n)return k=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(k=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+formatDecimalParts(e,Math.max(0,t+a-1))[0]}function formatRounded_default(e,t){var n=formatDecimalParts(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var pe={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:formatDecimal_default,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>formatRounded_default(e*100,t),r:formatRounded_default,s:formatPrefixAuto_default,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function identity_default(e){return e}var me=Array.prototype.map,he=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function locale_default(e){var t=e.grouping===void 0||e.thousands===void 0?identity_default:formatGroup_default(me.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?identity_default:formatNumerals_default(me.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function newFormat(e,l){e=formatSpecifier(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,b=e.type;b===`n`?(g=!0,b=`g`):pe[b]||(_===void 0&&(_=12),v=!0,b=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var S=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(b)?`0`+b.toLowerCase():``),C=(p===`$`?r:/[%p]/.test(b)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),w=pe[b],T=/[defgprs%]/.test(b);_=_===void 0?6:/[gprs]/.test(b)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function format(e){var n=S,r=C,o,l,p;if(b===`c`)r=w(e)+r,e=``;else{e=+e;var E=e<0||1/e<0;if(e=isNaN(e)?c:w(Math.abs(e),_),v&&(e=formatTrim_default(e)),E&&+e==0&&f!==`+`&&(E=!1),n=(E?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(b===`s`&&!isNaN(e)&&k!==void 0?he[8+k/3]:``)+r+(E&&f===`(`?`)`:``),T){for(o=-1,l=e.length;++o<l;)if(p=e.charCodeAt(o),48>p||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var D=n.length+e.length+r.length,O=D<h?Array(h-D+1).join(u):``;switch(g&&m&&(e=t(O+e,O.length?h-r.length:1/0),O=``),d){case`<`:e=n+e+r+O;break;case`=`:e=n+O+e+r;break;case`^`:e=O.slice(0,D=O.length>>1)+n+e+r+O.slice(D);break;default:e=O+n+e+r;break}return a(e)}return format.toString=function(){return e+``},format}function formatPrefix(e,t){var n=Math.max(-8,Math.min(8,Math.floor(exponent_default(t)/3)))*3,r=10**-n,i=newFormat((e=formatSpecifier(e),e.type=`f`,e),{suffix:he[8+n/3]});return function(e){return i(r*e)}}return{format:newFormat,formatPrefix}}var A,ge,_e;defaultLocale$1({thousands:`,`,grouping:[3],currency:[`$`,``]});function defaultLocale$1(e){return A=locale_default(e),ge=A.format,_e=A.formatPrefix,A}function precisionFixed_default(e){return Math.max(0,-exponent_default(Math.abs(e)))}function precisionPrefix_default(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent_default(t)/3)))*3-exponent_default(Math.abs(e)))}function precisionRound_default(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,exponent_default(t)-exponent_default(e))+1}function tickFormat(e,t,n,r){var i=tickStep(e,t,n),a;switch(r=formatSpecifier(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=precisionPrefix_default(i,o))&&(r.precision=a),_e(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=precisionRound_default(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=precisionFixed_default(i))&&(r.precision=a-(r.type===`%`)*2);break}return ge(r)}function linearish(e){var t=e.domain;return e.ticks=function(e){var n=t();return ticks(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return tickFormat(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);u-->0;){if(l=tickIncrement(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function linear(){var e=continuous();return e.copy=function(){return copy(e,linear())},initRange.apply(e,arguments),linearish(e)}function nice(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}var ve=new Date,ye=new Date;function timeInterval(e,t,n,r){function interval(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return interval.floor=t=>(e(t=new Date(+t)),t),interval.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),interval.round=e=>{let t=interval(e),n=interval.ceil(e);return e-t<n-e?t:n},interval.offset=(e,n)=>(t(e=new Date(+e),n==null?1:Math.floor(n)),e),interval.range=(n,r,i)=>{let a=[];if(n=interval.ceil(n),i=i==null?1:Math.floor(i),!(n<r)||!(i>0))return a;let o;do a.push(o=new Date(+n)),t(n,i),e(n);while(o<n&&n<r);return a},interval.filter=n=>timeInterval(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}),n&&(interval.count=(t,r)=>(ve.setTime(+t),ye.setTime(+r),e(ve),e(ye),Math.floor(n(ve,ye))),interval.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?interval.filter(r?t=>r(t)%e===0:t=>interval.count(0,t)%e===0):interval)),interval}var j=timeInterval(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);j.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?timeInterval(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):j),j.range;var M=1e3,N=M*60,P=N*60,F=P*24,I=F*7,be=F*30,L=F*365,R=timeInterval(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*M)},(e,t)=>(t-e)/M,e=>e.getUTCSeconds());R.range;var xe=timeInterval(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*M)},(e,t)=>{e.setTime(+e+t*N)},(e,t)=>(t-e)/N,e=>e.getMinutes());xe.range;var Se=timeInterval(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*N)},(e,t)=>(t-e)/N,e=>e.getUTCMinutes());Se.range;var Ce=timeInterval(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*M-e.getMinutes()*N)},(e,t)=>{e.setTime(+e+t*P)},(e,t)=>(t-e)/P,e=>e.getHours());Ce.range;var we=timeInterval(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*P)},(e,t)=>(t-e)/P,e=>e.getUTCHours());we.range;var z=timeInterval(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*N)/F,e=>e.getDate()-1);z.range;var Te=timeInterval(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/F,e=>e.getUTCDate()-1);Te.range;var Ee=timeInterval(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/F,e=>Math.floor(e/F));Ee.range;function timeWeekday(e){return timeInterval(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*N)/I)}var B=timeWeekday(0),V=timeWeekday(1),De=timeWeekday(2),Oe=timeWeekday(3),H=timeWeekday(4),ke=timeWeekday(5),Ae=timeWeekday(6);B.range,V.range,De.range,Oe.range,H.range,ke.range,Ae.range;function utcWeekday(e){return timeInterval(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/I)}var je=utcWeekday(0),U=utcWeekday(1),Me=utcWeekday(2),Ne=utcWeekday(3),W=utcWeekday(4),Pe=utcWeekday(5),Fe=utcWeekday(6);je.range,U.range,Me.range,Ne.range,W.range,Pe.range,Fe.range;var Ie=timeInterval(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Ie.range;var Le=timeInterval(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Le.range;var G=timeInterval(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());G.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:timeInterval(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),G.range;var K=timeInterval(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());K.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:timeInterval(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),K.range;function ticker(e,t,n,r,i,a){let o=[[R,1,M],[R,5,5*M],[R,15,15*M],[R,30,30*M],[a,1,N],[a,5,5*N],[a,15,15*N],[a,30,30*N],[i,1,P],[i,3,3*P],[i,6,6*P],[i,12,12*P],[r,1,F],[r,2,2*F],[n,1,I],[t,1,be],[t,3,3*be],[e,1,L]];function ticks(e,t,n){let r=t<e;r&&([e,t]=[t,e]);let i=n&&typeof n.range==`function`?n:tickInterval(e,t,n),a=i?i.range(e,+t+1):[];return r?a.reverse():a}function tickInterval(t,n,r){let i=Math.abs(n-t)/r,a=bisector(([,,e])=>e).right(o,i);if(a===o.length)return e.every(tickStep(t/L,n/L,r));if(a===0)return j.every(Math.max(tickStep(t,n,r),1));let[s,c]=o[i/o[a-1][2]<o[a][2]/i?a-1:a];return s.every(c)}return[ticks,tickInterval]}var[Re,ze]=ticker(K,Le,je,Ee,we,Se),[Be,Ve]=ticker(G,Ie,B,z,Ce,xe);function localDate(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function utcDate(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function newDate(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function formatLocale(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,c=e.shortMonths,l=formatRe(i),u=formatLookup(i),d=formatRe(a),f=formatLookup(a),p=formatRe(o),m=formatLookup(o),h=formatRe(s),g=formatLookup(s),_=formatRe(c),v=formatLookup(c),b={a:formatShortWeekday,A:formatWeekday,b:formatShortMonth,B:formatMonth,c:null,d:formatDayOfMonth,e:formatDayOfMonth,f:formatMicroseconds,g:formatYearISO,G:formatFullYearISO,H:formatHour24,I:formatHour12,j:formatDayOfYear,L:formatMilliseconds,m:formatMonthNumber,M:formatMinutes,p:formatPeriod,q:formatQuarter,Q:formatUnixTimestamp,s:formatUnixTimestampSeconds,S:formatSeconds,u:formatWeekdayNumberMonday,U:formatWeekNumberSunday,V:formatWeekNumberISO,w:formatWeekdayNumberSunday,W:formatWeekNumberMonday,x:null,X:null,y:formatYear,Y:formatFullYear,Z:formatZone,"%":formatLiteralPercent},S={a:formatUTCShortWeekday,A:formatUTCWeekday,b:formatUTCShortMonth,B:formatUTCMonth,c:null,d:formatUTCDayOfMonth,e:formatUTCDayOfMonth,f:formatUTCMicroseconds,g:formatUTCYearISO,G:formatUTCFullYearISO,H:formatUTCHour24,I:formatUTCHour12,j:formatUTCDayOfYear,L:formatUTCMilliseconds,m:formatUTCMonthNumber,M:formatUTCMinutes,p:formatUTCPeriod,q:formatUTCQuarter,Q:formatUnixTimestamp,s:formatUnixTimestampSeconds,S:formatUTCSeconds,u:formatUTCWeekdayNumberMonday,U:formatUTCWeekNumberSunday,V:formatUTCWeekNumberISO,w:formatUTCWeekdayNumberSunday,W:formatUTCWeekNumberMonday,x:null,X:null,y:formatUTCYear,Y:formatUTCFullYear,Z:formatUTCZone,"%":formatLiteralPercent},C={a:parseShortWeekday,A:parseWeekday,b:parseShortMonth,B:parseMonth,c:parseLocaleDateTime,d:parseDayOfMonth,e:parseDayOfMonth,f:parseMicroseconds,g:parseYear,G:parseFullYear,H:parseHour24,I:parseHour24,j:parseDayOfYear,L:parseMilliseconds,m:parseMonthNumber,M:parseMinutes,p:parsePeriod,q:parseQuarter,Q:parseUnixTimestamp,s:parseUnixTimestampSeconds,S:parseSeconds,u:parseWeekdayNumberMonday,U:parseWeekNumberSunday,V:parseWeekNumberISO,w:parseWeekdayNumberSunday,W:parseWeekNumberMonday,x:parseLocaleDate,X:parseLocaleTime,y:parseYear,Y:parseFullYear,Z:parseZone,"%":parseLiteralPercent};b.x=newFormat(n,b),b.X=newFormat(r,b),b.c=newFormat(t,b),S.x=newFormat(n,S),S.X=newFormat(r,S),S.c=newFormat(t,S);function newFormat(e,t){return function(n){var r=[],i=-1,a=0,o=e.length,s,c,l;for(n instanceof Date||(n=new Date(+n));++i<o;)e.charCodeAt(i)===37&&(r.push(e.slice(a,i)),(c=He[s=e.charAt(++i)])==null?c=s===`e`?` `:`0`:s=e.charAt(++i),(l=t[s])&&(s=l(n,c)),r.push(s),a=i+1);return r.push(e.slice(a,i)),r.join(``)}}function newParse(e,t){return function(n){var r=newDate(1900,void 0,1),i=parseSpecifier(r,e,n+=``,0),a,o;if(i!=n.length)return null;if(`Q`in r)return new Date(r.Q);if(`s`in r)return new Date(r.s*1e3+(`L`in r?r.L:0));if(t&&!(`Z`in r)&&(r.Z=0),`p`in r&&(r.H=r.H%12+r.p*12),r.m===void 0&&(r.m=`q`in r?r.q:0),`V`in r){if(r.V<1||r.V>53)return null;`w`in r||(r.w=1),`Z`in r?(a=utcDate(newDate(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?U.ceil(a):U(a),a=Te.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=localDate(newDate(r.y,0,1)),o=a.getDay(),a=o>4||o===0?V.ceil(a):V(a),a=z.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else(`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?utcDate(newDate(r.y,0,1)).getUTCDay():localDate(newDate(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,utcDate(r)):localDate(r)}}function parseSpecifier(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i<a;){if(r>=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=C[s in He?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function parsePeriod(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function parseShortWeekday(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function parseWeekday(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function parseShortMonth(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function parseMonth(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function parseLocaleDateTime(e,n,r){return parseSpecifier(e,t,n,r)}function parseLocaleDate(e,t,r){return parseSpecifier(e,n,t,r)}function parseLocaleTime(e,t,n){return parseSpecifier(e,r,t,n)}function formatShortWeekday(e){return o[e.getDay()]}function formatWeekday(e){return a[e.getDay()]}function formatShortMonth(e){return c[e.getMonth()]}function formatMonth(e){return s[e.getMonth()]}function formatPeriod(e){return i[+(e.getHours()>=12)]}function formatQuarter(e){return 1+~~(e.getMonth()/3)}function formatUTCShortWeekday(e){return o[e.getUTCDay()]}function formatUTCWeekday(e){return a[e.getUTCDay()]}function formatUTCShortMonth(e){return c[e.getUTCMonth()]}function formatUTCMonth(e){return s[e.getUTCMonth()]}function formatUTCPeriod(e){return i[+(e.getUTCHours()>=12)]}function formatUTCQuarter(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=newFormat(e+=``,b);return t.toString=function(){return e},t},parse:function(e){var t=newParse(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=newFormat(e+=``,S);return t.toString=function(){return e},t},utcParse:function(e){var t=newParse(e+=``,!0);return t.toString=function(){return e},t}}}var He={"-":``,_:` `,0:`0`},q=/^\s*\d+/,Ue=/^%/,We=/[\\^$*+?|[\]().{}]/g;function pad(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a<n?Array(n-a+1).join(t)+i:i)}function requote(e){return e.replace(We,`\\$&`)}function formatRe(e){return RegExp(`^(?:`+e.map(requote).join(`|`)+`)`,`i`)}function formatLookup(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function parseWeekdayNumberSunday(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function parseWeekdayNumberMonday(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function parseWeekNumberSunday(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function parseWeekNumberISO(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function parseWeekNumberMonday(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function parseFullYear(e,t,n){var r=q.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function parseYear(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function parseZone(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function parseQuarter(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function parseMonthNumber(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function parseDayOfMonth(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function parseDayOfYear(e,t,n){var r=q.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function parseHour24(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function parseMinutes(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function parseSeconds(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function parseMilliseconds(e,t,n){var r=q.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function parseMicroseconds(e,t,n){var r=q.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function parseLiteralPercent(e,t,n){var r=Ue.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function parseUnixTimestamp(e,t,n){var r=q.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function parseUnixTimestampSeconds(e,t,n){var r=q.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function formatDayOfMonth(e,t){return pad(e.getDate(),t,2)}function formatHour24(e,t){return pad(e.getHours(),t,2)}function formatHour12(e,t){return pad(e.getHours()%12||12,t,2)}function formatDayOfYear(e,t){return pad(1+z.count(G(e),e),t,3)}function formatMilliseconds(e,t){return pad(e.getMilliseconds(),t,3)}function formatMicroseconds(e,t){return formatMilliseconds(e,t)+`000`}function formatMonthNumber(e,t){return pad(e.getMonth()+1,t,2)}function formatMinutes(e,t){return pad(e.getMinutes(),t,2)}function formatSeconds(e,t){return pad(e.getSeconds(),t,2)}function formatWeekdayNumberMonday(e){var t=e.getDay();return t===0?7:t}function formatWeekNumberSunday(e,t){return pad(B.count(G(e)-1,e),t,2)}function dISO(e){var t=e.getDay();return t>=4||t===0?H(e):H.ceil(e)}function formatWeekNumberISO(e,t){return e=dISO(e),pad(H.count(G(e),e)+(G(e).getDay()===4),t,2)}function formatWeekdayNumberSunday(e){return e.getDay()}function formatWeekNumberMonday(e,t){return pad(V.count(G(e)-1,e),t,2)}function formatYear(e,t){return pad(e.getFullYear()%100,t,2)}function formatYearISO(e,t){return e=dISO(e),pad(e.getFullYear()%100,t,2)}function formatFullYear(e,t){return pad(e.getFullYear()%1e4,t,4)}function formatFullYearISO(e,t){var n=e.getDay();return e=n>=4||n===0?H(e):H.ceil(e),pad(e.getFullYear()%1e4,t,4)}function formatZone(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+pad(t/60|0,`0`,2)+pad(t%60,`0`,2)}function formatUTCDayOfMonth(e,t){return pad(e.getUTCDate(),t,2)}function formatUTCHour24(e,t){return pad(e.getUTCHours(),t,2)}function formatUTCHour12(e,t){return pad(e.getUTCHours()%12||12,t,2)}function formatUTCDayOfYear(e,t){return pad(1+Te.count(K(e),e),t,3)}function formatUTCMilliseconds(e,t){return pad(e.getUTCMilliseconds(),t,3)}function formatUTCMicroseconds(e,t){return formatUTCMilliseconds(e,t)+`000`}function formatUTCMonthNumber(e,t){return pad(e.getUTCMonth()+1,t,2)}function formatUTCMinutes(e,t){return pad(e.getUTCMinutes(),t,2)}function formatUTCSeconds(e,t){return pad(e.getUTCSeconds(),t,2)}function formatUTCWeekdayNumberMonday(e){var t=e.getUTCDay();return t===0?7:t}function formatUTCWeekNumberSunday(e,t){return pad(je.count(K(e)-1,e),t,2)}function UTCdISO(e){var t=e.getUTCDay();return t>=4||t===0?W(e):W.ceil(e)}function formatUTCWeekNumberISO(e,t){return e=UTCdISO(e),pad(W.count(K(e),e)+(K(e).getUTCDay()===4),t,2)}function formatUTCWeekdayNumberSunday(e){return e.getUTCDay()}function formatUTCWeekNumberMonday(e,t){return pad(U.count(K(e)-1,e),t,2)}function formatUTCYear(e,t){return pad(e.getUTCFullYear()%100,t,2)}function formatUTCYearISO(e,t){return e=UTCdISO(e),pad(e.getUTCFullYear()%100,t,2)}function formatUTCFullYear(e,t){return pad(e.getUTCFullYear()%1e4,t,4)}function formatUTCFullYearISO(e,t){var n=e.getUTCDay();return e=n>=4||n===0?W(e):W.ceil(e),pad(e.getUTCFullYear()%1e4,t,4)}function formatUTCZone(){return`+0000`}function formatLiteralPercent(){return`%`}function formatUnixTimestamp(e){return+e}function formatUnixTimestampSeconds(e){return Math.floor(e/1e3)}var J,Ge;defaultLocale({dateTime:`%x, %X`,date:`%-m/%-d/%Y`,time:`%-I:%M:%S %p`,periods:[`AM`,`PM`],days:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],shortDays:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],months:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],shortMonths:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`]});function defaultLocale(e){return J=formatLocale(e),Ge=J.format,J.parse,J.utcFormat,J.utcParse,J}function date(e){return new Date(e)}function number(e){return e instanceof Date?+e:+new Date(+e)}function calendar(e,t,n,r,i,a,o,s,c,l){var u=continuous(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),b=l(`%B`),S=l(`%Y`);function tickFormat(e){return(c(e)<e?p:s(e)<e?m:o(e)<e?h:a(e)<e?g:r(e)<e?i(e)<e?_:v:n(e)<e?b:S)(e)}return u.invert=function(e){return new Date(d(e))},u.domain=function(e){return arguments.length?f(Array.from(e,number)):f().map(date)},u.ticks=function(t){var n=f();return e(n[0],n[n.length-1],t??10)},u.tickFormat=function(e,t){return t==null?tickFormat:l(t)},u.nice=function(e){var n=f();return(!e||typeof e.range!=`function`)&&(e=t(n[0],n[n.length-1],e??10)),e?f(nice(n,e)):u},u.copy=function(){return copy(u,calendar(e,t,n,r,i,a,o,s,c,l))},u}function time(){return initRange.apply(calendar(Be,Ve,G,Ie,B,z,Ce,xe,R,Ge).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}var Ke=.1;function linearScale(e,t){return linear().domain(e).range(t).nice()}function timeScale(e,t){return time().domain(e).range(t).nice()}function bandScale(e,t,n=Ke){return band().domain(e).range(t).paddingInner(n).paddingOuter(n/2)}function isBandScale(e){return typeof e.bandwidth==`function`}function scaleTicks(e,t){return isBandScale(e)?e.domain():e.ticks(t)}function tickPosition(e,t){return isBandScale(e)?(e(t)??0)+e.bandwidth()/2:e(t)}function tickFormatter(e,t){if(isBandScale(e))return e=>String(e);let n=e.tickFormat(t);return e=>n(e)}function pointsXExtent(e){let t=extent(e,e=>e.x);return[t[0]??0,t[1]??1]}function pointsYBounds(e,t=!0){if(e.length===0)return[0,1];let n=min(e,e=>e.y)??0,r=max(e,e=>e.y)??1,i=t?Math.min(0,n):n;return[i,r>i?r:i+1]}var Y=6,qe=4;function measureAxisMargin(t,n,r,i){let a=scaleTicks(n,i);if(t===`left`){let t=0;for(let n of a)t=Math.max(t,e.source.measureText(r(n)).width);return 10+Math.ceil(t)}let o=e.source.measureText(`0`).height;return 10+Math.ceil(o)}function drawAxis(e,t,n,r,i){let a={stroke:`var(--ts-ui-chart-axis)`,"stroke-width":`var(--ts-ui-chart-axis-width)`},o={stroke:`var(--ts-ui-chart-grid)`,"stroke-width":`var(--ts-ui-chart-axis-width)`},s={fill:`var(--ts-ui-chart-label)`},c=r.y+r.height,l=r.x+r.width;t===`left`?e(`line`,{setAttr:{x1:String(r.x),y1:String(r.y),x2:String(r.x),y2:String(c)},style:a}):e(`line`,{setAttr:{x1:String(r.x),y1:String(c),x2:String(l),y2:String(c)},style:a});for(let u of scaleTicks(n,i.tickCount)){let d=tickPosition(n,u),f=i.format(u);t===`left`?drawLeftTick(e,r,l,d,f,i.grid,o,a,s):drawBottomTick(e,r,c,d,f,i.grid,o,a,s)}}function drawLeftTick(e,t,n,r,i,a,o,s,c){a&&e(`line`,{setAttr:{x1:String(t.x),y1:String(r),x2:String(n),y2:String(r)},style:o}),e(`line`,{setAttr:{x1:String(t.x-Y),y1:String(r),x2:String(t.x),y2:String(r)},style:s}),e(`text`,{setAttr:{x:String(t.x-Y-qe),y:String(r),"text-anchor":`end`,"dominant-baseline":`middle`},style:c,text:i})}function drawBottomTick(e,t,n,r,i,a,o,s,c){a&&e(`line`,{setAttr:{x1:String(r),y1:String(t.y),x2:String(r),y2:String(n)},style:o}),e(`line`,{setAttr:{x1:String(r),y1:String(n),x2:String(r),y2:String(n+Y)},style:s}),e(`text`,{setAttr:{x:String(r),y:String(n+Y+qe),"text-anchor":`middle`,"dominant-baseline":`hanging`},style:c,text:i})}var X=12,Je=.4,ChartLegend=class extends s{_listeners=new o;_rows=[];_entries=[];_orientation=`vertical`;constructor(e){super(e),this.setBackgroundColor(`transparent`),this.clearInsets(),this.applyOrientationLayout(),this.dispatchLegendOptions(e),a.addSubtreeListener(this,`click`,this.handleRowClick)}dispatchLegendOptions(e){e&&(e.orientation!==void 0&&this.setOrientation(e.orientation),e.entries!==void 0&&this.setEntries(e.entries),this.applyListeners(e.listeners))}setOrientation(e){return this._orientation===e?this:(this._orientation=e,this.applyOrientationLayout(),this)}getOrientation(){return this._orientation}applyOrientationLayout(){this.setLayoutManager(this._orientation===`vertical`?new d({spacing:2,stretching:!1}):new u({spacing:10,stretching:!1}))}setEntries(e){if(this.entriesEqual(e))return this;this._entries=e.map(e=>({...e})),this.removeAllComponents(),this._rows=[];for(let e of this._entries){let t=this.buildRow(e);this._rows.push(t),this.addComponent(t)}return this}getEntries(){return this._entries.map(e=>({...e}))}entriesEqual(e){if(e.length!==this._entries.length)return!1;for(let t=0;t<e.length;t++){let n=e[t],r=this._entries[t];if(n.name!==r.name||n.color!==r.color||(n.hidden??!1)!==(r.hidden??!1))return!1}return!0}buildRow(e){let n=new i({preferredSize:{width:X,height:X},minSize:{width:X,height:X},maxSize:{width:X,height:X},backgroundColor:e.color,borderRadius:`2px`}),r=new l(e.name);return new s({layoutManager:new u({spacing:6,stretching:!0}),insets:new t(2,4,2,4),cursor:`pointer`,opacity:e.hidden?Je:1,components:[n,r]})}handleRowClick=t=>{if(!e.source.isNode(t.target))return;let n=e.source.intern(t.target);for(let t=0;t<this._rows.length;t++){let r=this._rows[t].getElement();if(r&&e.source.contains(r,n)){this.emit(`toggle`,t);return}}};on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e,t){this._listeners.fire(e,t)}dispose(){a.removeSubtreeListener(this,`click`,this.handleRowClick)}},Ye=n(ChartLegend),Xe=`http://www.w3.org/2000/svg`,Ze=[`load`,`add`,`remove`,`datachange`],Qe=8,$e=10,et=12,Z=8,Q=18,tt=6,AbstractChart=class extends s{_listeners=new o;_series=[];_selectedPoint=null;_boundStore=null;_xField=`x`;_yField=`y`;_seriesField=void 0;_onStoreRefresh=()=>this.rebuildFromStore();_legend=new Ye;_themeCleanup=null;_svg=null;_axisGroup=null;_seriesGroup=null;_overlayGroup=null;_marks=[];_plot=null;_xScale=null;_yScale=null;constructor(e,t){super(e,t),this.setPreferredSize(400,300),this.setMinSize(80,60),this.addComponent(this._legend),this._legend.on(`toggle`,this.handleLegendToggle),a.addSubtreeListener(this,`mousemove`,this.handlePointerMove),a.addSubtreeListener(this,`mouseout`,this.handlePointerOut),a.addSubtreeListener(this,`click`,this.handlePointerClick),this._themeCleanup=r.onThemeChange(()=>this.scheduleLayout()),this.dispatchChartOptions(e)}dispatchChartOptions(e){e&&(e.store===void 0?e.series!==void 0&&this.setSeries(e.series):this.setStore(e.store,e.xField??`x`,e.yField??`y`,e.seriesField),e.showLegend!==void 0&&this.setShowLegend(e.showLegend),e.legendPosition!==void 0&&this.setLegendPosition(e.legendPosition),e.xAxisLabel!==void 0&&this.setXAxisLabel(e.xAxisLabel),e.yAxisLabel!==void 0&&this.setYAxisLabel(e.yAxisLabel),this.applyListeners(e.listeners))}setSeries(e){return this._series=this.resolveModel(e),this.scheduleLayout(),this}getSeries(){return this._series.map(e=>({name:e.name,data:e.points.map(e=>({x:e.x,y:e.y})),color:e.color}))}setStore(e,t,n,r){if(this._boundStore)for(let e of Ze)this._boundStore.off(e,this._onStoreRefresh);this._boundStore=e,this._xField=t,this._yField=n,this._seriesField=r;for(let t of Ze)e.on(t,this._onStoreRefresh);return this.rebuildFromStore(),this}getStore(){return this._boundStore}rebuildFromStore(){this._boundStore&&(this._series=this.resolveModel(this.seriesFromStore(this._boundStore)),this.scheduleLayout())}seriesFromStore(e){let t=e.getRecords();if(t.length===0)return[];if(this._seriesField===void 0)return[{name:this._yField,data:t.map(e=>({x:Number(e.get(this._xField)),y:Number(e.get(this._yField))}))}];let n=new Map;for(let e of t){let t=String(e.get(this._seriesField)),r={x:Number(e.get(this._xField)),y:Number(e.get(this._yField))},i=n.get(t);i?i.push(r):n.set(t,[r])}return Array.from(n,([e,t])=>({name:e,data:t}))}resolveModel(e){let t=new Map(this._series.map(e=>[e.name,e.hidden]));return e.map(e=>({name:e.name,points:e.data.map(e=>({x:e.x,y:e.y})),color:e.color,hidden:t.get(e.name)??!1}))}setShowLegend(e){return this._options.showLegend=e,this.scheduleLayout(),this}isShowLegend(){return this._options.showLegend??!0}setLegendPosition(e){return this._options.legendPosition=e,this.scheduleLayout(),this}getLegendPosition(){return this._options.legendPosition??`right`}setXAxisLabel(e){return this._options.xAxisLabel=e,this.scheduleLayout(),this}getXAxisLabel(){return this._options.xAxisLabel??null}setYAxisLabel(e){return this._options.yAxisLabel=e,this.scheduleLayout(),this}getYAxisLabel(){return this._options.yAxisLabel??null}on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e,t){this._listeners.fire(e,t)}createRootElement(){let t=super.createRootElement(),n=e.sink.createElementNS(Xe,`svg`);return e.sink.apply(n,{style:{position:`absolute`,left:`0`,top:`0`,overflow:`visible`}}),e.sink.appendChild(t,n),this.trackHandle(n),this._svg=n,this._axisGroup=this.createGroup(n),this._seriesGroup=this.createGroup(n),this._overlayGroup=this.createGroup(n),t}createGroup(t){let n=e.sink.createElementNS(Xe,`g`);return e.sink.appendChild(t,n),this.trackHandle(n),n}doLayout(){super.doLayout();let e=this.getInnerSize();if(!e||!this._svg)return this;let t=this.getPerimeterSize();this.sizeSurface(e);let n=this.reserveLegend(e,t),r=this.computePlot(n),i=this.buildScales(r);return this._plot=r,this._xScale=i.x,this._yScale=i.y,this.repaint(r,i.x,i.y),this}sizeSurface(t){let n=this.getPerimeterSize();e.sink.apply(this._svg,{setAttr:{width:String(t.width),height:String(t.height),viewBox:`0 0 ${t.width} ${t.height}`},style:{position:`absolute`,left:`${n.left}px`,top:`${n.top}px`,overflow:`visible`}})}reserveLegend(e,t){let n={x:0,y:0,width:e.width,height:e.height};if(!this.isShowLegend()||this._series.length===0)return this._legend.setVisible(!1),n;this._legend.setVisible(!0),this._legend.setOrientation(this.getLegendPosition()===`right`?`vertical`:`horizontal`),this._legend.setEntries(this._series.map((e,t)=>({name:e.name,color:this.seriesColor(t,e),hidden:e.hidden})));let r=this._legend.getPreferredSize()??{width:120,height:60},i=this.getLegendPosition();if(i===`right`){let n=Math.min(r.width,e.width/2);return this.placeLegend(t,e.width-n,0,n,e.height),{x:0,y:0,width:e.width-n-Z,height:e.height}}let a=Math.min(r.height,e.height/2);return i===`top`?(this.placeLegend(t,0,0,e.width,a),{x:0,y:a+Z,width:e.width,height:e.height-a-Z}):(this.placeLegend(t,0,e.height-a,e.width,a),{x:0,y:0,width:e.width,height:e.height-a-Z})}placeLegend(e,t,n,r,i){this._legend.setX(e.left+t),this._legend.setY(e.top+n),this._legend.setWidth(r),this._legend.setHeight(i),this._legend.doLayout()}computePlot(e){let t=this.buildScales(e),n=tickFormatter(t.x,8),r=tickFormatter(t.y,8),i=measureAxisMargin(`left`,t.y,r,8)+(this._options.yAxisLabel?Q:0),a=measureAxisMargin(`bottom`,t.x,n,8)+(this._options.xAxisLabel?Q:0);return{x:e.x+i,y:e.y+$e,width:Math.max(0,e.width-i-et),height:Math.max(0,e.height-a-$e)}}repaint(e,t,n){this.clearMarks();let r=this.markFactory(this._axisGroup);drawAxis(r,`left`,n,e,{tickCount:8,format:tickFormatter(n,8),grid:!0}),drawAxis(r,`bottom`,t,e,{tickCount:8,format:tickFormatter(t,8),grid:!1}),this.drawAxisTitles(r,e),this.drawSeries(e,t,n),this.drawSelection(e,t,n)}drawAxisTitles(e,t){let n={fill:`var(--ts-ui-chart-label)`};if(this._options.xAxisLabel&&e(`text`,{setAttr:{x:String(t.x+t.width/2),y:String(t.y+t.height+Q+$e),"text-anchor":`middle`,"dominant-baseline":`hanging`},style:n,text:this._options.xAxisLabel}),this._options.yAxisLabel){let r=t.x-Q*2,i=t.y+t.height/2;e(`text`,{setAttr:{x:String(r),y:String(i),"text-anchor":`middle`,"dominant-baseline":`middle`,transform:`rotate(-90 ${r} ${i})`},style:n,text:this._options.yAxisLabel})}}drawSelection(e,t,n){if(!this._selectedPoint)return;let r=this._series[this._selectedPoint.series];if(!r||r.hidden||this._selectedPoint.index>=r.points.length)return;let i=this.pointPixel(e,t,n,this._selectedPoint.series,this._selectedPoint.index);i&&this.createMark(this._overlayGroup,`circle`,{setAttr:{cx:String(i.x),cy:String(i.y),r:String(tt)},style:{fill:`none`,stroke:`var(--ts-ui-chart-selection)`,"stroke-width":`2`}})}markFactory(e){return(t,n)=>this.createMark(e,t,n)}createMark(t,n,r){let i=e.sink.createElementNS(Xe,n);return e.sink.apply(i,r),e.sink.appendChild(t,i),this._marks.push({parent:t,handle:i}),i}seriesMark(e,t){return this.createMark(this._seriesGroup,e,t)}clearMarks(){for(let{parent:t,handle:n}of this._marks)e.sink.removeChild(t,n),e.sink.release(n);this._marks.length=0}handlePointerMove=e=>{let t=this.resolveHit(e);if(!t){c.hide();return}let n=this._series[t.series],r=t.index===null?n.name:`${n.name}: (${n.points[t.index].x}, ${n.points[t.index].y})`;c.show(r,e.clientX,e.clientY)};handlePointerOut=t=>{let n=t.relatedTarget,r=this.getElement();r&&e.source.isNode(n)&&e.source.contains(r,e.source.intern(n))||c.hide()};handlePointerClick=e=>{let t=this.resolveHit(e);!t||t.index===null||this.selectPoint(t.series,t.index)};handleLegendToggle=e=>{let t=this._series[e];t&&(t.hidden=!t.hidden,this.scheduleLayout())};resolveHit(e){return this.hitMark(e)}clientToSurface(t,n){if(!this._svg)return null;let r=e.source.getElementRect(this._svg);return{x:t-r.x,y:n-r.y}}hitMark(t){if(!e.source.isNode(t.target))return null;let n=e.source.intern(t.target),r=e.source.getDataset(n,`series`);if(r===void 0)return null;let i=Number(r),a=this._series[i];if(!a||a.hidden)return null;let o=e.source.getDataset(n,`index`);if(o===void 0)return{series:i,index:null};let s=Number(o);return s>=a.points.length?null:{series:i,index:s}}selectPoint(e,t){this._selectedPoint={series:e,index:t},this.scheduleLayout();let n=this._series[e];this.emit(`selection`,{series:e,index:t,point:n.points[t],seriesName:n.name})}seriesColor(e,t){return t.color??`var(--ts-ui-chart-series-${e%Qe+1})`}dispose(){if(this._boundStore){for(let e of Ze)this._boundStore.off(e,this._onStoreRefresh);this._boundStore=null}this._themeCleanup&&=(this._themeCleanup(),null),a.removeSubtreeListener(this,`mousemove`,this.handlePointerMove),a.removeSubtreeListener(this,`mouseout`,this.handlePointerOut),a.removeSubtreeListener(this,`click`,this.handlePointerClick),this.clearMarks(),this._legend.dispose(),c.hide()}},$=16,nt=24,CurveTape=class{segments=[];_x=0;_y=0;moveTo(e,t){this._x=e,this._y=t}lineTo(e,t){this.segments.push([this._x,this._y,this._x,this._y,e,t,e,t]),this._x=e,this._y=t}bezierCurveTo(e,t,n,r,i,a){this.segments.push([this._x,this._y,e,t,n,r,i,a]),this._x=i,this._y=a}closePath(){}};function cubicAt(e,t,n,r,i){let a=1-i;return a*a*a*e+3*a*a*i*t+3*a*i*i*n+i*i*i*r}var LineChart=class extends AbstractChart{constructor(e){super(e),this.dispatchLineOptions(e)}dispatchLineOptions(e){e&&(e.showPoints!==void 0&&this.setShowPoints(e.showPoints),e.curved!==void 0&&this.setCurved(e.curved),e.xScaleType!==void 0&&this.setXScaleType(e.xScaleType))}setShowPoints(e){return this._options.showPoints=e,this.scheduleLayout(),this}isShowPoints(){return this._options.showPoints??!0}setCurved(e){return this._options.curved=e,this.scheduleLayout(),this}isCurved(){return this._options.curved??!1}setXScaleType(e){return this._options.xScaleType=e,this.scheduleLayout(),this}getXScaleType(){return this._options.xScaleType??`linear`}visiblePoints(){return this._series.filter(e=>!e.hidden).flatMap(e=>e.points)}buildScales(e){let t=this.visiblePoints(),[n,r]=pointsXExtent(t),i=pointsYBounds(t),a=[e.x,e.x+e.width],o=[e.y+e.height,e.y];return{x:this.getXScaleType()===`time`?timeScale([new Date(n),new Date(r)],a):linearScale([n,r],a),y:linearScale(i,o)}}drawSeries(e,t,n){let r=this.projector(t,n),i=this.isCurved()?monotoneX:linear_default;this._series.forEach((e,t)=>{if(e.hidden)return;let n=this.seriesColor(t,e),a=line_default().x(e=>r.x(e.x)).y(e=>r.y(e.y)).curve(i)(e.points);this.seriesMark(`path`,{setAttr:{d:a??``,"data-series":String(t)},style:{fill:`none`,stroke:n,"stroke-width":`var(--ts-ui-chart-line-width)`}}),this.isShowPoints()&&this.drawPoints(e.points,t,n,r)})}drawPoints(e,t,n,r){e.forEach((e,i)=>{this.seriesMark(`circle`,{setAttr:{cx:String(r.x(e.x)),cy:String(r.y(e.y)),r:`var(--ts-ui-chart-point-radius)`,"data-series":String(t),"data-index":String(i)},style:{fill:n}})})}pointPixel(e,t,n,r,i){let a=this._series[r]?.points[i];if(!a)return null;let o=this.projector(t,n);return{x:o.x(a.x),y:o.y(a.y)}}resolveHit(e){if(!this._plot||!this._xScale||!this._yScale)return null;let t=this.clientToSurface(e.clientX,e.clientY);if(!t)return null;let n=this._plot;if(t.x<n.x||t.x>n.x+n.width||t.y<n.y-$||t.y>n.y+n.height+$)return null;let r=this.projector(this._xScale,this._yScale),i=-1,a=$;return this._series.forEach((e,n)=>{if(e.hidden||e.points.length===0)return;let o=this.curveYAt(e.points,t.x,r);if(o===null)return;let s=Math.abs(t.y-o);s<=a&&(a=s,i=n)}),i<0?null:{series:i,index:this.nearestPointIndex(this._series[i].points,t.x,r)}}curveYAt(e,t,n){let r=new CurveTape;line_default().x(e=>n.x(e.x)).y(e=>n.y(e.y)).curve(this.isCurved()?monotoneX:linear_default).context(r)(e);for(let[e,n,i,a,o,s,c,l]of r.segments){if(t<Math.min(e,c)||t>Math.max(e,c))continue;let r=c>=e,u=0,d=1;for(let n=0;n<nt;n++){let n=(u+d)/2;cubicAt(e,i,o,c,n)<=t===r?u=n:d=n}return cubicAt(n,a,s,l,(u+d)/2)}return null}nearestPointIndex(e,t,n){let r=0,i=1/0;return e.forEach((e,a)=>{let o=Math.abs(n.x(e.x)-t);o<i&&(i=o,r=a)}),r}projector(e,t){return{x:e,y:t}}},rt=n(LineChart),BarChart=class extends AbstractChart{constructor(e){super(e),e?.grouped!==void 0&&this.setGrouped(e.grouped)}setGrouped(e){return this._options.grouped=e,this.scheduleLayout(),this}isGrouped(){return this._options.grouped??this._series.length>1}categories(){let e=new Set;for(let t of this._series)if(!t.hidden)for(let n of t.points)e.add(n.x);return Array.from(e).sort((e,t)=>e-t).map(String)}visiblePoints(){return this._series.filter(e=>!e.hidden).flatMap(e=>e.points)}buildScales(e){return{x:bandScale(this.categories(),[e.x,e.x+e.width]),y:linearScale(pointsYBounds(this.visiblePoints()),[e.y+e.height,e.y])}}drawSeries(e,t,n){for(let e of this.computeBars(t,n)){let t=this.seriesColor(e.seriesIndex,this._series[e.seriesIndex]);this.seriesMark(`rect`,{setAttr:{x:String(e.x),y:String(e.y),width:String(e.width),height:String(e.height),"data-series":String(e.seriesIndex),"data-index":String(e.pointIndex)},style:{fill:t}})}}computeBars(e,t){if(!isBandScale(e))return[];let n=t,r=n(0),i=this.isGrouped(),a=this._series.map((e,t)=>({model:e,index:t})).filter(e=>!e.model.hidden),o=e.bandwidth(),s=i?o/Math.max(1,a.length):o,c=new Map,l=[];return a.forEach((t,a)=>{this.appendSeriesBars(l,t.model,t.index,a,e,n,r,i,s,c)}),l}appendSeriesBars(e,t,n,r,i,a,o,s,c,l){t.points.forEach((t,u)=>{let d=String(t.x),f=i(d)??0;if(s){let i=a(t.y);e.push({seriesIndex:n,pointIndex:u,x:f+r*c,y:Math.min(i,o),width:c,height:Math.abs(o-i)})}else{let r=l.get(d)??0,i=r+t.y,o=a(i),s=a(r);e.push({seriesIndex:n,pointIndex:u,x:f,y:Math.min(o,s),width:c,height:Math.abs(s-o)}),l.set(d,i)}})}pointPixel(e,t,n,r,i){let a=this.computeBars(t,n).find(e=>e.seriesIndex===r&&e.pointIndex===i);return a?{x:a.x+a.width/2,y:a.y}:null}},it=n(BarChart);export{AbstractChart,it as BarChart,Ye as ChartLegend,rt as LineChart};
1
+ import{t as e}from"../DOM-CGn7xyTw.js";import{n as t}from"../Position-A39T7-_1.js";import{f as n,n as r,t as i,y as a}from"../Component-DXf5a3g0.js";import{t as o}from"../ListenerBag-WPdKuuds.js";import{t as s}from"../Panel-DzWdYwq1.js";import{t as c}from"../Tooltip-tkXDk5Bo.js";import{t as l}from"../Text-gz6qjFfP.js";import{t as u}from"../HBox-Ce0GTCJP.js";import{n as d}from"../VBox-EIqw85Rh.js";function constant_default$1(e){return function constant(){return e}}var f=Math.PI,p=2*f,m=1e-6,h=p-m;function append(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function appendRound(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return append;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}var Path=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?append:appendRound(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,i=+i,i<0)throw Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,c=r-t,l=a-e,u=o-t,d=l*l+u*u;if(this._x1===null)this._append`M${this._x1=e},${this._y1=t}`;else if(d>m)if(!(Math.abs(u*s-c*l)>m)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let p=n-a,h=r-o,g=s*s+c*c,_=p*p+h*h,v=Math.sqrt(g),b=Math.sqrt(d),S=i*Math.tan((f-Math.acos((g+d-_)/(2*v*b)))/2),C=S/b,w=S/v;Math.abs(C-1)>m&&this._append`L${e+C*l},${t+C*u}`,this._append`A${i},${i},0,0,${+(u*p>l*h)},${this._x1=e+w*s},${this._y1=t+w*c}`}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>m||Math.abs(this._y1-l)>m)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%p+p),d>h?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>m&&this._append`A${n},${n},0,${+(d>=f)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function path(){return new Path}path.prototype=Path.prototype;function withPath(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new Path(t)}Array.prototype.slice;function array_default(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Linear(e){this._context=e}Linear.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function linear_default(e){return new Linear(e)}function x(e){return e[0]}function y(e){return e[1]}function line_default(e,t){var n=constant_default$1(!0),r=null,i=linear_default,a=null,o=withPath(line);e=typeof e==`function`?e:e===void 0?x:constant_default$1(e),t=typeof t==`function`?t:t===void 0?y:constant_default$1(t);function line(s){var c,l=(s=array_default(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c<l&&n(u=s[c],c,s))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+e(u,c,s),+t(u,c,s));if(f)return a=null,f+``||null}return line.x=function(t){return arguments.length?(e=typeof t==`function`?t:constant_default$1(+t),line):e},line.y=function(e){return arguments.length?(t=typeof e==`function`?e:constant_default$1(+e),line):t},line.defined=function(e){return arguments.length?(n=typeof e==`function`?e:constant_default$1(!!e),line):n},line.curve=function(e){return arguments.length?(i=e,r!=null&&(a=i(r)),line):i},line.context=function(e){return arguments.length?(e==null?r=a=null:a=i(r=e),line):r},line}function sign(e){return e<0?-1:1}function slope3(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(sign(a)+sign(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function slope2(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function point(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function MonotoneX(e){this._context=e}MonotoneX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:point(this,this._t0,slope2(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,point(this,slope2(this,n=slope3(this,e,t)),n);break;default:point(this,this._t0,n=slope3(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function MonotoneY(e){this._context=new ReflectContext(e)}(MonotoneY.prototype=Object.create(MonotoneX.prototype)).point=function(e,t){MonotoneX.prototype.point.call(this,t,e)};function ReflectContext(e){this._context=e}ReflectContext.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}};function monotoneX(e){return new MonotoneX(e)}function ascending(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function descending(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function bisector(e){let t,compare2,delta;e.length===2?(t=e===ascending||e===descending?e:zero$1,compare2=e,delta=e):(t=ascending,compare2=(t,n)=>ascending(e(t),n),delta=(t,n)=>e(t)-n);function left(e,n,r=0,i=e.length){if(r<i){if(t(n,n)!==0)return i;do{let t=r+i>>>1;compare2(e[t],n)<0?r=t+1:i=t}while(r<i)}return r}function right(e,n,r=0,i=e.length){if(r<i){if(t(n,n)!==0)return i;do{let t=r+i>>>1;compare2(e[t],n)<=0?r=t+1:i=t}while(r<i)}return r}function center(e,t,n=0,r=e.length){let i=left(e,t,n,r-1);return i>n&&delta(e[i-1],t)>-delta(e[i],t)?i-1:i}return{left,center,right}}function zero$1(){return 0}function number$2(e){return e===null?NaN:+e}var g=bisector(ascending),_=g.right;g.left,bisector(number$2).center;function extent(e,t){let n,r;if(t===void 0)for(let t of e)t!=null&&(n===void 0?t>=t&&(n=r=t):(n>t&&(n=t),r<t&&(r=t)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}var InternMap=class extends Map{constructor(e,t=keyof){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(intern_get(this,e))}has(e){return super.has(intern_get(this,e))}set(e,t){return super.set(intern_set(this,e),t)}delete(e){return super.delete(intern_delete(this,e))}};function intern_get({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function intern_set({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function intern_delete({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function keyof(e){return typeof e==`object`&&e?e.valueOf():e}var v=Math.sqrt(50),b=Math.sqrt(10),S=Math.sqrt(2);function tickSpec(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=v?10:a>=b?5:a>=S?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/l<e&&++s,c/l>t&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*l<e&&++s,c*l>t&&--c),c<s&&.5<=n&&n<2?tickSpec(e,t,n*2):[s,c,l]}function ticks(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[i,a,o]=r?tickSpec(t,e,n):tickSpec(e,t,n);if(!(a>=i))return[];let s=a-i+1,c=Array(s);if(r)if(o<0)for(let e=0;e<s;++e)c[e]=(a-e)/-o;else for(let e=0;e<s;++e)c[e]=(a-e)*o;else if(o<0)for(let e=0;e<s;++e)c[e]=(i+e)/-o;else for(let e=0;e<s;++e)c[e]=(i+e)*o;return c}function tickIncrement(e,t,n){return t=+t,e=+e,n=+n,tickSpec(e,t,n)[2]}function tickStep(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?tickIncrement(t,e,n):tickIncrement(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function max(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n<t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function min(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n>t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function range(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function initRange(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}var C=Symbol(`implicit`);function ordinal(){var e=new InternMap,t=[],n=[],r=C;function scale(i){let a=e.get(i);if(a===void 0){if(r!==C)return r;e.set(i,a=t.push(i)-1)}return n[a%n.length]}return scale.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new InternMap;for(let r of n)e.has(r)||e.set(r,t.push(r)-1);return scale},scale.range=function(e){return arguments.length?(n=Array.from(e),scale):n.slice()},scale.unknown=function(e){return arguments.length?(r=e,scale):r},scale.copy=function(){return ordinal(t,n).unknown(r)},initRange.apply(scale,arguments),scale}function band(){var e=ordinal().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function rescale(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=range(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),rescale()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,rescale()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,rescale()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,rescale()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),rescale()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),rescale()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,rescale()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),rescale()):u},e.copy=function(){return band(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},initRange.apply(rescale(),arguments)}function define_default(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function extend(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Color(){}var w=.7,T=1/w,E=`\\s*([+-]?\\d+)\\s*`,D=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,O=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,ee=/^#([0-9a-f]{3,8})$/,te=RegExp(`^rgb\\(${E},${E},${E}\\)$`),ne=RegExp(`^rgb\\(${O},${O},${O}\\)$`),re=RegExp(`^rgba\\(${E},${E},${E},${D}\\)$`),ie=RegExp(`^rgba\\(${O},${O},${O},${D}\\)$`),ae=RegExp(`^hsl\\(${D},${O},${O}\\)$`),oe=RegExp(`^hsla\\(${D},${O},${O},${D}\\)$`),se={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};define_default(Color,color,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:color_formatHex,formatHex:color_formatHex,formatHex8:color_formatHex8,formatHsl:color_formatHsl,formatRgb:color_formatRgb,toString:color_formatRgb});function color_formatHex(){return this.rgb().formatHex()}function color_formatHex8(){return this.rgb().formatHex8()}function color_formatHsl(){return hslConvert(this).formatHsl()}function color_formatRgb(){return this.rgb().formatRgb()}function color(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=ee.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?rgbn(t):n===3?new Rgb(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?rgba(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?rgba(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=te.exec(e))?new Rgb(t[1],t[2],t[3],1):(t=ne.exec(e))?new Rgb(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=re.exec(e))?rgba(t[1],t[2],t[3],t[4]):(t=ie.exec(e))?rgba(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=ae.exec(e))?hsla(t[1],t[2]/100,t[3]/100,1):(t=oe.exec(e))?hsla(t[1],t[2]/100,t[3]/100,t[4]):se.hasOwnProperty(e)?rgbn(se[e]):e===`transparent`?new Rgb(NaN,NaN,NaN,0):null}function rgbn(e){return new Rgb(e>>16&255,e>>8&255,e&255,1)}function rgba(e,t,n,r){return r<=0&&(e=t=n=NaN),new Rgb(e,t,n,r)}function rgbConvert(e){return e instanceof Color||(e=color(e)),e?(e=e.rgb(),new Rgb(e.r,e.g,e.b,e.opacity)):new Rgb}function rgb(e,t,n,r){return arguments.length===1?rgbConvert(e):new Rgb(e,t,n,r??1)}function Rgb(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}define_default(Rgb,rgb,extend(Color,{brighter(e){return e=e==null?T:T**+e,new Rgb(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?w:w**+e,new Rgb(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){let e=clampa(this.opacity);return`${e===1?`rgb(`:`rgba(`}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${e===1?`)`:`, ${e})`}`}function clampa(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function clampi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function hex(e){return e=clampi(e),(e<16?`0`:``)+e.toString(16)}function hsla(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Hsl(e,t,n,r)}function hslConvert(e){if(e instanceof Hsl)return new Hsl(e.h,e.s,e.l,e.opacity);if(e instanceof Color||(e=color(e)),!e)return new Hsl;if(e instanceof Hsl)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new Hsl(o,s,c,e.opacity)}function hsl(e,t,n,r){return arguments.length===1?hslConvert(e):new Hsl(e,t,n,r??1)}function Hsl(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}define_default(Hsl,hsl,extend(Color,{brighter(e){return e=e==null?T:T**+e,new Hsl(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?w:w**+e,new Hsl(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Rgb(hsl2rgb(e>=240?e-240:e+120,i,r),hsl2rgb(e,i,r),hsl2rgb(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=clampa(this.opacity);return`${e===1?`hsl(`:`hsla(`}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function clamph(e){return e=(e||0)%360,e<0?e+360:e}function clampt(e){return Math.max(0,Math.min(1,e||0))}function hsl2rgb(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var constant_default=e=>()=>e;function linear$1(e,t){return function(n){return e+n*t}}function exponential(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function gamma(e){return(e=+e)==1?nogamma:function(t,n){return n-t?exponential(t,n,e):constant_default(isNaN(t)?n:t)}}function nogamma(e,t){var n=t-e;return n?linear$1(e,n):constant_default(isNaN(e)?t:e)}var ce=(function rgbGamma(e){var t=gamma(e);function rgb$1(e,n){var r=t((e=rgb(e)).r,(n=rgb(n)).r),i=t(e.g,n.g),a=t(e.b,n.b),o=nogamma(e.opacity,n.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return rgb$1.gamma=rgbGamma,rgb$1})(1);function numberArray_default(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function isNumberArray(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function genericArray(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=value_default(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function date_default(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function number_default(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function object_default(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=value_default(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var le=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ue=new RegExp(le.source,`g`);function zero(e){return function(){return e}}function one(e){return function(t){return e(t)+``}}function string_default(e,t){var n=le.lastIndex=ue.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=le.exec(e))&&(i=ue.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:number_default(r,i)})),n=ue.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?one(c[0].x):zero(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function value_default(e,t){var n=typeof t,r;return t==null||n===`boolean`?constant_default(t):(n===`number`?number_default:n===`string`?(r=color(t))?(t=r,ce):string_default:t instanceof color?ce:t instanceof Date?date_default:isNumberArray(t)?numberArray_default:Array.isArray(t)?genericArray:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?object_default:number_default)(e,t)}function round_default(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function constants(e){return function(){return e}}function number$1(e){return+e}var de=[0,1];function identity(e){return e}function normalize(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:constants(isNaN(t)?NaN:.5)}function clamper(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function bimap(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=normalize(i,r),a=n(o,a)):(r=normalize(r,i),a=n(a,o)),function(e){return a(r(e))}}function polymap(e,t,n){var r=Math.min(e.length,t.length)-1,i=Array(r),a=Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=normalize(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=_(e,t,1,r)-1;return a[n](i[n](t))}}function copy(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function transformer(){var e=de,t=de,n=value_default,r,i,a,o=identity,s,c,l;function rescale(){var n=Math.min(e.length,t.length);return o!==identity&&(o=clamper(e[0],e[n-1])),s=n>2?polymap:bimap,c=l=null,scale}function scale(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return scale.invert=function(n){return o(i((l||=s(t,e.map(r),number_default))(n)))},scale.domain=function(t){return arguments.length?(e=Array.from(t,number$1),rescale()):e.slice()},scale.range=function(e){return arguments.length?(t=Array.from(e),rescale()):t.slice()},scale.rangeRound=function(e){return t=Array.from(e),n=round_default,rescale()},scale.clamp=function(e){return arguments.length?(o=e?!0:identity,rescale()):o!==identity},scale.interpolate=function(e){return arguments.length?(n=e,rescale()):n},scale.unknown=function(e){return arguments.length?(a=e,scale):a},function(e,t){return r=e,i=t,rescale()}}function continuous(){return transformer()(identity,identity)}function formatDecimal_default(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function formatDecimalParts(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function exponent_default(e){return e=formatDecimalParts(Math.abs(e)),e?e[1]:NaN}function formatGroup_default(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function formatNumerals_default(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var fe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(e){if(!(t=fe.exec(e)))throw Error(`invalid format: `+e);var t;return new FormatSpecifier({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function formatTrim_default(e){out:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case`.`:r=i=n;break;case`0`:r===0&&(r=n),i=n;break;default:if(!+e[n])break out;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var k;function formatPrefixAuto_default(e,t){var n=formatDecimalParts(e,t);if(!n)return k=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(k=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+formatDecimalParts(e,Math.max(0,t+a-1))[0]}function formatRounded_default(e,t){var n=formatDecimalParts(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var pe={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:formatDecimal_default,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>formatRounded_default(e*100,t),r:formatRounded_default,s:formatPrefixAuto_default,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function identity_default(e){return e}var me=Array.prototype.map,he=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function locale_default(e){var t=e.grouping===void 0||e.thousands===void 0?identity_default:formatGroup_default(me.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?identity_default:formatNumerals_default(me.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function newFormat(e,l){e=formatSpecifier(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,b=e.type;b===`n`?(g=!0,b=`g`):pe[b]||(_===void 0&&(_=12),v=!0,b=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var S=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(b)?`0`+b.toLowerCase():``),C=(p===`$`?r:/[%p]/.test(b)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),w=pe[b],T=/[defgprs%]/.test(b);_=_===void 0?6:/[gprs]/.test(b)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function format(e){var n=S,r=C,o,l,p;if(b===`c`)r=w(e)+r,e=``;else{e=+e;var E=e<0||1/e<0;if(e=isNaN(e)?c:w(Math.abs(e),_),v&&(e=formatTrim_default(e)),E&&+e==0&&f!==`+`&&(E=!1),n=(E?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(b===`s`&&!isNaN(e)&&k!==void 0?he[8+k/3]:``)+r+(E&&f===`(`?`)`:``),T){for(o=-1,l=e.length;++o<l;)if(p=e.charCodeAt(o),48>p||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var D=n.length+e.length+r.length,O=D<h?Array(h-D+1).join(u):``;switch(g&&m&&(e=t(O+e,O.length?h-r.length:1/0),O=``),d){case`<`:e=n+e+r+O;break;case`=`:e=n+O+e+r;break;case`^`:e=O.slice(0,D=O.length>>1)+n+e+r+O.slice(D);break;default:e=O+n+e+r;break}return a(e)}return format.toString=function(){return e+``},format}function formatPrefix(e,t){var n=Math.max(-8,Math.min(8,Math.floor(exponent_default(t)/3)))*3,r=10**-n,i=newFormat((e=formatSpecifier(e),e.type=`f`,e),{suffix:he[8+n/3]});return function(e){return i(r*e)}}return{format:newFormat,formatPrefix}}var A,ge,_e;defaultLocale$1({thousands:`,`,grouping:[3],currency:[`$`,``]});function defaultLocale$1(e){return A=locale_default(e),ge=A.format,_e=A.formatPrefix,A}function precisionFixed_default(e){return Math.max(0,-exponent_default(Math.abs(e)))}function precisionPrefix_default(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent_default(t)/3)))*3-exponent_default(Math.abs(e)))}function precisionRound_default(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,exponent_default(t)-exponent_default(e))+1}function tickFormat(e,t,n,r){var i=tickStep(e,t,n),a;switch(r=formatSpecifier(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=precisionPrefix_default(i,o))&&(r.precision=a),_e(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=precisionRound_default(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=precisionFixed_default(i))&&(r.precision=a-(r.type===`%`)*2);break}return ge(r)}function linearish(e){var t=e.domain;return e.ticks=function(e){var n=t();return ticks(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return tickFormat(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);u-->0;){if(l=tickIncrement(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function linear(){var e=continuous();return e.copy=function(){return copy(e,linear())},initRange.apply(e,arguments),linearish(e)}function nice(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}var ve=new Date,ye=new Date;function timeInterval(e,t,n,r){function interval(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return interval.floor=t=>(e(t=new Date(+t)),t),interval.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),interval.round=e=>{let t=interval(e),n=interval.ceil(e);return e-t<n-e?t:n},interval.offset=(e,n)=>(t(e=new Date(+e),n==null?1:Math.floor(n)),e),interval.range=(n,r,i)=>{let a=[];if(n=interval.ceil(n),i=i==null?1:Math.floor(i),!(n<r)||!(i>0))return a;let o;do a.push(o=new Date(+n)),t(n,i),e(n);while(o<n&&n<r);return a},interval.filter=n=>timeInterval(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}),n&&(interval.count=(t,r)=>(ve.setTime(+t),ye.setTime(+r),e(ve),e(ye),Math.floor(n(ve,ye))),interval.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?interval.filter(r?t=>r(t)%e===0:t=>interval.count(0,t)%e===0):interval)),interval}var j=timeInterval(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);j.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?timeInterval(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):j),j.range;var M=1e3,N=M*60,P=N*60,F=P*24,I=F*7,be=F*30,L=F*365,R=timeInterval(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*M)},(e,t)=>(t-e)/M,e=>e.getUTCSeconds());R.range;var xe=timeInterval(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*M)},(e,t)=>{e.setTime(+e+t*N)},(e,t)=>(t-e)/N,e=>e.getMinutes());xe.range;var Se=timeInterval(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*N)},(e,t)=>(t-e)/N,e=>e.getUTCMinutes());Se.range;var Ce=timeInterval(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*M-e.getMinutes()*N)},(e,t)=>{e.setTime(+e+t*P)},(e,t)=>(t-e)/P,e=>e.getHours());Ce.range;var we=timeInterval(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*P)},(e,t)=>(t-e)/P,e=>e.getUTCHours());we.range;var z=timeInterval(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*N)/F,e=>e.getDate()-1);z.range;var Te=timeInterval(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/F,e=>e.getUTCDate()-1);Te.range;var Ee=timeInterval(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/F,e=>Math.floor(e/F));Ee.range;function timeWeekday(e){return timeInterval(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*N)/I)}var B=timeWeekday(0),V=timeWeekday(1),De=timeWeekday(2),Oe=timeWeekday(3),H=timeWeekday(4),ke=timeWeekday(5),Ae=timeWeekday(6);B.range,V.range,De.range,Oe.range,H.range,ke.range,Ae.range;function utcWeekday(e){return timeInterval(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/I)}var je=utcWeekday(0),U=utcWeekday(1),Me=utcWeekday(2),Ne=utcWeekday(3),W=utcWeekday(4),Pe=utcWeekday(5),Fe=utcWeekday(6);je.range,U.range,Me.range,Ne.range,W.range,Pe.range,Fe.range;var Ie=timeInterval(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Ie.range;var Le=timeInterval(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Le.range;var G=timeInterval(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());G.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:timeInterval(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),G.range;var K=timeInterval(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());K.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:timeInterval(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),K.range;function ticker(e,t,n,r,i,a){let o=[[R,1,M],[R,5,5*M],[R,15,15*M],[R,30,30*M],[a,1,N],[a,5,5*N],[a,15,15*N],[a,30,30*N],[i,1,P],[i,3,3*P],[i,6,6*P],[i,12,12*P],[r,1,F],[r,2,2*F],[n,1,I],[t,1,be],[t,3,3*be],[e,1,L]];function ticks(e,t,n){let r=t<e;r&&([e,t]=[t,e]);let i=n&&typeof n.range==`function`?n:tickInterval(e,t,n),a=i?i.range(e,+t+1):[];return r?a.reverse():a}function tickInterval(t,n,r){let i=Math.abs(n-t)/r,a=bisector(([,,e])=>e).right(o,i);if(a===o.length)return e.every(tickStep(t/L,n/L,r));if(a===0)return j.every(Math.max(tickStep(t,n,r),1));let[s,c]=o[i/o[a-1][2]<o[a][2]/i?a-1:a];return s.every(c)}return[ticks,tickInterval]}var[Re,ze]=ticker(K,Le,je,Ee,we,Se),[Be,Ve]=ticker(G,Ie,B,z,Ce,xe);function localDate(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function utcDate(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function newDate(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function formatLocale(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,c=e.shortMonths,l=formatRe(i),u=formatLookup(i),d=formatRe(a),f=formatLookup(a),p=formatRe(o),m=formatLookup(o),h=formatRe(s),g=formatLookup(s),_=formatRe(c),v=formatLookup(c),b={a:formatShortWeekday,A:formatWeekday,b:formatShortMonth,B:formatMonth,c:null,d:formatDayOfMonth,e:formatDayOfMonth,f:formatMicroseconds,g:formatYearISO,G:formatFullYearISO,H:formatHour24,I:formatHour12,j:formatDayOfYear,L:formatMilliseconds,m:formatMonthNumber,M:formatMinutes,p:formatPeriod,q:formatQuarter,Q:formatUnixTimestamp,s:formatUnixTimestampSeconds,S:formatSeconds,u:formatWeekdayNumberMonday,U:formatWeekNumberSunday,V:formatWeekNumberISO,w:formatWeekdayNumberSunday,W:formatWeekNumberMonday,x:null,X:null,y:formatYear,Y:formatFullYear,Z:formatZone,"%":formatLiteralPercent},S={a:formatUTCShortWeekday,A:formatUTCWeekday,b:formatUTCShortMonth,B:formatUTCMonth,c:null,d:formatUTCDayOfMonth,e:formatUTCDayOfMonth,f:formatUTCMicroseconds,g:formatUTCYearISO,G:formatUTCFullYearISO,H:formatUTCHour24,I:formatUTCHour12,j:formatUTCDayOfYear,L:formatUTCMilliseconds,m:formatUTCMonthNumber,M:formatUTCMinutes,p:formatUTCPeriod,q:formatUTCQuarter,Q:formatUnixTimestamp,s:formatUnixTimestampSeconds,S:formatUTCSeconds,u:formatUTCWeekdayNumberMonday,U:formatUTCWeekNumberSunday,V:formatUTCWeekNumberISO,w:formatUTCWeekdayNumberSunday,W:formatUTCWeekNumberMonday,x:null,X:null,y:formatUTCYear,Y:formatUTCFullYear,Z:formatUTCZone,"%":formatLiteralPercent},C={a:parseShortWeekday,A:parseWeekday,b:parseShortMonth,B:parseMonth,c:parseLocaleDateTime,d:parseDayOfMonth,e:parseDayOfMonth,f:parseMicroseconds,g:parseYear,G:parseFullYear,H:parseHour24,I:parseHour24,j:parseDayOfYear,L:parseMilliseconds,m:parseMonthNumber,M:parseMinutes,p:parsePeriod,q:parseQuarter,Q:parseUnixTimestamp,s:parseUnixTimestampSeconds,S:parseSeconds,u:parseWeekdayNumberMonday,U:parseWeekNumberSunday,V:parseWeekNumberISO,w:parseWeekdayNumberSunday,W:parseWeekNumberMonday,x:parseLocaleDate,X:parseLocaleTime,y:parseYear,Y:parseFullYear,Z:parseZone,"%":parseLiteralPercent};b.x=newFormat(n,b),b.X=newFormat(r,b),b.c=newFormat(t,b),S.x=newFormat(n,S),S.X=newFormat(r,S),S.c=newFormat(t,S);function newFormat(e,t){return function(n){var r=[],i=-1,a=0,o=e.length,s,c,l;for(n instanceof Date||(n=new Date(+n));++i<o;)e.charCodeAt(i)===37&&(r.push(e.slice(a,i)),(c=He[s=e.charAt(++i)])==null?c=s===`e`?` `:`0`:s=e.charAt(++i),(l=t[s])&&(s=l(n,c)),r.push(s),a=i+1);return r.push(e.slice(a,i)),r.join(``)}}function newParse(e,t){return function(n){var r=newDate(1900,void 0,1),i=parseSpecifier(r,e,n+=``,0),a,o;if(i!=n.length)return null;if(`Q`in r)return new Date(r.Q);if(`s`in r)return new Date(r.s*1e3+(`L`in r?r.L:0));if(t&&!(`Z`in r)&&(r.Z=0),`p`in r&&(r.H=r.H%12+r.p*12),r.m===void 0&&(r.m=`q`in r?r.q:0),`V`in r){if(r.V<1||r.V>53)return null;`w`in r||(r.w=1),`Z`in r?(a=utcDate(newDate(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?U.ceil(a):U(a),a=Te.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=localDate(newDate(r.y,0,1)),o=a.getDay(),a=o>4||o===0?V.ceil(a):V(a),a=z.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else(`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?utcDate(newDate(r.y,0,1)).getUTCDay():localDate(newDate(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,utcDate(r)):localDate(r)}}function parseSpecifier(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i<a;){if(r>=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=C[s in He?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function parsePeriod(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function parseShortWeekday(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function parseWeekday(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function parseShortMonth(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function parseMonth(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function parseLocaleDateTime(e,n,r){return parseSpecifier(e,t,n,r)}function parseLocaleDate(e,t,r){return parseSpecifier(e,n,t,r)}function parseLocaleTime(e,t,n){return parseSpecifier(e,r,t,n)}function formatShortWeekday(e){return o[e.getDay()]}function formatWeekday(e){return a[e.getDay()]}function formatShortMonth(e){return c[e.getMonth()]}function formatMonth(e){return s[e.getMonth()]}function formatPeriod(e){return i[+(e.getHours()>=12)]}function formatQuarter(e){return 1+~~(e.getMonth()/3)}function formatUTCShortWeekday(e){return o[e.getUTCDay()]}function formatUTCWeekday(e){return a[e.getUTCDay()]}function formatUTCShortMonth(e){return c[e.getUTCMonth()]}function formatUTCMonth(e){return s[e.getUTCMonth()]}function formatUTCPeriod(e){return i[+(e.getUTCHours()>=12)]}function formatUTCQuarter(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=newFormat(e+=``,b);return t.toString=function(){return e},t},parse:function(e){var t=newParse(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=newFormat(e+=``,S);return t.toString=function(){return e},t},utcParse:function(e){var t=newParse(e+=``,!0);return t.toString=function(){return e},t}}}var He={"-":``,_:` `,0:`0`},q=/^\s*\d+/,Ue=/^%/,We=/[\\^$*+?|[\]().{}]/g;function pad(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a<n?Array(n-a+1).join(t)+i:i)}function requote(e){return e.replace(We,`\\$&`)}function formatRe(e){return RegExp(`^(?:`+e.map(requote).join(`|`)+`)`,`i`)}function formatLookup(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function parseWeekdayNumberSunday(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function parseWeekdayNumberMonday(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function parseWeekNumberSunday(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function parseWeekNumberISO(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function parseWeekNumberMonday(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function parseFullYear(e,t,n){var r=q.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function parseYear(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function parseZone(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function parseQuarter(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function parseMonthNumber(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function parseDayOfMonth(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function parseDayOfYear(e,t,n){var r=q.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function parseHour24(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function parseMinutes(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function parseSeconds(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function parseMilliseconds(e,t,n){var r=q.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function parseMicroseconds(e,t,n){var r=q.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function parseLiteralPercent(e,t,n){var r=Ue.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function parseUnixTimestamp(e,t,n){var r=q.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function parseUnixTimestampSeconds(e,t,n){var r=q.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function formatDayOfMonth(e,t){return pad(e.getDate(),t,2)}function formatHour24(e,t){return pad(e.getHours(),t,2)}function formatHour12(e,t){return pad(e.getHours()%12||12,t,2)}function formatDayOfYear(e,t){return pad(1+z.count(G(e),e),t,3)}function formatMilliseconds(e,t){return pad(e.getMilliseconds(),t,3)}function formatMicroseconds(e,t){return formatMilliseconds(e,t)+`000`}function formatMonthNumber(e,t){return pad(e.getMonth()+1,t,2)}function formatMinutes(e,t){return pad(e.getMinutes(),t,2)}function formatSeconds(e,t){return pad(e.getSeconds(),t,2)}function formatWeekdayNumberMonday(e){var t=e.getDay();return t===0?7:t}function formatWeekNumberSunday(e,t){return pad(B.count(G(e)-1,e),t,2)}function dISO(e){var t=e.getDay();return t>=4||t===0?H(e):H.ceil(e)}function formatWeekNumberISO(e,t){return e=dISO(e),pad(H.count(G(e),e)+(G(e).getDay()===4),t,2)}function formatWeekdayNumberSunday(e){return e.getDay()}function formatWeekNumberMonday(e,t){return pad(V.count(G(e)-1,e),t,2)}function formatYear(e,t){return pad(e.getFullYear()%100,t,2)}function formatYearISO(e,t){return e=dISO(e),pad(e.getFullYear()%100,t,2)}function formatFullYear(e,t){return pad(e.getFullYear()%1e4,t,4)}function formatFullYearISO(e,t){var n=e.getDay();return e=n>=4||n===0?H(e):H.ceil(e),pad(e.getFullYear()%1e4,t,4)}function formatZone(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+pad(t/60|0,`0`,2)+pad(t%60,`0`,2)}function formatUTCDayOfMonth(e,t){return pad(e.getUTCDate(),t,2)}function formatUTCHour24(e,t){return pad(e.getUTCHours(),t,2)}function formatUTCHour12(e,t){return pad(e.getUTCHours()%12||12,t,2)}function formatUTCDayOfYear(e,t){return pad(1+Te.count(K(e),e),t,3)}function formatUTCMilliseconds(e,t){return pad(e.getUTCMilliseconds(),t,3)}function formatUTCMicroseconds(e,t){return formatUTCMilliseconds(e,t)+`000`}function formatUTCMonthNumber(e,t){return pad(e.getUTCMonth()+1,t,2)}function formatUTCMinutes(e,t){return pad(e.getUTCMinutes(),t,2)}function formatUTCSeconds(e,t){return pad(e.getUTCSeconds(),t,2)}function formatUTCWeekdayNumberMonday(e){var t=e.getUTCDay();return t===0?7:t}function formatUTCWeekNumberSunday(e,t){return pad(je.count(K(e)-1,e),t,2)}function UTCdISO(e){var t=e.getUTCDay();return t>=4||t===0?W(e):W.ceil(e)}function formatUTCWeekNumberISO(e,t){return e=UTCdISO(e),pad(W.count(K(e),e)+(K(e).getUTCDay()===4),t,2)}function formatUTCWeekdayNumberSunday(e){return e.getUTCDay()}function formatUTCWeekNumberMonday(e,t){return pad(U.count(K(e)-1,e),t,2)}function formatUTCYear(e,t){return pad(e.getUTCFullYear()%100,t,2)}function formatUTCYearISO(e,t){return e=UTCdISO(e),pad(e.getUTCFullYear()%100,t,2)}function formatUTCFullYear(e,t){return pad(e.getUTCFullYear()%1e4,t,4)}function formatUTCFullYearISO(e,t){var n=e.getUTCDay();return e=n>=4||n===0?W(e):W.ceil(e),pad(e.getUTCFullYear()%1e4,t,4)}function formatUTCZone(){return`+0000`}function formatLiteralPercent(){return`%`}function formatUnixTimestamp(e){return+e}function formatUnixTimestampSeconds(e){return Math.floor(e/1e3)}var J,Ge;defaultLocale({dateTime:`%x, %X`,date:`%-m/%-d/%Y`,time:`%-I:%M:%S %p`,periods:[`AM`,`PM`],days:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],shortDays:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],months:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],shortMonths:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`]});function defaultLocale(e){return J=formatLocale(e),Ge=J.format,J.parse,J.utcFormat,J.utcParse,J}function date(e){return new Date(e)}function number(e){return e instanceof Date?+e:+new Date(+e)}function calendar(e,t,n,r,i,a,o,s,c,l){var u=continuous(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),b=l(`%B`),S=l(`%Y`);function tickFormat(e){return(c(e)<e?p:s(e)<e?m:o(e)<e?h:a(e)<e?g:r(e)<e?i(e)<e?_:v:n(e)<e?b:S)(e)}return u.invert=function(e){return new Date(d(e))},u.domain=function(e){return arguments.length?f(Array.from(e,number)):f().map(date)},u.ticks=function(t){var n=f();return e(n[0],n[n.length-1],t??10)},u.tickFormat=function(e,t){return t==null?tickFormat:l(t)},u.nice=function(e){var n=f();return(!e||typeof e.range!=`function`)&&(e=t(n[0],n[n.length-1],e??10)),e?f(nice(n,e)):u},u.copy=function(){return copy(u,calendar(e,t,n,r,i,a,o,s,c,l))},u}function time(){return initRange.apply(calendar(Be,Ve,G,Ie,B,z,Ce,xe,R,Ge).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}var Ke=.1;function linearScale(e,t){return linear().domain(e).range(t).nice()}function timeScale(e,t){return time().domain(e).range(t).nice()}function bandScale(e,t,n=Ke){return band().domain(e).range(t).paddingInner(n).paddingOuter(n/2)}function isBandScale(e){return typeof e.bandwidth==`function`}function scaleTicks(e,t){return isBandScale(e)?e.domain():e.ticks(t)}function tickPosition(e,t){return isBandScale(e)?(e(t)??0)+e.bandwidth()/2:e(t)}function tickFormatter(e,t){if(isBandScale(e))return e=>String(e);let n=e.tickFormat(t);return e=>n(e)}function pointsXExtent(e){let t=extent(e,e=>e.x);return[t[0]??0,t[1]??1]}function pointsYBounds(e,t=!0){if(e.length===0)return[0,1];let n=min(e,e=>e.y)??0,r=max(e,e=>e.y)??1,i=t?Math.min(0,n):n;return[i,r>i?r:i+1]}var Y=6,qe=4;function measureAxisMargin(t,n,r,i){let a=scaleTicks(n,i);if(t===`left`){let t=0;for(let n of a)t=Math.max(t,e.source.measureText(r(n)).width);return 10+Math.ceil(t)}let o=e.source.measureText(`0`).height;return 10+Math.ceil(o)}function drawAxis(e,t,n,r,i){let a={stroke:`var(--ts-ui-chart-axis)`,"stroke-width":`var(--ts-ui-chart-axis-width)`},o={stroke:`var(--ts-ui-chart-grid)`,"stroke-width":`var(--ts-ui-chart-axis-width)`},s={fill:`var(--ts-ui-chart-label)`},c=r.y+r.height,l=r.x+r.width;t===`left`?e(`line`,{setAttr:{x1:String(r.x),y1:String(r.y),x2:String(r.x),y2:String(c)},style:a}):e(`line`,{setAttr:{x1:String(r.x),y1:String(c),x2:String(l),y2:String(c)},style:a});for(let u of scaleTicks(n,i.tickCount)){let d=tickPosition(n,u),f=i.format(u);t===`left`?drawLeftTick(e,r,l,d,f,i.grid,o,a,s):drawBottomTick(e,r,c,d,f,i.grid,o,a,s)}}function drawLeftTick(e,t,n,r,i,a,o,s,c){a&&e(`line`,{setAttr:{x1:String(t.x),y1:String(r),x2:String(n),y2:String(r)},style:o}),e(`line`,{setAttr:{x1:String(t.x-Y),y1:String(r),x2:String(t.x),y2:String(r)},style:s}),e(`text`,{setAttr:{x:String(t.x-Y-qe),y:String(r),"text-anchor":`end`,"dominant-baseline":`middle`},style:c,text:i})}function drawBottomTick(e,t,n,r,i,a,o,s,c){a&&e(`line`,{setAttr:{x1:String(r),y1:String(t.y),x2:String(r),y2:String(n)},style:o}),e(`line`,{setAttr:{x1:String(r),y1:String(n),x2:String(r),y2:String(n+Y)},style:s}),e(`text`,{setAttr:{x:String(r),y:String(n+Y+qe),"text-anchor":`middle`,"dominant-baseline":`hanging`},style:c,text:i})}var X=12,Je=.4,ChartLegend=class extends s{_listeners=new o;_rows=[];_entries=[];_orientation=`vertical`;constructor(e){super(e),this.setBackgroundColor(`transparent`),this.clearInsets(),this.applyOrientationLayout(),this.dispatchLegendOptions(e),a.addSubtreeListener(this,`click`,this.handleRowClick)}dispatchLegendOptions(e){e&&(e.orientation!==void 0&&this.setOrientation(e.orientation),e.entries!==void 0&&this.setEntries(e.entries),this.applyListeners(e.listeners))}setOrientation(e){return this._orientation===e?this:(this._orientation=e,this.applyOrientationLayout(),this)}getOrientation(){return this._orientation}applyOrientationLayout(){this.setLayoutManager(this._orientation===`vertical`?new d({spacing:2,stretching:!1}):new u({spacing:10,stretching:!1}))}setEntries(e){if(this.entriesEqual(e))return this;this._entries=e.map(e=>({...e})),this.removeAllComponents(),this._rows=[];for(let e of this._entries){let t=this.buildRow(e);this._rows.push(t),this.addComponent(t)}return this}getEntries(){return this._entries.map(e=>({...e}))}entriesEqual(e){if(e.length!==this._entries.length)return!1;for(let t=0;t<e.length;t++){let n=e[t],r=this._entries[t];if(n.name!==r.name||n.color!==r.color||(n.hidden??!1)!==(r.hidden??!1))return!1}return!0}buildRow(e){let n=new i({preferredSize:{width:X,height:X},minSize:{width:X,height:X},maxSize:{width:X,height:X},backgroundColor:e.color,borderRadius:`2px`}),r=new l(e.name);return new s({layoutManager:new u({spacing:6,stretching:!0}),insets:new t(2,4,2,4),cursor:`pointer`,opacity:e.hidden?Je:1,components:[n,r]})}handleRowClick=t=>{if(!e.source.isNode(t.target))return;let n=e.source.intern(t.target);for(let t=0;t<this._rows.length;t++){let r=this._rows[t].getElement();if(r&&e.source.contains(r,n)){this.emit(`toggle`,t);return}}};on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e,t){this._listeners.fire(e,t)}destructor(){a.removeSubtreeListener(this,`click`,this.handleRowClick),super.destructor()}},Ye=n(ChartLegend),Xe=`http://www.w3.org/2000/svg`,Ze=[`load`,`add`,`remove`,`datachange`],Qe=8,$e=10,et=12,Z=8,Q=18,tt=6,AbstractChart=class extends s{_listeners=new o;_series=[];_selectedPoint=null;_boundStore=null;_xField=`x`;_yField=`y`;_seriesField=void 0;_onStoreRefresh=()=>this.rebuildFromStore();_legend=new Ye;_themeCleanup=null;_svg=null;_axisGroup=null;_seriesGroup=null;_overlayGroup=null;_marks=[];_plot=null;_xScale=null;_yScale=null;constructor(e,t){super(e,t),this.setPreferredSize({width:400,height:300}),this.setMinSize({width:80,height:60}),this.addComponent(this._legend),this._legend.on(`toggle`,this.handleLegendToggle),a.addSubtreeListener(this,`mousemove`,this.handlePointerMove),a.addSubtreeListener(this,`mouseout`,this.handlePointerOut),a.addSubtreeListener(this,`click`,this.handlePointerClick),this._themeCleanup=r.onThemeChange(()=>this.scheduleLayout()),this.dispatchChartOptions(e)}dispatchChartOptions(e){e&&(e.store===void 0?e.series!==void 0&&this.setSeries(e.series):this.setStore(e.store,e.xField??`x`,e.yField??`y`,e.seriesField),e.showLegend!==void 0&&this.setShowLegend(e.showLegend),e.legendPosition!==void 0&&this.setLegendPosition(e.legendPosition),e.xAxisLabel!==void 0&&this.setXAxisLabel(e.xAxisLabel),e.yAxisLabel!==void 0&&this.setYAxisLabel(e.yAxisLabel),this.applyListeners(e.listeners))}setSeries(e){return this._series=this.resolveModel(e),this.scheduleLayout(),this}getSeries(){return this._series.map(e=>({name:e.name,data:e.points.map(e=>({x:e.x,y:e.y})),color:e.color}))}setStore(e,t,n,r){if(this._boundStore)for(let e of Ze)this._boundStore.off(e,this._onStoreRefresh);this._boundStore=e,this._xField=t,this._yField=n,this._seriesField=r;for(let t of Ze)e.on(t,this._onStoreRefresh);return this.rebuildFromStore(),this}getStore(){return this._boundStore}rebuildFromStore(){this._boundStore&&(this._series=this.resolveModel(this.seriesFromStore(this._boundStore)),this.scheduleLayout())}seriesFromStore(e){let t=e.getRecords();if(t.length===0)return[];if(this._seriesField===void 0)return[{name:this._yField,data:t.map(e=>({x:Number(e.get(this._xField)),y:Number(e.get(this._yField))}))}];let n=new Map;for(let e of t){let t=String(e.get(this._seriesField)),r={x:Number(e.get(this._xField)),y:Number(e.get(this._yField))},i=n.get(t);i?i.push(r):n.set(t,[r])}return Array.from(n,([e,t])=>({name:e,data:t}))}resolveModel(e){let t=new Map(this._series.map(e=>[e.name,e.hidden]));return e.map(e=>({name:e.name,points:e.data.map(e=>({x:e.x,y:e.y})),color:e.color,hidden:t.get(e.name)??!1}))}setShowLegend(e){return this._options.showLegend=e,this.scheduleLayout(),this}isShowLegend(){return this._options.showLegend??!0}setLegendPosition(e){return this._options.legendPosition=e,this.scheduleLayout(),this}getLegendPosition(){return this._options.legendPosition??`right`}setXAxisLabel(e){return this._options.xAxisLabel=e,this.scheduleLayout(),this}getXAxisLabel(){return this._options.xAxisLabel??null}setYAxisLabel(e){return this._options.yAxisLabel=e,this.scheduleLayout(),this}getYAxisLabel(){return this._options.yAxisLabel??null}on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e,t){this._listeners.fire(e,t)}createRootElement(){let t=super.createRootElement(),n=e.sink.createElementNS(Xe,`svg`);return e.sink.apply(n,{style:{position:`absolute`,left:`0`,top:`0`,overflow:`visible`}}),e.sink.appendChild(t,n),this.trackHandle(n),this._svg=n,this._axisGroup=this.createGroup(n),this._seriesGroup=this.createGroup(n),this._overlayGroup=this.createGroup(n),t}createGroup(t){let n=e.sink.createElementNS(Xe,`g`);return e.sink.appendChild(t,n),this.trackHandle(n),n}doLayout(){super.doLayout();let e=this.getInnerSize();if(!e||!this._svg)return this;let t=this.getPerimeterSize();this.sizeSurface(e);let n=this.reserveLegend(e,t),r=this.computePlot(n),i=this.buildScales(r);return this._plot=r,this._xScale=i.x,this._yScale=i.y,this.repaint(r,i.x,i.y),this}sizeSurface(t){let n=this.getPerimeterSize();e.sink.apply(this._svg,{setAttr:{width:String(t.width),height:String(t.height),viewBox:`0 0 ${t.width} ${t.height}`},style:{position:`absolute`,left:`${n.left}px`,top:`${n.top}px`,overflow:`visible`}})}reserveLegend(e,t){let n={x:0,y:0,width:e.width,height:e.height};if(!this.isShowLegend()||this._series.length===0)return this._legend.setVisible(!1),n;this._legend.setVisible(!0),this._legend.setOrientation(this.getLegendPosition()===`right`?`vertical`:`horizontal`),this._legend.setEntries(this._series.map((e,t)=>({name:e.name,color:this.seriesColor(t,e),hidden:e.hidden})));let r=this._legend.getPreferredSize()??{width:120,height:60},i=this.getLegendPosition();if(i===`right`){let n=Math.min(r.width,e.width/2);return this.placeLegend(t,e.width-n,0,n,e.height),{x:0,y:0,width:e.width-n-Z,height:e.height}}let a=Math.min(r.height,e.height/2);return i===`top`?(this.placeLegend(t,0,0,e.width,a),{x:0,y:a+Z,width:e.width,height:e.height-a-Z}):(this.placeLegend(t,0,e.height-a,e.width,a),{x:0,y:0,width:e.width,height:e.height-a-Z})}placeLegend(e,t,n,r,i){this._legend.setX(e.left+t),this._legend.setY(e.top+n),this._legend.setWidth(r),this._legend.setHeight(i),this._legend.doLayout()}computePlot(e){let t=this.buildScales(e),n=tickFormatter(t.x,8),r=tickFormatter(t.y,8),i=measureAxisMargin(`left`,t.y,r,8)+(this._options.yAxisLabel?Q:0),a=measureAxisMargin(`bottom`,t.x,n,8)+(this._options.xAxisLabel?Q:0);return{x:e.x+i,y:e.y+$e,width:Math.max(0,e.width-i-et),height:Math.max(0,e.height-a-$e)}}repaint(e,t,n){this.clearMarks();let r=this.markFactory(this._axisGroup);drawAxis(r,`left`,n,e,{tickCount:8,format:tickFormatter(n,8),grid:!0}),drawAxis(r,`bottom`,t,e,{tickCount:8,format:tickFormatter(t,8),grid:!1}),this.drawAxisTitles(r,e),this.drawSeries(e,t,n),this.drawSelection(e,t,n)}drawAxisTitles(e,t){let n={fill:`var(--ts-ui-chart-label)`};if(this._options.xAxisLabel&&e(`text`,{setAttr:{x:String(t.x+t.width/2),y:String(t.y+t.height+Q+$e),"text-anchor":`middle`,"dominant-baseline":`hanging`},style:n,text:this._options.xAxisLabel}),this._options.yAxisLabel){let r=t.x-Q*2,i=t.y+t.height/2;e(`text`,{setAttr:{x:String(r),y:String(i),"text-anchor":`middle`,"dominant-baseline":`middle`,transform:`rotate(-90 ${r} ${i})`},style:n,text:this._options.yAxisLabel})}}drawSelection(e,t,n){if(!this._selectedPoint)return;let r=this._series[this._selectedPoint.series];if(!r||r.hidden||this._selectedPoint.index>=r.points.length)return;let i=this.pointPixel(e,t,n,this._selectedPoint.series,this._selectedPoint.index);i&&this.createMark(this._overlayGroup,`circle`,{setAttr:{cx:String(i.x),cy:String(i.y),r:String(tt)},style:{fill:`none`,stroke:`var(--ts-ui-chart-selection)`,"stroke-width":`2`}})}markFactory(e){return(t,n)=>this.createMark(e,t,n)}createMark(t,n,r){let i=e.sink.createElementNS(Xe,n);return e.sink.apply(i,r),e.sink.appendChild(t,i),this._marks.push({parent:t,handle:i}),i}seriesMark(e,t){return this.createMark(this._seriesGroup,e,t)}clearMarks(){for(let{parent:t,handle:n}of this._marks)e.sink.removeChild(t,n),e.sink.release(n);this._marks.length=0}handlePointerMove=e=>{let t=this.resolveHit(e);if(!t){c.hide();return}let n=this._series[t.series],r=t.index===null?n.name:`${n.name}: (${n.points[t.index].x}, ${n.points[t.index].y})`;c.show(r,e.clientX,e.clientY)};handlePointerOut=t=>{let n=t.relatedTarget,r=this.getElement();r&&e.source.isNode(n)&&e.source.contains(r,e.source.intern(n))||c.hide()};handlePointerClick=e=>{let t=this.resolveHit(e);!t||t.index===null||this.selectPoint(t.series,t.index)};handleLegendToggle=e=>{let t=this._series[e];t&&(t.hidden=!t.hidden,this.scheduleLayout())};resolveHit(e){return this.hitMark(e)}clientToSurface(t,n){if(!this._svg)return null;let r=e.source.getElementRect(this._svg);return{x:t-r.x,y:n-r.y}}hitMark(t){if(!e.source.isNode(t.target))return null;let n=e.source.intern(t.target),r=e.source.getDataset(n,`series`);if(r===void 0)return null;let i=Number(r),a=this._series[i];if(!a||a.hidden)return null;let o=e.source.getDataset(n,`index`);if(o===void 0)return{series:i,index:null};let s=Number(o);return s>=a.points.length?null:{series:i,index:s}}selectPoint(e,t){this._selectedPoint={series:e,index:t},this.scheduleLayout();let n=this._series[e];this.emit(`selection`,{series:e,index:t,point:n.points[t],seriesName:n.name})}seriesColor(e,t){return t.color??`var(--ts-ui-chart-series-${e%Qe+1})`}destructor(){if(this._boundStore){for(let e of Ze)this._boundStore.off(e,this._onStoreRefresh);this._boundStore=null}this._themeCleanup&&=(this._themeCleanup(),null),a.removeSubtreeListener(this,`mousemove`,this.handlePointerMove),a.removeSubtreeListener(this,`mouseout`,this.handlePointerOut),a.removeSubtreeListener(this,`click`,this.handlePointerClick),this.clearMarks(),c.hide(),super.destructor()}},$=16,nt=24,CurveTape=class{segments=[];_x=0;_y=0;moveTo(e,t){this._x=e,this._y=t}lineTo(e,t){this.segments.push([this._x,this._y,this._x,this._y,e,t,e,t]),this._x=e,this._y=t}bezierCurveTo(e,t,n,r,i,a){this.segments.push([this._x,this._y,e,t,n,r,i,a]),this._x=i,this._y=a}closePath(){}};function cubicAt(e,t,n,r,i){let a=1-i;return a*a*a*e+3*a*a*i*t+3*a*i*i*n+i*i*i*r}var LineChart=class extends AbstractChart{constructor(e){super(e),this.dispatchLineOptions(e)}dispatchLineOptions(e){e&&(e.showPoints!==void 0&&this.setShowPoints(e.showPoints),e.curved!==void 0&&this.setCurved(e.curved),e.xScaleType!==void 0&&this.setXScaleType(e.xScaleType))}setShowPoints(e){return this._options.showPoints=e,this.scheduleLayout(),this}isShowPoints(){return this._options.showPoints??!0}setCurved(e){return this._options.curved=e,this.scheduleLayout(),this}isCurved(){return this._options.curved??!1}setXScaleType(e){return this._options.xScaleType=e,this.scheduleLayout(),this}getXScaleType(){return this._options.xScaleType??`linear`}visiblePoints(){return this._series.filter(e=>!e.hidden).flatMap(e=>e.points)}buildScales(e){let t=this.visiblePoints(),[n,r]=pointsXExtent(t),i=pointsYBounds(t),a=[e.x,e.x+e.width],o=[e.y+e.height,e.y];return{x:this.getXScaleType()===`time`?timeScale([new Date(n),new Date(r)],a):linearScale([n,r],a),y:linearScale(i,o)}}drawSeries(e,t,n){let r=this.projector(t,n),i=this.isCurved()?monotoneX:linear_default;this._series.forEach((e,t)=>{if(e.hidden)return;let n=this.seriesColor(t,e),a=line_default().x(e=>r.x(e.x)).y(e=>r.y(e.y)).curve(i)(e.points);this.seriesMark(`path`,{setAttr:{d:a??``,"data-series":String(t)},style:{fill:`none`,stroke:n,"stroke-width":`var(--ts-ui-chart-line-width)`}}),this.isShowPoints()&&this.drawPoints(e.points,t,n,r)})}drawPoints(e,t,n,r){e.forEach((e,i)=>{this.seriesMark(`circle`,{setAttr:{cx:String(r.x(e.x)),cy:String(r.y(e.y)),r:`var(--ts-ui-chart-point-radius)`,"data-series":String(t),"data-index":String(i)},style:{fill:n}})})}pointPixel(e,t,n,r,i){let a=this._series[r]?.points[i];if(!a)return null;let o=this.projector(t,n);return{x:o.x(a.x),y:o.y(a.y)}}resolveHit(e){if(!this._plot||!this._xScale||!this._yScale)return null;let t=this.clientToSurface(e.clientX,e.clientY);if(!t)return null;let n=this._plot;if(t.x<n.x||t.x>n.x+n.width||t.y<n.y-$||t.y>n.y+n.height+$)return null;let r=this.projector(this._xScale,this._yScale),i=-1,a=$;return this._series.forEach((e,n)=>{if(e.hidden||e.points.length===0)return;let o=this.curveYAt(e.points,t.x,r);if(o===null)return;let s=Math.abs(t.y-o);s<=a&&(a=s,i=n)}),i<0?null:{series:i,index:this.nearestPointIndex(this._series[i].points,t.x,r)}}curveYAt(e,t,n){let r=new CurveTape;line_default().x(e=>n.x(e.x)).y(e=>n.y(e.y)).curve(this.isCurved()?monotoneX:linear_default).context(r)(e);for(let[e,n,i,a,o,s,c,l]of r.segments){if(t<Math.min(e,c)||t>Math.max(e,c))continue;let r=c>=e,u=0,d=1;for(let n=0;n<nt;n++){let n=(u+d)/2;cubicAt(e,i,o,c,n)<=t===r?u=n:d=n}return cubicAt(n,a,s,l,(u+d)/2)}return null}nearestPointIndex(e,t,n){let r=0,i=1/0;return e.forEach((e,a)=>{let o=Math.abs(n.x(e.x)-t);o<i&&(i=o,r=a)}),r}projector(e,t){return{x:e,y:t}}},rt=n(LineChart),BarChart=class extends AbstractChart{constructor(e){super(e),e?.grouped!==void 0&&this.setGrouped(e.grouped)}setGrouped(e){return this._options.grouped=e,this.scheduleLayout(),this}isGrouped(){return this._options.grouped??this._series.length>1}categories(){let e=new Set;for(let t of this._series)if(!t.hidden)for(let n of t.points)e.add(n.x);return Array.from(e).sort((e,t)=>e-t).map(String)}visiblePoints(){return this._series.filter(e=>!e.hidden).flatMap(e=>e.points)}buildScales(e){return{x:bandScale(this.categories(),[e.x,e.x+e.width]),y:linearScale(pointsYBounds(this.visiblePoints()),[e.y+e.height,e.y])}}drawSeries(e,t,n){for(let e of this.computeBars(t,n)){let t=this.seriesColor(e.seriesIndex,this._series[e.seriesIndex]);this.seriesMark(`rect`,{setAttr:{x:String(e.x),y:String(e.y),width:String(e.width),height:String(e.height),"data-series":String(e.seriesIndex),"data-index":String(e.pointIndex)},style:{fill:t}})}}computeBars(e,t){if(!isBandScale(e))return[];let n=t,r=n(0),i=this.isGrouped(),a=this._series.map((e,t)=>({model:e,index:t})).filter(e=>!e.model.hidden),o=e.bandwidth(),s=i?o/Math.max(1,a.length):o,c=new Map,l=[];return a.forEach((t,a)=>{this.appendSeriesBars(l,t.model,t.index,a,e,n,r,i,s,c)}),l}appendSeriesBars(e,t,n,r,i,a,o,s,c,l){t.points.forEach((t,u)=>{let d=String(t.x),f=i(d)??0;if(s){let i=a(t.y);e.push({seriesIndex:n,pointIndex:u,x:f+r*c,y:Math.min(i,o),width:c,height:Math.abs(o-i)})}else{let r=l.get(d)??0,i=r+t.y,o=a(i),s=a(r);e.push({seriesIndex:n,pointIndex:u,x:f,y:Math.min(o,s),width:c,height:Math.abs(s-o)}),l.set(d,i)}})}pointPixel(e,t,n,r,i){let a=this.computeBars(t,n).find(e=>e.seriesIndex===r&&e.pointIndex===i);return a?{x:a.x+a.width/2,y:a.y}:null}},it=n(BarChart);export{AbstractChart,it as BarChart,Ye as ChartLegend,rt as LineChart};
2
2
  //# sourceMappingURL=chart.es.js.map