snice 5.2.2 → 6.0.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 (653) hide show
  1. package/README.md +5 -8
  2. package/adapters/react/SniceProvider.js +1 -1
  3. package/adapters/react/SniceRouter.js +1 -1
  4. package/adapters/react/audio-recorder.d.ts +0 -4
  5. package/adapters/react/audio-recorder.d.ts.map +1 -1
  6. package/adapters/react/audio-recorder.js +1 -1
  7. package/adapters/react/audio-recorder.js.map +1 -1
  8. package/adapters/react/audio-recorder.tsx +1 -5
  9. package/adapters/react/avatar.d.ts +0 -1
  10. package/adapters/react/avatar.d.ts.map +1 -1
  11. package/adapters/react/avatar.js +1 -1
  12. package/adapters/react/avatar.js.map +1 -1
  13. package/adapters/react/avatar.tsx +1 -2
  14. package/adapters/react/breadcrumbs.d.ts +0 -1
  15. package/adapters/react/breadcrumbs.d.ts.map +1 -1
  16. package/adapters/react/breadcrumbs.js +1 -1
  17. package/adapters/react/breadcrumbs.js.map +1 -1
  18. package/adapters/react/breadcrumbs.tsx +1 -2
  19. package/adapters/react/camera-annotate.d.ts +0 -5
  20. package/adapters/react/camera-annotate.d.ts.map +1 -1
  21. package/adapters/react/camera-annotate.js +1 -1
  22. package/adapters/react/camera-annotate.js.map +1 -1
  23. package/adapters/react/camera-annotate.tsx +1 -6
  24. package/adapters/react/card.d.ts +0 -2
  25. package/adapters/react/card.d.ts.map +1 -1
  26. package/adapters/react/card.js +1 -1
  27. package/adapters/react/card.js.map +1 -1
  28. package/adapters/react/card.tsx +1 -3
  29. package/adapters/react/carousel.d.ts +0 -1
  30. package/adapters/react/carousel.d.ts.map +1 -1
  31. package/adapters/react/carousel.js +1 -1
  32. package/adapters/react/carousel.js.map +1 -1
  33. package/adapters/react/carousel.tsx +1 -2
  34. package/adapters/react/cart.d.ts +0 -1
  35. package/adapters/react/cart.d.ts.map +1 -1
  36. package/adapters/react/cart.js +1 -1
  37. package/adapters/react/cart.js.map +1 -1
  38. package/adapters/react/cart.tsx +1 -2
  39. package/adapters/react/chart.d.ts +0 -5
  40. package/adapters/react/chart.d.ts.map +1 -1
  41. package/adapters/react/chart.js +1 -1
  42. package/adapters/react/chart.js.map +1 -1
  43. package/adapters/react/chart.tsx +1 -6
  44. package/adapters/react/chat.d.ts +4 -1
  45. package/adapters/react/chat.d.ts.map +1 -1
  46. package/adapters/react/chat.js +2 -2
  47. package/adapters/react/chat.js.map +1 -1
  48. package/adapters/react/chat.tsx +6 -3
  49. package/adapters/react/chip.d.ts +0 -1
  50. package/adapters/react/chip.d.ts.map +1 -1
  51. package/adapters/react/chip.js +1 -1
  52. package/adapters/react/chip.js.map +1 -1
  53. package/adapters/react/chip.tsx +1 -2
  54. package/adapters/react/command-palette.d.ts +0 -4
  55. package/adapters/react/command-palette.d.ts.map +1 -1
  56. package/adapters/react/command-palette.js +1 -1
  57. package/adapters/react/command-palette.js.map +1 -1
  58. package/adapters/react/command-palette.tsx +1 -5
  59. package/adapters/react/comments.d.ts +0 -1
  60. package/adapters/react/comments.d.ts.map +1 -1
  61. package/adapters/react/comments.js +1 -1
  62. package/adapters/react/comments.js.map +1 -1
  63. package/adapters/react/comments.tsx +1 -2
  64. package/adapters/react/countdown.d.ts +0 -4
  65. package/adapters/react/countdown.d.ts.map +1 -1
  66. package/adapters/react/countdown.js +1 -1
  67. package/adapters/react/countdown.js.map +1 -1
  68. package/adapters/react/countdown.tsx +1 -5
  69. package/adapters/react/date-time-picker.d.ts +0 -1
  70. package/adapters/react/date-time-picker.d.ts.map +1 -1
  71. package/adapters/react/date-time-picker.js +1 -1
  72. package/adapters/react/date-time-picker.js.map +1 -1
  73. package/adapters/react/date-time-picker.tsx +1 -2
  74. package/adapters/react/file-upload.d.ts +0 -2
  75. package/adapters/react/file-upload.d.ts.map +1 -1
  76. package/adapters/react/file-upload.js +1 -1
  77. package/adapters/react/file-upload.js.map +1 -1
  78. package/adapters/react/file-upload.tsx +1 -3
  79. package/adapters/react/heatmap.d.ts +0 -4
  80. package/adapters/react/heatmap.d.ts.map +1 -1
  81. package/adapters/react/heatmap.js +1 -1
  82. package/adapters/react/heatmap.js.map +1 -1
  83. package/adapters/react/heatmap.tsx +1 -5
  84. package/adapters/react/image.d.ts +0 -2
  85. package/adapters/react/image.d.ts.map +1 -1
  86. package/adapters/react/image.js +1 -1
  87. package/adapters/react/image.js.map +1 -1
  88. package/adapters/react/image.tsx +1 -3
  89. package/adapters/react/kanban.d.ts +0 -4
  90. package/adapters/react/kanban.d.ts.map +1 -1
  91. package/adapters/react/kanban.js +1 -1
  92. package/adapters/react/kanban.js.map +1 -1
  93. package/adapters/react/kanban.tsx +1 -5
  94. package/adapters/react/key-value.d.ts +0 -2
  95. package/adapters/react/key-value.d.ts.map +1 -1
  96. package/adapters/react/key-value.js +1 -1
  97. package/adapters/react/key-value.js.map +1 -1
  98. package/adapters/react/key-value.tsx +1 -3
  99. package/adapters/react/leaderboard.d.ts +0 -1
  100. package/adapters/react/leaderboard.d.ts.map +1 -1
  101. package/adapters/react/leaderboard.js +1 -1
  102. package/adapters/react/leaderboard.js.map +1 -1
  103. package/adapters/react/leaderboard.tsx +1 -2
  104. package/adapters/react/map.d.ts +0 -3
  105. package/adapters/react/map.d.ts.map +1 -1
  106. package/adapters/react/map.js +1 -1
  107. package/adapters/react/map.js.map +1 -1
  108. package/adapters/react/map.tsx +1 -4
  109. package/adapters/react/markdown.d.ts +1 -1
  110. package/adapters/react/markdown.d.ts.map +1 -1
  111. package/adapters/react/markdown.js +1 -1
  112. package/adapters/react/markdown.js.map +1 -1
  113. package/adapters/react/markdown.tsx +2 -2
  114. package/adapters/react/matchRoute.d.ts +1 -1
  115. package/adapters/react/matchRoute.js +38 -4
  116. package/adapters/react/matchRoute.js.map +1 -1
  117. package/adapters/react/message-strip.d.ts +1 -1
  118. package/adapters/react/message-strip.js +1 -1
  119. package/adapters/react/message-strip.tsx +2 -2
  120. package/adapters/react/music-player.d.ts +0 -1
  121. package/adapters/react/music-player.d.ts.map +1 -1
  122. package/adapters/react/music-player.js +1 -1
  123. package/adapters/react/music-player.js.map +1 -1
  124. package/adapters/react/music-player.tsx +1 -2
  125. package/adapters/react/org-chart.d.ts +0 -1
  126. package/adapters/react/org-chart.d.ts.map +1 -1
  127. package/adapters/react/org-chart.js +1 -1
  128. package/adapters/react/org-chart.js.map +1 -1
  129. package/adapters/react/org-chart.tsx +1 -2
  130. package/adapters/react/paint.d.ts +0 -1
  131. package/adapters/react/paint.d.ts.map +1 -1
  132. package/adapters/react/paint.js +1 -1
  133. package/adapters/react/paint.js.map +1 -1
  134. package/adapters/react/paint.tsx +1 -2
  135. package/adapters/react/podcast-player.d.ts +0 -2
  136. package/adapters/react/podcast-player.d.ts.map +1 -1
  137. package/adapters/react/podcast-player.js +1 -1
  138. package/adapters/react/podcast-player.js.map +1 -1
  139. package/adapters/react/podcast-player.tsx +1 -3
  140. package/adapters/react/product-card.d.ts +0 -3
  141. package/adapters/react/product-card.d.ts.map +1 -1
  142. package/adapters/react/product-card.js +1 -1
  143. package/adapters/react/product-card.js.map +1 -1
  144. package/adapters/react/product-card.tsx +1 -4
  145. package/adapters/react/qr-reader.d.ts +0 -4
  146. package/adapters/react/qr-reader.d.ts.map +1 -1
  147. package/adapters/react/qr-reader.js +1 -1
  148. package/adapters/react/qr-reader.js.map +1 -1
  149. package/adapters/react/qr-reader.tsx +1 -5
  150. package/adapters/react/recipe.d.ts +0 -5
  151. package/adapters/react/recipe.d.ts.map +1 -1
  152. package/adapters/react/recipe.js +1 -1
  153. package/adapters/react/recipe.js.map +1 -1
  154. package/adapters/react/recipe.tsx +1 -6
  155. package/adapters/react/route-specificity.d.ts +1 -0
  156. package/adapters/react/spotlight.d.ts +0 -2
  157. package/adapters/react/spotlight.d.ts.map +1 -1
  158. package/adapters/react/spotlight.js +1 -1
  159. package/adapters/react/spotlight.js.map +1 -1
  160. package/adapters/react/spotlight.tsx +1 -3
  161. package/adapters/react/tag-input.d.ts +0 -4
  162. package/adapters/react/tag-input.d.ts.map +1 -1
  163. package/adapters/react/tag-input.js +1 -1
  164. package/adapters/react/tag-input.js.map +1 -1
  165. package/adapters/react/tag-input.tsx +1 -5
  166. package/adapters/react/terminal.d.ts +0 -1
  167. package/adapters/react/terminal.d.ts.map +1 -1
  168. package/adapters/react/terminal.js +1 -1
  169. package/adapters/react/terminal.js.map +1 -1
  170. package/adapters/react/terminal.tsx +1 -2
  171. package/adapters/react/time-picker.d.ts +0 -1
  172. package/adapters/react/time-picker.d.ts.map +1 -1
  173. package/adapters/react/time-picker.js +1 -1
  174. package/adapters/react/time-picker.js.map +1 -1
  175. package/adapters/react/time-picker.tsx +1 -2
  176. package/adapters/react/timer.d.ts +0 -1
  177. package/adapters/react/timer.d.ts.map +1 -1
  178. package/adapters/react/timer.js +1 -1
  179. package/adapters/react/timer.js.map +1 -1
  180. package/adapters/react/timer.tsx +1 -2
  181. package/adapters/react/useRequestHandler.js +1 -1
  182. package/adapters/react/video-player.d.ts +0 -6
  183. package/adapters/react/video-player.d.ts.map +1 -1
  184. package/adapters/react/video-player.js +1 -1
  185. package/adapters/react/video-player.js.map +1 -1
  186. package/adapters/react/video-player.tsx +1 -7
  187. package/adapters/react/virtual-scroller.d.ts +0 -1
  188. package/adapters/react/virtual-scroller.d.ts.map +1 -1
  189. package/adapters/react/virtual-scroller.js +1 -1
  190. package/adapters/react/virtual-scroller.js.map +1 -1
  191. package/adapters/react/virtual-scroller.tsx +1 -2
  192. package/bin/templates/default/tests/services/jwt.test.ts +8 -1
  193. package/bin/templates/react/tests/services/jwt.test.ts +10 -3
  194. package/dist/cdn/accordion/snice-accordion.js +1 -1
  195. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  196. package/dist/cdn/action-bar/README.md +2 -2
  197. package/dist/cdn/action-bar/snice-action-bar.js +2 -2
  198. package/dist/cdn/action-bar/snice-action-bar.js.map +1 -1
  199. package/dist/cdn/action-bar/snice-action-bar.min.js +2 -2
  200. package/dist/cdn/action-bar/snice-action-bar.min.js.map +1 -1
  201. package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
  202. package/dist/cdn/activity-feed/snice-activity-feed.min.js +1 -1
  203. package/dist/cdn/alert/snice-alert.js +1 -1
  204. package/dist/cdn/alert/snice-alert.js.map +1 -1
  205. package/dist/cdn/alert/snice-alert.min.js +1 -1
  206. package/dist/cdn/alert/snice-alert.min.js.map +1 -1
  207. package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
  208. package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
  209. package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
  210. package/dist/cdn/approval-flow/snice-approval-flow.js.map +1 -1
  211. package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
  212. package/dist/cdn/approval-flow/snice-approval-flow.min.js.map +1 -1
  213. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  214. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  215. package/dist/cdn/availability/snice-availability.js +1 -1
  216. package/dist/cdn/availability/snice-availability.min.js +1 -1
  217. package/dist/cdn/avatar/snice-avatar.js +1 -1
  218. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  219. package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
  220. package/dist/cdn/avatar-group/snice-avatar-group.min.js +1 -1
  221. package/dist/cdn/badge/snice-badge.js +1 -1
  222. package/dist/cdn/badge/snice-badge.js.map +1 -1
  223. package/dist/cdn/badge/snice-badge.min.js +1 -1
  224. package/dist/cdn/badge/snice-badge.min.js.map +1 -1
  225. package/dist/cdn/banner/README.md +1 -1
  226. package/dist/cdn/banner/snice-banner.js +2 -2
  227. package/dist/cdn/banner/snice-banner.js.map +1 -1
  228. package/dist/cdn/banner/snice-banner.min.js +2 -2
  229. package/dist/cdn/banner/snice-banner.min.js.map +1 -1
  230. package/dist/cdn/binpack/snice-binpack.js +1 -1
  231. package/dist/cdn/binpack/snice-binpack.min.js +1 -1
  232. package/dist/cdn/book/snice-book.js +1 -1
  233. package/dist/cdn/book/snice-book.min.js +1 -1
  234. package/dist/cdn/booking/snice-booking.js +1 -1
  235. package/dist/cdn/booking/snice-booking.min.js +1 -1
  236. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  237. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js.map +1 -1
  238. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  239. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js.map +1 -1
  240. package/dist/cdn/button/snice-button.js +1 -1
  241. package/dist/cdn/button/snice-button.js.map +1 -1
  242. package/dist/cdn/button/snice-button.min.js +1 -1
  243. package/dist/cdn/button/snice-button.min.js.map +1 -1
  244. package/dist/cdn/calendar/snice-calendar.js +1 -1
  245. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  246. package/dist/cdn/camera/snice-camera.js +1 -1
  247. package/dist/cdn/camera/snice-camera.min.js +1 -1
  248. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  249. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  250. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  251. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  252. package/dist/cdn/card/snice-card.js +1 -1
  253. package/dist/cdn/card/snice-card.min.js +1 -1
  254. package/dist/cdn/carousel/snice-carousel.js +1 -1
  255. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  256. package/dist/cdn/cart/snice-cart.js +1 -1
  257. package/dist/cdn/cart/snice-cart.min.js +1 -1
  258. package/dist/cdn/chart/snice-chart.js +1 -1
  259. package/dist/cdn/chart/snice-chart.js.map +1 -1
  260. package/dist/cdn/chart/snice-chart.min.js +1 -1
  261. package/dist/cdn/chart/snice-chart.min.js.map +1 -1
  262. package/dist/cdn/chat/README.md +2 -2
  263. package/dist/cdn/chat/snice-chat.js +785 -89
  264. package/dist/cdn/chat/snice-chat.js.map +1 -1
  265. package/dist/cdn/chat/snice-chat.min.js +71 -75
  266. package/dist/cdn/chat/snice-chat.min.js.map +1 -1
  267. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  268. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  269. package/dist/cdn/chip/snice-chip.js +1 -1
  270. package/dist/cdn/chip/snice-chip.js.map +1 -1
  271. package/dist/cdn/chip/snice-chip.min.js +1 -1
  272. package/dist/cdn/chip/snice-chip.min.js.map +1 -1
  273. package/dist/cdn/code-block/snice-code-block.js +1 -1
  274. package/dist/cdn/code-block/snice-code-block.min.js +1 -1
  275. package/dist/cdn/color-display/snice-color-display.js +1 -1
  276. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  277. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  278. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  279. package/dist/cdn/command-palette/README.md +1 -1
  280. package/dist/cdn/command-palette/snice-command-palette.js +2 -2
  281. package/dist/cdn/command-palette/snice-command-palette.js.map +1 -1
  282. package/dist/cdn/command-palette/snice-command-palette.min.js +2 -2
  283. package/dist/cdn/command-palette/snice-command-palette.min.js.map +1 -1
  284. package/dist/cdn/comments/snice-comments.js +1 -1
  285. package/dist/cdn/comments/snice-comments.min.js +1 -1
  286. package/dist/cdn/countdown/snice-countdown.js +1 -1
  287. package/dist/cdn/countdown/snice-countdown.min.js +1 -1
  288. package/dist/cdn/cropper/snice-cropper.js +1 -1
  289. package/dist/cdn/cropper/snice-cropper.min.js +1 -1
  290. package/dist/cdn/data-card/snice-data-card.js +1 -1
  291. package/dist/cdn/data-card/snice-data-card.js.map +1 -1
  292. package/dist/cdn/data-card/snice-data-card.min.js +1 -1
  293. package/dist/cdn/data-card/snice-data-card.min.js.map +1 -1
  294. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  295. package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
  296. package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
  297. package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +1 -1
  298. package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
  299. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
  300. package/dist/cdn/diff/snice-diff.js +1 -1
  301. package/dist/cdn/diff/snice-diff.min.js +1 -1
  302. package/dist/cdn/divider/snice-divider.js +1 -1
  303. package/dist/cdn/divider/snice-divider.min.js +1 -1
  304. package/dist/cdn/doc/snice-doc.js +1 -1
  305. package/dist/cdn/doc/snice-doc.min.js +1 -1
  306. package/dist/cdn/draw/snice-draw.js +1 -1
  307. package/dist/cdn/draw/snice-draw.min.js +1 -1
  308. package/dist/cdn/drawer/snice-drawer.js +1 -1
  309. package/dist/cdn/drawer/snice-drawer.js.map +1 -1
  310. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  311. package/dist/cdn/drawer/snice-drawer.min.js.map +1 -1
  312. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  313. package/dist/cdn/empty-state/snice-empty-state.js.map +1 -1
  314. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  315. package/dist/cdn/empty-state/snice-empty-state.min.js.map +1 -1
  316. package/dist/cdn/estimate/snice-estimate.js +1 -1
  317. package/dist/cdn/estimate/snice-estimate.min.js +1 -1
  318. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  319. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  320. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  321. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  322. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  323. package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
  324. package/dist/cdn/flow/snice-flow.js +1 -1
  325. package/dist/cdn/flow/snice-flow.min.js +1 -1
  326. package/dist/cdn/form-layout/snice-form-layout.js +1 -1
  327. package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
  328. package/dist/cdn/funnel/snice-funnel.js +1 -1
  329. package/dist/cdn/funnel/snice-funnel.js.map +1 -1
  330. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  331. package/dist/cdn/funnel/snice-funnel.min.js.map +1 -1
  332. package/dist/cdn/gantt/snice-gantt.js +1 -1
  333. package/dist/cdn/gantt/snice-gantt.min.js +1 -1
  334. package/dist/cdn/gauge/snice-gauge.js +1 -1
  335. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  336. package/dist/cdn/grid/snice-grid.js +1 -1
  337. package/dist/cdn/grid/snice-grid.min.js +1 -1
  338. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  339. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  340. package/dist/cdn/image/snice-image.js +1 -1
  341. package/dist/cdn/image/snice-image.js.map +1 -1
  342. package/dist/cdn/image/snice-image.min.js +1 -1
  343. package/dist/cdn/image/snice-image.min.js.map +1 -1
  344. package/dist/cdn/input/snice-input.js +1 -1
  345. package/dist/cdn/input/snice-input.js.map +1 -1
  346. package/dist/cdn/input/snice-input.min.js +1 -1
  347. package/dist/cdn/input/snice-input.min.js.map +1 -1
  348. package/dist/cdn/invoice/README.md +1 -1
  349. package/dist/cdn/invoice/snice-invoice.js +2 -2
  350. package/dist/cdn/invoice/snice-invoice.js.map +1 -1
  351. package/dist/cdn/invoice/snice-invoice.min.js +2 -2
  352. package/dist/cdn/invoice/snice-invoice.min.js.map +1 -1
  353. package/dist/cdn/kanban/snice-kanban.js +1 -1
  354. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  355. package/dist/cdn/key-value/snice-key-value.js +1 -1
  356. package/dist/cdn/key-value/snice-key-value.min.js +1 -1
  357. package/dist/cdn/kpi/snice-kpi.js +1 -1
  358. package/dist/cdn/kpi/snice-kpi.js.map +1 -1
  359. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  360. package/dist/cdn/kpi/snice-kpi.min.js.map +1 -1
  361. package/dist/cdn/layout/snice-layout.js +1 -1
  362. package/dist/cdn/layout/snice-layout.min.js +1 -1
  363. package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
  364. package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
  365. package/dist/cdn/link/snice-link.js +1 -1
  366. package/dist/cdn/link/snice-link.min.js +1 -1
  367. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  368. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  369. package/dist/cdn/list/snice-list.js +1 -1
  370. package/dist/cdn/list/snice-list.js.map +1 -1
  371. package/dist/cdn/list/snice-list.min.js +1 -1
  372. package/dist/cdn/list/snice-list.min.js.map +1 -1
  373. package/dist/cdn/location/snice-location.js +1 -1
  374. package/dist/cdn/location/snice-location.js.map +1 -1
  375. package/dist/cdn/location/snice-location.min.js +1 -1
  376. package/dist/cdn/location/snice-location.min.js.map +1 -1
  377. package/dist/cdn/login/snice-login.js +3 -1
  378. package/dist/cdn/login/snice-login.js.map +1 -1
  379. package/dist/cdn/login/snice-login.min.js +1 -1
  380. package/dist/cdn/login/snice-login.min.js.map +1 -1
  381. package/dist/cdn/map/snice-map.js +1 -1
  382. package/dist/cdn/map/snice-map.min.js +1 -1
  383. package/dist/cdn/markdown/README.md +2 -2
  384. package/dist/cdn/markdown/snice-markdown.js +16 -3
  385. package/dist/cdn/markdown/snice-markdown.js.map +1 -1
  386. package/dist/cdn/markdown/snice-markdown.min.js +3 -3
  387. package/dist/cdn/markdown/snice-markdown.min.js.map +1 -1
  388. package/dist/cdn/masonry/snice-masonry.js +1 -1
  389. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  390. package/dist/cdn/menu/snice-menu.js +2 -2
  391. package/dist/cdn/menu/snice-menu.js.map +1 -1
  392. package/dist/cdn/menu/snice-menu.min.js +2 -2
  393. package/dist/cdn/menu/snice-menu.min.js.map +1 -1
  394. package/dist/cdn/message-strip/snice-message-strip.js +9 -9
  395. package/dist/cdn/message-strip/snice-message-strip.js.map +1 -1
  396. package/dist/cdn/message-strip/snice-message-strip.min.js +3 -3
  397. package/dist/cdn/message-strip/snice-message-strip.min.js.map +1 -1
  398. package/dist/cdn/metric-table/snice-metric-table.js +1 -1
  399. package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
  400. package/dist/cdn/modal/snice-modal.js +1 -1
  401. package/dist/cdn/modal/snice-modal.js.map +1 -1
  402. package/dist/cdn/modal/snice-modal.min.js +1 -1
  403. package/dist/cdn/modal/snice-modal.min.js.map +1 -1
  404. package/dist/cdn/music-player/snice-music-player.js +1 -1
  405. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  406. package/dist/cdn/nav/snice-nav.js +1 -1
  407. package/dist/cdn/nav/snice-nav.min.js +1 -1
  408. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  409. package/dist/cdn/network-graph/snice-network-graph.js.map +1 -1
  410. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  411. package/dist/cdn/network-graph/snice-network-graph.min.js.map +1 -1
  412. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  413. package/dist/cdn/notification-center/snice-notification-center.js.map +1 -1
  414. package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
  415. package/dist/cdn/notification-center/snice-notification-center.min.js.map +1 -1
  416. package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
  417. package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
  418. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  419. package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
  420. package/dist/cdn/pagination/snice-pagination.js +1 -1
  421. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  422. package/dist/cdn/paint/snice-paint.js +1 -1
  423. package/dist/cdn/paint/snice-paint.min.js +1 -1
  424. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  425. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
  426. package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
  427. package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
  428. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  429. package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
  430. package/dist/cdn/popover/snice-popover.js +1 -1
  431. package/dist/cdn/popover/snice-popover.min.js +1 -1
  432. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  433. package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
  434. package/dist/cdn/product-card/snice-product-card.js +3 -3
  435. package/dist/cdn/product-card/snice-product-card.js.map +1 -1
  436. package/dist/cdn/product-card/snice-product-card.min.js +3 -3
  437. package/dist/cdn/product-card/snice-product-card.min.js.map +1 -1
  438. package/dist/cdn/progress/README.md +1 -1
  439. package/dist/cdn/progress/snice-progress.js +2 -2
  440. package/dist/cdn/progress/snice-progress.js.map +1 -1
  441. package/dist/cdn/progress/snice-progress.min.js +2 -2
  442. package/dist/cdn/progress/snice-progress.min.js.map +1 -1
  443. package/dist/cdn/progress-ring/snice-progress-ring.js +2 -2
  444. package/dist/cdn/progress-ring/snice-progress-ring.js.map +1 -1
  445. package/dist/cdn/progress-ring/snice-progress-ring.min.js +2 -2
  446. package/dist/cdn/progress-ring/snice-progress-ring.min.js.map +1 -1
  447. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  448. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  449. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  450. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  451. package/dist/cdn/radio/snice-radio.js +1 -1
  452. package/dist/cdn/radio/snice-radio.min.js +1 -1
  453. package/dist/cdn/range-slider/snice-range-slider.js +1 -1
  454. package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
  455. package/dist/cdn/rating/snice-rating.js +1 -1
  456. package/dist/cdn/rating/snice-rating.min.js +1 -1
  457. package/dist/cdn/receipt/snice-receipt.js +1 -1
  458. package/dist/cdn/receipt/snice-receipt.min.js +1 -1
  459. package/dist/cdn/recipe/snice-recipe.js +1 -1
  460. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  461. package/dist/cdn/runtime/README.md +2 -2
  462. package/dist/cdn/runtime/snice-runtime.esm.js +644 -172
  463. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  464. package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
  465. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  466. package/dist/cdn/runtime/snice-runtime.js +644 -172
  467. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  468. package/dist/cdn/runtime/snice-runtime.min.js +8 -8
  469. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  470. package/dist/cdn/sankey/snice-sankey.js +1 -1
  471. package/dist/cdn/sankey/snice-sankey.js.map +1 -1
  472. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  473. package/dist/cdn/sankey/snice-sankey.min.js.map +1 -1
  474. package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
  475. package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
  476. package/dist/cdn/select/snice-select.js +1 -1
  477. package/dist/cdn/select/snice-select.min.js +1 -1
  478. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  479. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  480. package/dist/cdn/slider/snice-slider.js +1 -1
  481. package/dist/cdn/slider/snice-slider.min.js +1 -1
  482. package/dist/cdn/sortable/snice-sortable.js +1 -1
  483. package/dist/cdn/sortable/snice-sortable.min.js +1 -1
  484. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  485. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  486. package/dist/cdn/spinner/snice-spinner.js +1 -1
  487. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  488. package/dist/cdn/split-button/snice-split-button.js +1 -1
  489. package/dist/cdn/split-button/snice-split-button.js.map +1 -1
  490. package/dist/cdn/split-button/snice-split-button.min.js +1 -1
  491. package/dist/cdn/split-button/snice-split-button.min.js.map +1 -1
  492. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  493. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  494. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  495. package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
  496. package/dist/cdn/stat-group/snice-stat-group.js +1 -1
  497. package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
  498. package/dist/cdn/step-input/snice-step-input.js +1 -1
  499. package/dist/cdn/step-input/snice-step-input.min.js +1 -1
  500. package/dist/cdn/stepper/snice-stepper.js +1 -1
  501. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  502. package/dist/cdn/switch/snice-switch.js +1 -1
  503. package/dist/cdn/switch/snice-switch.min.js +1 -1
  504. package/dist/cdn/table/README.md +1 -1
  505. package/dist/cdn/table/snice-table.js +14 -4
  506. package/dist/cdn/table/snice-table.js.map +1 -1
  507. package/dist/cdn/table/snice-table.min.js +14 -4
  508. package/dist/cdn/table/snice-table.min.js.map +1 -1
  509. package/dist/cdn/tabs/snice-tabs.js +1 -1
  510. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  511. package/dist/cdn/tag/snice-tag.js +1 -1
  512. package/dist/cdn/tag/snice-tag.min.js +1 -1
  513. package/dist/cdn/tag-input/snice-tag-input.js +2 -2
  514. package/dist/cdn/tag-input/snice-tag-input.js.map +1 -1
  515. package/dist/cdn/tag-input/snice-tag-input.min.js +2 -2
  516. package/dist/cdn/tag-input/snice-tag-input.min.js.map +1 -1
  517. package/dist/cdn/terminal/snice-terminal.js +1 -1
  518. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  519. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  520. package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
  521. package/dist/cdn/textarea/snice-textarea.js +1 -1
  522. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  523. package/dist/cdn/time-picker/README.md +1 -1
  524. package/dist/cdn/time-picker/snice-time-picker.js +18 -13
  525. package/dist/cdn/time-picker/snice-time-picker.js.map +1 -1
  526. package/dist/cdn/time-picker/snice-time-picker.min.js +3 -3
  527. package/dist/cdn/time-picker/snice-time-picker.min.js.map +1 -1
  528. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  529. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  530. package/dist/cdn/timeline/snice-timeline.js +1 -1
  531. package/dist/cdn/timeline/snice-timeline.js.map +1 -1
  532. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  533. package/dist/cdn/timeline/snice-timeline.min.js.map +1 -1
  534. package/dist/cdn/timer/snice-timer.js +1 -1
  535. package/dist/cdn/timer/snice-timer.min.js +1 -1
  536. package/dist/cdn/toast/snice-toast.js +1 -1
  537. package/dist/cdn/toast/snice-toast.js.map +1 -1
  538. package/dist/cdn/toast/snice-toast.min.js +1 -1
  539. package/dist/cdn/toast/snice-toast.min.js.map +1 -1
  540. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  541. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  542. package/dist/cdn/tree/snice-tree.js +1 -1
  543. package/dist/cdn/tree/snice-tree.min.js +1 -1
  544. package/dist/cdn/treemap/snice-treemap.js +1 -1
  545. package/dist/cdn/treemap/snice-treemap.js.map +1 -1
  546. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  547. package/dist/cdn/treemap/snice-treemap.min.js.map +1 -1
  548. package/dist/cdn/user-card/snice-user-card.js +1 -1
  549. package/dist/cdn/user-card/snice-user-card.min.js +1 -1
  550. package/dist/cdn/video-player/snice-video-player.js +1 -1
  551. package/dist/cdn/video-player/snice-video-player.min.js +1 -1
  552. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  553. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  554. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  555. package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
  556. package/dist/cdn/weather/snice-weather.js +1 -1
  557. package/dist/cdn/weather/snice-weather.min.js +1 -1
  558. package/dist/cdn/work-order/snice-work-order.js +1 -1
  559. package/dist/cdn/work-order/snice-work-order.min.js +1 -1
  560. package/dist/components/action-bar/snice-action-bar.js +1 -1
  561. package/dist/components/action-bar/snice-action-bar.js.map +1 -1
  562. package/dist/components/banner/snice-banner.js +1 -1
  563. package/dist/components/banner/snice-banner.js.map +1 -1
  564. package/dist/components/chat/snice-chat-message.d.ts +32 -0
  565. package/dist/components/chat/snice-chat-message.js +127 -0
  566. package/dist/components/chat/snice-chat-message.js.map +1 -0
  567. package/dist/components/chat/snice-chat-message.types.d.ts +30 -0
  568. package/dist/components/chat/snice-chat.d.ts +31 -4
  569. package/dist/components/chat/snice-chat.js +363 -90
  570. package/dist/components/chat/snice-chat.js.map +1 -1
  571. package/dist/components/chat/snice-chat.types.d.ts +34 -3
  572. package/dist/components/command-palette/snice-command-palette.js +1 -1
  573. package/dist/components/command-palette/snice-command-palette.js.map +1 -1
  574. package/dist/components/icons/index.d.ts +4 -0
  575. package/dist/components/icons/index.js +5 -1
  576. package/dist/components/icons/index.js.map +1 -1
  577. package/dist/components/invoice/snice-invoice.js +1 -1
  578. package/dist/components/invoice/snice-invoice.js.map +1 -1
  579. package/dist/components/login/snice-login.d.ts +2 -2
  580. package/dist/components/login/snice-login.js +2 -0
  581. package/dist/components/login/snice-login.js.map +1 -1
  582. package/dist/components/login/snice-login.types.d.ts +4 -0
  583. package/dist/components/markdown/snice-markdown.d.ts +1 -0
  584. package/dist/components/markdown/snice-markdown.js +15 -2
  585. package/dist/components/markdown/snice-markdown.js.map +1 -1
  586. package/dist/components/menu/snice-menu.js +1 -1
  587. package/dist/components/menu/snice-menu.js.map +1 -1
  588. package/dist/components/message-strip/snice-message-strip.d.ts +1 -1
  589. package/dist/components/message-strip/snice-message-strip.js +8 -8
  590. package/dist/components/message-strip/snice-message-strip.types.d.ts +1 -1
  591. package/dist/components/product-card/snice-product-card.js +2 -2
  592. package/dist/components/product-card/snice-product-card.js.map +1 -1
  593. package/dist/components/progress/snice-progress.js +1 -1
  594. package/dist/components/progress/snice-progress.js.map +1 -1
  595. package/dist/components/progress-ring/snice-progress-ring.js +1 -1
  596. package/dist/components/progress-ring/snice-progress-ring.js.map +1 -1
  597. package/dist/components/table/snice-table.js +13 -3
  598. package/dist/components/table/snice-table.js.map +1 -1
  599. package/dist/components/tag-input/snice-tag-input.js +1 -1
  600. package/dist/components/tag-input/snice-tag-input.js.map +1 -1
  601. package/dist/components/time-picker/snice-time-picker.js +17 -12
  602. package/dist/components/time-picker/snice-time-picker.js.map +1 -1
  603. package/dist/components/utils.d.ts +6 -0
  604. package/dist/components/utils.js +1 -1
  605. package/dist/components/utils.js.map +1 -1
  606. package/dist/element.d.ts +2 -1
  607. package/dist/events.d.ts +6 -0
  608. package/dist/index.cjs +641 -169
  609. package/dist/index.cjs.map +1 -1
  610. package/dist/index.esm.js +641 -169
  611. package/dist/index.esm.js.map +1 -1
  612. package/dist/index.iife.js +641 -169
  613. package/dist/index.iife.js.map +1 -1
  614. package/dist/parts.d.ts +1 -8
  615. package/dist/react/SniceProvider.js +1 -1
  616. package/dist/react/SniceRouter.js +1 -1
  617. package/dist/react/index.js +1 -1
  618. package/dist/react/matchRoute.d.ts +1 -1
  619. package/dist/react/matchRoute.js +38 -4
  620. package/dist/react/matchRoute.js.map +1 -1
  621. package/dist/react/route-specificity.d.ts +1 -0
  622. package/dist/react/useRequestHandler.js +1 -1
  623. package/dist/render.d.ts +7 -0
  624. package/dist/route-specificity.d.ts +1 -0
  625. package/dist/symbols.cjs +14 -1
  626. package/dist/symbols.cjs.map +1 -1
  627. package/dist/symbols.d.ts +3 -0
  628. package/dist/symbols.esm.js +12 -2
  629. package/dist/symbols.esm.js.map +1 -1
  630. package/dist/transitions.cjs +1 -1
  631. package/dist/transitions.esm.js +1 -1
  632. package/dist/types/context.d.ts +5 -2
  633. package/dist/types/dispatch-options.d.ts +7 -0
  634. package/dist/types/index.d.ts +1 -0
  635. package/dist/types/on-options.d.ts +14 -0
  636. package/dist/types/watch-options.d.ts +9 -0
  637. package/dist/utils.d.ts +26 -0
  638. package/docs/ai/DEVELOPMENT.md +1 -1
  639. package/docs/ai/README.md +11 -0
  640. package/docs/ai/api.md +24 -5
  641. package/docs/ai/cdn.md +31 -0
  642. package/docs/ai/components/chat.md +57 -1
  643. package/docs/ai/components/message-strip.md +3 -3
  644. package/docs/ai/decorators.md +44 -5
  645. package/docs/cdn.md +56 -0
  646. package/docs/components/chat.md +108 -2
  647. package/docs/components/message-strip.md +8 -8
  648. package/docs/elements.md +21 -0
  649. package/docs/events.md +88 -0
  650. package/docs/superpowers/specs/2026-05-26-chat-styling-design.md +155 -0
  651. package/docs/superpowers/specs/2026-05-27-chat-theming-REMAINING.md +83 -0
  652. package/docs/superpowers/specs/2026-06-09-chat-custom-content-design.md +233 -0
  653. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"snice-chart.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/utils.js","../../components/chart/snice-chart.js"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { html } from 'snice';\n\n/**\n * Detects icon type and returns appropriate template\n *\n * Scheme overrides:\n * - img://path -> forces <img> element\n * - text://content -> forces text content\n *\n * Auto-detection (when no scheme):\n * - URLs (http://, https://, /, ./, ../, data:) -> <img>\n * - Image extensions (svg, png, jpg, jpeg, jfif, pjp, gif, webp, avif, jxl,\n * ico, cur, bmp, tif, tiff, heic, heif, apng) -> <img>\n * - Everything else -> span with text content (emoji, plain text)\n *\n * ⚠️ \"home\" or \"settings\" renders as PLAIN TEXT, not a Material icon.\n * For Material Symbols, use the icon slot instead:\n * <span slot=\"icon\" class=\"material-symbols-outlined\">home</span>\n *\n * Examples:\n * - \"/path/icon.svg\" -> <img>\n * - \"icon.png\" -> <img>\n * - \"img://filename\" -> <img> (forced)\n * - \"🏠\" -> <span> text (emoji)\n * - \"home\" -> <span> text (plain text, NOT a Material icon)\n * - \"text:///not/a/path\" -> <span> text (forced)\n */\nfunction renderIcon(icon, className = 'icon') {\n if (!icon)\n return html ``;\n // Check for scheme overrides first\n if (icon.startsWith('img://')) {\n const src = icon.slice(6);\n return html `<img class=\"${className}\" src=\"${src}\" alt=\"\" part=\"icon\" />`;\n }\n if (icon.startsWith('text://')) {\n const content = icon.slice(7);\n return html `<span class=\"${className}\" part=\"icon\">${content}</span>`;\n }\n // Auto-detect: Check if it's a URL pattern\n if (/^(https?:\\/\\/|\\/|\\.\\/|\\.\\.\\/|data:)/.test(icon)) {\n return html `<img class=\"${className}\" src=\"${icon}\" alt=\"\" part=\"icon\" />`;\n }\n // Auto-detect: Check if it's a file with image extension\n // Must have at least one char before the dot, and no unsupported protocol prefix\n // Covers: SVG, PNG, JPEG variants, GIF, WebP, AVIF, JPEG XL, ICO, BMP, TIFF, HEIC/HEIF, APNG\n if (/^[^:]*\\w\\.(svg|png|jpe?g|jfif|pjp|gif|webp|avif|jxl|ico|cur|bmp|tiff?|heic|heif|apng)(\\?.*)?$/i.test(icon)) {\n return html `<img class=\"${className}\" src=\"${icon}\" alt=\"\" part=\"icon\" />`;\n }\n // Default: text content (emoji, font icon ligature names)\n // All content is escaped - no HTML injection possible\n // Detect ligature icon names (lowercase words with underscores, e.g. \"search\", \"check_circle\")\n // vs emoji/other text — apply --snice-icon-font (defaults to Material Symbols Outlined)\n if (/^[a-z][a-z0-9_]*$/.test(icon)) {\n return html `<span class=\"${className} snice-icon-ligature\" style=\"font-family:var(--snice-icon-font,'Material Symbols Outlined'),sans-serif\" part=\"icon\">${icon}</span>`;\n }\n return html `<span class=\"${className}\" part=\"icon\">${icon}</span>`;\n}\n/**\n * Fallback accent hues (muted/business tones). Used when CSS vars haven't\n * been applied (test environments, SSR) or when the 8 accent tokens have\n * been stripped. Keep in lockstep with `theme.css` --snice-color-accent-1..8.\n */\nconst FALLBACK_ACCENTS = [\n 'hsl(214 55% 48%)', 'hsl(27 62% 50%)', 'hsl(160 40% 40%)', 'hsl(275 32% 52%)',\n 'hsl(42 62% 48%)', 'hsl(340 42% 55%)', 'hsl(110 32% 42%)', 'hsl(195 45% 46%)',\n];\n/**\n * Returns the 8-slot accent palette resolved against the current document's\n * CSS variables, with in-process fallback for non-browser contexts. Data-vis\n * components call this instead of hard-coding color arrays so themes flow\n * through automatically.\n *\n * The returned strings are safe for `canvas.fillStyle`, `svg fill`, or\n * inline `style` — they're either a `hsl(...)` literal or whatever the\n * consumer set as `--snice-color-accent-N`.\n */\nfunction getAccentPalette(root) {\n if (typeof getComputedStyle !== 'function')\n return FALLBACK_ACCENTS;\n const target = root ?? document.documentElement;\n const cs = getComputedStyle(target);\n return FALLBACK_ACCENTS.map((fallback, i) => {\n const v = cs.getPropertyValue(`--snice-color-accent-${i + 1}`).trim();\n return v || fallback;\n });\n}\n/**\n * Parses a CSS color string into sRGB components in [0,1]. Handles `rgb()`,\n * `rgba()`, `hsl()`, `hsla()`, and `#hex`. Returns null if unparseable.\n */\nfunction parseCssColor(value) {\n if (!value)\n return null;\n const s = value.trim();\n // Hex: #RGB #RRGGBB #RGBA #RRGGBBAA\n if (s[0] === '#') {\n const hex = s.slice(1);\n const norm = hex.length === 3 || hex.length === 4\n ? hex.slice(0, 3).split('').map(c => c + c).join('')\n : hex.slice(0, 6);\n if (norm.length !== 6)\n return null;\n const n = parseInt(norm, 16);\n return [((n >> 16) & 255) / 255, ((n >> 8) & 255) / 255, (n & 255) / 255];\n }\n // rgb() / rgba()\n const rgbMatch = s.match(/^rgba?\\(\\s*([\\d.]+)[,\\s]+([\\d.]+)[,\\s]+([\\d.]+)/i);\n if (rgbMatch) {\n return [+rgbMatch[1] / 255, +rgbMatch[2] / 255, +rgbMatch[3] / 255];\n }\n // hsl() / hsla() — quick conversion via an offscreen element for accuracy\n // (skip manual HSL→RGB to keep this helper small; browsers will resolve\n // any hsl() via getComputedStyle on the element anyway).\n if (/^hsla?\\(/i.test(s) && typeof document !== 'undefined') {\n const probe = document.createElement('span');\n probe.style.color = s;\n document.body.appendChild(probe);\n const resolved = getComputedStyle(probe).color;\n probe.remove();\n return parseCssColor(resolved);\n }\n return null;\n}\n/**\n * Relative luminance per WCAG 2.x, input in sRGB [0,1].\n */\nfunction luminance(rgb) {\n const lin = rgb.map(c => c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4));\n return 0.2126 * lin[0] + 0.7152 * lin[1] + 0.0722 * lin[2];\n}\n/**\n * Picks a readable text color for the given `bg`, choosing between the\n * theme's existing text tokens. Light bg → `--snice-color-text` (dark text);\n * dark bg → `--snice-color-text-inverse` (light text). Falls back to inverse\n * for unparseable bg (safe default for colored fills).\n *\n * Used by badge/chip (and anything else pairing a colored fill with a label)\n * so the text stays legible regardless of theme — without hardcoding #fff.\n */\nfunction pickContrastColor(bg) {\n const rgb = parseCssColor(bg);\n if (!rgb)\n return 'var(--snice-color-text-inverse)';\n // Threshold 0.55 keeps saturated blues/greens (luminance ~0.2) using the\n // inverse (light) text, and pastels/lightened fills (> 0.55) using the\n // main text token (dark).\n return luminance(rgb) > 0.55\n ? 'var(--snice-color-text)'\n : 'var(--snice-color-text-inverse)';\n}\nconst themeListeners = new Set();\nlet themeObserver = null;\nfunction onThemeChange(fn) {\n if (typeof document === 'undefined')\n return () => { };\n themeListeners.add(fn);\n if (!themeObserver) {\n themeObserver = new MutationObserver(() => {\n for (const listener of themeListeners) {\n try {\n listener();\n }\n catch { }\n }\n });\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-theme', 'class', 'data-theme-variant'],\n });\n }\n return () => {\n themeListeners.delete(fn);\n if (themeListeners.size === 0 && themeObserver) {\n themeObserver.disconnect();\n themeObserver = null;\n }\n };\n}\n\nexport { getAccentPalette, onThemeChange, pickContrastColor, renderIcon };\n//# sourceMappingURL=utils.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, query, styles, render, css, html } from 'snice';\nimport { getAccentPalette } from '../utils.js';\n\nvar chartStyles = \":host{display:block;width:100%;height:400px;position:relative;font-family:var(--font-family, system-ui, -apple-system, sans-serif)}.chart-container{width:100%;height:100%;position:relative;display:flex;flex-direction:column}.chart-canvas{flex:1;position:relative;overflow:hidden}svg{width:100%;height:100%}.chart-legend{display:flex;gap:var(--snice-spacing-md,1rem);padding:var(--snice-spacing-sm,.75rem);flex-wrap:wrap}.chart-legend.legend-top{order:-1}.chart-legend.legend-bottom{order:1}.chart-legend.legend-left{flex-direction:column;position:absolute;left:0;top:50%;transform:translateY(-50%)}.chart-legend.legend-right{flex-direction:column;position:absolute;right:0;top:50%;transform:translateY(-50%)}.legend-item{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);cursor:pointer;user-select:none;transition:opacity .2s}.legend-item:hover{opacity:.8}.legend-item.hidden{opacity:.5;text-decoration:line-through}.legend-color{width:1rem;height:1rem;border-radius:var(--snice-border-radius-sm,.125rem)}.legend-label{font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text)}.chart-tooltip{position:absolute;background:var(--tooltip-bg,hsl(0 0% 0% / .9));color:var(--tooltip-color,hsl(0 0% 100%));padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--snice-font-size-xs, .75rem);pointer-events:none;white-space:nowrap;z-index:1000;opacity:0;transition:opacity .2s}.chart-tooltip.visible{opacity:1}.axis-label{font-size:var(--snice-font-size-xs, .75rem);fill:var(--snice-color-text-secondary)}.axis-line{stroke:var(--snice-color-text-secondary);stroke-width:1}.grid-line{stroke:var(--snice-color-border);stroke-width:1;stroke-dasharray:2,2}.data-point{transition:r .2s,opacity .2s}.data-point:hover{r:6;cursor:pointer}.chart-bar,.chart-path{transition:opacity .2s}.chart-slice{transition:opacity .2s;cursor:pointer}.chart-slice:hover{opacity:.8}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes scaleIn{from{transform:scale(0)}to{transform:scale(1)}}.animated .chart-bar,.animated .chart-path,.animated .chart-slice,.animated .data-point{animation:.5s ease-out fadeIn}.animated .chart-slice{transform-origin:center;animation:.5s ease-out scaleIn}\";\n\nconst DEFAULT_OPTIONS = {\n responsive: true,\n maintainAspectRatio: false,\n legend: { position: 'top', clickable: true },\n tooltip: { trigger: 'hover' },\n animation: { enabled: true, duration: 500, easing: 'ease-out' },\n xAxis: { grid: true },\n yAxis: { grid: true }\n};\n// Resolved from --snice-color-accent-1..8 at call time so theme changes flow\n// through. 8 slots match the accent palette exactly.\nconst getDefaultColors = () => getAccentPalette();\nlet SniceChart = (() => {\n let _classDecorators = [element('snice-chart')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _type_decorators;\n let _type_initializers = [];\n let _type_extraInitializers = [];\n let _datasets_decorators;\n let _datasets_initializers = [];\n let _datasets_extraInitializers = [];\n let _labels_decorators;\n let _labels_initializers = [];\n let _labels_extraInitializers = [];\n let _options_decorators;\n let _options_initializers = [];\n let _options_extraInitializers = [];\n let _width_decorators;\n let _width_initializers = [];\n let _width_extraInitializers = [];\n let _height_decorators;\n let _height_initializers = [];\n let _height_extraInitializers = [];\n let _renderTrigger_decorators;\n let _renderTrigger_initializers = [];\n let _renderTrigger_extraInitializers = [];\n let _canvasElement_decorators;\n let _canvasElement_initializers = [];\n let _canvasElement_extraInitializers = [];\n let _tooltipVisible_decorators;\n let _tooltipVisible_initializers = [];\n let _tooltipVisible_extraInitializers = [];\n let _tooltipContent_decorators;\n let _tooltipContent_initializers = [];\n let _tooltipContent_extraInitializers = [];\n let _tooltipX_decorators;\n let _tooltipX_initializers = [];\n let _tooltipX_extraInitializers = [];\n let _tooltipY_decorators;\n let _tooltipY_initializers = [];\n let _tooltipY_extraInitializers = [];\n let _styles_decorators;\n let _render_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.type = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _type_initializers, 'line'));\n this.datasets = (__runInitializers(this, _type_extraInitializers), __runInitializers(this, _datasets_initializers, []));\n this.labels = (__runInitializers(this, _datasets_extraInitializers), __runInitializers(this, _labels_initializers, []));\n this.options = (__runInitializers(this, _labels_extraInitializers), __runInitializers(this, _options_initializers, DEFAULT_OPTIONS));\n this.width = (__runInitializers(this, _options_extraInitializers), __runInitializers(this, _width_initializers, 0));\n this.height = (__runInitializers(this, _width_extraInitializers), __runInitializers(this, _height_initializers, 0));\n this.hiddenDatasets = (__runInitializers(this, _height_extraInitializers), new Set());\n this.renderTrigger = __runInitializers(this, _renderTrigger_initializers, 0);\n this.canvasElement = (__runInitializers(this, _renderTrigger_extraInitializers), __runInitializers(this, _canvasElement_initializers, void 0));\n this.tooltipVisible = (__runInitializers(this, _canvasElement_extraInitializers), __runInitializers(this, _tooltipVisible_initializers, false));\n this.tooltipContent = (__runInitializers(this, _tooltipVisible_extraInitializers), __runInitializers(this, _tooltipContent_initializers, ''));\n this.tooltipX = (__runInitializers(this, _tooltipContent_extraInitializers), __runInitializers(this, _tooltipX_initializers, 0));\n this.tooltipY = (__runInitializers(this, _tooltipX_extraInitializers), __runInitializers(this, _tooltipY_initializers, 0));\n this.canvas = (__runInitializers(this, _tooltipY_extraInitializers), null);\n this.ctx = null;\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _type_decorators = [property({ type: String })];\n _datasets_decorators = [property({ type: Array, attribute: false })];\n _labels_decorators = [property({ type: Array, attribute: false })];\n _options_decorators = [property({ type: Object, attribute: false })];\n _width_decorators = [property({ type: Number })];\n _height_decorators = [property({ type: Number })];\n _renderTrigger_decorators = [property({ type: Number, attribute: false })];\n _canvasElement_decorators = [query('.chart-render-canvas')];\n _tooltipVisible_decorators = [property({ type: Boolean, attribute: false })];\n _tooltipContent_decorators = [property({ type: String, attribute: false })];\n _tooltipX_decorators = [property({ type: Number, attribute: false })];\n _tooltipY_decorators = [property({ type: Number, attribute: false })];\n _styles_decorators = [styles()];\n _render_decorators = [render()];\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _type_decorators, { kind: \"field\", name: \"type\", static: false, private: false, access: { has: obj => \"type\" in obj, get: obj => obj.type, set: (obj, value) => { obj.type = value; } }, metadata: _metadata }, _type_initializers, _type_extraInitializers);\n __esDecorate(null, null, _datasets_decorators, { kind: \"field\", name: \"datasets\", static: false, private: false, access: { has: obj => \"datasets\" in obj, get: obj => obj.datasets, set: (obj, value) => { obj.datasets = value; } }, metadata: _metadata }, _datasets_initializers, _datasets_extraInitializers);\n __esDecorate(null, null, _labels_decorators, { kind: \"field\", name: \"labels\", static: false, private: false, access: { has: obj => \"labels\" in obj, get: obj => obj.labels, set: (obj, value) => { obj.labels = value; } }, metadata: _metadata }, _labels_initializers, _labels_extraInitializers);\n __esDecorate(null, null, _options_decorators, { kind: \"field\", name: \"options\", static: false, private: false, access: { has: obj => \"options\" in obj, get: obj => obj.options, set: (obj, value) => { obj.options = value; } }, metadata: _metadata }, _options_initializers, _options_extraInitializers);\n __esDecorate(null, null, _width_decorators, { kind: \"field\", name: \"width\", static: false, private: false, access: { has: obj => \"width\" in obj, get: obj => obj.width, set: (obj, value) => { obj.width = value; } }, metadata: _metadata }, _width_initializers, _width_extraInitializers);\n __esDecorate(null, null, _height_decorators, { kind: \"field\", name: \"height\", static: false, private: false, access: { has: obj => \"height\" in obj, get: obj => obj.height, set: (obj, value) => { obj.height = value; } }, metadata: _metadata }, _height_initializers, _height_extraInitializers);\n __esDecorate(null, null, _renderTrigger_decorators, { kind: \"field\", name: \"renderTrigger\", static: false, private: false, access: { has: obj => \"renderTrigger\" in obj, get: obj => obj.renderTrigger, set: (obj, value) => { obj.renderTrigger = value; } }, metadata: _metadata }, _renderTrigger_initializers, _renderTrigger_extraInitializers);\n __esDecorate(null, null, _canvasElement_decorators, { kind: \"field\", name: \"canvasElement\", static: false, private: false, access: { has: obj => \"canvasElement\" in obj, get: obj => obj.canvasElement, set: (obj, value) => { obj.canvasElement = value; } }, metadata: _metadata }, _canvasElement_initializers, _canvasElement_extraInitializers);\n __esDecorate(null, null, _tooltipVisible_decorators, { kind: \"field\", name: \"tooltipVisible\", static: false, private: false, access: { has: obj => \"tooltipVisible\" in obj, get: obj => obj.tooltipVisible, set: (obj, value) => { obj.tooltipVisible = value; } }, metadata: _metadata }, _tooltipVisible_initializers, _tooltipVisible_extraInitializers);\n __esDecorate(null, null, _tooltipContent_decorators, { kind: \"field\", name: \"tooltipContent\", static: false, private: false, access: { has: obj => \"tooltipContent\" in obj, get: obj => obj.tooltipContent, set: (obj, value) => { obj.tooltipContent = value; } }, metadata: _metadata }, _tooltipContent_initializers, _tooltipContent_extraInitializers);\n __esDecorate(null, null, _tooltipX_decorators, { kind: \"field\", name: \"tooltipX\", static: false, private: false, access: { has: obj => \"tooltipX\" in obj, get: obj => obj.tooltipX, set: (obj, value) => { obj.tooltipX = value; } }, metadata: _metadata }, _tooltipX_initializers, _tooltipX_extraInitializers);\n __esDecorate(null, null, _tooltipY_decorators, { kind: \"field\", name: \"tooltipY\", static: false, private: false, access: { has: obj => \"tooltipY\" in obj, get: obj => obj.tooltipY, set: (obj, value) => { obj.tooltipY = value; } }, metadata: _metadata }, _tooltipY_initializers, _tooltipY_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n chartSummary() {\n const kinds = {\n line: 'Line chart', bar: 'Bar chart', area: 'Area chart',\n pie: 'Pie chart', radar: 'Radar chart', scatter: 'Scatter plot'\n };\n const base = kinds[this.type] || 'Chart';\n const dsCount = this.datasets.length;\n const ptCount = this.datasets.reduce((n, d) => n + (d.data?.length || 0), 0);\n return `${base} with ${dsCount} dataset${dsCount === 1 ? '' : 's'} and ${ptCount} data point${ptCount === 1 ? '' : 's'}`;\n }\n styles() {\n return css /*css*/ `${chartStyles}`;\n }\n render() {\n const legendPosition = this.options.legend?.position || 'top';\n const animated = this.options.animation?.enabled !== false;\n // Draw chart after render\n requestAnimationFrame(() => this.initAndDrawChart());\n return html /*html*/ `\n <div class=\"chart-container ${animated ? 'animated' : ''}\" part=\"base\">\n ${legendPosition !== 'none' ? this.renderLegend() : ''}\n <div class=\"chart-canvas\" part=\"canvas\">\n <canvas class=\"chart-render-canvas\" role=\"img\" aria-label=\"${this.chartSummary()}\"></canvas>\n </div>\n <div class=\"chart-tooltip ${this.tooltipVisible ? 'visible' : ''}\"\n style=\"left: ${this.tooltipX}px; top: ${this.tooltipY}px;\">\n ${this.tooltipContent}\n </div>\n </div>\n `;\n }\n renderLegend() {\n const position = this.options.legend?.position || 'top';\n return html /*html*/ `\n <div class=\"chart-legend legend-${position}\" part=\"legend\">\n ${this.datasets.map((dataset, index) => html `\n <div class=\"legend-item ${this.hiddenDatasets.has(index) ? 'hidden' : ''}\"\n @click=${() => this.handleLegendClick(index)}>\n <div class=\"legend-color\" style=\"background: ${this.getDatasetColor(dataset, index)};\"></div>\n <span class=\"legend-label\">${dataset.label}</span>\n </div>\n `)}\n </div>\n `;\n }\n initAndDrawChart() {\n this.canvas = this.canvasElement || null;\n if (!this.canvas)\n return;\n const width = this.width || this.offsetWidth || 600;\n const height = this.height || this.offsetHeight || 400;\n this.canvas.width = width;\n this.canvas.height = height;\n this.canvas.style.width = `${width}px`;\n this.canvas.style.height = `${height}px`;\n try {\n this.ctx = this.canvas.getContext('2d');\n }\n catch (e) {\n // Canvas not supported in test environment\n return;\n }\n if (!this.ctx || !this.datasets.length)\n return;\n // Clear canvas\n this.ctx.clearRect(0, 0, width, height);\n const chartType = this.type;\n switch (chartType) {\n case 'pie':\n case 'donut':\n this.drawPieChart(width, height, chartType === 'donut');\n break;\n case 'radar':\n this.drawRadarChart(width, height);\n break;\n default:\n this.drawCartesianChart(width, height);\n }\n }\n drawCartesianChart(width, height) {\n if (!this.ctx)\n return;\n const padding = { top: 40, right: 40, bottom: 60, left: 60 };\n const chartWidth = width - padding.left - padding.right;\n const chartHeight = height - padding.top - padding.bottom;\n const { min: yMin, max: yMax } = this.getYAxisRange();\n const xCount = this.getXAxisCount();\n // Draw grid\n this.drawGrid(padding, chartWidth, chartHeight, yMin, yMax, xCount);\n // Draw axes\n this.drawAxes(padding, chartWidth, chartHeight, yMin, yMax, xCount);\n // Draw datasets\n this.ctx.save();\n this.ctx.translate(padding.left, padding.top);\n this.datasets.forEach((dataset, index) => {\n if (this.hiddenDatasets.has(index))\n return;\n this.drawDataset(dataset, index, chartWidth, chartHeight, yMin, yMax, xCount);\n });\n this.ctx.restore();\n }\n drawGrid(padding, chartWidth, chartHeight, yMin, yMax, xCount) {\n if (!this.ctx || (!this.options.xAxis?.grid && !this.options.yAxis?.grid))\n return;\n this.ctx.strokeStyle = '#e0e0e0';\n this.ctx.lineWidth = 1;\n const yTicks = this.options.yAxis?.ticks || 5;\n if (this.options.yAxis?.grid) {\n for (let i = 0; i <= yTicks; i++) {\n const y = padding.top + (chartHeight / yTicks) * i;\n this.ctx.beginPath();\n this.ctx.moveTo(padding.left, y);\n this.ctx.lineTo(padding.left + chartWidth, y);\n this.ctx.stroke();\n }\n }\n if (this.options.xAxis?.grid) {\n const hasBarChart = this.datasets.some(d => (d.type || this.type) === 'bar');\n if (hasBarChart) {\n // Bar chart: draw grid lines at segment boundaries\n const numSegments = this.labels.length || xCount;\n const segmentWidth = chartWidth / numSegments;\n for (let i = 0; i <= numSegments; i++) {\n const x = padding.left + segmentWidth * i;\n this.ctx.beginPath();\n this.ctx.moveTo(x, padding.top);\n this.ctx.lineTo(x, padding.top + chartHeight);\n this.ctx.stroke();\n }\n }\n else {\n // Line/area chart: grid at data points\n for (let i = 0; i <= xCount; i++) {\n const x = padding.left + (chartWidth / xCount) * i;\n this.ctx.beginPath();\n this.ctx.moveTo(x, padding.top);\n this.ctx.lineTo(x, padding.top + chartHeight);\n this.ctx.stroke();\n }\n }\n }\n }\n drawAxes(padding, chartWidth, chartHeight, yMin, yMax, xCount) {\n if (!this.ctx)\n return;\n this.ctx.strokeStyle = '#333';\n this.ctx.lineWidth = 2;\n // Y axis\n this.ctx.beginPath();\n this.ctx.moveTo(padding.left, padding.top);\n this.ctx.lineTo(padding.left, padding.top + chartHeight);\n this.ctx.stroke();\n // X axis\n this.ctx.beginPath();\n this.ctx.moveTo(padding.left, padding.top + chartHeight);\n this.ctx.lineTo(padding.left + chartWidth, padding.top + chartHeight);\n this.ctx.stroke();\n // Y axis labels\n this.ctx.fillStyle = '#666';\n this.ctx.font = '12px sans-serif';\n this.ctx.textAlign = 'right';\n this.ctx.textBaseline = 'middle';\n const yTicks = this.options.yAxis?.ticks || 5;\n for (let i = 0; i <= yTicks; i++) {\n const value = yMax - (yMax - yMin) / yTicks * i;\n const y = padding.top + (chartHeight / yTicks) * i;\n this.ctx.fillText(value.toFixed(1), padding.left - 10, y);\n }\n // X axis labels\n this.ctx.textAlign = 'center';\n this.ctx.textBaseline = 'top';\n const numLabels = this.labels.length;\n if (numLabels > 0) {\n // Check if we're drawing a bar chart\n const hasBarChart = this.datasets.some(d => (d.type || this.type) === 'bar');\n if (hasBarChart) {\n // Bar chart: center labels in equal segments\n const segmentWidth = chartWidth / numLabels;\n for (let i = 0; i < numLabels; i++) {\n const x = padding.left + segmentWidth * i + segmentWidth / 2;\n const label = this.labels[i] || i.toString();\n this.ctx.fillText(label, x, padding.top + chartHeight + 10);\n }\n }\n else {\n // Line/area chart: spread labels edge-to-edge\n const spacing = chartWidth / (numLabels - 1 || 1);\n for (let i = 0; i < numLabels; i++) {\n const x = padding.left + spacing * i;\n const label = this.labels[i] || i.toString();\n this.ctx.fillText(label, x, padding.top + chartHeight + 10);\n }\n }\n }\n }\n drawDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount) {\n const chartType = dataset.type || this.type;\n switch (chartType) {\n case 'line':\n this.drawLineDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n break;\n case 'area':\n this.drawAreaDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n break;\n case 'bar':\n this.drawBarDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount);\n break;\n case 'scatter':\n this.drawScatterDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n break;\n }\n }\n drawLineDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n if (!this.ctx)\n return;\n const points = this.getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax);\n const color = this.getDatasetColor(dataset, datasetIndex);\n const borderWidth = dataset.borderWidth || 2;\n const pointRadius = dataset.pointRadius !== undefined ? dataset.pointRadius : 4;\n if (points.length === 0)\n return;\n // Draw line\n this.ctx.strokeStyle = dataset.borderColor || color;\n this.ctx.lineWidth = borderWidth;\n this.ctx.beginPath();\n this.ctx.moveTo(points[0].x, points[0].y);\n points.slice(1).forEach(p => this.ctx.lineTo(p.x, p.y));\n this.ctx.stroke();\n // Draw points\n this.ctx.fillStyle = color;\n points.forEach(p => {\n this.ctx.beginPath();\n this.ctx.arc(p.x, p.y, pointRadius, 0, Math.PI * 2);\n this.ctx.fill();\n });\n }\n drawAreaDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n if (!this.ctx)\n return;\n const points = this.getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax);\n const color = this.getDatasetColor(dataset, datasetIndex);\n if (points.length === 0)\n return;\n // Draw filled area\n const bgColor = dataset.backgroundColor;\n this.ctx.fillStyle = (Array.isArray(bgColor) ? bgColor[0] : bgColor) || color;\n this.ctx.globalAlpha = 0.3;\n this.ctx.beginPath();\n this.ctx.moveTo(points[0].x, chartHeight);\n this.ctx.lineTo(points[0].x, points[0].y);\n points.slice(1).forEach(p => this.ctx.lineTo(p.x, p.y));\n this.ctx.lineTo(points[points.length - 1].x, chartHeight);\n this.ctx.closePath();\n this.ctx.fill();\n this.ctx.globalAlpha = 1;\n // Draw line\n this.drawLineDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n drawBarDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount) {\n if (!this.ctx)\n return;\n const color = this.getDatasetColor(dataset, datasetIndex);\n const visibleCount = this.datasets.filter((_, i) => !this.hiddenDatasets.has(i)).length;\n const visibleDatasets = this.datasets.filter((_, i) => !this.hiddenDatasets.has(i));\n const datasetOffset = visibleDatasets.indexOf(dataset);\n const numBars = dataset.data.length;\n // For bar charts, divide width into equal segments\n const segmentWidth = chartWidth / numBars;\n const maxBarGroupWidth = segmentWidth * 0.8;\n const singleBarWidth = maxBarGroupWidth / visibleCount;\n dataset.data.forEach((value, index) => {\n const y = typeof value === 'number' ? value : value.y || 0;\n const barHeight = ((y - yMin) / (yMax - yMin)) * chartHeight;\n // Center of this bar's segment\n const segmentCenter = segmentWidth * index + segmentWidth / 2;\n // For single dataset, center the bar. For multiple, offset by dataset position\n let x = segmentCenter - singleBarWidth / 2 + (visibleCount > 1 ? datasetOffset * singleBarWidth - maxBarGroupWidth / 2 + singleBarWidth / 2 : 0);\n if (x < 0)\n x = 0;\n if (x + singleBarWidth > chartWidth)\n x = chartWidth - singleBarWidth;\n const barY = chartHeight - barHeight;\n this.ctx.fillStyle = Array.isArray(dataset.backgroundColor)\n ? dataset.backgroundColor[index % dataset.backgroundColor.length]\n : color;\n this.ctx.fillRect(x, barY, singleBarWidth, barHeight);\n });\n }\n drawScatterDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n this.drawLineDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n drawPieChart(width, height, isDonut) {\n if (!this.ctx || !this.datasets[0])\n return;\n const centerX = width / 2;\n const centerY = height / 2;\n const radius = Math.min(width, height) / 2 - 40;\n const innerRadius = isDonut ? radius * 0.6 : 0;\n const dataset = this.datasets[0];\n const total = dataset.data.reduce((sum, val) => {\n const numVal = typeof val === 'number' ? val : 0;\n return sum + numVal;\n }, 0);\n let currentAngle = -Math.PI / 2;\n dataset.data.forEach((value, index) => {\n const val = typeof value === 'number' ? value : 0;\n const angle = total > 0 ? (val / total) * 2 * Math.PI : 0;\n const endAngle = currentAngle + angle;\n const color = Array.isArray(dataset.backgroundColor)\n ? dataset.backgroundColor[index % dataset.backgroundColor.length]\n : getDefaultColors()[index % getDefaultColors().length];\n this.ctx.fillStyle = color;\n this.ctx.beginPath();\n this.ctx.arc(centerX, centerY, radius, currentAngle, endAngle);\n if (isDonut) {\n this.ctx.arc(centerX, centerY, innerRadius, endAngle, currentAngle, true);\n }\n else {\n this.ctx.lineTo(centerX, centerY);\n }\n this.ctx.closePath();\n this.ctx.fill();\n currentAngle = endAngle;\n });\n }\n drawRadarChart(width, height) {\n if (!this.ctx)\n return;\n const centerX = width / 2;\n const centerY = height / 2;\n const radius = Math.min(width, height) / 2 - 60;\n const numPoints = this.labels.length || this.datasets[0]?.data.length || 3;\n const angleStep = (2 * Math.PI) / numPoints;\n const maxValue = Math.max(...this.datasets.flatMap(d => d.data.map(v => typeof v === 'number' ? v : 0)));\n // Draw grid\n this.ctx.strokeStyle = '#e0e0e0';\n [0.2, 0.4, 0.6, 0.8, 1].forEach(ratio => {\n const r = radius * ratio;\n this.ctx.beginPath();\n for (let i = 0; i <= numPoints; i++) {\n const angle = i * angleStep - Math.PI / 2;\n const x = centerX + Math.cos(angle) * r;\n const y = centerY + Math.sin(angle) * r;\n if (i === 0) {\n this.ctx.moveTo(x, y);\n }\n else {\n this.ctx.lineTo(x, y);\n }\n }\n this.ctx.closePath();\n this.ctx.stroke();\n });\n // Draw axes\n for (let i = 0; i < numPoints; i++) {\n const angle = i * angleStep - Math.PI / 2;\n const x = centerX + Math.cos(angle) * radius;\n const y = centerY + Math.sin(angle) * radius;\n this.ctx.beginPath();\n this.ctx.moveTo(centerX, centerY);\n this.ctx.lineTo(x, y);\n this.ctx.stroke();\n // Labels\n this.ctx.fillStyle = '#666';\n this.ctx.font = '12px sans-serif';\n this.ctx.textAlign = 'center';\n this.ctx.fillText(this.labels[i] || i.toString(), x, y);\n }\n // Draw data\n this.datasets.forEach((dataset, datasetIndex) => {\n if (this.hiddenDatasets.has(datasetIndex))\n return;\n const color = this.getDatasetColor(dataset, datasetIndex);\n this.ctx.fillStyle = color;\n this.ctx.globalAlpha = 0.3;\n this.ctx.beginPath();\n dataset.data.forEach((value, index) => {\n const val = typeof value === 'number' ? value : 0;\n const angle = index * angleStep - Math.PI / 2;\n const r = (val / maxValue) * radius;\n const x = centerX + Math.cos(angle) * r;\n const y = centerY + Math.sin(angle) * r;\n if (index === 0) {\n this.ctx.moveTo(x, y);\n }\n else {\n this.ctx.lineTo(x, y);\n }\n });\n this.ctx.closePath();\n this.ctx.fill();\n this.ctx.globalAlpha = 1;\n this.ctx.strokeStyle = dataset.borderColor || color;\n this.ctx.lineWidth = dataset.borderWidth || 2;\n this.ctx.stroke();\n });\n }\n renderCartesianChartSVG() {\n const padding = { top: 40, right: 40, bottom: 60, left: 60 };\n const width = this.width || this.offsetWidth || 600;\n const height = this.height || this.offsetHeight || 400;\n const chartWidth = width - padding.left - padding.right;\n const chartHeight = height - padding.top - padding.bottom;\n const { min: yMin, max: yMax } = this.getYAxisRange();\n const xCount = this.getXAxisCount();\n const gridSVG = this.renderCartesianGridSVG(padding, chartWidth, chartHeight, yMin, yMax, xCount);\n const axesSVG = this.renderCartesianAxesSVG(padding, chartWidth, chartHeight, yMin, yMax, xCount);\n const datasetsSVG = this.datasets\n .map((dataset, index) => this.hiddenDatasets.has(index) ? '' :\n this.renderDatasetSVG(dataset, index, chartWidth, chartHeight, yMin, yMax, xCount))\n .join('');\n return `\n <svg width=\"${width}\" height=\"${height}\" viewBox=\"0 0 ${width} ${height}\" role=\"img\" aria-label=\"${this.chartSummary()}\">\n <title>${this.chartSummary()}</title>\n ${gridSVG}\n ${axesSVG}\n <g transform=\"translate(${padding.left}, ${padding.top})\">\n ${datasetsSVG}\n </g>\n </svg>\n `;\n }\n renderCartesianGridSVG(padding, chartWidth, chartHeight, yMin, yMax, xCount) {\n if (!this.options.xAxis?.grid && !this.options.yAxis?.grid)\n return '';\n const yTicks = this.options.yAxis?.ticks || 5;\n let gridSVG = '';\n if (this.options.yAxis?.grid) {\n for (let i = 0; i <= yTicks; i++) {\n const y = padding.top + (chartHeight / yTicks) * i;\n gridSVG += `<line class=\"grid-line\" x1=\"${padding.left}\" y1=\"${y}\" x2=\"${padding.left + chartWidth}\" y2=\"${y}\" stroke=\"#e0e0e0\" />`;\n }\n }\n if (this.options.xAxis?.grid) {\n for (let i = 0; i <= xCount; i++) {\n const x = padding.left + (chartWidth / xCount) * i;\n gridSVG += `<line class=\"grid-line\" x1=\"${x}\" y1=\"${padding.top}\" x2=\"${x}\" y2=\"${padding.top + chartHeight}\" stroke=\"#e0e0e0\" />`;\n }\n }\n return gridSVG;\n }\n renderCartesianAxesSVG(padding, chartWidth, chartHeight, yMin, yMax, xCount) {\n const yTicks = this.options.yAxis?.ticks || 5;\n let axesSVG = '';\n // Y axis\n axesSVG += `<line class=\"axis-line\" x1=\"${padding.left}\" y1=\"${padding.top}\" x2=\"${padding.left}\" y2=\"${padding.top + chartHeight}\" stroke=\"#333\" />`;\n // Y axis labels\n for (let i = 0; i <= yTicks; i++) {\n const value = yMax - (yMax - yMin) / yTicks * i;\n const y = padding.top + (chartHeight / yTicks) * i;\n axesSVG += `<text class=\"axis-label\" x=\"${padding.left - 10}\" y=\"${y}\" text-anchor=\"end\" alignment-baseline=\"middle\" fill=\"#666\" font-size=\"12\">${value.toFixed(1)}</text>`;\n }\n // X axis\n axesSVG += `<line class=\"axis-line\" x1=\"${padding.left}\" y1=\"${padding.top + chartHeight}\" x2=\"${padding.left + chartWidth}\" y2=\"${padding.top + chartHeight}\" stroke=\"#333\" />`;\n // X axis labels\n for (let i = 0; i <= xCount; i++) {\n const x = padding.left + (chartWidth / xCount) * i;\n const label = this.labels[i] || i.toString();\n axesSVG += `<text class=\"axis-label\" x=\"${x}\" y=\"${padding.top + chartHeight + 20}\" text-anchor=\"middle\" fill=\"#666\" font-size=\"12\">${label}</text>`;\n }\n return axesSVG;\n }\n renderDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount) {\n const chartType = dataset.type || this.type;\n switch (chartType) {\n case 'line':\n return this.renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n case 'area':\n return this.renderAreaDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n case 'bar':\n return this.renderBarDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount);\n case 'scatter':\n return this.renderScatterDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n case 'bubble':\n return this.renderBubbleDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n default:\n return this.renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n }\n renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n const points = this.getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax);\n const color = this.getDatasetColor(dataset, datasetIndex);\n const borderWidth = dataset.borderWidth || 2;\n const pointRadius = dataset.pointRadius !== undefined ? dataset.pointRadius : 4;\n if (points.length === 0)\n return '';\n const pathD = `M ${points.map(p => `${p.x} ${p.y}`).join(' L ')}`;\n const circlesSVG = points.map(p => `<circle cx=\"${p.x}\" cy=\"${p.y}\" r=\"${pointRadius}\" fill=\"${color}\" />`).join('');\n return `<path d=\"${pathD}\" fill=\"none\" stroke=\"${dataset.borderColor || color}\" stroke-width=\"${borderWidth}\" />${circlesSVG}`;\n }\n renderAreaDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n return this.renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n renderBarDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount) {\n const color = this.getDatasetColor(dataset, datasetIndex);\n const barWidth = (chartWidth / xCount) * 0.8 / this.datasets.filter((_, i) => !this.hiddenDatasets.has(i)).length;\n return dataset.data.map((value, index) => {\n const y = typeof value === 'number' ? value : value.y || 0;\n const barHeight = ((y - yMin) / (yMax - yMin)) * chartHeight;\n const x = (chartWidth / xCount) * index;\n const barY = chartHeight - barHeight;\n return `<rect x=\"${x}\" y=\"${barY}\" width=\"${barWidth}\" height=\"${barHeight}\" fill=\"${color}\" />`;\n }).join('');\n }\n renderScatterDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n return this.renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n renderBubbleDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n return this.renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n renderPieChartSVG(isDonut) {\n return '<svg width=\"600\" height=\"400\"><text x=\"300\" y=\"200\" text-anchor=\"middle\">Pie chart placeholder</text></svg>';\n }\n renderRadarChartSVG() {\n return '<svg width=\"600\" height=\"400\"><text x=\"300\" y=\"200\" text-anchor=\"middle\">Radar chart placeholder</text></svg>';\n }\n renderLineDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n const points = this.getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax);\n const color = this.getDatasetColor(dataset, datasetIndex);\n const borderWidth = dataset.borderWidth || 2;\n const pointRadius = dataset.pointRadius !== undefined ? dataset.pointRadius : 4;\n const tension = dataset.tension || 0;\n let pathD = '';\n if (points.length > 0) {\n pathD = `M ${points[0].x} ${points[0].y}`;\n if (tension > 0) {\n // Smooth curve\n for (let i = 1; i < points.length; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const cpx = prev.x + (curr.x - prev.x) * 0.5;\n pathD += ` Q ${cpx} ${prev.y}, ${cpx} ${curr.y}`;\n pathD += ` Q ${cpx} ${curr.y}, ${curr.x} ${curr.y}`;\n }\n }\n else {\n // Straight lines\n points.slice(1).forEach(p => {\n pathD += ` L ${p.x} ${p.y}`;\n });\n }\n }\n return html /*html*/ `\n <path class=\"chart-path\"\n d=\"${pathD}\"\n fill=\"none\"\n stroke=\"${dataset.borderColor || color}\"\n stroke-width=\"${borderWidth}\" />\n ${points.map((p, i) => html `\n <circle class=\"data-point\"\n cx=\"${p.x}\"\n cy=\"${p.y}\"\n r=\"${pointRadius}\"\n fill=\"${color}\"\n @mouseenter=${(e) => this.showTooltip(dataset, i, e)}\n @mouseleave=${() => this.hideTooltip()} />\n `)}\n `;\n }\n renderAreaDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n const points = this.getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax);\n const color = this.getDatasetColor(dataset, datasetIndex);\n const borderWidth = dataset.borderWidth || 2;\n if (points.length === 0)\n return '';\n let pathD = `M ${points[0].x} ${chartHeight}`;\n pathD += ` L ${points[0].x} ${points[0].y}`;\n points.slice(1).forEach(p => {\n pathD += ` L ${p.x} ${p.y}`;\n });\n pathD += ` L ${points[points.length - 1].x} ${chartHeight} Z`;\n const lineD = points.map((p, i) => i === 0 ? `M ${p.x} ${p.y}` : `L ${p.x} ${p.y}`).join(' ');\n return html /*html*/ `\n <path class=\"chart-path\"\n d=\"${pathD}\"\n fill=\"${dataset.backgroundColor || color}\"\n fill-opacity=\"0.3\" />\n <path class=\"chart-path\"\n d=\"${lineD}\"\n fill=\"none\"\n stroke=\"${dataset.borderColor || color}\"\n stroke-width=\"${borderWidth}\" />\n `;\n }\n renderBarDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount) {\n const color = this.getDatasetColor(dataset, datasetIndex);\n const barWidth = (chartWidth / xCount) * 0.8 / this.datasets.filter((_, i) => !this.hiddenDatasets.has(i)).length;\n const visibleDatasets = this.datasets.filter((_, i) => !this.hiddenDatasets.has(i));\n const datasetOffset = visibleDatasets.indexOf(dataset);\n return html /*html*/ `\n ${dataset.data.map((value, index) => {\n const y = typeof value === 'number' ? value : value.y || 0;\n const barHeight = ((y - yMin) / (yMax - yMin)) * chartHeight;\n const x = (chartWidth / xCount) * index + datasetOffset * barWidth + (chartWidth / xCount) * 0.1;\n const barY = chartHeight - barHeight;\n return html /*html*/ `\n <rect class=\"chart-bar\"\n x=\"${x}\"\n y=\"${barY}\"\n width=\"${barWidth}\"\n height=\"${barHeight}\"\n fill=\"${Array.isArray(dataset.backgroundColor) ? dataset.backgroundColor[index % dataset.backgroundColor.length] : color}\"\n @mouseenter=${(e) => this.showTooltip(dataset, index, e)}\n @mouseleave=${() => this.hideTooltip()} />\n `;\n })}\n `;\n }\n renderBarChart(horizontal) {\n // Similar to renderBarDataset but with swapped axes\n return this.renderCartesianChartSVG();\n }\n renderScatterDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n const color = this.getDatasetColor(dataset, datasetIndex);\n const pointRadius = dataset.pointRadius !== undefined ? dataset.pointRadius : 4;\n return html /*html*/ `\n ${dataset.data.map((value, index) => {\n const point = typeof value === 'object' ? value : { x: index, y: value };\n const x = typeof point.x === 'number' ? (point.x / (this.getXAxisCount())) * chartWidth : 0;\n const y = chartHeight - ((point.y - yMin) / (yMax - yMin)) * chartHeight;\n return html /*html*/ `\n <circle class=\"data-point\"\n cx=\"${x}\"\n cy=\"${y}\"\n r=\"${pointRadius}\"\n fill=\"${color}\"\n @mouseenter=${(e) => this.showTooltip(dataset, index, e)}\n @mouseleave=${() => this.hideTooltip()} />\n `;\n })}\n `;\n }\n renderBubbleDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n const color = this.getDatasetColor(dataset, datasetIndex);\n const maxR = Math.max(...dataset.data.map(v => typeof v === 'object' ? v.r || 5 : 5));\n return html /*html*/ `\n ${dataset.data.map((value, index) => {\n const point = value;\n const x = typeof point.x === 'number' ? (point.x / this.getXAxisCount()) * chartWidth : 0;\n const y = chartHeight - ((point.y - yMin) / (yMax - yMin)) * chartHeight;\n const r = ((point.r || 5) / maxR) * 20;\n return html /*html*/ `\n <circle class=\"data-point\"\n cx=\"${x}\"\n cy=\"${y}\"\n r=\"${r}\"\n fill=\"${color}\"\n fill-opacity=\"0.6\"\n @mouseenter=${(e) => this.showTooltip(dataset, index, e)}\n @mouseleave=${() => this.hideTooltip()} />\n `;\n })}\n `;\n }\n renderPieChart(isDonut) {\n const width = this.width || this.offsetWidth || 600;\n const height = this.height || this.offsetHeight || 400;\n const centerX = width / 2;\n const centerY = height / 2;\n const radius = Math.min(width, height) / 2 - 40;\n const innerRadius = isDonut ? radius * 0.6 : 0;\n const dataset = this.datasets[0];\n if (!dataset)\n return html /*html*/ `<svg></svg>`;\n const total = dataset.data.reduce((sum, val) => {\n const numVal = typeof val === 'number' ? val : 0;\n return sum + numVal;\n }, 0);\n let currentAngle = -Math.PI / 2;\n return html /*html*/ `\n <svg width=\"${width}\" height=\"${height}\" viewBox=\"0 0 ${width} ${height}\" role=\"img\" aria-label=\"${this.chartSummary()}\">\n <title>${this.chartSummary()}</title>\n ${dataset.data.map((value, index) => {\n const val = typeof value === 'number' ? value : 0;\n const angle = total > 0 ? (val / total) * 2 * Math.PI : 0;\n const endAngle = currentAngle + angle;\n const x1 = centerX + Math.cos(currentAngle) * radius;\n const y1 = centerY + Math.sin(currentAngle) * radius;\n const x2 = centerX + Math.cos(endAngle) * radius;\n const y2 = centerY + Math.sin(endAngle) * radius;\n const largeArc = angle > Math.PI ? 1 : 0;\n let pathD = `M ${centerX} ${centerY} L ${x1} ${y1} A ${radius} ${radius} 0 ${largeArc} 1 ${x2} ${y2} Z`;\n if (isDonut) {\n const ix1 = centerX + Math.cos(currentAngle) * innerRadius;\n const iy1 = centerY + Math.sin(currentAngle) * innerRadius;\n const ix2 = centerX + Math.cos(endAngle) * innerRadius;\n const iy2 = centerY + Math.sin(endAngle) * innerRadius;\n pathD = `M ${x1} ${y1} A ${radius} ${radius} 0 ${largeArc} 1 ${x2} ${y2} L ${ix2} ${iy2} A ${innerRadius} ${innerRadius} 0 ${largeArc} 0 ${ix1} ${iy1} Z`;\n }\n const color = Array.isArray(dataset.backgroundColor)\n ? dataset.backgroundColor[index % dataset.backgroundColor.length]\n : getDefaultColors()[index % getDefaultColors().length];\n const result = html `\n <path class=\"chart-slice\"\n d=\"${pathD}\"\n fill=\"${color}\"\n @mouseenter=${(e) => this.showTooltip(dataset, index, e)}\n @mouseleave=${() => this.hideTooltip()} />\n `;\n currentAngle = endAngle;\n return result;\n })}\n </svg>\n `;\n }\n renderRadarChart() {\n const width = this.width || this.offsetWidth || 600;\n const height = this.height || this.offsetHeight || 400;\n const centerX = width / 2;\n const centerY = height / 2;\n const radius = Math.min(width, height) / 2 - 60;\n const numPoints = this.labels.length || this.datasets[0]?.data.length || 3;\n const angleStep = (2 * Math.PI) / numPoints;\n const maxValue = Math.max(...this.datasets.flatMap(d => d.data.map(v => typeof v === 'number' ? v : 0)));\n return html /*html*/ `\n <svg width=\"${width}\" height=\"${height}\" viewBox=\"0 0 ${width} ${height}\" role=\"img\" aria-label=\"${this.chartSummary()}\">\n <title>${this.chartSummary()}</title>\n <!-- Radar grid -->\n ${[0.2, 0.4, 0.6, 0.8, 1].map(ratio => {\n const r = radius * ratio;\n const points = Array.from({ length: numPoints }, (_, i) => {\n const angle = i * angleStep - Math.PI / 2;\n return `${centerX + Math.cos(angle) * r},${centerY + Math.sin(angle) * r}`;\n }).join(' ');\n return html /*html*/ `<polygon points=\"${points}\" fill=\"none\" stroke=\"#e0e0e0\" />`;\n })}\n\n <!-- Axes -->\n ${Array.from({ length: numPoints }, (_, i) => {\n const angle = i * angleStep - Math.PI / 2;\n const x = centerX + Math.cos(angle) * radius;\n const y = centerY + Math.sin(angle) * radius;\n return html /*html*/ `\n <line class=\"grid-line\" x1=\"${centerX}\" y1=\"${centerY}\" x2=\"${x}\" y2=\"${y}\" />\n <text class=\"axis-label\" x=\"${x}\" y=\"${y}\" text-anchor=\"middle\">\n ${this.labels[i] || i}\n </text>\n `;\n })}\n\n <!-- Data -->\n ${this.datasets.map((dataset, datasetIndex) => {\n if (this.hiddenDatasets.has(datasetIndex))\n return '';\n const points = dataset.data.map((value, index) => {\n const val = typeof value === 'number' ? value : 0;\n const angle = index * angleStep - Math.PI / 2;\n const r = (val / maxValue) * radius;\n return `${centerX + Math.cos(angle) * r},${centerY + Math.sin(angle) * r}`;\n }).join(' ');\n const color = this.getDatasetColor(dataset, datasetIndex);\n return html /*html*/ `\n <polygon class=\"chart-path\"\n points=\"${points}\"\n fill=\"${color}\"\n fill-opacity=\"0.3\"\n stroke=\"${dataset.borderColor || color}\"\n stroke-width=\"${dataset.borderWidth || 2}\" />\n `;\n })}\n </svg>\n `;\n }\n getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax) {\n return dataset.data.map((value, index) => {\n const y = typeof value === 'number' ? value : value.y || 0;\n return {\n x: (chartWidth / (dataset.data.length - 1 || 1)) * index,\n y: chartHeight - ((y - yMin) / (yMax - yMin)) * chartHeight\n };\n });\n }\n getYAxisRange() {\n const allValues = this.datasets.flatMap((dataset, index) => this.hiddenDatasets.has(index) ? [] :\n dataset.data.map(v => typeof v === 'number' ? v : v.y || 0));\n const min = this.options.yAxis?.min !== undefined ? this.options.yAxis.min : Math.min(0, ...allValues);\n const max = this.options.yAxis?.max !== undefined ? this.options.yAxis.max : Math.max(...allValues);\n return { min, max };\n }\n getXAxisCount() {\n return Math.max(this.labels.length - 1, ...this.datasets.map(d => d.data.length - 1)) || 1;\n }\n getDatasetColor(dataset, index) {\n if (dataset.backgroundColor && !Array.isArray(dataset.backgroundColor)) {\n return dataset.backgroundColor;\n }\n if (dataset.borderColor) {\n return dataset.borderColor;\n }\n return getDefaultColors()[index % getDefaultColors().length];\n }\n handleLegendClick(index) {\n if (!this.options.legend?.clickable)\n return;\n this.toggleDataset(index);\n }\n showTooltip(dataset, index, event) {\n if (this.options.tooltip?.trigger === 'none')\n return;\n const value = dataset.data[index];\n this.labels[index] || index;\n let content = '';\n if (this.options.tooltip?.format) {\n content = this.options.tooltip.format(value, this.datasets.indexOf(dataset), index);\n }\n else {\n const val = typeof value === 'number' ? value : value.y;\n content = `${dataset.label}: ${val}`;\n }\n this.tooltipContent = content;\n this.tooltipX = event.offsetX + 10;\n this.tooltipY = event.offsetY - 30;\n this.tooltipVisible = true;\n }\n hideTooltip() {\n this.tooltipVisible = false;\n }\n refresh() {\n // Force re-render by updating datasets reference\n this.datasets = [...this.datasets];\n }\n update(datasets) {\n this.datasets = datasets;\n requestAnimationFrame(() => this.initAndDrawChart());\n }\n addDataset(dataset) {\n this.datasets = [...this.datasets, dataset];\n }\n removeDataset(index) {\n this.datasets = this.datasets.filter((_, i) => i !== index);\n this.hiddenDatasets.delete(index);\n }\n toggleDataset(index) {\n if (this.hiddenDatasets.has(index)) {\n this.hiddenDatasets.delete(index);\n }\n else {\n this.hiddenDatasets.add(index);\n }\n // Trigger re-render\n this.renderTrigger++;\n }\n exportImage(format = 'svg') {\n if (format === 'svg') {\n // Return the last generated SVG content\n if (!this.datasets.length)\n return '';\n const chartType = this.type;\n switch (chartType) {\n case 'pie':\n case 'donut':\n return this.renderPieChartSVG(chartType === 'donut');\n case 'radar':\n return this.renderRadarChartSVG();\n default:\n return this.renderCartesianChartSVG();\n }\n }\n // For PNG, would need canvas conversion\n return '';\n }\n getData() {\n return {\n datasets: this.datasets,\n labels: this.labels\n };\n }\n });\n return _classThis;\n})();\n\nexport { SniceChart };\n//# sourceMappingURL=snice-chart.js.map\n"],"names":["element","property","query","styles","render","css","html"],"mappings":";;;;;;;;;;EAAA;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAmDO,SAAS,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE;EACzG,EAAE,SAAS,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,MAAM,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;EACxH,EAAE,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,OAAO;EAClG,EAAE,IAAI,MAAM,GAAG,CAAC,YAAY,IAAI,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI;EACzF,EAAE,IAAI,UAAU,GAAG,YAAY,KAAK,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;EAC1G,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK;EACrB,EAAE,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;EACnD,MAAM,IAAI,OAAO,GAAG,EAAE;EACtB,MAAM,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;EAC9E,MAAM,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;EAC7E,MAAM,OAAO,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;EACnL,MAAM,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;EACpI,MAAM,IAAI,IAAI,KAAK,UAAU,EAAE;EAC/B,UAAU,IAAI,MAAM,KAAK,MAAM,EAAE;EACjC,UAAU,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC;EACnG,UAAU,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC;EACxD,UAAU,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC;EACxD,UAAU,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;EAC9D,MAAM;EACN,WAAW,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE;EACnC,UAAU,IAAI,IAAI,KAAK,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;EACvD,eAAe,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;EAClC,MAAM;EACN,EAAE;EACF,EAAE,IAAI,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;EACvE,EAAE,IAAI,GAAG,IAAI;EACb;EAEO,SAAS,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;EAChE,EAAE,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;EACrC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAChD,MAAM,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;EAC7F,EAAE;EACF,EAAE,OAAO,QAAQ,GAAG,KAAK,GAAG,MAAM;EAClC;EAoOuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;EACvH,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;EAC5B,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;EAClF;;EChRA;EACA;EACA;EACA;EACA;EACA,MAAM,gBAAgB,GAAG;EACzB,IAAI,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;EACjF,IAAI,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB;EACjF,CAAC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;EAChC,IAAI,IAAI,OAAO,gBAAgB,KAAK,UAAU;EAC9C,QAAQ,OAAO,gBAAgB;EAC/B,IAAI,MAAM,MAAM,GAAW,QAAQ,CAAC,eAAe;EACnD,IAAI,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC;EACvC,IAAI,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK;EACjD,QAAQ,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;EAC7E,QAAQ,OAAO,CAAC,IAAI,QAAQ;EAC5B,IAAI,CAAC,CAAC;EACN;;EClFA,IAAI,WAAW,GAAG,guEAAguE;;EAElvE,MAAM,eAAe,GAAG;EACxB,IAAI,UAAU,EAAE,IAAI;EACpB,IAAI,mBAAmB,EAAE,KAAK;EAC9B,IAAI,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;EAChD,IAAI,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;EACjC,IAAI,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;EACnE,IAAI,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;EACzB,IAAI,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI;EACvB,CAAC;EACD;EACA;EACA,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,EAAE;AAC9C,MAAC,UAAU,GAAG,CAAC,MAAM;EACxB,IAAI,IAAI,gBAAgB,GAAG,CAACA,aAAO,CAAC,aAAa,CAAC,CAAC;EACnD,IAAI,IAAI,gBAAgB;EACxB,IAAI,IAAI,uBAAuB,GAAG,EAAE;EACpC,IAAI,IAAI,UAAU;EAClB,IAAI,IAAI,WAAW,GAAG,WAAW;EACjC,IAAI,IAAI,0BAA0B,GAAG,EAAE;EACvC,IAAI,IAAI,gBAAgB;EACxB,IAAI,IAAI,kBAAkB,GAAG,EAAE;EAC/B,IAAI,IAAI,uBAAuB,GAAG,EAAE;EACpC,IAAI,IAAI,oBAAoB;EAC5B,IAAI,IAAI,sBAAsB,GAAG,EAAE;EACnC,IAAI,IAAI,2BAA2B,GAAG,EAAE;EACxC,IAAI,IAAI,kBAAkB;EAC1B,IAAI,IAAI,oBAAoB,GAAG,EAAE;EACjC,IAAI,IAAI,yBAAyB,GAAG,EAAE;EACtC,IAAI,IAAI,mBAAmB;EAC3B,IAAI,IAAI,qBAAqB,GAAG,EAAE;EAClC,IAAI,IAAI,0BAA0B,GAAG,EAAE;EACvC,IAAI,IAAI,iBAAiB;EACzB,IAAI,IAAI,mBAAmB,GAAG,EAAE;EAChC,IAAI,IAAI,wBAAwB,GAAG,EAAE;EACrC,IAAI,IAAI,kBAAkB;EAC1B,IAAI,IAAI,oBAAoB,GAAG,EAAE;EACjC,IAAI,IAAI,yBAAyB,GAAG,EAAE;EACtC,IAAI,IAAI,yBAAyB;EACjC,IAAI,IAAI,2BAA2B,GAAG,EAAE;EACxC,IAAI,IAAI,gCAAgC,GAAG,EAAE;EAC7C,IAAI,IAAI,yBAAyB;EACjC,IAAI,IAAI,2BAA2B,GAAG,EAAE;EACxC,IAAI,IAAI,gCAAgC,GAAG,EAAE;EAC7C,IAAI,IAAI,0BAA0B;EAClC,IAAI,IAAI,4BAA4B,GAAG,EAAE;EACzC,IAAI,IAAI,iCAAiC,GAAG,EAAE;EAC9C,IAAI,IAAI,0BAA0B;EAClC,IAAI,IAAI,4BAA4B,GAAG,EAAE;EACzC,IAAI,IAAI,iCAAiC,GAAG,EAAE;EAC9C,IAAI,IAAI,oBAAoB;EAC5B,IAAI,IAAI,sBAAsB,GAAG,EAAE;EACnC,IAAI,IAAI,2BAA2B,GAAG,EAAE;EACxC,IAAI,IAAI,oBAAoB;EAC5B,IAAI,IAAI,sBAAsB,GAAG,EAAE;EACnC,IAAI,IAAI,2BAA2B,GAAG,EAAE;EACxC,IAAI,IAAI,kBAAkB;EAC1B,IAAI,IAAI,kBAAkB;EAC1B,IAAI,CAAC,cAAc,WAAW,CAAC;EAC/B,QAAQ,SAAS,UAAU,GAAG,IAAI,CAAC;EACnC,QAAQ,WAAW,GAAG;EACtB,YAAY,KAAK,CAAC,GAAG,SAAS,CAAC;EAC/B,YAAY,IAAI,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,EAAE,0BAA0B,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;EAClI,YAAY,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,IAAI,EAAE,uBAAuB,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;EACnI,YAAY,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;EACnI,YAAY,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,yBAAyB,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAC;EAChJ,YAAY,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,0BAA0B,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;EAC/H,YAAY,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;EAC/H,YAAY,IAAI,CAAC,cAAc,IAAI,iBAAiB,CAAC,IAAI,EAAE,yBAAyB,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC;EACjG,YAAY,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;EACxF,YAAY,IAAI,CAAC,aAAa,IAAI,iBAAiB,CAAC,IAAI,EAAE,gCAAgC,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,2BAA2B,EAAE,MAAM,CAAC,CAAC;EAC1J,YAAY,IAAI,CAAC,cAAc,IAAI,iBAAiB,CAAC,IAAI,EAAE,gCAAgC,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,4BAA4B,EAAE,KAAK,CAAC,CAAC;EAC3J,YAAY,IAAI,CAAC,cAAc,IAAI,iBAAiB,CAAC,IAAI,EAAE,iCAAiC,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,4BAA4B,EAAE,EAAE,CAAC,CAAC;EACzJ,YAAY,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,IAAI,EAAE,iCAAiC,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;EAC5I,YAAY,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;EACtI,YAAY,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE,IAAI,CAAC;EACtF,YAAY,IAAI,CAAC,GAAG,GAAG,IAAI;EAC3B,QAAQ;EACR,QAAQ;EACR,YAAY,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,MAAM;EAC5I,YAAY,gBAAgB,GAAG,CAACC,cAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;EAC3D,YAAY,oBAAoB,GAAG,CAACA,cAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;EAChF,YAAY,kBAAkB,GAAG,CAACA,cAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;EAC9E,YAAY,mBAAmB,GAAG,CAACA,cAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;EAChF,YAAY,iBAAiB,GAAG,CAACA,cAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;EAC5D,YAAY,kBAAkB,GAAG,CAACA,cAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;EAC7D,YAAY,yBAAyB,GAAG,CAACA,cAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;EACtF,YAAY,yBAAyB,GAAG,CAACC,WAAK,CAAC,sBAAsB,CAAC,CAAC;EACvE,YAAY,0BAA0B,GAAG,CAACD,cAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;EACxF,YAAY,0BAA0B,GAAG,CAACA,cAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;EACvF,YAAY,oBAAoB,GAAG,CAACA,cAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;EACjF,YAAY,oBAAoB,GAAG,CAACA,cAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;EACjF,YAAY,kBAAkB,GAAG,CAACE,YAAM,EAAE,CAAC;EAC3C,YAAY,kBAAkB,GAAG,CAACC,YAAM,EAAE,CAAC;EAC3C,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,QAAQ,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,0BAA0B,CAAC;EACnP,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,QAAQ,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,0BAA0B,CAAC;EACnP,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,uBAAuB,CAAC;EACjS,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,UAAU,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,sBAAsB,EAAE,2BAA2B,CAAC;EAC7T,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,QAAQ,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;EAC/S,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,SAAS,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,qBAAqB,EAAE,0BAA0B,CAAC;EACtT,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;EACxS,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,QAAQ,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;EAC/S,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,eAAe,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,2BAA2B,EAAE,gCAAgC,CAAC;EAChW,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,eAAe,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,2BAA2B,EAAE,gCAAgC,CAAC;EAChW,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,gBAAgB,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,4BAA4B,EAAE,iCAAiC,CAAC;EACvW,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,gBAAgB,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,4BAA4B,EAAE,iCAAiC,CAAC;EACvW,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,UAAU,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,sBAAsB,EAAE,2BAA2B,CAAC;EAC7T,YAAY,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,UAAU,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,sBAAsB,EAAE,2BAA2B,CAAC;EAC7T,YAAY,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC;EACxL,YAAY,UAAU,GAAG,gBAAgB,CAAC,KAAK;EAC/C,YAAY,IAAI,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;EACzJ,YAAY,iBAAiB,CAAC,UAAU,EAAE,uBAAuB,CAAC;EAClE;EACA,QAAQ,YAAY,GAAG;EACvB,YAAY,MAAM,KAAK,GAAG;EAC1B,gBAAgB,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY;EACxE,gBAAgB,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE;EACjE,aAAa;EACb,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO;EACpD,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;EAChD,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;EACxF,YAAY,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;EACpI,QAAQ;EACR,QAAQ,MAAM,GAAG;EACjB,YAAY,OAAOC,SAAG,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;EAC/C,QAAQ;EACR,QAAQ,MAAM,GAAG;EACjB,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,KAAK;EACzE,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,KAAK,KAAK;EACtE;EACA,YAAY,qBAAqB,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAChE,YAAY,OAAOC,UAAI,UAAU;AACjC,kCAAkC,EAAE,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAC;AAC/D,QAAQ,EAAE,cAAc,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;AAC9D;AACA,qEAAqE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AAC3F;AACA,kCAAkC,EAAE,IAAI,CAAC,cAAc,GAAG,SAAS,GAAG,EAAE,CAAC;AACzE,0BAA0B,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;AACnE,UAAU,EAAE,IAAI,CAAC,cAAc;AAC/B;AACA;AACA,IAAI,CAAC;EACL,QAAQ;EACR,QAAQ,YAAY,GAAG;EACvB,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,KAAK;EACnE,YAAY,OAAOA,UAAI,UAAU;AACjC,sCAAsC,EAAE,QAAQ,CAAC;AACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,KAAKA,UAAI,CAAC;AACrD,kCAAkC,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC;AACnF,sBAAsB,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC5D,yDAAyD,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAChG,uCAAuC,EAAE,OAAO,CAAC,KAAK,CAAC;AACvD;AACA,QAAQ,CAAC,CAAC;AACV;AACA,IAAI,CAAC;EACL,QAAQ;EACR,QAAQ,gBAAgB,GAAG;EAC3B,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI;EACpD,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM;EAC5B,gBAAgB;EAChB,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG;EAC/D,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG;EAClE,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK;EACrC,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;EACvC,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;EAClD,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;EACpD,YAAY,IAAI;EAChB,gBAAgB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;EACvD,YAAY;EACZ,YAAY,OAAO,CAAC,EAAE;EACtB;EACA,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;EAClD,gBAAgB;EAChB;EACA,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;EACnD,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI;EACvC,YAAY,QAAQ,SAAS;EAC7B,gBAAgB,KAAK,KAAK;EAC1B,gBAAgB,KAAK,OAAO;EAC5B,oBAAoB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC;EAC3E,oBAAoB;EACpB,gBAAgB,KAAK,OAAO;EAC5B,oBAAoB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;EACtD,oBAAoB;EACpB,gBAAgB;EAChB,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;EAC1D;EACA,QAAQ;EACR,QAAQ,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE;EAC1C,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG;EACzB,gBAAgB;EAChB,YAAY,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;EACxE,YAAY,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK;EACnE,YAAY,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM;EACrE,YAAY,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;EACjE,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;EAC/C;EACA,YAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;EAC/E;EACA,YAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;EAC/E;EACA,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;EAC3B,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;EACzD,YAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAK;EACtD,gBAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;EAClD,oBAAoB;EACpB,gBAAgB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;EAC7F,YAAY,CAAC,CAAC;EACd,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;EAC9B,QAAQ;EACR,QAAQ,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;EACvE,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;EACrF,gBAAgB;EAChB,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS;EAC5C,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC;EAClC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC;EACzD,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE;EAC1C,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;EAClD,oBAAoB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC;EACtE,oBAAoB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EACxC,oBAAoB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;EACpD,oBAAoB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC,CAAC;EACjE,oBAAoB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;EACrC,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE;EAC1C,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,KAAK,CAAC;EAC5F,gBAAgB,IAAI,WAAW,EAAE;EACjC;EACA,oBAAoB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM;EACpE,oBAAoB,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW;EACjE,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE;EAC3D,wBAAwB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,YAAY,GAAG,CAAC;EACjE,wBAAwB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EAC5C,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;EACvD,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;EACrE,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;EACzC,oBAAoB;EACpB,gBAAgB;EAChB,qBAAqB;EACrB;EACA,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;EACtD,wBAAwB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC;EAC1E,wBAAwB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EAC5C,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;EACvD,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;EACrE,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;EACzC,oBAAoB;EACpB,gBAAgB;EAChB,YAAY;EACZ,QAAQ;EACR,QAAQ,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;EACvE,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG;EACzB,gBAAgB;EAChB,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,MAAM;EACzC,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC;EAClC;EACA,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EAChC,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;EACtD,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;EACpE,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;EAC7B;EACA,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EAChC,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;EACpE,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;EACjF,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;EAC7B;EACA,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM;EACvC,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB;EAC7C,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO;EACxC,YAAY,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,QAAQ;EAC5C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC;EACzD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;EAC9C,gBAAgB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,MAAM,GAAG,CAAC;EAC/D,gBAAgB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC;EAClE,gBAAgB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;EACzE,YAAY;EACZ;EACA,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ;EACzC,YAAY,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK;EACzC,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;EAChD,YAAY,IAAI,SAAS,GAAG,CAAC,EAAE;EAC/B;EACA,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,KAAK,CAAC;EAC5F,gBAAgB,IAAI,WAAW,EAAE;EACjC;EACA,oBAAoB,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS;EAC/D,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;EACxD,wBAAwB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;EACpF,wBAAwB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;EACpE,wBAAwB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,GAAG,EAAE,CAAC;EACnF,oBAAoB;EACpB,gBAAgB;EAChB,qBAAqB;EACrB;EACA,oBAAoB,MAAM,OAAO,GAAG,UAAU,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC;EACrE,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;EACxD,wBAAwB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,GAAG,CAAC;EAC5D,wBAAwB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;EACpE,wBAAwB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,GAAG,EAAE,CAAC;EACnF,oBAAoB;EACpB,gBAAgB;EAChB,YAAY;EACZ,QAAQ;EACR,QAAQ,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;EACxF,YAAY,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;EACvD,YAAY,QAAQ,SAAS;EAC7B,gBAAgB,KAAK,MAAM;EAC3B,oBAAoB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EACpG,oBAAoB;EACpB,gBAAgB,KAAK,MAAM;EAC3B,oBAAoB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EACpG,oBAAoB;EACpB,gBAAgB,KAAK,KAAK;EAC1B,oBAAoB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;EAC3G,oBAAoB;EACpB,gBAAgB,KAAK,SAAS;EAC9B,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EACvG,oBAAoB;EACpB;EACA,QAAQ;EACR,QAAQ,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EACpF,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG;EACzB,gBAAgB;EAChB,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAC3F,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACrE,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC;EACxD,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC;EAC3F,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;EACnC,gBAAgB;EAChB;EACA,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK;EAC/D,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,WAAW;EAC5C,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EAChC,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACrD,YAAY,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACnE,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;EAC7B;EACA,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK;EACtC,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI;EAChC,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EACpC,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;EACnE,gBAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;EAC/B,YAAY,CAAC,CAAC;EACd,QAAQ;EACR,QAAQ,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EACpF,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG;EACzB,gBAAgB;EAChB,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAC3F,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACrE,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;EACnC,gBAAgB;EAChB;EACA,YAAY,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe;EACnD,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,KAAK;EACzF,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG;EACtC,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EAChC,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;EACrD,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACrD,YAAY,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACnE,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;EACrE,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EAChC,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;EAC3B,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC;EACpC;EACA,YAAY,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAC5F,QAAQ;EACR,QAAQ,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;EAC3F,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG;EACzB,gBAAgB;EAChB,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACrE,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;EACnG,YAAY,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAC/F,YAAY,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC;EAClE,YAAY,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM;EAC/C;EACA,YAAY,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO;EACrD,YAAY,MAAM,gBAAgB,GAAG,YAAY,GAAG,GAAG;EACvD,YAAY,MAAM,cAAc,GAAG,gBAAgB,GAAG,YAAY;EAClE,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;EACnD,gBAAgB,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC;EAC1E,gBAAgB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,WAAW;EAC5E;EACA,gBAAgB,MAAM,aAAa,GAAG,YAAY,GAAG,KAAK,GAAG,YAAY,GAAG,CAAC;EAC7E;EACA,gBAAgB,IAAI,CAAC,GAAG,aAAa,GAAG,cAAc,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,aAAa,GAAG,cAAc,GAAG,gBAAgB,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;EAChK,gBAAgB,IAAI,CAAC,GAAG,CAAC;EACzB,oBAAoB,CAAC,GAAG,CAAC;EACzB,gBAAgB,IAAI,CAAC,GAAG,cAAc,GAAG,UAAU;EACnD,oBAAoB,CAAC,GAAG,UAAU,GAAG,cAAc;EACnD,gBAAgB,MAAM,IAAI,GAAG,WAAW,GAAG,SAAS;EACpD,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe;EAC1E,sBAAsB,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM;EACpF,sBAAsB,KAAK;EAC3B,gBAAgB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC;EACrE,YAAY,CAAC,CAAC;EACd,QAAQ;EACR,QAAQ,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EACvF,YAAY,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAC5F,QAAQ;EACR,QAAQ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;EAC7C,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;EAC9C,gBAAgB;EAChB,YAAY,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC;EACrC,YAAY,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC;EACtC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;EAC3D,YAAY,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC;EAC1D,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;EAC5C,YAAY,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;EAC5D,gBAAgB,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,CAAC;EAChE,gBAAgB,OAAO,GAAG,GAAG,MAAM;EACnC,YAAY,CAAC,EAAE,CAAC,CAAC;EACjB,YAAY,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;EAC3C,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;EACnD,gBAAgB,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,CAAC;EACjE,gBAAgB,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;EACzE,gBAAgB,MAAM,QAAQ,GAAG,YAAY,GAAG,KAAK;EACrD,gBAAgB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe;EACnE,sBAAsB,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM;EACpF,sBAAsB,gBAAgB,EAAE,CAAC,KAAK,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC;EAC3E,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK;EAC1C,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EACpC,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC;EAC9E,gBAAgB,IAAI,OAAO,EAAE;EAC7B,oBAAoB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC;EAC7F,gBAAgB;EAChB,qBAAqB;EACrB,oBAAoB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;EACrD,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EACpC,gBAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;EAC/B,gBAAgB,YAAY,GAAG,QAAQ;EACvC,YAAY,CAAC,CAAC;EACd,QAAQ;EACR,QAAQ,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE;EACtC,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG;EACzB,gBAAgB;EAChB,YAAY,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC;EACrC,YAAY,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC;EACtC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;EAC3D,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;EACtF,YAAY,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,SAAS;EACvD,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACpH;EACA,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS;EAC5C,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI;EACrD,gBAAgB,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK;EACxC,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EACpC,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE;EACrD,oBAAoB,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;EAC7D,oBAAoB,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;EAC3D,oBAAoB,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;EAC3D,oBAAoB,IAAI,CAAC,KAAK,CAAC,EAAE;EACjC,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;EAC7C,oBAAoB;EACpB,yBAAyB;EACzB,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;EAC7C,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EACpC,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;EACjC,YAAY,CAAC,CAAC;EACd;EACA,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;EAChD,gBAAgB,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;EACzD,gBAAgB,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM;EAC5D,gBAAgB,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM;EAC5D,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EACpC,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;EACjD,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;EACrC,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;EACjC;EACA,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM;EAC3C,gBAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB;EACjD,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ;EAC7C,gBAAgB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;EACvE,YAAY;EACZ;EACA,YAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK;EAC7D,gBAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;EACzD,oBAAoB;EACpB,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACzE,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK;EAC1C,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG;EAC1C,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EACpC,gBAAgB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;EACvD,oBAAoB,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,CAAC;EACrE,oBAAoB,MAAM,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;EACjE,oBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,IAAI,MAAM;EACvD,oBAAoB,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;EAC3D,oBAAoB,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;EAC3D,oBAAoB,IAAI,KAAK,KAAK,CAAC,EAAE;EACrC,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;EAC7C,oBAAoB;EACpB,yBAAyB;EACzB,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;EAC7C,oBAAoB;EACpB,gBAAgB,CAAC,CAAC;EAClB,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;EACpC,gBAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;EAC/B,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC;EACxC,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK;EACnE,gBAAgB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC;EAC7D,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;EACjC,YAAY,CAAC,CAAC;EACd,QAAQ;EACR,QAAQ,uBAAuB,GAAG;EAClC,YAAY,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;EACxE,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG;EAC/D,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG;EAClE,YAAY,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK;EACnE,YAAY,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM;EACrE,YAAY,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;EACjE,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;EAC/C,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;EAC7G,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;EAC7G,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC;EACrC,iBAAiB,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;EAC5E,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;EAClG,iBAAiB,IAAI,CAAC,EAAE,CAAC;EACzB,YAAY,OAAO;AACnB,kBAAkB,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AAC7H,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACrC,QAAQ,EAAE,OAAO;AACjB,QAAQ,EAAE,OAAO;AACjB,gCAAgC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC;AAC/D,UAAU,EAAE,WAAW;AACvB;AACA;AACA,IAAI,CAAC;EACL,QAAQ;EACR,QAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;EACrF,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI;EACtE,gBAAgB,OAAO,EAAE;EACzB,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC;EACzD,YAAY,IAAI,OAAO,GAAG,EAAE;EAC5B,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE;EAC1C,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;EAClD,oBAAoB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC;EACtE,oBAAoB,OAAO,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,qBAAqB,CAAC;EACvJ,gBAAgB;EAChB,YAAY;EACZ,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE;EAC1C,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;EAClD,oBAAoB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC;EACtE,oBAAoB,OAAO,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC,qBAAqB,CAAC;EACtJ,gBAAgB;EAChB,YAAY;EACZ,YAAY,OAAO,OAAO;EAC1B,QAAQ;EACR,QAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;EACrF,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC;EACzD,YAAY,IAAI,OAAO,GAAG,EAAE;EAC5B;EACA,YAAY,OAAO,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC,kBAAkB,CAAC;EACjK;EACA,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;EAC9C,gBAAgB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,MAAM,GAAG,CAAC;EAC/D,gBAAgB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC;EAClE,gBAAgB,OAAO,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,2EAA2E,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;EAC3L,YAAY;EACZ;EACA,YAAY,OAAO,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC,kBAAkB,CAAC;EAC5L;EACA,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;EAC9C,gBAAgB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC;EAClE,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;EAC5D,gBAAgB,OAAO,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,GAAG,EAAE,CAAC,kDAAkD,EAAE,KAAK,CAAC,OAAO,CAAC;EACpK,YAAY;EACZ,YAAY,OAAO,OAAO;EAC1B,QAAQ;EACR,QAAQ,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;EAC7F,YAAY,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;EACvD,YAAY,QAAQ,SAAS;EAC7B,gBAAgB,KAAK,MAAM;EAC3B,oBAAoB,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAChH,gBAAgB,KAAK,MAAM;EAC3B,oBAAoB,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAChH,gBAAgB,KAAK,KAAK;EAC1B,oBAAoB,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;EACvH,gBAAgB,KAAK,SAAS;EAC9B,oBAAoB,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EACnH,gBAAgB,KAAK,QAAQ;EAC7B,oBAAoB,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAClH,gBAAgB;EAChB,oBAAoB,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAChH;EACA,QAAQ;EACR,QAAQ,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EACzF,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAC3F,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACrE,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC;EACxD,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC;EAC3F,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;EACnC,gBAAgB,OAAO,EAAE;EACzB,YAAY,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;EAC7E,YAAY,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;EAChI,YAAY,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,sBAAsB,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,gBAAgB,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;EAC1I,QAAQ;EACR,QAAQ,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EACzF,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EACxG,QAAQ;EACR,QAAQ,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;EAChG,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACrE,YAAY,MAAM,QAAQ,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;EAC7H,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;EACtD,gBAAgB,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC;EAC1E,gBAAgB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,WAAW;EAC5E,gBAAgB,MAAM,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI,KAAK;EACvD,gBAAgB,MAAM,IAAI,GAAG,WAAW,GAAG,SAAS;EACpD,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC;EAChH,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;EACvB,QAAQ;EACR,QAAQ,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EAC5F,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EACxG,QAAQ;EACR,QAAQ,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EAC3F,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EACxG,QAAQ;EACR,QAAQ,iBAAiB,CAAC,OAAO,EAAE;EACnC,YAAY,OAAO,6GAA6G;EAChI,QAAQ;EACR,QAAQ,mBAAmB,GAAG;EAC9B,YAAY,OAAO,+GAA+G;EAClI,QAAQ;EACR,QAAQ,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EACtF,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAC3F,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACrE,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC;EACxD,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC;EAC3F,YAAY,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC;EAChD,YAAY,IAAI,KAAK,GAAG,EAAE;EAC1B,YAAY,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;EACnC,gBAAgB,KAAK,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACzD,gBAAgB,IAAI,OAAO,GAAG,CAAC,EAAE;EACjC;EACA,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC5D,wBAAwB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;EAClD,wBAAwB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;EAC9C,wBAAwB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG;EACpE,wBAAwB,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;EACxE,wBAAwB,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;EAC3E,oBAAoB;EACpB,gBAAgB;EAChB,qBAAqB;EACrB;EACA,oBAAoB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;EACjD,wBAAwB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACnD,oBAAoB,CAAC,CAAC;EACtB,gBAAgB;EAChB,YAAY;EACZ,YAAY,OAAOA,UAAI,UAAU;AACjC;AACA,eAAe,EAAE,KAAK,CAAC;AACvB;AACA,oBAAoB,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;AACnD,0BAA0B,EAAE,WAAW,CAAC;AACxC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAKA,UAAI,CAAC;AAClC;AACA,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,mBAAmB,EAAE,WAAW,CAAC;AACjC,sBAAsB,EAAE,KAAK,CAAC;AAC9B,4BAA4B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACpE,4BAA4B,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACvD,MAAM,CAAC,CAAC;AACR,IAAI,CAAC;EACL,QAAQ;EACR,QAAQ,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EACtF,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EAC3F,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACrE,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC;EACxD,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;EACnC,gBAAgB,OAAO,EAAE;EACzB,YAAY,IAAI,KAAK,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;EACzD,YAAY,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACvD,YAAY,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;EACzC,gBAAgB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EAC3C,YAAY,CAAC,CAAC;EACd,YAAY,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;EACzE,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;EACzG,YAAY,OAAOA,UAAI,UAAU;AACjC;AACA,eAAe,EAAE,KAAK,CAAC;AACvB,kBAAkB,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC;AACrD;AACA;AACA,eAAe,EAAE,KAAK,CAAC;AACvB;AACA,oBAAoB,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;AACnD,0BAA0B,EAAE,WAAW,CAAC;AACxC,IAAI,CAAC;EACL,QAAQ;EACR,QAAQ,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;EAC7F,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACrE,YAAY,MAAM,QAAQ,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;EAC7H,YAAY,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAC/F,YAAY,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC;EAClE,YAAY,OAAOA,UAAI,UAAU;AACjC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAC3C,gBAAgB,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC;AAC1E,gBAAgB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,WAAW;AAC5E,gBAAgB,MAAM,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI,KAAK,GAAG,aAAa,GAAG,QAAQ,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI,GAAG;AAChH,gBAAgB,MAAM,IAAI,GAAG,WAAW,GAAG,SAAS;AACpD,gBAAgB,OAAOA,UAAI,UAAU;AACrC;AACA,mBAAmB,EAAE,CAAC,CAAC;AACvB,mBAAmB,EAAE,IAAI,CAAC;AAC1B,uBAAuB,EAAE,QAAQ,CAAC;AAClC,wBAAwB,EAAE,SAAS,CAAC;AACpC,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AACzI,4BAA4B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACxE,4BAA4B,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACvD,QAAQ,CAAC;AACT,YAAY,CAAC,CAAC;AACd,IAAI,CAAC;EACL,QAAQ;EACR,QAAQ,cAAc,CAAC,UAAU,EAAE;EACnC;EACA,YAAY,OAAO,IAAI,CAAC,uBAAuB,EAAE;EACjD,QAAQ;EACR,QAAQ,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EACzF,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACrE,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC;EAC3F,YAAY,OAAOA,UAAI,UAAU;AACjC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAC3C,gBAAgB,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;AACxF,gBAAgB,MAAM,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,UAAU,GAAG,CAAC;AAC3G,gBAAgB,MAAM,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,WAAW;AACxF,gBAAgB,OAAOA,UAAI,UAAU;AACrC;AACA,sBAAsB,EAAE,CAAC,CAAC;AAC1B,sBAAsB,EAAE,CAAC,CAAC;AAC1B,qBAAqB,EAAE,WAAW,CAAC;AACnC,wBAAwB,EAAE,KAAK,CAAC;AAChC,8BAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,8BAA8B,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACzD,QAAQ,CAAC;AACT,YAAY,CAAC,CAAC;AACd,IAAI,CAAC;EACL,QAAQ;EACR,QAAQ,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EACxF,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;EACrE,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;EACjG,YAAY,OAAOA,UAAI,UAAU;AACjC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAC3C,gBAAgB,MAAM,KAAK,GAAG,KAAK;AACnC,gBAAgB,MAAM,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,UAAU,GAAG,CAAC;AACzG,gBAAgB,MAAM,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,WAAW;AACxF,gBAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;AACtD,gBAAgB,OAAOA,UAAI,UAAU;AACrC;AACA,sBAAsB,EAAE,CAAC,CAAC;AAC1B,sBAAsB,EAAE,CAAC,CAAC;AAC1B,qBAAqB,EAAE,CAAC,CAAC;AACzB,wBAAwB,EAAE,KAAK,CAAC;AAChC;AACA,8BAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,8BAA8B,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACzD,QAAQ,CAAC;AACT,YAAY,CAAC,CAAC;AACd,IAAI,CAAC;EACL,QAAQ;EACR,QAAQ,cAAc,CAAC,OAAO,EAAE;EAChC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG;EAC/D,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG;EAClE,YAAY,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC;EACrC,YAAY,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC;EACtC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;EAC3D,YAAY,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC;EAC1D,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;EAC5C,YAAY,IAAI,CAAC,OAAO;EACxB,gBAAgB,OAAOA,UAAI,UAAU,CAAC,WAAW,CAAC;EAClD,YAAY,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;EAC5D,gBAAgB,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,CAAC;EAChE,gBAAgB,OAAO,GAAG,GAAG,MAAM;EACnC,YAAY,CAAC,EAAE,CAAC,CAAC;EACjB,YAAY,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;EAC3C,YAAY,OAAOA,UAAI,UAAU;AACjC,kBAAkB,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AAC7H,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACrC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAC7C,gBAAgB,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,CAAC;AACjE,gBAAgB,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AACzE,gBAAgB,MAAM,QAAQ,GAAG,YAAY,GAAG,KAAK;AACrD,gBAAgB,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM;AACpE,gBAAgB,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM;AACpE,gBAAgB,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM;AAChE,gBAAgB,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM;AAChE,gBAAgB,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AACxD,gBAAgB,IAAI,KAAK,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACvH,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,MAAM,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,WAAW;AAC9E,oBAAoB,MAAM,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,WAAW;AAC9E,oBAAoB,MAAM,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,WAAW;AAC1E,oBAAoB,MAAM,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,WAAW;AAC1E,oBAAoB,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC7K,gBAAgB;AAChB,gBAAgB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe;AACnE,sBAAsB,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM;AACpF,sBAAsB,gBAAgB,EAAE,CAAC,KAAK,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC;AAC3E,gBAAgB,MAAM,MAAM,GAAGA,UAAI,CAAC;AACpC;AACA,qBAAqB,EAAE,KAAK,CAAC;AAC7B,wBAAwB,EAAE,KAAK,CAAC;AAChC,8BAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,8BAA8B,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACzD,UAAU,CAAC;AACX,gBAAgB,YAAY,GAAG,QAAQ;AACvC,gBAAgB,OAAO,MAAM;AAC7B,YAAY,CAAC,CAAC;AACd;AACA,IAAI,CAAC;EACL,QAAQ;EACR,QAAQ,gBAAgB,GAAG;EAC3B,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG;EAC/D,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG;EAClE,YAAY,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC;EACrC,YAAY,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC;EACtC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;EAC3D,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;EACtF,YAAY,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,SAAS;EACvD,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACpH,YAAY,OAAOA,UAAI,UAAU;AACjC,kBAAkB,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AAC7H,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACrC;AACA,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI;AAC/C,gBAAgB,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK;AACxC,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;AAC3E,oBAAoB,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AAC7D,oBAAoB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9F,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B,gBAAgB,OAAOA,UAAI,UAAU,CAAC,iBAAiB,EAAE,MAAM,CAAC,iCAAiC,CAAC;AAClG,YAAY,CAAC,CAAC;;AAEd;AACA,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;AACtD,gBAAgB,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AACzD,gBAAgB,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM;AAC5D,gBAAgB,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM;AAC5D,gBAAgB,OAAOA,UAAI,UAAU;AACrC,wCAAwC,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACtF,wCAAwC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACrD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC;AACA,UAAU,CAAC;AACX,YAAY,CAAC,CAAC;;AAEd;AACA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK;AACvD,gBAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;AACzD,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAClE,oBAAoB,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,CAAC;AACrE,oBAAoB,MAAM,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AACjE,oBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,IAAI,MAAM;AACvD,oBAAoB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9F,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;AACzE,gBAAgB,OAAOA,UAAI,UAAU;AACrC;AACA,6BAA6B,EAAE,MAAM,CAAC;AACtC,2BAA2B,EAAE,KAAK,CAAC;AACnC;AACA,6BAA6B,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;AAC5D,mCAAmC,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;AAC9D,UAAU,CAAC;AACX,YAAY,CAAC,CAAC;AACd;AACA,IAAI,CAAC;EACL,QAAQ;EACR,QAAQ,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;EACpE,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;EACtD,gBAAgB,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC;EAC1E,gBAAgB,OAAO;EACvB,oBAAoB,CAAC,EAAE,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;EAC5E,oBAAoB,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI;EACpE,iBAAiB;EACjB,YAAY,CAAC,CAAC;EACd,QAAQ;EACR,QAAQ,aAAa,GAAG;EACxB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;EAC3G,gBAAgB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;EAC5E,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;EAClH,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;EAC/G,YAAY,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE;EAC/B,QAAQ;EACR,QAAQ,aAAa,GAAG;EACxB,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;EACtG,QAAQ;EACR,QAAQ,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE;EACxC,YAAY,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;EACpF,gBAAgB,OAAO,OAAO,CAAC,eAAe;EAC9C,YAAY;EACZ,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE;EACrC,gBAAgB,OAAO,OAAO,CAAC,WAAW;EAC1C,YAAY;EACZ,YAAY,OAAO,gBAAgB,EAAE,CAAC,KAAK,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC;EACxE,QAAQ;EACR,QAAQ,iBAAiB,CAAC,KAAK,EAAE;EACjC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS;EAC/C,gBAAgB;EAChB,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;EACrC,QAAQ;EACR,QAAQ,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;EAC3C,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM;EACxD,gBAAgB;EAChB,YAAY,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;EAC7C,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK;EACvC,YAAY,IAAI,OAAO,GAAG,EAAE;EAC5B,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE;EAC9C,gBAAgB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;EACnG,YAAY;EACZ,iBAAiB;EACjB,gBAAgB,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;EACvE,gBAAgB,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;EACpD,YAAY;EACZ,YAAY,IAAI,CAAC,cAAc,GAAG,OAAO;EACzC,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,EAAE;EAC9C,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,EAAE;EAC9C,YAAY,IAAI,CAAC,cAAc,GAAG,IAAI;EACtC,QAAQ;EACR,QAAQ,WAAW,GAAG;EACtB,YAAY,IAAI,CAAC,cAAc,GAAG,KAAK;EACvC,QAAQ;EACR,QAAQ,OAAO,GAAG;EAClB;EACA,YAAY,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;EAC9C,QAAQ;EACR,QAAQ,MAAM,CAAC,QAAQ,EAAE;EACzB,YAAY,IAAI,CAAC,QAAQ,GAAG,QAAQ;EACpC,YAAY,qBAAqB,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAChE,QAAQ;EACR,QAAQ,UAAU,CAAC,OAAO,EAAE;EAC5B,YAAY,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;EACvD,QAAQ;EACR,QAAQ,aAAa,CAAC,KAAK,EAAE;EAC7B,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;EACvE,YAAY,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;EAC7C,QAAQ;EACR,QAAQ,aAAa,CAAC,KAAK,EAAE;EAC7B,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;EAChD,gBAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;EACjD,YAAY;EACZ,iBAAiB;EACjB,gBAAgB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;EAC9C,YAAY;EACZ;EACA,YAAY,IAAI,CAAC,aAAa,EAAE;EAChC,QAAQ;EACR,QAAQ,WAAW,CAAC,MAAM,GAAG,KAAK,EAAE;EACpC,YAAY,IAAI,MAAM,KAAK,KAAK,EAAE;EAClC;EACA,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;EACzC,oBAAoB,OAAO,EAAE;EAC7B,gBAAgB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI;EAC3C,gBAAgB,QAAQ,SAAS;EACjC,oBAAoB,KAAK,KAAK;EAC9B,oBAAoB,KAAK,OAAO;EAChC,wBAAwB,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,OAAO,CAAC;EAC5E,oBAAoB,KAAK,OAAO;EAChC,wBAAwB,OAAO,IAAI,CAAC,mBAAmB,EAAE;EACzD,oBAAoB;EACpB,wBAAwB,OAAO,IAAI,CAAC,uBAAuB,EAAE;EAC7D;EACA,YAAY;EACZ;EACA,YAAY,OAAO,EAAE;EACrB,QAAQ;EACR,QAAQ,OAAO,GAAG;EAClB,YAAY,OAAO;EACnB,gBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ;EACvC,gBAAgB,MAAM,EAAE,IAAI,CAAC;EAC7B,aAAa;EACb,QAAQ;EACR,KAAK;EACL,IAAI,OAAO,UAAU;EACrB,CAAC;;;;;;;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"snice-chart.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/utils.js","../../components/chart/snice-chart.js"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { html } from 'snice';\n\n/**\n * Detects icon type and returns appropriate template\n *\n * Scheme overrides:\n * - img://path -> forces <img> element\n * - text://content -> forces text content\n *\n * Auto-detection (when no scheme):\n * - URLs (http://, https://, /, ./, ../, data:) -> <img>\n * - Image extensions (svg, png, jpg, jpeg, jfif, pjp, gif, webp, avif, jxl,\n * ico, cur, bmp, tif, tiff, heic, heif, apng) -> <img>\n * - Everything else -> span with text content (emoji, plain text)\n *\n * ⚠️ \"home\" or \"settings\" renders as PLAIN TEXT, not a Material icon.\n * For Material Symbols, use the icon slot instead:\n * <span slot=\"icon\" class=\"material-symbols-outlined\">home</span>\n *\n * Examples:\n * - \"/path/icon.svg\" -> <img>\n * - \"icon.png\" -> <img>\n * - \"img://filename\" -> <img> (forced)\n * - \"🏠\" -> <span> text (emoji)\n * - \"home\" -> <span> text (plain text, NOT a Material icon)\n * - \"text:///not/a/path\" -> <span> text (forced)\n */\nfunction renderIcon(icon, className = 'icon') {\n if (!icon)\n return html ``;\n // Check for scheme overrides first\n if (icon.startsWith('img://')) {\n const src = icon.slice(6);\n return html `<img class=\"${className}\" src=\"${src}\" alt=\"\" part=\"icon\" />`;\n }\n if (icon.startsWith('text://')) {\n const content = icon.slice(7);\n return html `<span class=\"${className}\" part=\"icon\">${content}</span>`;\n }\n // Auto-detect: Check if it's a URL pattern\n if (/^(https?:\\/\\/|\\/|\\.\\/|\\.\\.\\/|data:)/.test(icon)) {\n return html `<img class=\"${className}\" src=\"${icon}\" alt=\"\" part=\"icon\" />`;\n }\n // Auto-detect: Check if it's a file with image extension\n // Must have at least one char before the dot, and no unsupported protocol prefix\n // Covers: SVG, PNG, JPEG variants, GIF, WebP, AVIF, JPEG XL, ICO, BMP, TIFF, HEIC/HEIF, APNG\n if (/^[^:]*\\w\\.(svg|png|jpe?g|jfif|pjp|gif|webp|avif|jxl|ico|cur|bmp|tiff?|heic|heif|apng)(\\?.*)?$/i.test(icon)) {\n return html `<img class=\"${className}\" src=\"${icon}\" alt=\"\" part=\"icon\" />`;\n }\n // Default: text content (emoji, font icon ligature names)\n // All content is escaped - no HTML injection possible\n // Detect ligature icon names (lowercase words with underscores, e.g. \"search\", \"check_circle\")\n // vs emoji/other text — apply --snice-icon-font (defaults to Material Symbols Outlined)\n if (/^[a-z][a-z0-9_]*$/.test(icon)) {\n return html `<span class=\"${className} snice-icon-ligature\" style=\"font-family:var(--snice-icon-font,'Material Symbols Outlined'),sans-serif\" part=\"icon\">${icon}</span>`;\n }\n return html `<span class=\"${className}\" part=\"icon\">${icon}</span>`;\n}\n/**\n * Fallback accent hues (muted/business tones). Used when CSS vars haven't\n * been applied (test environments, SSR) or when the 8 accent tokens have\n * been stripped. Keep in lockstep with `theme.css` --snice-color-accent-1..8.\n */\nconst FALLBACK_ACCENTS = [\n 'hsl(214 55% 48%)', 'hsl(27 62% 50%)', 'hsl(160 40% 40%)', 'hsl(275 32% 52%)',\n 'hsl(42 62% 48%)', 'hsl(340 42% 55%)', 'hsl(110 32% 42%)', 'hsl(195 45% 46%)',\n];\n/**\n * Returns the 8-slot accent palette resolved against the current document's\n * CSS variables, with in-process fallback for non-browser contexts. Data-vis\n * components call this instead of hard-coding color arrays so themes flow\n * through automatically.\n *\n * The returned strings are safe for `canvas.fillStyle`, `svg fill`, or\n * inline `style` — they're either a `hsl(...)` literal or whatever the\n * consumer set as `--snice-color-accent-N`.\n */\nfunction getAccentPalette(root) {\n if (typeof getComputedStyle !== 'function')\n return FALLBACK_ACCENTS;\n const target = root ?? document.documentElement;\n const cs = getComputedStyle(target);\n return FALLBACK_ACCENTS.map((fallback, i) => {\n const v = cs.getPropertyValue(`--snice-color-accent-${i + 1}`).trim();\n return v || fallback;\n });\n}\n/**\n * Parses a CSS color string into sRGB components in [0,1]. Handles `rgb()`,\n * `rgba()`, `hsl()`, `hsla()`, and `#hex`. Returns null if unparseable.\n */\nfunction parseCssColor(value) {\n if (!value)\n return null;\n const s = value.trim();\n // Hex: #RGB #RRGGBB #RGBA #RRGGBBAA\n if (s[0] === '#') {\n const hex = s.slice(1);\n const norm = hex.length === 3 || hex.length === 4\n ? hex.slice(0, 3).split('').map(c => c + c).join('')\n : hex.slice(0, 6);\n if (norm.length !== 6)\n return null;\n const n = parseInt(norm, 16);\n return [((n >> 16) & 255) / 255, ((n >> 8) & 255) / 255, (n & 255) / 255];\n }\n // rgb() / rgba()\n const rgbMatch = s.match(/^rgba?\\(\\s*([\\d.]+)[,\\s]+([\\d.]+)[,\\s]+([\\d.]+)/i);\n if (rgbMatch) {\n return [+rgbMatch[1] / 255, +rgbMatch[2] / 255, +rgbMatch[3] / 255];\n }\n // hsl() / hsla() — quick conversion via an offscreen element for accuracy\n // (skip manual HSL→RGB to keep this helper small; browsers will resolve\n // any hsl() via getComputedStyle on the element anyway).\n if (/^hsla?\\(/i.test(s) && typeof document !== 'undefined') {\n const probe = document.createElement('span');\n probe.style.color = s;\n document.body.appendChild(probe);\n const resolved = getComputedStyle(probe).color;\n probe.remove();\n return parseCssColor(resolved);\n }\n return null;\n}\n/**\n * Relative luminance per WCAG 2.x, input in sRGB [0,1].\n */\nfunction luminance(rgb) {\n const lin = rgb.map(c => c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4));\n return 0.2126 * lin[0] + 0.7152 * lin[1] + 0.0722 * lin[2];\n}\n/**\n * Picks a readable text color for the given `bg`, choosing between the\n * theme's existing text tokens. Light bg → `--snice-color-text` (dark text);\n * dark bg → `--snice-color-text-inverse` (light text). Falls back to inverse\n * for unparseable bg (safe default for colored fills).\n *\n * Used by badge/chip (and anything else pairing a colored fill with a label)\n * so the text stays legible regardless of theme — without hardcoding #fff.\n */\nfunction pickContrastColor(bg) {\n const rgb = parseCssColor(bg);\n if (!rgb)\n return 'var(--snice-color-text-inverse)';\n // Threshold 0.55 keeps saturated blues/greens (luminance ~0.2) using the\n // inverse (light) text, and pastels/lightened fills (> 0.55) using the\n // main text token (dark).\n return luminance(rgb) > 0.55\n ? 'var(--snice-color-text)'\n : 'var(--snice-color-text-inverse)';\n}\nconst themeListeners = new Set();\nlet themeObserver = null;\nfunction onThemeChange(fn) {\n if (typeof document === 'undefined')\n return () => { };\n themeListeners.add(fn);\n if (!themeObserver) {\n themeObserver = new MutationObserver(() => {\n for (const listener of themeListeners) {\n try {\n listener();\n }\n catch { }\n }\n });\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-theme', 'class', 'data-theme-variant'],\n });\n }\n return () => {\n themeListeners.delete(fn);\n if (themeListeners.size === 0 && themeObserver) {\n themeObserver.disconnect();\n themeObserver = null;\n }\n };\n}\n\nexport { FALLBACK_ACCENTS, getAccentPalette, onThemeChange, pickContrastColor, renderIcon };\n//# sourceMappingURL=utils.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, query, styles, render, css, html } from 'snice';\nimport { getAccentPalette } from '../utils.js';\n\nvar chartStyles = \":host{display:block;width:100%;height:400px;position:relative;font-family:var(--font-family, system-ui, -apple-system, sans-serif)}.chart-container{width:100%;height:100%;position:relative;display:flex;flex-direction:column}.chart-canvas{flex:1;position:relative;overflow:hidden}svg{width:100%;height:100%}.chart-legend{display:flex;gap:var(--snice-spacing-md,1rem);padding:var(--snice-spacing-sm,.75rem);flex-wrap:wrap}.chart-legend.legend-top{order:-1}.chart-legend.legend-bottom{order:1}.chart-legend.legend-left{flex-direction:column;position:absolute;left:0;top:50%;transform:translateY(-50%)}.chart-legend.legend-right{flex-direction:column;position:absolute;right:0;top:50%;transform:translateY(-50%)}.legend-item{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);cursor:pointer;user-select:none;transition:opacity .2s}.legend-item:hover{opacity:.8}.legend-item.hidden{opacity:.5;text-decoration:line-through}.legend-color{width:1rem;height:1rem;border-radius:var(--snice-border-radius-sm,.125rem)}.legend-label{font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text)}.chart-tooltip{position:absolute;background:var(--tooltip-bg,hsl(0 0% 0% / .9));color:var(--tooltip-color,hsl(0 0% 100%));padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--snice-font-size-xs, .75rem);pointer-events:none;white-space:nowrap;z-index:1000;opacity:0;transition:opacity .2s}.chart-tooltip.visible{opacity:1}.axis-label{font-size:var(--snice-font-size-xs, .75rem);fill:var(--snice-color-text-secondary)}.axis-line{stroke:var(--snice-color-text-secondary);stroke-width:1}.grid-line{stroke:var(--snice-color-border);stroke-width:1;stroke-dasharray:2,2}.data-point{transition:r .2s,opacity .2s}.data-point:hover{r:6;cursor:pointer}.chart-bar,.chart-path{transition:opacity .2s}.chart-slice{transition:opacity .2s;cursor:pointer}.chart-slice:hover{opacity:.8}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes scaleIn{from{transform:scale(0)}to{transform:scale(1)}}.animated .chart-bar,.animated .chart-path,.animated .chart-slice,.animated .data-point{animation:.5s ease-out fadeIn}.animated .chart-slice{transform-origin:center;animation:.5s ease-out scaleIn}\";\n\nconst DEFAULT_OPTIONS = {\n responsive: true,\n maintainAspectRatio: false,\n legend: { position: 'top', clickable: true },\n tooltip: { trigger: 'hover' },\n animation: { enabled: true, duration: 500, easing: 'ease-out' },\n xAxis: { grid: true },\n yAxis: { grid: true }\n};\n// Resolved from --snice-color-accent-1..8 at call time so theme changes flow\n// through. 8 slots match the accent palette exactly.\nconst getDefaultColors = () => getAccentPalette();\nlet SniceChart = (() => {\n let _classDecorators = [element('snice-chart')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _type_decorators;\n let _type_initializers = [];\n let _type_extraInitializers = [];\n let _datasets_decorators;\n let _datasets_initializers = [];\n let _datasets_extraInitializers = [];\n let _labels_decorators;\n let _labels_initializers = [];\n let _labels_extraInitializers = [];\n let _options_decorators;\n let _options_initializers = [];\n let _options_extraInitializers = [];\n let _width_decorators;\n let _width_initializers = [];\n let _width_extraInitializers = [];\n let _height_decorators;\n let _height_initializers = [];\n let _height_extraInitializers = [];\n let _renderTrigger_decorators;\n let _renderTrigger_initializers = [];\n let _renderTrigger_extraInitializers = [];\n let _canvasElement_decorators;\n let _canvasElement_initializers = [];\n let _canvasElement_extraInitializers = [];\n let _tooltipVisible_decorators;\n let _tooltipVisible_initializers = [];\n let _tooltipVisible_extraInitializers = [];\n let _tooltipContent_decorators;\n let _tooltipContent_initializers = [];\n let _tooltipContent_extraInitializers = [];\n let _tooltipX_decorators;\n let _tooltipX_initializers = [];\n let _tooltipX_extraInitializers = [];\n let _tooltipY_decorators;\n let _tooltipY_initializers = [];\n let _tooltipY_extraInitializers = [];\n let _styles_decorators;\n let _render_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.type = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _type_initializers, 'line'));\n this.datasets = (__runInitializers(this, _type_extraInitializers), __runInitializers(this, _datasets_initializers, []));\n this.labels = (__runInitializers(this, _datasets_extraInitializers), __runInitializers(this, _labels_initializers, []));\n this.options = (__runInitializers(this, _labels_extraInitializers), __runInitializers(this, _options_initializers, DEFAULT_OPTIONS));\n this.width = (__runInitializers(this, _options_extraInitializers), __runInitializers(this, _width_initializers, 0));\n this.height = (__runInitializers(this, _width_extraInitializers), __runInitializers(this, _height_initializers, 0));\n this.hiddenDatasets = (__runInitializers(this, _height_extraInitializers), new Set());\n this.renderTrigger = __runInitializers(this, _renderTrigger_initializers, 0);\n this.canvasElement = (__runInitializers(this, _renderTrigger_extraInitializers), __runInitializers(this, _canvasElement_initializers, void 0));\n this.tooltipVisible = (__runInitializers(this, _canvasElement_extraInitializers), __runInitializers(this, _tooltipVisible_initializers, false));\n this.tooltipContent = (__runInitializers(this, _tooltipVisible_extraInitializers), __runInitializers(this, _tooltipContent_initializers, ''));\n this.tooltipX = (__runInitializers(this, _tooltipContent_extraInitializers), __runInitializers(this, _tooltipX_initializers, 0));\n this.tooltipY = (__runInitializers(this, _tooltipX_extraInitializers), __runInitializers(this, _tooltipY_initializers, 0));\n this.canvas = (__runInitializers(this, _tooltipY_extraInitializers), null);\n this.ctx = null;\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _type_decorators = [property({ type: String })];\n _datasets_decorators = [property({ type: Array, attribute: false })];\n _labels_decorators = [property({ type: Array, attribute: false })];\n _options_decorators = [property({ type: Object, attribute: false })];\n _width_decorators = [property({ type: Number })];\n _height_decorators = [property({ type: Number })];\n _renderTrigger_decorators = [property({ type: Number, attribute: false })];\n _canvasElement_decorators = [query('.chart-render-canvas')];\n _tooltipVisible_decorators = [property({ type: Boolean, attribute: false })];\n _tooltipContent_decorators = [property({ type: String, attribute: false })];\n _tooltipX_decorators = [property({ type: Number, attribute: false })];\n _tooltipY_decorators = [property({ type: Number, attribute: false })];\n _styles_decorators = [styles()];\n _render_decorators = [render()];\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _type_decorators, { kind: \"field\", name: \"type\", static: false, private: false, access: { has: obj => \"type\" in obj, get: obj => obj.type, set: (obj, value) => { obj.type = value; } }, metadata: _metadata }, _type_initializers, _type_extraInitializers);\n __esDecorate(null, null, _datasets_decorators, { kind: \"field\", name: \"datasets\", static: false, private: false, access: { has: obj => \"datasets\" in obj, get: obj => obj.datasets, set: (obj, value) => { obj.datasets = value; } }, metadata: _metadata }, _datasets_initializers, _datasets_extraInitializers);\n __esDecorate(null, null, _labels_decorators, { kind: \"field\", name: \"labels\", static: false, private: false, access: { has: obj => \"labels\" in obj, get: obj => obj.labels, set: (obj, value) => { obj.labels = value; } }, metadata: _metadata }, _labels_initializers, _labels_extraInitializers);\n __esDecorate(null, null, _options_decorators, { kind: \"field\", name: \"options\", static: false, private: false, access: { has: obj => \"options\" in obj, get: obj => obj.options, set: (obj, value) => { obj.options = value; } }, metadata: _metadata }, _options_initializers, _options_extraInitializers);\n __esDecorate(null, null, _width_decorators, { kind: \"field\", name: \"width\", static: false, private: false, access: { has: obj => \"width\" in obj, get: obj => obj.width, set: (obj, value) => { obj.width = value; } }, metadata: _metadata }, _width_initializers, _width_extraInitializers);\n __esDecorate(null, null, _height_decorators, { kind: \"field\", name: \"height\", static: false, private: false, access: { has: obj => \"height\" in obj, get: obj => obj.height, set: (obj, value) => { obj.height = value; } }, metadata: _metadata }, _height_initializers, _height_extraInitializers);\n __esDecorate(null, null, _renderTrigger_decorators, { kind: \"field\", name: \"renderTrigger\", static: false, private: false, access: { has: obj => \"renderTrigger\" in obj, get: obj => obj.renderTrigger, set: (obj, value) => { obj.renderTrigger = value; } }, metadata: _metadata }, _renderTrigger_initializers, _renderTrigger_extraInitializers);\n __esDecorate(null, null, _canvasElement_decorators, { kind: \"field\", name: \"canvasElement\", static: false, private: false, access: { has: obj => \"canvasElement\" in obj, get: obj => obj.canvasElement, set: (obj, value) => { obj.canvasElement = value; } }, metadata: _metadata }, _canvasElement_initializers, _canvasElement_extraInitializers);\n __esDecorate(null, null, _tooltipVisible_decorators, { kind: \"field\", name: \"tooltipVisible\", static: false, private: false, access: { has: obj => \"tooltipVisible\" in obj, get: obj => obj.tooltipVisible, set: (obj, value) => { obj.tooltipVisible = value; } }, metadata: _metadata }, _tooltipVisible_initializers, _tooltipVisible_extraInitializers);\n __esDecorate(null, null, _tooltipContent_decorators, { kind: \"field\", name: \"tooltipContent\", static: false, private: false, access: { has: obj => \"tooltipContent\" in obj, get: obj => obj.tooltipContent, set: (obj, value) => { obj.tooltipContent = value; } }, metadata: _metadata }, _tooltipContent_initializers, _tooltipContent_extraInitializers);\n __esDecorate(null, null, _tooltipX_decorators, { kind: \"field\", name: \"tooltipX\", static: false, private: false, access: { has: obj => \"tooltipX\" in obj, get: obj => obj.tooltipX, set: (obj, value) => { obj.tooltipX = value; } }, metadata: _metadata }, _tooltipX_initializers, _tooltipX_extraInitializers);\n __esDecorate(null, null, _tooltipY_decorators, { kind: \"field\", name: \"tooltipY\", static: false, private: false, access: { has: obj => \"tooltipY\" in obj, get: obj => obj.tooltipY, set: (obj, value) => { obj.tooltipY = value; } }, metadata: _metadata }, _tooltipY_initializers, _tooltipY_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n chartSummary() {\n const kinds = {\n line: 'Line chart', bar: 'Bar chart', area: 'Area chart',\n pie: 'Pie chart', radar: 'Radar chart', scatter: 'Scatter plot'\n };\n const base = kinds[this.type] || 'Chart';\n const dsCount = this.datasets.length;\n const ptCount = this.datasets.reduce((n, d) => n + (d.data?.length || 0), 0);\n return `${base} with ${dsCount} dataset${dsCount === 1 ? '' : 's'} and ${ptCount} data point${ptCount === 1 ? '' : 's'}`;\n }\n styles() {\n return css /*css*/ `${chartStyles}`;\n }\n render() {\n const legendPosition = this.options.legend?.position || 'top';\n const animated = this.options.animation?.enabled !== false;\n // Draw chart after render\n requestAnimationFrame(() => this.initAndDrawChart());\n return html /*html*/ `\n <div class=\"chart-container ${animated ? 'animated' : ''}\" part=\"base\">\n ${legendPosition !== 'none' ? this.renderLegend() : ''}\n <div class=\"chart-canvas\" part=\"canvas\">\n <canvas class=\"chart-render-canvas\" role=\"img\" aria-label=\"${this.chartSummary()}\"></canvas>\n </div>\n <div class=\"chart-tooltip ${this.tooltipVisible ? 'visible' : ''}\"\n style=\"left: ${this.tooltipX}px; top: ${this.tooltipY}px;\">\n ${this.tooltipContent}\n </div>\n </div>\n `;\n }\n renderLegend() {\n const position = this.options.legend?.position || 'top';\n return html /*html*/ `\n <div class=\"chart-legend legend-${position}\" part=\"legend\">\n ${this.datasets.map((dataset, index) => html `\n <div class=\"legend-item ${this.hiddenDatasets.has(index) ? 'hidden' : ''}\"\n @click=${() => this.handleLegendClick(index)}>\n <div class=\"legend-color\" style=\"background: ${this.getDatasetColor(dataset, index)};\"></div>\n <span class=\"legend-label\">${dataset.label}</span>\n </div>\n `)}\n </div>\n `;\n }\n initAndDrawChart() {\n this.canvas = this.canvasElement || null;\n if (!this.canvas)\n return;\n const width = this.width || this.offsetWidth || 600;\n const height = this.height || this.offsetHeight || 400;\n this.canvas.width = width;\n this.canvas.height = height;\n this.canvas.style.width = `${width}px`;\n this.canvas.style.height = `${height}px`;\n try {\n this.ctx = this.canvas.getContext('2d');\n }\n catch (e) {\n // Canvas not supported in test environment\n return;\n }\n if (!this.ctx || !this.datasets.length)\n return;\n // Clear canvas\n this.ctx.clearRect(0, 0, width, height);\n const chartType = this.type;\n switch (chartType) {\n case 'pie':\n case 'donut':\n this.drawPieChart(width, height, chartType === 'donut');\n break;\n case 'radar':\n this.drawRadarChart(width, height);\n break;\n default:\n this.drawCartesianChart(width, height);\n }\n }\n drawCartesianChart(width, height) {\n if (!this.ctx)\n return;\n const padding = { top: 40, right: 40, bottom: 60, left: 60 };\n const chartWidth = width - padding.left - padding.right;\n const chartHeight = height - padding.top - padding.bottom;\n const { min: yMin, max: yMax } = this.getYAxisRange();\n const xCount = this.getXAxisCount();\n // Draw grid\n this.drawGrid(padding, chartWidth, chartHeight, yMin, yMax, xCount);\n // Draw axes\n this.drawAxes(padding, chartWidth, chartHeight, yMin, yMax, xCount);\n // Draw datasets\n this.ctx.save();\n this.ctx.translate(padding.left, padding.top);\n this.datasets.forEach((dataset, index) => {\n if (this.hiddenDatasets.has(index))\n return;\n this.drawDataset(dataset, index, chartWidth, chartHeight, yMin, yMax, xCount);\n });\n this.ctx.restore();\n }\n drawGrid(padding, chartWidth, chartHeight, yMin, yMax, xCount) {\n if (!this.ctx || (!this.options.xAxis?.grid && !this.options.yAxis?.grid))\n return;\n this.ctx.strokeStyle = '#e0e0e0';\n this.ctx.lineWidth = 1;\n const yTicks = this.options.yAxis?.ticks || 5;\n if (this.options.yAxis?.grid) {\n for (let i = 0; i <= yTicks; i++) {\n const y = padding.top + (chartHeight / yTicks) * i;\n this.ctx.beginPath();\n this.ctx.moveTo(padding.left, y);\n this.ctx.lineTo(padding.left + chartWidth, y);\n this.ctx.stroke();\n }\n }\n if (this.options.xAxis?.grid) {\n const hasBarChart = this.datasets.some(d => (d.type || this.type) === 'bar');\n if (hasBarChart) {\n // Bar chart: draw grid lines at segment boundaries\n const numSegments = this.labels.length || xCount;\n const segmentWidth = chartWidth / numSegments;\n for (let i = 0; i <= numSegments; i++) {\n const x = padding.left + segmentWidth * i;\n this.ctx.beginPath();\n this.ctx.moveTo(x, padding.top);\n this.ctx.lineTo(x, padding.top + chartHeight);\n this.ctx.stroke();\n }\n }\n else {\n // Line/area chart: grid at data points\n for (let i = 0; i <= xCount; i++) {\n const x = padding.left + (chartWidth / xCount) * i;\n this.ctx.beginPath();\n this.ctx.moveTo(x, padding.top);\n this.ctx.lineTo(x, padding.top + chartHeight);\n this.ctx.stroke();\n }\n }\n }\n }\n drawAxes(padding, chartWidth, chartHeight, yMin, yMax, xCount) {\n if (!this.ctx)\n return;\n this.ctx.strokeStyle = '#333';\n this.ctx.lineWidth = 2;\n // Y axis\n this.ctx.beginPath();\n this.ctx.moveTo(padding.left, padding.top);\n this.ctx.lineTo(padding.left, padding.top + chartHeight);\n this.ctx.stroke();\n // X axis\n this.ctx.beginPath();\n this.ctx.moveTo(padding.left, padding.top + chartHeight);\n this.ctx.lineTo(padding.left + chartWidth, padding.top + chartHeight);\n this.ctx.stroke();\n // Y axis labels\n this.ctx.fillStyle = '#666';\n this.ctx.font = '12px sans-serif';\n this.ctx.textAlign = 'right';\n this.ctx.textBaseline = 'middle';\n const yTicks = this.options.yAxis?.ticks || 5;\n for (let i = 0; i <= yTicks; i++) {\n const value = yMax - (yMax - yMin) / yTicks * i;\n const y = padding.top + (chartHeight / yTicks) * i;\n this.ctx.fillText(value.toFixed(1), padding.left - 10, y);\n }\n // X axis labels\n this.ctx.textAlign = 'center';\n this.ctx.textBaseline = 'top';\n const numLabels = this.labels.length;\n if (numLabels > 0) {\n // Check if we're drawing a bar chart\n const hasBarChart = this.datasets.some(d => (d.type || this.type) === 'bar');\n if (hasBarChart) {\n // Bar chart: center labels in equal segments\n const segmentWidth = chartWidth / numLabels;\n for (let i = 0; i < numLabels; i++) {\n const x = padding.left + segmentWidth * i + segmentWidth / 2;\n const label = this.labels[i] || i.toString();\n this.ctx.fillText(label, x, padding.top + chartHeight + 10);\n }\n }\n else {\n // Line/area chart: spread labels edge-to-edge\n const spacing = chartWidth / (numLabels - 1 || 1);\n for (let i = 0; i < numLabels; i++) {\n const x = padding.left + spacing * i;\n const label = this.labels[i] || i.toString();\n this.ctx.fillText(label, x, padding.top + chartHeight + 10);\n }\n }\n }\n }\n drawDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount) {\n const chartType = dataset.type || this.type;\n switch (chartType) {\n case 'line':\n this.drawLineDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n break;\n case 'area':\n this.drawAreaDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n break;\n case 'bar':\n this.drawBarDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount);\n break;\n case 'scatter':\n this.drawScatterDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n break;\n }\n }\n drawLineDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n if (!this.ctx)\n return;\n const points = this.getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax);\n const color = this.getDatasetColor(dataset, datasetIndex);\n const borderWidth = dataset.borderWidth || 2;\n const pointRadius = dataset.pointRadius !== undefined ? dataset.pointRadius : 4;\n if (points.length === 0)\n return;\n // Draw line\n this.ctx.strokeStyle = dataset.borderColor || color;\n this.ctx.lineWidth = borderWidth;\n this.ctx.beginPath();\n this.ctx.moveTo(points[0].x, points[0].y);\n points.slice(1).forEach(p => this.ctx.lineTo(p.x, p.y));\n this.ctx.stroke();\n // Draw points\n this.ctx.fillStyle = color;\n points.forEach(p => {\n this.ctx.beginPath();\n this.ctx.arc(p.x, p.y, pointRadius, 0, Math.PI * 2);\n this.ctx.fill();\n });\n }\n drawAreaDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n if (!this.ctx)\n return;\n const points = this.getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax);\n const color = this.getDatasetColor(dataset, datasetIndex);\n if (points.length === 0)\n return;\n // Draw filled area\n const bgColor = dataset.backgroundColor;\n this.ctx.fillStyle = (Array.isArray(bgColor) ? bgColor[0] : bgColor) || color;\n this.ctx.globalAlpha = 0.3;\n this.ctx.beginPath();\n this.ctx.moveTo(points[0].x, chartHeight);\n this.ctx.lineTo(points[0].x, points[0].y);\n points.slice(1).forEach(p => this.ctx.lineTo(p.x, p.y));\n this.ctx.lineTo(points[points.length - 1].x, chartHeight);\n this.ctx.closePath();\n this.ctx.fill();\n this.ctx.globalAlpha = 1;\n // Draw line\n this.drawLineDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n drawBarDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount) {\n if (!this.ctx)\n return;\n const color = this.getDatasetColor(dataset, datasetIndex);\n const visibleCount = this.datasets.filter((_, i) => !this.hiddenDatasets.has(i)).length;\n const visibleDatasets = this.datasets.filter((_, i) => !this.hiddenDatasets.has(i));\n const datasetOffset = visibleDatasets.indexOf(dataset);\n const numBars = dataset.data.length;\n // For bar charts, divide width into equal segments\n const segmentWidth = chartWidth / numBars;\n const maxBarGroupWidth = segmentWidth * 0.8;\n const singleBarWidth = maxBarGroupWidth / visibleCount;\n dataset.data.forEach((value, index) => {\n const y = typeof value === 'number' ? value : value.y || 0;\n const barHeight = ((y - yMin) / (yMax - yMin)) * chartHeight;\n // Center of this bar's segment\n const segmentCenter = segmentWidth * index + segmentWidth / 2;\n // For single dataset, center the bar. For multiple, offset by dataset position\n let x = segmentCenter - singleBarWidth / 2 + (visibleCount > 1 ? datasetOffset * singleBarWidth - maxBarGroupWidth / 2 + singleBarWidth / 2 : 0);\n if (x < 0)\n x = 0;\n if (x + singleBarWidth > chartWidth)\n x = chartWidth - singleBarWidth;\n const barY = chartHeight - barHeight;\n this.ctx.fillStyle = Array.isArray(dataset.backgroundColor)\n ? dataset.backgroundColor[index % dataset.backgroundColor.length]\n : color;\n this.ctx.fillRect(x, barY, singleBarWidth, barHeight);\n });\n }\n drawScatterDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n this.drawLineDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n drawPieChart(width, height, isDonut) {\n if (!this.ctx || !this.datasets[0])\n return;\n const centerX = width / 2;\n const centerY = height / 2;\n const radius = Math.min(width, height) / 2 - 40;\n const innerRadius = isDonut ? radius * 0.6 : 0;\n const dataset = this.datasets[0];\n const total = dataset.data.reduce((sum, val) => {\n const numVal = typeof val === 'number' ? val : 0;\n return sum + numVal;\n }, 0);\n let currentAngle = -Math.PI / 2;\n dataset.data.forEach((value, index) => {\n const val = typeof value === 'number' ? value : 0;\n const angle = total > 0 ? (val / total) * 2 * Math.PI : 0;\n const endAngle = currentAngle + angle;\n const color = Array.isArray(dataset.backgroundColor)\n ? dataset.backgroundColor[index % dataset.backgroundColor.length]\n : getDefaultColors()[index % getDefaultColors().length];\n this.ctx.fillStyle = color;\n this.ctx.beginPath();\n this.ctx.arc(centerX, centerY, radius, currentAngle, endAngle);\n if (isDonut) {\n this.ctx.arc(centerX, centerY, innerRadius, endAngle, currentAngle, true);\n }\n else {\n this.ctx.lineTo(centerX, centerY);\n }\n this.ctx.closePath();\n this.ctx.fill();\n currentAngle = endAngle;\n });\n }\n drawRadarChart(width, height) {\n if (!this.ctx)\n return;\n const centerX = width / 2;\n const centerY = height / 2;\n const radius = Math.min(width, height) / 2 - 60;\n const numPoints = this.labels.length || this.datasets[0]?.data.length || 3;\n const angleStep = (2 * Math.PI) / numPoints;\n const maxValue = Math.max(...this.datasets.flatMap(d => d.data.map(v => typeof v === 'number' ? v : 0)));\n // Draw grid\n this.ctx.strokeStyle = '#e0e0e0';\n [0.2, 0.4, 0.6, 0.8, 1].forEach(ratio => {\n const r = radius * ratio;\n this.ctx.beginPath();\n for (let i = 0; i <= numPoints; i++) {\n const angle = i * angleStep - Math.PI / 2;\n const x = centerX + Math.cos(angle) * r;\n const y = centerY + Math.sin(angle) * r;\n if (i === 0) {\n this.ctx.moveTo(x, y);\n }\n else {\n this.ctx.lineTo(x, y);\n }\n }\n this.ctx.closePath();\n this.ctx.stroke();\n });\n // Draw axes\n for (let i = 0; i < numPoints; i++) {\n const angle = i * angleStep - Math.PI / 2;\n const x = centerX + Math.cos(angle) * radius;\n const y = centerY + Math.sin(angle) * radius;\n this.ctx.beginPath();\n this.ctx.moveTo(centerX, centerY);\n this.ctx.lineTo(x, y);\n this.ctx.stroke();\n // Labels\n this.ctx.fillStyle = '#666';\n this.ctx.font = '12px sans-serif';\n this.ctx.textAlign = 'center';\n this.ctx.fillText(this.labels[i] || i.toString(), x, y);\n }\n // Draw data\n this.datasets.forEach((dataset, datasetIndex) => {\n if (this.hiddenDatasets.has(datasetIndex))\n return;\n const color = this.getDatasetColor(dataset, datasetIndex);\n this.ctx.fillStyle = color;\n this.ctx.globalAlpha = 0.3;\n this.ctx.beginPath();\n dataset.data.forEach((value, index) => {\n const val = typeof value === 'number' ? value : 0;\n const angle = index * angleStep - Math.PI / 2;\n const r = (val / maxValue) * radius;\n const x = centerX + Math.cos(angle) * r;\n const y = centerY + Math.sin(angle) * r;\n if (index === 0) {\n this.ctx.moveTo(x, y);\n }\n else {\n this.ctx.lineTo(x, y);\n }\n });\n this.ctx.closePath();\n this.ctx.fill();\n this.ctx.globalAlpha = 1;\n this.ctx.strokeStyle = dataset.borderColor || color;\n this.ctx.lineWidth = dataset.borderWidth || 2;\n this.ctx.stroke();\n });\n }\n renderCartesianChartSVG() {\n const padding = { top: 40, right: 40, bottom: 60, left: 60 };\n const width = this.width || this.offsetWidth || 600;\n const height = this.height || this.offsetHeight || 400;\n const chartWidth = width - padding.left - padding.right;\n const chartHeight = height - padding.top - padding.bottom;\n const { min: yMin, max: yMax } = this.getYAxisRange();\n const xCount = this.getXAxisCount();\n const gridSVG = this.renderCartesianGridSVG(padding, chartWidth, chartHeight, yMin, yMax, xCount);\n const axesSVG = this.renderCartesianAxesSVG(padding, chartWidth, chartHeight, yMin, yMax, xCount);\n const datasetsSVG = this.datasets\n .map((dataset, index) => this.hiddenDatasets.has(index) ? '' :\n this.renderDatasetSVG(dataset, index, chartWidth, chartHeight, yMin, yMax, xCount))\n .join('');\n return `\n <svg width=\"${width}\" height=\"${height}\" viewBox=\"0 0 ${width} ${height}\" role=\"img\" aria-label=\"${this.chartSummary()}\">\n <title>${this.chartSummary()}</title>\n ${gridSVG}\n ${axesSVG}\n <g transform=\"translate(${padding.left}, ${padding.top})\">\n ${datasetsSVG}\n </g>\n </svg>\n `;\n }\n renderCartesianGridSVG(padding, chartWidth, chartHeight, yMin, yMax, xCount) {\n if (!this.options.xAxis?.grid && !this.options.yAxis?.grid)\n return '';\n const yTicks = this.options.yAxis?.ticks || 5;\n let gridSVG = '';\n if (this.options.yAxis?.grid) {\n for (let i = 0; i <= yTicks; i++) {\n const y = padding.top + (chartHeight / yTicks) * i;\n gridSVG += `<line class=\"grid-line\" x1=\"${padding.left}\" y1=\"${y}\" x2=\"${padding.left + chartWidth}\" y2=\"${y}\" stroke=\"#e0e0e0\" />`;\n }\n }\n if (this.options.xAxis?.grid) {\n for (let i = 0; i <= xCount; i++) {\n const x = padding.left + (chartWidth / xCount) * i;\n gridSVG += `<line class=\"grid-line\" x1=\"${x}\" y1=\"${padding.top}\" x2=\"${x}\" y2=\"${padding.top + chartHeight}\" stroke=\"#e0e0e0\" />`;\n }\n }\n return gridSVG;\n }\n renderCartesianAxesSVG(padding, chartWidth, chartHeight, yMin, yMax, xCount) {\n const yTicks = this.options.yAxis?.ticks || 5;\n let axesSVG = '';\n // Y axis\n axesSVG += `<line class=\"axis-line\" x1=\"${padding.left}\" y1=\"${padding.top}\" x2=\"${padding.left}\" y2=\"${padding.top + chartHeight}\" stroke=\"#333\" />`;\n // Y axis labels\n for (let i = 0; i <= yTicks; i++) {\n const value = yMax - (yMax - yMin) / yTicks * i;\n const y = padding.top + (chartHeight / yTicks) * i;\n axesSVG += `<text class=\"axis-label\" x=\"${padding.left - 10}\" y=\"${y}\" text-anchor=\"end\" alignment-baseline=\"middle\" fill=\"#666\" font-size=\"12\">${value.toFixed(1)}</text>`;\n }\n // X axis\n axesSVG += `<line class=\"axis-line\" x1=\"${padding.left}\" y1=\"${padding.top + chartHeight}\" x2=\"${padding.left + chartWidth}\" y2=\"${padding.top + chartHeight}\" stroke=\"#333\" />`;\n // X axis labels\n for (let i = 0; i <= xCount; i++) {\n const x = padding.left + (chartWidth / xCount) * i;\n const label = this.labels[i] || i.toString();\n axesSVG += `<text class=\"axis-label\" x=\"${x}\" y=\"${padding.top + chartHeight + 20}\" text-anchor=\"middle\" fill=\"#666\" font-size=\"12\">${label}</text>`;\n }\n return axesSVG;\n }\n renderDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount) {\n const chartType = dataset.type || this.type;\n switch (chartType) {\n case 'line':\n return this.renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n case 'area':\n return this.renderAreaDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n case 'bar':\n return this.renderBarDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount);\n case 'scatter':\n return this.renderScatterDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n case 'bubble':\n return this.renderBubbleDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n default:\n return this.renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n }\n renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n const points = this.getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax);\n const color = this.getDatasetColor(dataset, datasetIndex);\n const borderWidth = dataset.borderWidth || 2;\n const pointRadius = dataset.pointRadius !== undefined ? dataset.pointRadius : 4;\n if (points.length === 0)\n return '';\n const pathD = `M ${points.map(p => `${p.x} ${p.y}`).join(' L ')}`;\n const circlesSVG = points.map(p => `<circle cx=\"${p.x}\" cy=\"${p.y}\" r=\"${pointRadius}\" fill=\"${color}\" />`).join('');\n return `<path d=\"${pathD}\" fill=\"none\" stroke=\"${dataset.borderColor || color}\" stroke-width=\"${borderWidth}\" />${circlesSVG}`;\n }\n renderAreaDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n return this.renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n renderBarDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount) {\n const color = this.getDatasetColor(dataset, datasetIndex);\n const barWidth = (chartWidth / xCount) * 0.8 / this.datasets.filter((_, i) => !this.hiddenDatasets.has(i)).length;\n return dataset.data.map((value, index) => {\n const y = typeof value === 'number' ? value : value.y || 0;\n const barHeight = ((y - yMin) / (yMax - yMin)) * chartHeight;\n const x = (chartWidth / xCount) * index;\n const barY = chartHeight - barHeight;\n return `<rect x=\"${x}\" y=\"${barY}\" width=\"${barWidth}\" height=\"${barHeight}\" fill=\"${color}\" />`;\n }).join('');\n }\n renderScatterDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n return this.renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n renderBubbleDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n return this.renderLineDatasetSVG(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax);\n }\n renderPieChartSVG(isDonut) {\n return '<svg width=\"600\" height=\"400\"><text x=\"300\" y=\"200\" text-anchor=\"middle\">Pie chart placeholder</text></svg>';\n }\n renderRadarChartSVG() {\n return '<svg width=\"600\" height=\"400\"><text x=\"300\" y=\"200\" text-anchor=\"middle\">Radar chart placeholder</text></svg>';\n }\n renderLineDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n const points = this.getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax);\n const color = this.getDatasetColor(dataset, datasetIndex);\n const borderWidth = dataset.borderWidth || 2;\n const pointRadius = dataset.pointRadius !== undefined ? dataset.pointRadius : 4;\n const tension = dataset.tension || 0;\n let pathD = '';\n if (points.length > 0) {\n pathD = `M ${points[0].x} ${points[0].y}`;\n if (tension > 0) {\n // Smooth curve\n for (let i = 1; i < points.length; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const cpx = prev.x + (curr.x - prev.x) * 0.5;\n pathD += ` Q ${cpx} ${prev.y}, ${cpx} ${curr.y}`;\n pathD += ` Q ${cpx} ${curr.y}, ${curr.x} ${curr.y}`;\n }\n }\n else {\n // Straight lines\n points.slice(1).forEach(p => {\n pathD += ` L ${p.x} ${p.y}`;\n });\n }\n }\n return html /*html*/ `\n <path class=\"chart-path\"\n d=\"${pathD}\"\n fill=\"none\"\n stroke=\"${dataset.borderColor || color}\"\n stroke-width=\"${borderWidth}\" />\n ${points.map((p, i) => html `\n <circle class=\"data-point\"\n cx=\"${p.x}\"\n cy=\"${p.y}\"\n r=\"${pointRadius}\"\n fill=\"${color}\"\n @mouseenter=${(e) => this.showTooltip(dataset, i, e)}\n @mouseleave=${() => this.hideTooltip()} />\n `)}\n `;\n }\n renderAreaDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n const points = this.getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax);\n const color = this.getDatasetColor(dataset, datasetIndex);\n const borderWidth = dataset.borderWidth || 2;\n if (points.length === 0)\n return '';\n let pathD = `M ${points[0].x} ${chartHeight}`;\n pathD += ` L ${points[0].x} ${points[0].y}`;\n points.slice(1).forEach(p => {\n pathD += ` L ${p.x} ${p.y}`;\n });\n pathD += ` L ${points[points.length - 1].x} ${chartHeight} Z`;\n const lineD = points.map((p, i) => i === 0 ? `M ${p.x} ${p.y}` : `L ${p.x} ${p.y}`).join(' ');\n return html /*html*/ `\n <path class=\"chart-path\"\n d=\"${pathD}\"\n fill=\"${dataset.backgroundColor || color}\"\n fill-opacity=\"0.3\" />\n <path class=\"chart-path\"\n d=\"${lineD}\"\n fill=\"none\"\n stroke=\"${dataset.borderColor || color}\"\n stroke-width=\"${borderWidth}\" />\n `;\n }\n renderBarDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax, xCount) {\n const color = this.getDatasetColor(dataset, datasetIndex);\n const barWidth = (chartWidth / xCount) * 0.8 / this.datasets.filter((_, i) => !this.hiddenDatasets.has(i)).length;\n const visibleDatasets = this.datasets.filter((_, i) => !this.hiddenDatasets.has(i));\n const datasetOffset = visibleDatasets.indexOf(dataset);\n return html /*html*/ `\n ${dataset.data.map((value, index) => {\n const y = typeof value === 'number' ? value : value.y || 0;\n const barHeight = ((y - yMin) / (yMax - yMin)) * chartHeight;\n const x = (chartWidth / xCount) * index + datasetOffset * barWidth + (chartWidth / xCount) * 0.1;\n const barY = chartHeight - barHeight;\n return html /*html*/ `\n <rect class=\"chart-bar\"\n x=\"${x}\"\n y=\"${barY}\"\n width=\"${barWidth}\"\n height=\"${barHeight}\"\n fill=\"${Array.isArray(dataset.backgroundColor) ? dataset.backgroundColor[index % dataset.backgroundColor.length] : color}\"\n @mouseenter=${(e) => this.showTooltip(dataset, index, e)}\n @mouseleave=${() => this.hideTooltip()} />\n `;\n })}\n `;\n }\n renderBarChart(horizontal) {\n // Similar to renderBarDataset but with swapped axes\n return this.renderCartesianChartSVG();\n }\n renderScatterDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n const color = this.getDatasetColor(dataset, datasetIndex);\n const pointRadius = dataset.pointRadius !== undefined ? dataset.pointRadius : 4;\n return html /*html*/ `\n ${dataset.data.map((value, index) => {\n const point = typeof value === 'object' ? value : { x: index, y: value };\n const x = typeof point.x === 'number' ? (point.x / (this.getXAxisCount())) * chartWidth : 0;\n const y = chartHeight - ((point.y - yMin) / (yMax - yMin)) * chartHeight;\n return html /*html*/ `\n <circle class=\"data-point\"\n cx=\"${x}\"\n cy=\"${y}\"\n r=\"${pointRadius}\"\n fill=\"${color}\"\n @mouseenter=${(e) => this.showTooltip(dataset, index, e)}\n @mouseleave=${() => this.hideTooltip()} />\n `;\n })}\n `;\n }\n renderBubbleDataset(dataset, datasetIndex, chartWidth, chartHeight, yMin, yMax) {\n const color = this.getDatasetColor(dataset, datasetIndex);\n const maxR = Math.max(...dataset.data.map(v => typeof v === 'object' ? v.r || 5 : 5));\n return html /*html*/ `\n ${dataset.data.map((value, index) => {\n const point = value;\n const x = typeof point.x === 'number' ? (point.x / this.getXAxisCount()) * chartWidth : 0;\n const y = chartHeight - ((point.y - yMin) / (yMax - yMin)) * chartHeight;\n const r = ((point.r || 5) / maxR) * 20;\n return html /*html*/ `\n <circle class=\"data-point\"\n cx=\"${x}\"\n cy=\"${y}\"\n r=\"${r}\"\n fill=\"${color}\"\n fill-opacity=\"0.6\"\n @mouseenter=${(e) => this.showTooltip(dataset, index, e)}\n @mouseleave=${() => this.hideTooltip()} />\n `;\n })}\n `;\n }\n renderPieChart(isDonut) {\n const width = this.width || this.offsetWidth || 600;\n const height = this.height || this.offsetHeight || 400;\n const centerX = width / 2;\n const centerY = height / 2;\n const radius = Math.min(width, height) / 2 - 40;\n const innerRadius = isDonut ? radius * 0.6 : 0;\n const dataset = this.datasets[0];\n if (!dataset)\n return html /*html*/ `<svg></svg>`;\n const total = dataset.data.reduce((sum, val) => {\n const numVal = typeof val === 'number' ? val : 0;\n return sum + numVal;\n }, 0);\n let currentAngle = -Math.PI / 2;\n return html /*html*/ `\n <svg width=\"${width}\" height=\"${height}\" viewBox=\"0 0 ${width} ${height}\" role=\"img\" aria-label=\"${this.chartSummary()}\">\n <title>${this.chartSummary()}</title>\n ${dataset.data.map((value, index) => {\n const val = typeof value === 'number' ? value : 0;\n const angle = total > 0 ? (val / total) * 2 * Math.PI : 0;\n const endAngle = currentAngle + angle;\n const x1 = centerX + Math.cos(currentAngle) * radius;\n const y1 = centerY + Math.sin(currentAngle) * radius;\n const x2 = centerX + Math.cos(endAngle) * radius;\n const y2 = centerY + Math.sin(endAngle) * radius;\n const largeArc = angle > Math.PI ? 1 : 0;\n let pathD = `M ${centerX} ${centerY} L ${x1} ${y1} A ${radius} ${radius} 0 ${largeArc} 1 ${x2} ${y2} Z`;\n if (isDonut) {\n const ix1 = centerX + Math.cos(currentAngle) * innerRadius;\n const iy1 = centerY + Math.sin(currentAngle) * innerRadius;\n const ix2 = centerX + Math.cos(endAngle) * innerRadius;\n const iy2 = centerY + Math.sin(endAngle) * innerRadius;\n pathD = `M ${x1} ${y1} A ${radius} ${radius} 0 ${largeArc} 1 ${x2} ${y2} L ${ix2} ${iy2} A ${innerRadius} ${innerRadius} 0 ${largeArc} 0 ${ix1} ${iy1} Z`;\n }\n const color = Array.isArray(dataset.backgroundColor)\n ? dataset.backgroundColor[index % dataset.backgroundColor.length]\n : getDefaultColors()[index % getDefaultColors().length];\n const result = html `\n <path class=\"chart-slice\"\n d=\"${pathD}\"\n fill=\"${color}\"\n @mouseenter=${(e) => this.showTooltip(dataset, index, e)}\n @mouseleave=${() => this.hideTooltip()} />\n `;\n currentAngle = endAngle;\n return result;\n })}\n </svg>\n `;\n }\n renderRadarChart() {\n const width = this.width || this.offsetWidth || 600;\n const height = this.height || this.offsetHeight || 400;\n const centerX = width / 2;\n const centerY = height / 2;\n const radius = Math.min(width, height) / 2 - 60;\n const numPoints = this.labels.length || this.datasets[0]?.data.length || 3;\n const angleStep = (2 * Math.PI) / numPoints;\n const maxValue = Math.max(...this.datasets.flatMap(d => d.data.map(v => typeof v === 'number' ? v : 0)));\n return html /*html*/ `\n <svg width=\"${width}\" height=\"${height}\" viewBox=\"0 0 ${width} ${height}\" role=\"img\" aria-label=\"${this.chartSummary()}\">\n <title>${this.chartSummary()}</title>\n <!-- Radar grid -->\n ${[0.2, 0.4, 0.6, 0.8, 1].map(ratio => {\n const r = radius * ratio;\n const points = Array.from({ length: numPoints }, (_, i) => {\n const angle = i * angleStep - Math.PI / 2;\n return `${centerX + Math.cos(angle) * r},${centerY + Math.sin(angle) * r}`;\n }).join(' ');\n return html /*html*/ `<polygon points=\"${points}\" fill=\"none\" stroke=\"#e0e0e0\" />`;\n })}\n\n <!-- Axes -->\n ${Array.from({ length: numPoints }, (_, i) => {\n const angle = i * angleStep - Math.PI / 2;\n const x = centerX + Math.cos(angle) * radius;\n const y = centerY + Math.sin(angle) * radius;\n return html /*html*/ `\n <line class=\"grid-line\" x1=\"${centerX}\" y1=\"${centerY}\" x2=\"${x}\" y2=\"${y}\" />\n <text class=\"axis-label\" x=\"${x}\" y=\"${y}\" text-anchor=\"middle\">\n ${this.labels[i] || i}\n </text>\n `;\n })}\n\n <!-- Data -->\n ${this.datasets.map((dataset, datasetIndex) => {\n if (this.hiddenDatasets.has(datasetIndex))\n return '';\n const points = dataset.data.map((value, index) => {\n const val = typeof value === 'number' ? value : 0;\n const angle = index * angleStep - Math.PI / 2;\n const r = (val / maxValue) * radius;\n return `${centerX + Math.cos(angle) * r},${centerY + Math.sin(angle) * r}`;\n }).join(' ');\n const color = this.getDatasetColor(dataset, datasetIndex);\n return html /*html*/ `\n <polygon class=\"chart-path\"\n points=\"${points}\"\n fill=\"${color}\"\n fill-opacity=\"0.3\"\n stroke=\"${dataset.borderColor || color}\"\n stroke-width=\"${dataset.borderWidth || 2}\" />\n `;\n })}\n </svg>\n `;\n }\n getDataPoints(dataset, chartWidth, chartHeight, yMin, yMax) {\n return dataset.data.map((value, index) => {\n const y = typeof value === 'number' ? value : value.y || 0;\n return {\n x: (chartWidth / (dataset.data.length - 1 || 1)) * index,\n y: chartHeight - ((y - yMin) / (yMax - yMin)) * chartHeight\n };\n });\n }\n getYAxisRange() {\n const allValues = this.datasets.flatMap((dataset, index) => this.hiddenDatasets.has(index) ? [] :\n dataset.data.map(v => typeof v === 'number' ? v : v.y || 0));\n const min = this.options.yAxis?.min !== undefined ? this.options.yAxis.min : Math.min(0, ...allValues);\n const max = this.options.yAxis?.max !== undefined ? this.options.yAxis.max : Math.max(...allValues);\n return { min, max };\n }\n getXAxisCount() {\n return Math.max(this.labels.length - 1, ...this.datasets.map(d => d.data.length - 1)) || 1;\n }\n getDatasetColor(dataset, index) {\n if (dataset.backgroundColor && !Array.isArray(dataset.backgroundColor)) {\n return dataset.backgroundColor;\n }\n if (dataset.borderColor) {\n return dataset.borderColor;\n }\n return getDefaultColors()[index % getDefaultColors().length];\n }\n handleLegendClick(index) {\n if (!this.options.legend?.clickable)\n return;\n this.toggleDataset(index);\n }\n showTooltip(dataset, index, event) {\n if (this.options.tooltip?.trigger === 'none')\n return;\n const value = dataset.data[index];\n this.labels[index] || index;\n let content = '';\n if (this.options.tooltip?.format) {\n content = this.options.tooltip.format(value, this.datasets.indexOf(dataset), index);\n }\n else {\n const val = typeof value === 'number' ? value : value.y;\n content = `${dataset.label}: ${val}`;\n }\n this.tooltipContent = content;\n this.tooltipX = event.offsetX + 10;\n this.tooltipY = event.offsetY - 30;\n this.tooltipVisible = true;\n }\n hideTooltip() {\n this.tooltipVisible = false;\n }\n refresh() {\n // Force re-render by updating datasets reference\n this.datasets = [...this.datasets];\n }\n update(datasets) {\n this.datasets = datasets;\n requestAnimationFrame(() => this.initAndDrawChart());\n }\n addDataset(dataset) {\n this.datasets = [...this.datasets, dataset];\n }\n removeDataset(index) {\n this.datasets = this.datasets.filter((_, i) => i !== index);\n this.hiddenDatasets.delete(index);\n }\n toggleDataset(index) {\n if (this.hiddenDatasets.has(index)) {\n this.hiddenDatasets.delete(index);\n }\n else {\n this.hiddenDatasets.add(index);\n }\n // Trigger re-render\n this.renderTrigger++;\n }\n exportImage(format = 'svg') {\n if (format === 'svg') {\n // Return the last generated SVG content\n if (!this.datasets.length)\n return '';\n const chartType = this.type;\n switch (chartType) {\n case 'pie':\n case 'donut':\n return this.renderPieChartSVG(chartType === 'donut');\n case 'radar':\n return this.renderRadarChartSVG();\n default:\n return this.renderCartesianChartSVG();\n }\n }\n // For PNG, would need canvas conversion\n return '';\n }\n getData() {\n return {\n datasets: this.datasets,\n labels: this.labels\n };\n }\n });\n return _classThis;\n})();\n\nexport { SniceChart };\n//# sourceMappingURL=snice-chart.js.map\n"],"names":["element","property","query","styles","render","css","html"],"mappings":"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","x_google_ignoreList":[0]}