@slotted/angular 0.1.0-beta.1 → 0.1.0-beta.11

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 (598) hide show
  1. package/README.md +4 -0
  2. package/docs/AGENTS.snippet.md +12 -0
  3. package/docs/action-bar.json +4 -4
  4. package/docs/action-bar.md +3 -3
  5. package/docs/alert.json +7 -1
  6. package/docs/alert.md +3 -3
  7. package/docs/app-shell.examples.md +1 -1
  8. package/docs/app-shell.json +5 -5
  9. package/docs/app-shell.md +2 -2
  10. package/docs/avatar.json +22 -1
  11. package/docs/avatar.md +5 -3
  12. package/docs/badge.json +7 -1
  13. package/docs/badge.md +3 -3
  14. package/docs/button-group.json +2 -0
  15. package/docs/button-group.md +1 -1
  16. package/docs/button.json +51 -11
  17. package/docs/button.md +10 -6
  18. package/docs/calendar.json +8 -1
  19. package/docs/calendar.md +3 -2
  20. package/docs/cascader.json +1 -0
  21. package/docs/cascader.md +1 -1
  22. package/docs/chart.examples.md +1 -1
  23. package/docs/chart.json +10 -1
  24. package/docs/chart.md +3 -2
  25. package/docs/checkbox.json +7 -0
  26. package/docs/checkbox.md +1 -0
  27. package/docs/code-block.json +92 -92
  28. package/docs/code-block.md +69 -69
  29. package/docs/combobox.json +1 -0
  30. package/docs/combobox.md +1 -1
  31. package/docs/command-palette.json +1 -0
  32. package/docs/command-palette.md +1 -1
  33. package/docs/currency-field.json +40 -1
  34. package/docs/currency-field.md +5 -1
  35. package/docs/data-grid.examples.md +2 -2
  36. package/docs/data-grid.json +45 -7
  37. package/docs/data-grid.md +3 -1
  38. package/docs/data-grid.props.md +7 -4
  39. package/docs/data-list.json +2 -1
  40. package/docs/data-list.md +1 -1
  41. package/docs/date-field.json +9 -1
  42. package/docs/date-field.md +3 -2
  43. package/docs/date-picker.examples.md +36 -0
  44. package/docs/date-picker.json +20 -5
  45. package/docs/date-picker.md +5 -4
  46. package/docs/datetime-field.json +1 -0
  47. package/docs/datetime-field.md +1 -1
  48. package/docs/detail-panel.json +4 -2
  49. package/docs/detail-panel.md +8 -3
  50. package/docs/dialog.examples.md +158 -136
  51. package/docs/dialog.json +36 -11
  52. package/docs/dialog.md +4 -2
  53. package/docs/dialog.props.md +1 -1
  54. package/docs/drawer.json +11 -4
  55. package/docs/drawer.md +4 -3
  56. package/docs/entity-picker.json +19 -4
  57. package/docs/entity-picker.md +8 -6
  58. package/docs/event-calendar.json +7 -0
  59. package/docs/event-calendar.md +3 -2
  60. package/docs/filter-bar.json +118 -118
  61. package/docs/filter-bar.md +79 -79
  62. package/docs/form.json +2 -1
  63. package/docs/form.md +1 -1
  64. package/docs/guidelines/README.md +27 -0
  65. package/docs/guidelines/async-feedback.md +129 -0
  66. package/docs/guidelines/browsing.md +74 -0
  67. package/docs/guidelines/builders.md +97 -0
  68. package/docs/guidelines/composition.md +143 -0
  69. package/docs/guidelines/conversations.md +59 -0
  70. package/docs/guidelines/errors-and-conflicts.md +71 -0
  71. package/docs/guidelines/forms.md +202 -0
  72. package/docs/guidelines/index.md +130 -0
  73. package/docs/guidelines/layout-alignment.md +105 -0
  74. package/docs/guidelines/ledgers.md +45 -0
  75. package/docs/guidelines/list-pages.md +206 -0
  76. package/docs/guidelines/overviews.md +76 -0
  77. package/docs/guidelines/own-elements.md +115 -0
  78. package/docs/guidelines/reading-permissions.md +55 -0
  79. package/docs/guidelines/record-pages.md +178 -0
  80. package/docs/guidelines/reports.md +123 -0
  81. package/docs/guidelines/shell-composition.md +94 -0
  82. package/docs/guidelines/workspaces.md +46 -0
  83. package/docs/icon.json +3 -1
  84. package/docs/icon.md +3 -3
  85. package/docs/index.md +12 -0
  86. package/docs/inline-message.json +14 -2
  87. package/docs/inline-message.md +4 -3
  88. package/docs/list-item.json +9 -1
  89. package/docs/list-item.md +3 -3
  90. package/docs/list.json +19 -1
  91. package/docs/list.md +3 -1
  92. package/docs/markdown.json +79 -79
  93. package/docs/markdown.md +65 -65
  94. package/docs/menu.json +12 -0
  95. package/docs/menu.md +2 -0
  96. package/docs/message.json +7 -1
  97. package/docs/message.md +3 -3
  98. package/docs/multi-select.json +1 -0
  99. package/docs/multi-select.md +1 -1
  100. package/docs/notification-center.json +4 -0
  101. package/docs/notification-center.md +2 -2
  102. package/docs/number-field.json +1 -0
  103. package/docs/number-field.md +1 -1
  104. package/docs/otp-input.json +1 -0
  105. package/docs/otp-input.md +1 -1
  106. package/docs/page-header.json +22 -5
  107. package/docs/page-header.md +6 -4
  108. package/docs/page.json +2 -0
  109. package/docs/page.md +2 -1
  110. package/docs/popover.json +1 -1
  111. package/docs/progress-indicator.json +4 -3
  112. package/docs/progress-indicator.md +4 -4
  113. package/docs/prompt-composer.json +41 -1
  114. package/docs/prompt-composer.md +5 -1
  115. package/docs/rating.json +5 -3
  116. package/docs/rating.md +6 -6
  117. package/docs/section.json +28 -16
  118. package/docs/section.md +12 -10
  119. package/docs/segmented-control.json +36 -12
  120. package/docs/segmented-control.md +17 -1
  121. package/docs/select.json +1 -0
  122. package/docs/select.md +1 -1
  123. package/docs/side-navigation.json +1 -0
  124. package/docs/side-navigation.md +1 -1
  125. package/docs/skills/build-own-element/SKILL.md +90 -0
  126. package/docs/skills/compose-screen/SKILL.md +103 -0
  127. package/docs/skills/index.md +9 -0
  128. package/docs/skills/review-screen/SKILL.md +79 -0
  129. package/docs/skills/theme-app/SKILL.md +98 -0
  130. package/docs/skills/waiting-states/SKILL.md +143 -0
  131. package/docs/sparkline.json +5 -2
  132. package/docs/sparkline.md +4 -4
  133. package/docs/split-button.json +4 -1
  134. package/docs/split-button.md +3 -3
  135. package/docs/stat-card.json +5 -1
  136. package/docs/stat-card.md +3 -3
  137. package/docs/table.examples.md +3 -3
  138. package/docs/table.json +85 -3
  139. package/docs/table.md +12 -1
  140. package/docs/tabs.json +17 -7
  141. package/docs/tabs.md +3 -2
  142. package/docs/tag.json +14 -4
  143. package/docs/tag.md +6 -6
  144. package/docs/tags-input.json +29 -2
  145. package/docs/tags-input.md +4 -1
  146. package/docs/text-field.json +2 -1
  147. package/docs/text-field.md +2 -2
  148. package/docs/textarea.json +1 -0
  149. package/docs/textarea.md +1 -1
  150. package/docs/time-field.json +1 -0
  151. package/docs/time-field.md +1 -1
  152. package/docs/timeline.json +138 -132
  153. package/docs/timeline.md +125 -125
  154. package/docs/toast.json +8 -1
  155. package/docs/toast.md +3 -3
  156. package/docs/toggle-group.json +14 -3
  157. package/docs/toggle-group.md +3 -3
  158. package/docs/toggle.json +12 -3
  159. package/docs/toggle.md +3 -3
  160. package/docs/tokens.md +467 -0
  161. package/docs/toolbar.json +1 -1
  162. package/docs/toolbar.md +1 -1
  163. package/docs/tour.json +1 -1
  164. package/docs/typography.json +4 -2
  165. package/docs/typography.md +5 -5
  166. package/fesm2022/slotted-angular-accordion.mjs +4 -2
  167. package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
  168. package/fesm2022/slotted-angular-action-bar.mjs +27 -12
  169. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  170. package/fesm2022/slotted-angular-action-sheet.mjs +48 -29
  171. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
  172. package/fesm2022/slotted-angular-alert.mjs +18 -11
  173. package/fesm2022/slotted-angular-alert.mjs.map +1 -1
  174. package/fesm2022/slotted-angular-app-shell.mjs +111 -61
  175. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  176. package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
  177. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
  178. package/fesm2022/slotted-angular-attachment.mjs +31 -20
  179. package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
  180. package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
  181. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
  182. package/fesm2022/slotted-angular-avatar.mjs +14 -7
  183. package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
  184. package/fesm2022/slotted-angular-badge.mjs +14 -10
  185. package/fesm2022/slotted-angular-badge.mjs.map +1 -1
  186. package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
  187. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
  188. package/fesm2022/slotted-angular-button-group.mjs +7 -4
  189. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  190. package/fesm2022/slotted-angular-button.mjs +120 -29
  191. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  192. package/fesm2022/slotted-angular-calendar.mjs +235 -58
  193. package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
  194. package/fesm2022/slotted-angular-card.mjs +18 -16
  195. package/fesm2022/slotted-angular-card.mjs.map +1 -1
  196. package/fesm2022/slotted-angular-carousel.mjs +22 -11
  197. package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
  198. package/fesm2022/slotted-angular-cascader.mjs +180 -66
  199. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  200. package/fesm2022/slotted-angular-chart.mjs +53 -20
  201. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  202. package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
  203. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
  204. package/fesm2022/slotted-angular-checkbox.mjs +23 -9
  205. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  206. package/fesm2022/slotted-angular-code-block.mjs +29 -15
  207. package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
  208. package/fesm2022/slotted-angular-collapsible.mjs +20 -15
  209. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
  210. package/fesm2022/slotted-angular-color-picker.mjs +77 -22
  211. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  212. package/fesm2022/slotted-angular-column-manager.mjs +68 -31
  213. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  214. package/fesm2022/slotted-angular-combobox.mjs +118 -39
  215. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  216. package/fesm2022/slotted-angular-command-palette.mjs +162 -54
  217. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
  218. package/fesm2022/slotted-angular-container.mjs +6 -4
  219. package/fesm2022/slotted-angular-container.mjs.map +1 -1
  220. package/fesm2022/slotted-angular-context-menu.mjs +5 -4
  221. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
  222. package/fesm2022/slotted-angular-currency-field.mjs +149 -32
  223. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  224. package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
  225. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  226. package/fesm2022/slotted-angular-data-grid.mjs +480 -129
  227. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  228. package/fesm2022/slotted-angular-data-list.mjs +83 -50
  229. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  230. package/fesm2022/slotted-angular-date-field.mjs +74 -25
  231. package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
  232. package/fesm2022/slotted-angular-date-picker.mjs +112 -40
  233. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  234. package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
  235. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  236. package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
  237. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
  238. package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
  239. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  240. package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
  241. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  242. package/fesm2022/slotted-angular-description-list.mjs +33 -19
  243. package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
  244. package/fesm2022/slotted-angular-detail-panel.mjs +48 -30
  245. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
  246. package/fesm2022/slotted-angular-dialog.mjs +72 -30
  247. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  248. package/fesm2022/slotted-angular-divider.mjs +7 -5
  249. package/fesm2022/slotted-angular-divider.mjs.map +1 -1
  250. package/fesm2022/slotted-angular-drawer.mjs +91 -37
  251. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  252. package/fesm2022/slotted-angular-entity-picker.mjs +474 -75
  253. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  254. package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
  255. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  256. package/fesm2022/slotted-angular-field-group.mjs +14 -7
  257. package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
  258. package/fesm2022/slotted-angular-field.mjs +35 -15
  259. package/fesm2022/slotted-angular-field.mjs.map +1 -1
  260. package/fesm2022/slotted-angular-filter-bar.mjs +118 -51
  261. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  262. package/fesm2022/slotted-angular-form.mjs +18 -10
  263. package/fesm2022/slotted-angular-form.mjs.map +1 -1
  264. package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
  265. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
  266. package/fesm2022/slotted-angular-grid.mjs +4 -2
  267. package/fesm2022/slotted-angular-grid.mjs.map +1 -1
  268. package/fesm2022/slotted-angular-highlight.mjs +5 -3
  269. package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
  270. package/fesm2022/slotted-angular-hover-card.mjs +5 -4
  271. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
  272. package/fesm2022/slotted-angular-icon.mjs +6 -3
  273. package/fesm2022/slotted-angular-icon.mjs.map +1 -1
  274. package/fesm2022/slotted-angular-image.mjs +13 -10
  275. package/fesm2022/slotted-angular-image.mjs.map +1 -1
  276. package/fesm2022/slotted-angular-import-export-center.mjs +175 -99
  277. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  278. package/fesm2022/slotted-angular-inline-message.mjs +88 -13
  279. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
  280. package/fesm2022/slotted-angular-inline.mjs +4 -2
  281. package/fesm2022/slotted-angular-inline.mjs.map +1 -1
  282. package/fesm2022/slotted-angular-kbd.mjs +11 -7
  283. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  284. package/fesm2022/slotted-angular-link.mjs +5 -3
  285. package/fesm2022/slotted-angular-link.mjs.map +1 -1
  286. package/fesm2022/slotted-angular-list-item.mjs +21 -18
  287. package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
  288. package/fesm2022/slotted-angular-list.mjs +37 -22
  289. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  290. package/fesm2022/slotted-angular-listbox.mjs +39 -21
  291. package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
  292. package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
  293. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
  294. package/fesm2022/slotted-angular-markdown.mjs +31 -19
  295. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  296. package/fesm2022/slotted-angular-menu.mjs +51 -29
  297. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  298. package/fesm2022/slotted-angular-menubar.mjs +4 -2
  299. package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
  300. package/fesm2022/slotted-angular-message-scroller.mjs +34 -15
  301. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
  302. package/fesm2022/slotted-angular-message.mjs +119 -51
  303. package/fesm2022/slotted-angular-message.mjs.map +1 -1
  304. package/fesm2022/slotted-angular-multi-select.mjs +195 -87
  305. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  306. package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
  307. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
  308. package/fesm2022/slotted-angular-notification-center.mjs +108 -65
  309. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  310. package/fesm2022/slotted-angular-number-field.mjs +23 -11
  311. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  312. package/fesm2022/slotted-angular-otp-input.mjs +13 -8
  313. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
  314. package/fesm2022/slotted-angular-page-header.mjs +90 -48
  315. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  316. package/fesm2022/slotted-angular-page.mjs +38 -10
  317. package/fesm2022/slotted-angular-page.mjs.map +1 -1
  318. package/fesm2022/slotted-angular-pagination.mjs +35 -22
  319. package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
  320. package/fesm2022/slotted-angular-popover.mjs +32 -19
  321. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  322. package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
  323. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
  324. package/fesm2022/slotted-angular-prompt-composer.mjs +57 -20
  325. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
  326. package/fesm2022/slotted-angular-prose.mjs +14 -11
  327. package/fesm2022/slotted-angular-prose.mjs.map +1 -1
  328. package/fesm2022/slotted-angular-radio-group.mjs +15 -9
  329. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
  330. package/fesm2022/slotted-angular-rating.mjs +138 -82
  331. package/fesm2022/slotted-angular-rating.mjs.map +1 -1
  332. package/fesm2022/slotted-angular-result-state.mjs +16 -12
  333. package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
  334. package/fesm2022/slotted-angular-saved-views.mjs +43 -16
  335. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  336. package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
  337. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  338. package/fesm2022/slotted-angular-section.mjs +53 -18
  339. package/fesm2022/slotted-angular-section.mjs.map +1 -1
  340. package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
  341. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  342. package/fesm2022/slotted-angular-select.mjs +190 -94
  343. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  344. package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
  345. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  346. package/fesm2022/slotted-angular-skeleton.mjs +32 -16
  347. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
  348. package/fesm2022/slotted-angular-slider.mjs +31 -11
  349. package/fesm2022/slotted-angular-slider.mjs.map +1 -1
  350. package/fesm2022/slotted-angular-sparkline.mjs +41 -14
  351. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
  352. package/fesm2022/slotted-angular-split-button.mjs +37 -11
  353. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  354. package/fesm2022/slotted-angular-splitter.mjs +11 -9
  355. package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
  356. package/fesm2022/slotted-angular-stack.mjs +4 -2
  357. package/fesm2022/slotted-angular-stack.mjs.map +1 -1
  358. package/fesm2022/slotted-angular-stat-card.mjs +35 -28
  359. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  360. package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
  361. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
  362. package/fesm2022/slotted-angular-stepper.mjs +40 -15
  363. package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
  364. package/fesm2022/slotted-angular-switch.mjs +15 -10
  365. package/fesm2022/slotted-angular-switch.mjs.map +1 -1
  366. package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
  367. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
  368. package/fesm2022/slotted-angular-table.mjs +243 -73
  369. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  370. package/fesm2022/slotted-angular-tabs.mjs +42 -18
  371. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  372. package/fesm2022/slotted-angular-tag.mjs +19 -12
  373. package/fesm2022/slotted-angular-tag.mjs.map +1 -1
  374. package/fesm2022/slotted-angular-tags-input.mjs +253 -28
  375. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
  376. package/fesm2022/slotted-angular-text-field.mjs +55 -15
  377. package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
  378. package/fesm2022/slotted-angular-textarea.mjs +5 -3
  379. package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
  380. package/fesm2022/slotted-angular-time-field.mjs +48 -14
  381. package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
  382. package/fesm2022/slotted-angular-time-picker.mjs +32 -20
  383. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  384. package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
  385. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  386. package/fesm2022/slotted-angular-timeline.mjs +147 -64
  387. package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
  388. package/fesm2022/slotted-angular-toast.mjs +43 -31
  389. package/fesm2022/slotted-angular-toast.mjs.map +1 -1
  390. package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
  391. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  392. package/fesm2022/slotted-angular-toggle.mjs +9 -4
  393. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  394. package/fesm2022/slotted-angular-toolbar.mjs +27 -12
  395. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  396. package/fesm2022/slotted-angular-tooltip.mjs +15 -6
  397. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  398. package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
  399. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
  400. package/fesm2022/slotted-angular-tour.mjs +47 -22
  401. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  402. package/fesm2022/slotted-angular-transfer.mjs +69 -30
  403. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  404. package/fesm2022/slotted-angular-tree.mjs +80 -26
  405. package/fesm2022/slotted-angular-tree.mjs.map +1 -1
  406. package/fesm2022/slotted-angular-typography.mjs +8 -4
  407. package/fesm2022/slotted-angular-typography.mjs.map +1 -1
  408. package/fesm2022/slotted-angular-upload.mjs +125 -57
  409. package/fesm2022/slotted-angular-upload.mjs.map +1 -1
  410. package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
  411. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
  412. package/fesm2022/slotted-angular-wizard.mjs +163 -65
  413. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  414. package/package.json +3 -3
  415. package/types/slotted-angular-accordion.d.ts.map +1 -1
  416. package/types/slotted-angular-action-bar.d.ts +2 -0
  417. package/types/slotted-angular-action-bar.d.ts.map +1 -1
  418. package/types/slotted-angular-action-sheet.d.ts.map +1 -1
  419. package/types/slotted-angular-alert.d.ts +2 -2
  420. package/types/slotted-angular-alert.d.ts.map +1 -1
  421. package/types/slotted-angular-app-shell.d.ts +11 -3
  422. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  423. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
  424. package/types/slotted-angular-attachment.d.ts +1 -1
  425. package/types/slotted-angular-attachment.d.ts.map +1 -1
  426. package/types/slotted-angular-avatar-group.d.ts.map +1 -1
  427. package/types/slotted-angular-avatar.d.ts +11 -3
  428. package/types/slotted-angular-avatar.d.ts.map +1 -1
  429. package/types/slotted-angular-badge.d.ts +1 -1
  430. package/types/slotted-angular-badge.d.ts.map +1 -1
  431. package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
  432. package/types/slotted-angular-button-group.d.ts +1 -1
  433. package/types/slotted-angular-button-group.d.ts.map +1 -1
  434. package/types/slotted-angular-button.d.ts +33 -13
  435. package/types/slotted-angular-button.d.ts.map +1 -1
  436. package/types/slotted-angular-calendar.d.ts +30 -2
  437. package/types/slotted-angular-calendar.d.ts.map +1 -1
  438. package/types/slotted-angular-card.d.ts.map +1 -1
  439. package/types/slotted-angular-carousel.d.ts.map +1 -1
  440. package/types/slotted-angular-cascader.d.ts.map +1 -1
  441. package/types/slotted-angular-chart.d.ts +10 -0
  442. package/types/slotted-angular-chart.d.ts.map +1 -1
  443. package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
  444. package/types/slotted-angular-checkbox.d.ts +7 -1
  445. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  446. package/types/slotted-angular-code-block.d.ts +1 -1
  447. package/types/slotted-angular-code-block.d.ts.map +1 -1
  448. package/types/slotted-angular-collapsible.d.ts +1 -1
  449. package/types/slotted-angular-collapsible.d.ts.map +1 -1
  450. package/types/slotted-angular-color-picker.d.ts.map +1 -1
  451. package/types/slotted-angular-column-manager.d.ts.map +1 -1
  452. package/types/slotted-angular-combobox.d.ts +5 -1
  453. package/types/slotted-angular-combobox.d.ts.map +1 -1
  454. package/types/slotted-angular-command-palette.d.ts +10 -1
  455. package/types/slotted-angular-command-palette.d.ts.map +1 -1
  456. package/types/slotted-angular-container.d.ts.map +1 -1
  457. package/types/slotted-angular-context-menu.d.ts.map +1 -1
  458. package/types/slotted-angular-currency-field.d.ts +63 -15
  459. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  460. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  461. package/types/slotted-angular-data-grid.d.ts +72 -4
  462. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  463. package/types/slotted-angular-data-list.d.ts.map +1 -1
  464. package/types/slotted-angular-date-field.d.ts +11 -1
  465. package/types/slotted-angular-date-field.d.ts.map +1 -1
  466. package/types/slotted-angular-date-picker.d.ts +38 -12
  467. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  468. package/types/slotted-angular-date-range-picker.d.ts +0 -1
  469. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  470. package/types/slotted-angular-datetime-field.d.ts.map +1 -1
  471. package/types/slotted-angular-datetime-picker.d.ts +0 -1
  472. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  473. package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
  474. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  475. package/types/slotted-angular-description-list.d.ts.map +1 -1
  476. package/types/slotted-angular-detail-panel.d.ts.map +1 -1
  477. package/types/slotted-angular-dialog.d.ts +10 -3
  478. package/types/slotted-angular-dialog.d.ts.map +1 -1
  479. package/types/slotted-angular-divider.d.ts.map +1 -1
  480. package/types/slotted-angular-drawer.d.ts +12 -1
  481. package/types/slotted-angular-drawer.d.ts.map +1 -1
  482. package/types/slotted-angular-entity-picker.d.ts +63 -15
  483. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  484. package/types/slotted-angular-event-calendar.d.ts +9 -2
  485. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  486. package/types/slotted-angular-field-group.d.ts.map +1 -1
  487. package/types/slotted-angular-field.d.ts.map +1 -1
  488. package/types/slotted-angular-filter-bar.d.ts.map +1 -1
  489. package/types/slotted-angular-form.d.ts.map +1 -1
  490. package/types/slotted-angular-fullscreen.d.ts.map +1 -1
  491. package/types/slotted-angular-grid.d.ts.map +1 -1
  492. package/types/slotted-angular-highlight.d.ts.map +1 -1
  493. package/types/slotted-angular-hover-card.d.ts.map +1 -1
  494. package/types/slotted-angular-icon.d.ts +2 -2
  495. package/types/slotted-angular-icon.d.ts.map +1 -1
  496. package/types/slotted-angular-image.d.ts.map +1 -1
  497. package/types/slotted-angular-import-export-center.d.ts.map +1 -1
  498. package/types/slotted-angular-inline-message.d.ts +25 -25
  499. package/types/slotted-angular-inline-message.d.ts.map +1 -1
  500. package/types/slotted-angular-inline.d.ts.map +1 -1
  501. package/types/slotted-angular-kbd.d.ts.map +1 -1
  502. package/types/slotted-angular-link.d.ts.map +1 -1
  503. package/types/slotted-angular-list-item.d.ts +1 -1
  504. package/types/slotted-angular-list-item.d.ts.map +1 -1
  505. package/types/slotted-angular-list.d.ts +42 -27
  506. package/types/slotted-angular-list.d.ts.map +1 -1
  507. package/types/slotted-angular-listbox.d.ts.map +1 -1
  508. package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
  509. package/types/slotted-angular-markdown.d.ts.map +1 -1
  510. package/types/slotted-angular-menu.d.ts +11 -2
  511. package/types/slotted-angular-menu.d.ts.map +1 -1
  512. package/types/slotted-angular-menubar.d.ts.map +1 -1
  513. package/types/slotted-angular-message-scroller.d.ts.map +1 -1
  514. package/types/slotted-angular-message.d.ts +1 -1
  515. package/types/slotted-angular-message.d.ts.map +1 -1
  516. package/types/slotted-angular-multi-select.d.ts +15 -1
  517. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  518. package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
  519. package/types/slotted-angular-notification-center.d.ts +1 -1
  520. package/types/slotted-angular-notification-center.d.ts.map +1 -1
  521. package/types/slotted-angular-number-field.d.ts.map +1 -1
  522. package/types/slotted-angular-otp-input.d.ts.map +1 -1
  523. package/types/slotted-angular-page-header.d.ts +15 -6
  524. package/types/slotted-angular-page-header.d.ts.map +1 -1
  525. package/types/slotted-angular-page.d.ts.map +1 -1
  526. package/types/slotted-angular-pagination.d.ts.map +1 -1
  527. package/types/slotted-angular-popover.d.ts.map +1 -1
  528. package/types/slotted-angular-progress-indicator.d.ts +8 -1
  529. package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
  530. package/types/slotted-angular-prompt-composer.d.ts +11 -2
  531. package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
  532. package/types/slotted-angular-prose.d.ts.map +1 -1
  533. package/types/slotted-angular-radio-group.d.ts.map +1 -1
  534. package/types/slotted-angular-rating.d.ts +1 -1
  535. package/types/slotted-angular-rating.d.ts.map +1 -1
  536. package/types/slotted-angular-result-state.d.ts.map +1 -1
  537. package/types/slotted-angular-saved-views.d.ts.map +1 -1
  538. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  539. package/types/slotted-angular-section.d.ts +11 -3
  540. package/types/slotted-angular-section.d.ts.map +1 -1
  541. package/types/slotted-angular-segmented-control.d.ts +15 -2
  542. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  543. package/types/slotted-angular-select.d.ts +12 -2
  544. package/types/slotted-angular-select.d.ts.map +1 -1
  545. package/types/slotted-angular-side-navigation.d.ts.map +1 -1
  546. package/types/slotted-angular-skeleton.d.ts.map +1 -1
  547. package/types/slotted-angular-slider.d.ts.map +1 -1
  548. package/types/slotted-angular-sparkline.d.ts +7 -1
  549. package/types/slotted-angular-sparkline.d.ts.map +1 -1
  550. package/types/slotted-angular-split-button.d.ts +2 -2
  551. package/types/slotted-angular-split-button.d.ts.map +1 -1
  552. package/types/slotted-angular-splitter.d.ts.map +1 -1
  553. package/types/slotted-angular-stack.d.ts.map +1 -1
  554. package/types/slotted-angular-stat-card.d.ts +1 -1
  555. package/types/slotted-angular-stat-card.d.ts.map +1 -1
  556. package/types/slotted-angular-status-indicator.d.ts +1 -1
  557. package/types/slotted-angular-status-indicator.d.ts.map +1 -1
  558. package/types/slotted-angular-stepper.d.ts +1 -1
  559. package/types/slotted-angular-stepper.d.ts.map +1 -1
  560. package/types/slotted-angular-switch.d.ts.map +1 -1
  561. package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
  562. package/types/slotted-angular-table.d.ts +63 -6
  563. package/types/slotted-angular-table.d.ts.map +1 -1
  564. package/types/slotted-angular-tabs.d.ts +3 -4
  565. package/types/slotted-angular-tabs.d.ts.map +1 -1
  566. package/types/slotted-angular-tag.d.ts +1 -1
  567. package/types/slotted-angular-tag.d.ts.map +1 -1
  568. package/types/slotted-angular-tags-input.d.ts +33 -1
  569. package/types/slotted-angular-tags-input.d.ts.map +1 -1
  570. package/types/slotted-angular-text-field.d.ts.map +1 -1
  571. package/types/slotted-angular-textarea.d.ts.map +1 -1
  572. package/types/slotted-angular-theme.d.ts +1 -1
  573. package/types/slotted-angular-time-field.d.ts.map +1 -1
  574. package/types/slotted-angular-time-picker.d.ts +0 -1
  575. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  576. package/types/slotted-angular-time-range-picker.d.ts +0 -1
  577. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  578. package/types/slotted-angular-timeline.d.ts +1 -1
  579. package/types/slotted-angular-timeline.d.ts.map +1 -1
  580. package/types/slotted-angular-toast.d.ts +3 -3
  581. package/types/slotted-angular-toast.d.ts.map +1 -1
  582. package/types/slotted-angular-toggle-group.d.ts +8 -2
  583. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  584. package/types/slotted-angular-toggle.d.ts +1 -1
  585. package/types/slotted-angular-toggle.d.ts.map +1 -1
  586. package/types/slotted-angular-toolbar.d.ts +2 -0
  587. package/types/slotted-angular-toolbar.d.ts.map +1 -1
  588. package/types/slotted-angular-tooltip.d.ts.map +1 -1
  589. package/types/slotted-angular-top-navigation.d.ts.map +1 -1
  590. package/types/slotted-angular-tour.d.ts.map +1 -1
  591. package/types/slotted-angular-transfer.d.ts.map +1 -1
  592. package/types/slotted-angular-tree.d.ts.map +1 -1
  593. package/types/slotted-angular-typography.d.ts +1 -1
  594. package/types/slotted-angular-typography.d.ts.map +1 -1
  595. package/types/slotted-angular-upload.d.ts +2 -2
  596. package/types/slotted-angular-upload.d.ts.map +1 -1
  597. package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
  598. package/types/slotted-angular-wizard.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-data-list.mjs","sources":["../../data-list/src/data-list-defaults.ts","../../data-list/src/data-list-templates.ts","../../data-list/src/data-list.ts","../../data-list/src/slotted-angular-data-list.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport { DEFAULT_DATA_LIST_FIELDS } from '@slotted/core/data-list';\nimport type { GridQuery, GridQueryChange } from '@slotted/core/grid';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\nexport type DataListVariant = 'plain' | 'ruled' | 'framed';\nexport type DataListSize = 'sm' | 'md' | 'lg';\nexport type DataListSelectionMode = 'none' | 'single' | 'multiple';\nexport type DataListMode = 'client' | 'server';\n\n/** `string | null` in `single` and `none`, the keys in `multiple`: the union `table` holds. */\nexport type DataListSelection = string | null | readonly string[];\n\nexport type DataListReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'select' | 'clear' | 'programmatic'\n>;\n\nexport interface DataListQueryRequest extends ChangeRequest<GridQuery> {\n /** Which part of the query moved, so a consumer refetches on sort and debounces on search. */\n readonly change: GridQueryChange;\n}\n\nexport interface DataListExpandedRequest extends ChangeRequest<readonly string[]> {\n /** The record whose disclosure was pressed. */\n readonly key: string;\n}\n\nexport interface DataListActivateEvent<Row = unknown> {\n readonly key: string;\n readonly row: Row;\n readonly reason: 'pointer' | 'keyboard';\n readonly event: Event;\n}\n\nexport type DataListEmptyStatus = 'empty' | 'no-results' | 'error';\n\nexport interface DataListDefaults {\n variant: DataListVariant;\n size: DataListSize;\n fields: number;\n selectionMode: DataListSelectionMode;\n skeletonRows: number;\n loadingDelay: number;\n loadingMinDuration: number;\n}\n\nconst FALLBACK: DataListDefaults = {\n variant: 'ruled',\n size: 'md',\n fields: DEFAULT_DATA_LIST_FIELDS,\n selectionMode: 'none',\n skeletonRows: 5,\n loadingDelay: 200,\n loadingMinDuration: 400,\n};\n\nexport const DATA_LIST_DEFAULTS = new InjectionToken<DataListDefaults>(\n 'slotted data-list defaults',\n {\n providedIn: 'root',\n factory: () => FALLBACK,\n },\n);\n\n/**\n * An application states the family's defaults once. A list that states its\n * own value still wins. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideDataListDefaults(defaults: Partial<DataListDefaults>) {\n return {\n provide: DATA_LIST_DEFAULTS,\n useFactory: (): DataListDefaults => ({\n ...FALLBACK,\n ...Object.fromEntries(Object.entries(defaults).filter(([, value]) => value !== undefined)),\n }),\n };\n}\n\nexport function injectDataListDefaults(): DataListDefaults {\n return inject(DATA_LIST_DEFAULTS);\n}\n","import { Directive, inject, input, TemplateRef } from '@angular/core';\nimport type { GridColumn } from '@slotted/core/grid';\n\nimport type { DataListEmptyStatus } from './data-list-defaults';\n\n/** What a value template receives: the cell's own context, and where it is drawn. */\nexport interface DataListCellContext<Row = unknown> {\n readonly $implicit: Row;\n readonly row: Row;\n readonly column: GridColumn<Row>;\n readonly key: string;\n readonly value: unknown;\n /** The formatted text; `''` for an absent value. */\n readonly text: string;\n readonly place: 'title' | 'subtitle' | 'trailing' | 'field' | 'actions';\n}\n\n/**\n * Draws a column's value wherever the record shows it: title, subtitle,\n * trailing value, field or actions. A template with no column id serves every\n * column that has none of its own.\n */\n@Directive({ selector: 'ng-template[slDataListCell]', standalone: true })\nexport class SlDataListCellTemplate {\n /** The column id, or empty for every column. */\n readonly slDataListCell = input<string>('');\n readonly template = inject<TemplateRef<DataListCellContext>>(TemplateRef);\n}\n\n/** The picture at the start of a record: an avatar, a thumbnail. */\n@Directive({ selector: 'ng-template[slDataListMedia]', standalone: true })\nexport class SlDataListMediaTemplate {\n readonly template = inject<TemplateRef<{ $implicit: unknown }>>(TemplateRef);\n}\n\n/** Replaces the empty, no-results or error state. */\n@Directive({ selector: 'ng-template[slDataListEmpty]', standalone: true })\nexport class SlDataListEmptyTemplate {\n readonly template = inject<TemplateRef<{ $implicit: DataListEmptyStatus }>>(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n output,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlButton, SlButtonEnd } from '@slotted/angular/button';\nimport { SlCheckbox } from '@slotted/angular/checkbox';\nimport {\n SlList,\n SlListSection,\n SlListSectionLabel,\n SlListSectionList,\n} from '@slotted/angular/list';\nimport {\n SlListItem,\n SlListItemActions,\n SlListItemBody,\n SlListItemContent,\n SlListItemDescription,\n SlListItemEnd,\n SlListItemLabel,\n SlListItemStart,\n} from '@slotted/angular/list-item';\nimport {\n SlMenu,\n SlMenuItem,\n SlMenuRadioGroup,\n SlMenuSeparator,\n SlMenuTrigger,\n} from '@slotted/angular/menu';\nimport {\n SlResultState,\n SlResultStateActions,\n SlResultStateContent,\n SlResultStateTitle,\n} from '@slotted/angular/result-state';\nimport { SlSkeleton, SlSkeletonRegion } from '@slotted/angular/skeleton';\nimport { SlVisuallyHidden } from '@slotted/angular/visually-hidden';\nimport { nextSelection } from '@slotted/core/collection';\nimport {\n dataListFieldText,\n dataListKeys,\n dataListNodes,\n describeDataListSort,\n resolveDataListLayout,\n withDataListSortColumn,\n withDataListSortDirection,\n type DataListNode,\n} from '@slotted/core/data-list';\nimport {\n applyQuery,\n cellValue,\n emptyQuery,\n isQueryActive,\n sameQuery,\n type GridColumn,\n type GridColumnState,\n type GridQuery,\n type GridQueryChange,\n type SortDirection,\n} from '@slotted/core/grid';\nimport { dataListMessages, type DataListMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\nimport {\n injectDataListDefaults,\n type DataListActivateEvent,\n type DataListEmptyStatus,\n type DataListExpandedRequest,\n type DataListMode,\n type DataListQueryRequest,\n type DataListSelection,\n type DataListSelectionMode,\n type DataListSize,\n type DataListVariant,\n} from './data-list-defaults';\nimport {\n SlDataListCellTemplate,\n SlDataListEmptyTemplate,\n SlDataListMediaTemplate,\n type DataListCellContext,\n} from './data-list-templates';\n\n/** The value that stands for \"no sort\" in the column group, a string no column id can be. */\nconst NO_SORT = '\\u0000none';\n\n/** Varied lengths, so a skeleton reads as text rather than as a stack of equal bars. */\nconst BAR_WIDTHS = ['9rem', '7rem', '8rem', '6.5rem', '9.5rem'];\nconst FIELD_WIDTHS = ['3.5rem', '5.5rem', '4rem', '5rem', '4.5rem', '6rem'];\n\nlet instances = 0;\n\n/** A click the keyboard produced has no pointer detail. */\nconst pressReason = (event: Event): 'pointer' | 'keyboard' =>\n (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n\nfunction asKeys(value: DataListSelection): readonly string[] {\n if (Array.isArray(value)) return value as readonly string[];\n return value === null || value === undefined ? [] : [value as string];\n}\n\nfunction sameKeys(a: readonly string[], b: readonly string[]): boolean {\n return a.length === b.length && a.every((key, index) => key === b[index]);\n}\n\nfunction makeRequest<T>(value: T, previous: T, reason: ChangeReason, source: unknown, extra = {}) {\n let cancelled = false;\n return {\n value,\n previous,\n reason,\n source,\n ...extra,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n}\n\n/** The record with this key, found without `CSS.escape`, which not every document has. */\nfunction recordOf(root: HTMLElement, key: string): Element | null {\n for (const item of root.querySelectorAll('[data-ui=\"list-item\"][data-key]')) {\n if (item.getAttribute('data-key') === key) return item;\n }\n return null;\n}\n\n/** The first control a record holds, where focus lands on that record. */\nfunction firstControl(item: Element | null): HTMLElement | null {\n return (\n item?.querySelector<HTMLElement>(\n 'input:not(:disabled), a[href][data-part=\"title\"], button[data-part=\"title\"]:not(:disabled), button[data-part=\"more\"], [data-part=\"actions\"] :is(a[href], button:not(:disabled))',\n ) ?? null\n );\n}\n\n/**\n * Writes a part name back on an element whose other directive erased it.\n * `slMenuTriggerFor` binds `[attr.data-part]` to `null` on a trigger that is\n * neither a bar's item nor a submenu's, which takes `slButton`'s `root` with\n * it; the binding is constant, so writing it after the first render holds.\n */\n@Directive({ selector: '[slDataListPart]', standalone: true })\nexport class SlDataListPart {\n readonly part = input.required<string>({ alias: 'slDataListPart' });\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n constructor() {\n afterNextRender(() => this.host.nativeElement.setAttribute('data-part', this.part()));\n }\n}\n\n/** Marks the consumer's own content for the footer, beside load-more: a pagination. */\n@Directive({ selector: '[slDataListFooter]', standalone: true })\nexport class SlDataListFooter {}\n\ninterface FieldView<Row> {\n readonly column: GridColumn<Row>;\n readonly context: DataListCellContext<Row>;\n readonly template: TemplateRef<DataListCellContext> | null;\n readonly numeric: boolean;\n}\n\ninterface RecordView<Row> {\n readonly key: string;\n readonly row: Row;\n readonly disabled: boolean;\n readonly busy: boolean;\n readonly selected: boolean;\n readonly current: boolean;\n readonly expanded: boolean;\n readonly titleText: string;\n readonly title: FieldView<Row> | null;\n readonly subtitle: FieldView<Row> | null;\n readonly trailing: FieldView<Row> | null;\n readonly actions: readonly FieldView<Row>[];\n readonly fields: readonly FieldView<Row>[];\n readonly hidden: number;\n readonly href: string | undefined;\n readonly fieldsId: string;\n}\n\n/**\n * A small tabular set drawn as a list of records. Each record is a list item:\n * the title, a subtitle, a trailing value, and the fields of highest priority\n * as pairs of a label and a value. The family reads the column model and the\n * query `sl-data-grid` reads, and it has no keyboard of its own: every control\n * is a native one in the page's tab order.\n */\n@Component({\n selector: 'sl-data-list',\n standalone: true,\n exportAs: 'slDataList',\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlButtonEnd,\n SlCheckbox,\n SlDataListPart,\n SlGlyph,\n SlIcon,\n SlList,\n SlListItem,\n SlListItemActions,\n SlListItemBody,\n SlListItemContent,\n SlListItemDescription,\n SlListItemEnd,\n SlListItemLabel,\n SlListItemStart,\n SlListSection,\n SlListSectionLabel,\n SlListSectionList,\n SlMenu,\n SlMenuItem,\n SlMenuRadioGroup,\n SlMenuSeparator,\n SlMenuTrigger,\n SlResultState,\n SlResultStateActions,\n SlResultStateContent,\n SlResultStateTitle,\n SlSkeleton,\n SlSkeletonRegion,\n SlVisuallyHidden,\n ],\n styleUrls: [\n '../../../styles/src/data-list/data-list.css',\n '../../../styles/src/list/list.css',\n '../../../styles/src/list-item/list-item.css',\n '../../../styles/src/checkbox/checkbox.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'data-list',\n 'data-part': 'root',\n '[attr.data-variant]': 'variantValue()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.aria-busy]': \"refreshing() ? 'true' : null\",\n '[attr.data-loading]': \"refreshing() ? '' : null\",\n '(focusin)': 'onFocusIn($event)',\n },\n template: `\n <div data-part=\"header\">\n @if (selectionModeValue() === 'multiple' && !showLoader()) {\n <span data-part=\"select-all\">\n <span\n slCheckbox\n [checked]=\"allSelected()\"\n [indeterminate]=\"someSelected() && !allSelected()\"\n [disabled]=\"allKeys().length === 0\"\n [size]=\"sizeValue()\"\n (click)=\"pressAll($event)\"\n ><span slVisuallyHidden>{{ t('selectAll', { count: allKeys().length }) }}</span></span\n >\n </span>\n }\n <output data-part=\"count\" aria-live=\"polite\">{{ showLoader() ? '' : countText() }}</output>\n @if (layout().sortable.length > 0) {\n <span data-part=\"sort\" [attr.data-direction]=\"firstKey()?.direction ?? null\">\n <button\n slButton\n slDataListPart=\"root\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n [disabled]=\"showLoader()\"\n [attr.aria-label]=\"sortName()\"\n [slMenuTriggerFor]=\"sortMenu\"\n >\n {{ sortText()\n }}<span slButtonEnd>\n @if (firstKey()) {\n <span slIcon size=\"sm\"><svg slGlyph name=\"chevron-down\"></svg></span>\n }\n </span>\n </button>\n <sl-menu #sortMenu align=\"end\" [aria-label]=\"t('sort')\">\n <sl-menu-radio-group\n [attr.aria-labelledby]=\"id + '-sort-column'\"\n [value]=\"firstKey()?.column ?? noSort\"\n (valueChangeRequest)=\"chooseColumn($event)\"\n >\n <div data-part=\"group-label\" [id]=\"id + '-sort-column'\">\n {{ t('sortColumn') }}\n </div>\n <button slMenuRadioItem [value]=\"noSort\">{{ t('sortNone') }}</button>\n @for (column of layout().sortable; track column.id) {\n <button slMenuRadioItem [value]=\"column.id\">{{ column.label }}</button>\n }\n </sl-menu-radio-group>\n <hr slMenuSeparator />\n <sl-menu-radio-group\n [attr.aria-labelledby]=\"id + '-sort-direction'\"\n [value]=\"firstKey()?.direction ?? ''\"\n (valueChangeRequest)=\"chooseDirection($event)\"\n >\n <div data-part=\"group-label\" [id]=\"id + '-sort-direction'\">\n {{ t('sortDirection') }}\n </div>\n <button slMenuRadioItem value=\"ascending\" [disabled]=\"!firstKey()\">\n {{ t('ascending') }}\n </button>\n <button slMenuRadioItem value=\"descending\" [disabled]=\"!firstKey()\">\n {{ t('descending') }}\n </button>\n </sl-menu-radio-group>\n </sl-menu>\n </span>\n }\n </div>\n\n @if (errorOverRows()) {\n <ng-container\n [ngTemplateOutlet]=\"emptyState\"\n [ngTemplateOutletContext]=\"{ $implicit: 'error' }\"\n />\n }\n\n @if (showLoader()) {\n <div data-part=\"loader\">\n <div\n slSkeletonRegion\n [loading]=\"firstLoad()\"\n [delay]=\"loadingDelayValue()\"\n [minDuration]=\"loadingMinDurationValue()\"\n [messages]=\"{ label: t('loading') }\"\n (reveal)=\"holding.set(false)\"\n >\n <ul slList aria-hidden=\"true\" inert [variant]=\"variantValue()\" [size]=\"sizeValue()\">\n @for (index of skeletonIndexes(); track index) {\n <li slListItem align=\"start\" [variant]=\"variantValue()\" [size]=\"sizeValue()\">\n <div slListItemContent>\n <div slListItemBody>\n <div slListItemLabel><span slSkeleton [inlineSize]=\"bar(index)\"></span></div>\n @if (layout().subtitle) {\n <div slListItemDescription>\n <span slSkeleton [inlineSize]=\"bar(index + 2)\"></span>\n </div>\n }\n </div>\n @if (layout().trailing) {\n <div slListItemEnd>\n <span slSkeleton [inlineSize]=\"fieldBar(index + 3)\"></span>\n </div>\n }\n @if (layout().shown > 0) {\n <dl data-part=\"fields\">\n @for (column of shownColumns(); track column.id; let field = $index) {\n <div data-part=\"field\">\n <dt data-part=\"field-label\">{{ column.label }}</dt>\n <dd data-part=\"field-value\">\n <span slSkeleton [inlineSize]=\"fieldBar(index + field)\"></span>\n </dd>\n </div>\n }\n </dl>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n </div>\n } @else if (emptyStatus(); as status) {\n <ng-container\n [ngTemplateOutlet]=\"emptyState\"\n [ngTemplateOutletContext]=\"{ $implicit: status }\"\n />\n } @else {\n <ul\n slList\n [variant]=\"variantValue()\"\n [size]=\"sizeValue()\"\n [attr.aria-label]=\"labelledBy() ? null : listLabel()\"\n [attr.aria-labelledby]=\"labelledBy() ?? null\"\n >\n <ng-container\n [ngTemplateOutlet]=\"nodesTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: nodes() }\"\n />\n </ul>\n }\n\n @if (hasMore() || footers().length > 0) {\n <div data-part=\"footer\">\n @if (hasMore() && !showLoader()) {\n <span data-part=\"load-more\">\n <button\n slButton\n size=\"sm\"\n tone=\"secondary\"\n variant=\"outline\"\n [loading]=\"loadingValue() && loadingMore()\"\n (click)=\"askForMore()\"\n >\n {{ t('loadMore') }}\n </button>\n </span>\n }\n <ng-content select=\"[slDataListFooter]\" />\n </div>\n }\n\n <ng-template #nodesTemplate let-list>\n @for (node of list; track node.key) {\n @if (node.kind === 'row') {\n <ng-container\n [ngTemplateOutlet]=\"recordTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record(node.key, node.row) }\"\n />\n } @else {\n <li slListSection>\n <span slListSectionLabel role=\"heading\" [attr.aria-level]=\"min(node.level + 2, 6)\">{{\n sectionLabel(node)\n }}</span>\n <ul slListSectionList>\n <ng-container\n [ngTemplateOutlet]=\"nodesTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: node.children }\"\n />\n </ul>\n </li>\n }\n }\n </ng-template>\n\n <ng-template #recordTemplate let-view>\n <li\n slListItem\n align=\"start\"\n [attr.data-key]=\"view.key\"\n [attr.data-expanded]=\"view.expanded ? '' : null\"\n [variant]=\"variantValue()\"\n [size]=\"sizeValue()\"\n [selected]=\"view.selected\"\n [current]=\"view.current ? (view.href === undefined ? true : 'page') : false\"\n [disabled]=\"view.disabled\"\n [loading]=\"view.busy\"\n >\n <div slListItemContent>\n @if (selectionModeValue() !== 'none' || mediaTemplate()) {\n <div slListItemStart>\n @if (selectionModeValue() !== 'none') {\n <span data-part=\"selection\">\n <span\n slCheckbox\n [checked]=\"view.selected\"\n [disabled]=\"view.disabled\"\n [size]=\"sizeValue()\"\n (click)=\"pressRecord(view.key, $event)\"\n ><span slVisuallyHidden>{{\n t('selectRow', { title: view.titleText })\n }}</span></span\n >\n </span>\n }\n @if (mediaTemplate(); as media) {\n <span data-part=\"media\">\n <ng-container\n [ngTemplateOutlet]=\"media.template\"\n [ngTemplateOutletContext]=\"{ $implicit: view.row }\"\n />\n </span>\n }\n </div>\n }\n <div slListItemBody>\n <div slListItemLabel>\n @if (view.href !== undefined) {\n <a\n data-part=\"title\"\n [attr.href]=\"view.href\"\n [attr.aria-disabled]=\"view.disabled || view.busy ? 'true' : null\"\n (click)=\"activateLink(view, $event)\"\n ><ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: view.title }\"\n /></a>\n } @else if (activatable()) {\n <button\n data-part=\"title\"\n type=\"button\"\n [disabled]=\"view.disabled || view.busy\"\n (click)=\"activate(view, $event)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: view.title }\"\n />\n </button>\n } @else {\n <span data-part=\"title\"\n ><ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: view.title }\"\n /></span>\n }\n </div>\n @if (view.subtitle) {\n <div slListItemDescription>\n <ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: view.subtitle }\"\n />\n </div>\n }\n </div>\n @if (view.trailing) {\n <div slListItemEnd>\n <span data-part=\"trailing\"\n ><ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: view.trailing }\"\n /></span>\n </div>\n }\n @if (view.fields.length > 0) {\n <dl data-part=\"fields\" [id]=\"view.fieldsId\">\n @for (field of view.fields; track field.column.id) {\n <div data-part=\"field\">\n <dt data-part=\"field-label\">{{ field.column.label }}</dt>\n <dd data-part=\"field-value\" [attr.data-numeric]=\"field.numeric ? '' : null\">\n <ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: field }\"\n />\n </dd>\n </div>\n }\n </dl>\n }\n @if (view.hidden > 0) {\n <button\n data-part=\"more\"\n type=\"button\"\n [attr.aria-controls]=\"view.fieldsId\"\n [attr.aria-expanded]=\"view.expanded\"\n (click)=\"toggleExpanded(view.key, $event)\"\n >\n {{ view.expanded ? t('less') : t('more', { count: view.hidden }) }}\n <span slIcon size=\"sm\"><svg slGlyph name=\"chevron-down\"></svg></span>\n </button>\n }\n </div>\n @if (view.actions.length > 0) {\n <div slListItemActions>\n @for (field of view.actions; track field.column.id) {\n <ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: field }\"\n />\n }\n </div>\n }\n </li>\n </ng-template>\n\n <ng-template #value let-field>\n @if (field) {\n @if (field.template) {\n <ng-container\n [ngTemplateOutlet]=\"field.template\"\n [ngTemplateOutletContext]=\"field.context\"\n />\n } @else if (field.context.text === '' && field.context.place !== 'actions') {\n <span data-part=\"field-empty\"\n ><span aria-hidden=\"true\">—</span><span slVisuallyHidden>{{ t('empty') }}</span></span\n >\n } @else {\n {{ field.context.text }}\n }\n }\n </ng-template>\n\n <ng-template #emptyState let-status>\n <div data-part=\"empty\">\n @if (emptyTemplate(); as custom) {\n <ng-container\n [ngTemplateOutlet]=\"custom.template\"\n [ngTemplateOutletContext]=\"{ $implicit: status }\"\n />\n } @else {\n <section slResultState reach=\"section\" tabindex=\"-1\" [status]=\"status\">\n <div slResultStateContent>\n <div slResultStateTitle>{{ emptyTitle(status) }}</div>\n </div>\n @if (status === 'no-results') {\n <div slResultStateActions>\n <button\n slButton\n size=\"md\"\n tone=\"secondary\"\n variant=\"outline\"\n (click)=\"clearFilters($event)\"\n >\n {{ t('clearFilters') }}\n </button>\n </div>\n } @else if (status === 'error') {\n <div slResultStateActions>\n <button\n slButton\n size=\"md\"\n tone=\"secondary\"\n variant=\"outline\"\n (click)=\"retry.emit()\"\n >\n {{ t('retry') }}\n </button>\n </div>\n }\n </section>\n }\n </div>\n </ng-template>\n `,\n})\nexport class SlDataList<Row = unknown> {\n private readonly defaults = injectDataListDefaults();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n protected readonly id = `slotted-data-list-${++instances}`;\n protected readonly noSort = NO_SORT;\n protected readonly min = Math.min;\n\n readonly rows = input.required<readonly Row[]>();\n readonly rowKey = input.required<keyof Row | ((row: Row) => string)>();\n readonly columns = input.required<readonly GridColumn<Row>[]>();\n readonly columnState = input<Partial<GridColumnState> | undefined>(undefined);\n readonly title = input<string | undefined>(undefined);\n readonly subtitle = input<string | undefined>(undefined);\n readonly trailing = input<string | undefined>(undefined);\n readonly fields = input<number | undefined>(undefined);\n readonly label = input<string | undefined>(undefined);\n readonly labelledBy = input<string | undefined>(undefined);\n readonly mode = input<DataListMode | undefined>(undefined);\n readonly totalCount = input<number | undefined>(undefined);\n readonly selectionMode = input<DataListSelectionMode | undefined>(undefined);\n readonly disabledKeys = input<readonly string[]>([]);\n readonly loadingKeys = input<readonly string[]>([]);\n /** The record open beside the list. The family never moves it. */\n readonly current = input<string | null | undefined>(undefined);\n readonly href = input<((row: Row) => string) | undefined>(undefined);\n readonly activatable = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /** A message, or `true` for the family's own. Rows already shown stay. */\n readonly error = input<boolean | string | null | undefined>(undefined);\n readonly hasMore = input(false, { transform: booleanAttribute });\n readonly variant = input<DataListVariant | undefined>(undefined);\n readonly size = input<DataListSize | undefined>(undefined);\n /** Words laid over the catalog of the language in force, key by key. */\n readonly messages = input<PartialMessages<DataListMessages> | undefined>(undefined);\n /** Formats the fields and counts; the provider's locale otherwise. */\n readonly locale = input<string | undefined>(undefined);\n readonly skeletonRows = input<number | undefined>(undefined);\n readonly loadingDelay = input<number | undefined>(undefined);\n readonly loadingMinDuration = input<number | undefined>(undefined);\n\n readonly query = model<GridQuery>(emptyQuery());\n readonly value = model<DataListSelection>(null);\n readonly expanded = model<readonly string[]>([]);\n\n readonly queryChangeRequest = output<DataListQueryRequest>();\n readonly valueChangeRequest = output<ChangeRequest<DataListSelection>>();\n readonly expandedChangeRequest = output<DataListExpandedRequest>();\n readonly activate$ = output<DataListActivateEvent<Row>>({ alias: 'activate' });\n readonly loadMore = output<void>();\n readonly retry = output<void>();\n\n protected readonly cellTemplates = contentChildren(SlDataListCellTemplate);\n protected readonly mediaTemplate = computed(() => this.mediaTemplates()[0] ?? null);\n protected readonly emptyTemplate = computed(() => this.emptyTemplates()[0] ?? null);\n private readonly mediaTemplates = contentChildren(SlDataListMediaTemplate);\n private readonly emptyTemplates = contentChildren(SlDataListEmptyTemplate);\n protected readonly footers = contentChildren(SlDataListFooter);\n\n protected readonly holding = signal(false);\n protected readonly loadingMore = signal(false);\n private anchor: string | undefined;\n private focusedKey: string | null = null;\n private previousKeys: readonly string[] = [];\n\n /** The family's words in the language in force, with this list's `messages` laid over them. */\n readonly t = injectMessages(dataListMessages, this.messages);\n private readonly providedLocale = injectLocale();\n protected readonly localeValue = computed(() => this.locale() ?? this.providedLocale());\n /** What a boolean field says, in the language in force. */\n private readonly booleans = computed(() => ({ true: this.t('true'), false: this.t('false') }));\n protected readonly variantValue = computed(() => this.variant() ?? this.defaults.variant);\n protected readonly sizeValue = computed(() => this.size() ?? this.defaults.size);\n protected readonly selectionModeValue = computed(\n () => this.selectionMode() ?? this.defaults.selectionMode,\n );\n protected readonly loadingValue = computed(() => this.loading());\n protected readonly loadingDelayValue = computed(\n () => this.loadingDelay() ?? this.defaults.loadingDelay,\n );\n protected readonly loadingMinDurationValue = computed(\n () => this.loadingMinDuration() ?? this.defaults.loadingMinDuration,\n );\n protected readonly listLabel = computed(() => this.label() ?? this.writtenLabel ?? null);\n private readonly modeValue = computed(\n () => this.mode() ?? (this.totalCount() === undefined ? 'client' : 'server'),\n );\n\n private readonly keyOf = computed(() => {\n const rowKey = this.rowKey();\n return typeof rowKey === 'function'\n ? rowKey\n : (row: Row) => String((row as Record<PropertyKey, unknown>)[rowKey as PropertyKey]);\n });\n\n protected readonly layout = computed(() =>\n resolveDataListLayout(this.columns(), {\n title: this.title(),\n subtitle: this.subtitle(),\n trailing: this.trailing(),\n fields: this.fields() ?? this.defaults.fields,\n columnState: this.columnState(),\n }),\n );\n protected readonly shownColumns = computed(() =>\n this.layout().fields.slice(0, this.layout().shown),\n );\n\n private readonly applied = computed(() => {\n const rows = this.rows();\n const keyOf = this.keyOf();\n if (this.modeValue() === 'server') {\n return {\n nodes: rows.map((row, index) => ({ kind: 'row' as const, key: keyOf(row), row, index })),\n visible: rows,\n total: this.totalCount() ?? rows.length,\n };\n }\n const result = applyQuery(rows, this.columns(), this.query(), {\n rowKey: keyOf,\n locale: this.localeValue(),\n booleans: this.booleans(),\n });\n return { nodes: dataListNodes(result.nodes), visible: result.rows, total: result.total };\n });\n\n protected readonly nodes = computed<readonly DataListNode<Row>[]>(() => this.applied().nodes);\n private readonly drawnKeys = computed(() => dataListKeys(this.nodes()));\n private readonly disabledSet = computed(() => new Set(this.disabledKeys()));\n private readonly selectedKeys = computed(() => asKeys(this.value()));\n private readonly selectedSet = computed(() => new Set(this.selectedKeys()));\n\n protected readonly firstLoad = computed(() => this.loading() && this.rows().length === 0);\n protected readonly showLoader = computed(() => this.firstLoad() || this.holding());\n protected readonly skeletonIndexes = computed(() =>\n Array.from({ length: this.skeletonRows() ?? this.defaults.skeletonRows }, (_, index) => index),\n );\n\n protected readonly emptyStatus = computed<DataListEmptyStatus | null>(() => {\n if (this.showLoader()) return null;\n if (this.error() && this.rows().length === 0) return 'error';\n if (this.drawnKeys().length > 0) return null;\n return this.rows().length === 0 && !isQueryActive(this.query()) ? 'empty' : 'no-results';\n });\n protected readonly errorOverRows = computed(\n () => !!this.error() && this.rows().length > 0 && !this.showLoader(),\n );\n protected readonly refreshing = computed(\n () => this.loading() && !this.showLoader() && this.rows().length > 0 && !this.loadingMore(),\n );\n\n protected readonly firstKey = computed(() => this.query().sort[0]);\n protected readonly sortName = computed(() => {\n const sort = this.query().sort;\n if (sort.length === 0) return this.t('sort');\n return this.t('sortNamed', { order: describeDataListSort(sort, this.columns(), this.t) });\n });\n protected readonly sortText = computed(() => {\n const sort = this.query().sort;\n const column = this.columns().find((entry) => entry.id === sort[0]?.column);\n if (!column) return this.t('sort');\n return this.t('sortSummary', { column: column.label, more: sort.length - 1 });\n });\n\n protected readonly allKeys = computed(() => {\n const disabled = this.disabledSet();\n const keyOf = this.keyOf();\n const keys =\n this.modeValue() === 'client' ? this.applied().visible.map(keyOf) : this.drawnKeys();\n return keys.filter((key) => !disabled.has(key));\n });\n protected readonly allSelected = computed(() => {\n const all = this.allKeys();\n const selected = this.selectedSet();\n return all.length > 0 && all.every((key) => selected.has(key));\n });\n protected readonly someSelected = computed(() =>\n this.allKeys().some((key) => this.selectedSet().has(key)),\n );\n protected readonly countText = computed(() => {\n const selected = this.selectedKeys().length;\n const count = this.applied().total;\n return this.selectionModeValue() !== 'none' && selected > 0\n ? this.t('selectedCount', { selected, count })\n : this.t('count', { count });\n });\n\n constructor() {\n afterRenderEffect(() => {\n const keys = this.drawnKeys();\n const before = this.previousKeys;\n this.previousKeys = keys;\n const lost = this.focusedKey;\n if (lost === null || keys.includes(lost)) return;\n const active = this.host.ownerDocument.activeElement;\n if (active && active !== this.host.ownerDocument.body && this.host.contains(active)) return;\n const at = before.indexOf(lost);\n const next = before.slice(at + 1).find((key) => keys.includes(key));\n const previous = before\n .slice(0, Math.max(at, 0))\n .reverse()\n .find((key) => keys.includes(key));\n const target = next ?? previous;\n this.focusedKey = target ?? null;\n if (target !== undefined) firstControl(recordOf(this.host, target))?.focus();\n else\n this.host\n .querySelector<HTMLElement>('[data-part=\"empty\"] [data-ui=\"result-state\"]')\n ?.focus();\n });\n afterRenderEffect(() => {\n if (this.firstLoad()) this.holding.set(true);\n if (!this.loading()) this.loadingMore.set(false);\n });\n }\n\n protected bar(index: number) {\n return BAR_WIDTHS[index % BAR_WIDTHS.length];\n }\n\n protected fieldBar(index: number) {\n return FIELD_WIDTHS[index % FIELD_WIDTHS.length];\n }\n\n protected sectionLabel(node: Extract<DataListNode<Row>, { kind: 'section' }>) {\n const column = this.columns().find((entry) => entry.id === node.column);\n return `${column?.label ?? node.column}: ${node.text} · ${new Intl.NumberFormat(this.localeValue()).format(node.count)}`;\n }\n\n protected emptyTitle(status: DataListEmptyStatus) {\n if (status === 'error') {\n const error = this.error();\n return typeof error === 'string' ? error : this.t('errorTitle');\n }\n return this.t(status === 'no-results' ? 'noResultsTitle' : 'emptyTitle');\n }\n\n /* ── One record ────────────────────────────────────────────────────── */\n\n private field(\n column: GridColumn<Row>,\n row: Row,\n key: string,\n place: DataListCellContext['place'],\n ): FieldView<Row> {\n const text =\n dataListFieldText(column, row, { locale: this.localeValue(), booleans: this.booleans() }) ??\n '';\n const templates = this.cellTemplates();\n const template =\n templates.find((entry) => entry.slDataListCell() === column.id) ??\n templates.find((entry) => entry.slDataListCell() === '') ??\n null;\n return {\n column,\n numeric: column.kind === 'number' || column.numeric === true,\n template: (template?.template as TemplateRef<DataListCellContext> | undefined) ?? null,\n context: { $implicit: row, row, column, key, value: cellValue(column, row), text, place },\n };\n }\n\n protected record(key: string, row: Row): RecordView<Row> {\n const layout = this.layout();\n const expanded = this.expanded().includes(key);\n const current = this.current();\n const title = layout.title ? this.field(layout.title, row, key, 'title') : null;\n const columns = expanded ? layout.fields : layout.fields.slice(0, layout.shown);\n return {\n key,\n row,\n disabled: this.disabledSet().has(key),\n busy: this.loadingKeys().includes(key),\n selected: this.selectionModeValue() !== 'none' && this.selectedSet().has(key),\n current: current !== undefined && current !== null && current === key,\n expanded,\n titleText: title?.context.text || key,\n title,\n subtitle: layout.subtitle ? this.field(layout.subtitle, row, key, 'subtitle') : null,\n trailing: layout.trailing ? this.field(layout.trailing, row, key, 'trailing') : null,\n actions: layout.actions.map((column) => this.field(column, row, key, 'actions')),\n fields: columns.map((column) => this.field(column, row, key, 'field')),\n hidden: layout.fields.length - layout.shown,\n href: this.href()?.(row),\n fieldsId: `${this.id}-${key}-fields`,\n };\n }\n\n /* ── Requests ──────────────────────────────────────────────────────── */\n\n private requestQuery(\n next: GridQuery,\n change: GridQueryChange,\n reason: ChangeReason,\n source?: unknown,\n ) {\n const query = this.query();\n if (sameQuery(next, query)) return false;\n const request = makeRequest(next, query, reason, source, { change }) as DataListQueryRequest;\n this.queryChangeRequest.emit(request);\n if (request.cancelled) return false;\n this.query.set(next);\n return true;\n }\n\n private requestValue(next: DataListSelection, reason: ChangeReason, source?: unknown) {\n const value = this.value();\n if (sameKeys(asKeys(next), asKeys(value))) return;\n const request = makeRequest(next, value, reason, source) as ChangeRequest<DataListSelection>;\n this.valueChangeRequest.emit(request);\n if (request.cancelled) return;\n this.value.set(next);\n }\n\n protected toggleExpanded(key: string, event: Event) {\n const expanded = this.expanded();\n const next = expanded.includes(key)\n ? expanded.filter((entry) => entry !== key)\n : [...expanded, key];\n const request = makeRequest(next, expanded, pressReason(event), event, {\n key,\n }) as DataListExpandedRequest;\n this.expandedChangeRequest.emit(request);\n if (request.cancelled) return;\n this.expanded.set(next);\n }\n\n protected pressRecord(key: string, event: MouseEvent) {\n const mode = this.selectionModeValue();\n if (mode === 'none' || this.disabledSet().has(key)) return;\n const reason = pressReason(event);\n const selected = this.selectedKeys();\n const chosen = this.selectedSet();\n if (mode === 'single') {\n this.anchor = key;\n this.requestValue(chosen.has(key) ? null : key, reason, event);\n return;\n }\n const selectable = this.drawnKeys().filter((entry) => !this.disabledSet().has(entry));\n if (event.shiftKey && this.anchor !== undefined) {\n const result = nextSelection({\n action: 'range',\n mode: 'multiple',\n selected,\n keys: selectable,\n key,\n anchor: this.anchor,\n disabled: (entry) => this.disabledSet().has(entry),\n });\n const outside = selected.filter((entry) => !selectable.includes(entry));\n this.requestValue([...outside, ...result.selected], 'select', event);\n return;\n }\n this.anchor = key;\n this.requestValue(\n chosen.has(key) ? selected.filter((entry) => entry !== key) : [...selected, key],\n reason,\n event,\n );\n }\n\n protected pressAll(event: MouseEvent) {\n const all = this.allKeys();\n const covered = new Set(all);\n const selected = this.selectedKeys();\n const chosen = this.selectedSet();\n const everything = this.allSelected();\n const next = everything\n ? selected.filter((key) => !covered.has(key))\n : [...selected, ...all.filter((key) => !chosen.has(key))];\n this.requestValue(next, everything ? 'clear' : 'select', event);\n }\n\n protected chooseColumn(request: ChangeRequest<string>) {\n const next = request.value === NO_SORT ? null : request.value;\n this.sortTo(withDataListSortColumn(this.query(), next), request.reason, request.source);\n }\n\n protected chooseDirection(request: ChangeRequest<string>) {\n this.sortTo(\n withDataListSortDirection(this.query(), request.value as SortDirection),\n request.reason,\n request.source,\n );\n }\n\n private sortTo(next: GridQuery, reason: ChangeReason, source: unknown) {\n if (!this.requestQuery(next, 'sort', reason, source)) return;\n getLiveAnnouncer(this.host.ownerDocument).announce(\n next.sort.length === 0\n ? this.t('sortCleared')\n : this.t('sortedBy', { order: describeDataListSort(next.sort, this.columns(), this.t) }),\n );\n }\n\n protected clearFilters(event: Event) {\n const query = this.query();\n const page = query.page && 'index' in query.page ? { ...query.page, index: 0 } : query.page;\n this.requestQuery({ ...query, filter: null, search: '', page }, 'filter', 'clear', event);\n }\n\n protected activate(view: RecordView<Row>, event: MouseEvent) {\n this.activate$.emit({ key: view.key, row: view.row, reason: pressReason(event), event });\n }\n\n protected activateLink(view: RecordView<Row>, event: MouseEvent) {\n if (view.disabled || view.busy) {\n event.preventDefault();\n return;\n }\n this.activate(view, event);\n }\n\n protected askForMore() {\n this.loadingMore.set(true);\n this.loadMore.emit();\n }\n\n protected onFocusIn(event: FocusEvent) {\n const item = (event.target as HTMLElement).closest('[data-ui=\"list-item\"][data-key]');\n this.focusedKey = item?.getAttribute('data-key') ?? this.focusedKey;\n }\n\n /* ── Imperative ────────────────────────────────────────────────────── */\n\n /** Focus goes to the first control of the first record, or to the empty state. */\n focus() {\n const first = this.host.querySelector('[data-ui=\"list-item\"][data-key]');\n const control = firstControl(first);\n if (control) control.focus();\n else\n this.host.querySelector<HTMLElement>('[data-part=\"empty\"] [data-ui=\"result-state\"]')?.focus();\n }\n\n /** Focus goes to the first control of the record with this key. Returns whether it was found. */\n focusKey(key: string): boolean {\n const control = firstControl(recordOf(this.host, key));\n control?.focus();\n return control !== null;\n }\n\n /** Scrolls the record into view. Returns whether it was found. */\n scrollToKey(key: string): boolean {\n const item = recordOf(this.host, key);\n item?.scrollIntoView({ block: 'nearest' });\n return item !== null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slotted-angular-data-list.mjs","sources":["../../data-list/src/data-list-defaults.ts","../../data-list/src/data-list-templates.ts","../../data-list/src/data-list.ts","../../data-list/src/slotted-angular-data-list.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport { DEFAULT_DATA_LIST_FIELDS } from '@slotted/core/data-list';\nimport type { GridQuery, GridQueryChange } from '@slotted/core/grid';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\nexport type DataListVariant = 'plain' | 'ruled' | 'framed';\nexport type DataListSize = 'sm' | 'md' | 'lg';\nexport type DataListSelectionMode = 'none' | 'single' | 'multiple';\nexport type DataListMode = 'client' | 'server';\n\n/** `string | null` in `single` and `none`, the keys in `multiple`: the union `table` holds. */\nexport type DataListSelection = string | null | readonly string[];\n\nexport type DataListReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'select' | 'clear' | 'programmatic'\n>;\n\nexport interface DataListQueryRequest extends ChangeRequest<GridQuery> {\n /** Which part of the query moved, so a consumer refetches on sort and debounces on search. */\n readonly change: GridQueryChange;\n}\n\nexport interface DataListExpandedRequest extends ChangeRequest<readonly string[]> {\n /** The record whose disclosure was pressed. */\n readonly key: string;\n}\n\nexport interface DataListActivateEvent<Row = unknown> {\n readonly key: string;\n readonly row: Row;\n readonly reason: 'pointer' | 'keyboard';\n readonly event: Event;\n}\n\nexport type DataListEmptyStatus = 'empty' | 'no-results' | 'error';\n\nexport interface DataListDefaults {\n variant: DataListVariant;\n size: DataListSize;\n fields: number;\n selectionMode: DataListSelectionMode;\n skeletonRows: number;\n loadingDelay: number;\n loadingMinDuration: number;\n}\n\nconst FALLBACK: DataListDefaults = {\n variant: 'ruled',\n size: 'md',\n fields: DEFAULT_DATA_LIST_FIELDS,\n selectionMode: 'none',\n skeletonRows: 5,\n loadingDelay: 200,\n loadingMinDuration: 400,\n};\n\nexport const DATA_LIST_DEFAULTS = new InjectionToken<DataListDefaults>(\n 'slotted data-list defaults',\n {\n providedIn: 'root',\n factory: () => FALLBACK,\n },\n);\n\n/**\n * An application states the family's defaults once. A list that states its\n * own value still wins. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideDataListDefaults(defaults: Partial<DataListDefaults>) {\n return {\n provide: DATA_LIST_DEFAULTS,\n useFactory: (): DataListDefaults => ({\n ...FALLBACK,\n ...Object.fromEntries(Object.entries(defaults).filter(([, value]) => value !== undefined)),\n }),\n };\n}\n\nexport function injectDataListDefaults(): DataListDefaults {\n return inject(DATA_LIST_DEFAULTS);\n}\n","import { Directive, inject, input, TemplateRef } from '@angular/core';\nimport type { GridColumn } from '@slotted/core/grid';\n\nimport type { DataListEmptyStatus } from './data-list-defaults';\n\n/** What a value template receives: the cell's own context, and where it is drawn. */\nexport interface DataListCellContext<Row = unknown> {\n readonly $implicit: Row;\n readonly row: Row;\n readonly column: GridColumn<Row>;\n readonly key: string;\n readonly value: unknown;\n /** The formatted text; `''` for an absent value. */\n readonly text: string;\n readonly place: 'title' | 'subtitle' | 'trailing' | 'field' | 'actions';\n}\n\n/**\n * Draws a column's value wherever the record shows it: title, subtitle,\n * trailing value, field or actions. A template with no column id serves every\n * column that has none of its own.\n */\n@Directive({ selector: 'ng-template[slDataListCell]', standalone: true })\nexport class SlDataListCellTemplate {\n /** The column id, or empty for every column. */\n readonly slDataListCell = input<string>('');\n readonly template = inject<TemplateRef<DataListCellContext>>(TemplateRef);\n}\n\n/** The picture at the start of a record: an avatar, a thumbnail. */\n@Directive({ selector: 'ng-template[slDataListMedia]', standalone: true })\nexport class SlDataListMediaTemplate {\n readonly template = inject<TemplateRef<{ $implicit: unknown }>>(TemplateRef);\n}\n\n/** Replaces the empty, no-results or error state. */\n@Directive({ selector: 'ng-template[slDataListEmpty]', standalone: true })\nexport class SlDataListEmptyTemplate {\n readonly template = inject<TemplateRef<{ $implicit: DataListEmptyStatus }>>(TemplateRef);\n}\n","import { writeSelectorKey } from '@slotted/core/selector-key';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n output,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlButton, SlButtonEnd } from '@slotted/angular/button';\nimport { SlCheckbox } from '@slotted/angular/checkbox';\nimport {\n SlList,\n SlListSection,\n SlListSectionLabel,\n SlListSectionList,\n} from '@slotted/angular/list';\nimport {\n SlListItem,\n SlListItemActions,\n SlListItemBody,\n SlListItemContent,\n SlListItemDescription,\n SlListItemEnd,\n SlListItemLabel,\n SlListItemStart,\n} from '@slotted/angular/list-item';\nimport {\n SlMenu,\n SlMenuItem,\n SlMenuRadioGroup,\n SlMenuSeparator,\n SlMenuTrigger,\n} from '@slotted/angular/menu';\nimport {\n SlResultState,\n SlResultStateActions,\n SlResultStateContent,\n SlResultStateTitle,\n} from '@slotted/angular/result-state';\nimport { SlSkeleton, SlSkeletonRegion } from '@slotted/angular/skeleton';\nimport { SlVisuallyHidden } from '@slotted/angular/visually-hidden';\nimport { nextSelection } from '@slotted/core/collection';\nimport {\n dataListFieldText,\n dataListKeys,\n dataListNodes,\n describeDataListSort,\n resolveDataListLayout,\n withDataListSortColumn,\n withDataListSortDirection,\n type DataListNode,\n} from '@slotted/core/data-list';\nimport {\n applyQuery,\n cellValue,\n emptyQuery,\n isQueryActive,\n sameQuery,\n type GridColumn,\n type GridColumnState,\n type GridQuery,\n type GridQueryChange,\n type SortDirection,\n} from '@slotted/core/grid';\nimport { dataListMessages, type DataListMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\nimport {\n injectDataListDefaults,\n type DataListActivateEvent,\n type DataListEmptyStatus,\n type DataListExpandedRequest,\n type DataListMode,\n type DataListQueryRequest,\n type DataListSelection,\n type DataListSelectionMode,\n type DataListSize,\n type DataListVariant,\n} from './data-list-defaults';\nimport {\n SlDataListCellTemplate,\n SlDataListEmptyTemplate,\n SlDataListMediaTemplate,\n type DataListCellContext,\n} from './data-list-templates';\n\n/** The value that stands for \"no sort\" in the column group, a string no column id can be. */\nconst NO_SORT = '\\u0000none';\n\n/** Varied lengths, so a skeleton reads as text rather than as a stack of equal bars. */\nconst BAR_WIDTHS = ['9rem', '7rem', '8rem', '6.5rem', '9.5rem'];\nconst FIELD_WIDTHS = ['3.5rem', '5.5rem', '4rem', '5rem', '4.5rem', '6rem'];\n\nlet instances = 0;\n\n/** A click the keyboard produced has no pointer detail. */\nconst pressReason = (event: Event): 'pointer' | 'keyboard' =>\n (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n\nfunction asKeys(value: DataListSelection): readonly string[] {\n if (Array.isArray(value)) return value as readonly string[];\n return value === null || value === undefined ? [] : [value as string];\n}\n\nfunction sameKeys(a: readonly string[], b: readonly string[]): boolean {\n return a.length === b.length && a.every((key, index) => key === b[index]);\n}\n\nfunction makeRequest<T>(value: T, previous: T, reason: ChangeReason, source: unknown, extra = {}) {\n let cancelled = false;\n return {\n value,\n previous,\n reason,\n source,\n ...extra,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n}\n\n/** The record with this key, found without `CSS.escape`, which not every document has. */\nfunction recordOf(root: HTMLElement, key: string): Element | null {\n for (const item of root.querySelectorAll('[data-ui=\"list-item\"][data-key]')) {\n if (item.getAttribute('data-key') === key) return item;\n }\n return null;\n}\n\n/** The first control a record holds, where focus lands on that record. */\nfunction firstControl(item: Element | null): HTMLElement | null {\n return (\n item?.querySelector<HTMLElement>(\n 'input:not(:disabled), a[href][data-part=\"title\"], button[data-part=\"title\"]:not(:disabled), button[data-part=\"more\"], [data-part=\"actions\"] :is(a[href], button:not(:disabled))',\n ) ?? null\n );\n}\n\n/**\n * Writes a part name back on an element whose other directive erased it.\n * `slMenuTriggerFor` binds `[attr.data-part]` to `null` on a trigger that is\n * neither a bar's item nor a submenu's, which takes `slButton`'s `root` with\n * it; the binding is constant, so writing it after the first render holds.\n */\n@Directive({ selector: '[slDataListPart]', standalone: true })\nexport class SlDataListPart {\n readonly part = input.required<string>({ alias: 'slDataListPart' });\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n constructor() {\n afterNextRender(() => writeSelectorKey(this.host.nativeElement, 'part', this.part()));\n }\n}\n\n/** Marks the consumer's own content for the footer, beside load-more: a pagination. */\n@Directive({ selector: '[slDataListFooter]', standalone: true })\nexport class SlDataListFooter {}\n\ninterface FieldView<Row> {\n readonly column: GridColumn<Row>;\n readonly context: DataListCellContext<Row>;\n readonly template: TemplateRef<DataListCellContext> | null;\n readonly numeric: boolean;\n}\n\ninterface RecordView<Row> {\n readonly key: string;\n readonly row: Row;\n readonly disabled: boolean;\n readonly busy: boolean;\n readonly selected: boolean;\n readonly current: boolean;\n readonly expanded: boolean;\n readonly titleText: string;\n readonly title: FieldView<Row> | null;\n readonly subtitle: FieldView<Row> | null;\n readonly trailing: FieldView<Row> | null;\n readonly actions: readonly FieldView<Row>[];\n readonly fields: readonly FieldView<Row>[];\n readonly hidden: number;\n readonly href: string | undefined;\n readonly fieldsId: string;\n}\n\n/**\n * A small tabular set drawn as a list of records. Each record is a list item:\n * the title, a subtitle, a trailing value, and the fields of highest priority\n * as pairs of a label and a value. The family reads the column model and the\n * query `sl-data-grid` reads, and it has no keyboard of its own: every control\n * is a native one in the page's tab order.\n */\n@Component({\n selector: 'sl-data-list',\n standalone: true,\n exportAs: 'slDataList',\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlButtonEnd,\n SlCheckbox,\n SlDataListPart,\n SlGlyph,\n SlIcon,\n SlList,\n SlListItem,\n SlListItemActions,\n SlListItemBody,\n SlListItemContent,\n SlListItemDescription,\n SlListItemEnd,\n SlListItemLabel,\n SlListItemStart,\n SlListSection,\n SlListSectionLabel,\n SlListSectionList,\n SlMenu,\n SlMenuItem,\n SlMenuRadioGroup,\n SlMenuSeparator,\n SlMenuTrigger,\n SlResultState,\n SlResultStateActions,\n SlResultStateContent,\n SlResultStateTitle,\n SlSkeleton,\n SlSkeletonRegion,\n SlVisuallyHidden,\n ],\n styleUrls: [\n '../../../styles/src/data-list/data-list.css',\n '../../../styles/src/list/list.css',\n '../../../styles/src/list-item/list-item.css',\n '../../../styles/src/checkbox/checkbox.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'data-list',\n 'data-ui-data-list': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-variant]': 'variantValue()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.aria-busy]': \"refreshing() ? 'true' : null\",\n '[attr.data-loading]': \"refreshing() ? '' : null\",\n '(focusin)': 'onFocusIn($event)',\n },\n template: `\n <div data-part=\"header\" data-part-header=\"\">\n @if (selectionModeValue() === 'multiple' && !showLoader()) {\n <span data-part=\"select-all\" data-part-select-all=\"\">\n <span\n slCheckbox\n [checked]=\"allSelected()\"\n [indeterminate]=\"someSelected() && !allSelected()\"\n [disabled]=\"allKeys().length === 0\"\n [size]=\"sizeValue()\"\n (click)=\"pressAll($event)\"\n ><span slVisuallyHidden>{{ t('selectAll', { count: allKeys().length }) }}</span></span\n >\n </span>\n }\n <output data-part=\"count\" data-part-count=\"\" aria-live=\"polite\">{{\n showLoader() ? '' : countText()\n }}</output>\n @if (layout().sortable.length > 0) {\n <span\n data-part=\"sort\"\n data-part-sort=\"\"\n [attr.data-direction]=\"firstKey()?.direction ?? null\"\n >\n <button\n slButton\n slDataListPart=\"root\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n [disabled]=\"showLoader()\"\n [attr.aria-label]=\"sortName()\"\n [slMenuTriggerFor]=\"sortMenu\"\n >\n {{ sortText()\n }}<span slButtonEnd>\n @if (firstKey()) {\n <span slIcon size=\"sm\"><svg slGlyph name=\"chevron-down\"></svg></span>\n }\n </span>\n </button>\n <sl-menu #sortMenu align=\"end\" [aria-label]=\"t('sort')\">\n <sl-menu-radio-group\n [attr.aria-labelledby]=\"id + '-sort-column'\"\n [value]=\"firstKey()?.column ?? noSort\"\n (valueChangeRequest)=\"chooseColumn($event)\"\n >\n <div data-part=\"group-label\" data-part-group-label=\"\" [id]=\"id + '-sort-column'\">\n {{ t('sortColumn') }}\n </div>\n <button slMenuRadioItem [value]=\"noSort\">{{ t('sortNone') }}</button>\n @for (column of layout().sortable; track column.id) {\n <button slMenuRadioItem [value]=\"column.id\">{{ column.label }}</button>\n }\n </sl-menu-radio-group>\n <hr slMenuSeparator />\n <sl-menu-radio-group\n [attr.aria-labelledby]=\"id + '-sort-direction'\"\n [value]=\"firstKey()?.direction ?? ''\"\n (valueChangeRequest)=\"chooseDirection($event)\"\n >\n <div data-part=\"group-label\" data-part-group-label=\"\" [id]=\"id + '-sort-direction'\">\n {{ t('sortDirection') }}\n </div>\n <button slMenuRadioItem value=\"ascending\" [disabled]=\"!firstKey()\">\n {{ t('ascending') }}\n </button>\n <button slMenuRadioItem value=\"descending\" [disabled]=\"!firstKey()\">\n {{ t('descending') }}\n </button>\n </sl-menu-radio-group>\n </sl-menu>\n </span>\n }\n </div>\n\n @if (errorOverRows()) {\n <ng-container\n [ngTemplateOutlet]=\"emptyState\"\n [ngTemplateOutletContext]=\"{ $implicit: 'error' }\"\n />\n }\n\n @if (showLoader()) {\n <div data-part=\"loader\" data-part-loader=\"\">\n <div\n slSkeletonRegion\n [loading]=\"firstLoad()\"\n [delay]=\"loadingDelayValue()\"\n [minDuration]=\"loadingMinDurationValue()\"\n [messages]=\"{ label: t('loading') }\"\n (reveal)=\"holding.set(false)\"\n >\n <ul slList aria-hidden=\"true\" inert [variant]=\"variantValue()\" [size]=\"sizeValue()\">\n @for (index of skeletonIndexes(); track index) {\n <li slListItem align=\"start\" [variant]=\"variantValue()\" [size]=\"sizeValue()\">\n <div slListItemContent>\n <div slListItemBody>\n <div slListItemLabel><span slSkeleton [inlineSize]=\"bar(index)\"></span></div>\n @if (layout().subtitle) {\n <div slListItemDescription>\n <span slSkeleton [inlineSize]=\"bar(index + 2)\"></span>\n </div>\n }\n </div>\n @if (layout().trailing) {\n <div slListItemEnd>\n <span slSkeleton [inlineSize]=\"fieldBar(index + 3)\"></span>\n </div>\n }\n @if (layout().shown > 0) {\n <dl data-part=\"fields\" data-part-fields=\"\">\n @for (column of shownColumns(); track column.id; let field = $index) {\n <div data-part=\"field\" data-part-field=\"\">\n <dt data-part=\"field-label\" data-part-field-label=\"\">\n {{ column.label }}\n </dt>\n <dd data-part=\"field-value\" data-part-field-value=\"\">\n <span slSkeleton [inlineSize]=\"fieldBar(index + field)\"></span>\n </dd>\n </div>\n }\n </dl>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n </div>\n } @else if (emptyStatus(); as status) {\n <ng-container\n [ngTemplateOutlet]=\"emptyState\"\n [ngTemplateOutletContext]=\"{ $implicit: status }\"\n />\n } @else {\n <ul\n slList\n [variant]=\"variantValue()\"\n [size]=\"sizeValue()\"\n [attr.aria-label]=\"labelledBy() ? null : listLabel()\"\n [attr.aria-labelledby]=\"labelledBy() ?? null\"\n >\n <ng-container\n [ngTemplateOutlet]=\"nodesTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: nodes() }\"\n />\n </ul>\n }\n\n @if (hasMore() || footers().length > 0) {\n <div data-part=\"footer\" data-part-footer=\"\">\n @if (hasMore() && !showLoader()) {\n <span data-part=\"load-more\" data-part-load-more=\"\">\n <button\n slButton\n size=\"sm\"\n tone=\"secondary\"\n variant=\"outline\"\n [loading]=\"loadingValue() && loadingMore()\"\n (click)=\"askForMore()\"\n >\n {{ t('loadMore') }}\n </button>\n </span>\n }\n <ng-content select=\"[slDataListFooter]\" />\n </div>\n }\n\n <ng-template #nodesTemplate let-list>\n @for (node of list; track node.key) {\n @if (node.kind === 'row') {\n <ng-container\n [ngTemplateOutlet]=\"recordTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record(node.key, node.row) }\"\n />\n } @else {\n <li slListSection>\n <span slListSectionLabel role=\"heading\" [attr.aria-level]=\"min(node.level + 2, 6)\">{{\n sectionLabel(node)\n }}</span>\n <ul slListSectionList>\n <ng-container\n [ngTemplateOutlet]=\"nodesTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: node.children }\"\n />\n </ul>\n </li>\n }\n }\n </ng-template>\n\n <ng-template #recordTemplate let-view>\n <li\n slListItem\n align=\"start\"\n [attr.data-key]=\"view.key\"\n [attr.data-expanded]=\"view.expanded ? '' : null\"\n [variant]=\"variantValue()\"\n [size]=\"sizeValue()\"\n [selected]=\"view.selected\"\n [current]=\"view.current ? (view.href === undefined ? true : 'page') : false\"\n [disabled]=\"view.disabled\"\n [loading]=\"view.busy\"\n >\n <div slListItemContent>\n @if (selectionModeValue() !== 'none' || mediaTemplate()) {\n <div slListItemStart>\n @if (selectionModeValue() !== 'none') {\n <span data-part=\"selection\" data-part-selection=\"\">\n <span\n slCheckbox\n [checked]=\"view.selected\"\n [disabled]=\"view.disabled\"\n [size]=\"sizeValue()\"\n (click)=\"pressRecord(view.key, $event)\"\n ><span slVisuallyHidden>{{\n t('selectRow', { title: view.titleText })\n }}</span></span\n >\n </span>\n }\n @if (mediaTemplate(); as media) {\n <span data-part=\"media\" data-part-media=\"\">\n <ng-container\n [ngTemplateOutlet]=\"media.template\"\n [ngTemplateOutletContext]=\"{ $implicit: view.row }\"\n />\n </span>\n }\n </div>\n }\n <div slListItemBody>\n <div slListItemLabel>\n @if (view.href !== undefined) {\n <a\n data-part=\"title\"\n data-part-title=\"\"\n [attr.href]=\"view.href\"\n [attr.aria-disabled]=\"view.disabled || view.busy ? 'true' : null\"\n (click)=\"activateLink(view, $event)\"\n ><ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: view.title }\"\n /></a>\n } @else if (activatable()) {\n <button\n data-part=\"title\"\n data-part-title=\"\"\n type=\"button\"\n [disabled]=\"view.disabled || view.busy\"\n (click)=\"activate(view, $event)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: view.title }\"\n />\n </button>\n } @else {\n <span data-part=\"title\" data-part-title=\"\"\n ><ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: view.title }\"\n /></span>\n }\n </div>\n @if (view.subtitle) {\n <div slListItemDescription>\n <ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: view.subtitle }\"\n />\n </div>\n }\n </div>\n @if (view.trailing) {\n <div slListItemEnd>\n <span data-part=\"trailing\" data-part-trailing=\"\"\n ><ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: view.trailing }\"\n /></span>\n </div>\n }\n @if (view.fields.length > 0) {\n <dl data-part=\"fields\" data-part-fields=\"\" [id]=\"view.fieldsId\">\n @for (field of view.fields; track field.column.id) {\n <div data-part=\"field\" data-part-field=\"\">\n <dt data-part=\"field-label\" data-part-field-label=\"\">{{ field.column.label }}</dt>\n <dd\n data-part=\"field-value\"\n data-part-field-value=\"\"\n [attr.data-numeric]=\"field.numeric ? '' : null\"\n >\n <ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: field }\"\n />\n </dd>\n </div>\n }\n </dl>\n }\n @if (view.hidden > 0) {\n <button\n data-part=\"more\"\n data-part-more=\"\"\n type=\"button\"\n [attr.aria-controls]=\"view.fieldsId\"\n [attr.aria-expanded]=\"view.expanded\"\n (click)=\"toggleExpanded(view.key, $event)\"\n >\n {{ view.expanded ? t('less') : t('more', { count: view.hidden }) }}\n <span slIcon size=\"sm\"><svg slGlyph name=\"chevron-down\"></svg></span>\n </button>\n }\n </div>\n @if (view.actions.length > 0) {\n <div slListItemActions>\n @for (field of view.actions; track field.column.id) {\n <ng-container\n [ngTemplateOutlet]=\"value\"\n [ngTemplateOutletContext]=\"{ $implicit: field }\"\n />\n }\n </div>\n }\n </li>\n </ng-template>\n\n <ng-template #value let-field>\n @if (field) {\n @if (field.template) {\n <ng-container\n [ngTemplateOutlet]=\"field.template\"\n [ngTemplateOutletContext]=\"field.context\"\n />\n } @else if (field.context.text === '' && field.context.place !== 'actions') {\n <span data-part=\"field-empty\" data-part-field-empty=\"\"\n ><span aria-hidden=\"true\">—</span><span slVisuallyHidden>{{ t('empty') }}</span></span\n >\n } @else {\n {{ field.context.text }}\n }\n }\n </ng-template>\n\n <ng-template #emptyState let-status>\n <div data-part=\"empty\" data-part-empty=\"\">\n @if (emptyTemplate(); as custom) {\n <ng-container\n [ngTemplateOutlet]=\"custom.template\"\n [ngTemplateOutletContext]=\"{ $implicit: status }\"\n />\n } @else {\n <section slResultState reach=\"section\" tabindex=\"-1\" [status]=\"status\">\n <div slResultStateContent>\n <div slResultStateTitle>{{ emptyTitle(status) }}</div>\n </div>\n @if (status === 'no-results') {\n <div slResultStateActions>\n <button\n slButton\n size=\"md\"\n tone=\"secondary\"\n variant=\"outline\"\n (click)=\"clearFilters($event)\"\n >\n {{ t('clearFilters') }}\n </button>\n </div>\n } @else if (status === 'error') {\n <div slResultStateActions>\n <button\n slButton\n size=\"md\"\n tone=\"secondary\"\n variant=\"outline\"\n (click)=\"retry.emit()\"\n >\n {{ t('retry') }}\n </button>\n </div>\n }\n </section>\n }\n </div>\n </ng-template>\n `,\n})\nexport class SlDataList<Row = unknown> {\n private readonly defaults = injectDataListDefaults();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n protected readonly id = `slotted-data-list-${++instances}`;\n protected readonly noSort = NO_SORT;\n protected readonly min = Math.min;\n\n readonly rows = input.required<readonly Row[]>();\n readonly rowKey = input.required<keyof Row | ((row: Row) => string)>();\n readonly columns = input.required<readonly GridColumn<Row>[]>();\n readonly columnState = input<Partial<GridColumnState> | undefined>(undefined);\n readonly title = input<string | undefined>(undefined);\n readonly subtitle = input<string | undefined>(undefined);\n readonly trailing = input<string | undefined>(undefined);\n readonly fields = input<number | undefined>(undefined);\n readonly label = input<string | undefined>(undefined);\n readonly labelledBy = input<string | undefined>(undefined);\n readonly mode = input<DataListMode | undefined>(undefined);\n readonly totalCount = input<number | undefined>(undefined);\n readonly selectionMode = input<DataListSelectionMode | undefined>(undefined);\n readonly disabledKeys = input<readonly string[]>([]);\n readonly loadingKeys = input<readonly string[]>([]);\n /** The record open beside the list. The family never moves it. */\n readonly current = input<string | null | undefined>(undefined);\n readonly href = input<((row: Row) => string) | undefined>(undefined);\n readonly activatable = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /** A message, or `true` for the family's own. Rows already shown stay. */\n readonly error = input<boolean | string | null | undefined>(undefined);\n readonly hasMore = input(false, { transform: booleanAttribute });\n readonly variant = input<DataListVariant | undefined>(undefined);\n readonly size = input<DataListSize | undefined>(undefined);\n /** Words laid over the catalog of the language in force, key by key. */\n readonly messages = input<PartialMessages<DataListMessages> | undefined>(undefined);\n /** Formats the fields and counts; the provider's locale otherwise. */\n readonly locale = input<string | undefined>(undefined);\n readonly skeletonRows = input<number | undefined>(undefined);\n readonly loadingDelay = input<number | undefined>(undefined);\n readonly loadingMinDuration = input<number | undefined>(undefined);\n\n readonly query = model<GridQuery>(emptyQuery());\n readonly value = model<DataListSelection>(null);\n readonly expanded = model<readonly string[]>([]);\n\n readonly queryChangeRequest = output<DataListQueryRequest>();\n readonly valueChangeRequest = output<ChangeRequest<DataListSelection>>();\n readonly expandedChangeRequest = output<DataListExpandedRequest>();\n readonly activate$ = output<DataListActivateEvent<Row>>({ alias: 'activate' });\n readonly loadMore = output<void>();\n readonly retry = output<void>();\n\n protected readonly cellTemplates = contentChildren(SlDataListCellTemplate);\n protected readonly mediaTemplate = computed(() => this.mediaTemplates()[0] ?? null);\n protected readonly emptyTemplate = computed(() => this.emptyTemplates()[0] ?? null);\n private readonly mediaTemplates = contentChildren(SlDataListMediaTemplate);\n private readonly emptyTemplates = contentChildren(SlDataListEmptyTemplate);\n protected readonly footers = contentChildren(SlDataListFooter);\n\n protected readonly holding = signal(false);\n protected readonly loadingMore = signal(false);\n private anchor: string | undefined;\n private focusedKey: string | null = null;\n private previousKeys: readonly string[] = [];\n\n /** The family's words in the language in force, with this list's `messages` laid over them. */\n readonly t = injectMessages(dataListMessages, this.messages);\n private readonly providedLocale = injectLocale();\n protected readonly localeValue = computed(() => this.locale() ?? this.providedLocale());\n /** What a boolean field says, in the language in force. */\n private readonly booleans = computed(() => ({ true: this.t('true'), false: this.t('false') }));\n protected readonly variantValue = computed(() => this.variant() ?? this.defaults.variant);\n protected readonly sizeValue = computed(() => this.size() ?? this.defaults.size);\n protected readonly selectionModeValue = computed(\n () => this.selectionMode() ?? this.defaults.selectionMode,\n );\n protected readonly loadingValue = computed(() => this.loading());\n protected readonly loadingDelayValue = computed(\n () => this.loadingDelay() ?? this.defaults.loadingDelay,\n );\n protected readonly loadingMinDurationValue = computed(\n () => this.loadingMinDuration() ?? this.defaults.loadingMinDuration,\n );\n protected readonly listLabel = computed(() => this.label() ?? this.writtenLabel ?? null);\n private readonly modeValue = computed(\n () => this.mode() ?? (this.totalCount() === undefined ? 'client' : 'server'),\n );\n\n private readonly keyOf = computed(() => {\n const rowKey = this.rowKey();\n return typeof rowKey === 'function'\n ? rowKey\n : (row: Row) => String((row as Record<PropertyKey, unknown>)[rowKey as PropertyKey]);\n });\n\n protected readonly layout = computed(() =>\n resolveDataListLayout(this.columns(), {\n title: this.title(),\n subtitle: this.subtitle(),\n trailing: this.trailing(),\n fields: this.fields() ?? this.defaults.fields,\n columnState: this.columnState(),\n }),\n );\n protected readonly shownColumns = computed(() =>\n this.layout().fields.slice(0, this.layout().shown),\n );\n\n private readonly applied = computed(() => {\n const rows = this.rows();\n const keyOf = this.keyOf();\n if (this.modeValue() === 'server') {\n return {\n nodes: rows.map((row, index) => ({ kind: 'row' as const, key: keyOf(row), row, index })),\n visible: rows,\n total: this.totalCount() ?? rows.length,\n };\n }\n const result = applyQuery(rows, this.columns(), this.query(), {\n rowKey: keyOf,\n locale: this.localeValue(),\n booleans: this.booleans(),\n });\n return { nodes: dataListNodes(result.nodes), visible: result.rows, total: result.total };\n });\n\n protected readonly nodes = computed<readonly DataListNode<Row>[]>(() => this.applied().nodes);\n private readonly drawnKeys = computed(() => dataListKeys(this.nodes()));\n private readonly disabledSet = computed(() => new Set(this.disabledKeys()));\n private readonly selectedKeys = computed(() => asKeys(this.value()));\n private readonly selectedSet = computed(() => new Set(this.selectedKeys()));\n\n protected readonly firstLoad = computed(() => this.loading() && this.rows().length === 0);\n protected readonly showLoader = computed(() => this.firstLoad() || this.holding());\n protected readonly skeletonIndexes = computed(() =>\n Array.from({ length: this.skeletonRows() ?? this.defaults.skeletonRows }, (_, index) => index),\n );\n\n protected readonly emptyStatus = computed<DataListEmptyStatus | null>(() => {\n if (this.showLoader()) return null;\n if (this.error() && this.rows().length === 0) return 'error';\n if (this.drawnKeys().length > 0) return null;\n return this.rows().length === 0 && !isQueryActive(this.query()) ? 'empty' : 'no-results';\n });\n protected readonly errorOverRows = computed(\n () => !!this.error() && this.rows().length > 0 && !this.showLoader(),\n );\n protected readonly refreshing = computed(\n () => this.loading() && !this.showLoader() && this.rows().length > 0 && !this.loadingMore(),\n );\n\n protected readonly firstKey = computed(() => this.query().sort[0]);\n protected readonly sortName = computed(() => {\n const sort = this.query().sort;\n if (sort.length === 0) return this.t('sort');\n return this.t('sortNamed', { order: describeDataListSort(sort, this.columns(), this.t) });\n });\n protected readonly sortText = computed(() => {\n const sort = this.query().sort;\n const column = this.columns().find((entry) => entry.id === sort[0]?.column);\n if (!column) return this.t('sort');\n return this.t('sortSummary', { column: column.label, more: sort.length - 1 });\n });\n\n protected readonly allKeys = computed(() => {\n const disabled = this.disabledSet();\n const keyOf = this.keyOf();\n const keys =\n this.modeValue() === 'client' ? this.applied().visible.map(keyOf) : this.drawnKeys();\n return keys.filter((key) => !disabled.has(key));\n });\n protected readonly allSelected = computed(() => {\n const all = this.allKeys();\n const selected = this.selectedSet();\n return all.length > 0 && all.every((key) => selected.has(key));\n });\n protected readonly someSelected = computed(() =>\n this.allKeys().some((key) => this.selectedSet().has(key)),\n );\n protected readonly countText = computed(() => {\n const selected = this.selectedKeys().length;\n const count = this.applied().total;\n return this.selectionModeValue() !== 'none' && selected > 0\n ? this.t('selectedCount', { selected, count })\n : this.t('count', { count });\n });\n\n constructor() {\n afterRenderEffect(() => {\n const keys = this.drawnKeys();\n const before = this.previousKeys;\n this.previousKeys = keys;\n const lost = this.focusedKey;\n if (lost === null || keys.includes(lost)) return;\n const active = this.host.ownerDocument.activeElement;\n if (active && active !== this.host.ownerDocument.body && this.host.contains(active)) return;\n const at = before.indexOf(lost);\n const next = before.slice(at + 1).find((key) => keys.includes(key));\n const previous = before\n .slice(0, Math.max(at, 0))\n .reverse()\n .find((key) => keys.includes(key));\n const target = next ?? previous;\n this.focusedKey = target ?? null;\n if (target !== undefined) firstControl(recordOf(this.host, target))?.focus();\n else\n this.host\n .querySelector<HTMLElement>('[data-part=\"empty\"] [data-ui=\"result-state\"]')\n ?.focus();\n });\n afterRenderEffect(() => {\n if (this.firstLoad()) this.holding.set(true);\n if (!this.loading()) this.loadingMore.set(false);\n });\n }\n\n protected bar(index: number) {\n return BAR_WIDTHS[index % BAR_WIDTHS.length];\n }\n\n protected fieldBar(index: number) {\n return FIELD_WIDTHS[index % FIELD_WIDTHS.length];\n }\n\n protected sectionLabel(node: Extract<DataListNode<Row>, { kind: 'section' }>) {\n const column = this.columns().find((entry) => entry.id === node.column);\n return `${column?.label ?? node.column}: ${node.text} · ${new Intl.NumberFormat(this.localeValue()).format(node.count)}`;\n }\n\n protected emptyTitle(status: DataListEmptyStatus) {\n if (status === 'error') {\n const error = this.error();\n return typeof error === 'string' ? error : this.t('errorTitle');\n }\n return this.t(status === 'no-results' ? 'noResultsTitle' : 'emptyTitle');\n }\n\n /* ── One record ────────────────────────────────────────────────────── */\n\n private field(\n column: GridColumn<Row>,\n row: Row,\n key: string,\n place: DataListCellContext['place'],\n ): FieldView<Row> {\n const text =\n dataListFieldText(column, row, { locale: this.localeValue(), booleans: this.booleans() }) ??\n '';\n const templates = this.cellTemplates();\n const template =\n templates.find((entry) => entry.slDataListCell() === column.id) ??\n templates.find((entry) => entry.slDataListCell() === '') ??\n null;\n return {\n column,\n numeric: column.kind === 'number' || column.numeric === true,\n template: (template?.template as TemplateRef<DataListCellContext> | undefined) ?? null,\n context: { $implicit: row, row, column, key, value: cellValue(column, row), text, place },\n };\n }\n\n protected record(key: string, row: Row): RecordView<Row> {\n const layout = this.layout();\n const expanded = this.expanded().includes(key);\n const current = this.current();\n const title = layout.title ? this.field(layout.title, row, key, 'title') : null;\n const columns = expanded ? layout.fields : layout.fields.slice(0, layout.shown);\n return {\n key,\n row,\n disabled: this.disabledSet().has(key),\n busy: this.loadingKeys().includes(key),\n selected: this.selectionModeValue() !== 'none' && this.selectedSet().has(key),\n current: current !== undefined && current !== null && current === key,\n expanded,\n titleText: title?.context.text || key,\n title,\n subtitle: layout.subtitle ? this.field(layout.subtitle, row, key, 'subtitle') : null,\n trailing: layout.trailing ? this.field(layout.trailing, row, key, 'trailing') : null,\n actions: layout.actions.map((column) => this.field(column, row, key, 'actions')),\n fields: columns.map((column) => this.field(column, row, key, 'field')),\n hidden: layout.fields.length - layout.shown,\n href: this.href()?.(row),\n fieldsId: `${this.id}-${key}-fields`,\n };\n }\n\n /* ── Requests ──────────────────────────────────────────────────────── */\n\n private requestQuery(\n next: GridQuery,\n change: GridQueryChange,\n reason: ChangeReason,\n source?: unknown,\n ) {\n const query = this.query();\n if (sameQuery(next, query)) return false;\n const request = makeRequest(next, query, reason, source, { change }) as DataListQueryRequest;\n this.queryChangeRequest.emit(request);\n if (request.cancelled) return false;\n this.query.set(next);\n return true;\n }\n\n private requestValue(next: DataListSelection, reason: ChangeReason, source?: unknown) {\n const value = this.value();\n if (sameKeys(asKeys(next), asKeys(value))) return;\n const request = makeRequest(next, value, reason, source) as ChangeRequest<DataListSelection>;\n this.valueChangeRequest.emit(request);\n if (request.cancelled) return;\n this.value.set(next);\n }\n\n protected toggleExpanded(key: string, event: Event) {\n const expanded = this.expanded();\n const next = expanded.includes(key)\n ? expanded.filter((entry) => entry !== key)\n : [...expanded, key];\n const request = makeRequest(next, expanded, pressReason(event), event, {\n key,\n }) as DataListExpandedRequest;\n this.expandedChangeRequest.emit(request);\n if (request.cancelled) return;\n this.expanded.set(next);\n }\n\n protected pressRecord(key: string, event: MouseEvent) {\n const mode = this.selectionModeValue();\n if (mode === 'none' || this.disabledSet().has(key)) return;\n const reason = pressReason(event);\n const selected = this.selectedKeys();\n const chosen = this.selectedSet();\n if (mode === 'single') {\n this.anchor = key;\n this.requestValue(chosen.has(key) ? null : key, reason, event);\n return;\n }\n const selectable = this.drawnKeys().filter((entry) => !this.disabledSet().has(entry));\n if (event.shiftKey && this.anchor !== undefined) {\n const result = nextSelection({\n action: 'range',\n mode: 'multiple',\n selected,\n keys: selectable,\n key,\n anchor: this.anchor,\n disabled: (entry) => this.disabledSet().has(entry),\n });\n const outside = selected.filter((entry) => !selectable.includes(entry));\n this.requestValue([...outside, ...result.selected], 'select', event);\n return;\n }\n this.anchor = key;\n this.requestValue(\n chosen.has(key) ? selected.filter((entry) => entry !== key) : [...selected, key],\n reason,\n event,\n );\n }\n\n protected pressAll(event: MouseEvent) {\n const all = this.allKeys();\n const covered = new Set(all);\n const selected = this.selectedKeys();\n const chosen = this.selectedSet();\n const everything = this.allSelected();\n const next = everything\n ? selected.filter((key) => !covered.has(key))\n : [...selected, ...all.filter((key) => !chosen.has(key))];\n this.requestValue(next, everything ? 'clear' : 'select', event);\n }\n\n protected chooseColumn(request: ChangeRequest<string>) {\n const next = request.value === NO_SORT ? null : request.value;\n this.sortTo(withDataListSortColumn(this.query(), next), request.reason, request.source);\n }\n\n protected chooseDirection(request: ChangeRequest<string>) {\n this.sortTo(\n withDataListSortDirection(this.query(), request.value as SortDirection),\n request.reason,\n request.source,\n );\n }\n\n private sortTo(next: GridQuery, reason: ChangeReason, source: unknown) {\n if (!this.requestQuery(next, 'sort', reason, source)) return;\n getLiveAnnouncer(this.host.ownerDocument).announce(\n next.sort.length === 0\n ? this.t('sortCleared')\n : this.t('sortedBy', { order: describeDataListSort(next.sort, this.columns(), this.t) }),\n );\n }\n\n protected clearFilters(event: Event) {\n const query = this.query();\n const page = query.page && 'index' in query.page ? { ...query.page, index: 0 } : query.page;\n this.requestQuery({ ...query, filter: null, search: '', page }, 'filter', 'clear', event);\n }\n\n protected activate(view: RecordView<Row>, event: MouseEvent) {\n this.activate$.emit({ key: view.key, row: view.row, reason: pressReason(event), event });\n }\n\n protected activateLink(view: RecordView<Row>, event: MouseEvent) {\n if (view.disabled || view.busy) {\n event.preventDefault();\n return;\n }\n this.activate(view, event);\n }\n\n protected askForMore() {\n this.loadingMore.set(true);\n this.loadMore.emit();\n }\n\n protected onFocusIn(event: FocusEvent) {\n const item = (event.target as HTMLElement).closest('[data-ui=\"list-item\"][data-key]');\n this.focusedKey = item?.getAttribute('data-key') ?? this.focusedKey;\n }\n\n /* ── Imperative ────────────────────────────────────────────────────── */\n\n /** Focus goes to the first control of the first record, or to the empty state. */\n focus() {\n const first = this.host.querySelector('[data-ui=\"list-item\"][data-key]');\n const control = firstControl(first);\n if (control) control.focus();\n else\n this.host.querySelector<HTMLElement>('[data-part=\"empty\"] [data-ui=\"result-state\"]')?.focus();\n }\n\n /** Focus goes to the first control of the record with this key. Returns whether it was found. */\n focusKey(key: string): boolean {\n const control = firstControl(recordOf(this.host, key));\n control?.focus();\n return control !== null;\n }\n\n /** Scrolls the record into view. Returns whether it was found. */\n scrollToKey(key: string): boolean {\n const item = recordOf(this.host, key);\n item?.scrollIntoView({ block: 'nearest' });\n return item !== null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AA+CA,MAAM,QAAQ,GAAqB;AACjC,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,MAAM,EAAE,wBAAwB;AAChC,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,kBAAkB,EAAE,GAAG;CACxB;MAEY,kBAAkB,GAAG,IAAI,cAAc,CAClD,4BAA4B,EAC5B;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,QAAQ;AACxB,CAAA;AAGH;;;;AAIG;AACG,SAAU,uBAAuB,CAAC,QAAmC,EAAA;IACzE,OAAO;AACL,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,UAAU,EAAE,OAAyB;AACnC,YAAA,GAAG,QAAQ;YACX,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC,CAAC;SAC3F,CAAC;KACH;AACH;SAEgB,sBAAsB,GAAA;AACpC,IAAA,OAAO,MAAM,CAAC,kBAAkB,CAAC;AACnC;;ACjEA;;;;AAIG;MAEU,sBAAsB,CAAA;;IAExB,cAAc,GAAG,KAAK,CAAS,EAAE;uFAAC;AAClC,IAAA,QAAQ,GAAG,MAAM,CAAmC,WAAW,CAAC;uGAH9D,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,6BAA6B,EAAE,UAAU,EAAE,IAAI,EAAE;;AAOxE;MAEa,uBAAuB,CAAA;AACzB,IAAA,QAAQ,GAAG,MAAM,CAAsC,WAAW,CAAC;uGADjE,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,8BAA8B,EAAE,UAAU,EAAE,IAAI,EAAE;;AAKzE;MAEa,uBAAuB,CAAA;AACzB,IAAA,QAAQ,GAAG,MAAM,CAAkD,WAAW,CAAC;uGAD7E,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,8BAA8B,EAAE,UAAU,EAAE,IAAI,EAAE;;;ACkEzE;AACA,MAAM,OAAO,GAAG,YAAY;AAE5B;AACA,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAC/D,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;AAE3E,IAAI,SAAS,GAAG,CAAC;AAEjB;AACA,MAAM,WAAW,GAAG,CAAC,KAAY,KAC9B,KAAoB,CAAC,MAAM,KAAK,CAAC,GAAG,UAAU,GAAG,SAAS;AAE7D,SAAS,MAAM,CAAC,KAAwB,EAAA;AACtC,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,KAA0B;AAC3D,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,GAAG,EAAE,GAAG,CAAC,KAAe,CAAC;AACvE;AAEA,SAAS,QAAQ,CAAC,CAAoB,EAAE,CAAoB,EAAA;IAC1D,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3E;AAEA,SAAS,WAAW,CAAI,KAAQ,EAAE,QAAW,EAAE,MAAoB,EAAE,MAAe,EAAE,KAAK,GAAG,EAAE,EAAA;IAC9F,IAAI,SAAS,GAAG,KAAK;IACrB,OAAO;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;AACN,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,SAAS,GAAA;AACX,YAAA,OAAO,SAAS;QAClB,CAAC;QACD,MAAM,GAAA;YACJ,SAAS,GAAG,IAAI;QAClB,CAAC;KACF;AACH;AAEA;AACA,SAAS,QAAQ,CAAC,IAAiB,EAAE,GAAW,EAAA;IAC9C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,EAAE;AAC3E,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG;AAAE,YAAA,OAAO,IAAI;IACxD;AACA,IAAA,OAAO,IAAI;AACb;AAEA;AACA,SAAS,YAAY,CAAC,IAAoB,EAAA;IACxC,QACE,IAAI,EAAE,aAAa,CACjB,iLAAiL,CAClL,IAAI,IAAI;AAEb;AAEA;;;;;AAKG;MAEU,cAAc,CAAA;IAChB,IAAI,GAAG,KAAK,CAAC,QAAQ,2EAAW,KAAK,EAAE,gBAAgB,EAAA,CAAG;AAClD,IAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC;AAEnE,IAAA,WAAA,GAAA;QACE,eAAe,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvF;uGANW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;;AAU7D;MAEa,gBAAgB,CAAA;uGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;;AA6B/D;;;;;;AAMG;MAicU,UAAU,CAAA;IACJ,QAAQ,GAAG,sBAAsB,EAAE;AACnC,IAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC,aAAa;AAChE,IAAA,YAAY,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE7E,IAAA,EAAE,GAAG,CAAA,kBAAA,EAAqB,EAAE,SAAS,EAAE;IACvC,MAAM,GAAG,OAAO;AAChB,IAAA,GAAG,GAAG,IAAI,CAAC,GAAG;IAExB,IAAI,GAAG,KAAK,CAAC,QAAQ;6EAAkB;IACvC,MAAM,GAAG,KAAK,CAAC,QAAQ;+EAAsC;IAC7D,OAAO,GAAG,KAAK,CAAC,QAAQ;gFAA8B;IACtD,WAAW,GAAG,KAAK,CAAuC,SAAS;oFAAC;IACpE,KAAK,GAAG,KAAK,CAAqB,SAAS;8EAAC;IAC5C,QAAQ,GAAG,KAAK,CAAqB,SAAS;iFAAC;IAC/C,QAAQ,GAAG,KAAK,CAAqB,SAAS;iFAAC;IAC/C,MAAM,GAAG,KAAK,CAAqB,SAAS;+EAAC;IAC7C,KAAK,GAAG,KAAK,CAAqB,SAAS;8EAAC;IAC5C,UAAU,GAAG,KAAK,CAAqB,SAAS;mFAAC;IACjD,IAAI,GAAG,KAAK,CAA2B,SAAS;6EAAC;IACjD,UAAU,GAAG,KAAK,CAAqB,SAAS;mFAAC;IACjD,aAAa,GAAG,KAAK,CAAoC,SAAS;sFAAC;IACnE,YAAY,GAAG,KAAK,CAAoB,EAAE;qFAAC;IAC3C,WAAW,GAAG,KAAK,CAAoB,EAAE;oFAAC;;IAE1C,OAAO,GAAG,KAAK,CAA4B,SAAS;gFAAC;IACrD,IAAI,GAAG,KAAK,CAAqC,SAAS;6EAAC;IAC3D,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC3D,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;IAEvD,KAAK,GAAG,KAAK,CAAsC,SAAS;8EAAC;IAC7D,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACvD,OAAO,GAAG,KAAK,CAA8B,SAAS;gFAAC;IACvD,IAAI,GAAG,KAAK,CAA2B,SAAS;6EAAC;;IAEjD,QAAQ,GAAG,KAAK,CAAgD,SAAS;iFAAC;;IAE1E,MAAM,GAAG,KAAK,CAAqB,SAAS;+EAAC;IAC7C,YAAY,GAAG,KAAK,CAAqB,SAAS;qFAAC;IACnD,YAAY,GAAG,KAAK,CAAqB,SAAS;qFAAC;IACnD,kBAAkB,GAAG,KAAK,CAAqB,SAAS;2FAAC;AAEzD,IAAA,KAAK,GAAG,KAAK,CAAY,UAAU,EAAE;8EAAC;IACtC,KAAK,GAAG,KAAK,CAAoB,IAAI;8EAAC;IACtC,QAAQ,GAAG,KAAK,CAAoB,EAAE;iFAAC;IAEvC,kBAAkB,GAAG,MAAM,EAAwB;IACnD,kBAAkB,GAAG,MAAM,EAAoC;IAC/D,qBAAqB,GAAG,MAAM,EAA2B;IACzD,SAAS,GAAG,MAAM,CAA6B,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACrE,QAAQ,GAAG,MAAM,EAAQ;IACzB,KAAK,GAAG,MAAM,EAAQ;IAEZ,aAAa,GAAG,eAAe,CAAC,sBAAsB;sFAAC;AACvD,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;sFAAC;AAChE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;sFAAC;IAClE,cAAc,GAAG,eAAe,CAAC,uBAAuB;uFAAC;IACzD,cAAc,GAAG,eAAe,CAAC,uBAAuB;uFAAC;IACvD,OAAO,GAAG,eAAe,CAAC,gBAAgB;gFAAC;IAE3C,OAAO,GAAG,MAAM,CAAC,KAAK;gFAAC;IACvB,WAAW,GAAG,MAAM,CAAC,KAAK;oFAAC;AACtC,IAAA,MAAM;IACN,UAAU,GAAkB,IAAI;IAChC,YAAY,GAAsB,EAAE;;IAGnC,CAAC,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC3C,cAAc,GAAG,YAAY,EAAE;AAC7B,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;oFAAC;;IAEtE,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;iFAAC;AAC3E,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;qFAAC;AACtE,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;kFAAC;AAC7D,IAAA,kBAAkB,GAAG,QAAQ,CAC9C,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa;2FAC1D;IACkB,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;qFAAC;AAC7C,IAAA,iBAAiB,GAAG,QAAQ,CAC7C,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY;0FACxD;AACkB,IAAA,uBAAuB,GAAG,QAAQ,CACnD,MAAM,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB;gGACpE;AACkB,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI;kFAAC;IACvE,SAAS,GAAG,QAAQ,CACnC,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;kFAC7E;AAEgB,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,OAAO,OAAO,MAAM,KAAK;AACvB,cAAE;AACF,cAAE,CAAC,GAAQ,KAAK,MAAM,CAAE,GAAoC,CAAC,MAAqB,CAAC,CAAC;IACxF,CAAC;8EAAC;AAEiB,IAAA,MAAM,GAAG,QAAQ,CAAC,MACnC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACpC,QAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,QAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC7C,QAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;KAChC,CAAC;+EACH;IACkB,YAAY,GAAG,QAAQ,CAAC,MACzC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;qFACnD;AAEgB,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACvC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ,EAAE;YACjC,OAAO;AACL,gBAAA,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,KAAc,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACxF,gBAAA,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,MAAM;aACxC;QACH;AACA,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE;AAC5D,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC1B,SAAA,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;IAC1F,CAAC;gFAAC;IAEiB,KAAK,GAAG,QAAQ,CAA+B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK;8EAAC;AAC5E,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;kFAAC;AACtD,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oFAAC;AAC1D,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;qFAAC;AACnD,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oFAAC;AAExD,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;kFAAC;AACtE,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;mFAAC;AAC/D,IAAA,eAAe,GAAG,QAAQ,CAAC,MAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;wFAC/F;AAEkB,IAAA,WAAW,GAAG,QAAQ,CAA6B,MAAK;QACzE,IAAI,IAAI,CAAC,UAAU,EAAE;AAAE,YAAA,OAAO,IAAI;AAClC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,OAAO;AAC5D,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,OAAO,IAAI;QAC5C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,GAAG,YAAY;IAC1F,CAAC;oFAAC;IACiB,aAAa,GAAG,QAAQ,CACzC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;sFACrE;AACkB,IAAA,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;mFAC5F;AAEkB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;iFAAC;AAC/C,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI;AAC9B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,CAAC;iFAAC;AACiB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;AAC3E,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAClC,OAAO,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC/E,CAAC;iFAAC;AAEiB,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACzC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,IAAI,GACR,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;AACtF,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;gFAAC;AACiB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;QACnC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;oFAAC;IACiB,YAAY,GAAG,QAAQ,CAAC,MACzC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;qFAC1D;AACkB,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK;QAClC,OAAO,IAAI,CAAC,kBAAkB,EAAE,KAAK,MAAM,IAAI,QAAQ,GAAG;AACxD,cAAE,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;cAC3C,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;kFAAC;AAEF,IAAA,WAAA,GAAA;QACE,iBAAiB,CAAC,MAAK;AACrB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY;AAChC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU;YAC5B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa;AACpD,YAAA,IAAI,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE;YACrF,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG;iBACd,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACxB,iBAAA,OAAO;AACP,iBAAA,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpC,YAAA,MAAM,MAAM,GAAG,IAAI,IAAI,QAAQ;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,IAAI;YAChC,IAAI,MAAM,KAAK,SAAS;AAAE,gBAAA,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE;;AAE1E,gBAAA,IAAI,CAAC;qBACF,aAAa,CAAc,8CAA8C;sBACxE,KAAK,EAAE;AACf,QAAA,CAAC,CAAC;QACF,iBAAiB,CAAC,MAAK;YACrB,IAAI,IAAI,CAAC,SAAS,EAAE;AAAE,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAAE,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AAClD,QAAA,CAAC,CAAC;IACJ;AAEU,IAAA,GAAG,CAAC,KAAa,EAAA;QACzB,OAAO,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC;IAC9C;AAEU,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC9B,OAAO,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;IAClD;AAEU,IAAA,YAAY,CAAC,IAAqD,EAAA;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC;AACvE,QAAA,OAAO,CAAA,EAAG,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IAC1H;AAEU,IAAA,UAAU,CAAC,MAA2B,EAAA;AAC9C,QAAA,IAAI,MAAM,KAAK,OAAO,EAAE;AACtB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;QACjE;AACA,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,GAAG,gBAAgB,GAAG,YAAY,CAAC;IAC1E;;AAIQ,IAAA,KAAK,CACX,MAAuB,EACvB,GAAQ,EACR,GAAW,EACX,KAAmC,EAAA;QAEnC,MAAM,IAAI,GACR,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;AACzF,YAAA,EAAE;AACJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE;AACtC,QAAA,MAAM,QAAQ,GACZ,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;AAC/D,YAAA,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC;AACxD,YAAA,IAAI;QACN,OAAO;YACL,MAAM;YACN,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;AAC5D,YAAA,QAAQ,EAAG,QAAQ,EAAE,QAAyD,IAAI,IAAI;YACtF,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;SAC1F;IACH;IAEU,MAAM,CAAC,GAAW,EAAE,GAAQ,EAAA;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI;QAC/E,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;QAC/E,OAAO;YACL,GAAG;YACH,GAAG;YACH,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;AACtC,YAAA,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;YAC7E,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,GAAG;YACrE,QAAQ;AACR,YAAA,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG;YACrC,KAAK;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI;YACpF,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI;YACpF,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAChF,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACtE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK;YAC3C,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAA,EAAG,IAAI,CAAC,EAAE,CAAA,CAAA,EAAI,GAAG,CAAA,OAAA,CAAS;SACrC;IACH;;AAIQ,IAAA,YAAY,CAClB,IAAe,EACf,MAAuB,EACvB,MAAoB,EACpB,MAAgB,EAAA;AAEhB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;AACxC,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAyB;AAC5F,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,IAAI,OAAO,CAAC,SAAS;AAAE,YAAA,OAAO,KAAK;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACpB,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,YAAY,CAAC,IAAuB,EAAE,MAAoB,EAAE,MAAgB,EAAA;AAClF,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAAE;AAC3C,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAqC;AAC5F,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,IAAI,OAAO,CAAC,SAAS;YAAE;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IACtB;IAEU,cAAc,CAAC,GAAW,EAAE,KAAY,EAAA;AAChD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG;AAChC,cAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG;AAC1C,cAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC;AACtB,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;YACrE,GAAG;AACJ,SAAA,CAA4B;AAC7B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,IAAI,OAAO,CAAC,SAAS;YAAE;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IACzB;IAEU,WAAW,CAAC,GAAW,EAAE,KAAiB,EAAA;AAClD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACtC,QAAA,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE;AACpD,QAAA,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;AACjC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;AACjC,QAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG;YACjB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;YAC9D;QACF;QACA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC/C,MAAM,MAAM,GAAG,aAAa,CAAC;AAC3B,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,IAAI,EAAE,UAAU;gBAChB,QAAQ;AACR,gBAAA,IAAI,EAAE,UAAU;gBAChB,GAAG;gBACH,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,QAAQ,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AACnD,aAAA,CAAC;AACF,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC;YACpE;QACF;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG;AACjB,QAAA,IAAI,CAAC,YAAY,CACf,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,EAChF,MAAM,EACN,KAAK,CACN;IACH;AAEU,IAAA,QAAQ,CAAC,KAAiB,EAAA;AAClC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;AACjC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE;QACrC,MAAM,IAAI,GAAG;AACX,cAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;cAC1C,CAAC,GAAG,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,EAAE,KAAK,CAAC;IACjE;AAEU,IAAA,YAAY,CAAC,OAA8B,EAAA;AACnD,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK;QAC7D,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;IACzF;AAEU,IAAA,eAAe,CAAC,OAA8B,EAAA;QACtD,IAAI,CAAC,MAAM,CACT,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,KAAsB,CAAC,EACvE,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,CACf;IACH;AAEQ,IAAA,MAAM,CAAC,IAAe,EAAE,MAAoB,EAAE,MAAe,EAAA;AACnE,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAAE;AACtD,QAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAChD,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK;AACnB,cAAE,IAAI,CAAC,CAAC,CAAC,aAAa;AACtB,cAAE,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3F;IACH;AAEU,IAAA,YAAY,CAAC,KAAY,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI;QAC3F,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;IAC3F;IAEU,QAAQ,CAAC,IAAqB,EAAE,KAAiB,EAAA;AACzD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAC1F;IAEU,YAAY,CAAC,IAAqB,EAAE,KAAiB,EAAA;QAC7D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;YAC9B,KAAK,CAAC,cAAc,EAAE;YACtB;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAC5B;IAEU,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;IACtB;AAEU,IAAA,SAAS,CAAC,KAAiB,EAAA;QACnC,MAAM,IAAI,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CAAC,iCAAiC,CAAC;AACrF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU;IACrE;;;IAKA,KAAK,GAAA;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iCAAiC,CAAC;AACxE,QAAA,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC;AACnC,QAAA,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,EAAE;;YAE1B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAc,8CAA8C,CAAC,EAAE,KAAK,EAAE;IACjG;;AAGA,IAAA,QAAQ,CAAC,GAAW,EAAA;AAClB,QAAA,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO,EAAE,KAAK,EAAE;QAChB,OAAO,OAAO,KAAK,IAAI;IACzB;;AAGA,IAAA,WAAW,CAAC,GAAW,EAAA;QACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;QACrC,IAAI,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,KAAK,IAAI;IACtB;uGA9bW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAqD8B,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAGvB,uBAAuB,iEACvB,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAC5B,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjcnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y2PAAA,EAAA,0mIAAA,EAAA,0ngBAAA,EAAA,wqjBAAA,EAAA,6QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAzbC,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,QAAQ,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACR,WAAW,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAtDD,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAwDvB,OAAO,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,MAAM,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,UAAU,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,qBAAqB,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,aAAa,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,iBAAiB,EAAA,QAAA,EAAA,8CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,MAAM,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,UAAU,EAAA,QAAA,EAAA,wFAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,sBAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,gBAAgB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,eAAe,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,aAAa,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,oBAAoB,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,oBAAoB,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA6ZP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAhctB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,QAAA,EACN,YAAY,EAAA,OAAA,EACb;wBACP,gBAAgB;wBAChB,QAAQ;wBACR,WAAW;wBACX,UAAU;wBACV,cAAc;wBACd,OAAO;wBACP,MAAM;wBACN,MAAM;wBACN,UAAU;wBACV,iBAAiB;wBACjB,cAAc;wBACd,iBAAiB;wBACjB,qBAAqB;wBACrB,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,aAAa;wBACb,kBAAkB;wBAClB,iBAAiB;wBACjB,MAAM;wBACN,UAAU;wBACV,gBAAgB;wBAChB,eAAe;wBACf,aAAa;wBACb,aAAa;wBACb,oBAAoB;wBACpB,oBAAoB;wBACpB,kBAAkB;wBAClB,UAAU;wBACV,gBAAgB;wBAChB,gBAAgB;AACjB,qBAAA,EAAA,eAAA,EAQgB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,mBAAmB,EAAE,EAAE;AACvB,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,gBAAgB,EAAE,EAAE;AACpB,wBAAA,qBAAqB,EAAE,gBAAgB;AACvC,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,kBAAkB,EAAE,8BAA8B;AAClD,wBAAA,qBAAqB,EAAE,0BAA0B;AACjD,wBAAA,WAAW,EAAE,mBAAmB;qBACjC,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqYT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,y2PAAA,EAAA,0mIAAA,EAAA,0ngBAAA,EAAA,wqjBAAA,EAAA,6QAAA,CAAA,EAAA;AAuDkD,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,sBAAsB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAGvB,uBAAuB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MACvB,uBAAuB,4FAC5B,gBAAgB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC7sB/D;;AAEG;;"}