@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.
- package/README.md +4 -0
- package/docs/AGENTS.snippet.md +12 -0
- package/docs/action-bar.json +4 -4
- package/docs/action-bar.md +3 -3
- package/docs/alert.json +7 -1
- package/docs/alert.md +3 -3
- package/docs/app-shell.examples.md +1 -1
- package/docs/app-shell.json +5 -5
- package/docs/app-shell.md +2 -2
- package/docs/avatar.json +22 -1
- package/docs/avatar.md +5 -3
- package/docs/badge.json +7 -1
- package/docs/badge.md +3 -3
- package/docs/button-group.json +2 -0
- package/docs/button-group.md +1 -1
- package/docs/button.json +51 -11
- package/docs/button.md +10 -6
- package/docs/calendar.json +8 -1
- package/docs/calendar.md +3 -2
- package/docs/cascader.json +1 -0
- package/docs/cascader.md +1 -1
- package/docs/chart.examples.md +1 -1
- package/docs/chart.json +10 -1
- package/docs/chart.md +3 -2
- package/docs/checkbox.json +7 -0
- package/docs/checkbox.md +1 -0
- package/docs/code-block.json +92 -92
- package/docs/code-block.md +69 -69
- package/docs/combobox.json +1 -0
- package/docs/combobox.md +1 -1
- package/docs/command-palette.json +1 -0
- package/docs/command-palette.md +1 -1
- package/docs/currency-field.json +40 -1
- package/docs/currency-field.md +5 -1
- package/docs/data-grid.examples.md +2 -2
- package/docs/data-grid.json +45 -7
- package/docs/data-grid.md +3 -1
- package/docs/data-grid.props.md +7 -4
- package/docs/data-list.json +2 -1
- package/docs/data-list.md +1 -1
- package/docs/date-field.json +9 -1
- package/docs/date-field.md +3 -2
- package/docs/date-picker.examples.md +36 -0
- package/docs/date-picker.json +20 -5
- package/docs/date-picker.md +5 -4
- package/docs/datetime-field.json +1 -0
- package/docs/datetime-field.md +1 -1
- package/docs/detail-panel.json +4 -2
- package/docs/detail-panel.md +8 -3
- package/docs/dialog.examples.md +158 -136
- package/docs/dialog.json +36 -11
- package/docs/dialog.md +4 -2
- package/docs/dialog.props.md +1 -1
- package/docs/drawer.json +11 -4
- package/docs/drawer.md +4 -3
- package/docs/entity-picker.json +19 -4
- package/docs/entity-picker.md +8 -6
- package/docs/event-calendar.json +7 -0
- package/docs/event-calendar.md +3 -2
- package/docs/filter-bar.json +118 -118
- package/docs/filter-bar.md +79 -79
- package/docs/form.json +2 -1
- package/docs/form.md +1 -1
- package/docs/guidelines/README.md +27 -0
- package/docs/guidelines/async-feedback.md +129 -0
- package/docs/guidelines/browsing.md +74 -0
- package/docs/guidelines/builders.md +97 -0
- package/docs/guidelines/composition.md +143 -0
- package/docs/guidelines/conversations.md +59 -0
- package/docs/guidelines/errors-and-conflicts.md +71 -0
- package/docs/guidelines/forms.md +202 -0
- package/docs/guidelines/index.md +130 -0
- package/docs/guidelines/layout-alignment.md +105 -0
- package/docs/guidelines/ledgers.md +45 -0
- package/docs/guidelines/list-pages.md +206 -0
- package/docs/guidelines/overviews.md +76 -0
- package/docs/guidelines/own-elements.md +115 -0
- package/docs/guidelines/reading-permissions.md +55 -0
- package/docs/guidelines/record-pages.md +178 -0
- package/docs/guidelines/reports.md +123 -0
- package/docs/guidelines/shell-composition.md +94 -0
- package/docs/guidelines/workspaces.md +46 -0
- package/docs/icon.json +3 -1
- package/docs/icon.md +3 -3
- package/docs/index.md +12 -0
- package/docs/inline-message.json +14 -2
- package/docs/inline-message.md +4 -3
- package/docs/list-item.json +9 -1
- package/docs/list-item.md +3 -3
- package/docs/list.json +19 -1
- package/docs/list.md +3 -1
- package/docs/markdown.json +79 -79
- package/docs/markdown.md +65 -65
- package/docs/menu.json +12 -0
- package/docs/menu.md +2 -0
- package/docs/message.json +7 -1
- package/docs/message.md +3 -3
- package/docs/multi-select.json +1 -0
- package/docs/multi-select.md +1 -1
- package/docs/notification-center.json +4 -0
- package/docs/notification-center.md +2 -2
- package/docs/number-field.json +1 -0
- package/docs/number-field.md +1 -1
- package/docs/otp-input.json +1 -0
- package/docs/otp-input.md +1 -1
- package/docs/page-header.json +22 -5
- package/docs/page-header.md +6 -4
- package/docs/page.json +2 -0
- package/docs/page.md +2 -1
- package/docs/popover.json +1 -1
- package/docs/progress-indicator.json +4 -3
- package/docs/progress-indicator.md +4 -4
- package/docs/prompt-composer.json +41 -1
- package/docs/prompt-composer.md +5 -1
- package/docs/rating.json +5 -3
- package/docs/rating.md +6 -6
- package/docs/section.json +28 -16
- package/docs/section.md +12 -10
- package/docs/segmented-control.json +36 -12
- package/docs/segmented-control.md +17 -1
- package/docs/select.json +1 -0
- package/docs/select.md +1 -1
- package/docs/side-navigation.json +1 -0
- package/docs/side-navigation.md +1 -1
- package/docs/skills/build-own-element/SKILL.md +90 -0
- package/docs/skills/compose-screen/SKILL.md +103 -0
- package/docs/skills/index.md +9 -0
- package/docs/skills/review-screen/SKILL.md +79 -0
- package/docs/skills/theme-app/SKILL.md +98 -0
- package/docs/skills/waiting-states/SKILL.md +143 -0
- package/docs/sparkline.json +5 -2
- package/docs/sparkline.md +4 -4
- package/docs/split-button.json +4 -1
- package/docs/split-button.md +3 -3
- package/docs/stat-card.json +5 -1
- package/docs/stat-card.md +3 -3
- package/docs/table.examples.md +3 -3
- package/docs/table.json +85 -3
- package/docs/table.md +12 -1
- package/docs/tabs.json +17 -7
- package/docs/tabs.md +3 -2
- package/docs/tag.json +14 -4
- package/docs/tag.md +6 -6
- package/docs/tags-input.json +29 -2
- package/docs/tags-input.md +4 -1
- package/docs/text-field.json +2 -1
- package/docs/text-field.md +2 -2
- package/docs/textarea.json +1 -0
- package/docs/textarea.md +1 -1
- package/docs/time-field.json +1 -0
- package/docs/time-field.md +1 -1
- package/docs/timeline.json +138 -132
- package/docs/timeline.md +125 -125
- package/docs/toast.json +8 -1
- package/docs/toast.md +3 -3
- package/docs/toggle-group.json +14 -3
- package/docs/toggle-group.md +3 -3
- package/docs/toggle.json +12 -3
- package/docs/toggle.md +3 -3
- package/docs/tokens.md +467 -0
- package/docs/toolbar.json +1 -1
- package/docs/toolbar.md +1 -1
- package/docs/tour.json +1 -1
- package/docs/typography.json +4 -2
- package/docs/typography.md +5 -5
- package/fesm2022/slotted-angular-accordion.mjs +4 -2
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs +27 -12
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-sheet.mjs +48 -29
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
- package/fesm2022/slotted-angular-alert.mjs +18 -11
- package/fesm2022/slotted-angular-alert.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +111 -61
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
- package/fesm2022/slotted-angular-attachment.mjs +31 -20
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar.mjs +14 -7
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
- package/fesm2022/slotted-angular-badge.mjs +14 -10
- package/fesm2022/slotted-angular-badge.mjs.map +1 -1
- package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/slotted-angular-button-group.mjs +7 -4
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-button.mjs +120 -29
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-calendar.mjs +235 -58
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-card.mjs +18 -16
- package/fesm2022/slotted-angular-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-carousel.mjs +22 -11
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
- package/fesm2022/slotted-angular-cascader.mjs +180 -66
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +53 -20
- package/fesm2022/slotted-angular-chart.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox.mjs +23 -9
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-code-block.mjs +29 -15
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
- package/fesm2022/slotted-angular-collapsible.mjs +20 -15
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
- package/fesm2022/slotted-angular-color-picker.mjs +77 -22
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs +68 -31
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
- package/fesm2022/slotted-angular-combobox.mjs +118 -39
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
- package/fesm2022/slotted-angular-command-palette.mjs +162 -54
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
- package/fesm2022/slotted-angular-container.mjs +6 -4
- package/fesm2022/slotted-angular-container.mjs.map +1 -1
- package/fesm2022/slotted-angular-context-menu.mjs +5 -4
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-currency-field.mjs +149 -32
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +480 -129
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-list.mjs +83 -50
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-field.mjs +74 -25
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +112 -40
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-description-list.mjs +33 -19
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-detail-panel.mjs +48 -30
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
- package/fesm2022/slotted-angular-dialog.mjs +72 -30
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
- package/fesm2022/slotted-angular-divider.mjs +7 -5
- package/fesm2022/slotted-angular-divider.mjs.map +1 -1
- package/fesm2022/slotted-angular-drawer.mjs +91 -37
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +474 -75
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-field-group.mjs +14 -7
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-field.mjs +35 -15
- package/fesm2022/slotted-angular-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-filter-bar.mjs +118 -51
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-form.mjs +18 -10
- package/fesm2022/slotted-angular-form.mjs.map +1 -1
- package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
- package/fesm2022/slotted-angular-grid.mjs +4 -2
- package/fesm2022/slotted-angular-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-highlight.mjs +5 -3
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
- package/fesm2022/slotted-angular-hover-card.mjs +5 -4
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-icon.mjs +6 -3
- package/fesm2022/slotted-angular-icon.mjs.map +1 -1
- package/fesm2022/slotted-angular-image.mjs +13 -10
- package/fesm2022/slotted-angular-image.mjs.map +1 -1
- package/fesm2022/slotted-angular-import-export-center.mjs +175 -99
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline-message.mjs +88 -13
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline.mjs +4 -2
- package/fesm2022/slotted-angular-inline.mjs.map +1 -1
- package/fesm2022/slotted-angular-kbd.mjs +11 -7
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
- package/fesm2022/slotted-angular-link.mjs +5 -3
- package/fesm2022/slotted-angular-link.mjs.map +1 -1
- package/fesm2022/slotted-angular-list-item.mjs +21 -18
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
- package/fesm2022/slotted-angular-list.mjs +37 -22
- package/fesm2022/slotted-angular-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-listbox.mjs +39 -21
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
- package/fesm2022/slotted-angular-markdown.mjs +31 -19
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
- package/fesm2022/slotted-angular-menu.mjs +51 -29
- package/fesm2022/slotted-angular-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-menubar.mjs +4 -2
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
- package/fesm2022/slotted-angular-message-scroller.mjs +34 -15
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
- package/fesm2022/slotted-angular-message.mjs +119 -51
- package/fesm2022/slotted-angular-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-multi-select.mjs +195 -87
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-notification-center.mjs +108 -65
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-number-field.mjs +23 -11
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-otp-input.mjs +13 -8
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-page-header.mjs +90 -48
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-page.mjs +38 -10
- package/fesm2022/slotted-angular-page.mjs.map +1 -1
- package/fesm2022/slotted-angular-pagination.mjs +35 -22
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
- package/fesm2022/slotted-angular-popover.mjs +32 -19
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-prompt-composer.mjs +57 -20
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
- package/fesm2022/slotted-angular-prose.mjs +14 -11
- package/fesm2022/slotted-angular-prose.mjs.map +1 -1
- package/fesm2022/slotted-angular-radio-group.mjs +15 -9
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-rating.mjs +138 -82
- package/fesm2022/slotted-angular-rating.mjs.map +1 -1
- package/fesm2022/slotted-angular-result-state.mjs +16 -12
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
- package/fesm2022/slotted-angular-saved-views.mjs +43 -16
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
- package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-section.mjs +53 -18
- package/fesm2022/slotted-angular-section.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +190 -94
- package/fesm2022/slotted-angular-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-skeleton.mjs +32 -16
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
- package/fesm2022/slotted-angular-slider.mjs +31 -11
- package/fesm2022/slotted-angular-slider.mjs.map +1 -1
- package/fesm2022/slotted-angular-sparkline.mjs +41 -14
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
- package/fesm2022/slotted-angular-split-button.mjs +37 -11
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-splitter.mjs +11 -9
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
- package/fesm2022/slotted-angular-stack.mjs +4 -2
- package/fesm2022/slotted-angular-stack.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +35 -28
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-stepper.mjs +40 -15
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
- package/fesm2022/slotted-angular-switch.mjs +15 -10
- package/fesm2022/slotted-angular-switch.mjs.map +1 -1
- package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +243 -73
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +42 -18
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/fesm2022/slotted-angular-tag.mjs +19 -12
- package/fesm2022/slotted-angular-tag.mjs.map +1 -1
- package/fesm2022/slotted-angular-tags-input.mjs +253 -28
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-text-field.mjs +55 -15
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-textarea.mjs +5 -3
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-field.mjs +48 -14
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-picker.mjs +32 -20
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-timeline.mjs +147 -64
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
- package/fesm2022/slotted-angular-toast.mjs +43 -31
- package/fesm2022/slotted-angular-toast.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle.mjs +9 -4
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
- package/fesm2022/slotted-angular-toolbar.mjs +27 -12
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +15 -6
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
- package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-tour.mjs +47 -22
- package/fesm2022/slotted-angular-tour.mjs.map +1 -1
- package/fesm2022/slotted-angular-transfer.mjs +69 -30
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
- package/fesm2022/slotted-angular-tree.mjs +80 -26
- package/fesm2022/slotted-angular-tree.mjs.map +1 -1
- package/fesm2022/slotted-angular-typography.mjs +8 -4
- package/fesm2022/slotted-angular-typography.mjs.map +1 -1
- package/fesm2022/slotted-angular-upload.mjs +125 -57
- package/fesm2022/slotted-angular-upload.mjs.map +1 -1
- package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
- package/fesm2022/slotted-angular-wizard.mjs +163 -65
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
- package/package.json +3 -3
- package/types/slotted-angular-accordion.d.ts.map +1 -1
- package/types/slotted-angular-action-bar.d.ts +2 -0
- package/types/slotted-angular-action-bar.d.ts.map +1 -1
- package/types/slotted-angular-action-sheet.d.ts.map +1 -1
- package/types/slotted-angular-alert.d.ts +2 -2
- package/types/slotted-angular-alert.d.ts.map +1 -1
- package/types/slotted-angular-app-shell.d.ts +11 -3
- package/types/slotted-angular-app-shell.d.ts.map +1 -1
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
- package/types/slotted-angular-attachment.d.ts +1 -1
- package/types/slotted-angular-attachment.d.ts.map +1 -1
- package/types/slotted-angular-avatar-group.d.ts.map +1 -1
- package/types/slotted-angular-avatar.d.ts +11 -3
- package/types/slotted-angular-avatar.d.ts.map +1 -1
- package/types/slotted-angular-badge.d.ts +1 -1
- package/types/slotted-angular-badge.d.ts.map +1 -1
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
- package/types/slotted-angular-button-group.d.ts +1 -1
- package/types/slotted-angular-button-group.d.ts.map +1 -1
- package/types/slotted-angular-button.d.ts +33 -13
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-calendar.d.ts +30 -2
- package/types/slotted-angular-calendar.d.ts.map +1 -1
- package/types/slotted-angular-card.d.ts.map +1 -1
- package/types/slotted-angular-carousel.d.ts.map +1 -1
- package/types/slotted-angular-cascader.d.ts.map +1 -1
- package/types/slotted-angular-chart.d.ts +10 -0
- package/types/slotted-angular-chart.d.ts.map +1 -1
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
- package/types/slotted-angular-checkbox.d.ts +7 -1
- package/types/slotted-angular-checkbox.d.ts.map +1 -1
- package/types/slotted-angular-code-block.d.ts +1 -1
- package/types/slotted-angular-code-block.d.ts.map +1 -1
- package/types/slotted-angular-collapsible.d.ts +1 -1
- package/types/slotted-angular-collapsible.d.ts.map +1 -1
- package/types/slotted-angular-color-picker.d.ts.map +1 -1
- package/types/slotted-angular-column-manager.d.ts.map +1 -1
- package/types/slotted-angular-combobox.d.ts +5 -1
- package/types/slotted-angular-combobox.d.ts.map +1 -1
- package/types/slotted-angular-command-palette.d.ts +10 -1
- package/types/slotted-angular-command-palette.d.ts.map +1 -1
- package/types/slotted-angular-container.d.ts.map +1 -1
- package/types/slotted-angular-context-menu.d.ts.map +1 -1
- package/types/slotted-angular-currency-field.d.ts +63 -15
- package/types/slotted-angular-currency-field.d.ts.map +1 -1
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-grid.d.ts +72 -4
- package/types/slotted-angular-data-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-list.d.ts.map +1 -1
- package/types/slotted-angular-date-field.d.ts +11 -1
- package/types/slotted-angular-date-field.d.ts.map +1 -1
- package/types/slotted-angular-date-picker.d.ts +38 -12
- package/types/slotted-angular-date-picker.d.ts.map +1 -1
- package/types/slotted-angular-date-range-picker.d.ts +0 -1
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-field.d.ts.map +1 -1
- package/types/slotted-angular-datetime-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-description-list.d.ts.map +1 -1
- package/types/slotted-angular-detail-panel.d.ts.map +1 -1
- package/types/slotted-angular-dialog.d.ts +10 -3
- package/types/slotted-angular-dialog.d.ts.map +1 -1
- package/types/slotted-angular-divider.d.ts.map +1 -1
- package/types/slotted-angular-drawer.d.ts +12 -1
- package/types/slotted-angular-drawer.d.ts.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts +63 -15
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- package/types/slotted-angular-event-calendar.d.ts +9 -2
- package/types/slotted-angular-event-calendar.d.ts.map +1 -1
- package/types/slotted-angular-field-group.d.ts.map +1 -1
- package/types/slotted-angular-field.d.ts.map +1 -1
- package/types/slotted-angular-filter-bar.d.ts.map +1 -1
- package/types/slotted-angular-form.d.ts.map +1 -1
- package/types/slotted-angular-fullscreen.d.ts.map +1 -1
- package/types/slotted-angular-grid.d.ts.map +1 -1
- package/types/slotted-angular-highlight.d.ts.map +1 -1
- package/types/slotted-angular-hover-card.d.ts.map +1 -1
- package/types/slotted-angular-icon.d.ts +2 -2
- package/types/slotted-angular-icon.d.ts.map +1 -1
- package/types/slotted-angular-image.d.ts.map +1 -1
- package/types/slotted-angular-import-export-center.d.ts.map +1 -1
- package/types/slotted-angular-inline-message.d.ts +25 -25
- package/types/slotted-angular-inline-message.d.ts.map +1 -1
- package/types/slotted-angular-inline.d.ts.map +1 -1
- package/types/slotted-angular-kbd.d.ts.map +1 -1
- package/types/slotted-angular-link.d.ts.map +1 -1
- package/types/slotted-angular-list-item.d.ts +1 -1
- package/types/slotted-angular-list-item.d.ts.map +1 -1
- package/types/slotted-angular-list.d.ts +42 -27
- package/types/slotted-angular-list.d.ts.map +1 -1
- package/types/slotted-angular-listbox.d.ts.map +1 -1
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
- package/types/slotted-angular-markdown.d.ts.map +1 -1
- package/types/slotted-angular-menu.d.ts +11 -2
- package/types/slotted-angular-menu.d.ts.map +1 -1
- package/types/slotted-angular-menubar.d.ts.map +1 -1
- package/types/slotted-angular-message-scroller.d.ts.map +1 -1
- package/types/slotted-angular-message.d.ts +1 -1
- package/types/slotted-angular-message.d.ts.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +15 -1
- package/types/slotted-angular-multi-select.d.ts.map +1 -1
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
- package/types/slotted-angular-notification-center.d.ts +1 -1
- package/types/slotted-angular-notification-center.d.ts.map +1 -1
- package/types/slotted-angular-number-field.d.ts.map +1 -1
- package/types/slotted-angular-otp-input.d.ts.map +1 -1
- package/types/slotted-angular-page-header.d.ts +15 -6
- package/types/slotted-angular-page-header.d.ts.map +1 -1
- package/types/slotted-angular-page.d.ts.map +1 -1
- package/types/slotted-angular-pagination.d.ts.map +1 -1
- package/types/slotted-angular-popover.d.ts.map +1 -1
- package/types/slotted-angular-progress-indicator.d.ts +8 -1
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
- package/types/slotted-angular-prompt-composer.d.ts +11 -2
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
- package/types/slotted-angular-prose.d.ts.map +1 -1
- package/types/slotted-angular-radio-group.d.ts.map +1 -1
- package/types/slotted-angular-rating.d.ts +1 -1
- package/types/slotted-angular-rating.d.ts.map +1 -1
- package/types/slotted-angular-result-state.d.ts.map +1 -1
- package/types/slotted-angular-saved-views.d.ts.map +1 -1
- package/types/slotted-angular-scroll-area.d.ts.map +1 -1
- package/types/slotted-angular-section.d.ts +11 -3
- package/types/slotted-angular-section.d.ts.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts +15 -2
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +12 -2
- package/types/slotted-angular-select.d.ts.map +1 -1
- package/types/slotted-angular-side-navigation.d.ts.map +1 -1
- package/types/slotted-angular-skeleton.d.ts.map +1 -1
- package/types/slotted-angular-slider.d.ts.map +1 -1
- package/types/slotted-angular-sparkline.d.ts +7 -1
- package/types/slotted-angular-sparkline.d.ts.map +1 -1
- package/types/slotted-angular-split-button.d.ts +2 -2
- package/types/slotted-angular-split-button.d.ts.map +1 -1
- package/types/slotted-angular-splitter.d.ts.map +1 -1
- package/types/slotted-angular-stack.d.ts.map +1 -1
- package/types/slotted-angular-stat-card.d.ts +1 -1
- package/types/slotted-angular-stat-card.d.ts.map +1 -1
- package/types/slotted-angular-status-indicator.d.ts +1 -1
- package/types/slotted-angular-status-indicator.d.ts.map +1 -1
- package/types/slotted-angular-stepper.d.ts +1 -1
- package/types/slotted-angular-stepper.d.ts.map +1 -1
- package/types/slotted-angular-switch.d.ts.map +1 -1
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
- package/types/slotted-angular-table.d.ts +63 -6
- package/types/slotted-angular-table.d.ts.map +1 -1
- package/types/slotted-angular-tabs.d.ts +3 -4
- package/types/slotted-angular-tabs.d.ts.map +1 -1
- package/types/slotted-angular-tag.d.ts +1 -1
- package/types/slotted-angular-tag.d.ts.map +1 -1
- package/types/slotted-angular-tags-input.d.ts +33 -1
- package/types/slotted-angular-tags-input.d.ts.map +1 -1
- package/types/slotted-angular-text-field.d.ts.map +1 -1
- package/types/slotted-angular-textarea.d.ts.map +1 -1
- package/types/slotted-angular-theme.d.ts +1 -1
- package/types/slotted-angular-time-field.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts +0 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts +0 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-timeline.d.ts +1 -1
- package/types/slotted-angular-timeline.d.ts.map +1 -1
- package/types/slotted-angular-toast.d.ts +3 -3
- package/types/slotted-angular-toast.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts +8 -2
- package/types/slotted-angular-toggle-group.d.ts.map +1 -1
- package/types/slotted-angular-toggle.d.ts +1 -1
- package/types/slotted-angular-toggle.d.ts.map +1 -1
- package/types/slotted-angular-toolbar.d.ts +2 -0
- package/types/slotted-angular-toolbar.d.ts.map +1 -1
- package/types/slotted-angular-tooltip.d.ts.map +1 -1
- package/types/slotted-angular-top-navigation.d.ts.map +1 -1
- package/types/slotted-angular-tour.d.ts.map +1 -1
- package/types/slotted-angular-transfer.d.ts.map +1 -1
- package/types/slotted-angular-tree.d.ts.map +1 -1
- package/types/slotted-angular-typography.d.ts +1 -1
- package/types/slotted-angular-typography.d.ts.map +1 -1
- package/types/slotted-angular-upload.d.ts +2 -2
- package/types/slotted-angular-upload.d.ts.map +1 -1
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
- package/types/slotted-angular-wizard.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-combobox.mjs","sources":["../../combobox/src/combobox-defaults.ts","../../combobox/src/combobox.ts","../../combobox/src/combobox-items.ts","../../combobox/src/slotted-angular-combobox.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { Provider } from '@angular/core';\n\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\nexport type ComboboxVariant = 'outline' | 'subtle' | 'plain';\nexport type ComboboxSide = 'bottom' | 'top' | 'inline-start' | 'inline-end' | 'left' | 'right';\nexport type ComboboxAlign = 'start' | 'center' | 'end';\nexport type ComboboxWidth = 'anchor' | 'content';\nexport type ComboboxMount = 'active' | 'lazy' | 'eager';\nexport type ComboboxStrategy = 'absolute' | 'fixed';\n\n/** The pattern's own three values for `aria-autocomplete`. */\nexport type ComboboxAutocomplete = 'none' | 'list' | 'both';\n/**\n * When the popup opens on its own: as the reader types or presses the input, on\n * every focus and press, or never.\n */\nexport type ComboboxOpenOn = 'input' | 'focus' | 'manual';\n\nexport type ComboboxOptionValue = string;\n\nexport type ComboboxOpenReason =\n | 'pointer'\n | 'keyboard'\n | 'escape'\n | 'outsidePress'\n | 'select'\n | 'dismiss'\n | 'blur'\n | 'programmatic';\n\nexport type ComboboxValueReason =\n 'pointer' | 'keyboard' | 'clear' | 'select' | 'blur' | 'programmatic';\nexport type ComboboxInputReason = 'keyboard' | 'select' | 'clear' | 'blur' | 'programmatic';\nexport type ComboboxHighlightReason = 'pointer' | 'keyboard' | 'programmatic';\n\n/**\n * Whether an option answers a query. `null` turns filtering off entirely, which\n * is what a list a server has already filtered needs.\n */\nexport type ComboboxFilter = ((label: string, query: string) => boolean) | null;\n\nexport interface ComboboxOption {\n value: ComboboxOptionValue;\n label: string;\n disabled?: boolean;\n}\n\nexport interface ComboboxOptionGroup {\n label: string;\n options: readonly ComboboxOption[];\n}\n\nexport type ComboboxItems = readonly (ComboboxOption | ComboboxOptionGroup)[];\n\nexport interface ComboboxDefaults {\n align: ComboboxAlign;\n alignOffset: number;\n allowsCustomValue: boolean;\n autocomplete: ComboboxAutocomplete;\n autoHighlight: boolean;\n clearable: boolean;\n closeOnEscape: boolean;\n closeOnOutsidePress: boolean;\n closeOnSelect: boolean;\n collisionPadding: number;\n disabled: boolean;\n flip: boolean;\n fullWidth: boolean;\n hideWhenDetached: boolean;\n highlightMatch: boolean;\n invalid: boolean;\n loading: boolean;\n loop: boolean;\n mount: ComboboxMount;\n openOn: ComboboxOpenOn;\n portal: boolean;\n readOnly: boolean;\n required: boolean;\n shift: boolean;\n side: ComboboxSide;\n sideOffset: number;\n size: ComboboxSize;\n strategy: ComboboxStrategy;\n variant: ComboboxVariant;\n width: ComboboxWidth;\n}\n\n/**\n * The numbers, and why they are these numbers. The reasoning is the React\n * binding's, in `packages/react/src/combobox/combobox-defaults.tsx`; the two\n * tables are held to each other by the contract, which declares every one of\n * them as a default.\n */\nexport const COMBOBOX_FALLBACK: ComboboxDefaults = {\n align: 'start',\n alignOffset: 0,\n allowsCustomValue: false,\n autocomplete: 'list',\n autoHighlight: false,\n clearable: true,\n closeOnEscape: true,\n closeOnOutsidePress: true,\n closeOnSelect: true,\n collisionPadding: 8,\n disabled: false,\n flip: true,\n fullWidth: true,\n hideWhenDetached: true,\n highlightMatch: true,\n invalid: false,\n loading: false,\n loop: false,\n mount: 'active',\n openOn: 'input',\n portal: true,\n readOnly: false,\n required: false,\n shift: true,\n side: 'bottom',\n sideOffset: 4,\n size: 'md',\n strategy: 'absolute',\n variant: 'outline',\n width: 'content',\n};\n\nexport const COMBOBOX_DEFAULTS = new InjectionToken<ComboboxDefaults>('COMBOBOX_DEFAULTS', {\n providedIn: 'root',\n factory: () => COMBOBOX_FALLBACK,\n});\n\n/**\n * The decisions an application takes once. Its words come from the language in\n * force (`provideSlotted`).\n */\nexport function provideComboboxDefaults(defaults: Partial<ComboboxDefaults>): Provider {\n return { provide: COMBOBOX_DEFAULTS, useValue: { ...COMBOBOX_FALLBACK, ...defaults } };\n}\n\nexport function injectComboboxDefaults(): ComboboxDefaults {\n return inject(COMBOBOX_DEFAULTS);\n}\n","import { createFilter, moveIndex } from '@slotted/core/collection';\nimport type { Filter, MoveIntent } from '@slotted/core/collection';\nimport { createDismissableLayer, pressOrigin } from '@slotted/core/dismissable-layer';\nimport type { DismissableLayerHandle } from '@slotted/core/dismissable-layer';\nimport { comboboxMessages, type ComboboxMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { createPortalRoot } from '@slotted/core/portal';\nimport type { PortalRootHandle } from '@slotted/core/portal';\nimport { createPositioner } from '@slotted/core/positioner';\nimport type { PositionerHandle } from '@slotted/core/positioner';\nimport { createPresence } from '@slotted/core/presence';\nimport type { PresenceHandle } from '@slotted/core/presence';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n forwardRef,\n HostAttributeToken,\n inject,\n Injector,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n type EmbeddedViewRef,\n type OnInit,\n type TemplateRef,\n} from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlField } from '@slotted/angular/field';\n\nimport { injectComboboxDefaults } from './combobox-defaults';\nimport type {\n ComboboxAlign,\n ComboboxAutocomplete,\n ComboboxFilter,\n ComboboxHighlightReason,\n ComboboxInputReason,\n ComboboxItems,\n ComboboxMount,\n ComboboxOpenOn,\n ComboboxOpenReason,\n ComboboxOption,\n ComboboxOptionGroup,\n ComboboxOptionValue,\n ComboboxSide,\n ComboboxSize,\n ComboboxStrategy,\n ComboboxValueReason,\n ComboboxVariant,\n ComboboxWidth,\n} from './combobox-defaults';\n\nexport * from './combobox-defaults';\n\ntype Entry = 'selected' | 'first' | 'last' | 'none';\n\n/**\n * A filtered-out option stays in the DOM and is hidden, so that the element a\n * reader's pointer is over survives a keystroke. It is therefore not part of\n * the result set, and every count, every move and every completion has to skip\n * it — which is what the `:not([hidden])` is for.\n */\nconst OPTION_SELECTOR = \"[data-part='item']:not([hidden])\";\n\nconst isGroup = (entry: ComboboxItems[number]): entry is ComboboxOptionGroup => 'options' in entry;\n\nconst flatten = (items: ComboboxItems | undefined): readonly ComboboxOption[] =>\n items === undefined ? [] : items.flatMap((entry) => (isGroup(entry) ? entry.options : [entry]));\n\n/**\n * A text input with a listbox of options filtered by what was typed.\n *\n * **The host element is the control**, as `sl-select`'s is: the frame carries\n * `data-ui`, and the input, the clear button, the trigger and the hidden\n * submission field are its template. The popup is an `ng-template` built into\n * the portal when it opens.\n *\n * **The typed text and the chosen key are two contracts.** `inputValue` and\n * `value` are separate models, each with its own request, because a list whose\n * labels are not unique cannot derive one from the other.\n *\n * **Every text-editing key stays the browser's.** The key handler binds the\n * arrows, `Enter`, `Escape` and the page keys, and nothing else — the pattern's\n * IMPORTANT note asks exactly that.\n */\n@Component({\n selector: 'sl-combobox',\n standalone: true,\n exportAs: 'slCombobox',\n imports: [SlGlyph, SlIcon],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['../../../styles/src/combobox/combobox.css'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlCombobox), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlCombobox), multi: true },\n ],\n host: {\n 'data-ui': 'combobox',\n 'data-part': 'root',\n /* The name a page writes on the element is forwarded to the control, and\n the root keeps none: ARIA 1.2 does not name a generic element. */\n '[attr.aria-label]': 'null',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-full-width]': \"resolvedFullWidth() ? '' : null\",\n '[attr.data-open]': \"isOpen() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() ? '' : null\",\n '[attr.data-required]': \"resolvedRequired() ? '' : null\",\n '[attr.data-loading]': \"loading() ? '' : null\",\n },\n template: `\n <input\n #control\n type=\"text\"\n role=\"combobox\"\n data-part=\"input\"\n [id]=\"controlId()\"\n [value]=\"display()\"\n [disabled]=\"resolvedDisabled()\"\n [readOnly]=\"resolvedReadOnly()\"\n [required]=\"resolvedRequired()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-autocomplete]=\"resolvedAutocomplete()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"isOpen() ? contentId : null\"\n [attr.aria-activedescendant]=\"activeDescendant()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-readonly]=\"resolvedReadOnly() ? true : null\"\n [attr.aria-invalid]=\"resolvedInvalid() ? true : null\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocus()\"\n (click)=\"onClick($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n @if (showClear()) {\n <button\n type=\"button\"\n data-part=\"clear\"\n [attr.aria-label]=\"t('clear')\"\n (click)=\"onClear($event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }\n <button\n type=\"button\"\n tabindex=\"-1\"\n data-part=\"trigger\"\n [disabled]=\"resolvedDisabled()\"\n [attr.aria-label]=\"t('trigger')\"\n (click)=\"onToggle($event)\"\n >\n @if (loading()) {\n <span data-part=\"busy\" data-ui=\"spinner\" aria-hidden=\"true\"></span>\n } @else {\n <span data-part=\"arrow\"\n ><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span\n ></span>\n }\n </button>\n\n @if (name(); as submissionName) {\n <input\n type=\"text\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n readonly\n [name]=\"submissionName\"\n [attr.form]=\"form() ?? null\"\n [value]=\"value() ?? ''\"\n [required]=\"resolvedRequired()\"\n style=\"\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n padding: 0;\n border: 0;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n \"\n />\n }\n\n <ng-template #layer>\n <div\n data-ui=\"combobox\"\n data-part=\"positioner\"\n [attr.data-align]=\"resolvedAlign()\"\n [attr.data-size]=\"resolvedSize()\"\n [attr.data-width]=\"resolvedWidth()\"\n [attr.data-open]=\"isOpen() ? '' : null\"\n [attr.inert]=\"isOpen() ? null : ''\"\n >\n <div\n data-part=\"content\"\n role=\"listbox\"\n [id]=\"contentId\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-busy]=\"loading() ? true : null\"\n [attr.data-loading]=\"loading() ? '' : null\"\n >\n <ng-content />\n <!--\n The offer to add what was typed (CB8). It is an option, not a\n button: ArrowDown reaches it, aria-activedescendant names it and\n Enter takes it, through the machinery every other option uses. It\n replaces the empty message rather than standing beside it.\n -->\n @if (!loading() && creating(); as query) {\n <div\n role=\"option\"\n data-part=\"item\"\n data-create\n [attr.data-value]=\"query\"\n [id]=\"optionId(query)\"\n [attr.data-current]=\"highlightedValue() === query ? '' : null\"\n (click)=\"onCreateClick(query, $event)\"\n (pointerdown)=\"onOptionPointerDown($event)\"\n (pointerenter)=\"setHighlighted(query, 'pointer', $event)\"\n >\n <span data-part=\"label\">{{ t('create', { query: query }) }}</span>\n </div>\n } @else if (!loading() && optionCount() === 0) {\n <div data-part=\"empty\">{{ t('empty') }}</div>\n }\n @if (loading()) {\n <!--\n The wait, as the shape of the list that is coming: three rows the\n height of an option, drawn by the skeleton sheet (SL6/CB5). Hidden\n assistive technology — the status row is the live region.\n -->\n <div data-part=\"placeholder\" aria-hidden=\"true\">\n @for (row of [0, 1, 2]; track row) {\n <div>\n <span data-ui=\"skeleton\" data-part=\"root\" data-shape=\"text\" data-loading></span>\n </div>\n }\n </div>\n }\n <div\n data-part=\"status\"\n role=\"status\"\n aria-live=\"polite\"\n [attr.data-loading]=\"loading() ? '' : null\"\n >\n {{ statusMessage() }}\n </div>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class SlCombobox implements ControlValueAccessor, OnInit, Validator {\n private static readonly flag = (given: boolean | string | undefined) =>\n given === undefined ? undefined : booleanAttribute(given);\n private static readonly count = (given: number | string | undefined) =>\n given === undefined ? undefined : numberAttribute(given);\n\n /** The chosen option's key. */\n readonly value = model<ComboboxOptionValue | null>(null);\n readonly valueChangeRequest = output<ChangeRequest<ComboboxOptionValue | null>>();\n /** What an unbound `value` starts from, read once. It seeds the key and not the text. */\n readonly defaultValue = input<ComboboxOptionValue | null | undefined>(undefined);\n\n /** The characters in the field, which are not the chosen key. */\n readonly inputValue = model<string>('');\n readonly inputValueChangeRequest = output<ChangeRequest<string>>();\n\n readonly open = model<boolean>(false);\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n\n readonly highlightedValue = model<ComboboxOptionValue | null>(null);\n readonly highlightedValueChangeRequest = output<ChangeRequest<ComboboxOptionValue | null>>();\n\n /** The last option came into view; the consumer fetches the next page. */\n readonly loadMore = output<void>();\n\n /** The text the field refused, and why (CB7). */\n readonly inputReset = output<{ rejected: string; reason: 'blur' }>();\n\n /** The query the reader asked to add. The collection is the consumer's (CB8). */\n readonly create = output<{ query: string; reason: ComboboxValueReason }>();\n\n /** Whether the consumer will take a value the collection does not hold (CB8). */\n readonly creatable = input(undefined, { transform: SlCombobox.flag });\n\n readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n readonly placeholder = input<string>('');\n readonly name = input<string | undefined>(undefined);\n readonly form = input<string | undefined>(undefined);\n readonly items = input<ComboboxItems | undefined>(undefined);\n readonly total = input(undefined, { transform: SlCombobox.count });\n /** BCP 47, for the comparison the default filter makes. The language in force when absent. */\n readonly locale = input<string | undefined>(undefined);\n readonly filter = input<ComboboxFilter | undefined>(undefined);\n\n readonly size = input<ComboboxSize | undefined>(undefined);\n readonly variant = input<ComboboxVariant | undefined>(undefined);\n readonly side = input<ComboboxSide | undefined>(undefined);\n readonly align = input<ComboboxAlign | undefined>(undefined);\n readonly width = input<ComboboxWidth | undefined>(undefined);\n readonly mount = input<ComboboxMount | undefined>(undefined);\n readonly strategy = input<ComboboxStrategy | undefined>(undefined);\n readonly autocomplete = input<ComboboxAutocomplete | undefined>(undefined);\n readonly openOn = input<ComboboxOpenOn | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * clear and trigger buttons, the offer to create, the empty, loading and\n * count sentences.\n */\n readonly messages = input<PartialMessages<ComboboxMessages> | undefined>(undefined);\n\n readonly sideOffset = input(undefined, { transform: SlCombobox.count });\n readonly alignOffset = input(undefined, { transform: SlCombobox.count });\n readonly collisionPadding = input(undefined, { transform: SlCombobox.count });\n\n readonly allowsCustomValue = input(undefined, { transform: SlCombobox.flag });\n readonly autoHighlight = input(undefined, { transform: SlCombobox.flag });\n readonly highlightMatch = input(undefined, { transform: SlCombobox.flag });\n readonly clearable = input(undefined, { transform: SlCombobox.flag });\n readonly loop = input(undefined, { transform: SlCombobox.flag });\n readonly closeOnSelect = input(undefined, { transform: SlCombobox.flag });\n readonly closeOnEscape = input(undefined, { transform: SlCombobox.flag });\n readonly closeOnOutsidePress = input(undefined, { transform: SlCombobox.flag });\n readonly flip = input(undefined, { transform: SlCombobox.flag });\n readonly shift = input(undefined, { transform: SlCombobox.flag });\n readonly hideWhenDetached = input(undefined, { transform: SlCombobox.flag });\n readonly portal = input(undefined, { transform: SlCombobox.flag });\n readonly fullWidth = input(undefined, { transform: SlCombobox.flag });\n readonly disabled = input(undefined, { transform: SlCombobox.flag });\n readonly readOnly = input(undefined, { transform: SlCombobox.flag });\n readonly required = input(undefined, { transform: SlCombobox.flag });\n readonly invalid = input(undefined, { transform: SlCombobox.flag });\n readonly loading = input(false, { transform: booleanAttribute });\n\n private readonly defaults = injectComboboxDefaults();\n /** The family's words in the language in force, with this combobox's `messages` laid over them. */\n readonly t = injectMessages(comboboxMessages, this.messages);\n private readonly inForceLocale = injectLocale();\n /** The locale the default filter compares in: the `locale` input, or the language in force. */\n readonly resolvedLocale = computed(() => this.locale() ?? this.inForceLocale());\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly injector = inject(Injector);\n private readonly template = viewChild.required<TemplateRef<unknown>>('layer');\n private readonly controlRef = viewChild.required<{ nativeElement: HTMLInputElement }>('control');\n\n readonly field = inject(SlField, { optional: true });\n\n private readonly identifier = Math.random().toString(36).slice(2, 8);\n readonly contentId = `sl-combobox-${this.identifier}`;\n private readonly ownId = `sl-combobox-input-${this.identifier}`;\n\n private readonly registry = signal(new Map<ComboboxOptionValue, string>());\n readonly optionCount = signal(0);\n /**\n * The completion `autocomplete=\"both\"` shows: the rest of the first match, or\n * `null`. It is part of what the input renders rather than a write onto the\n * element, so nothing has to fight Angular for the value.\n */\n readonly completion = signal<string | null>(null);\n private wantsCompletion = false;\n private entry: Entry = 'none';\n\n private view: EmbeddedViewRef<unknown> | null = null;\n private layerNode: HTMLElement | null = null;\n private surfaceNode: HTMLElement | null = null;\n private portalRoot: PortalRootHandle | null = null;\n private positioner: PositionerHandle | null = null;\n private layer: DismissableLayerHandle | null = null;\n private presence: PresenceHandle | null = null;\n private observer: IntersectionObserver | null = null;\n private disabledByForm = signal<boolean | undefined>(undefined);\n\n private readonly hostId = inject(new HostAttributeToken('id'), { optional: true });\n\n private onChange: (value: ComboboxOptionValue | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n readonly resolvedSize = computed(() => this.size() ?? this.field?.size() ?? this.defaults.size);\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedAlign = computed(() => this.align() ?? this.defaults.align);\n readonly resolvedSide = computed(() => this.side() ?? this.defaults.side);\n readonly resolvedWidth = computed(() => this.width() ?? this.defaults.width);\n readonly resolvedMount = computed(() => this.mount() ?? this.defaults.mount);\n readonly resolvedAutocomplete = computed(() => this.autocomplete() ?? this.defaults.autocomplete);\n readonly resolvedOpenOn = computed(() => this.openOn() ?? this.defaults.openOn);\n readonly resolvedLoop = computed(() => this.loop() ?? this.defaults.loop);\n readonly resolvedClearable = computed(() => this.clearable() ?? this.defaults.clearable);\n readonly resolvedFullWidth = computed(() => this.fullWidth() ?? this.defaults.fullWidth);\n readonly resolvedCloseOnSelect = computed(\n () => this.closeOnSelect() ?? this.defaults.closeOnSelect,\n );\n readonly resolvedAllowsCustomValue = computed(\n () => this.allowsCustomValue() ?? this.defaults.allowsCustomValue,\n );\n readonly resolvedAutoHighlight = computed(\n () => this.autoHighlight() ?? this.defaults.autoHighlight,\n );\n readonly resolvedHighlightMatch = computed(\n () => this.highlightMatch() ?? this.defaults.highlightMatch,\n );\n /**\n * The offer to add what was typed (CB8): the query, while the consumer will\n * take one, the reader typed something and nothing in the collection matched\n * it. It is one expression, so the row and the commit cannot disagree about\n * whether an offer is standing.\n */\n readonly creating = computed(() =>\n (this.creatable() ?? false) && this.query() !== '' && this.optionCount() === 0\n ? this.query()\n : null,\n );\n\n readonly resolvedDisabled = computed(\n () =>\n this.disabled() ?? this.disabledByForm() ?? this.field?.disabled() ?? this.defaults.disabled,\n );\n readonly resolvedReadOnly = computed(\n () => this.readOnly() ?? this.field?.readOnly() ?? this.defaults.readOnly,\n );\n readonly resolvedRequired = computed(\n () => this.required() ?? this.field?.required() ?? this.defaults.required,\n );\n readonly resolvedInvalid = computed(\n () => this.invalid() ?? this.field?.invalid() ?? this.defaults.invalid,\n );\n\n readonly isOpen = computed(() => this.open() && !this.resolvedDisabled());\n readonly controlId = computed(() => this.hostId ?? this.field?.ids().control ?? this.ownId);\n readonly describedBy = computed(() => this.field?.describedBy() ?? null);\n readonly display = computed(() => this.completion() ?? this.inputValue());\n\n private readonly declared = computed(() => {\n const table = new Map<ComboboxOptionValue, string>();\n for (const option of flatten(this.items())) table.set(option.value, option.label);\n return table;\n });\n\n /**\n * The query the options filter against, and it is not always the typed text:\n * once an option has been committed the input holds its label, and filtering\n * on that would leave the popup showing the one option already chosen.\n */\n readonly query = computed(() => {\n const held = this.value();\n const committed = held === null ? undefined : this.labelFor(held);\n return this.inputValue() === committed ? '' : this.inputValue();\n });\n\n private readonly fallbackFilter = computed<Filter>(() =>\n createFilter({ locale: this.resolvedLocale() }),\n );\n\n readonly showClear = computed(\n () =>\n this.resolvedClearable() &&\n this.inputValue() !== '' &&\n !this.resolvedDisabled() &&\n !this.resolvedReadOnly(),\n );\n\n readonly activeDescendant = computed(() => {\n const held = this.highlightedValue();\n return this.isOpen() && held !== null ? this.optionId(held) : null;\n });\n\n readonly statusMessage = computed(() => {\n if (this.loading()) return this.t('loading');\n const count = this.optionCount();\n return count === 0 ? '' : this.t('count', { count });\n });\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n effect(() => {\n const open = this.isOpen();\n untracked(() => (open ? this.show() : this.hide()));\n });\n\n afterNextRender(() => {\n if (this.resolvedMount() === 'eager' && !this.isOpen()) this.build();\n });\n\n destroyRef.onDestroy(() => this.teardown());\n }\n\n /**\n * The uncontrolled start, read once. It is read here rather than in the\n * constructor because that is where Angular has finished writing the inputs.\n * A `value` the consumer bound is already in the model and wins; the seed\n * fills a model still at its declared default, and leaves `inputValue`\n * alone because the text and the key are two contracts.\n */\n ngOnInit() {\n const seed = this.defaultValue();\n if (seed === undefined || seed === null || this.value() !== null) return;\n this.value.set(seed);\n }\n\n optionId(value: ComboboxOptionValue): string {\n return `${this.contentId}-option-${encodeURIComponent(value)}`;\n }\n\n labelFor(value: ComboboxOptionValue): string | undefined {\n return this.declared().get(value) ?? this.registry().get(value);\n }\n\n registerLabel(value: ComboboxOptionValue, label: string) {\n if (this.registry().get(value) === label) return;\n const next = new Map(this.registry());\n next.set(value, label);\n this.registry.set(next);\n }\n\n /**\n * Three answers, and `undefined` is not one of them: an absent `filter` asks\n * for the library's own locale-sensitive `contains`, `null` turns filtering\n * off, and a function replaces the comparison.\n */\n matches(label: string): boolean {\n const query = this.query();\n const given = this.filter();\n if (query === '' || given === null) return true;\n if (given !== undefined) return given(label, query);\n return this.fallbackFilter().contains(label, query);\n }\n\n recount() {\n /* The offer to add what was typed is drawn *because* the count is nought,\n so counting it would take it away, which would bring it back (CB8). */\n this.optionCount.set(\n this.options().filter((option) => option.dataset['create'] === undefined).length,\n );\n this.applyCompletion();\n this.dropStaleHighlight();\n if (this.isOpen() && this.resolvedAutoHighlight()) this.land();\n }\n\n options(): HTMLElement[] {\n return [...(this.surfaceNode?.querySelectorAll<HTMLElement>(OPTION_SELECTOR) ?? [])];\n }\n\n focus() {\n this.controlRef().nativeElement.focus({ preventScroll: true });\n }\n\n scrollToKey(value: ComboboxOptionValue) {\n const option = this.options().find((candidate) => candidate.dataset['value'] === value);\n if (typeof option?.scrollIntoView === 'function') option.scrollIntoView({ block: 'nearest' });\n }\n\n setOpen(next: boolean, reason: ComboboxOpenReason, source?: Event) {\n if (next === this.isOpen()) return;\n const state = createControllable<boolean>({\n initial: this.isOpen(),\n onRequest: (request) => this.openChangeRequest.emit(request),\n });\n if (!state.request(next, reason, source)) return;\n this.open.set(next);\n if (!next) {\n this.highlightedValue.set(null);\n this.entry = 'none';\n }\n }\n\n setHighlighted(\n next: ComboboxOptionValue | null,\n reason: ComboboxHighlightReason,\n source?: Event,\n ) {\n if (next === this.highlightedValue()) return;\n const state = createControllable<ComboboxOptionValue | null>({\n initial: this.highlightedValue(),\n onRequest: (request) => this.highlightedValueChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) {\n this.highlightedValue.set(next);\n if (next !== null) this.scrollToKey(next);\n }\n }\n\n setInputValue(next: string, reason: ComboboxInputReason, source?: Event) {\n /* Whatever moves the text withdraws the completion: it is an offer about\n text that no longer exists. */\n this.completion.set(null);\n if (next === this.inputValue()) return;\n const state = createControllable<string>({\n initial: this.inputValue(),\n onRequest: (request) => this.inputValueChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.inputValue.set(next);\n }\n\n select(next: ComboboxOptionValue | null, reason: ComboboxValueReason, source?: Event) {\n if (next === this.value()) return;\n const state = createControllable<ComboboxOptionValue | null>({\n initial: this.value(),\n onRequest: (request) => this.valueChangeRequest.emit(request),\n });\n if (!state.request(next, reason, source)) return;\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n }\n\n clear(reason: ComboboxValueReason, source?: Event) {\n this.select(null, reason, source);\n this.setInputValue('', reason === 'clear' ? 'clear' : 'programmatic', source);\n }\n\n /** Takes an option: the key, the label into the field, and the popup shut. */\n commitOption(value: ComboboxOptionValue, reason: ComboboxValueReason, source?: Event) {\n this.select(value, reason, source);\n this.setInputValue(this.labelFor(value) ?? value, 'select', source);\n if (this.resolvedCloseOnSelect()) this.setOpen(false, 'select', source);\n }\n\n protected onInput(event: Event) {\n const next = (event.target as HTMLInputElement).value;\n const growing = next.length > this.inputValue().length;\n this.setInputValue(next, 'keyboard', event);\n /* A reader who is deleting is taking the text apart; writing the rest of a\n word back into a field they are emptying is what makes `both` unusable. */\n this.wantsCompletion = this.resolvedAutocomplete() === 'both' && growing;\n if (this.resolvedOpenOn() === 'input' && !this.isOpen() && !this.resolvedReadOnly()) {\n this.entry = this.resolvedAutoHighlight() ? 'first' : 'none';\n this.setOpen(true, 'keyboard', event);\n } else {\n /* After the render the new query causes: read now, the surface still\n holds the options the previous query kept, and the completion — which\n is consumed once — would be measured against the wrong first match. */\n afterNextRender(() => this.recount(), { injector: this.injector });\n }\n }\n\n protected onFocus() {\n if (this.resolvedOpenOn() !== 'focus' || this.resolvedReadOnly() || this.isOpen()) return;\n this.entry = 'selected';\n this.setOpen(true, 'keyboard');\n }\n\n /* A press on the input opens a closed popup and never closes an open one,\n because the same press places the caret. Under `focus` the press has\n already opened it through focus, so this finds it open. */\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || this.resolvedOpenOn() === 'manual' || this.isOpen()) return;\n if (this.resolvedDisabled() || this.resolvedReadOnly()) return;\n this.entry = 'selected';\n this.setOpen(true, 'pointer', event);\n }\n\n protected onBlur(event: FocusEvent) {\n this.onTouched();\n const next = event.relatedTarget;\n if (next instanceof Node && this.surfaceNode?.contains(next) === true) return;\n /* A press on the popup's own surface — its padding, a group heading, its\n scrollbar — takes focus off the input and reports `relatedTarget: null`,\n which is indistinguishable from the reader leaving. The layer stack\n already records where the press in flight went down, so ask it (CB11). */\n const began = pressOrigin(this.controlRef().nativeElement.ownerDocument);\n if (began instanceof Node && this.surfaceNode?.contains(began) === true) return;\n /* The last moment at which the reader is still choosing, which is where\n text that matched no option is settled (CB7). */\n this.settleInput(event);\n if (this.isOpen()) this.setOpen(false, 'blur', event);\n }\n\n /**\n * The option whose label *is* the text, by the same collator the filter used:\n * a reader who typed an option in full has chosen it, and comparing with\n * `===` would refuse `resume` for `Resumé` on a page the filter had just\n * matched.\n */\n private valueForLabel(text: string): ComboboxOptionValue | undefined {\n if (text === '') return undefined;\n const filter = this.fallbackFilter();\n for (const [candidate, label] of this.declared()) {\n if (filter.equals(label, text)) return candidate;\n }\n for (const [candidate, label] of this.registry()) {\n if (filter.equals(label, text)) return candidate;\n }\n return undefined;\n }\n\n /**\n * What becomes of text that matched no option, at the moment the reader\n * leaves the field (CB7). `combobox`'s React binding states the reasoning;\n * the three answers are the same, in the same order. Text that *is* an option\n * is that option; text that is not, in a field that allows one of its own, is\n * the value; text that is not, in a field that does not, is undone and the\n * caller is told what was refused.\n */\n private settleInput(source?: Event) {\n const text = this.inputValue();\n const matched = this.valueForLabel(text);\n\n if (matched !== undefined) {\n if (matched !== this.value()) this.select(matched, 'blur', source);\n this.setInputValue(this.labelFor(matched) ?? text, 'blur', source);\n return;\n }\n\n if (text === '') {\n if (this.value() !== null) this.select(null, 'blur', source);\n return;\n }\n\n if (this.resolvedAllowsCustomValue()) {\n if (text !== this.value()) this.select(text, 'blur', source);\n return;\n }\n\n const held = this.value();\n this.setInputValue(held === null ? '' : (this.labelFor(held) ?? ''), 'blur', source);\n this.inputReset.emit({ rejected: text, reason: 'blur' });\n }\n\n protected onClear(event: MouseEvent) {\n this.clear('clear', event);\n this.focus();\n }\n\n protected onToggle(event: MouseEvent) {\n if (this.resolvedDisabled() || this.resolvedReadOnly()) return;\n this.entry = 'selected';\n this.setOpen(!this.isOpen(), 'pointer', event);\n this.focus();\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (this.resolvedDisabled()) return;\n const alt = event.altKey;\n\n switch (event.key) {\n case 'ArrowDown':\n if (this.resolvedReadOnly()) return;\n event.preventDefault();\n if (!this.isOpen()) this.openWith(alt ? 'none' : 'first', event);\n else if (!alt) this.move('next', event);\n return;\n case 'ArrowUp':\n if (this.resolvedReadOnly()) return;\n event.preventDefault();\n if (alt) this.setOpen(false, 'keyboard', event);\n else if (!this.isOpen()) this.openWith('last', event);\n else this.move('previous', event);\n return;\n case 'PageDown':\n if (!this.isOpen()) return;\n event.preventDefault();\n this.move('pageDown', event);\n return;\n case 'PageUp':\n if (!this.isOpen()) return;\n event.preventDefault();\n this.move('pageUp', event);\n return;\n case 'Enter':\n if (!this.isOpen() && !this.resolvedAllowsCustomValue()) return;\n event.preventDefault();\n this.commitFromKeyboard(event);\n return;\n case 'Escape':\n this.onEscape(event);\n return;\n case 'Tab':\n /* Not prevented, and no highlight is committed: one the reader arrowed\n past is not a choice they made. A completion still standing is. */\n if (this.completion() !== null) this.commitFromKeyboard(event);\n else if (this.isOpen()) this.setOpen(false, 'dismiss', event);\n return;\n default:\n /* Every other key is the browser's, which the pattern asks for by name. */\n break;\n }\n }\n\n private onEscape(event: KeyboardEvent) {\n if (this.isOpen()) {\n event.preventDefault();\n this.setOpen(false, 'escape', event);\n return;\n }\n const held = this.value();\n if (held === null) return;\n event.preventDefault();\n const label = this.labelFor(held) ?? '';\n if (this.inputValue() === label) this.clear('keyboard', event);\n else this.setInputValue(label, 'keyboard', event);\n }\n\n private commitFromKeyboard(event: Event) {\n const standing = this.completion();\n if (this.highlightedValue() === null && standing !== null) {\n const suggested = this.options().find((option) => this.labelOf(option) === standing);\n if (suggested !== undefined) {\n this.commitOption(suggested.dataset['value'] ?? '', 'keyboard', event);\n return;\n }\n }\n\n const held = this.highlightedValue();\n if (held !== null && held === this.creating()) {\n this.takeOffer(held, 'keyboard', event);\n return;\n }\n if (held !== null) {\n this.commitOption(held, 'keyboard', event);\n return;\n }\n if (this.resolvedAllowsCustomValue()) {\n this.select(this.inputValue() === '' ? null : this.inputValue(), 'keyboard', event);\n } else {\n const value = this.value();\n this.setInputValue(value === null ? '' : (this.labelFor(value) ?? ''), 'select', event);\n }\n this.setOpen(false, 'select', event);\n }\n\n /**\n * An option refuses the press, and this one is an option (CB11). The rule\n * itself lives on `SlComboboxOption`; the offer is written by this template,\n * so it repeats the one line rather than the reason.\n */\n protected onOptionPointerDown(event: PointerEvent) {\n if (event.defaultPrevented) return;\n event.preventDefault();\n }\n\n protected onCreateClick(query: string, event: MouseEvent) {\n this.takeOffer(query, 'pointer', event);\n this.focus();\n }\n\n /**\n * Taking the offer reports the query and selects nothing: the collection does\n * not hold the value yet, and a control naming an option that does not exist\n * is a control whose value and picture disagree — the fault CB7 fixed at the\n * other end. What the consumer does with it is the consumer's (CB8).\n */\n private takeOffer(query: string, reason: ComboboxValueReason, event: Event) {\n this.create.emit({ query, reason });\n this.setOpen(false, 'select', event);\n }\n\n private labelOf(option: HTMLElement): string {\n return (\n option.dataset['textValue'] ??\n option.querySelector(\"[data-part='label']\")?.textContent?.trim() ??\n ''\n );\n }\n\n private openWith(entry: Entry, event: Event) {\n this.entry = entry;\n this.setOpen(true, 'keyboard', event);\n }\n\n private move(intent: MoveIntent, event?: Event) {\n const list = this.options();\n if (list.length === 0) return;\n const held = this.highlightedValue();\n const index = moveIndex({\n enabled: list.map((option) => option.dataset['disabled'] === undefined),\n from: held === null ? -1 : list.findIndex((option) => option.dataset['value'] === held),\n intent,\n loop: this.resolvedLoop(),\n });\n if (index !== -1) this.setHighlighted(list[index]?.dataset['value'] ?? null, 'keyboard', event);\n }\n\n /** The filter took the highlighted option away, so the highlight goes too. */\n private dropStaleHighlight() {\n const held = this.highlightedValue();\n if (held === null) return;\n const kept = this.options().some((option) => option.dataset['value'] === held);\n if (!kept) this.setHighlighted(null, 'keyboard');\n }\n\n private applyCompletion() {\n if (!this.wantsCompletion) return;\n this.wantsCompletion = false;\n const typed = this.inputValue();\n if (typed === '') return;\n const first = this.options().find((option) => option.dataset['disabled'] === undefined);\n if (first === undefined) return;\n const label = this.labelOf(first);\n if (!label.toLowerCase().startsWith(typed.toLowerCase()) || label === typed) return;\n this.completion.set(label);\n /* The completion is shown as a selected range, so the next character typed\n replaces it and Backspace withdraws it. */\n queueMicrotask(() => {\n const element = this.controlRef().nativeElement;\n if (element.value === label) element.setSelectionRange(typed.length, label.length);\n });\n }\n\n private show() {\n this.build();\n this.position();\n this.bind();\n this.enter();\n }\n\n private build() {\n if (this.view !== null) {\n this.presence?.sync(this.isOpen());\n this.view.detectChanges();\n return;\n }\n\n this.portalRoot = createPortalRoot({\n origin: this.controlRef().nativeElement,\n disabled: this.portal() === false,\n });\n\n this.view = this.viewContainer.createEmbeddedView(this.template());\n this.view.detectChanges();\n\n this.layerNode = this.view.rootNodes.find(\n (node: unknown): node is HTMLElement => node instanceof HTMLElement,\n ) as HTMLElement | null;\n this.surfaceNode = this.layerNode?.querySelector<HTMLElement>(\"[data-part='content']\") ?? null;\n if (this.layerNode === null) return;\n\n this.portalRoot.container?.append(this.layerNode);\n this.presence = createPresence({ present: this.isOpen() });\n this.presence.setNode(this.layerNode);\n }\n\n private position() {\n if (this.layerNode === null) return;\n const anchor = this.controlRef().nativeElement.parentElement;\n if (anchor === null) return;\n\n this.positioner?.destroy();\n this.positioner = createPositioner(anchor, this.layerNode, {\n align: this.resolvedAlign(),\n alignOffset: this.alignOffset() ?? this.defaults.alignOffset,\n boundaryPadding: this.collisionPadding() ?? this.defaults.collisionPadding,\n flip: this.flip() ?? this.defaults.flip,\n hideWhenDetached: this.hideWhenDetached() ?? this.defaults.hideWhenDetached,\n matchWidth: this.resolvedWidth() === 'anchor',\n shift: this.shift() ?? this.defaults.shift,\n side: this.resolvedSide(),\n sideOffset: this.sideOffset() ?? this.defaults.sideOffset,\n strategy: this.strategy() ?? this.defaults.strategy,\n });\n void this.positioner.update();\n }\n\n private bind() {\n if (this.layerNode === null) return;\n\n this.layer = createDismissableLayer(this.layerNode, {\n branches: [this.controlRef().nativeElement.parentElement].filter(\n (branch): branch is HTMLElement => branch !== null,\n ),\n escape: this.closeOnEscape() ?? this.defaults.closeOnEscape,\n focusOutside: false,\n modal: false,\n outsidePress: this.closeOnOutsidePress() ?? this.defaults.closeOnOutsidePress,\n scrollLock: false,\n onDismiss: (request) => {\n this.setOpen(\n false,\n request.reason === 'escape' ? 'escape' : 'outsidePress',\n request.source as Event | undefined,\n );\n },\n });\n\n this.observeEnd();\n }\n\n /**\n * The last row came into view, so there is more to fetch. An observer rather\n * than a scroll listener: the question is whether the end of the list is\n * visible, and a scroll handler answers it by measuring on every frame.\n */\n private observeEnd() {\n this.observer?.disconnect();\n this.observer = null;\n const root = this.surfaceNode;\n if (root === null || typeof IntersectionObserver !== 'function') return;\n const last = this.options().at(-1);\n if (last === undefined) return;\n\n this.observer = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) this.loadMore.emit();\n },\n { root },\n );\n this.observer.observe(last);\n }\n\n private enter() {\n this.recount();\n this.land();\n }\n\n /**\n * Where the highlight lands: the chosen option, or — with `autoHighlight`,\n * when none is showing — the first match. The contract's `focus.onOpen`\n * asks it of every opening, a press or a focus included, and of every query\n * typed while the popup stays open, so `Enter` always has a match under it.\n */\n private land() {\n if (this.entry === 'none') return;\n if (this.entry === 'selected') {\n const held = this.value();\n const shown = this.options().some(\n (option) => option.dataset['value'] === held && option.dataset['disabled'] === undefined,\n );\n if (held !== null && shown) this.setHighlighted(held, 'keyboard');\n else if (this.resolvedAutoHighlight()) this.move('first');\n return;\n }\n this.move(this.entry);\n }\n\n private hide() {\n this.unbind();\n if (this.resolvedMount() === 'active') this.teardown();\n }\n\n private unbind() {\n this.layer?.destroy();\n this.positioner?.destroy();\n this.observer?.disconnect();\n this.layer = null;\n this.positioner = null;\n this.observer = null;\n }\n\n private teardown() {\n this.unbind();\n this.presence?.destroy();\n this.portalRoot?.release();\n this.layerNode?.remove();\n this.view?.destroy();\n\n this.presence = null;\n this.portalRoot = null;\n this.layerNode = null;\n this.surfaceNode = null;\n this.view = null;\n }\n\n writeValue(value: ComboboxOptionValue | null) {\n this.value.set(value ?? null);\n this.inputValue.set(value === null ? '' : (this.labelFor(value) ?? value));\n }\n\n registerOnChange(fn: (value: ComboboxOptionValue | null) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabledByForm.set(isDisabled);\n }\n\n /**\n * Two validities the family owns, and neither is one a native input can\n * describe: a required control with nothing chosen, and a control holding\n * text that matches no option when a custom value is not allowed.\n */\n validate(): ValidationErrors | null {\n if (this.resolvedRequired() && this.value() === null) return { required: true };\n if (this.resolvedAllowsCustomValue()) return null;\n if (this.value() === null && this.inputValue() !== '') return { unmatched: true };\n return null;\n }\n}\n","import { matchRanges } from '@slotted/core/highlight';\nimport {\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport type { GlyphName } from '@slotted/angular/icon';\n\nimport { SlHighlight } from '@slotted/angular/highlight';\n\nimport { SlCombobox } from './combobox';\nimport type { ComboboxOptionValue } from './combobox-defaults';\n\n/**\n * The first column, holding an element of the consumer's own — an avatar, a\n * logo — where the `icon` input names only a glyph. React's `icon` prop takes\n * any element, and this is the same column in the same part.\n */\n@Directive({\n selector: '[slComboboxItemIcon]',\n standalone: true,\n host: { 'data-part': 'icon' },\n})\nexport class SlComboboxItemIcon {}\n\n/**\n * One option, and the one that decides whether it belongs in the results.\n *\n * **Each option filters itself.** The family holds the query and the\n * comparison; the option holds its own label. An option that does not match\n * renders nothing at all, so the popup's DOM *is* the result set — which is\n * what makes the count, the keyboard model and the empty row read one answer.\n *\n * `label` is an input rather than projected content here, and that is the one\n * place this binding differs from its React counterpart: a comparison and a\n * split both need the text before the view exists, and Angular has no way to\n * read projected content that has not been created.\n */\n@Component({\n selector: 'sl-combobox-item',\n standalone: true,\n exportAs: 'slComboboxItem',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SlGlyph, SlHighlight, SlIcon],\n host: {\n 'data-part': 'item',\n role: 'option',\n '[id]': 'optionId()',\n '[hidden]': '!visible()',\n '[attr.data-value]': 'value()',\n '[attr.data-text-value]': 'label()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'disabled() ? true : null',\n '[attr.aria-posinset]': 'position() ?? null',\n '[attr.aria-setsize]': 'position() === undefined ? null : (combobox.total() ?? null)',\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '[attr.data-selected]': \"selected() ? '' : null\",\n '[attr.data-current]': \"current() ? '' : null\",\n '(click)': 'onClick($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointerenter)': 'onPointerEnter($event)',\n },\n template: `\n <ng-content select=\"[slComboboxItemIcon]\" />\n @if (icon(); as glyph) {\n <span data-part=\"icon\"\n ><span slIcon><svg slGlyph [name]=\"glyph\"></svg></span\n ></span>\n }\n <span data-part=\"label\">\n @if (ranges().length > 0) {\n <span slHighlight [text]=\"label()\" [ranges]=\"ranges()\"></span>\n } @else {\n {{ label() }}\n }\n </span>\n @if (description()) {\n <span data-part=\"description\">{{ description() }}</span>\n }\n <span data-part=\"indicator\"\n ><span slIcon><svg slGlyph name=\"check\"></svg></span\n ></span>\n `,\n})\nexport class SlComboboxItem {\n readonly value = input.required<ComboboxOptionValue>();\n /** What the reader sees, what the filter compares, and what the mark splits. */\n readonly label = input.required<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly description = input<string | undefined>(undefined);\n /**\n * The glyph drawn in the first column, as a `Glyph` inside an `Icon` box. An\n * element of the consumer's own goes there through `slComboboxItemIcon`.\n */\n readonly icon = input<GlyphName | undefined>(undefined);\n readonly position = input(undefined, {\n transform: (given: number | string | undefined) =>\n given === undefined ? undefined : numberAttribute(given),\n });\n\n readonly combobox = inject(SlCombobox);\n private readonly host = inject(ElementRef<HTMLElement>);\n\n readonly optionId = computed(() => this.combobox.optionId(this.value()));\n readonly selected = computed(() => this.combobox.value() === this.value());\n readonly current = computed(() => this.combobox.highlightedValue() === this.value());\n readonly visible = computed(() => this.combobox.matches(this.label()));\n\n /**\n * The spans the query matched, from the same collator the filter used, drawn\n * by the `highlight` family inside this family's label. An `indexOf` beside\n * a locale-sensitive filter marks nothing on the row it has just matched.\n */\n readonly ranges = computed(() => {\n const query = this.combobox.query();\n if (!this.combobox.resolvedHighlightMatch() || query === '') return [];\n return matchRanges(this.label(), query, { locale: this.combobox.resolvedLocale() });\n });\n\n constructor() {\n /**\n * A hidden option is out of the result set, so the count and the label\n * registry both have to see the change. `hidden` rather than an `@if`,\n * because an option that is destroyed and rebuilt on every keystroke loses\n * its element identity — and with it whatever the reader's pointer was on.\n */\n afterRenderEffect(() => {\n this.visible();\n this.combobox.registerLabel(this.value(), this.label());\n this.combobox.recount();\n });\n\n inject(DestroyRef).onDestroy(() => this.combobox.recount());\n }\n\n protected onPointerEnter(event: PointerEvent) {\n if (this.disabled()) return;\n this.combobox.setHighlighted(this.value(), 'pointer', event);\n }\n\n /**\n * Only to stop the browser moving focus off the input: an option cannot hold\n * focus, so a press on it would take focus to the body — and the settling of\n * CB7 would run on the query the reader was in the middle of choosing from,\n * before the click arrived (CB11).\n */\n protected onPointerDown(event: PointerEvent) {\n if (event.defaultPrevented) return;\n event.preventDefault();\n }\n\n protected onClick(event: MouseEvent) {\n if (this.disabled()) return;\n this.combobox.commitOption(this.value(), 'pointer', event);\n this.combobox.focus();\n }\n}\n\n/**\n * A set of options under a heading, named by `aria-labelledby` pointing at its\n * own label. A group whose every option was filtered away is hidden: a heading\n * with no options under it says a category matched when none did.\n */\n@Component({\n selector: 'sl-combobox-group',\n standalone: true,\n exportAs: 'slComboboxGroup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'group',\n role: 'group',\n '[attr.aria-labelledby]': 'labelId',\n '[hidden]': 'empty()',\n },\n template: `\n <div data-part=\"group-label\" [id]=\"labelId\">{{ label() }}</div>\n <ng-content />\n `,\n})\nexport class SlComboboxGroup {\n readonly label = input.required<string>();\n readonly labelId = `sl-combobox-group-${Math.random().toString(36).slice(2, 8)}`;\n\n private readonly host = inject(ElementRef<HTMLElement>);\n private readonly combobox = inject(SlCombobox);\n readonly empty = signal(false);\n\n constructor() {\n /**\n * Measured after render rather than computed from the query: whether a\n * group still holds an option is a fact about the DOM its own children\n * produced, and a computed that read the DOM would be right once and stale\n * from then on.\n */\n afterRenderEffect(() => {\n this.combobox.query();\n const element = this.host.nativeElement as HTMLElement;\n this.empty.set(element.querySelector(\"[data-part='item']:not([hidden])\") === null);\n });\n }\n}\n\n/** A line between two sets of options. */\n@Component({\n selector: 'sl-combobox-separator',\n standalone: true,\n exportAs: 'slComboboxSeparator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'separator', role: 'separator' },\n template: '',\n})\nexport class SlComboboxSeparator {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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AAA,EAAA,MAAA,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,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,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,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,iB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AA,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,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,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,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,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,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,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,CA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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-combobox.mjs","sources":["../../combobox/src/combobox-defaults.ts","../../combobox/src/combobox.ts","../../combobox/src/combobox-items.ts","../../combobox/src/slotted-angular-combobox.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { Provider } from '@angular/core';\n\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\nexport type ComboboxVariant = 'outline' | 'subtle' | 'plain';\nexport type ComboboxSide = 'bottom' | 'top' | 'inline-start' | 'inline-end' | 'left' | 'right';\nexport type ComboboxAlign = 'start' | 'center' | 'end';\nexport type ComboboxWidth = 'anchor' | 'content';\nexport type ComboboxMount = 'active' | 'lazy' | 'eager';\nexport type ComboboxStrategy = 'absolute' | 'fixed';\n\n/** The pattern's own three values for `aria-autocomplete`. */\nexport type ComboboxAutocomplete = 'none' | 'list' | 'both';\n/**\n * When the popup opens on its own: as the reader types or presses the input, on\n * every focus and press, or never.\n */\nexport type ComboboxOpenOn = 'input' | 'focus' | 'manual';\n\nexport type ComboboxOptionValue = string;\n\nexport type ComboboxOpenReason =\n | 'pointer'\n | 'keyboard'\n | 'escape'\n | 'outsidePress'\n | 'select'\n | 'dismiss'\n | 'blur'\n | 'programmatic';\n\nexport type ComboboxValueReason =\n 'pointer' | 'keyboard' | 'clear' | 'select' | 'blur' | 'programmatic';\nexport type ComboboxInputReason = 'keyboard' | 'select' | 'clear' | 'blur' | 'programmatic';\nexport type ComboboxHighlightReason = 'pointer' | 'keyboard' | 'programmatic';\n\n/**\n * Whether an option answers a query. `null` turns filtering off entirely, which\n * is what a list a server has already filtered needs.\n */\nexport type ComboboxFilter = ((label: string, query: string) => boolean) | null;\n\nexport interface ComboboxOption {\n value: ComboboxOptionValue;\n label: string;\n disabled?: boolean;\n}\n\nexport interface ComboboxOptionGroup {\n label: string;\n options: readonly ComboboxOption[];\n}\n\nexport type ComboboxItems = readonly (ComboboxOption | ComboboxOptionGroup)[];\n\nexport interface ComboboxDefaults {\n align: ComboboxAlign;\n alignOffset: number;\n allowsCustomValue: boolean;\n autocomplete: ComboboxAutocomplete;\n autoHighlight: boolean;\n clearable: boolean;\n closeOnEscape: boolean;\n closeOnOutsidePress: boolean;\n closeOnSelect: boolean;\n collisionPadding: number;\n disabled: boolean;\n flip: boolean;\n fullWidth: boolean;\n hideWhenDetached: boolean;\n highlightMatch: boolean;\n invalid: boolean;\n loading: boolean;\n loop: boolean;\n mount: ComboboxMount;\n openOn: ComboboxOpenOn;\n portal: boolean;\n readOnly: boolean;\n required: boolean;\n shift: boolean;\n side: ComboboxSide;\n sideOffset: number;\n size: ComboboxSize;\n strategy: ComboboxStrategy;\n variant: ComboboxVariant;\n width: ComboboxWidth;\n}\n\n/**\n * The numbers, and why they are these numbers. The reasoning is the React\n * binding's, in `packages/react/src/combobox/combobox-defaults.tsx`; the two\n * tables are held to each other by the contract, which declares every one of\n * them as a default.\n */\nexport const COMBOBOX_FALLBACK: ComboboxDefaults = {\n align: 'start',\n alignOffset: 0,\n allowsCustomValue: false,\n autocomplete: 'list',\n autoHighlight: false,\n clearable: true,\n closeOnEscape: true,\n closeOnOutsidePress: true,\n closeOnSelect: true,\n collisionPadding: 8,\n disabled: false,\n flip: true,\n fullWidth: true,\n hideWhenDetached: true,\n highlightMatch: true,\n invalid: false,\n loading: false,\n loop: false,\n mount: 'active',\n openOn: 'input',\n portal: true,\n readOnly: false,\n required: false,\n shift: true,\n side: 'bottom',\n sideOffset: 4,\n size: 'md',\n strategy: 'absolute',\n variant: 'outline',\n width: 'content',\n};\n\nexport const COMBOBOX_DEFAULTS = new InjectionToken<ComboboxDefaults>('COMBOBOX_DEFAULTS', {\n providedIn: 'root',\n factory: () => COMBOBOX_FALLBACK,\n});\n\n/**\n * The decisions an application takes once. Its words come from the language in\n * force (`provideSlotted`).\n */\nexport function provideComboboxDefaults(defaults: Partial<ComboboxDefaults>): Provider {\n return { provide: COMBOBOX_DEFAULTS, useValue: { ...COMBOBOX_FALLBACK, ...defaults } };\n}\n\nexport function injectComboboxDefaults(): ComboboxDefaults {\n return inject(COMBOBOX_DEFAULTS);\n}\n","import { createFilter, moveIndex, revealWithin } from '@slotted/core/collection';\nimport type { Filter, MoveIntent } from '@slotted/core/collection';\nimport { createDismissableLayer, pressOrigin } from '@slotted/core/dismissable-layer';\nimport type { DismissableLayerHandle } from '@slotted/core/dismissable-layer';\nimport { comboboxMessages, type ComboboxMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { createPortalRoot } from '@slotted/core/portal';\nimport type { PortalRootHandle } from '@slotted/core/portal';\nimport { createPositioner } from '@slotted/core/positioner';\nimport type { PositionerHandle } from '@slotted/core/positioner';\nimport { createPresence } from '@slotted/core/presence';\nimport type { PresenceHandle } from '@slotted/core/presence';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n forwardRef,\n HostAttributeToken,\n inject,\n Injector,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n type EmbeddedViewRef,\n type OnInit,\n type TemplateRef,\n} from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlField } from '@slotted/angular/field';\n\nimport { injectComboboxDefaults } from './combobox-defaults';\nimport type {\n ComboboxAlign,\n ComboboxAutocomplete,\n ComboboxFilter,\n ComboboxHighlightReason,\n ComboboxInputReason,\n ComboboxItems,\n ComboboxMount,\n ComboboxOpenOn,\n ComboboxOpenReason,\n ComboboxOption,\n ComboboxOptionGroup,\n ComboboxOptionValue,\n ComboboxSide,\n ComboboxSize,\n ComboboxStrategy,\n ComboboxValueReason,\n ComboboxVariant,\n ComboboxWidth,\n} from './combobox-defaults';\n\nexport * from './combobox-defaults';\n\ntype Entry = 'selected' | 'first' | 'last' | 'none';\n\n/**\n * A filtered-out option stays in the DOM and is hidden, so that the element a\n * reader's pointer is over survives a keystroke. It is therefore not part of\n * the result set, and every count, every move and every completion has to skip\n * it — which is what the `:not([hidden])` is for.\n */\nconst OPTION_SELECTOR = \"[data-part='item']:not([hidden])\";\n\nconst isGroup = (entry: ComboboxItems[number]): entry is ComboboxOptionGroup => 'options' in entry;\n\nconst flatten = (items: ComboboxItems | undefined): readonly ComboboxOption[] =>\n items === undefined ? [] : items.flatMap((entry) => (isGroup(entry) ? entry.options : [entry]));\n\n/**\n * A text input with a listbox of options filtered by what was typed.\n *\n * **The host element is the control**, as `sl-select`'s is: the frame carries\n * `data-ui`, and the input, the clear button, the trigger and the hidden\n * submission field are its template. The popup is an `ng-template` built into\n * the portal when it opens.\n *\n * **The typed text and the chosen key are two contracts.** `inputValue` and\n * `value` are separate models, each with its own request, because a list whose\n * labels are not unique cannot derive one from the other.\n *\n * **Every text-editing key stays the browser's.** The key handler binds the\n * arrows, `Enter`, `Escape` and the page keys, and nothing else — the pattern's\n * IMPORTANT note asks exactly that.\n */\n@Component({\n selector: 'sl-combobox',\n standalone: true,\n exportAs: 'slCombobox',\n imports: [SlGlyph, SlIcon],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['../../../styles/src/combobox/combobox.css'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlCombobox), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlCombobox), multi: true },\n ],\n host: {\n 'data-ui': 'combobox',\n 'data-ui-combobox': '',\n 'data-part': 'root',\n 'data-part-root': '',\n /* The name a page writes on the element is forwarded to the control, and\n the root keeps none: ARIA 1.2 does not name a generic element. */\n '[attr.aria-label]': 'null',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-full-width]': \"resolvedFullWidth() ? '' : null\",\n '[attr.data-open]': \"isOpen() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() ? '' : null\",\n '[attr.data-required]': \"resolvedRequired() ? '' : null\",\n '[attr.data-loading]': \"loading() ? '' : null\",\n },\n template: `\n <input\n #control\n type=\"text\"\n role=\"combobox\"\n data-part=\"input\"\n data-part-input=\"\"\n [id]=\"controlId()\"\n [value]=\"display()\"\n [disabled]=\"resolvedDisabled()\"\n [readOnly]=\"resolvedReadOnly()\"\n [required]=\"resolvedRequired()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-autocomplete]=\"resolvedAutocomplete()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"isOpen() ? contentId : null\"\n [attr.aria-activedescendant]=\"activeDescendant()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-readonly]=\"resolvedReadOnly() ? true : null\"\n [attr.aria-invalid]=\"resolvedInvalid() ? true : null\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocus()\"\n (click)=\"onClick($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n @if (showClear()) {\n <button\n type=\"button\"\n data-part=\"clear\"\n data-part-clear=\"\"\n [attr.aria-label]=\"t('clear')\"\n (click)=\"onClear($event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }\n <button\n type=\"button\"\n tabindex=\"-1\"\n data-part=\"trigger\"\n data-part-trigger=\"\"\n [disabled]=\"resolvedDisabled()\"\n [attr.aria-label]=\"t('trigger')\"\n (click)=\"onToggle($event)\"\n >\n @if (loading()) {\n <span\n data-part=\"busy\"\n data-part-busy=\"\"\n data-ui=\"spinner\"\n data-ui-spinner=\"\"\n aria-hidden=\"true\"\n ><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <circle cx=\"12\" cy=\"12\" r=\"8.875\" />\n <circle cx=\"12\" cy=\"12\" r=\"8.875\" pathLength=\"100\" /></svg\n ></span>\n } @else {\n <span data-part=\"arrow\" data-part-arrow=\"\"\n ><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span\n ></span>\n }\n </button>\n\n @if (name(); as submissionName) {\n <input\n type=\"text\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n readonly\n [name]=\"submissionName\"\n [attr.form]=\"form() ?? null\"\n [value]=\"value() ?? ''\"\n [required]=\"resolvedRequired()\"\n style=\"\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n padding: 0;\n border: 0;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n \"\n />\n }\n\n <ng-template #layer>\n <div\n data-ui=\"combobox\"\n data-ui-combobox=\"\"\n data-part=\"positioner\"\n data-part-positioner=\"\"\n [attr.data-align]=\"resolvedAlign()\"\n [attr.data-size]=\"resolvedSize()\"\n [attr.data-width]=\"resolvedWidth()\"\n [attr.data-open]=\"isOpen() ? '' : null\"\n [attr.inert]=\"isOpen() ? null : ''\"\n >\n <div\n data-part=\"content\"\n data-part-content=\"\"\n role=\"listbox\"\n [id]=\"contentId\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-busy]=\"loading() ? true : null\"\n [attr.data-loading]=\"loading() ? '' : null\"\n >\n <ng-content />\n <!--\n The offer to add what was typed (CB8). It is an option, not a\n button: ArrowDown reaches it, aria-activedescendant names it and\n Enter takes it, through the machinery every other option uses. It\n replaces the empty message rather than standing beside it.\n -->\n @if (!loading() && creating(); as query) {\n <div\n role=\"option\"\n data-part=\"item\"\n data-part-item=\"\"\n data-create\n [attr.data-value]=\"query\"\n [id]=\"optionId(query)\"\n [attr.data-current]=\"highlightedValue() === query ? '' : null\"\n (click)=\"onCreateClick(query, $event)\"\n (pointerdown)=\"onOptionPointerDown($event)\"\n (pointerenter)=\"setHighlighted(query, 'pointer', $event)\"\n >\n <span data-part=\"label\" data-part-label=\"\">{{ t('create', { query: query }) }}</span>\n </div>\n } @else if (!loading() && optionCount() === 0) {\n <div data-part=\"empty\" data-part-empty=\"\">{{ t('empty') }}</div>\n }\n @if (loading()) {\n <!--\n The wait, as the shape of the list that is coming: three rows the\n height of an option, drawn by the skeleton sheet (SL6/CB5). Hidden\n assistive technology — the status row is the live region.\n -->\n <div data-part=\"placeholder\" data-part-placeholder=\"\" aria-hidden=\"true\">\n @for (row of [0, 1, 2]; track row) {\n <div>\n <span\n data-ui=\"skeleton\"\n data-ui-skeleton=\"\"\n data-part=\"root\"\n data-part-root=\"\"\n data-shape=\"text\"\n data-loading\n ></span>\n </div>\n }\n </div>\n }\n <div\n data-part=\"status\"\n data-part-status=\"\"\n role=\"status\"\n aria-live=\"polite\"\n [attr.data-loading]=\"loading() ? '' : null\"\n >\n {{ statusMessage() }}\n </div>\n </div>\n </div>\n </ng-template>\n `,\n})\nexport class SlCombobox implements ControlValueAccessor, OnInit, Validator {\n private static readonly flag = (given: boolean | string | undefined) =>\n given === undefined ? undefined : booleanAttribute(given);\n private static readonly count = (given: number | string | undefined) =>\n given === undefined ? undefined : numberAttribute(given);\n\n /** The chosen option's key. */\n readonly value = model<ComboboxOptionValue | null>(null);\n readonly valueChangeRequest = output<ChangeRequest<ComboboxOptionValue | null>>();\n /** What an unbound `value` starts from, read once. It seeds the key and not the text. */\n readonly defaultValue = input<ComboboxOptionValue | null | undefined>(undefined);\n\n /** The characters in the field, which are not the chosen key. */\n readonly inputValue = model<string>('');\n readonly inputValueChangeRequest = output<ChangeRequest<string>>();\n\n readonly open = model<boolean>(false);\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n\n readonly highlightedValue = model<ComboboxOptionValue | null>(null);\n readonly highlightedValueChangeRequest = output<ChangeRequest<ComboboxOptionValue | null>>();\n\n /** The last option came into view; the consumer fetches the next page. */\n readonly loadMore = output<void>();\n\n /** The text the field refused, and why (CB7). */\n readonly inputReset = output<{ rejected: string; reason: 'blur' }>();\n\n /** The query the reader asked to add. The collection is the consumer's (CB8). */\n readonly create = output<{ query: string; reason: ComboboxValueReason }>();\n\n /** Whether the consumer will take a value the collection does not hold (CB8). */\n readonly creatable = input(undefined, { transform: SlCombobox.flag });\n\n readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n readonly placeholder = input<string>('');\n readonly name = input<string | undefined>(undefined);\n readonly form = input<string | undefined>(undefined);\n readonly items = input<ComboboxItems | undefined>(undefined);\n readonly total = input(undefined, { transform: SlCombobox.count });\n /** BCP 47, for the comparison the default filter makes. The language in force when absent. */\n readonly locale = input<string | undefined>(undefined);\n readonly filter = input<ComboboxFilter | undefined>(undefined);\n\n readonly size = input<ComboboxSize | undefined>(undefined);\n readonly variant = input<ComboboxVariant | undefined>(undefined);\n readonly side = input<ComboboxSide | undefined>(undefined);\n readonly align = input<ComboboxAlign | undefined>(undefined);\n readonly width = input<ComboboxWidth | undefined>(undefined);\n readonly mount = input<ComboboxMount | undefined>(undefined);\n readonly strategy = input<ComboboxStrategy | undefined>(undefined);\n readonly autocomplete = input<ComboboxAutocomplete | undefined>(undefined);\n readonly openOn = input<ComboboxOpenOn | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * clear and trigger buttons, the offer to create, the empty, loading and\n * count sentences.\n */\n readonly messages = input<PartialMessages<ComboboxMessages> | undefined>(undefined);\n\n readonly sideOffset = input(undefined, { transform: SlCombobox.count });\n readonly alignOffset = input(undefined, { transform: SlCombobox.count });\n readonly collisionPadding = input(undefined, { transform: SlCombobox.count });\n\n readonly allowsCustomValue = input(undefined, { transform: SlCombobox.flag });\n readonly autoHighlight = input(undefined, { transform: SlCombobox.flag });\n readonly highlightMatch = input(undefined, { transform: SlCombobox.flag });\n readonly clearable = input(undefined, { transform: SlCombobox.flag });\n readonly loop = input(undefined, { transform: SlCombobox.flag });\n readonly closeOnSelect = input(undefined, { transform: SlCombobox.flag });\n readonly closeOnEscape = input(undefined, { transform: SlCombobox.flag });\n readonly closeOnOutsidePress = input(undefined, { transform: SlCombobox.flag });\n readonly flip = input(undefined, { transform: SlCombobox.flag });\n readonly shift = input(undefined, { transform: SlCombobox.flag });\n readonly hideWhenDetached = input(undefined, { transform: SlCombobox.flag });\n readonly portal = input(undefined, { transform: SlCombobox.flag });\n readonly fullWidth = input(undefined, { transform: SlCombobox.flag });\n readonly disabled = input(undefined, { transform: SlCombobox.flag });\n readonly readOnly = input(undefined, { transform: SlCombobox.flag });\n readonly required = input(undefined, { transform: SlCombobox.flag });\n readonly invalid = input(undefined, { transform: SlCombobox.flag });\n readonly loading = input(false, { transform: booleanAttribute });\n\n private readonly defaults = injectComboboxDefaults();\n /** The family's words in the language in force, with this combobox's `messages` laid over them. */\n readonly t = injectMessages(comboboxMessages, this.messages);\n private readonly inForceLocale = injectLocale();\n /** The locale the default filter compares in: the `locale` input, or the language in force. */\n readonly resolvedLocale = computed(() => this.locale() ?? this.inForceLocale());\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly injector = inject(Injector);\n private readonly template = viewChild.required<TemplateRef<unknown>>('layer');\n private readonly controlRef = viewChild.required<{ nativeElement: HTMLInputElement }>('control');\n\n readonly field = inject(SlField, { optional: true });\n\n private readonly identifier = Math.random().toString(36).slice(2, 8);\n readonly contentId = `sl-combobox-${this.identifier}`;\n private readonly ownId = `sl-combobox-input-${this.identifier}`;\n\n private readonly registry = signal(new Map<ComboboxOptionValue, string>());\n /** Bumped by an option whose presence or visibility changed; read once per render. */\n private readonly collection = signal(0);\n readonly optionCount = signal(0);\n /**\n * The completion `autocomplete=\"both\"` shows: the rest of the first match, or\n * `null`. It is part of what the input renders rather than a write onto the\n * element, so nothing has to fight Angular for the value.\n */\n readonly completion = signal<string | null>(null);\n private wantsCompletion = false;\n private entry: Entry = 'none';\n\n private view: EmbeddedViewRef<unknown> | null = null;\n private layerNode: HTMLElement | null = null;\n private surfaceNode: HTMLElement | null = null;\n private portalRoot: PortalRootHandle | null = null;\n private positioner: PositionerHandle | null = null;\n private layer: DismissableLayerHandle | null = null;\n private presence: PresenceHandle | null = null;\n private observer: IntersectionObserver | null = null;\n private disabledByForm = signal<boolean | undefined>(undefined);\n\n private readonly hostId = inject(new HostAttributeToken('id'), { optional: true });\n\n private onChange: (value: ComboboxOptionValue | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n readonly resolvedSize = computed(() => this.size() ?? this.field?.size() ?? this.defaults.size);\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedAlign = computed(() => this.align() ?? this.defaults.align);\n readonly resolvedSide = computed(() => this.side() ?? this.defaults.side);\n readonly resolvedWidth = computed(() => this.width() ?? this.defaults.width);\n readonly resolvedMount = computed(() => this.mount() ?? this.defaults.mount);\n readonly resolvedAutocomplete = computed(() => this.autocomplete() ?? this.defaults.autocomplete);\n readonly resolvedOpenOn = computed(() => this.openOn() ?? this.defaults.openOn);\n readonly resolvedLoop = computed(() => this.loop() ?? this.defaults.loop);\n readonly resolvedClearable = computed(() => this.clearable() ?? this.defaults.clearable);\n readonly resolvedFullWidth = computed(() => this.fullWidth() ?? this.defaults.fullWidth);\n readonly resolvedCloseOnSelect = computed(\n () => this.closeOnSelect() ?? this.defaults.closeOnSelect,\n );\n readonly resolvedAllowsCustomValue = computed(\n () => this.allowsCustomValue() ?? this.defaults.allowsCustomValue,\n );\n readonly resolvedAutoHighlight = computed(\n () => this.autoHighlight() ?? this.defaults.autoHighlight,\n );\n readonly resolvedHighlightMatch = computed(\n () => this.highlightMatch() ?? this.defaults.highlightMatch,\n );\n /**\n * The offer to add what was typed (CB8): the query, while the consumer will\n * take one, the reader typed something and nothing in the collection matched\n * it. It is one expression, so the row and the commit cannot disagree about\n * whether an offer is standing.\n */\n readonly creating = computed(() =>\n (this.creatable() ?? false) && this.query() !== '' && this.optionCount() === 0\n ? this.query()\n : null,\n );\n\n readonly resolvedDisabled = computed(\n () =>\n this.disabled() ?? this.disabledByForm() ?? this.field?.disabled() ?? this.defaults.disabled,\n );\n readonly resolvedReadOnly = computed(\n () => this.readOnly() ?? this.field?.readOnly() ?? this.defaults.readOnly,\n );\n readonly resolvedRequired = computed(\n () => this.required() ?? this.field?.required() ?? this.defaults.required,\n );\n readonly resolvedInvalid = computed(\n () => this.invalid() ?? this.field?.invalid() ?? this.defaults.invalid,\n );\n\n readonly isOpen = computed(() => this.open() && !this.resolvedDisabled());\n readonly controlId = computed(() => this.hostId ?? this.field?.ids().control ?? this.ownId);\n readonly describedBy = computed(() => this.field?.describedBy() ?? null);\n readonly display = computed(() => this.completion() ?? this.inputValue());\n\n private readonly declared = computed(() => {\n const table = new Map<ComboboxOptionValue, string>();\n for (const option of flatten(this.items())) table.set(option.value, option.label);\n return table;\n });\n\n /**\n * The query the options filter against, and it is not always the typed text:\n * once an option has been committed the input holds its label, and filtering\n * on that would leave the popup showing the one option already chosen.\n */\n readonly query = computed(() => {\n const held = this.value();\n const committed = held === null ? undefined : this.labelFor(held);\n return this.inputValue() === committed ? '' : this.inputValue();\n });\n\n private readonly fallbackFilter = computed<Filter>(() =>\n createFilter({ locale: this.resolvedLocale() }),\n );\n\n readonly showClear = computed(\n () =>\n this.resolvedClearable() &&\n this.inputValue() !== '' &&\n !this.resolvedDisabled() &&\n !this.resolvedReadOnly(),\n );\n\n readonly activeDescendant = computed(() => {\n const held = this.highlightedValue();\n return this.isOpen() && held !== null ? this.optionId(held) : null;\n });\n\n readonly statusMessage = computed(() => {\n if (this.loading()) return this.t('loading');\n const count = this.optionCount();\n return count === 0 ? '' : this.t('count', { count });\n });\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n effect(() => {\n const open = this.isOpen();\n untracked(() => (open ? this.show() : this.hide()));\n });\n\n afterNextRender(() => {\n if (this.resolvedMount() === 'eager' && !this.isOpen()) this.build();\n });\n\n /* One count per render, however many options changed in it. Each option\n counting the popup itself read the whole collection once per option —\n quadratic in the option count on every keystroke that filters. */\n afterRenderEffect(() => {\n this.collection();\n untracked(() => this.recount());\n });\n\n destroyRef.onDestroy(() => this.teardown());\n }\n\n /**\n * The uncontrolled start, read once. It is read here rather than in the\n * constructor because that is where Angular has finished writing the inputs.\n * A `value` the consumer bound is already in the model and wins; the seed\n * fills a model still at its declared default, and leaves `inputValue`\n * alone because the text and the key are two contracts.\n */\n ngOnInit() {\n const seed = this.defaultValue();\n if (seed === undefined || seed === null || this.value() !== null) return;\n this.value.set(seed);\n }\n\n optionId(value: ComboboxOptionValue): string {\n return `${this.contentId}-option-${encodeURIComponent(value)}`;\n }\n\n labelFor(value: ComboboxOptionValue): string | undefined {\n return this.declared().get(value) ?? this.registry().get(value);\n }\n\n registerLabel(value: ComboboxOptionValue, label: string) {\n if (this.registry().get(value) === label) return;\n const next = new Map(this.registry());\n next.set(value, label);\n this.registry.set(next);\n }\n\n /**\n * Three answers, and `undefined` is not one of them: an absent `filter` asks\n * for the library's own locale-sensitive `contains`, `null` turns filtering\n * off, and a function replaces the comparison.\n */\n matches(label: string): boolean {\n const query = this.query();\n const given = this.filter();\n if (query === '' || given === null) return true;\n if (given !== undefined) return given(label, query);\n return this.fallbackFilter().contains(label, query);\n }\n\n /** An option says the collection changed; the count follows after the render. */\n collectionChanged() {\n this.collection.update((version) => version + 1);\n }\n\n recount() {\n /* The offer to add what was typed is drawn *because* the count is nought,\n so counting it would take it away, which would bring it back (CB8). */\n this.optionCount.set(\n this.options().filter((option) => option.dataset['create'] === undefined).length,\n );\n this.applyCompletion();\n this.dropStaleHighlight();\n if (this.isOpen() && this.resolvedAutoHighlight()) this.land();\n }\n\n options(): HTMLElement[] {\n return [...(this.surfaceNode?.querySelectorAll<HTMLElement>(OPTION_SELECTOR) ?? [])];\n }\n\n focus() {\n this.controlRef().nativeElement.focus({ preventScroll: true });\n }\n\n scrollToKey(value: ComboboxOptionValue) {\n const option = this.options().find((candidate) => candidate.dataset['value'] === value);\n if (option !== undefined && this.surfaceNode !== null) revealWithin(option, this.surfaceNode);\n }\n\n setOpen(next: boolean, reason: ComboboxOpenReason, source?: Event) {\n if (next === this.isOpen()) return;\n const state = createControllable<boolean>({\n initial: this.isOpen(),\n onRequest: (request) => this.openChangeRequest.emit(request),\n });\n if (!state.request(next, reason, source)) return;\n this.open.set(next);\n if (!next) {\n this.highlightedValue.set(null);\n this.entry = 'none';\n }\n }\n\n setHighlighted(\n next: ComboboxOptionValue | null,\n reason: ComboboxHighlightReason,\n source?: Event,\n ) {\n if (next === this.highlightedValue()) return;\n const state = createControllable<ComboboxOptionValue | null>({\n initial: this.highlightedValue(),\n onRequest: (request) => this.highlightedValueChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) {\n this.highlightedValue.set(next);\n if (next !== null) this.scrollToKey(next);\n }\n }\n\n setInputValue(next: string, reason: ComboboxInputReason, source?: Event) {\n /* Whatever moves the text withdraws the completion: it is an offer about\n text that no longer exists. */\n this.completion.set(null);\n if (next === this.inputValue()) return;\n const state = createControllable<string>({\n initial: this.inputValue(),\n onRequest: (request) => this.inputValueChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.inputValue.set(next);\n }\n\n select(next: ComboboxOptionValue | null, reason: ComboboxValueReason, source?: Event) {\n if (next === this.value()) return;\n const state = createControllable<ComboboxOptionValue | null>({\n initial: this.value(),\n onRequest: (request) => this.valueChangeRequest.emit(request),\n });\n if (!state.request(next, reason, source)) return;\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n }\n\n clear(reason: ComboboxValueReason, source?: Event) {\n this.select(null, reason, source);\n this.setInputValue('', reason === 'clear' ? 'clear' : 'programmatic', source);\n }\n\n /** Takes an option: the key, the label into the field, and the popup shut. */\n commitOption(value: ComboboxOptionValue, reason: ComboboxValueReason, source?: Event) {\n this.select(value, reason, source);\n this.setInputValue(this.labelFor(value) ?? value, 'select', source);\n if (this.resolvedCloseOnSelect()) this.setOpen(false, 'select', source);\n }\n\n protected onInput(event: Event) {\n const next = (event.target as HTMLInputElement).value;\n const growing = next.length > this.inputValue().length;\n this.setInputValue(next, 'keyboard', event);\n /* A reader who is deleting is taking the text apart; writing the rest of a\n word back into a field they are emptying is what makes `both` unusable. */\n this.wantsCompletion = this.resolvedAutocomplete() === 'both' && growing;\n if (this.resolvedOpenOn() === 'input' && !this.isOpen() && !this.resolvedReadOnly()) {\n this.entry = this.resolvedAutoHighlight() ? 'first' : 'none';\n this.setOpen(true, 'keyboard', event);\n } else {\n /* After the render the new query causes: read now, the surface still\n holds the options the previous query kept, and the completion — which\n is consumed once — would be measured against the wrong first match. */\n afterNextRender(() => this.recount(), { injector: this.injector });\n }\n }\n\n protected onFocus() {\n if (this.resolvedOpenOn() !== 'focus' || this.resolvedReadOnly() || this.isOpen()) return;\n this.entry = 'selected';\n this.setOpen(true, 'keyboard');\n }\n\n /* A press on the input opens a closed popup and never closes an open one,\n because the same press places the caret. Under `focus` the press has\n already opened it through focus, so this finds it open. */\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || this.resolvedOpenOn() === 'manual' || this.isOpen()) return;\n if (this.resolvedDisabled() || this.resolvedReadOnly()) return;\n this.entry = 'selected';\n this.setOpen(true, 'pointer', event);\n }\n\n protected onBlur(event: FocusEvent) {\n this.onTouched();\n const next = event.relatedTarget;\n if (next instanceof Node && this.surfaceNode?.contains(next) === true) return;\n /* A press on the popup's own surface — its padding, a group heading, its\n scrollbar — takes focus off the input and reports `relatedTarget: null`,\n which is indistinguishable from the reader leaving. The layer stack\n already records where the press in flight went down, so ask it (CB11). */\n const began = pressOrigin(this.controlRef().nativeElement.ownerDocument);\n if (began instanceof Node && this.surfaceNode?.contains(began) === true) return;\n /* The last moment at which the reader is still choosing, which is where\n text that matched no option is settled (CB7). */\n this.settleInput(event);\n if (this.isOpen()) this.setOpen(false, 'blur', event);\n }\n\n /**\n * The option whose label *is* the text, by the same collator the filter used:\n * a reader who typed an option in full has chosen it, and comparing with\n * `===` would refuse `resume` for `Resumé` on a page the filter had just\n * matched.\n */\n private valueForLabel(text: string): ComboboxOptionValue | undefined {\n if (text === '') return undefined;\n const filter = this.fallbackFilter();\n for (const [candidate, label] of this.declared()) {\n if (filter.equals(label, text)) return candidate;\n }\n for (const [candidate, label] of this.registry()) {\n if (filter.equals(label, text)) return candidate;\n }\n return undefined;\n }\n\n /**\n * What becomes of text that matched no option, at the moment the reader\n * leaves the field (CB7). `combobox`'s React binding states the reasoning;\n * the three answers are the same, in the same order. Text that *is* an option\n * is that option; text that is not, in a field that allows one of its own, is\n * the value; text that is not, in a field that does not, is undone and the\n * caller is told what was refused.\n */\n private settleInput(source?: Event) {\n const text = this.inputValue();\n const matched = this.valueForLabel(text);\n\n if (matched !== undefined) {\n if (matched !== this.value()) this.select(matched, 'blur', source);\n this.setInputValue(this.labelFor(matched) ?? text, 'blur', source);\n return;\n }\n\n if (text === '') {\n if (this.value() !== null) this.select(null, 'blur', source);\n return;\n }\n\n if (this.resolvedAllowsCustomValue()) {\n if (text !== this.value()) this.select(text, 'blur', source);\n return;\n }\n\n const held = this.value();\n this.setInputValue(held === null ? '' : (this.labelFor(held) ?? ''), 'blur', source);\n this.inputReset.emit({ rejected: text, reason: 'blur' });\n }\n\n protected onClear(event: MouseEvent) {\n this.clear('clear', event);\n this.focus();\n }\n\n protected onToggle(event: MouseEvent) {\n if (this.resolvedDisabled() || this.resolvedReadOnly()) return;\n this.entry = 'selected';\n this.setOpen(!this.isOpen(), 'pointer', event);\n this.focus();\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (this.resolvedDisabled()) return;\n const alt = event.altKey;\n\n switch (event.key) {\n case 'ArrowDown':\n if (this.resolvedReadOnly()) return;\n event.preventDefault();\n if (!this.isOpen()) this.openWith(alt ? 'none' : 'first', event);\n else if (!alt) this.move('next', event);\n return;\n case 'ArrowUp':\n if (this.resolvedReadOnly()) return;\n event.preventDefault();\n if (alt) this.setOpen(false, 'keyboard', event);\n else if (!this.isOpen()) this.openWith('last', event);\n else this.move('previous', event);\n return;\n case 'PageDown':\n if (!this.isOpen()) return;\n event.preventDefault();\n this.move('pageDown', event);\n return;\n case 'PageUp':\n if (!this.isOpen()) return;\n event.preventDefault();\n this.move('pageUp', event);\n return;\n case 'Enter':\n if (!this.isOpen() && !this.resolvedAllowsCustomValue()) return;\n event.preventDefault();\n this.commitFromKeyboard(event);\n return;\n case 'Escape':\n this.onEscape(event);\n return;\n case 'Tab':\n /* Not prevented, and no highlight is committed: one the reader arrowed\n past is not a choice they made. A completion still standing is. */\n if (this.completion() !== null) this.commitFromKeyboard(event);\n else if (this.isOpen()) this.setOpen(false, 'dismiss', event);\n return;\n default:\n /* Every other key is the browser's, which the pattern asks for by name. */\n break;\n }\n }\n\n private onEscape(event: KeyboardEvent) {\n if (this.isOpen()) {\n event.preventDefault();\n this.setOpen(false, 'escape', event);\n return;\n }\n const held = this.value();\n if (held === null) return;\n event.preventDefault();\n const label = this.labelFor(held) ?? '';\n if (this.inputValue() === label) this.clear('keyboard', event);\n else this.setInputValue(label, 'keyboard', event);\n }\n\n private commitFromKeyboard(event: Event) {\n const standing = this.completion();\n if (this.highlightedValue() === null && standing !== null) {\n const suggested = this.options().find((option) => this.labelOf(option) === standing);\n if (suggested !== undefined) {\n this.commitOption(suggested.dataset['value'] ?? '', 'keyboard', event);\n return;\n }\n }\n\n const held = this.highlightedValue();\n if (held !== null && held === this.creating()) {\n this.takeOffer(held, 'keyboard', event);\n return;\n }\n if (held !== null) {\n this.commitOption(held, 'keyboard', event);\n return;\n }\n if (this.resolvedAllowsCustomValue()) {\n this.select(this.inputValue() === '' ? null : this.inputValue(), 'keyboard', event);\n } else {\n const value = this.value();\n this.setInputValue(value === null ? '' : (this.labelFor(value) ?? ''), 'select', event);\n }\n this.setOpen(false, 'select', event);\n }\n\n /**\n * An option refuses the press, and this one is an option (CB11). The rule\n * itself lives on `SlComboboxOption`; the offer is written by this template,\n * so it repeats the one line rather than the reason.\n */\n protected onOptionPointerDown(event: PointerEvent) {\n if (event.defaultPrevented) return;\n event.preventDefault();\n }\n\n protected onCreateClick(query: string, event: MouseEvent) {\n this.takeOffer(query, 'pointer', event);\n this.focus();\n }\n\n /**\n * Taking the offer reports the query and selects nothing: the collection does\n * not hold the value yet, and a control naming an option that does not exist\n * is a control whose value and picture disagree — the fault CB7 fixed at the\n * other end. What the consumer does with it is the consumer's (CB8).\n */\n private takeOffer(query: string, reason: ComboboxValueReason, event: Event) {\n this.create.emit({ query, reason });\n this.setOpen(false, 'select', event);\n }\n\n private labelOf(option: HTMLElement): string {\n return (\n option.dataset['textValue'] ??\n option.querySelector(\"[data-part='label']\")?.textContent?.trim() ??\n ''\n );\n }\n\n private openWith(entry: Entry, event: Event) {\n this.entry = entry;\n this.setOpen(true, 'keyboard', event);\n }\n\n private move(intent: MoveIntent, event?: Event) {\n const list = this.options();\n if (list.length === 0) return;\n const held = this.highlightedValue();\n const index = moveIndex({\n enabled: list.map((option) => option.dataset['disabled'] === undefined),\n from: held === null ? -1 : list.findIndex((option) => option.dataset['value'] === held),\n intent,\n loop: this.resolvedLoop(),\n });\n if (index !== -1) this.setHighlighted(list[index]?.dataset['value'] ?? null, 'keyboard', event);\n }\n\n /** The filter took the highlighted option away, so the highlight goes too. */\n private dropStaleHighlight() {\n const held = this.highlightedValue();\n if (held === null) return;\n const kept = this.options().some((option) => option.dataset['value'] === held);\n if (!kept) this.setHighlighted(null, 'keyboard');\n }\n\n private applyCompletion() {\n if (!this.wantsCompletion) return;\n this.wantsCompletion = false;\n const typed = this.inputValue();\n if (typed === '') return;\n const first = this.options().find((option) => option.dataset['disabled'] === undefined);\n if (first === undefined) return;\n const label = this.labelOf(first);\n if (!label.toLowerCase().startsWith(typed.toLowerCase()) || label === typed) return;\n this.completion.set(label);\n /* The completion is shown as a selected range, so the next character typed\n replaces it and Backspace withdraws it. */\n queueMicrotask(() => {\n const element = this.controlRef().nativeElement;\n if (element.value === label) element.setSelectionRange(typed.length, label.length);\n });\n }\n\n private show() {\n this.build();\n this.position();\n this.bind();\n this.enter();\n }\n\n private build() {\n if (this.view !== null) {\n this.presence?.sync(this.isOpen());\n this.view.detectChanges();\n return;\n }\n\n this.portalRoot = createPortalRoot({\n origin: this.controlRef().nativeElement,\n disabled: this.portal() === false,\n });\n\n this.view = this.viewContainer.createEmbeddedView(this.template());\n this.view.detectChanges();\n\n this.layerNode = this.view.rootNodes.find(\n (node: unknown): node is HTMLElement => node instanceof HTMLElement,\n ) as HTMLElement | null;\n this.surfaceNode = this.layerNode?.querySelector<HTMLElement>(\"[data-part='content']\") ?? null;\n if (this.layerNode === null) return;\n\n this.portalRoot.container?.append(this.layerNode);\n this.presence = createPresence({ present: this.isOpen() });\n this.presence.setNode(this.layerNode);\n }\n\n private position() {\n if (this.layerNode === null) return;\n const anchor = this.controlRef().nativeElement.parentElement;\n if (anchor === null) return;\n\n this.positioner?.destroy();\n this.positioner = createPositioner(anchor, this.layerNode, {\n align: this.resolvedAlign(),\n alignOffset: this.alignOffset() ?? this.defaults.alignOffset,\n boundaryPadding: this.collisionPadding() ?? this.defaults.collisionPadding,\n flip: this.flip() ?? this.defaults.flip,\n hideWhenDetached: this.hideWhenDetached() ?? this.defaults.hideWhenDetached,\n matchWidth: this.resolvedWidth() === 'anchor',\n shift: this.shift() ?? this.defaults.shift,\n side: this.resolvedSide(),\n sideOffset: this.sideOffset() ?? this.defaults.sideOffset,\n strategy: this.strategy() ?? this.defaults.strategy,\n });\n /* The height that bounds the list arrives with the position, after the\n highlight has landed, so the highlighted row is revealed again. */\n void this.positioner.update().then(() => {\n const held = this.highlightedValue();\n if (held !== null) this.scrollToKey(held);\n });\n }\n\n private bind() {\n if (this.layerNode === null) return;\n\n this.layer = createDismissableLayer(this.layerNode, {\n branches: [this.controlRef().nativeElement.parentElement].filter(\n (branch): branch is HTMLElement => branch !== null,\n ),\n escape: this.closeOnEscape() ?? this.defaults.closeOnEscape,\n focusOutside: false,\n modal: false,\n outsidePress: this.closeOnOutsidePress() ?? this.defaults.closeOnOutsidePress,\n scrollLock: false,\n onDismiss: (request) => {\n this.setOpen(\n false,\n request.reason === 'escape' ? 'escape' : 'outsidePress',\n request.source as Event | undefined,\n );\n },\n });\n\n this.observeEnd();\n }\n\n /**\n * The last row came into view, so there is more to fetch. An observer rather\n * than a scroll listener: the question is whether the end of the list is\n * visible, and a scroll handler answers it by measuring on every frame.\n */\n private observeEnd() {\n this.observer?.disconnect();\n this.observer = null;\n const root = this.surfaceNode;\n if (root === null || typeof IntersectionObserver !== 'function') return;\n const last = this.options().at(-1);\n if (last === undefined) return;\n\n this.observer = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) this.loadMore.emit();\n },\n { root },\n );\n this.observer.observe(last);\n }\n\n private enter() {\n this.recount();\n this.land();\n }\n\n /**\n * Where the highlight lands: the chosen option, or — with `autoHighlight`,\n * when none is showing — the first match. The contract's `focus.onOpen`\n * asks it of every opening, a press or a focus included, and of every query\n * typed while the popup stays open, so `Enter` always has a match under it.\n */\n private land() {\n if (this.entry === 'none') return;\n if (this.entry === 'selected') {\n const held = this.value();\n const shown = this.options().some(\n (option) => option.dataset['value'] === held && option.dataset['disabled'] === undefined,\n );\n if (held !== null && shown) this.setHighlighted(held, 'keyboard');\n else if (this.resolvedAutoHighlight()) this.move('first');\n return;\n }\n this.move(this.entry);\n }\n\n private hide() {\n this.unbind();\n if (this.resolvedMount() === 'active') this.teardown();\n }\n\n private unbind() {\n this.layer?.destroy();\n this.positioner?.destroy();\n this.observer?.disconnect();\n this.layer = null;\n this.positioner = null;\n this.observer = null;\n }\n\n private teardown() {\n this.unbind();\n this.presence?.destroy();\n this.portalRoot?.release();\n this.layerNode?.remove();\n this.view?.destroy();\n\n this.presence = null;\n this.portalRoot = null;\n this.layerNode = null;\n this.surfaceNode = null;\n this.view = null;\n }\n\n writeValue(value: ComboboxOptionValue | null) {\n this.value.set(value ?? null);\n this.inputValue.set(value === null ? '' : (this.labelFor(value) ?? value));\n }\n\n registerOnChange(fn: (value: ComboboxOptionValue | null) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabledByForm.set(isDisabled);\n }\n\n /**\n * Two validities the family owns, and neither is one a native input can\n * describe: a required control with nothing chosen, and a control holding\n * text that matches no option when a custom value is not allowed.\n */\n validate(): ValidationErrors | null {\n if (this.resolvedRequired() && this.value() === null) return { required: true };\n if (this.resolvedAllowsCustomValue()) return null;\n if (this.value() === null && this.inputValue() !== '') return { unmatched: true };\n return null;\n }\n}\n","import { matchRanges } from '@slotted/core/highlight';\nimport {\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport type { GlyphName } from '@slotted/angular/icon';\n\nimport { SlHighlight } from '@slotted/angular/highlight';\n\nimport { SlCombobox } from './combobox';\nimport type { ComboboxOptionValue } from './combobox-defaults';\n\n/**\n * The first column, holding an element of the consumer's own — an avatar, a\n * logo — where the `icon` input names only a glyph. React's `icon` prop takes\n * any element, and this is the same column in the same part.\n */\n@Directive({\n selector: '[slComboboxItemIcon]',\n standalone: true,\n host: { 'data-part': 'icon', 'data-part-icon': '' },\n})\nexport class SlComboboxItemIcon {}\n\n/**\n * One option, and the one that decides whether it belongs in the results.\n *\n * **Each option filters itself.** The family holds the query and the\n * comparison; the option holds its own label. An option that does not match\n * renders nothing at all, so the popup's DOM *is* the result set — which is\n * what makes the count, the keyboard model and the empty row read one answer.\n *\n * `label` is an input rather than projected content here, and that is the one\n * place this binding differs from its React counterpart: a comparison and a\n * split both need the text before the view exists, and Angular has no way to\n * read projected content that has not been created.\n */\n@Component({\n selector: 'sl-combobox-item',\n standalone: true,\n exportAs: 'slComboboxItem',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SlGlyph, SlHighlight, SlIcon],\n host: {\n 'data-part': 'item',\n 'data-part-item': '',\n role: 'option',\n '[id]': 'optionId()',\n '[hidden]': '!visible()',\n '[attr.data-value]': 'value()',\n '[attr.data-text-value]': 'label()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'disabled() ? true : null',\n '[attr.aria-posinset]': 'position() ?? null',\n '[attr.aria-setsize]': 'position() === undefined ? null : (combobox.total() ?? null)',\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '[attr.data-selected]': \"selected() ? '' : null\",\n '[attr.data-current]': \"current() ? '' : null\",\n '(click)': 'onClick($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointerenter)': 'onPointerEnter($event)',\n },\n template: `\n <ng-content select=\"[slComboboxItemIcon]\" />\n @if (icon(); as glyph) {\n <span data-part=\"icon\" data-part-icon=\"\"\n ><span slIcon><svg slGlyph [name]=\"glyph\"></svg></span\n ></span>\n }\n <span data-part=\"label\" data-part-label=\"\">\n @if (ranges().length > 0) {\n <span slHighlight [text]=\"label()\" [ranges]=\"ranges()\"></span>\n } @else {\n {{ label() }}\n }\n </span>\n @if (description()) {\n <span data-part=\"description\" data-part-description=\"\">{{ description() }}</span>\n }\n <span data-part=\"indicator\" data-part-indicator=\"\"\n ><span slIcon><svg slGlyph name=\"check\"></svg></span\n ></span>\n `,\n})\nexport class SlComboboxItem {\n readonly value = input.required<ComboboxOptionValue>();\n /** What the reader sees, what the filter compares, and what the mark splits. */\n readonly label = input.required<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly description = input<string | undefined>(undefined);\n /**\n * The glyph drawn in the first column, as a `Glyph` inside an `Icon` box. An\n * element of the consumer's own goes there through `slComboboxItemIcon`.\n */\n readonly icon = input<GlyphName | undefined>(undefined);\n readonly position = input(undefined, {\n transform: (given: number | string | undefined) =>\n given === undefined ? undefined : numberAttribute(given),\n });\n\n readonly combobox = inject(SlCombobox);\n private readonly host = inject(ElementRef<HTMLElement>);\n\n readonly optionId = computed(() => this.combobox.optionId(this.value()));\n readonly selected = computed(() => this.combobox.value() === this.value());\n readonly current = computed(() => this.combobox.highlightedValue() === this.value());\n readonly visible = computed(() => this.combobox.matches(this.label()));\n\n /**\n * The spans the query matched, from the same collator the filter used, drawn\n * by the `highlight` family inside this family's label. An `indexOf` beside\n * a locale-sensitive filter marks nothing on the row it has just matched.\n */\n readonly ranges = computed(() => {\n const query = this.combobox.query();\n if (!this.combobox.resolvedHighlightMatch() || query === '') return [];\n return matchRanges(this.label(), query, { locale: this.combobox.resolvedLocale() });\n });\n\n constructor() {\n /**\n * A hidden option is out of the result set, so the count and the label\n * registry both have to see the change. `hidden` rather than an `@if`,\n * because an option that is destroyed and rebuilt on every keystroke loses\n * its element identity — and with it whatever the reader's pointer was on.\n */\n afterRenderEffect(() => {\n this.visible();\n const value = this.value();\n const label = this.label();\n /* Untracked: what the parent reads while registering is its state, not\n this option's, and tracking it re-ran every option's effect on every\n open and every highlight move. */\n untracked(() => {\n this.combobox.registerLabel(value, label);\n this.combobox.collectionChanged();\n });\n });\n\n inject(DestroyRef).onDestroy(() => this.combobox.collectionChanged());\n }\n\n protected onPointerEnter(event: PointerEvent) {\n if (this.disabled()) return;\n this.combobox.setHighlighted(this.value(), 'pointer', event);\n }\n\n /**\n * Only to stop the browser moving focus off the input: an option cannot hold\n * focus, so a press on it would take focus to the body — and the settling of\n * CB7 would run on the query the reader was in the middle of choosing from,\n * before the click arrived (CB11).\n */\n protected onPointerDown(event: PointerEvent) {\n if (event.defaultPrevented) return;\n event.preventDefault();\n }\n\n protected onClick(event: MouseEvent) {\n if (this.disabled()) return;\n this.combobox.commitOption(this.value(), 'pointer', event);\n this.combobox.focus();\n }\n}\n\n/**\n * A set of options under a heading, named by `aria-labelledby` pointing at its\n * own label. A group whose every option was filtered away is hidden: a heading\n * with no options under it says a category matched when none did.\n */\n@Component({\n selector: 'sl-combobox-group',\n standalone: true,\n exportAs: 'slComboboxGroup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'group',\n 'data-part-group': '',\n role: 'group',\n '[attr.aria-labelledby]': 'labelId',\n '[hidden]': 'empty()',\n },\n template: `\n <div data-part=\"group-label\" data-part-group-label=\"\" [id]=\"labelId\">{{ label() }}</div>\n <ng-content />\n `,\n})\nexport class SlComboboxGroup {\n readonly label = input.required<string>();\n readonly labelId = `sl-combobox-group-${Math.random().toString(36).slice(2, 8)}`;\n\n private readonly host = inject(ElementRef<HTMLElement>);\n private readonly combobox = inject(SlCombobox);\n readonly empty = signal(false);\n\n constructor() {\n /**\n * Measured after render rather than computed from the query: whether a\n * group still holds an option is a fact about the DOM its own children\n * produced, and a computed that read the DOM would be right once and stale\n * from then on.\n */\n afterRenderEffect(() => {\n this.combobox.query();\n const element = this.host.nativeElement as HTMLElement;\n this.empty.set(element.querySelector(\"[data-part='item']:not([hidden])\") === null);\n });\n }\n}\n\n/** A line between two sets of options. */\n@Component({\n selector: 'sl-combobox-separator',\n standalone: true,\n exportAs: 'slComboboxSeparator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'separator', 'data-part-separator': '', role: 'separator' },\n template: '',\n})\nexport class SlComboboxSeparator {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAwFA;;;;;AAKG;AACI,MAAM,iBAAiB,GAAqB;AACjD,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,iBAAiB,EAAE,KAAK;AACxB,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,mBAAmB,EAAE,IAAI;AACzB,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,SAAS;;MAGL,iBAAiB,GAAG,IAAI,cAAc,CAAmB,mBAAmB,EAAE;AACzF,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,iBAAiB;AACjC,CAAA;AAED;;;AAGG;AACG,SAAU,uBAAuB,CAAC,QAAmC,EAAA;AACzE,IAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,QAAQ,EAAE,EAAE;AACxF;SAEgB,sBAAsB,GAAA;AACpC,IAAA,OAAO,MAAM,CAAC,iBAAiB,CAAC;AAClC;;ACvEA;;;;;AAKG;AACH,MAAM,eAAe,GAAG,kCAAkC;AAE1D,MAAM,OAAO,GAAG,CAAC,KAA4B,KAAmC,SAAS,IAAI,KAAK;AAElG,MAAM,OAAO,GAAG,CAAC,KAAgC,KAC/C,KAAK,KAAK,SAAS,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjG;;;;;;;;;;;;;;;AAeG;MAyMU,UAAU,CAAA;IACb,OAAgB,IAAI,GAAG,CAAC,KAAmC,KACjE,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC;IACnD,OAAgB,KAAK,GAAG,CAAC,KAAkC,KACjE,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;;IAGjD,KAAK,GAAG,KAAK,CAA6B,IAAI;8EAAC;IAC/C,kBAAkB,GAAG,MAAM,EAA6C;;IAExE,YAAY,GAAG,KAAK,CAAyC,SAAS;qFAAC;;IAGvE,UAAU,GAAG,KAAK,CAAS,EAAE;mFAAC;IAC9B,uBAAuB,GAAG,MAAM,EAAyB;IAEzD,IAAI,GAAG,KAAK,CAAU,KAAK;6EAAC;IAC5B,iBAAiB,GAAG,MAAM,EAA0B;IAEpD,gBAAgB,GAAG,KAAK,CAA6B,IAAI;yFAAC;IAC1D,6BAA6B,GAAG,MAAM,EAA6C;;IAGnF,QAAQ,GAAG,MAAM,EAAQ;;IAGzB,UAAU,GAAG,MAAM,EAAwC;;IAG3D,MAAM,GAAG,MAAM,EAAkD;;IAGjE,SAAS,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IAE5D,SAAS,GAAG,KAAK,CAAqB,SAAS,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;IACzE,WAAW,GAAG,KAAK,CAAS,EAAE;oFAAC;IAC/B,IAAI,GAAG,KAAK,CAAqB,SAAS;6EAAC;IAC3C,IAAI,GAAG,KAAK,CAAqB,SAAS;6EAAC;IAC3C,KAAK,GAAG,KAAK,CAA4B,SAAS;8EAAC;IACnD,KAAK,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,OAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,KAAK,EAAA,CAAG;;IAEzD,MAAM,GAAG,KAAK,CAAqB,SAAS;+EAAC;IAC7C,MAAM,GAAG,KAAK,CAA6B,SAAS;+EAAC;IAErD,IAAI,GAAG,KAAK,CAA2B,SAAS;6EAAC;IACjD,OAAO,GAAG,KAAK,CAA8B,SAAS;gFAAC;IACvD,IAAI,GAAG,KAAK,CAA2B,SAAS;6EAAC;IACjD,KAAK,GAAG,KAAK,CAA4B,SAAS;8EAAC;IACnD,KAAK,GAAG,KAAK,CAA4B,SAAS;8EAAC;IACnD,KAAK,GAAG,KAAK,CAA4B,SAAS;8EAAC;IACnD,QAAQ,GAAG,KAAK,CAA+B,SAAS;iFAAC;IACzD,YAAY,GAAG,KAAK,CAAmC,SAAS;qFAAC;IACjE,MAAM,GAAG,KAAK,CAA6B,SAAS;+EAAC;AAC9D;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CAAgD,SAAS;iFAAC;IAE1E,UAAU,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,KAAK,EAAA,CAAG;IAC9D,WAAW,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,aAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,KAAK,EAAA,CAAG;IAC/D,gBAAgB,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,KAAK,EAAA,CAAG;IAEpE,iBAAiB,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IACpE,aAAa,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IAChE,cAAc,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IACjE,SAAS,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IAC5D,IAAI,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,MAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IACvD,aAAa,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IAChE,aAAa,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IAChE,mBAAmB,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IACtE,IAAI,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,MAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IACvD,KAAK,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,OAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IACxD,gBAAgB,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IACnE,MAAM,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IACzD,SAAS,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IAC5D,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IAC3D,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IAC3D,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IAC3D,OAAO,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,SAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAA,CAAG;IAC1D,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAE/C,QAAQ,GAAG,sBAAsB,EAAE;;IAE3C,CAAC,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC3C,aAAa,GAAG,YAAY,EAAE;;AAEtC,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;uFAAC;AAC9D,IAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAuB,OAAO;iFAAC;AAC5D,IAAA,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAsC,SAAS;mFAAC;IAEvF,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEnC,IAAA,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,IAAA,SAAS,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,UAAU,EAAE;AACpC,IAAA,KAAK,GAAG,CAAA,kBAAA,EAAqB,IAAI,CAAC,UAAU,EAAE;AAE9C,IAAA,QAAQ,GAAG,MAAM,CAAC,IAAI,GAAG,EAA+B;iFAAC;;IAEzD,UAAU,GAAG,MAAM,CAAC,CAAC;mFAAC;IAC9B,WAAW,GAAG,MAAM,CAAC,CAAC;oFAAC;AAChC;;;;AAIG;IACM,UAAU,GAAG,MAAM,CAAgB,IAAI;mFAAC;IACzC,eAAe,GAAG,KAAK;IACvB,KAAK,GAAU,MAAM;IAErB,IAAI,GAAoC,IAAI;IAC5C,SAAS,GAAuB,IAAI;IACpC,WAAW,GAAuB,IAAI;IACtC,UAAU,GAA4B,IAAI;IAC1C,UAAU,GAA4B,IAAI;IAC1C,KAAK,GAAkC,IAAI;IAC3C,QAAQ,GAA0B,IAAI;IACtC,QAAQ,GAAgC,IAAI;IAC5C,cAAc,GAAG,MAAM,CAAsB,SAAS;uFAAC;AAE9C,IAAA,MAAM,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE1E,IAAA,QAAQ,GAAgD,MAAM,SAAS;AACvE,IAAA,SAAS,GAAe,MAAM,SAAS;IAEtC,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;qFAAC;AACtF,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;wFAAC;AACzE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK;sFAAC;AACnE,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;qFAAC;AAChE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK;sFAAC;AACnE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK;sFAAC;AACnE,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY;6FAAC;AACxF,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;uFAAC;AACtE,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;qFAAC;AAChE,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS;0FAAC;AAC/E,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS;0FAAC;AAC/E,IAAA,qBAAqB,GAAG,QAAQ,CACvC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa;8FAC1D;AACQ,IAAA,yBAAyB,GAAG,QAAQ,CAC3C,MAAM,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB;kGAClE;AACQ,IAAA,qBAAqB,GAAG,QAAQ,CACvC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa;8FAC1D;AACQ,IAAA,sBAAsB,GAAG,QAAQ,CACxC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc;+FAC5D;AACD;;;;;AAKG;IACM,QAAQ,GAAG,QAAQ,CAAC,MAC3B,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK;AAC3E,UAAE,IAAI,CAAC,KAAK;AACZ,UAAE,IAAI;iFACT;IAEQ,gBAAgB,GAAG,QAAQ,CAClC,MACE,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;yFAC/F;IACQ,gBAAgB,GAAG,QAAQ,CAClC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;yFAC1E;IACQ,gBAAgB,GAAG,QAAQ,CAClC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;yFAC1E;IACQ,eAAe,GAAG,QAAQ,CACjC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;wFACvE;AAEQ,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;+EAAC;IAChE,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK;kFAAC;AAClF,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI;oFAAC;AAC/D,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;gFAAC;AAExD,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACxC,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+B;QACpD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;AACjF,QAAA,OAAO,KAAK;IACd,CAAC;iFAAC;AAEF;;;;AAIG;AACM,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AAC7B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,QAAA,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjE,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;IACjE,CAAC;8EAAC;AAEe,IAAA,cAAc,GAAG,QAAQ,CAAS,MACjD,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;uFAChD;IAEQ,SAAS,GAAG,QAAQ,CAC3B,MACE,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;QACxB,CAAC,IAAI,CAAC,gBAAgB,EAAE;QACxB,CAAC,IAAI,CAAC,gBAAgB,EAAE;kFAC3B;AAEQ,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AACxC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE;QACpC,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IACpE,CAAC;yFAAC;AAEO,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;QACrC,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;QAChC,OAAO,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC;sFAAC;AAEF,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAErC,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;YAC1B,SAAS,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACrD,QAAA,CAAC,CAAC;QAEF,eAAe,CAAC,MAAK;YACnB,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,KAAK,EAAE;AACtE,QAAA,CAAC,CAAC;AAEF;;AAEoE;QACpE,iBAAiB,CAAC,MAAK;YACrB,IAAI,CAAC,UAAU,EAAE;YACjB,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACjC,QAAA,CAAC,CAAC;QAEF,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC7C;AAEA;;;;;;AAMG;IACH,QAAQ,GAAA;AACN,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;AAChC,QAAA,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI;YAAE;AAClE,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IACtB;AAEA,IAAA,QAAQ,CAAC,KAA0B,EAAA;QACjC,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,QAAA,EAAW,kBAAkB,CAAC,KAAK,CAAC,CAAA,CAAE;IAChE;AAEA,IAAA,QAAQ,CAAC,KAA0B,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IACjE;IAEA,aAAa,CAAC,KAA0B,EAAE,KAAa,EAAA;QACrD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK;YAAE;QAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IACzB;AAEA;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAa,EAAA;AACnB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC3B,QAAA,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI;QAC/C,IAAI,KAAK,KAAK,SAAS;AAAE,YAAA,OAAO,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;QACnD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACrD;;IAGA,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC;IAClD;IAEA,OAAO,GAAA;AACL;AACyE;AACzE,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CACjF;QACD,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAAE,IAAI,CAAC,IAAI,EAAE;IAChE;IAEA,OAAO,GAAA;AACL,QAAA,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAc,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAChE;AAEA,IAAA,WAAW,CAAC,KAA0B,EAAA;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;QACvF,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;AAAE,YAAA,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;IAC/F;AAEA,IAAA,OAAO,CAAC,IAAa,EAAE,MAA0B,EAAE,MAAc,EAAA;AAC/D,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;YAAE;QAC5B,MAAM,KAAK,GAAG,kBAAkB,CAAU;AACxC,YAAA,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;AACtB,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7D,SAAA,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YAAE;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM;QACrB;IACF;AAEA,IAAA,cAAc,CACZ,IAAgC,EAChC,MAA+B,EAC/B,MAAc,EAAA;AAEd,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,gBAAgB,EAAE;YAAE;QACtC,MAAM,KAAK,GAAG,kBAAkB,CAA6B;AAC3D,YAAA,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAChC,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;AACzE,SAAA,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;YAC/B,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAC3C;IACF;AAEA,IAAA,aAAa,CAAC,IAAY,EAAE,MAA2B,EAAE,MAAc,EAAA;AACrE;AACiC;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE;YAAE;QAChC,MAAM,KAAK,GAAG,kBAAkB,CAAS;AACvC,YAAA,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;AAC1B,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC;AACnE,SAAA,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAAE,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IACpE;AAEA,IAAA,MAAM,CAAC,IAAgC,EAAE,MAA2B,EAAE,MAAc,EAAA;AAClF,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;YAAE;QAC3B,MAAM,KAAK,GAAG,kBAAkB,CAA6B;AAC3D,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;AACrB,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,SAAA,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YAAE;AAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,KAAK,CAAC,MAA2B,EAAE,MAAc,EAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,GAAG,cAAc,EAAE,MAAM,CAAC;IAC/E;;AAGA,IAAA,YAAY,CAAC,KAA0B,EAAE,MAA2B,EAAE,MAAc,EAAA;QAClF,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;QACnE,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;IACzE;AAEU,IAAA,OAAO,CAAC,KAAY,EAAA;AAC5B,QAAA,MAAM,IAAI,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK;AACrD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM;QACtD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;AAC3C;AAC6E;QAC7E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,KAAK,MAAM,IAAI,OAAO;AACxE,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACnF,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,EAAE,GAAG,OAAO,GAAG,MAAM;YAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;QACvC;aAAO;AACL;;AAEyE;AACzE,YAAA,eAAe,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpE;IACF;IAEU,OAAO,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE;AACnF,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC;IAChC;AAEA;;AAE6D;AACnD,IAAA,OAAO,CAAC,KAAiB,EAAA;AACjC,QAAA,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE;QACnF,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE;AACxD,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;IACtC;AAEU,IAAA,MAAM,CAAC,KAAiB,EAAA;QAChC,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa;AAChC,QAAA,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE;AACvE;;;AAG4E;AAC5E,QAAA,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC;AACxE,QAAA,IAAI,KAAK,YAAY,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI;YAAE;AACzE;AACmD;AACnD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;IACvD;AAEA;;;;;AAKG;AACK,IAAA,aAAa,CAAC,IAAY,EAAA;QAChC,IAAI,IAAI,KAAK,EAAE;AAAE,YAAA,OAAO,SAAS;AACjC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;AACpC,QAAA,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAChD,YAAA,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AAAE,gBAAA,OAAO,SAAS;QAClD;AACA,QAAA,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAChD,YAAA,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AAAE,gBAAA,OAAO,SAAS;QAClD;AACA,QAAA,OAAO,SAAS;IAClB;AAEA;;;;;;;AAOG;AACK,IAAA,WAAW,CAAC,MAAc,EAAA;AAChC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAExC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AAClE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YAClE;QACF;AAEA,QAAA,IAAI,IAAI,KAAK,EAAE,EAAE;AACf,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YAC5D;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE;AACpC,YAAA,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YAC5D;QACF;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;AACpF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1D;AAEU,IAAA,OAAO,CAAC,KAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE;IACd;AAEU,IAAA,QAAQ,CAAC,KAAiB,EAAA;QAClC,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE;AACxD,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE;IACd;AAEU,IAAA,SAAS,CAAC,KAAoB,EAAA;QACtC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE;AAC7B,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM;AAExB,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,WAAW;gBACd,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBAAE;gBAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAAE,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,GAAG,OAAO,EAAE,KAAK,CAAC;AAC3D,qBAAA,IAAI,CAAC,GAAG;AAAE,oBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;gBACvC;AACF,YAAA,KAAK,SAAS;gBACZ,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBAAE;gBAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,GAAG;oBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;AAC1C,qBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAAE,oBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;;AAChD,oBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;gBACjC;AACF,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAAE;gBACpB,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;gBAC5B;AACF,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAAE;gBACpB,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;gBAC1B;AACF,YAAA,KAAK,OAAO;gBACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBAAE;gBACzD,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAC9B;AACF,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB;AACF,YAAA,KAAK,KAAK;AACR;AACqE;AACrE,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI;AAAE,oBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;qBACzD,IAAI,IAAI,CAAC,MAAM,EAAE;oBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;gBAC7D;AACF,YAAA;;gBAEE;;IAEN;AAEQ,IAAA,QAAQ,CAAC,KAAoB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;YACpC;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;QACzB,IAAI,IAAI,KAAK,IAAI;YAAE;QACnB,KAAK,CAAC,cAAc,EAAE;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;;YACzD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;IACnD;AAEQ,IAAA,kBAAkB,CAAC,KAAY,EAAA;AACrC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE;QAClC,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;YACzD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;AACpF,YAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC;gBACtE;YACF;QACF;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE;QACpC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;YACvC;QACF;AACA,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;YAC1C;QACF;AACA,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC;QACrF;aAAO;AACL,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC;QACzF;QACA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;IACtC;AAEA;;;;AAIG;AACO,IAAA,mBAAmB,CAAC,KAAmB,EAAA;QAC/C,IAAI,KAAK,CAAC,gBAAgB;YAAE;QAC5B,KAAK,CAAC,cAAc,EAAE;IACxB;IAEU,aAAa,CAAC,KAAa,EAAE,KAAiB,EAAA;QACtD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE;IACd;AAEA;;;;;AAKG;AACK,IAAA,SAAS,CAAC,KAAa,EAAE,MAA2B,EAAE,KAAY,EAAA;QACxE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;IACtC;AAEQ,IAAA,OAAO,CAAC,MAAmB,EAAA;AACjC,QAAA,QACE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;AAChE,YAAA,EAAE;IAEN;IAEQ,QAAQ,CAAC,KAAY,EAAE,KAAY,EAAA;AACzC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;IACvC;IAEQ,IAAI,CAAC,MAAkB,EAAE,KAAa,EAAA;AAC5C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE;QACpC,MAAM,KAAK,GAAG,SAAS,CAAC;AACtB,YAAA,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;AACvE,YAAA,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;YACvF,MAAM;AACN,YAAA,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;AAC1B,SAAA,CAAC;QACF,IAAI,KAAK,KAAK,CAAC,CAAC;AAAE,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;IACjG;;IAGQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE;QACpC,IAAI,IAAI,KAAK,IAAI;YAAE;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAC9E,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC;IAClD;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;QAC/B,IAAI,KAAK,KAAK,EAAE;YAAE;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;QACvF,IAAI,KAAK,KAAK,SAAS;YAAE;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,KAAK,KAAK;YAAE;AAC7E,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B;AAC6C;QAC7C,cAAc,CAAC,MAAK;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa;AAC/C,YAAA,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;gBAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;AACpF,QAAA,CAAC,CAAC;IACJ;IAEQ,IAAI,GAAA;QACV,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,IAAI,EAAE;QACX,IAAI,CAAC,KAAK,EAAE;IACd;IAEQ,KAAK,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACzB;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC;AACjC,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa;AACvC,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK;AAClC,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClE,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;QAEzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CACvC,CAAC,IAAa,KAA0B,IAAI,YAAY,WAAW,CAC9C;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAc,uBAAuB,CAAC,IAAI,IAAI;AAC9F,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE;QAE7B,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACjD,QAAA,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IACvC;IAEQ,QAAQ,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,aAAa;QAC5D,IAAI,MAAM,KAAK,IAAI;YAAE;AAErB,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;QAC1B,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;AACzD,YAAA,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW;YAC5D,eAAe,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB;YAC1E,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;YACvC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB;AAC3E,YAAA,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC1C,YAAA,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU;YACzD,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACpD,SAAA,CAAC;AACF;AACqE;QACrE,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAK;AACtC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE;YACpC,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC3C,QAAA,CAAC,CAAC;IACJ;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE;QAE7B,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE;YAClD,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAC9D,CAAC,MAAM,KAA4B,MAAM,KAAK,IAAI,CACnD;YACD,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa;AAC3D,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,KAAK,EAAE,KAAK;YACZ,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB;AAC7E,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,SAAS,EAAE,CAAC,OAAO,KAAI;gBACrB,IAAI,CAAC,OAAO,CACV,KAAK,EACL,OAAO,CAAC,MAAM,KAAK,QAAQ,GAAG,QAAQ,GAAG,cAAc,EACvD,OAAO,CAAC,MAA2B,CACpC;YACH,CAAC;AACF,SAAA,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE;IACnB;AAEA;;;;AAIG;IACK,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW;AAC7B,QAAA,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,oBAAoB,KAAK,UAAU;YAAE;AACjE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,KAAK,SAAS;YAAE;QAExB,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CACtC,CAAC,OAAO,KAAI;AACV,YAAA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,CAAC;AAAE,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzE,QAAA,CAAC,EACD,EAAE,IAAI,EAAE,CACT;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B;IAEQ,KAAK,GAAA;QACX,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,IAAI,EAAE;IACb;AAEA;;;;;AAKG;IACK,IAAI,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE;AAC3B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AAC7B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAC/B,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,CACzF;AACD,YAAA,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK;AAAE,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC;iBAC5D,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACzD;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACvB;IAEQ,IAAI,GAAA;QACV,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ;YAAE,IAAI,CAAC,QAAQ,EAAE;IACxD;IAEQ,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;AACrB,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACtB;IAEQ,QAAQ,GAAA;QACd,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;AACxB,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AACxB,QAAA,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AAEpB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEA,IAAA,UAAU,CAAC,KAAiC,EAAA;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IAC5E;AAEA,IAAA,gBAAgB,CAAC,EAA+C,EAAA;AAC9D,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;IACrC;AAEA;;;;AAIG;IACH,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI;AAAE,YAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/E,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAAE,YAAA,OAAO,IAAI;AACjD,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;AAAE,YAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;AACjF,QAAA,OAAO,IAAI;IACb;uGA/0BW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,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,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,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,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,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,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,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,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,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,iCAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,mBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,SAAA,EAhMV;AACT,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACtF,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;SACnF,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAmBS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwKT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+jrBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlMS,OAAO,oFAAE,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAoMd,UAAU,EAAA,UAAA,EAAA,CAAA;kBAxMtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cACX,IAAI,EAAA,QAAA,EACN,YAAY,EAAA,OAAA,EACb,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAE1B;AACT,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACtF,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;qBACnF,EAAA,IAAA,EACK;AACJ,wBAAA,SAAS,EAAE,UAAU;AACrB,wBAAA,kBAAkB,EAAE,EAAE;AACtB,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,gBAAgB,EAAE,EAAE;AACpB;AACoE;AACpE,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,kBAAkB,EAAE,gBAAgB;AACpC,wBAAA,qBAAqB,EAAE,mBAAmB;AAC1C,wBAAA,wBAAwB,EAAE,iCAAiC;AAC3D,wBAAA,kBAAkB,EAAE,sBAAsB;AAC1C,wBAAA,sBAAsB,EAAE,gCAAgC;AACxD,wBAAA,sBAAsB,EAAE,gCAAgC;AACxD,wBAAA,qBAAqB,EAAE,+BAA+B;AACtD,wBAAA,sBAAsB,EAAE,gCAAgC;AACxD,wBAAA,qBAAqB,EAAE,uBAAuB;qBAC/C,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwKT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,+jrBAAA,CAAA,EAAA;AA6FoE,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,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,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,oBAAA,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,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,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,yBAAA,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,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,mBAAA,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,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,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,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,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,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,qBAAA,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,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,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,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,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,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,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,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,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,OAAO,oEACU,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC/WjG;;;;AAIG;MAMU,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE;AACpD,iBAAA;;AAGD;;;;;;;;;;;;AAYG;MAiDU,cAAc,CAAA;IAChB,KAAK,GAAG,KAAK,CAAC,QAAQ;8EAAuB;;IAE7C,KAAK,GAAG,KAAK,CAAC,QAAQ;8EAAU;IAChC,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,WAAW,GAAG,KAAK,CAAqB,SAAS;oFAAC;AAC3D;;;AAGG;IACM,IAAI,GAAG,KAAK,CAAwB,SAAS;6EAAC;IAC9C,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EACjC,SAAS,EAAE,CAAC,KAAkC,KAC5C,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,EAAA,CAC1D;AAEO,IAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AACrB,IAAA,IAAI,GAAG,MAAM,EAAC,UAAuB,EAAC;AAE9C,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;iFAAC;AAC/D,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE;iFAAC;AACjE,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE;gFAAC;AAC3E,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gFAAC;AAEtE;;;;AAIG;AACM,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,IAAI,KAAK,KAAK,EAAE;AAAE,YAAA,OAAO,EAAE;QACtE,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;IACrF,CAAC;+EAAC;AAEF,IAAA,WAAA,GAAA;AACE;;;;;AAKG;QACH,iBAAiB,CAAC,MAAK;YACrB,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B;;AAEoC;YACpC,SAAS,CAAC,MAAK;gBACb,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;AACzC,gBAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AACnC,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IACvE;AAEU,IAAA,cAAc,CAAC,KAAmB,EAAA;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC;IAC9D;AAEA;;;;;AAKG;AACO,IAAA,aAAa,CAAC,KAAmB,EAAA;QACzC,IAAI,KAAK,CAAC,gBAAgB;YAAE;QAC5B,KAAK,CAAC,cAAc,EAAE;IACxB;AAEU,IAAA,OAAO,CAAC,KAAiB,EAAA;QACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC;AAC1D,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;IACvB;uGA9EW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,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,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,QAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,8DAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtBf;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAxCS,OAAO,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA0C3B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhD1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC;AACvC,oBAAA,IAAI,EAAE;AACJ,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,gBAAgB,EAAE,EAAE;AACpB,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,MAAM,EAAE,YAAY;AACpB,wBAAA,UAAU,EAAE,YAAY;AACxB,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,wBAAwB,EAAE,SAAS;AACnC,wBAAA,sBAAsB,EAAE,YAAY;AACpC,wBAAA,sBAAsB,EAAE,0BAA0B;AAClD,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,qBAAqB,EAAE,8DAA8D;AACrF,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,qBAAqB,EAAE,uBAAuB;AAC9C,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,eAAe,EAAE,uBAAuB;AACxC,wBAAA,gBAAgB,EAAE,wBAAwB;AAC3C,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA;AACF,iBAAA;;AAkFD;;;;AAIG;MAmBU,eAAe,CAAA;IACjB,KAAK,GAAG,KAAK,CAAC,QAAQ;8EAAU;AAChC,IAAA,OAAO,GAAG,CAAA,kBAAA,EAAqB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAE/D,IAAA,IAAI,GAAG,MAAM,EAAC,UAAuB,EAAC;AACtC,IAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,KAAK,GAAG,MAAM,CAAC,KAAK;8EAAC;AAE9B,IAAA,WAAA,GAAA;AACE;;;;;AAKG;QACH,iBAAiB,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACrB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAA4B;AACtD,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,kCAAkC,CAAC,KAAK,IAAI,CAAC;AACpF,QAAA,CAAC,CAAC;IACJ;uGApBW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EALhB;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAEU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAlB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,iBAAiB;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACJ,wBAAA,WAAW,EAAE,OAAO;AACpB,wBAAA,iBAAiB,EAAE,EAAE;AACrB,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,wBAAwB,EAAE,SAAS;AACnC,wBAAA,UAAU,EAAE,SAAS;AACtB,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;AAGT,EAAA,CAAA;AACF,iBAAA;;AAwBD;MAUa,mBAAmB,CAAA;uGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,wNAFpB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAED,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,qBAAqB;oBAC/B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;AAChF,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;;AC1OD;;AAEG;;"}
|