@ethlete/cdk 4.27.3 → 4.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +41 -0
- package/CHANGELOG.md +6 -0
- package/jest.config.ts +23 -0
- package/ng-package.json +8 -0
- package/package.json +10 -23
- package/project.json +37 -0
- package/src/index.ts +24 -0
- package/src/lib/components/accordion/accordion.imports.ts +15 -0
- package/src/lib/components/accordion/components/accordion/accordion.component.animations.ts +9 -0
- package/src/lib/components/accordion/components/accordion/accordion.component.constants.ts +4 -0
- package/src/lib/components/accordion/components/accordion/accordion.component.docs.mdx +50 -0
- package/src/lib/components/accordion/components/accordion/accordion.component.html +40 -0
- package/src/lib/components/accordion/components/accordion/accordion.component.scss +58 -0
- package/src/lib/components/accordion/components/accordion/accordion.component.stories.ts +102 -0
- package/src/lib/components/accordion/components/accordion/accordion.component.ts +97 -0
- package/src/lib/components/accordion/components/accordion-group/accordion-group.component.docs.mdx +23 -0
- package/src/lib/components/accordion/components/accordion-group/accordion-group.component.html +1 -0
- package/src/lib/components/accordion/components/accordion-group/accordion-group.component.ts +74 -0
- package/src/lib/components/accordion/components/accordion-group/accordion.component.stories.ts +57 -0
- package/src/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.ts +10 -0
- package/src/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.constants.ts +6 -0
- package/src/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.ts +14 -0
- package/src/lib/components/accordion/partials/accordion-label/accordion-label.directive.ts +10 -0
- package/src/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.constants.ts +6 -0
- package/src/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.ts +14 -0
- package/src/lib/components/bracket/bracket.imports.ts +5 -0
- package/src/lib/components/bracket/components/bracket/bracket.component.html +68 -0
- package/src/lib/components/bracket/components/bracket/bracket.component.scss +134 -0
- package/src/lib/components/bracket/components/bracket/bracket.component.ts +358 -0
- package/src/lib/components/bracket/components/bracket/bracket.component.types.ts +6 -0
- package/src/lib/components/bracket/constants/bracket.constants.ts +15 -0
- package/src/lib/components/bracket/directives/bracket-match/bracket-match.directive.ts +12 -0
- package/src/lib/components/bracket/directives/bracket-round/bracket-round.directive.ts +12 -0
- package/src/lib/components/bracket/partials/bracket-match/bracket-match.component.html +3 -0
- package/src/lib/components/bracket/partials/bracket-match/bracket-match.component.scss +2 -0
- package/src/lib/components/bracket/partials/bracket-match/bracket-match.component.ts +20 -0
- package/src/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.html +3 -0
- package/src/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.scss +2 -0
- package/src/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.ts +20 -0
- package/src/lib/components/bracket/stories/bracket.component.stories.ts +64 -0
- package/src/lib/components/bracket/stories/bracket.docs.mdx +24 -0
- package/src/lib/components/bracket/stories/components/bracket-storybook.component.ts +102 -0
- package/src/lib/components/bracket/stories/components/index.ts +1 -0
- package/src/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATA_DOUBLE_SYNC.ts +1115 -0
- package/src/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATA_SINGLE.ts +2209 -0
- package/src/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATA_SWISS.ts +80070 -0
- package/src/lib/components/bracket/stories/dummy-data/ET_DUMMY_DATE_DOUBLE_ASYNC.ts +1274 -0
- package/src/lib/components/bracket/stories/dummy-data/FIFA_DUMMY_DATA_DOUBLE_4.ts +2410 -0
- package/src/lib/components/bracket/stories/dummy-data/index.ts +5 -0
- package/src/lib/components/bracket/types/bracket-config.types.ts +6 -0
- package/src/lib/components/bracket/types/bracket.types.ts +37 -0
- package/src/lib/components/bracket/utils/bracket-config.utils.ts +18 -0
- package/src/lib/components/bracket/utils/bracket.utils.ts +440 -0
- package/src/lib/components/button/button.imports.ts +4 -0
- package/src/lib/components/button/components/button/button.component.html +5 -0
- package/src/lib/components/button/components/button/button.component.scss +2 -0
- package/src/lib/components/button/components/button/button.component.ts +18 -0
- package/src/lib/components/button/components/query-button/query-button.component.html +26 -0
- package/src/lib/components/button/components/query-button/query-button.component.scss +19 -0
- package/src/lib/components/button/components/query-button/query-button.component.ts +26 -0
- package/src/lib/components/button/directives/button/button.directive.ts +68 -0
- package/src/lib/components/button/directives/query-button/query-button.directive.ts +160 -0
- package/src/lib/components/button/stories/button.component.stories.ts +45 -0
- package/src/lib/components/button/stories/button.docs.mdx +11 -0
- package/src/lib/components/button/stories/components/button-storybook.component.ts +16 -0
- package/src/lib/components/button/stories/components/index.ts +2 -0
- package/src/lib/components/button/stories/components/query-button-storybook.component.ts +48 -0
- package/src/lib/components/button/stories/query-button.component.stories.ts +63 -0
- package/src/lib/components/button/stories/query-button.docs.mdx +11 -0
- package/src/lib/components/carousel/carousel.component.scss +123 -0
- package/src/lib/components/carousel/carousel.component.ts +47 -0
- package/src/lib/components/carousel/carousel.directive.ts +223 -0
- package/src/lib/components/carousel/carousel.imports.ts +17 -0
- package/src/lib/components/carousel/controls/carousel-item-nav.component.ts +49 -0
- package/src/lib/components/carousel/controls/carousel-item-nav.directive.ts +24 -0
- package/src/lib/components/carousel/controls/carousel-next-button.directive.ts +43 -0
- package/src/lib/components/carousel/controls/carousel-previous-button.directive.ts +45 -0
- package/src/lib/components/carousel/controls/carousel-toggle-auto-play-button.directive.ts +40 -0
- package/src/lib/components/carousel/et-carousel-item.component.ts +15 -0
- package/src/lib/components/carousel/et-carousel-item.directive.ts +41 -0
- package/src/lib/components/carousel/stories/carousel.component.stories.ts +74 -0
- package/src/lib/components/carousel/stories/carousel.docs.mdx +69 -0
- package/src/lib/components/carousel/stories/components/carousel-storybook.component.ts +133 -0
- package/src/lib/components/carousel/stories/components/index.ts +1 -0
- package/src/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.scss +48 -0
- package/src/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.ts +77 -0
- package/src/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.ts +20 -0
- package/src/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.ts +21 -0
- package/src/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.ts +19 -0
- package/src/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.ts +17 -0
- package/src/lib/components/filter/rich-filter/rich-filter.imports.ts +13 -0
- package/src/lib/components/filter/rich-filter/stories/components/index.ts +1 -0
- package/src/lib/components/filter/rich-filter/stories/components/rich-filter.storybook.component.ts +45 -0
- package/src/lib/components/filter/rich-filter/stories/rich-filter.docs.mdx +17 -0
- package/src/lib/components/filter/rich-filter/stories/rich-filter.stories.ts +24 -0
- package/src/lib/components/forms/components/checkbox/checkbox.imports.ts +13 -0
- package/src/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.html +22 -0
- package/src/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.scss +57 -0
- package/src/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.ts +23 -0
- package/src/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.scss +25 -0
- package/src/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.ts +39 -0
- package/src/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.scss +3 -0
- package/src/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.ts +17 -0
- package/src/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.ts +41 -0
- package/src/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.ts +40 -0
- package/src/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.ts +128 -0
- package/src/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.ts +31 -0
- package/src/lib/components/forms/components/checkbox/stories/checkbox.component.stories.ts +28 -0
- package/src/lib/components/forms/components/checkbox/stories/checkbox.docs.mdx +70 -0
- package/src/lib/components/forms/components/checkbox/stories/components/checkbox-storybook.component.ts +47 -0
- package/src/lib/components/forms/components/checkbox/stories/components/index.ts +1 -0
- package/src/lib/components/forms/components/error/components/error/error.component.html +3 -0
- package/src/lib/components/forms/components/error/components/error/error.component.scss +2 -0
- package/src/lib/components/forms/components/error/components/error/error.component.ts +65 -0
- package/src/lib/components/forms/components/error/stories/error-page.mdx +19 -0
- package/src/lib/components/forms/components/input/components/date-input/date-input.component.html +18 -0
- package/src/lib/components/forms/components/input/components/date-input/date-input.component.scss +2 -0
- package/src/lib/components/forms/components/input/components/date-input/date-input.component.ts +23 -0
- package/src/lib/components/forms/components/input/components/date-time-input/date-time-input.component.html +18 -0
- package/src/lib/components/forms/components/input/components/date-time-input/date-time-input.component.scss +2 -0
- package/src/lib/components/forms/components/input/components/date-time-input/date-time-input.component.ts +23 -0
- package/src/lib/components/forms/components/input/components/email-input/email-input.component.html +18 -0
- package/src/lib/components/forms/components/input/components/email-input/email-input.component.scss +2 -0
- package/src/lib/components/forms/components/input/components/email-input/email-input.component.ts +23 -0
- package/src/lib/components/forms/components/input/components/input-field/input-field.component.ts +37 -0
- package/src/lib/components/forms/components/input/components/number-input/number-input.component.html +18 -0
- package/src/lib/components/forms/components/input/components/number-input/number-input.component.scss +2 -0
- package/src/lib/components/forms/components/input/components/number-input/number-input.component.ts +23 -0
- package/src/lib/components/forms/components/input/components/password-input/password-input.component.html +19 -0
- package/src/lib/components/forms/components/input/components/password-input/password-input.component.scss +2 -0
- package/src/lib/components/forms/components/input/components/password-input/password-input.component.ts +23 -0
- package/src/lib/components/forms/components/input/components/search-input/search-input.component.html +19 -0
- package/src/lib/components/forms/components/input/components/search-input/search-input.component.scss +6 -0
- package/src/lib/components/forms/components/input/components/search-input/search-input.component.ts +23 -0
- package/src/lib/components/forms/components/input/components/text-input/text-input.component.html +18 -0
- package/src/lib/components/forms/components/input/components/text-input/text-input.component.scss +2 -0
- package/src/lib/components/forms/components/input/components/text-input/text-input.component.ts +22 -0
- package/src/lib/components/forms/components/input/components/textarea-input/textarea-input.component.html +19 -0
- package/src/lib/components/forms/components/input/components/textarea-input/textarea-input.component.scss +2 -0
- package/src/lib/components/forms/components/input/components/textarea-input/textarea-input.component.ts +29 -0
- package/src/lib/components/forms/components/input/components/time-input/time-input.component.html +18 -0
- package/src/lib/components/forms/components/input/components/time-input/time-input.component.scss +2 -0
- package/src/lib/components/forms/components/input/components/time-input/time-input.component.ts +23 -0
- package/src/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.ts +51 -0
- package/src/lib/components/forms/components/input/directives/date-input/date-input.directive.ts +66 -0
- package/src/lib/components/forms/components/input/directives/date-time-input/date-time-input.directive.ts +67 -0
- package/src/lib/components/forms/components/input/directives/email-input/email-input.directive.ts +51 -0
- package/src/lib/components/forms/components/input/directives/if-supports-show-picker/if-supports-show-picker.directive.ts +78 -0
- package/src/lib/components/forms/components/input/directives/number-input/number-input.directive.ts +53 -0
- package/src/lib/components/forms/components/input/directives/password-input/password-input.directive.ts +56 -0
- package/src/lib/components/forms/components/input/directives/search-input/search-input.directive.ts +61 -0
- package/src/lib/components/forms/components/input/directives/show-picker-trigger/show-picker-trigger.directive.ts +32 -0
- package/src/lib/components/forms/components/input/directives/text-input/text-input.directive.ts +51 -0
- package/src/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.ts +51 -0
- package/src/lib/components/forms/components/input/directives/time-input/time-input.directive.ts +66 -0
- package/src/lib/components/forms/components/input/input.imports.ts +43 -0
- package/src/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.html +13 -0
- package/src/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.scss +2 -0
- package/src/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.ts +24 -0
- package/src/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.html +10 -0
- package/src/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.scss +2 -0
- package/src/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.ts +24 -0
- package/src/lib/components/forms/components/input/stories/components/date-input-storybook.component.ts +22 -0
- package/src/lib/components/forms/components/input/stories/components/date-time-input-storybook.component.ts +24 -0
- package/src/lib/components/forms/components/input/stories/components/email-input-storybook.component.ts +20 -0
- package/src/lib/components/forms/components/input/stories/components/index.ts +9 -0
- package/src/lib/components/forms/components/input/stories/components/number-input-storybook.component.ts +20 -0
- package/src/lib/components/forms/components/input/stories/components/password-input-storybook.component.ts +22 -0
- package/src/lib/components/forms/components/input/stories/components/search-input-storybook.component.ts +24 -0
- package/src/lib/components/forms/components/input/stories/components/text-input-storybook.component.ts +20 -0
- package/src/lib/components/forms/components/input/stories/components/textarea-input-storybook.component.ts +26 -0
- package/src/lib/components/forms/components/input/stories/components/time-input-storybook.component.ts +22 -0
- package/src/lib/components/forms/components/input/stories/date-input.component.stories.ts +29 -0
- package/src/lib/components/forms/components/input/stories/date-input.docs.mdx +17 -0
- package/src/lib/components/forms/components/input/stories/date-time-input.component.stories.ts +29 -0
- package/src/lib/components/forms/components/input/stories/date-time-input.docs.mdx +17 -0
- package/src/lib/components/forms/components/input/stories/email-input.component.stories.ts +28 -0
- package/src/lib/components/forms/components/input/stories/email-input.docs.mdx +13 -0
- package/src/lib/components/forms/components/input/stories/number-input.component.stories.ts +28 -0
- package/src/lib/components/forms/components/input/stories/number-input.docs.mdx +13 -0
- package/src/lib/components/forms/components/input/stories/password-input.component.stories.ts +28 -0
- package/src/lib/components/forms/components/input/stories/password-input.docs.mdx +27 -0
- package/src/lib/components/forms/components/input/stories/search-input.component.stories.ts +28 -0
- package/src/lib/components/forms/components/input/stories/search-input.docs.mdx +24 -0
- package/src/lib/components/forms/components/input/stories/text-input.component.stories.ts +28 -0
- package/src/lib/components/forms/components/input/stories/text-input.docs.mdx +13 -0
- package/src/lib/components/forms/components/input/stories/textarea-input.component.stories.ts +40 -0
- package/src/lib/components/forms/components/input/stories/textarea-input.docs.mdx +25 -0
- package/src/lib/components/forms/components/input/stories/time-input.component.stories.ts +29 -0
- package/src/lib/components/forms/components/input/stories/time-input.docs.mdx +17 -0
- package/src/lib/components/forms/components/label/components/label/label.component.ts +36 -0
- package/src/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.ts +16 -0
- package/src/lib/components/forms/components/label/label.imports.ts +4 -0
- package/src/lib/components/forms/components/label/stories/label-page.mdx +19 -0
- package/src/lib/components/forms/components/radio/components/radio/radio.component.html +16 -0
- package/src/lib/components/forms/components/radio/components/radio/radio.component.scss +48 -0
- package/src/lib/components/forms/components/radio/components/radio/radio.component.ts +28 -0
- package/src/lib/components/forms/components/radio/components/radio-field/radio-field.component.scss +25 -0
- package/src/lib/components/forms/components/radio/components/radio-field/radio-field.component.ts +22 -0
- package/src/lib/components/forms/components/radio/components/radio-group/radio-group.component.scss +3 -0
- package/src/lib/components/forms/components/radio/components/radio-group/radio-group.component.ts +38 -0
- package/src/lib/components/forms/components/radio/directives/radio/radio.directive.ts +66 -0
- package/src/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.ts +41 -0
- package/src/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.ts +26 -0
- package/src/lib/components/forms/components/radio/radio.imports.ts +6 -0
- package/src/lib/components/forms/components/radio/stories/components/index.ts +1 -0
- package/src/lib/components/forms/components/radio/stories/components/radio-storybook.component.ts +56 -0
- package/src/lib/components/forms/components/radio/stories/radio.component.stories.ts +28 -0
- package/src/lib/components/forms/components/radio/stories/radio.docs.mdx +58 -0
- package/src/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.html +18 -0
- package/src/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.scss +39 -0
- package/src/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.ts +47 -0
- package/src/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.scss +0 -0
- package/src/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.ts +21 -0
- package/src/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.scss +8 -0
- package/src/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.ts +56 -0
- package/src/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.ts +80 -0
- package/src/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.ts +42 -0
- package/src/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.ts +71 -0
- package/src/lib/components/forms/components/segmented-button/segmented-button.imports.ts +9 -0
- package/src/lib/components/forms/components/segmented-button/stories/components/index.ts +1 -0
- package/src/lib/components/forms/components/segmented-button/stories/components/segmented-button-storybook.component.ts +32 -0
- package/src/lib/components/forms/components/segmented-button/stories/segmented-button.component.stories.ts +39 -0
- package/src/lib/components/forms/components/segmented-button/stories/segmented-button.docs.mdx +57 -0
- package/src/lib/components/forms/components/select/components/combobox/combobox.imports.ts +23 -0
- package/src/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.html +75 -0
- package/src/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.scss +73 -0
- package/src/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.ts +79 -0
- package/src/lib/components/forms/components/select/components/combobox/constants/combobox.constants.ts +8 -0
- package/src/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.ts +858 -0
- package/src/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.ts +20 -0
- package/src/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.ts +20 -0
- package/src/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.ts +20 -0
- package/src/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.ts +19 -0
- package/src/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.ts +20 -0
- package/src/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.ts +20 -0
- package/src/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.html +59 -0
- package/src/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.ts +108 -0
- package/src/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.html +9 -0
- package/src/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.ts +89 -0
- package/src/lib/components/forms/components/select/components/combobox/private/combobox.private.errors.ts +35 -0
- package/src/lib/components/forms/components/select/components/combobox/private/combobox.private.types.ts +45 -0
- package/src/lib/components/forms/components/select/components/combobox/stories/combobox.component.stories.ts +141 -0
- package/src/lib/components/forms/components/select/components/combobox/stories/combobox.docs.mdx +315 -0
- package/src/lib/components/forms/components/select/components/combobox/stories/components/combobox-storybook.component.ts +140 -0
- package/src/lib/components/forms/components/select/components/combobox/stories/components/index.ts +1 -0
- package/src/lib/components/forms/components/select/components/combobox/types/combobox.types.ts +46 -0
- package/src/lib/components/forms/components/select/components/combobox/utils/combobox-config.utils.ts +18 -0
- package/src/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.html +32 -0
- package/src/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.ts +22 -0
- package/src/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.ts +66 -0
- package/src/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.ts +42 -0
- package/src/lib/components/forms/components/select/components/native-select/native-select.imports.ts +19 -0
- package/src/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.ts +32 -0
- package/src/lib/components/forms/components/select/components/native-select/stories/components/index.ts +1 -0
- package/src/lib/components/forms/components/select/components/native-select/stories/components/native-select-storybook.component.ts +31 -0
- package/src/lib/components/forms/components/select/components/native-select/stories/native-select.component.stories.ts +22 -0
- package/src/lib/components/forms/components/select/components/native-select/stories/native-select.docs.mdx +28 -0
- package/src/lib/components/forms/components/select/components/select/components/select/select.component.html +65 -0
- package/src/lib/components/forms/components/select/components/select/components/select/select.component.scss +42 -0
- package/src/lib/components/forms/components/select/components/select/components/select/select.component.ts +43 -0
- package/src/lib/components/forms/components/select/components/select/directives/select/select.directive.ts +407 -0
- package/src/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.ts +47 -0
- package/src/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.ts +95 -0
- package/src/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.scss +51 -0
- package/src/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.ts +47 -0
- package/src/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.ts +19 -0
- package/src/lib/components/forms/components/select/components/select/private/select.private.types.ts +18 -0
- package/src/lib/components/forms/components/select/components/select/select.imports.ts +15 -0
- package/src/lib/components/forms/components/select/components/select/stories/components/index.ts +1 -0
- package/src/lib/components/forms/components/select/components/select/stories/components/select-storybook.component.ts +35 -0
- package/src/lib/components/forms/components/select/components/select/stories/select.component.stories.ts +43 -0
- package/src/lib/components/forms/components/select/components/select/stories/select.docs.mdx +17 -0
- package/src/lib/components/forms/components/select/components/select-field/select-field.component.ts +39 -0
- package/src/lib/components/forms/components/select/directives/select-field/select-field.directive.ts +12 -0
- package/src/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.ts +28 -0
- package/src/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.scss +40 -0
- package/src/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.ts +21 -0
- package/src/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.ts +145 -0
- package/src/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.ts +122 -0
- package/src/lib/components/forms/components/selection-list/selection-list.imports.ts +4 -0
- package/src/lib/components/forms/components/selection-list/stories/components/index.ts +1 -0
- package/src/lib/components/forms/components/selection-list/stories/components/selection-list-storybook.component.ts +40 -0
- package/src/lib/components/forms/components/selection-list/stories/selection-list.component.stories.ts +37 -0
- package/src/lib/components/forms/components/selection-list/stories/selection-list.docs.mdx +16 -0
- package/src/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.html +17 -0
- package/src/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.scss +76 -0
- package/src/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.ts +23 -0
- package/src/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.ts +36 -0
- package/src/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.ts +36 -0
- package/src/lib/components/forms/components/slide-toggle/slide-toggle.imports.ts +5 -0
- package/src/lib/components/forms/components/slide-toggle/stories/components/index.ts +1 -0
- package/src/lib/components/forms/components/slide-toggle/stories/components/slide-toggle-storybook.component.ts +20 -0
- package/src/lib/components/forms/components/slide-toggle/stories/slide-toggle.component.stories.ts +28 -0
- package/src/lib/components/forms/components/slide-toggle/stories/slide-toggle.docs.mdx +13 -0
- package/src/lib/components/forms/components/slider/components/slider/slider.component.html +22 -0
- package/src/lib/components/forms/components/slider/components/slider/slider.component.scss +212 -0
- package/src/lib/components/forms/components/slider/components/slider/slider.component.ts +467 -0
- package/src/lib/components/forms/components/slider/components/slider-field/slider-field.component.ts +36 -0
- package/src/lib/components/forms/components/slider/slider.imports.ts +5 -0
- package/src/lib/components/forms/components/slider/stories/components/index.ts +1 -0
- package/src/lib/components/forms/components/slider/stories/components/slider-storybook.component.ts +65 -0
- package/src/lib/components/forms/components/slider/stories/slider.component.stories.ts +40 -0
- package/src/lib/components/forms/components/slider/stories/slider.docs.mdx +13 -0
- package/src/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.ts +30 -0
- package/src/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.ts +30 -0
- package/src/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.ts +122 -0
- package/src/lib/components/forms/directives/if-input-empty/if-input-empty.directive.ts +37 -0
- package/src/lib/components/forms/directives/if-input-filled/if-input-filled.directive.ts +37 -0
- package/src/lib/components/forms/directives/input/input.directive.ts +410 -0
- package/src/lib/components/forms/directives/input-prefix/input-prefix.directive.ts +19 -0
- package/src/lib/components/forms/directives/input-suffix/input-suffix.directive.ts +19 -0
- package/src/lib/components/forms/directives/native-input-ref/native-input-ref.directive.ts +14 -0
- package/src/lib/components/forms/directives/static-form-field/static-form-field.directive.ts +90 -0
- package/src/lib/components/forms/directives/static-form-group/static-form-group.directive.ts +19 -0
- package/src/lib/components/forms/directives/writeable-input/writeable-input.directive.ts +53 -0
- package/src/lib/components/forms/public-api/index.ts +122 -0
- package/src/lib/components/forms/services/default-validator-errors.service.ts +50 -0
- package/src/lib/components/forms/services/form-field-state.service.ts +36 -0
- package/src/lib/components/forms/services/form-group-state.service.ts +18 -0
- package/src/lib/components/forms/services/input-state.service.ts +92 -0
- package/src/lib/components/forms/stories/forms-page.mdx +97 -0
- package/src/lib/components/forms/types/input.types.ts +16 -0
- package/src/lib/components/forms/utils/decorated-form-field.base.ts +13 -0
- package/src/lib/components/forms/utils/decorated-input.base.ts +58 -0
- package/src/lib/components/forms/utils/input.base.ts +22 -0
- package/src/lib/components/icons/chevron-icon/chevron-icon.component.ts +22 -0
- package/src/lib/components/icons/icon.imports.ts +3 -0
- package/src/lib/components/masonry/components/masonry/masonry.component.scss +18 -0
- package/src/lib/components/masonry/components/masonry/masonry.component.ts +301 -0
- package/src/lib/components/masonry/masonry.imports.ts +4 -0
- package/src/lib/components/masonry/partials/masonry-item/masonry-item.component.ts +80 -0
- package/src/lib/components/masonry/stories/components/index.ts +1 -0
- package/src/lib/components/masonry/stories/components/masonry-storybook.component.ts +94 -0
- package/src/lib/components/masonry/stories/masonry.component.stories.ts +38 -0
- package/src/lib/components/masonry/stories/masonry.docs.mdx +24 -0
- package/src/lib/components/masonry/types/masonry.types.ts +4 -0
- package/src/lib/components/overlay/components/bottom-sheet/bottom-sheet.imports.ts +22 -0
- package/src/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.scss +20 -0
- package/src/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.ts +66 -0
- package/src/lib/components/overlay/components/bottom-sheet/constants/bottom-sheet.constants.ts +68 -0
- package/src/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.ts +51 -0
- package/src/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.scss +60 -0
- package/src/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.ts +164 -0
- package/src/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.ts +37 -0
- package/src/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.ts +155 -0
- package/src/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.ts +70 -0
- package/src/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.ts +32 -0
- package/src/lib/components/overlay/components/bottom-sheet/stories/bottom-sheet.docs.mdx +193 -0
- package/src/lib/components/overlay/components/bottom-sheet/stories/botttom-sheet.stories.ts +104 -0
- package/src/lib/components/overlay/components/bottom-sheet/stories/components/bottom-sheet-host.storybook.component.ts +85 -0
- package/src/lib/components/overlay/components/bottom-sheet/stories/components/bottom-sheet.storybook.component.ts +46 -0
- package/src/lib/components/overlay/components/bottom-sheet/stories/components/index.ts +2 -0
- package/src/lib/components/overlay/components/bottom-sheet/types/bottom-sheet.types.ts +116 -0
- package/src/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet-config.ts +14 -0
- package/src/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet-ref.ts +145 -0
- package/src/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet.utils.ts +28 -0
- package/src/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.scss +25 -0
- package/src/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.ts +66 -0
- package/src/lib/components/overlay/components/dialog/constants/dialog.constants.ts +63 -0
- package/src/lib/components/overlay/components/dialog/dialog.imports.ts +18 -0
- package/src/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.ts +76 -0
- package/src/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.ts +51 -0
- package/src/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.ts +37 -0
- package/src/lib/components/overlay/components/dialog/services/dialog-base.service.ts +151 -0
- package/src/lib/components/overlay/components/dialog/services/dialog.service.ts +32 -0
- package/src/lib/components/overlay/components/dialog/stories/components/dialog-host.storybook.component.ts +121 -0
- package/src/lib/components/overlay/components/dialog/stories/components/dialog.storybook.component.ts +46 -0
- package/src/lib/components/overlay/components/dialog/stories/components/index.ts +2 -0
- package/src/lib/components/overlay/components/dialog/stories/dialog.docs.mdx +161 -0
- package/src/lib/components/overlay/components/dialog/stories/dialog.stories.ts +155 -0
- package/src/lib/components/overlay/components/dialog/types/dialog.types.ts +195 -0
- package/src/lib/components/overlay/components/dialog/utils/dialog-config.ts +14 -0
- package/src/lib/components/overlay/components/dialog/utils/dialog-ref.ts +171 -0
- package/src/lib/components/overlay/components/dialog/utils/dialog.utils.ts +28 -0
- package/src/lib/components/overlay/components/menu/components/menu/menu.component.html +16 -0
- package/src/lib/components/overlay/components/menu/components/menu/menu.component.scss +20 -0
- package/src/lib/components/overlay/components/menu/components/menu/menu.component.ts +248 -0
- package/src/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.html +9 -0
- package/src/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.scss +47 -0
- package/src/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.ts +113 -0
- package/src/lib/components/overlay/components/menu/components/menu-container/menu-container.component.html +3 -0
- package/src/lib/components/overlay/components/menu/components/menu-container/menu-container.component.scss +61 -0
- package/src/lib/components/overlay/components/menu/components/menu-container/menu-container.component.ts +59 -0
- package/src/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.html +5 -0
- package/src/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.scss +38 -0
- package/src/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.ts +100 -0
- package/src/lib/components/overlay/components/menu/directives/menu-checkbox-group/menu-checkbox-group.directive.ts +18 -0
- package/src/lib/components/overlay/components/menu/directives/menu-group/menu-group.directive.ts +35 -0
- package/src/lib/components/overlay/components/menu/directives/menu-group-title/menu-group-title.directive.ts +35 -0
- package/src/lib/components/overlay/components/menu/directives/menu-item/menu-item.directive.ts +115 -0
- package/src/lib/components/overlay/components/menu/directives/menu-radio-group/menu-radio-group.directive.ts +29 -0
- package/src/lib/components/overlay/components/menu/directives/menu-search-template/menu-search-template.directive.ts +17 -0
- package/src/lib/components/overlay/components/menu/directives/menu-trigger/menu-trigger.directive.ts +213 -0
- package/src/lib/components/overlay/components/menu/menu.imports.ts +23 -0
- package/src/lib/components/overlay/components/menu/stories/components/index.ts +1 -0
- package/src/lib/components/overlay/components/menu/stories/components/menu-storybook.component.ts +107 -0
- package/src/lib/components/overlay/components/menu/stories/menu.docs.mdx +91 -0
- package/src/lib/components/overlay/components/menu/stories/menu.stories.ts +23 -0
- package/src/lib/components/overlay/components/menu-deprecated/context-menu-trigger.ts +177 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-aim.ts +173 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-bar.ts +119 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-base.ts +212 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-errors.ts +7 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-group.ts +23 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-interface.ts +19 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-item-checkbox.ts +35 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-item-radio.ts +61 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-item-selectable.ts +29 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-item.ts +244 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-module.ts +35 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-stack.ts +146 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-trigger-base.ts +120 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu-trigger.ts +279 -0
- package/src/lib/components/overlay/components/menu-deprecated/menu.ts +124 -0
- package/src/lib/components/overlay/components/menu-deprecated/pointer-focus-tracker.ts +69 -0
- package/src/lib/components/overlay/components/menu-deprecated/stories/components/index.ts +1 -0
- package/src/lib/components/overlay/components/menu-deprecated/stories/components/menu.storybook.component.ts +60 -0
- package/src/lib/components/overlay/components/menu-deprecated/stories/menu.docs.mdx +3 -0
- package/src/lib/components/overlay/components/menu-deprecated/stories/menu.stories.ts +22 -0
- package/src/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.scss +353 -0
- package/src/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.ts +349 -0
- package/src/lib/components/overlay/components/overlay/constants/overlay.constants.ts +43 -0
- package/src/lib/components/overlay/components/overlay/overlay.imports.ts +45 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-back-or-close/overlay-back-or-close.directive.ts +40 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-body/overlay-body.component.ts +163 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.ts +56 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-footer/overlay-footer.directive.ts +36 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-header/overlay-header.directive.ts +36 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-header-template/overlay-header-template.directive.ts +48 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-main/overlay-main.directive.ts +46 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-route-header-template-outlet/overlay-route-header-template-outlet.component.ts +75 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-router-link/overlay-router-link.directive.ts +44 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-router-outlet/overlay-router-outlet.component.scss +184 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-router-outlet/overlay-router-outlet.component.ts +144 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-router-outlet-disabled-template/overlay-router-outlet-disabled-template.directive.ts +16 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-shared-route-template/overlay-shared-route-template.directive.ts +17 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-shared-route-template-outlet/overlay-shared-route-template-outlet.component.ts +27 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-sidebar/overlay-sidebar.component.ts +52 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-sidebar-page/overlay-sidebar-page.component.ts +34 -0
- package/src/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.ts +34 -0
- package/src/lib/components/overlay/components/overlay/services/overlay.service.ts +367 -0
- package/src/lib/components/overlay/components/overlay/stories/components/index.ts +3 -0
- package/src/lib/components/overlay/components/overlay/stories/components/overlay-host.storybook.component.ts +174 -0
- package/src/lib/components/overlay/components/overlay/stories/components/overlay-route-host.storybook.component.ts +15 -0
- package/src/lib/components/overlay/components/overlay/stories/components/overlay.storybook.component.ts +528 -0
- package/src/lib/components/overlay/components/overlay/stories/overlay.docs.mdx +411 -0
- package/src/lib/components/overlay/components/overlay/stories/overlay.stories.ts +46 -0
- package/src/lib/components/overlay/components/overlay/types/overlay.types.ts +246 -0
- package/src/lib/components/overlay/components/overlay/utils/filter-overlay.ts +209 -0
- package/src/lib/components/overlay/components/overlay/utils/overlay-config.ts +11 -0
- package/src/lib/components/overlay/components/overlay/utils/overlay-position-builder.ts +261 -0
- package/src/lib/components/overlay/components/overlay/utils/overlay-ref.ts +253 -0
- package/src/lib/components/overlay/components/overlay/utils/overlay-router.ts +276 -0
- package/src/lib/components/overlay/components/overlay/utils/overlay.utils.ts +19 -0
- package/src/lib/components/overlay/components/overlay/utils/sidebar-overlay.ts +84 -0
- package/src/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.html +11 -0
- package/src/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.scss +134 -0
- package/src/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.ts +77 -0
- package/src/lib/components/overlay/components/toggletip/constants/toggletip.constants.ts +14 -0
- package/src/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.ts +155 -0
- package/src/lib/components/overlay/components/toggletip/partials/toggletip-close/toggletip-close.directive.ts +16 -0
- package/src/lib/components/overlay/components/toggletip/stories/components/index.ts +1 -0
- package/src/lib/components/overlay/components/toggletip/stories/components/toggletip-storybook.component.ts +84 -0
- package/src/lib/components/overlay/components/toggletip/stories/toggletip.docs.mdx +44 -0
- package/src/lib/components/overlay/components/toggletip/stories/toggletip.stories.ts +39 -0
- package/src/lib/components/overlay/components/toggletip/toggletip.imports.ts +3 -0
- package/src/lib/components/overlay/components/toggletip/types/toggletip.types.ts +40 -0
- package/src/lib/components/overlay/components/toggletip/utils/toggletip-config.ts +7 -0
- package/src/lib/components/overlay/components/toggletip/utils/toggletip.util.ts +7 -0
- package/src/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.html +11 -0
- package/src/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.scss +124 -0
- package/src/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.ts +75 -0
- package/src/lib/components/overlay/components/tooltip/constants/tooltip.constants.ts +16 -0
- package/src/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.ts +191 -0
- package/src/lib/components/overlay/components/tooltip/stories/components/index.ts +1 -0
- package/src/lib/components/overlay/components/tooltip/stories/components/tooltip-storybook.component.ts +61 -0
- package/src/lib/components/overlay/components/tooltip/stories/tooltip.docs.mdx +44 -0
- package/src/lib/components/overlay/components/tooltip/stories/tooltip.stories.ts +34 -0
- package/src/lib/components/overlay/components/tooltip/tooltip.imports.ts +3 -0
- package/src/lib/components/overlay/components/tooltip/types/tooltip.types.ts +40 -0
- package/src/lib/components/overlay/components/tooltip/utils/tooltip-config.ts +7 -0
- package/src/lib/components/overlay/components/tooltip/utils/tooltip.util.ts +7 -0
- package/src/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.ts +46 -0
- package/src/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.ts +48 -0
- package/src/lib/components/overlay/public-api/index.ts +78 -0
- package/src/lib/components/overlay/services/dynamic-overlay.service.ts +43 -0
- package/src/lib/components/overlay/stories/dynamic-overlay-page.mdx +41 -0
- package/src/lib/components/overlay/types/dynamic-overlay.types.ts +19 -0
- package/src/lib/components/overlay/utils/overlay-dismiss-checker.util.ts +229 -0
- package/src/lib/components/pagination/components/pagination/pagination.component.html +28 -0
- package/src/lib/components/pagination/components/pagination/pagination.component.scss +2 -0
- package/src/lib/components/pagination/components/pagination/pagination.component.ts +135 -0
- package/src/lib/components/pagination/pagination.imports.ts +3 -0
- package/src/lib/components/pagination/partials/pagination-link/pagination-link.directive.ts +25 -0
- package/src/lib/components/pagination/services/pagination-head.service.ts +86 -0
- package/src/lib/components/pagination/stories/components/index.ts +1 -0
- package/src/lib/components/pagination/stories/components/pagination-storybook.component.ts +90 -0
- package/src/lib/components/pagination/stories/pagination.docs.mdx +113 -0
- package/src/lib/components/pagination/stories/pagination.stories.ts +57 -0
- package/src/lib/components/pagination/types/pagination.types.ts +40 -0
- package/src/lib/components/pagination/utils/pagination.util.ts +116 -0
- package/src/lib/components/picture/components/picture/picture.component.html +29 -0
- package/src/lib/components/picture/components/picture/picture.component.ts +82 -0
- package/src/lib/components/picture/picture.imports.ts +3 -0
- package/src/lib/components/picture/stories/components/index.ts +1 -0
- package/src/lib/components/picture/stories/components/picture-storybook.component.ts +20 -0
- package/src/lib/components/picture/stories/picture.component.stories.ts +56 -0
- package/src/lib/components/picture/stories/picture.docs.mdx +43 -0
- package/src/lib/components/picture/types/index.ts +1 -0
- package/src/lib/components/picture/types/picture.types.ts +18 -0
- package/src/lib/components/picture/utils/index.ts +1 -0
- package/src/lib/components/picture/utils/picture.utils.ts +33 -0
- package/src/lib/components/progress-spinner/progress-spinner.component.docs.mdx +22 -0
- package/src/lib/components/progress-spinner/progress-spinner.component.html +66 -0
- package/src/lib/components/progress-spinner/progress-spinner.component.scss +301 -0
- package/src/lib/components/progress-spinner/progress-spinner.component.stories.ts +46 -0
- package/src/lib/components/progress-spinner/progress-spinner.component.ts +126 -0
- package/src/lib/components/query-error/components/query-error/query-error.component.html +28 -0
- package/src/lib/components/query-error/components/query-error/query-error.component.ts +38 -0
- package/src/lib/components/query-error/directives/query-error/query-error.directive.ts +439 -0
- package/src/lib/components/query-error/stories/components/index.ts +1 -0
- package/src/lib/components/query-error/stories/components/query-error-storybook.component.ts +29 -0
- package/src/lib/components/query-error/stories/query-error.docs.mdx +7 -0
- package/src/lib/components/query-error/stories/query-error.stories.ts +71 -0
- package/src/lib/components/query-error/types/query-error.types.ts +11 -0
- package/src/lib/components/scrollable/components/scrollable/scrollable.component.html +119 -0
- package/src/lib/components/scrollable/components/scrollable/scrollable.component.scss +426 -0
- package/src/lib/components/scrollable/components/scrollable/scrollable.component.ts +692 -0
- package/src/lib/components/scrollable/components/scrollable-placeholder/scrollable-placeholder.component.html +38 -0
- package/src/lib/components/scrollable/components/scrollable-placeholder/scrollable-placeholder.component.scss +61 -0
- package/src/lib/components/scrollable/components/scrollable-placeholder/scrollable-placeholder.component.ts +40 -0
- package/src/lib/components/scrollable/directives/scrollable-ignore-child/scrollable-ignore-child.directive.ts +36 -0
- package/src/lib/components/scrollable/directives/scrollable-is-active-child/scrollable-is-active-child.directive.ts +38 -0
- package/src/lib/components/scrollable/directives/scrollable-loading-template/scrollable-loading-template.directive.ts +23 -0
- package/src/lib/components/scrollable/directives/scrollable-placeholder-item-template/scrollable-placeholder-item-template.directive.ts +16 -0
- package/src/lib/components/scrollable/directives/scrollable-placeholder-overlay-template/scrollable-placeholder-overlay-template.directive.ts +16 -0
- package/src/lib/components/scrollable/scrollable.imports.ts +17 -0
- package/src/lib/components/scrollable/stories/components/index.ts +1 -0
- package/src/lib/components/scrollable/stories/components/scrollable-storybook.component.ts +185 -0
- package/src/lib/components/scrollable/stories/scrollable.docs.mdx +190 -0
- package/src/lib/components/scrollable/stories/scrollable.stories.ts +134 -0
- package/src/lib/components/scrollable/types/scrollable.types.ts +8 -0
- package/src/lib/components/skeleton/components/skeleton/skeleton.component.scss +13 -0
- package/src/lib/components/skeleton/components/skeleton/skeleton.component.ts +28 -0
- package/src/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.scss +31 -0
- package/src/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.ts +17 -0
- package/src/lib/components/skeleton/skeleton.imports.ts +4 -0
- package/src/lib/components/skeleton/stories/components/index.ts +1 -0
- package/src/lib/components/skeleton/stories/components/skeleton-storybook.component.ts +59 -0
- package/src/lib/components/skeleton/stories/skeleton.docs.mdx +98 -0
- package/src/lib/components/skeleton/stories/skeleton.stories.ts +38 -0
- package/src/lib/components/sort/components/sort-header/sort-header.component.html +17 -0
- package/src/lib/components/sort/components/sort-header/sort-header.component.scss +71 -0
- package/src/lib/components/sort/components/sort-header/sort-header.component.ts +244 -0
- package/src/lib/components/sort/components/sort-header/sort-header.types.ts +12 -0
- package/src/lib/components/sort/partials/sort/sort.directive.ts +162 -0
- package/src/lib/components/sort/partials/sort/sort.types.ts +19 -0
- package/src/lib/components/sort/services/sort-header-intl.ts +17 -0
- package/src/lib/components/sort/sort.imports.ts +9 -0
- package/src/lib/components/sort/stories/components/index.ts +1 -0
- package/src/lib/components/sort/stories/components/sort-storybook.component.ts +37 -0
- package/src/lib/components/sort/stories/sort.docs.mdx +26 -0
- package/src/lib/components/sort/stories/sort.stories.ts +58 -0
- package/src/lib/components/table/components/table/table.component.scss +101 -0
- package/src/lib/components/table/components/table/table.component.ts +139 -0
- package/src/lib/components/table/constants/table-data-source.constants.ts +1 -0
- package/src/lib/components/table/partials/cells/cell/cell.directive.ts +11 -0
- package/src/lib/components/table/partials/cells/cell-def/cell-def.directive.ts +9 -0
- package/src/lib/components/table/partials/cells/column-def/column-def.directive.ts +31 -0
- package/src/lib/components/table/partials/cells/footer-cell/footer-cell.directive.ts +11 -0
- package/src/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.ts +9 -0
- package/src/lib/components/table/partials/cells/header-cell/header-cell.directive.ts +12 -0
- package/src/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.ts +9 -0
- package/src/lib/components/table/partials/cells/text-column/text-column.component.ts +34 -0
- package/src/lib/components/table/partials/rows/footer-row/footer-row.component.ts +18 -0
- package/src/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.ts +19 -0
- package/src/lib/components/table/partials/rows/header-row/header-row.component.ts +18 -0
- package/src/lib/components/table/partials/rows/header-row-def/header-row-def.directive.ts +19 -0
- package/src/lib/components/table/partials/rows/no-data-row/no-data-row.directive.ts +11 -0
- package/src/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.ts +9 -0
- package/src/lib/components/table/partials/rows/row/row.component.ts +18 -0
- package/src/lib/components/table/partials/rows/row-def/row-def.directive.ts +19 -0
- package/src/lib/components/table/partials/table-busy/table-busy.directive.ts +11 -0
- package/src/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.ts +8 -0
- package/src/lib/components/table/stories/components/index.ts +1 -0
- package/src/lib/components/table/stories/components/table-storybook.component.ts +114 -0
- package/src/lib/components/table/stories/table.docs.mdx +81 -0
- package/src/lib/components/table/stories/table.stories.ts +46 -0
- package/src/lib/components/table/table.imports.ts +39 -0
- package/src/lib/components/table/types/table-data-source.types.ts +17 -0
- package/src/lib/components/table/utils/table-data-source.ts +217 -0
- package/src/lib/components/tabs/animations/tabs.animations.ts +39 -0
- package/src/lib/components/tabs/components/inline-tabs/inline-tabs.component.docs.mdx +66 -0
- package/src/lib/components/tabs/components/inline-tabs/inline-tabs.component.html +62 -0
- package/src/lib/components/tabs/components/inline-tabs/inline-tabs.component.scss +19 -0
- package/src/lib/components/tabs/components/inline-tabs/inline-tabs.component.stories.ts +115 -0
- package/src/lib/components/tabs/components/inline-tabs/inline-tabs.component.ts +316 -0
- package/src/lib/components/tabs/components/nav-tabs/nav-tabs.component.docs.mdx +26 -0
- package/src/lib/components/tabs/components/nav-tabs/nav-tabs.component.html +11 -0
- package/src/lib/components/tabs/components/nav-tabs/nav-tabs.component.stories.ts +46 -0
- package/src/lib/components/tabs/components/nav-tabs/nav-tabs.component.ts +121 -0
- package/src/lib/components/tabs/components/nav-tabs/storybook/nav-tabs-storybook.component.ts +33 -0
- package/src/lib/components/tabs/components/nav-tabs/storybook/router-components.ts +29 -0
- package/src/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.html +1 -0
- package/src/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.ts +114 -0
- package/src/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.html +12 -0
- package/src/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.ts +174 -0
- package/src/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.ts +20 -0
- package/src/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.ts +15 -0
- package/src/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.html +11 -0
- package/src/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.ts +52 -0
- package/src/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.ts +24 -0
- package/src/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.ts +34 -0
- package/src/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.ts +190 -0
- package/src/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.scss +29 -0
- package/src/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.ts +36 -0
- package/src/lib/components/tabs/tab.imports.ts +25 -0
- package/src/lib/components/tabs/types/tab-config.types.ts +10 -0
- package/src/lib/components/tabs/utils/active-tab-underline.util.ts +155 -0
- package/src/lib/components/tabs/utils/paginated-tab-header.directive.ts +353 -0
- package/src/lib/services/swipe-handler.service.ts +123 -0
- package/src/lib/stories/changelog-page.mdx +9 -0
- package/src/lib/types/swipe.types.ts +24 -0
- package/src/lib/utils/floating-ui.utils.ts +16 -0
- package/src/test-setup.ts +1 -0
- package/tsconfig.json +29 -0
- package/tsconfig.lib.json +12 -0
- package/tsconfig.lib.prod.json +9 -0
- package/tsconfig.spec.json +11 -0
- package/esm2022/ethlete-cdk.mjs +0 -5
- package/esm2022/index.mjs +0 -24
- package/esm2022/lib/components/accordion/accordion.imports.mjs +0 -15
- package/esm2022/lib/components/accordion/components/accordion/accordion.component.animations.mjs +0 -9
- package/esm2022/lib/components/accordion/components/accordion/accordion.component.constants.mjs +0 -3
- package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +0 -76
- package/esm2022/lib/components/accordion/components/accordion/index.mjs +0 -4
- package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +0 -53
- package/esm2022/lib/components/accordion/components/accordion-group/index.mjs +0 -2
- package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +0 -17
- package/esm2022/lib/components/accordion/partials/accordion-hint/index.mjs +0 -2
- package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.constants.mjs +0 -3
- package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +0 -20
- package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/index.mjs +0 -3
- package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +0 -17
- package/esm2022/lib/components/accordion/partials/accordion-label/index.mjs +0 -2
- package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.constants.mjs +0 -3
- package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +0 -20
- package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/index.mjs +0 -3
- package/esm2022/lib/components/accordion/public-api/index.mjs +0 -8
- package/esm2022/lib/components/bracket/bracket.imports.mjs +0 -5
- package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +0 -333
- package/esm2022/lib/components/bracket/components/bracket/bracket.component.types.mjs +0 -2
- package/esm2022/lib/components/bracket/components/bracket/index.mjs +0 -3
- package/esm2022/lib/components/bracket/constants/bracket.constants.mjs +0 -12
- package/esm2022/lib/components/bracket/constants/index.mjs +0 -2
- package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +0 -19
- package/esm2022/lib/components/bracket/directives/bracket-match/index.mjs +0 -2
- package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +0 -19
- package/esm2022/lib/components/bracket/directives/bracket-round/index.mjs +0 -2
- package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +0 -19
- package/esm2022/lib/components/bracket/partials/bracket-match/index.mjs +0 -2
- package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +0 -19
- package/esm2022/lib/components/bracket/partials/bracket-round-header/index.mjs +0 -2
- package/esm2022/lib/components/bracket/public-api/index.mjs +0 -10
- package/esm2022/lib/components/bracket/types/bracket-config.types.mjs +0 -2
- package/esm2022/lib/components/bracket/types/bracket.types.mjs +0 -2
- package/esm2022/lib/components/bracket/types/index.mjs +0 -3
- package/esm2022/lib/components/bracket/utils/bracket-config.utils.mjs +0 -13
- package/esm2022/lib/components/bracket/utils/bracket.utils.mjs +0 -339
- package/esm2022/lib/components/bracket/utils/index.mjs +0 -3
- package/esm2022/lib/components/button/button.imports.mjs +0 -4
- package/esm2022/lib/components/button/components/button/button.component.mjs +0 -18
- package/esm2022/lib/components/button/components/button/index.mjs +0 -2
- package/esm2022/lib/components/button/components/query-button/index.mjs +0 -2
- package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +0 -26
- package/esm2022/lib/components/button/directives/button/button.directive.mjs +0 -69
- package/esm2022/lib/components/button/directives/button/index.mjs +0 -2
- package/esm2022/lib/components/button/directives/query-button/index.mjs +0 -2
- package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +0 -136
- package/esm2022/lib/components/button/public-api/index.mjs +0 -6
- package/esm2022/lib/components/carousel/carousel.component.mjs +0 -51
- package/esm2022/lib/components/carousel/carousel.directive.mjs +0 -150
- package/esm2022/lib/components/carousel/carousel.imports.mjs +0 -12
- package/esm2022/lib/components/carousel/controls/carousel-item-nav.component.mjs +0 -64
- package/esm2022/lib/components/carousel/controls/carousel-item-nav.directive.mjs +0 -34
- package/esm2022/lib/components/carousel/controls/carousel-next-button.directive.mjs +0 -45
- package/esm2022/lib/components/carousel/controls/carousel-previous-button.directive.mjs +0 -45
- package/esm2022/lib/components/carousel/controls/carousel-toggle-auto-play-button.directive.mjs +0 -43
- package/esm2022/lib/components/carousel/controls/index.mjs +0 -6
- package/esm2022/lib/components/carousel/et-carousel-item.component.mjs +0 -24
- package/esm2022/lib/components/carousel/et-carousel-item.directive.mjs +0 -46
- package/esm2022/lib/components/carousel/public-api/index.mjs +0 -7
- package/esm2022/lib/components/filter/public-api/index.mjs +0 -7
- package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/index.mjs +0 -2
- package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.mjs +0 -70
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/index.mjs +0 -2
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.mjs +0 -32
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/index.mjs +0 -2
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.mjs +0 -32
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/index.mjs +0 -2
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.mjs +0 -32
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/index.mjs +0 -2
- package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.mjs +0 -29
- package/esm2022/lib/components/filter/rich-filter/rich-filter.imports.mjs +0 -13
- package/esm2022/lib/components/forms/components/checkbox/checkbox.imports.mjs +0 -13
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +0 -47
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +0 -17
- package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +0 -40
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +0 -39
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +0 -83
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +0 -31
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +0 -55
- package/esm2022/lib/components/forms/components/error/components/error/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/date-input/date-input.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/input/components/date-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/date-time-input/date-time-input.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/input/components/date-time-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/input/components/email-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/input-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +0 -55
- package/esm2022/lib/components/forms/components/input/components/number-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/input/components/password-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/input/components/search-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/input/components/text-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/input/components/textarea-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +0 -32
- package/esm2022/lib/components/forms/components/input/components/time-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/components/time-input/time-input.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +0 -51
- package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/date-input/date-input.directive.mjs +0 -61
- package/esm2022/lib/components/forms/components/input/directives/date-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/date-time-input/date-time-input.directive.mjs +0 -61
- package/esm2022/lib/components/forms/components/input/directives/date-time-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +0 -50
- package/esm2022/lib/components/forms/components/input/directives/email-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/if-supports-show-picker/if-supports-show-picker.directive.mjs +0 -78
- package/esm2022/lib/components/forms/components/input/directives/if-supports-show-picker/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/number-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +0 -51
- package/esm2022/lib/components/forms/components/input/directives/password-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +0 -54
- package/esm2022/lib/components/forms/components/input/directives/search-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +0 -58
- package/esm2022/lib/components/forms/components/input/directives/show-picker-trigger/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/show-picker-trigger/show-picker-trigger.directive.mjs +0 -42
- package/esm2022/lib/components/forms/components/input/directives/text-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +0 -50
- package/esm2022/lib/components/forms/components/input/directives/textarea-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +0 -50
- package/esm2022/lib/components/forms/components/input/directives/time-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/directives/time-input/time-input.directive.mjs +0 -61
- package/esm2022/lib/components/forms/components/input/input.imports.mjs +0 -43
- package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +0 -22
- package/esm2022/lib/components/forms/components/input/partials/search-input-clear/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +0 -22
- package/esm2022/lib/components/forms/components/label/components/label/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +0 -51
- package/esm2022/lib/components/forms/components/label/directives/label-suffix/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +0 -27
- package/esm2022/lib/components/forms/components/label/label.imports.mjs +0 -4
- package/esm2022/lib/components/forms/components/radio/components/radio/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +0 -29
- package/esm2022/lib/components/forms/components/radio/components/radio-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +0 -27
- package/esm2022/lib/components/forms/components/radio/components/radio-group/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +0 -45
- package/esm2022/lib/components/forms/components/radio/directives/radio/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +0 -60
- package/esm2022/lib/components/forms/components/radio/directives/radio-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +0 -36
- package/esm2022/lib/components/forms/components/radio/directives/radio-group/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +0 -30
- package/esm2022/lib/components/forms/components/radio/radio.imports.mjs +0 -6
- package/esm2022/lib/components/forms/components/radio/types/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/radio/types/radio.types.mjs +0 -2
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +0 -38
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +0 -25
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +0 -51
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +0 -70
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +0 -36
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +0 -63
- package/esm2022/lib/components/forms/components/segmented-button/segmented-button.imports.mjs +0 -9
- package/esm2022/lib/components/forms/components/select/components/combobox/combobox.imports.mjs +0 -23
- package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +0 -77
- package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/constants/combobox.constants.mjs +0 -6
- package/esm2022/lib/components/forms/components/select/components/combobox/constants/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +0 -653
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.mjs +0 -30
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.mjs +0 -30
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.mjs +0 -30
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.mjs +0 -30
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.mjs +0 -30
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.mjs +0 -30
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +0 -78
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +0 -71
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/private/combobox.private.errors.mjs +0 -22
- package/esm2022/lib/components/forms/components/select/components/combobox/private/combobox.private.types.mjs +0 -5
- package/esm2022/lib/components/forms/components/select/components/combobox/private/index.mjs +0 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/types/combobox.types.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/types/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/utils/combobox-config.utils.mjs +0 -13
- package/esm2022/lib/components/forms/components/select/components/combobox/utils/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +0 -58
- package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +0 -45
- package/esm2022/lib/components/forms/components/select/components/native-select/native-select.imports.mjs +0 -19
- package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +0 -32
- package/esm2022/lib/components/forms/components/select/components/native-select/types/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/native-select/types/select.types.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/select/components/select/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +0 -36
- package/esm2022/lib/components/forms/components/select/components/select/directives/select/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +0 -299
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +0 -53
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +0 -97
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +0 -41
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +0 -28
- package/esm2022/lib/components/forms/components/select/components/select/private/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/select/private/select.private.types.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/select/select.imports.mjs +0 -15
- package/esm2022/lib/components/forms/components/select/components/select-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +0 -58
- package/esm2022/lib/components/forms/components/select/directives/select-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +0 -19
- package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.mjs +0 -40
- package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.mjs +0 -29
- package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.mjs +0 -125
- package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.mjs +0 -110
- package/esm2022/lib/components/forms/components/selection-list/selection-list.imports.mjs +0 -4
- package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +0 -24
- package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +0 -53
- package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +0 -38
- package/esm2022/lib/components/forms/components/slide-toggle/slide-toggle.imports.mjs +0 -5
- package/esm2022/lib/components/forms/components/slider/components/slider/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +0 -331
- package/esm2022/lib/components/forms/components/slider/components/slider-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +0 -53
- package/esm2022/lib/components/forms/components/slider/slider.imports.mjs +0 -5
- package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +0 -41
- package/esm2022/lib/components/forms/directives/dynamic-form-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +0 -41
- package/esm2022/lib/components/forms/directives/dynamic-form-group/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.mjs +0 -83
- package/esm2022/lib/components/forms/directives/expose-input-vars/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +0 -40
- package/esm2022/lib/components/forms/directives/if-input-empty/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +0 -40
- package/esm2022/lib/components/forms/directives/if-input-filled/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/input/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/input/input.directive.mjs +0 -305
- package/esm2022/lib/components/forms/directives/input-prefix/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +0 -30
- package/esm2022/lib/components/forms/directives/input-suffix/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +0 -30
- package/esm2022/lib/components/forms/directives/native-input-ref/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +0 -19
- package/esm2022/lib/components/forms/directives/static-form-field/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +0 -76
- package/esm2022/lib/components/forms/directives/static-form-group/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +0 -29
- package/esm2022/lib/components/forms/directives/writeable-input/index.mjs +0 -2
- package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +0 -57
- package/esm2022/lib/components/forms/public-api/index.mjs +0 -109
- package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +0 -54
- package/esm2022/lib/components/forms/services/form-field-state.service.mjs +0 -32
- package/esm2022/lib/components/forms/services/form-group-state.service.mjs +0 -21
- package/esm2022/lib/components/forms/services/index.mjs +0 -5
- package/esm2022/lib/components/forms/services/input-state.service.mjs +0 -72
- package/esm2022/lib/components/forms/types/index.mjs +0 -2
- package/esm2022/lib/components/forms/types/input.types.mjs +0 -2
- package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +0 -19
- package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +0 -48
- package/esm2022/lib/components/forms/utils/index.mjs +0 -4
- package/esm2022/lib/components/forms/utils/input.base.mjs +0 -27
- package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +0 -37
- package/esm2022/lib/components/icons/chevron-icon/index.mjs +0 -2
- package/esm2022/lib/components/icons/icon.imports.mjs +0 -3
- package/esm2022/lib/components/icons/public-api/index.mjs +0 -3
- package/esm2022/lib/components/masonry/components/masonry/index.mjs +0 -2
- package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +0 -207
- package/esm2022/lib/components/masonry/masonry.imports.mjs +0 -4
- package/esm2022/lib/components/masonry/partials/masonry-item/index.mjs +0 -2
- package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +0 -74
- package/esm2022/lib/components/masonry/public-api/index.mjs +0 -5
- package/esm2022/lib/components/masonry/types/index.mjs +0 -2
- package/esm2022/lib/components/masonry/types/masonry.types.mjs +0 -2
- package/esm2022/lib/components/overlay/components/bottom-sheet/bottom-sheet.imports.mjs +0 -21
- package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +0 -54
- package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/bottom-sheet/constants/bottom-sheet.constants.mjs +0 -57
- package/esm2022/lib/components/overlay/components/bottom-sheet/constants/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +0 -46
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +0 -115
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +0 -42
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +0 -117
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +0 -57
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +0 -34
- package/esm2022/lib/components/overlay/components/bottom-sheet/services/index.mjs +0 -4
- package/esm2022/lib/components/overlay/components/bottom-sheet/types/bottom-sheet.types.mjs +0 -2
- package/esm2022/lib/components/overlay/components/bottom-sheet/types/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet-config.mjs +0 -10
- package/esm2022/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet-ref.mjs +0 -96
- package/esm2022/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet.utils.mjs +0 -22
- package/esm2022/lib/components/overlay/components/bottom-sheet/utils/index.mjs +0 -4
- package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +0 -54
- package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/dialog/constants/dialog.constants.mjs +0 -53
- package/esm2022/lib/components/overlay/components/dialog/constants/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/dialog/dialog.imports.mjs +0 -17
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +0 -67
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +0 -46
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +0 -42
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +0 -112
- package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +0 -34
- package/esm2022/lib/components/overlay/components/dialog/services/index.mjs +0 -3
- package/esm2022/lib/components/overlay/components/dialog/types/dialog.types.mjs +0 -2
- package/esm2022/lib/components/overlay/components/dialog/types/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/dialog/utils/dialog-config.mjs +0 -10
- package/esm2022/lib/components/overlay/components/dialog/utils/dialog-ref.mjs +0 -117
- package/esm2022/lib/components/overlay/components/dialog/utils/dialog.utils.mjs +0 -22
- package/esm2022/lib/components/overlay/components/dialog/utils/index.mjs +0 -4
- package/esm2022/lib/components/overlay/components/menu/components/menu/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/components/menu/menu.component.mjs +0 -202
- package/esm2022/lib/components/overlay/components/menu/components/menu-checkbox-item/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.mjs +0 -75
- package/esm2022/lib/components/overlay/components/menu/components/menu-container/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/components/menu-container/menu-container.component.mjs +0 -47
- package/esm2022/lib/components/overlay/components/menu/components/menu-radio-item/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.mjs +0 -66
- package/esm2022/lib/components/overlay/components/menu/directives/menu-checkbox-group/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/directives/menu-checkbox-group/menu-checkbox-group.directive.mjs +0 -31
- package/esm2022/lib/components/overlay/components/menu/directives/menu-group/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/directives/menu-group/menu-group.directive.mjs +0 -43
- package/esm2022/lib/components/overlay/components/menu/directives/menu-group-title/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/directives/menu-group-title/menu-group-title.directive.mjs +0 -41
- package/esm2022/lib/components/overlay/components/menu/directives/menu-item/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/directives/menu-item/menu-item.directive.mjs +0 -98
- package/esm2022/lib/components/overlay/components/menu/directives/menu-radio-group/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/directives/menu-radio-group/menu-radio-group.directive.mjs +0 -45
- package/esm2022/lib/components/overlay/components/menu/directives/menu-search-template/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/directives/menu-search-template/menu-search-template.directive.mjs +0 -29
- package/esm2022/lib/components/overlay/components/menu/directives/menu-trigger/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/menu/directives/menu-trigger/menu-trigger.directive.mjs +0 -172
- package/esm2022/lib/components/overlay/components/menu/menu.imports.mjs +0 -23
- package/esm2022/lib/components/overlay/components/menu-deprecated/context-menu-trigger.mjs +0 -166
- package/esm2022/lib/components/overlay/components/menu-deprecated/index.mjs +0 -17
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-aim.mjs +0 -140
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-bar.mjs +0 -116
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-base.mjs +0 -176
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-errors.mjs +0 -7
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-group.mjs +0 -29
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-interface.mjs +0 -3
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-checkbox.mjs +0 -42
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-radio.mjs +0 -59
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-selectable.mjs +0 -38
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item.mjs +0 -216
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-module.mjs +0 -58
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-stack.mjs +0 -104
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-trigger-base.mjs +0 -80
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu-trigger.mjs +0 -243
- package/esm2022/lib/components/overlay/components/menu-deprecated/menu.mjs +0 -119
- package/esm2022/lib/components/overlay/components/menu-deprecated/pointer-focus-tracker.mjs +0 -29
- package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +0 -287
- package/esm2022/lib/components/overlay/components/overlay/constants/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/constants/overlay.constants.mjs +0 -36
- package/esm2022/lib/components/overlay/components/overlay/overlay.imports.mjs +0 -42
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-back-or-close/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-back-or-close/overlay-back-or-close.directive.mjs +0 -43
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-body/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-body/overlay-body.component.mjs +0 -131
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.mjs +0 -61
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-footer/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-footer/overlay-footer.directive.mjs +0 -45
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header/overlay-header.directive.mjs +0 -45
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header-template/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header-template/overlay-header-template.directive.mjs +0 -50
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-main/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-main/overlay-main.directive.mjs +0 -51
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-route-header-template-outlet/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-route-header-template-outlet/overlay-route-header-template-outlet.component.mjs +0 -41
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-link/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-link/overlay-router-link.directive.mjs +0 -46
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-outlet/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-outlet/overlay-router-outlet.component.mjs +0 -137
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-outlet-disabled-template/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-outlet-disabled-template/overlay-router-outlet-disabled-template.directive.mjs +0 -26
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-shared-route-template/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-shared-route-template/overlay-shared-route-template.directive.mjs +0 -26
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-shared-route-template-outlet/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-shared-route-template-outlet/overlay-shared-route-template-outlet.component.mjs +0 -26
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-sidebar/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-sidebar/overlay-sidebar.component.mjs +0 -54
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-sidebar-page/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-sidebar-page/overlay-sidebar-page.component.mjs +0 -52
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.mjs +0 -39
- package/esm2022/lib/components/overlay/components/overlay/services/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +0 -287
- package/esm2022/lib/components/overlay/components/overlay/types/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/overlay/types/overlay.types.mjs +0 -6
- package/esm2022/lib/components/overlay/components/overlay/utils/filter-overlay.mjs +0 -124
- package/esm2022/lib/components/overlay/components/overlay/utils/index.mjs +0 -8
- package/esm2022/lib/components/overlay/components/overlay/utils/overlay-config.mjs +0 -7
- package/esm2022/lib/components/overlay/components/overlay/utils/overlay-position-builder.mjs +0 -221
- package/esm2022/lib/components/overlay/components/overlay/utils/overlay-ref.mjs +0 -163
- package/esm2022/lib/components/overlay/components/overlay/utils/overlay-router.mjs +0 -190
- package/esm2022/lib/components/overlay/components/overlay/utils/overlay.utils.mjs +0 -13
- package/esm2022/lib/components/overlay/components/overlay/utils/sidebar-overlay.mjs +0 -54
- package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +0 -69
- package/esm2022/lib/components/overlay/components/toggletip/constants/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/toggletip/constants/toggletip.constants.mjs +0 -12
- package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +0 -136
- package/esm2022/lib/components/overlay/components/toggletip/partials/toggletip-close/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/toggletip/partials/toggletip-close/toggletip-close.directive.mjs +0 -25
- package/esm2022/lib/components/overlay/components/toggletip/toggletip.imports.mjs +0 -3
- package/esm2022/lib/components/overlay/components/toggletip/types/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/toggletip/types/toggletip.types.mjs +0 -2
- package/esm2022/lib/components/overlay/components/toggletip/utils/index.mjs +0 -3
- package/esm2022/lib/components/overlay/components/toggletip/utils/toggletip-config.mjs +0 -6
- package/esm2022/lib/components/overlay/components/toggletip/utils/toggletip.util.mjs +0 -6
- package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +0 -67
- package/esm2022/lib/components/overlay/components/tooltip/constants/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/tooltip/constants/tooltip.constants.mjs +0 -12
- package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +0 -171
- package/esm2022/lib/components/overlay/components/tooltip/tooltip.imports.mjs +0 -3
- package/esm2022/lib/components/overlay/components/tooltip/types/index.mjs +0 -2
- package/esm2022/lib/components/overlay/components/tooltip/types/tooltip.types.mjs +0 -2
- package/esm2022/lib/components/overlay/components/tooltip/utils/index.mjs +0 -3
- package/esm2022/lib/components/overlay/components/tooltip/utils/tooltip-config.mjs +0 -6
- package/esm2022/lib/components/overlay/components/tooltip/utils/tooltip.util.mjs +0 -6
- package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.mjs +0 -50
- package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/index.mjs +0 -2
- package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/index.mjs +0 -2
- package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.mjs +0 -51
- package/esm2022/lib/components/overlay/public-api/index.mjs +0 -72
- package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +0 -31
- package/esm2022/lib/components/overlay/services/index.mjs +0 -2
- package/esm2022/lib/components/overlay/types/dynamic-overlay.types.mjs +0 -2
- package/esm2022/lib/components/overlay/types/index.mjs +0 -2
- package/esm2022/lib/components/overlay/utils/index.mjs +0 -2
- package/esm2022/lib/components/overlay/utils/overlay-dismiss-checker.util.mjs +0 -105
- package/esm2022/lib/components/pagination/components/pagination/index.mjs +0 -2
- package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +0 -107
- package/esm2022/lib/components/pagination/pagination.imports.mjs +0 -3
- package/esm2022/lib/components/pagination/partials/pagination-link/index.mjs +0 -2
- package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +0 -32
- package/esm2022/lib/components/pagination/public-api/index.mjs +0 -7
- package/esm2022/lib/components/pagination/services/index.mjs +0 -2
- package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +0 -74
- package/esm2022/lib/components/pagination/types/index.mjs +0 -2
- package/esm2022/lib/components/pagination/types/pagination.types.mjs +0 -2
- package/esm2022/lib/components/pagination/utils/index.mjs +0 -2
- package/esm2022/lib/components/pagination/utils/pagination.util.mjs +0 -98
- package/esm2022/lib/components/picture/components/picture/index.mjs +0 -2
- package/esm2022/lib/components/picture/components/picture/picture.component.mjs +0 -56
- package/esm2022/lib/components/picture/public-api/index.mjs +0 -4
- package/esm2022/lib/components/picture/types/picture.types.mjs +0 -2
- package/esm2022/lib/components/picture/utils/picture.utils.mjs +0 -28
- package/esm2022/lib/components/progress-spinner/index.mjs +0 -2
- package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +0 -94
- package/esm2022/lib/components/query-error/components/query-error/index.mjs +0 -2
- package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +0 -27
- package/esm2022/lib/components/query-error/directives/query-error/index.mjs +0 -2
- package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +0 -431
- package/esm2022/lib/components/query-error/public-api/index.mjs +0 -4
- package/esm2022/lib/components/query-error/types/index.mjs +0 -2
- package/esm2022/lib/components/query-error/types/query-error.types.mjs +0 -2
- package/esm2022/lib/components/scrollable/components/scrollable/index.mjs +0 -2
- package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +0 -510
- package/esm2022/lib/components/scrollable/components/scrollable-placeholder/index.mjs +0 -2
- package/esm2022/lib/components/scrollable/components/scrollable-placeholder/scrollable-placeholder.component.mjs +0 -26
- package/esm2022/lib/components/scrollable/directives/scrollable-ignore-child/index.mjs +0 -2
- package/esm2022/lib/components/scrollable/directives/scrollable-ignore-child/scrollable-ignore-child.directive.mjs +0 -44
- package/esm2022/lib/components/scrollable/directives/scrollable-is-active-child/index.mjs +0 -2
- package/esm2022/lib/components/scrollable/directives/scrollable-is-active-child/scrollable-is-active-child.directive.mjs +0 -45
- package/esm2022/lib/components/scrollable/directives/scrollable-loading-template/index.mjs +0 -2
- package/esm2022/lib/components/scrollable/directives/scrollable-loading-template/scrollable-loading-template.directive.mjs +0 -31
- package/esm2022/lib/components/scrollable/directives/scrollable-placeholder-item-template/index.mjs +0 -2
- package/esm2022/lib/components/scrollable/directives/scrollable-placeholder-item-template/scrollable-placeholder-item-template.directive.mjs +0 -26
- package/esm2022/lib/components/scrollable/directives/scrollable-placeholder-overlay-template/index.mjs +0 -2
- package/esm2022/lib/components/scrollable/directives/scrollable-placeholder-overlay-template/scrollable-placeholder-overlay-template.directive.mjs +0 -26
- package/esm2022/lib/components/scrollable/public-api/index.mjs +0 -10
- package/esm2022/lib/components/scrollable/scrollable.imports.mjs +0 -17
- package/esm2022/lib/components/scrollable/types/index.mjs +0 -2
- package/esm2022/lib/components/scrollable/types/scrollable.types.mjs +0 -2
- package/esm2022/lib/components/skeleton/components/skeleton/index.mjs +0 -2
- package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +0 -25
- package/esm2022/lib/components/skeleton/partials/skeleton-item/index.mjs +0 -2
- package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +0 -19
- package/esm2022/lib/components/skeleton/public-api/index.mjs +0 -4
- package/esm2022/lib/components/skeleton/skeleton.imports.mjs +0 -4
- package/esm2022/lib/components/sort/components/sort-header/index.mjs +0 -3
- package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +0 -198
- package/esm2022/lib/components/sort/components/sort-header/sort-header.types.mjs +0 -2
- package/esm2022/lib/components/sort/partials/sort/index.mjs +0 -3
- package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +0 -139
- package/esm2022/lib/components/sort/partials/sort/sort.types.mjs +0 -2
- package/esm2022/lib/components/sort/public-api/index.mjs +0 -6
- package/esm2022/lib/components/sort/services/index.mjs +0 -2
- package/esm2022/lib/components/sort/services/sort-header-intl.mjs +0 -23
- package/esm2022/lib/components/sort/sort.imports.mjs +0 -8
- package/esm2022/lib/components/sort/types/index.mjs +0 -2
- package/esm2022/lib/components/sort/types/sort-direction.mjs +0 -2
- package/esm2022/lib/components/table/components/table/index.mjs +0 -2
- package/esm2022/lib/components/table/components/table/table.component.mjs +0 -141
- package/esm2022/lib/components/table/constants/index.mjs +0 -2
- package/esm2022/lib/components/table/constants/table-data-source.constants.mjs +0 -2
- package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +0 -18
- package/esm2022/lib/components/table/partials/cells/cell/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +0 -16
- package/esm2022/lib/components/table/partials/cells/cell-def/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +0 -44
- package/esm2022/lib/components/table/partials/cells/column-def/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +0 -18
- package/esm2022/lib/components/table/partials/cells/footer-cell/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +0 -16
- package/esm2022/lib/components/table/partials/cells/footer-cell-def/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +0 -19
- package/esm2022/lib/components/table/partials/cells/header-cell/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +0 -16
- package/esm2022/lib/components/table/partials/cells/header-cell-def/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/cells/text-column/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +0 -55
- package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +0 -26
- package/esm2022/lib/components/table/partials/rows/footer-row/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +0 -26
- package/esm2022/lib/components/table/partials/rows/footer-row-def/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +0 -26
- package/esm2022/lib/components/table/partials/rows/header-row/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +0 -26
- package/esm2022/lib/components/table/partials/rows/header-row-def/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/rows/no-data-row/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +0 -20
- package/esm2022/lib/components/table/partials/rows/recycle-rows/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +0 -16
- package/esm2022/lib/components/table/partials/rows/row/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +0 -26
- package/esm2022/lib/components/table/partials/rows/row-def/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +0 -26
- package/esm2022/lib/components/table/partials/table-busy/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +0 -18
- package/esm2022/lib/components/table/partials/table-busy-outlet/index.mjs +0 -2
- package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +0 -15
- package/esm2022/lib/components/table/public-api/index.mjs +0 -24
- package/esm2022/lib/components/table/table.imports.mjs +0 -39
- package/esm2022/lib/components/table/types/index.mjs +0 -2
- package/esm2022/lib/components/table/types/table-data-source.types.mjs +0 -2
- package/esm2022/lib/components/table/utils/index.mjs +0 -2
- package/esm2022/lib/components/table/utils/table-data-source.mjs +0 -168
- package/esm2022/lib/components/tabs/animations/index.mjs +0 -2
- package/esm2022/lib/components/tabs/animations/tabs.animations.mjs +0 -26
- package/esm2022/lib/components/tabs/components/inline-tabs/index.mjs +0 -2
- package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +0 -256
- package/esm2022/lib/components/tabs/components/nav-tabs/index.mjs +0 -2
- package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +0 -82
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/index.mjs +0 -2
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +0 -89
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/index.mjs +0 -2
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +0 -133
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/index.mjs +0 -2
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +0 -25
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/index.mjs +0 -2
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +0 -22
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/index.mjs +0 -2
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +0 -34
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/index.mjs +0 -2
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +0 -30
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/index.mjs +0 -2
- package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +0 -42
- package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/index.mjs +0 -2
- package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +0 -184
- package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/index.mjs +0 -2
- package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +0 -37
- package/esm2022/lib/components/tabs/public-api/index.mjs +0 -16
- package/esm2022/lib/components/tabs/tab.imports.mjs +0 -25
- package/esm2022/lib/components/tabs/types/index.mjs +0 -2
- package/esm2022/lib/components/tabs/types/tab-config.types.mjs +0 -3
- package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +0 -110
- package/esm2022/lib/components/tabs/utils/index.mjs +0 -3
- package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +0 -271
- package/esm2022/lib/services/index.mjs +0 -2
- package/esm2022/lib/services/swipe-handler.service.mjs +0 -102
- package/esm2022/lib/types/index.mjs +0 -2
- package/esm2022/lib/types/swipe.types.mjs +0 -2
- package/esm2022/lib/utils/floating-ui.utils.mjs +0 -15
- package/esm2022/lib/utils/index.mjs +0 -2
- package/fesm2022/ethlete-cdk.mjs +0 -17583
- package/fesm2022/ethlete-cdk.mjs.map +0 -1
- package/index.d.ts +0 -21
- package/lib/components/accordion/accordion.imports.d.ts +0 -7
- package/lib/components/accordion/components/accordion/accordion.component.animations.d.ts +0 -3
- package/lib/components/accordion/components/accordion/accordion.component.constants.d.ts +0 -3
- package/lib/components/accordion/components/accordion/accordion.component.d.ts +0 -28
- package/lib/components/accordion/components/accordion-group/accordion-group.component.d.ts +0 -11
- package/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.d.ts +0 -5
- package/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.constants.d.ts +0 -3
- package/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.d.ts +0 -8
- package/lib/components/accordion/partials/accordion-label/accordion-label.directive.d.ts +0 -5
- package/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.constants.d.ts +0 -3
- package/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.d.ts +0 -8
- package/lib/components/bracket/bracket.imports.d.ts +0 -4
- package/lib/components/bracket/components/bracket/bracket.component.d.ts +0 -55
- package/lib/components/bracket/components/bracket/bracket.component.types.d.ts +0 -5
- package/lib/components/bracket/constants/bracket.constants.d.ts +0 -8
- package/lib/components/bracket/directives/bracket-match/bracket-match.directive.d.ts +0 -8
- package/lib/components/bracket/directives/bracket-round/bracket-round.directive.d.ts +0 -8
- package/lib/components/bracket/partials/bracket-match/bracket-match.component.d.ts +0 -8
- package/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.d.ts +0 -8
- package/lib/components/bracket/types/bracket-config.types.d.ts +0 -5
- package/lib/components/bracket/types/bracket.types.d.ts +0 -30
- package/lib/components/bracket/utils/bracket-config.utils.d.ts +0 -6
- package/lib/components/bracket/utils/bracket.utils.d.ts +0 -37
- package/lib/components/button/button.imports.d.ts +0 -3
- package/lib/components/button/components/button/button.component.d.ts +0 -8
- package/lib/components/button/components/query-button/query-button.component.d.ts +0 -9
- package/lib/components/button/directives/button/button.directive.d.ts +0 -37
- package/lib/components/button/directives/query-button/query-button.directive.d.ts +0 -42
- package/lib/components/carousel/carousel.component.d.ts +0 -11
- package/lib/components/carousel/carousel.directive.d.ts +0 -59
- package/lib/components/carousel/carousel.imports.d.ts +0 -4
- package/lib/components/carousel/controls/carousel-item-nav.component.d.ts +0 -18
- package/lib/components/carousel/controls/carousel-item-nav.directive.d.ts +0 -11
- package/lib/components/carousel/controls/carousel-next-button.directive.d.ts +0 -18
- package/lib/components/carousel/controls/carousel-previous-button.directive.d.ts +0 -18
- package/lib/components/carousel/controls/carousel-toggle-auto-play-button.directive.d.ts +0 -16
- package/lib/components/carousel/et-carousel-item.component.d.ts +0 -8
- package/lib/components/carousel/et-carousel-item.directive.d.ts +0 -26
- package/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.d.ts +0 -27
- package/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.d.ts +0 -8
- package/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.d.ts +0 -10
- package/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.d.ts +0 -10
- package/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.d.ts +0 -8
- package/lib/components/filter/rich-filter/rich-filter.imports.d.ts +0 -6
- package/lib/components/forms/components/checkbox/checkbox.imports.d.ts +0 -6
- package/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.d.ts +0 -10
- package/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.d.ts +0 -11
- package/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.d.ts +0 -7
- package/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.d.ts +0 -21
- package/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.d.ts +0 -20
- package/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.d.ts +0 -18
- package/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.d.ts +0 -18
- package/lib/components/forms/components/error/components/error/error.component.d.ts +0 -22
- package/lib/components/forms/components/input/components/date-input/date-input.component.d.ts +0 -10
- package/lib/components/forms/components/input/components/date-time-input/date-time-input.component.d.ts +0 -10
- package/lib/components/forms/components/input/components/email-input/email-input.component.d.ts +0 -10
- package/lib/components/forms/components/input/components/input-field/input-field.component.d.ts +0 -11
- package/lib/components/forms/components/input/components/number-input/number-input.component.d.ts +0 -10
- package/lib/components/forms/components/input/components/password-input/password-input.component.d.ts +0 -10
- package/lib/components/forms/components/input/components/search-input/search-input.component.d.ts +0 -10
- package/lib/components/forms/components/input/components/text-input/text-input.component.d.ts +0 -10
- package/lib/components/forms/components/input/components/textarea-input/textarea-input.component.d.ts +0 -14
- package/lib/components/forms/components/input/components/time-input/time-input.component.d.ts +0 -10
- package/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.d.ts +0 -12
- package/lib/components/forms/components/input/directives/date-input/date-input.directive.d.ts +0 -20
- package/lib/components/forms/components/input/directives/date-time-input/date-time-input.directive.d.ts +0 -20
- package/lib/components/forms/components/input/directives/email-input/email-input.directive.d.ts +0 -13
- package/lib/components/forms/components/input/directives/if-supports-show-picker/if-supports-show-picker.directive.d.ts +0 -15
- package/lib/components/forms/components/input/directives/number-input/number-input.directive.d.ts +0 -13
- package/lib/components/forms/components/input/directives/password-input/password-input.directive.d.ts +0 -16
- package/lib/components/forms/components/input/directives/search-input/search-input.directive.d.ts +0 -14
- package/lib/components/forms/components/input/directives/show-picker-trigger/show-picker-trigger.directive.d.ts +0 -10
- package/lib/components/forms/components/input/directives/text-input/text-input.directive.d.ts +0 -13
- package/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.d.ts +0 -13
- package/lib/components/forms/components/input/directives/time-input/time-input.directive.d.ts +0 -20
- package/lib/components/forms/components/input/input.imports.d.ts +0 -21
- package/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.d.ts +0 -8
- package/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.d.ts +0 -8
- package/lib/components/forms/components/label/components/label/label.component.d.ts +0 -10
- package/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.d.ts +0 -8
- package/lib/components/forms/components/label/label.imports.d.ts +0 -3
- package/lib/components/forms/components/radio/components/radio/radio.component.d.ts +0 -11
- package/lib/components/forms/components/radio/components/radio-field/radio-field.component.d.ts +0 -7
- package/lib/components/forms/components/radio/components/radio-group/radio-group.component.d.ts +0 -11
- package/lib/components/forms/components/radio/directives/radio/radio.directive.d.ts +0 -27
- package/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.d.ts +0 -22
- package/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.d.ts +0 -16
- package/lib/components/forms/components/radio/radio.imports.d.ts +0 -5
- package/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.d.ts +0 -14
- package/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.d.ts +0 -7
- package/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.d.ts +0 -20
- package/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.d.ts +0 -31
- package/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.d.ts +0 -21
- package/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.d.ts +0 -20
- package/lib/components/forms/components/segmented-button/segmented-button.imports.d.ts +0 -4
- package/lib/components/forms/components/select/components/combobox/combobox.imports.d.ts +0 -11
- package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +0 -13
- package/lib/components/forms/components/select/components/combobox/constants/combobox.constants.d.ts +0 -6
- package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +0 -161
- package/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.d.ts +0 -8
- package/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.d.ts +0 -8
- package/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.d.ts +0 -8
- package/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.d.ts +0 -8
- package/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.d.ts +0 -8
- package/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.d.ts +0 -8
- package/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.d.ts +0 -42
- package/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.d.ts +0 -36
- package/lib/components/forms/components/select/components/combobox/private/combobox.private.errors.d.ts +0 -11
- package/lib/components/forms/components/select/components/combobox/private/combobox.private.types.d.ts +0 -32
- package/lib/components/forms/components/select/components/combobox/types/combobox.types.d.ts +0 -38
- package/lib/components/forms/components/select/components/combobox/utils/combobox-config.utils.d.ts +0 -6
- package/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.d.ts +0 -10
- package/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.d.ts +0 -18
- package/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.d.ts +0 -19
- package/lib/components/forms/components/select/components/native-select/native-select.imports.d.ts +0 -9
- package/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.d.ts +0 -11
- package/lib/components/forms/components/select/components/select/components/select/select.component.d.ts +0 -14
- package/lib/components/forms/components/select/components/select/directives/select/select.directive.d.ts +0 -76
- package/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.d.ts +0 -21
- package/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.d.ts +0 -42
- package/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.d.ts +0 -17
- package/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.d.ts +0 -8
- package/lib/components/forms/components/select/components/select/private/select.private.types.d.ts +0 -13
- package/lib/components/forms/components/select/components/select/select.imports.d.ts +0 -7
- package/lib/components/forms/components/select/components/select-field/select-field.component.d.ts +0 -12
- package/lib/components/forms/components/select/directives/select-field/select-field.directive.d.ts +0 -8
- package/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.d.ts +0 -10
- package/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.d.ts +0 -6
- package/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.d.ts +0 -24
- package/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.d.ts +0 -30
- package/lib/components/forms/components/selection-list/selection-list.imports.d.ts +0 -3
- package/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.d.ts +0 -10
- package/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.d.ts +0 -10
- package/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.d.ts +0 -19
- package/lib/components/forms/components/slide-toggle/slide-toggle.imports.d.ts +0 -4
- package/lib/components/forms/components/slider/components/slider/slider.component.d.ts +0 -80
- package/lib/components/forms/components/slider/components/slider-field/slider-field.component.d.ts +0 -10
- package/lib/components/forms/components/slider/slider.imports.d.ts +0 -4
- package/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +0 -11
- package/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.d.ts +0 -11
- package/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.d.ts +0 -30
- package/lib/components/forms/directives/if-input-empty/if-input-empty.directive.d.ts +0 -12
- package/lib/components/forms/directives/if-input-filled/if-input-filled.directive.d.ts +0 -12
- package/lib/components/forms/directives/input/input.directive.d.ts +0 -75
- package/lib/components/forms/directives/input-prefix/input-prefix.directive.d.ts +0 -7
- package/lib/components/forms/directives/input-suffix/input-suffix.directive.d.ts +0 -7
- package/lib/components/forms/directives/native-input-ref/native-input-ref.directive.d.ts +0 -8
- package/lib/components/forms/directives/static-form-field/static-form-field.directive.d.ts +0 -15
- package/lib/components/forms/directives/static-form-group/static-form-group.directive.d.ts +0 -7
- package/lib/components/forms/directives/writeable-input/writeable-input.directive.d.ts +0 -27
- package/lib/components/forms/public-api/index.d.ts +0 -108
- package/lib/components/forms/services/default-validator-errors.service.d.ts +0 -17
- package/lib/components/forms/services/form-field-state.service.d.ts +0 -21
- package/lib/components/forms/services/form-group-state.service.d.ts +0 -10
- package/lib/components/forms/services/input-state.service.d.ts +0 -51
- package/lib/components/forms/types/input.types.d.ts +0 -29
- package/lib/components/forms/utils/decorated-form-field.base.d.ts +0 -13
- package/lib/components/forms/utils/decorated-input.base.d.ts +0 -26
- package/lib/components/forms/utils/input.base.d.ts +0 -10
- package/lib/components/icons/chevron-icon/chevron-icon.component.d.ts +0 -5
- package/lib/components/icons/icon.imports.d.ts +0 -2
- package/lib/components/masonry/components/masonry/masonry.component.d.ts +0 -39
- package/lib/components/masonry/masonry.imports.d.ts +0 -3
- package/lib/components/masonry/partials/masonry-item/masonry-item.component.d.ts +0 -20
- package/lib/components/masonry/types/masonry.types.d.ts +0 -4
- package/lib/components/overlay/components/bottom-sheet/bottom-sheet.imports.d.ts +0 -21
- package/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.d.ts +0 -17
- package/lib/components/overlay/components/bottom-sheet/constants/bottom-sheet.constants.d.ts +0 -44
- package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.d.ts +0 -19
- package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.d.ts +0 -25
- package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.d.ts +0 -14
- package/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.d.ts +0 -38
- package/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.d.ts +0 -14
- package/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.d.ts +0 -14
- package/lib/components/overlay/components/bottom-sheet/types/bottom-sheet.types.d.ts +0 -96
- package/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet-config.d.ts +0 -5
- package/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet-ref.d.ts +0 -32
- package/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet.utils.d.ts +0 -17
- package/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.d.ts +0 -17
- package/lib/components/overlay/components/dialog/constants/dialog.constants.d.ts +0 -36
- package/lib/components/overlay/components/dialog/dialog.imports.d.ts +0 -21
- package/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.d.ts +0 -19
- package/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.d.ts +0 -19
- package/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.d.ts +0 -14
- package/lib/components/overlay/components/dialog/services/dialog-base.service.d.ts +0 -38
- package/lib/components/overlay/components/dialog/services/dialog.service.d.ts +0 -14
- package/lib/components/overlay/components/dialog/types/dialog.types.d.ts +0 -157
- package/lib/components/overlay/components/dialog/utils/dialog-config.d.ts +0 -5
- package/lib/components/overlay/components/dialog/utils/dialog-ref.d.ts +0 -34
- package/lib/components/overlay/components/dialog/utils/dialog.utils.d.ts +0 -17
- package/lib/components/overlay/components/menu/components/menu/menu.component.d.ts +0 -47
- package/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.d.ts +0 -27
- package/lib/components/overlay/components/menu/components/menu-container/menu-container.component.d.ts +0 -20
- package/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.d.ts +0 -25
- package/lib/components/overlay/components/menu/directives/menu-checkbox-group/menu-checkbox-group.directive.d.ts +0 -9
- package/lib/components/overlay/components/menu/directives/menu-group/menu-group.directive.d.ts +0 -18
- package/lib/components/overlay/components/menu/directives/menu-group-title/menu-group-title.directive.d.ts +0 -11
- package/lib/components/overlay/components/menu/directives/menu-item/menu-item.directive.d.ts +0 -38
- package/lib/components/overlay/components/menu/directives/menu-radio-group/menu-radio-group.directive.d.ts +0 -12
- package/lib/components/overlay/components/menu/directives/menu-search-template/menu-search-template.directive.d.ts +0 -8
- package/lib/components/overlay/components/menu/directives/menu-trigger/menu-trigger.directive.d.ts +0 -46
- package/lib/components/overlay/components/menu/menu.imports.d.ts +0 -11
- package/lib/components/overlay/components/menu-deprecated/context-menu-trigger.d.ts +0 -36
- package/lib/components/overlay/components/menu-deprecated/menu-aim.d.ts +0 -34
- package/lib/components/overlay/components/menu-deprecated/menu-bar.d.ts +0 -16
- package/lib/components/overlay/components/menu-deprecated/menu-base.d.ts +0 -45
- package/lib/components/overlay/components/menu-deprecated/menu-errors.d.ts +0 -2
- package/lib/components/overlay/components/menu-deprecated/menu-group.d.ts +0 -8
- package/lib/components/overlay/components/menu-deprecated/menu-interface.d.ts +0 -12
- package/lib/components/overlay/components/menu-deprecated/menu-item-checkbox.d.ts +0 -12
- package/lib/components/overlay/components/menu-deprecated/menu-item-radio.d.ts +0 -19
- package/lib/components/overlay/components/menu-deprecated/menu-item-selectable.d.ts +0 -14
- package/lib/components/overlay/components/menu-deprecated/menu-item.d.ts +0 -56
- package/lib/components/overlay/components/menu-deprecated/menu-module.d.ts +0 -19
- package/lib/components/overlay/components/menu-deprecated/menu-stack.d.ts +0 -57
- package/lib/components/overlay/components/menu-deprecated/menu-trigger-base.d.ts +0 -36
- package/lib/components/overlay/components/menu-deprecated/menu-trigger.d.ts +0 -37
- package/lib/components/overlay/components/menu-deprecated/menu.d.ts +0 -20
- package/lib/components/overlay/components/menu-deprecated/pointer-focus-tracker.d.ts +0 -20
- package/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.d.ts +0 -31
- package/lib/components/overlay/components/overlay/constants/overlay.constants.d.ts +0 -15
- package/lib/components/overlay/components/overlay/overlay.imports.d.ts +0 -29
- package/lib/components/overlay/components/overlay/partials/overlay-back-or-close/overlay-back-or-close.directive.d.ts +0 -14
- package/lib/components/overlay/components/overlay/partials/overlay-body/overlay-body.component.d.ts +0 -36
- package/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.d.ts +0 -15
- package/lib/components/overlay/components/overlay/partials/overlay-footer/overlay-footer.directive.d.ts +0 -11
- package/lib/components/overlay/components/overlay/partials/overlay-header/overlay-header.directive.d.ts +0 -11
- package/lib/components/overlay/components/overlay/partials/overlay-header-template/overlay-header-template.directive.d.ts +0 -14
- package/lib/components/overlay/components/overlay/partials/overlay-main/overlay-main.directive.d.ts +0 -20
- package/lib/components/overlay/components/overlay/partials/overlay-route-header-template-outlet/overlay-route-header-template-outlet.component.d.ts +0 -17
- package/lib/components/overlay/components/overlay/partials/overlay-router-link/overlay-router-link.directive.d.ts +0 -20
- package/lib/components/overlay/components/overlay/partials/overlay-router-outlet/overlay-router-outlet.component.d.ts +0 -27
- package/lib/components/overlay/components/overlay/partials/overlay-router-outlet-disabled-template/overlay-router-outlet-disabled-template.directive.d.ts +0 -7
- package/lib/components/overlay/components/overlay/partials/overlay-shared-route-template/overlay-shared-route-template.directive.d.ts +0 -7
- package/lib/components/overlay/components/overlay/partials/overlay-shared-route-template-outlet/overlay-shared-route-template-outlet.component.d.ts +0 -6
- package/lib/components/overlay/components/overlay/partials/overlay-sidebar/overlay-sidebar.component.d.ts +0 -21
- package/lib/components/overlay/components/overlay/partials/overlay-sidebar-page/overlay-sidebar-page.component.d.ts +0 -12
- package/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.d.ts +0 -11
- package/lib/components/overlay/components/overlay/services/overlay.service.d.ts +0 -31
- package/lib/components/overlay/components/overlay/types/overlay.types.d.ts +0 -196
- package/lib/components/overlay/components/overlay/utils/filter-overlay.d.ts +0 -64
- package/lib/components/overlay/components/overlay/utils/overlay-config.d.ts +0 -2
- package/lib/components/overlay/components/overlay/utils/overlay-position-builder.d.ts +0 -111
- package/lib/components/overlay/components/overlay/utils/overlay-ref.d.ts +0 -70
- package/lib/components/overlay/components/overlay/utils/overlay-router.d.ts +0 -98
- package/lib/components/overlay/components/overlay/utils/overlay.utils.d.ts +0 -8
- package/lib/components/overlay/components/overlay/utils/sidebar-overlay.d.ts +0 -31
- package/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.d.ts +0 -24
- package/lib/components/overlay/components/toggletip/constants/toggletip.constants.d.ts +0 -6
- package/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.d.ts +0 -32
- package/lib/components/overlay/components/toggletip/partials/toggletip-close/toggletip-close.directive.d.ts +0 -7
- package/lib/components/overlay/components/toggletip/toggletip.imports.d.ts +0 -2
- package/lib/components/overlay/components/toggletip/types/toggletip.types.d.ts +0 -34
- package/lib/components/overlay/components/toggletip/utils/toggletip-config.d.ts +0 -2
- package/lib/components/overlay/components/toggletip/utils/toggletip.util.d.ts +0 -5
- package/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.d.ts +0 -24
- package/lib/components/overlay/components/tooltip/constants/tooltip.constants.d.ts +0 -6
- package/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.d.ts +0 -35
- package/lib/components/overlay/components/tooltip/tooltip.imports.d.ts +0 -2
- package/lib/components/overlay/components/tooltip/types/tooltip.types.d.ts +0 -34
- package/lib/components/overlay/components/tooltip/utils/tooltip-config.d.ts +0 -2
- package/lib/components/overlay/components/tooltip/utils/tooltip.util.d.ts +0 -5
- package/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.d.ts +0 -14
- package/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.d.ts +0 -12
- package/lib/components/overlay/public-api/index.d.ts +0 -71
- package/lib/components/overlay/services/dynamic-overlay.service.d.ts +0 -17
- package/lib/components/overlay/types/dynamic-overlay.types.d.ts +0 -17
- package/lib/components/overlay/utils/overlay-dismiss-checker.util.d.ts +0 -80
- package/lib/components/pagination/components/pagination/pagination.component.d.ts +0 -31
- package/lib/components/pagination/pagination.imports.d.ts +0 -2
- package/lib/components/pagination/partials/pagination-link/pagination-link.directive.d.ts +0 -10
- package/lib/components/pagination/services/pagination-head.service.d.ts +0 -19
- package/lib/components/pagination/types/pagination.types.d.ts +0 -34
- package/lib/components/pagination/utils/pagination.util.d.ts +0 -2
- package/lib/components/picture/components/picture/picture.component.d.ts +0 -28
- package/lib/components/picture/types/picture.types.d.ts +0 -16
- package/lib/components/picture/utils/picture.utils.d.ts +0 -9
- package/lib/components/progress-spinner/progress-spinner.component.d.ts +0 -32
- package/lib/components/query-error/components/query-error/query-error.component.d.ts +0 -15
- package/lib/components/query-error/directives/query-error/query-error.directive.d.ts +0 -20
- package/lib/components/query-error/types/query-error.types.d.ts +0 -10
- package/lib/components/scrollable/components/scrollable/scrollable.component.d.ts +0 -144
- package/lib/components/scrollable/components/scrollable-placeholder/scrollable-placeholder.component.d.ts +0 -15
- package/lib/components/scrollable/directives/scrollable-ignore-child/scrollable-ignore-child.directive.d.ts +0 -19
- package/lib/components/scrollable/directives/scrollable-is-active-child/scrollable-is-active-child.directive.d.ts +0 -20
- package/lib/components/scrollable/directives/scrollable-loading-template/scrollable-loading-template.directive.d.ts +0 -10
- package/lib/components/scrollable/directives/scrollable-placeholder-item-template/scrollable-placeholder-item-template.directive.d.ts +0 -7
- package/lib/components/scrollable/directives/scrollable-placeholder-overlay-template/scrollable-placeholder-overlay-template.directive.d.ts +0 -7
- package/lib/components/scrollable/scrollable.imports.d.ts +0 -8
- package/lib/components/scrollable/types/scrollable.types.d.ts +0 -7
- package/lib/components/skeleton/components/skeleton/skeleton.component.d.ts +0 -8
- package/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.d.ts +0 -6
- package/lib/components/skeleton/skeleton.imports.d.ts +0 -3
- package/lib/components/sort/components/sort-header/sort-header.component.d.ts +0 -52
- package/lib/components/sort/components/sort-header/sort-header.types.d.ts +0 -9
- package/lib/components/sort/partials/sort/sort.directive.d.ts +0 -39
- package/lib/components/sort/partials/sort/sort.types.d.ts +0 -15
- package/lib/components/sort/services/sort-header-intl.d.ts +0 -14
- package/lib/components/sort/sort.imports.d.ts +0 -8
- package/lib/components/table/components/table/table.component.d.ts +0 -19
- package/lib/components/table/constants/table-data-source.constants.d.ts +0 -1
- package/lib/components/table/partials/cells/cell/cell.directive.d.ts +0 -6
- package/lib/components/table/partials/cells/cell-def/cell-def.directive.d.ts +0 -6
- package/lib/components/table/partials/cells/column-def/column-def.directive.d.ts +0 -12
- package/lib/components/table/partials/cells/footer-cell/footer-cell.directive.d.ts +0 -6
- package/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.d.ts +0 -6
- package/lib/components/table/partials/cells/header-cell/header-cell.directive.d.ts +0 -6
- package/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.d.ts +0 -6
- package/lib/components/table/partials/cells/text-column/text-column.component.d.ts +0 -7
- package/lib/components/table/partials/rows/footer-row/footer-row.component.d.ts +0 -6
- package/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.d.ts +0 -8
- package/lib/components/table/partials/rows/header-row/header-row.component.d.ts +0 -6
- package/lib/components/table/partials/rows/header-row-def/header-row-def.directive.d.ts +0 -8
- package/lib/components/table/partials/rows/no-data-row/no-data-row.directive.d.ts +0 -7
- package/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.d.ts +0 -5
- package/lib/components/table/partials/rows/row/row.component.d.ts +0 -6
- package/lib/components/table/partials/rows/row-def/row-def.directive.d.ts +0 -8
- package/lib/components/table/partials/table-busy/table-busy.directive.d.ts +0 -8
- package/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.d.ts +0 -9
- package/lib/components/table/table.imports.d.ts +0 -19
- package/lib/components/table/types/table-data-source.types.d.ts +0 -15
- package/lib/components/table/utils/table-data-source.d.ts +0 -33
- package/lib/components/tabs/animations/tabs.animations.d.ts +0 -4
- package/lib/components/tabs/components/inline-tabs/inline-tabs.component.d.ts +0 -64
- package/lib/components/tabs/components/nav-tabs/nav-tabs.component.d.ts +0 -23
- package/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.d.ts +0 -38
- package/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.d.ts +0 -40
- package/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.d.ts +0 -8
- package/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.d.ts +0 -8
- package/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.d.ts +0 -16
- package/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.d.ts +0 -11
- package/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.d.ts +0 -14
- package/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.d.ts +0 -44
- package/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.d.ts +0 -10
- package/lib/components/tabs/tab.imports.d.ts +0 -12
- package/lib/components/tabs/types/tab-config.types.d.ts +0 -8
- package/lib/components/tabs/utils/active-tab-underline.util.d.ts +0 -40
- package/lib/components/tabs/utils/paginated-tab-header.directive.d.ts +0 -73
- package/lib/services/swipe-handler.service.d.ts +0 -12
- package/lib/types/swipe.types.d.ts +0 -23
- package/lib/utils/floating-ui.utils.d.ts +0 -2
- /package/{lib/components/accordion/components/accordion/index.d.ts → src/lib/components/accordion/components/accordion/index.ts} +0 -0
- /package/{lib/components/accordion/components/accordion-group/index.d.ts → src/lib/components/accordion/components/accordion-group/index.ts} +0 -0
- /package/{lib/components/accordion/partials/accordion-hint/index.d.ts → src/lib/components/accordion/partials/accordion-hint/index.ts} +0 -0
- /package/{lib/components/accordion/partials/accordion-hint-wrapper/index.d.ts → src/lib/components/accordion/partials/accordion-hint-wrapper/index.ts} +0 -0
- /package/{lib/components/accordion/partials/accordion-label/index.d.ts → src/lib/components/accordion/partials/accordion-label/index.ts} +0 -0
- /package/{lib/components/accordion/partials/accordion-label-wrapper/index.d.ts → src/lib/components/accordion/partials/accordion-label-wrapper/index.ts} +0 -0
- /package/{lib/components/accordion/public-api/index.d.ts → src/lib/components/accordion/public-api/index.ts} +0 -0
- /package/{lib/components/bracket/components/bracket/index.d.ts → src/lib/components/bracket/components/bracket/index.ts} +0 -0
- /package/{lib/components/bracket/constants/index.d.ts → src/lib/components/bracket/constants/index.ts} +0 -0
- /package/{lib/components/bracket/directives/bracket-match/index.d.ts → src/lib/components/bracket/directives/bracket-match/index.ts} +0 -0
- /package/{lib/components/bracket/directives/bracket-round/index.d.ts → src/lib/components/bracket/directives/bracket-round/index.ts} +0 -0
- /package/{lib/components/bracket/partials/bracket-match/index.d.ts → src/lib/components/bracket/partials/bracket-match/index.ts} +0 -0
- /package/{lib/components/bracket/partials/bracket-round-header/index.d.ts → src/lib/components/bracket/partials/bracket-round-header/index.ts} +0 -0
- /package/{lib/components/bracket/public-api/index.d.ts → src/lib/components/bracket/public-api/index.ts} +0 -0
- /package/{lib/components/bracket/types/index.d.ts → src/lib/components/bracket/types/index.ts} +0 -0
- /package/{lib/components/bracket/utils/index.d.ts → src/lib/components/bracket/utils/index.ts} +0 -0
- /package/{lib/components/button/components/button/index.d.ts → src/lib/components/button/components/button/index.ts} +0 -0
- /package/{lib/components/button/components/query-button/index.d.ts → src/lib/components/button/components/query-button/index.ts} +0 -0
- /package/{lib/components/button/directives/button/index.d.ts → src/lib/components/button/directives/button/index.ts} +0 -0
- /package/{lib/components/button/directives/query-button/index.d.ts → src/lib/components/button/directives/query-button/index.ts} +0 -0
- /package/{lib/components/button/public-api/index.d.ts → src/lib/components/button/public-api/index.ts} +0 -0
- /package/{lib/components/carousel/controls/index.d.ts → src/lib/components/carousel/controls/index.ts} +0 -0
- /package/{lib/components/carousel/public-api/index.d.ts → src/lib/components/carousel/public-api/index.ts} +0 -0
- /package/{lib/components/filter/public-api/index.d.ts → src/lib/components/filter/public-api/index.ts} +0 -0
- /package/{lib/components/filter/rich-filter/components/rich-filter-host/index.d.ts → src/lib/components/filter/rich-filter/components/rich-filter-host/index.ts} +0 -0
- /package/{lib/components/filter/rich-filter/directives/rich-filter-button/index.d.ts → src/lib/components/filter/rich-filter/directives/rich-filter-button/index.ts} +0 -0
- /package/{lib/components/filter/rich-filter/directives/rich-filter-button-slot/index.d.ts → src/lib/components/filter/rich-filter/directives/rich-filter-button-slot/index.ts} +0 -0
- /package/{lib/components/filter/rich-filter/directives/rich-filter-content/index.d.ts → src/lib/components/filter/rich-filter/directives/rich-filter-content/index.ts} +0 -0
- /package/{lib/components/filter/rich-filter/directives/rich-filter-top/index.d.ts → src/lib/components/filter/rich-filter/directives/rich-filter-top/index.ts} +0 -0
- /package/{lib/components/forms/components/checkbox/components/checkbox/index.d.ts → src/lib/components/forms/components/checkbox/components/checkbox/index.ts} +0 -0
- /package/{lib/components/forms/components/checkbox/components/checkbox-field/index.d.ts → src/lib/components/forms/components/checkbox/components/checkbox-field/index.ts} +0 -0
- /package/{lib/components/forms/components/checkbox/components/checkbox-group/index.d.ts → src/lib/components/forms/components/checkbox/components/checkbox-group/index.ts} +0 -0
- /package/{lib/components/forms/components/checkbox/directives/checkbox/index.d.ts → src/lib/components/forms/components/checkbox/directives/checkbox/index.ts} +0 -0
- /package/{lib/components/forms/components/checkbox/directives/checkbox-field/index.d.ts → src/lib/components/forms/components/checkbox/directives/checkbox-field/index.ts} +0 -0
- /package/{lib/components/forms/components/checkbox/directives/checkbox-group/index.d.ts → src/lib/components/forms/components/checkbox/directives/checkbox-group/index.ts} +0 -0
- /package/{lib/components/forms/components/checkbox/directives/checkbox-group-control/index.d.ts → src/lib/components/forms/components/checkbox/directives/checkbox-group-control/index.ts} +0 -0
- /package/{lib/components/forms/components/error/components/error/index.d.ts → src/lib/components/forms/components/error/components/error/index.ts} +0 -0
- /package/{lib/components/forms/components/input/components/date-input/index.d.ts → src/lib/components/forms/components/input/components/date-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/components/date-time-input/index.d.ts → src/lib/components/forms/components/input/components/date-time-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/components/email-input/index.d.ts → src/lib/components/forms/components/input/components/email-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/components/input-field/index.d.ts → src/lib/components/forms/components/input/components/input-field/index.ts} +0 -0
- /package/{lib/components/forms/components/input/components/number-input/index.d.ts → src/lib/components/forms/components/input/components/number-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/components/password-input/index.d.ts → src/lib/components/forms/components/input/components/password-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/components/search-input/index.d.ts → src/lib/components/forms/components/input/components/search-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/components/text-input/index.d.ts → src/lib/components/forms/components/input/components/text-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/components/textarea-input/index.d.ts → src/lib/components/forms/components/input/components/textarea-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/components/time-input/index.d.ts → src/lib/components/forms/components/input/components/time-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/autosize-textarea/index.d.ts → src/lib/components/forms/components/input/directives/autosize-textarea/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/date-input/index.d.ts → src/lib/components/forms/components/input/directives/date-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/date-time-input/index.d.ts → src/lib/components/forms/components/input/directives/date-time-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/email-input/index.d.ts → src/lib/components/forms/components/input/directives/email-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/if-supports-show-picker/index.d.ts → src/lib/components/forms/components/input/directives/if-supports-show-picker/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/number-input/index.d.ts → src/lib/components/forms/components/input/directives/number-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/password-input/index.d.ts → src/lib/components/forms/components/input/directives/password-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/search-input/index.d.ts → src/lib/components/forms/components/input/directives/search-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/show-picker-trigger/index.d.ts → src/lib/components/forms/components/input/directives/show-picker-trigger/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/text-input/index.d.ts → src/lib/components/forms/components/input/directives/text-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/textarea-input/index.d.ts → src/lib/components/forms/components/input/directives/textarea-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/directives/time-input/index.d.ts → src/lib/components/forms/components/input/directives/time-input/index.ts} +0 -0
- /package/{lib/components/forms/components/input/partials/password-input-toggle/index.d.ts → src/lib/components/forms/components/input/partials/password-input-toggle/index.ts} +0 -0
- /package/{lib/components/forms/components/input/partials/search-input-clear/index.d.ts → src/lib/components/forms/components/input/partials/search-input-clear/index.ts} +0 -0
- /package/{lib/components/forms/components/label/components/label/index.d.ts → src/lib/components/forms/components/label/components/label/index.ts} +0 -0
- /package/{lib/components/forms/components/label/directives/label-suffix/index.d.ts → src/lib/components/forms/components/label/directives/label-suffix/index.ts} +0 -0
- /package/{lib/components/forms/components/radio/components/radio/index.d.ts → src/lib/components/forms/components/radio/components/radio/index.ts} +0 -0
- /package/{lib/components/forms/components/radio/components/radio-field/index.d.ts → src/lib/components/forms/components/radio/components/radio-field/index.ts} +0 -0
- /package/{lib/components/forms/components/radio/components/radio-group/index.d.ts → src/lib/components/forms/components/radio/components/radio-group/index.ts} +0 -0
- /package/{lib/components/forms/components/radio/directives/radio/index.d.ts → src/lib/components/forms/components/radio/directives/radio/index.ts} +0 -0
- /package/{lib/components/forms/components/radio/directives/radio-field/index.d.ts → src/lib/components/forms/components/radio/directives/radio-field/index.ts} +0 -0
- /package/{lib/components/forms/components/radio/directives/radio-group/index.d.ts → src/lib/components/forms/components/radio/directives/radio-group/index.ts} +0 -0
- /package/{lib/components/forms/components/radio/types/index.d.ts → src/lib/components/forms/components/radio/types/index.ts} +0 -0
- /package/{lib/components/forms/components/radio/types/radio.types.d.ts → src/lib/components/forms/components/radio/types/radio.types.ts} +0 -0
- /package/{lib/components/forms/components/segmented-button/components/segmented-button/index.d.ts → src/lib/components/forms/components/segmented-button/components/segmented-button/index.ts} +0 -0
- /package/{lib/components/forms/components/segmented-button/components/segmented-button-field/index.d.ts → src/lib/components/forms/components/segmented-button/components/segmented-button-field/index.ts} +0 -0
- /package/{lib/components/forms/components/segmented-button/components/segmented-button-group/index.d.ts → src/lib/components/forms/components/segmented-button/components/segmented-button-group/index.ts} +0 -0
- /package/{lib/components/forms/components/segmented-button/directives/segmented-button/index.d.ts → src/lib/components/forms/components/segmented-button/directives/segmented-button/index.ts} +0 -0
- /package/{lib/components/forms/components/segmented-button/directives/segmented-button-field/index.d.ts → src/lib/components/forms/components/segmented-button/directives/segmented-button-field/index.ts} +0 -0
- /package/{lib/components/forms/components/segmented-button/directives/segmented-button-group/index.d.ts → src/lib/components/forms/components/segmented-button/directives/segmented-button-group/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/components/combobox/index.d.ts → src/lib/components/forms/components/select/components/combobox/components/combobox/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/constants/index.d.ts → src/lib/components/forms/components/select/components/combobox/constants/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/directives/combobox/index.d.ts → src/lib/components/forms/components/select/components/combobox/directives/combobox/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/index.d.ts → src/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/index.d.ts → src/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/index.d.ts → src/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/index.d.ts → src/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/directives/combobox-option-template/index.d.ts → src/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/index.d.ts → src/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/partials/combobox-body/index.d.ts → src/lib/components/forms/components/select/components/combobox/partials/combobox-body/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/partials/combobox-option/index.d.ts → src/lib/components/forms/components/select/components/combobox/partials/combobox-option/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/private/index.d.ts → src/lib/components/forms/components/select/components/combobox/private/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/types/index.d.ts → src/lib/components/forms/components/select/components/combobox/types/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/combobox/utils/index.d.ts → src/lib/components/forms/components/select/components/combobox/utils/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/native-select/components/native-select/index.d.ts → src/lib/components/forms/components/select/components/native-select/components/native-select/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/native-select/directives/native-select-input/index.d.ts → src/lib/components/forms/components/select/components/native-select/directives/native-select-input/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/native-select/directives/native-select-option/index.d.ts → src/lib/components/forms/components/select/components/native-select/directives/native-select-option/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/native-select/partials/native-select-option/index.d.ts → src/lib/components/forms/components/select/components/native-select/partials/native-select-option/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/native-select/types/index.d.ts → src/lib/components/forms/components/select/components/native-select/types/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/native-select/types/select.types.d.ts → src/lib/components/forms/components/select/components/native-select/types/select.types.ts} +0 -0
- /package/{lib/components/forms/components/select/components/select/components/select/index.d.ts → src/lib/components/forms/components/select/components/select/components/select/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/select/directives/select/index.d.ts → src/lib/components/forms/components/select/components/select/directives/select/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/select/directives/select-body/index.d.ts → src/lib/components/forms/components/select/components/select/directives/select-body/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/select/directives/select-option/index.d.ts → src/lib/components/forms/components/select/components/select/directives/select-option/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/select/partials/select-body/index.d.ts → src/lib/components/forms/components/select/components/select/partials/select-body/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/select/partials/select-option/index.d.ts → src/lib/components/forms/components/select/components/select/partials/select-option/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/select/private/index.d.ts → src/lib/components/forms/components/select/components/select/private/index.ts} +0 -0
- /package/{lib/components/forms/components/select/components/select-field/index.d.ts → src/lib/components/forms/components/select/components/select-field/index.ts} +0 -0
- /package/{lib/components/forms/components/select/directives/select-field/index.d.ts → src/lib/components/forms/components/select/directives/select-field/index.ts} +0 -0
- /package/{lib/components/forms/components/selection-list/components/selection-list-field/index.d.ts → src/lib/components/forms/components/selection-list/components/selection-list-field/index.ts} +0 -0
- /package/{lib/components/forms/components/selection-list/components/selection-list-option/index.d.ts → src/lib/components/forms/components/selection-list/components/selection-list-option/index.ts} +0 -0
- /package/{lib/components/forms/components/selection-list/directives/selection-list-field/index.d.ts → src/lib/components/forms/components/selection-list/directives/selection-list-field/index.ts} +0 -0
- /package/{lib/components/forms/components/selection-list/directives/selection-list-option/index.d.ts → src/lib/components/forms/components/selection-list/directives/selection-list-option/index.ts} +0 -0
- /package/{lib/components/forms/components/slide-toggle/components/slide-toggle/index.d.ts → src/lib/components/forms/components/slide-toggle/components/slide-toggle/index.ts} +0 -0
- /package/{lib/components/forms/components/slide-toggle/components/slide-toggle-field/index.d.ts → src/lib/components/forms/components/slide-toggle/components/slide-toggle-field/index.ts} +0 -0
- /package/{lib/components/forms/components/slide-toggle/directives/slide-toggle/index.d.ts → src/lib/components/forms/components/slide-toggle/directives/slide-toggle/index.ts} +0 -0
- /package/{lib/components/forms/components/slider/components/slider/index.d.ts → src/lib/components/forms/components/slider/components/slider/index.ts} +0 -0
- /package/{lib/components/forms/components/slider/components/slider-field/index.d.ts → src/lib/components/forms/components/slider/components/slider-field/index.ts} +0 -0
- /package/{lib/components/forms/directives/dynamic-form-field/index.d.ts → src/lib/components/forms/directives/dynamic-form-field/index.ts} +0 -0
- /package/{lib/components/forms/directives/dynamic-form-group/index.d.ts → src/lib/components/forms/directives/dynamic-form-group/index.ts} +0 -0
- /package/{lib/components/forms/directives/expose-input-vars/index.d.ts → src/lib/components/forms/directives/expose-input-vars/index.ts} +0 -0
- /package/{lib/components/forms/directives/if-input-empty/index.d.ts → src/lib/components/forms/directives/if-input-empty/index.ts} +0 -0
- /package/{lib/components/forms/directives/if-input-filled/index.d.ts → src/lib/components/forms/directives/if-input-filled/index.ts} +0 -0
- /package/{lib/components/forms/directives/input/index.d.ts → src/lib/components/forms/directives/input/index.ts} +0 -0
- /package/{lib/components/forms/directives/input-prefix/index.d.ts → src/lib/components/forms/directives/input-prefix/index.ts} +0 -0
- /package/{lib/components/forms/directives/input-suffix/index.d.ts → src/lib/components/forms/directives/input-suffix/index.ts} +0 -0
- /package/{lib/components/forms/directives/native-input-ref/index.d.ts → src/lib/components/forms/directives/native-input-ref/index.ts} +0 -0
- /package/{lib/components/forms/directives/static-form-field/index.d.ts → src/lib/components/forms/directives/static-form-field/index.ts} +0 -0
- /package/{lib/components/forms/directives/static-form-group/index.d.ts → src/lib/components/forms/directives/static-form-group/index.ts} +0 -0
- /package/{lib/components/forms/directives/writeable-input/index.d.ts → src/lib/components/forms/directives/writeable-input/index.ts} +0 -0
- /package/{lib/components/forms/services/index.d.ts → src/lib/components/forms/services/index.ts} +0 -0
- /package/{lib/components/forms/types/index.d.ts → src/lib/components/forms/types/index.ts} +0 -0
- /package/{lib/components/forms/utils/index.d.ts → src/lib/components/forms/utils/index.ts} +0 -0
- /package/{lib/components/icons/chevron-icon/index.d.ts → src/lib/components/icons/chevron-icon/index.ts} +0 -0
- /package/{lib/components/icons/public-api/index.d.ts → src/lib/components/icons/public-api/index.ts} +0 -0
- /package/{lib/components/masonry/components/masonry/index.d.ts → src/lib/components/masonry/components/masonry/index.ts} +0 -0
- /package/{lib/components/masonry/partials/masonry-item/index.d.ts → src/lib/components/masonry/partials/masonry-item/index.ts} +0 -0
- /package/{lib/components/masonry/public-api/index.d.ts → src/lib/components/masonry/public-api/index.ts} +0 -0
- /package/{lib/components/masonry/types/index.d.ts → src/lib/components/masonry/types/index.ts} +0 -0
- /package/{lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/index.d.ts → src/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/index.ts} +0 -0
- /package/{lib/components/overlay/components/bottom-sheet/constants/index.d.ts → src/lib/components/overlay/components/bottom-sheet/constants/index.ts} +0 -0
- /package/{lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/index.d.ts → src/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/index.ts} +0 -0
- /package/{lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/index.d.ts → src/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/index.ts} +0 -0
- /package/{lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/index.d.ts → src/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/index.ts} +0 -0
- /package/{lib/components/overlay/components/bottom-sheet/services/index.d.ts → src/lib/components/overlay/components/bottom-sheet/services/index.ts} +0 -0
- /package/{lib/components/overlay/components/bottom-sheet/types/index.d.ts → src/lib/components/overlay/components/bottom-sheet/types/index.ts} +0 -0
- /package/{lib/components/overlay/components/bottom-sheet/utils/index.d.ts → src/lib/components/overlay/components/bottom-sheet/utils/index.ts} +0 -0
- /package/{lib/components/overlay/components/dialog/components/dialog-container/index.d.ts → src/lib/components/overlay/components/dialog/components/dialog-container/index.ts} +0 -0
- /package/{lib/components/overlay/components/dialog/constants/index.d.ts → src/lib/components/overlay/components/dialog/constants/index.ts} +0 -0
- /package/{lib/components/overlay/components/dialog/partials/dialog-close/index.d.ts → src/lib/components/overlay/components/dialog/partials/dialog-close/index.ts} +0 -0
- /package/{lib/components/overlay/components/dialog/partials/dialog-container-base/index.d.ts → src/lib/components/overlay/components/dialog/partials/dialog-container-base/index.ts} +0 -0
- /package/{lib/components/overlay/components/dialog/partials/dialog-title/index.d.ts → src/lib/components/overlay/components/dialog/partials/dialog-title/index.ts} +0 -0
- /package/{lib/components/overlay/components/dialog/services/index.d.ts → src/lib/components/overlay/components/dialog/services/index.ts} +0 -0
- /package/{lib/components/overlay/components/dialog/types/index.d.ts → src/lib/components/overlay/components/dialog/types/index.ts} +0 -0
- /package/{lib/components/overlay/components/dialog/utils/index.d.ts → src/lib/components/overlay/components/dialog/utils/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/components/menu/index.d.ts → src/lib/components/overlay/components/menu/components/menu/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/components/menu-checkbox-item/index.d.ts → src/lib/components/overlay/components/menu/components/menu-checkbox-item/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/components/menu-container/index.d.ts → src/lib/components/overlay/components/menu/components/menu-container/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/components/menu-radio-item/index.d.ts → src/lib/components/overlay/components/menu/components/menu-radio-item/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/directives/menu-checkbox-group/index.d.ts → src/lib/components/overlay/components/menu/directives/menu-checkbox-group/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/directives/menu-group/index.d.ts → src/lib/components/overlay/components/menu/directives/menu-group/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/directives/menu-group-title/index.d.ts → src/lib/components/overlay/components/menu/directives/menu-group-title/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/directives/menu-item/index.d.ts → src/lib/components/overlay/components/menu/directives/menu-item/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/directives/menu-radio-group/index.d.ts → src/lib/components/overlay/components/menu/directives/menu-radio-group/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/directives/menu-search-template/index.d.ts → src/lib/components/overlay/components/menu/directives/menu-search-template/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu/directives/menu-trigger/index.d.ts → src/lib/components/overlay/components/menu/directives/menu-trigger/index.ts} +0 -0
- /package/{lib/components/overlay/components/menu-deprecated/index.d.ts → src/lib/components/overlay/components/menu-deprecated/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/components/overlay-container/index.d.ts → src/lib/components/overlay/components/overlay/components/overlay-container/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/constants/index.d.ts → src/lib/components/overlay/components/overlay/constants/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-back-or-close/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-back-or-close/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-body/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-body/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-close/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-close/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-footer/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-footer/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-header/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-header/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-header-template/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-header-template/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-main/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-main/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-route-header-template-outlet/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-route-header-template-outlet/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-router-link/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-router-link/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-router-outlet/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-router-outlet/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-router-outlet-disabled-template/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-router-outlet-disabled-template/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-shared-route-template/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-shared-route-template/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-shared-route-template-outlet/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-shared-route-template-outlet/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-sidebar/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-sidebar/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-sidebar-page/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-sidebar-page/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/partials/overlay-title/index.d.ts → src/lib/components/overlay/components/overlay/partials/overlay-title/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/services/index.d.ts → src/lib/components/overlay/components/overlay/services/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/types/index.d.ts → src/lib/components/overlay/components/overlay/types/index.ts} +0 -0
- /package/{lib/components/overlay/components/overlay/utils/index.d.ts → src/lib/components/overlay/components/overlay/utils/index.ts} +0 -0
- /package/{lib/components/overlay/components/toggletip/components/toggletip/index.d.ts → src/lib/components/overlay/components/toggletip/components/toggletip/index.ts} +0 -0
- /package/{lib/components/overlay/components/toggletip/constants/index.d.ts → src/lib/components/overlay/components/toggletip/constants/index.ts} +0 -0
- /package/{lib/components/overlay/components/toggletip/directives/toggletip/index.d.ts → src/lib/components/overlay/components/toggletip/directives/toggletip/index.ts} +0 -0
- /package/{lib/components/overlay/components/toggletip/partials/toggletip-close/index.d.ts → src/lib/components/overlay/components/toggletip/partials/toggletip-close/index.ts} +0 -0
- /package/{lib/components/overlay/components/toggletip/types/index.d.ts → src/lib/components/overlay/components/toggletip/types/index.ts} +0 -0
- /package/{lib/components/overlay/components/toggletip/utils/index.d.ts → src/lib/components/overlay/components/toggletip/utils/index.ts} +0 -0
- /package/{lib/components/overlay/components/tooltip/components/tooltip/index.d.ts → src/lib/components/overlay/components/tooltip/components/tooltip/index.ts} +0 -0
- /package/{lib/components/overlay/components/tooltip/constants/index.d.ts → src/lib/components/overlay/components/tooltip/constants/index.ts} +0 -0
- /package/{lib/components/overlay/components/tooltip/directives/tooltip/index.d.ts → src/lib/components/overlay/components/tooltip/directives/tooltip/index.ts} +0 -0
- /package/{lib/components/overlay/components/tooltip/types/index.d.ts → src/lib/components/overlay/components/tooltip/types/index.ts} +0 -0
- /package/{lib/components/overlay/components/tooltip/utils/index.d.ts → src/lib/components/overlay/components/tooltip/utils/index.ts} +0 -0
- /package/{lib/components/overlay/directives/dynamic-overlay-title/index.d.ts → src/lib/components/overlay/directives/dynamic-overlay-title/index.ts} +0 -0
- /package/{lib/components/overlay/directives/overlay-close-auto-blocker/index.d.ts → src/lib/components/overlay/directives/overlay-close-auto-blocker/index.ts} +0 -0
- /package/{lib/components/overlay/services/index.d.ts → src/lib/components/overlay/services/index.ts} +0 -0
- /package/{lib/components/overlay/types/index.d.ts → src/lib/components/overlay/types/index.ts} +0 -0
- /package/{lib/components/overlay/utils/index.d.ts → src/lib/components/overlay/utils/index.ts} +0 -0
- /package/{lib/components/pagination/components/pagination/index.d.ts → src/lib/components/pagination/components/pagination/index.ts} +0 -0
- /package/{lib/components/pagination/partials/pagination-link/index.d.ts → src/lib/components/pagination/partials/pagination-link/index.ts} +0 -0
- /package/{lib/components/pagination/public-api/index.d.ts → src/lib/components/pagination/public-api/index.ts} +0 -0
- /package/{lib/components/pagination/services/index.d.ts → src/lib/components/pagination/services/index.ts} +0 -0
- /package/{lib/components/pagination/types/index.d.ts → src/lib/components/pagination/types/index.ts} +0 -0
- /package/{lib/components/pagination/utils/index.d.ts → src/lib/components/pagination/utils/index.ts} +0 -0
- /package/{lib/components/picture/components/picture/index.d.ts → src/lib/components/picture/components/picture/index.ts} +0 -0
- /package/{lib/components/picture/public-api/index.d.ts → src/lib/components/picture/public-api/index.ts} +0 -0
- /package/{lib/components/progress-spinner/index.d.ts → src/lib/components/progress-spinner/index.ts} +0 -0
- /package/{lib/components/query-error/components/query-error/index.d.ts → src/lib/components/query-error/components/query-error/index.ts} +0 -0
- /package/{lib/components/query-error/directives/query-error/index.d.ts → src/lib/components/query-error/directives/query-error/index.ts} +0 -0
- /package/{lib/components/query-error/public-api/index.d.ts → src/lib/components/query-error/public-api/index.ts} +0 -0
- /package/{lib/components/query-error/types/index.d.ts → src/lib/components/query-error/types/index.ts} +0 -0
- /package/{lib/components/scrollable/components/scrollable/index.d.ts → src/lib/components/scrollable/components/scrollable/index.ts} +0 -0
- /package/{lib/components/scrollable/components/scrollable-placeholder/index.d.ts → src/lib/components/scrollable/components/scrollable-placeholder/index.ts} +0 -0
- /package/{lib/components/scrollable/directives/scrollable-ignore-child/index.d.ts → src/lib/components/scrollable/directives/scrollable-ignore-child/index.ts} +0 -0
- /package/{lib/components/scrollable/directives/scrollable-is-active-child/index.d.ts → src/lib/components/scrollable/directives/scrollable-is-active-child/index.ts} +0 -0
- /package/{lib/components/scrollable/directives/scrollable-loading-template/index.d.ts → src/lib/components/scrollable/directives/scrollable-loading-template/index.ts} +0 -0
- /package/{lib/components/scrollable/directives/scrollable-placeholder-item-template/index.d.ts → src/lib/components/scrollable/directives/scrollable-placeholder-item-template/index.ts} +0 -0
- /package/{lib/components/scrollable/directives/scrollable-placeholder-overlay-template/index.d.ts → src/lib/components/scrollable/directives/scrollable-placeholder-overlay-template/index.ts} +0 -0
- /package/{lib/components/scrollable/public-api/index.d.ts → src/lib/components/scrollable/public-api/index.ts} +0 -0
- /package/{lib/components/scrollable/types/index.d.ts → src/lib/components/scrollable/types/index.ts} +0 -0
- /package/{lib/components/skeleton/components/skeleton/index.d.ts → src/lib/components/skeleton/components/skeleton/index.ts} +0 -0
- /package/{lib/components/skeleton/partials/skeleton-item/index.d.ts → src/lib/components/skeleton/partials/skeleton-item/index.ts} +0 -0
- /package/{lib/components/skeleton/public-api/index.d.ts → src/lib/components/skeleton/public-api/index.ts} +0 -0
- /package/{lib/components/sort/components/sort-header/index.d.ts → src/lib/components/sort/components/sort-header/index.ts} +0 -0
- /package/{lib/components/sort/partials/sort/index.d.ts → src/lib/components/sort/partials/sort/index.ts} +0 -0
- /package/{lib/components/sort/public-api/index.d.ts → src/lib/components/sort/public-api/index.ts} +0 -0
- /package/{lib/components/sort/services/index.d.ts → src/lib/components/sort/services/index.ts} +0 -0
- /package/{lib/components/sort/types/index.d.ts → src/lib/components/sort/types/index.ts} +0 -0
- /package/{lib/components/sort/types/sort-direction.d.ts → src/lib/components/sort/types/sort-direction.ts} +0 -0
- /package/{lib/components/table/components/table/index.d.ts → src/lib/components/table/components/table/index.ts} +0 -0
- /package/{lib/components/table/constants/index.d.ts → src/lib/components/table/constants/index.ts} +0 -0
- /package/{lib/components/table/partials/cells/cell/index.d.ts → src/lib/components/table/partials/cells/cell/index.ts} +0 -0
- /package/{lib/components/table/partials/cells/cell-def/index.d.ts → src/lib/components/table/partials/cells/cell-def/index.ts} +0 -0
- /package/{lib/components/table/partials/cells/column-def/index.d.ts → src/lib/components/table/partials/cells/column-def/index.ts} +0 -0
- /package/{lib/components/table/partials/cells/footer-cell/index.d.ts → src/lib/components/table/partials/cells/footer-cell/index.ts} +0 -0
- /package/{lib/components/table/partials/cells/footer-cell-def/index.d.ts → src/lib/components/table/partials/cells/footer-cell-def/index.ts} +0 -0
- /package/{lib/components/table/partials/cells/header-cell/index.d.ts → src/lib/components/table/partials/cells/header-cell/index.ts} +0 -0
- /package/{lib/components/table/partials/cells/header-cell-def/index.d.ts → src/lib/components/table/partials/cells/header-cell-def/index.ts} +0 -0
- /package/{lib/components/table/partials/cells/text-column/index.d.ts → src/lib/components/table/partials/cells/text-column/index.ts} +0 -0
- /package/{lib/components/table/partials/rows/footer-row/index.d.ts → src/lib/components/table/partials/rows/footer-row/index.ts} +0 -0
- /package/{lib/components/table/partials/rows/footer-row-def/index.d.ts → src/lib/components/table/partials/rows/footer-row-def/index.ts} +0 -0
- /package/{lib/components/table/partials/rows/header-row/index.d.ts → src/lib/components/table/partials/rows/header-row/index.ts} +0 -0
- /package/{lib/components/table/partials/rows/header-row-def/index.d.ts → src/lib/components/table/partials/rows/header-row-def/index.ts} +0 -0
- /package/{lib/components/table/partials/rows/no-data-row/index.d.ts → src/lib/components/table/partials/rows/no-data-row/index.ts} +0 -0
- /package/{lib/components/table/partials/rows/recycle-rows/index.d.ts → src/lib/components/table/partials/rows/recycle-rows/index.ts} +0 -0
- /package/{lib/components/table/partials/rows/row/index.d.ts → src/lib/components/table/partials/rows/row/index.ts} +0 -0
- /package/{lib/components/table/partials/rows/row-def/index.d.ts → src/lib/components/table/partials/rows/row-def/index.ts} +0 -0
- /package/{lib/components/table/partials/table-busy/index.d.ts → src/lib/components/table/partials/table-busy/index.ts} +0 -0
- /package/{lib/components/table/partials/table-busy-outlet/index.d.ts → src/lib/components/table/partials/table-busy-outlet/index.ts} +0 -0
- /package/{lib/components/table/public-api/index.d.ts → src/lib/components/table/public-api/index.ts} +0 -0
- /package/{lib/components/table/types/index.d.ts → src/lib/components/table/types/index.ts} +0 -0
- /package/{lib/components/table/utils/index.d.ts → src/lib/components/table/utils/index.ts} +0 -0
- /package/{lib/components/tabs/animations/index.d.ts → src/lib/components/tabs/animations/index.ts} +0 -0
- /package/{lib/components/tabs/components/inline-tabs/index.d.ts → src/lib/components/tabs/components/inline-tabs/index.ts} +0 -0
- /package/{lib/components/tabs/components/nav-tabs/index.d.ts → src/lib/components/tabs/components/nav-tabs/index.ts} +0 -0
- /package/{lib/components/tabs/partials/inline-tabs/inline-tab/index.d.ts → src/lib/components/tabs/partials/inline-tabs/inline-tab/index.ts} +0 -0
- /package/{lib/components/tabs/partials/inline-tabs/inline-tab-body/index.d.ts → src/lib/components/tabs/partials/inline-tabs/inline-tab-body/index.ts} +0 -0
- /package/{lib/components/tabs/partials/inline-tabs/inline-tab-body-host/index.d.ts → src/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/index.ts} +0 -0
- /package/{lib/components/tabs/partials/inline-tabs/inline-tab-content/index.d.ts → src/lib/components/tabs/partials/inline-tabs/inline-tab-content/index.ts} +0 -0
- /package/{lib/components/tabs/partials/inline-tabs/inline-tab-header/index.d.ts → src/lib/components/tabs/partials/inline-tabs/inline-tab-header/index.ts} +0 -0
- /package/{lib/components/tabs/partials/inline-tabs/inline-tab-label/index.d.ts → src/lib/components/tabs/partials/inline-tabs/inline-tab-label/index.ts} +0 -0
- /package/{lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/index.d.ts → src/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/index.ts} +0 -0
- /package/{lib/components/tabs/partials/nav-tabs/nav-tab-link/index.d.ts → src/lib/components/tabs/partials/nav-tabs/nav-tab-link/index.ts} +0 -0
- /package/{lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/index.d.ts → src/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/index.ts} +0 -0
- /package/{lib/components/tabs/public-api/index.d.ts → src/lib/components/tabs/public-api/index.ts} +0 -0
- /package/{lib/components/tabs/types/index.d.ts → src/lib/components/tabs/types/index.ts} +0 -0
- /package/{lib/components/tabs/utils/index.d.ts → src/lib/components/tabs/utils/index.ts} +0 -0
- /package/{lib/services/index.d.ts → src/lib/services/index.ts} +0 -0
- /package/{lib/types/index.d.ts → src/lib/types/index.ts} +0 -0
- /package/{lib/utils/index.d.ts → src/lib/utils/index.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ethlete-cdk.mjs","sources":["../../../../libs/cdk/src/lib/components/icons/chevron-icon/chevron-icon.component.ts","../../../../libs/cdk/src/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.constants.ts","../../../../libs/cdk/src/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.ts","../../../../libs/cdk/src/lib/components/accordion/partials/accordion-label/accordion-label.directive.ts","../../../../libs/cdk/src/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.constants.ts","../../../../libs/cdk/src/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.ts","../../../../libs/cdk/src/lib/components/accordion/components/accordion/accordion.component.animations.ts","../../../../libs/cdk/src/lib/components/accordion/components/accordion/accordion.component.constants.ts","../../../../libs/cdk/src/lib/components/accordion/components/accordion/accordion.component.ts","../../../../libs/cdk/src/lib/components/accordion/components/accordion/accordion.component.html","../../../../libs/cdk/src/lib/components/accordion/components/accordion-group/accordion-group.component.ts","../../../../libs/cdk/src/lib/components/accordion/components/accordion-group/accordion-group.component.html","../../../../libs/cdk/src/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.ts","../../../../libs/cdk/src/lib/components/accordion/accordion.imports.ts","../../../../libs/cdk/src/lib/components/bracket/directives/bracket-match/bracket-match.directive.ts","../../../../libs/cdk/src/lib/components/bracket/partials/bracket-match/bracket-match.component.ts","../../../../libs/cdk/src/lib/components/bracket/partials/bracket-match/bracket-match.component.html","../../../../libs/cdk/src/lib/components/bracket/directives/bracket-round/bracket-round.directive.ts","../../../../libs/cdk/src/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.ts","../../../../libs/cdk/src/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.html","../../../../libs/cdk/src/lib/components/bracket/constants/bracket.constants.ts","../../../../libs/cdk/src/lib/components/bracket/utils/bracket-config.utils.ts","../../../../libs/cdk/src/lib/components/bracket/utils/bracket.utils.ts","../../../../libs/cdk/src/lib/components/bracket/components/bracket/bracket.component.ts","../../../../libs/cdk/src/lib/components/bracket/components/bracket/bracket.component.html","../../../../libs/cdk/src/lib/components/bracket/bracket.imports.ts","../../../../libs/cdk/src/lib/components/button/directives/button/button.directive.ts","../../../../libs/cdk/src/lib/components/button/components/button/button.component.ts","../../../../libs/cdk/src/lib/components/button/components/button/button.component.html","../../../../libs/cdk/src/lib/components/button/directives/query-button/query-button.directive.ts","../../../../libs/cdk/src/lib/components/button/components/query-button/query-button.component.ts","../../../../libs/cdk/src/lib/components/button/components/query-button/query-button.component.html","../../../../libs/cdk/src/lib/components/button/button.imports.ts","../../../../libs/cdk/src/lib/components/carousel/et-carousel-item.directive.ts","../../../../libs/cdk/src/lib/components/carousel/carousel.directive.ts","../../../../libs/cdk/src/lib/components/carousel/carousel.component.ts","../../../../libs/cdk/src/lib/components/carousel/controls/carousel-item-nav.directive.ts","../../../../libs/cdk/src/lib/components/carousel/controls/carousel-item-nav.component.ts","../../../../libs/cdk/src/lib/components/carousel/controls/carousel-next-button.directive.ts","../../../../libs/cdk/src/lib/components/carousel/controls/carousel-previous-button.directive.ts","../../../../libs/cdk/src/lib/components/carousel/controls/carousel-toggle-auto-play-button.directive.ts","../../../../libs/cdk/src/lib/components/carousel/et-carousel-item.component.ts","../../../../libs/cdk/src/lib/components/carousel/carousel.imports.ts","../../../../libs/cdk/src/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.ts","../../../../libs/cdk/src/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.ts","../../../../libs/cdk/src/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.ts","../../../../libs/cdk/src/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.ts","../../../../libs/cdk/src/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.ts","../../../../libs/cdk/src/lib/components/filter/rich-filter/rich-filter.imports.ts","../../../../libs/cdk/src/lib/components/forms/services/default-validator-errors.service.ts","../../../../libs/cdk/src/lib/components/forms/services/form-field-state.service.ts","../../../../libs/cdk/src/lib/components/forms/services/form-group-state.service.ts","../../../../libs/cdk/src/lib/components/forms/services/input-state.service.ts","../../../../libs/cdk/src/lib/components/forms/components/label/components/label/label.component.ts","../../../../libs/cdk/src/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/input/input.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/native-input-ref/native-input-ref.directive.ts","../../../../libs/cdk/src/lib/components/forms/utils/decorated-form-field.base.ts","../../../../libs/cdk/src/lib/components/forms/directives/input-prefix/input-prefix.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/input-suffix/input-suffix.directive.ts","../../../../libs/cdk/src/lib/components/forms/utils/input.base.ts","../../../../libs/cdk/src/lib/components/forms/utils/decorated-input.base.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.html","../../../../libs/cdk/src/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/static-form-field/static-form-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/writeable-input/writeable-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/error/components/error/error.component.ts","../../../../libs/cdk/src/lib/components/forms/components/error/components/error/error.component.html","../../../../libs/cdk/src/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.ts","../../../../libs/cdk/src/lib/components/forms/directives/static-form-group/static-form-group.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/checkbox.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/date-input/date-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/date-input/date-input.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/date-input/date-input.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/directives/date-time-input/date-time-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/date-time-input/date-time-input.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/date-time-input/date-time-input.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/directives/email-input/email-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/email-input/email-input.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/email-input/email-input.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/components/input-field/input-field.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/number-input/number-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/number-input/number-input.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/number-input/number-input.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/directives/password-input/password-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/password-input/password-input.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/password-input/password-input.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/directives/search-input/search-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/search-input/search-input.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/search-input/search-input.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/directives/text-input/text-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/text-input/text-input.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/text-input/text-input.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/textarea-input/textarea-input.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/textarea-input/textarea-input.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/directives/time-input/time-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/time-input/time-input.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/components/time-input/time-input.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/if-supports-show-picker/if-supports-show-picker.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/show-picker-trigger/show-picker-trigger.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/if-input-empty/if-input-empty.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/if-input-filled/if-input-filled.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.ts","../../../../libs/cdk/src/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.html","../../../../libs/cdk/src/lib/components/forms/components/input/input.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/label/label.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/radio/directives/radio/radio.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/radio/components/radio/radio.component.ts","../../../../libs/cdk/src/lib/components/forms/components/radio/components/radio/radio.component.html","../../../../libs/cdk/src/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/radio/components/radio-field/radio-field.component.ts","../../../../libs/cdk/src/lib/components/forms/components/radio/components/radio-group/radio-group.component.ts","../../../../libs/cdk/src/lib/components/forms/components/radio/radio.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.ts","../../../../libs/cdk/src/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.html","../../../../libs/cdk/src/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.ts","../../../../libs/cdk/src/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.ts","../../../../libs/cdk/src/lib/components/forms/components/segmented-button/segmented-button.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/select/directives/select-field/select-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/select-field/select-field.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/types/overlay.types.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/utils/overlay-ref.ts","../../../../libs/cdk/src/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/constants/combobox.constants.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/private/combobox.private.errors.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/private/combobox.private.types.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.html","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.html","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.html","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/combobox.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/combobox/utils/combobox-config.utils.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.html","../../../../libs/cdk/src/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/native-select/native-select.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/select/directives/select/select.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/select/components/select/select.component.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/select/components/select/select.component.html","../../../../libs/cdk/src/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.ts","../../../../libs/cdk/src/lib/components/forms/components/select/components/select/select.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.ts","../../../../libs/cdk/src/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.ts","../../../../libs/cdk/src/lib/components/forms/components/selection-list/selection-list.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.ts","../../../../libs/cdk/src/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.html","../../../../libs/cdk/src/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.ts","../../../../libs/cdk/src/lib/components/forms/components/slide-toggle/slide-toggle.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/slider/components/slider/slider.component.ts","../../../../libs/cdk/src/lib/components/forms/components/slider/components/slider/slider.component.html","../../../../libs/cdk/src/lib/components/forms/components/slider/components/slider-field/slider-field.component.ts","../../../../libs/cdk/src/lib/components/forms/components/slider/slider.imports.ts","../../../../libs/cdk/src/lib/components/icons/icon.imports.ts","../../../../libs/cdk/src/lib/components/masonry/partials/masonry-item/masonry-item.component.ts","../../../../libs/cdk/src/lib/components/masonry/components/masonry/masonry.component.ts","../../../../libs/cdk/src/lib/components/masonry/masonry.imports.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/constants/bottom-sheet.constants.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet-config.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet-ref.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet.utils.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.ts","../../../../libs/cdk/src/lib/services/swipe-handler.service.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/bottom-sheet/bottom-sheet.imports.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/constants/dialog.constants.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/utils/dialog-config.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/utils/dialog-ref.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/utils/dialog.utils.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/services/dialog-base.service.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/services/dialog.service.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/dialog.imports.ts","../../../../libs/cdk/src/lib/components/scrollable/directives/scrollable-ignore-child/scrollable-ignore-child.directive.ts","../../../../libs/cdk/src/lib/components/scrollable/directives/scrollable-is-active-child/scrollable-is-active-child.directive.ts","../../../../libs/cdk/src/lib/components/scrollable/directives/scrollable-loading-template/scrollable-loading-template.directive.ts","../../../../libs/cdk/src/lib/components/scrollable/components/scrollable/scrollable.component.ts","../../../../libs/cdk/src/lib/components/scrollable/components/scrollable/scrollable.component.html","../../../../libs/cdk/src/lib/components/overlay/components/menu/components/menu-container/menu-container.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/components/menu-container/menu-container.component.html","../../../../libs/cdk/src/lib/components/overlay/components/menu/directives/menu-trigger/menu-trigger.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/directives/menu-item/menu-item.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/directives/menu-search-template/menu-search-template.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/components/menu/menu.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/components/menu/menu.component.html","../../../../libs/cdk/src/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.html","../../../../libs/cdk/src/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.html","../../../../libs/cdk/src/lib/components/overlay/components/menu/directives/menu-group/menu-group.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/directives/menu-checkbox-group/menu-checkbox-group.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/directives/menu-group-title/menu-group-title.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/directives/menu-radio-group/menu-radio-group.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu.imports.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-stack.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-trigger-base.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/context-menu-trigger.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-errors.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-aim.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-group.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-interface.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-trigger.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-item.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/pointer-focus-tracker.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-base.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-bar.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-item-selectable.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-item-checkbox.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-item-radio.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu-deprecated/menu-module.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/constants/overlay.constants.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/utils/filter-overlay.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/utils/overlay-config.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/utils/overlay-position-builder.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/utils/overlay-router.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/utils/overlay.utils.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/services/overlay.service.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-body/overlay-body.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-header/overlay-header.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-main/overlay-main.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-sidebar-page/overlay-sidebar-page.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/utils/sidebar-overlay.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-back-or-close/overlay-back-or-close.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-footer/overlay-footer.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-header-template/overlay-header-template.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-route-header-template-outlet/overlay-route-header-template-outlet.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-router-link/overlay-router-link.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-router-outlet-disabled-template/overlay-router-outlet-disabled-template.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-shared-route-template/overlay-shared-route-template.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-router-outlet/overlay-router-outlet.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-shared-route-template-outlet/overlay-shared-route-template-outlet.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-sidebar/overlay-sidebar.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/overlay/overlay.imports.ts","../../../../libs/cdk/src/lib/components/overlay/components/toggletip/constants/toggletip.constants.ts","../../../../libs/cdk/src/lib/components/overlay/components/toggletip/utils/toggletip-config.ts","../../../../libs/cdk/src/lib/components/overlay/components/toggletip/utils/toggletip.util.ts","../../../../libs/cdk/src/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.html","../../../../libs/cdk/src/lib/components/overlay/components/toggletip/partials/toggletip-close/toggletip-close.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/toggletip/toggletip.imports.ts","../../../../libs/cdk/src/lib/components/overlay/components/tooltip/constants/tooltip.constants.ts","../../../../libs/cdk/src/lib/components/overlay/components/tooltip/utils/tooltip-config.ts","../../../../libs/cdk/src/lib/components/overlay/components/tooltip/utils/tooltip.util.ts","../../../../libs/cdk/src/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.html","../../../../libs/cdk/src/lib/components/overlay/components/tooltip/tooltip.imports.ts","../../../../libs/cdk/src/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.ts","../../../../libs/cdk/src/lib/components/overlay/services/dynamic-overlay.service.ts","../../../../libs/cdk/src/lib/components/overlay/utils/overlay-dismiss-checker.util.ts","../../../../libs/cdk/src/lib/components/pagination/partials/pagination-link/pagination-link.directive.ts","../../../../libs/cdk/src/lib/components/pagination/services/pagination-head.service.ts","../../../../libs/cdk/src/lib/components/pagination/utils/pagination.util.ts","../../../../libs/cdk/src/lib/components/pagination/components/pagination/pagination.component.ts","../../../../libs/cdk/src/lib/components/pagination/components/pagination/pagination.component.html","../../../../libs/cdk/src/lib/components/pagination/pagination.imports.ts","../../../../libs/cdk/src/lib/components/picture/utils/picture.utils.ts","../../../../libs/cdk/src/lib/components/picture/components/picture/picture.component.ts","../../../../libs/cdk/src/lib/components/picture/components/picture/picture.component.html","../../../../libs/cdk/src/lib/components/progress-spinner/progress-spinner.component.ts","../../../../libs/cdk/src/lib/components/progress-spinner/progress-spinner.component.html","../../../../libs/cdk/src/lib/components/query-error/directives/query-error/query-error.directive.ts","../../../../libs/cdk/src/lib/components/query-error/components/query-error/query-error.component.ts","../../../../libs/cdk/src/lib/components/query-error/components/query-error/query-error.component.html","../../../../libs/cdk/src/lib/components/scrollable/directives/scrollable-placeholder-item-template/scrollable-placeholder-item-template.directive.ts","../../../../libs/cdk/src/lib/components/scrollable/directives/scrollable-placeholder-overlay-template/scrollable-placeholder-overlay-template.directive.ts","../../../../libs/cdk/src/lib/components/scrollable/components/scrollable-placeholder/scrollable-placeholder.component.ts","../../../../libs/cdk/src/lib/components/scrollable/components/scrollable-placeholder/scrollable-placeholder.component.html","../../../../libs/cdk/src/lib/components/scrollable/scrollable.imports.ts","../../../../libs/cdk/src/lib/components/skeleton/components/skeleton/skeleton.component.ts","../../../../libs/cdk/src/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.ts","../../../../libs/cdk/src/lib/components/skeleton/skeleton.imports.ts","../../../../libs/cdk/src/lib/components/table/partials/cells/column-def/column-def.directive.ts","../../../../libs/cdk/src/lib/components/sort/partials/sort/sort.directive.ts","../../../../libs/cdk/src/lib/components/sort/services/sort-header-intl.ts","../../../../libs/cdk/src/lib/components/sort/components/sort-header/sort-header.component.ts","../../../../libs/cdk/src/lib/components/sort/components/sort-header/sort-header.component.html","../../../../libs/cdk/src/lib/components/sort/sort.imports.ts","../../../../libs/cdk/src/lib/components/table/partials/table-busy/table-busy.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.ts","../../../../libs/cdk/src/lib/components/table/components/table/table.component.ts","../../../../libs/cdk/src/lib/components/table/constants/table-data-source.constants.ts","../../../../libs/cdk/src/lib/components/table/partials/cells/cell/cell.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/cells/cell-def/cell-def.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/cells/footer-cell/footer-cell.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/cells/header-cell/header-cell.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/cells/text-column/text-column.component.ts","../../../../libs/cdk/src/lib/components/table/partials/rows/footer-row/footer-row.component.ts","../../../../libs/cdk/src/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/rows/header-row/header-row.component.ts","../../../../libs/cdk/src/lib/components/table/partials/rows/header-row-def/header-row-def.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/rows/no-data-row/no-data-row.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.ts","../../../../libs/cdk/src/lib/components/table/partials/rows/row/row.component.ts","../../../../libs/cdk/src/lib/components/table/partials/rows/row-def/row-def.directive.ts","../../../../libs/cdk/src/lib/components/table/table.imports.ts","../../../../libs/cdk/src/lib/components/table/utils/table-data-source.ts","../../../../libs/cdk/src/lib/components/tabs/animations/tabs.animations.ts","../../../../libs/cdk/src/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.ts","../../../../libs/cdk/src/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.ts","../../../../libs/cdk/src/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.ts","../../../../libs/cdk/src/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.html","../../../../libs/cdk/src/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.ts","../../../../libs/cdk/src/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.ts","../../../../libs/cdk/src/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.html","../../../../libs/cdk/src/lib/components/tabs/utils/active-tab-underline.util.ts","../../../../libs/cdk/src/lib/components/tabs/utils/paginated-tab-header.directive.ts","../../../../libs/cdk/src/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.ts","../../../../libs/cdk/src/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.ts","../../../../libs/cdk/src/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.html","../../../../libs/cdk/src/lib/components/tabs/components/inline-tabs/inline-tabs.component.ts","../../../../libs/cdk/src/lib/components/tabs/components/inline-tabs/inline-tabs.component.html","../../../../libs/cdk/src/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.ts","../../../../libs/cdk/src/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.ts","../../../../libs/cdk/src/lib/components/tabs/components/nav-tabs/nav-tabs.component.ts","../../../../libs/cdk/src/lib/components/tabs/components/nav-tabs/nav-tabs.component.html","../../../../libs/cdk/src/lib/components/tabs/tab.imports.ts","../../../../libs/cdk/src/lib/components/tabs/types/tab-config.types.ts","../../../../libs/cdk/src/lib/utils/floating-ui.utils.ts","../../../../libs/cdk/src/index.ts","../../../../libs/cdk/src/ethlete-cdk.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'et-chevron-icon',\n template: `\n <!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path\n d=\"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"\n fill=\"currentColor\"\n />\n </svg>\n `,\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'et-chevron-icon',\n '[attr.aria-hidden]': 'true',\n },\n})\nexport class ChevronIconComponent {}\n","import { InjectionToken } from '@angular/core';\nimport { AccordionHintWrapperDirective } from './accordion-hint-wrapper.directive';\n\nexport const ACCORDION_HINT_WRAPPER_DIRECTIVE = new InjectionToken<AccordionHintWrapperDirective>(\n 'AccordionHintWrapperDirective',\n);\n","import { CdkPortal } from '@angular/cdk/portal';\nimport { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ACCORDION_HINT_WRAPPER_DIRECTIVE } from './accordion-hint-wrapper.directive.constants';\n\n@Directive({\n selector: 'ng-template[et-accordion-hint-wrapper]',\n providers: [{ provide: ACCORDION_HINT_WRAPPER_DIRECTIVE, useExisting: AccordionHintWrapperDirective }],\n standalone: true,\n})\nexport class AccordionHintWrapperDirective extends CdkPortal {\n constructor(templateRef: TemplateRef<unknown>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[et-accordion-label]',\n standalone: true,\n host: {\n class: 'et-accordion-label',\n },\n})\nexport class AccordionLabelDirective {}\n","import { InjectionToken } from '@angular/core';\nimport { AccordionLabelWrapperDirective } from './accordion-label-wrapper.directive';\n\nexport const ACCORDION_LABEL_WRAPPER_DIRECTIVE = new InjectionToken<AccordionLabelWrapperDirective>(\n 'AccordionLabelWrapperDirective',\n);\n","import { CdkPortal } from '@angular/cdk/portal';\nimport { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ACCORDION_LABEL_WRAPPER_DIRECTIVE } from './accordion-label-wrapper.directive.constants';\n\n@Directive({\n selector: 'ng-template[et-accordion-label-wrapper]',\n providers: [{ provide: ACCORDION_LABEL_WRAPPER_DIRECTIVE, useExisting: AccordionLabelWrapperDirective }],\n standalone: true,\n})\nexport class AccordionLabelWrapperDirective extends CdkPortal {\n constructor(templateRef: TemplateRef<unknown>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const accordionAnimations = {\n animateOpenClose: trigger('animateOpenClose', [\n state('close, void', style({ height: '0px', visibility: 'hidden' })),\n state('open', style({ height: '*', visibility: 'visible' })),\n transition('open <=> close, void => close', animate('300ms cubic-bezier(0.25, 0, 0.1, 1)')),\n ]),\n};\n","import { InjectionToken } from '@angular/core';\nimport { AccordionComponent } from './accordion.component';\n\nexport const ACCORDION_COMPONENT = new InjectionToken<AccordionComponent>('AccordionComponent');\n","import { PortalModule } from '@angular/cdk/portal';\nimport { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n OnInit,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\nimport { LetDirective } from '@ethlete/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ChevronIconComponent } from '../../../icons/chevron-icon';\nimport { ACCORDION_HINT_WRAPPER_DIRECTIVE, AccordionHintWrapperDirective } from '../../partials/accordion-hint-wrapper';\nimport { AccordionLabelDirective } from '../../partials/accordion-label';\nimport {\n ACCORDION_LABEL_WRAPPER_DIRECTIVE,\n AccordionLabelWrapperDirective,\n} from '../../partials/accordion-label-wrapper';\nimport { accordionAnimations } from './accordion.component.animations';\nimport { ACCORDION_COMPONENT } from './accordion.component.constants';\n\nlet accordionId = 0;\n\n@Component({\n selector: 'et-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n providers: [{ provide: ACCORDION_COMPONENT, useExisting: AccordionComponent }],\n imports: [\n LetDirective,\n AsyncPipe,\n NgClass,\n AccordionLabelDirective,\n PortalModule,\n NgTemplateOutlet,\n ChevronIconComponent,\n ],\n animations: [accordionAnimations.animateOpenClose],\n host: {\n class: 'et-accordion',\n },\n})\nexport class AccordionComponent implements OnInit {\n private readonly _id = `et-accordion-${accordionId++}`;\n\n @Input({ transform: booleanAttribute })\n isOpenByDefault = false;\n\n @Input({ transform: booleanAttribute })\n disabled = false;\n\n @Input()\n label = '';\n\n @ContentChild(ACCORDION_LABEL_WRAPPER_DIRECTIVE)\n protected readonly templateLabel!: AccordionLabelWrapperDirective;\n\n @ContentChild(ACCORDION_HINT_WRAPPER_DIRECTIVE)\n protected readonly templateHint!: AccordionHintWrapperDirective;\n\n protected readonly bodyId = `${this._id}-body`;\n protected readonly headerId = `${this._id}-header`;\n\n _isFirst = false;\n _isLast = false;\n\n protected readonly _isOpen$ = new BehaviorSubject(false);\n\n get isOpen$() {\n return this._isOpen$.asObservable();\n }\n\n get isOpen() {\n return this._isOpen$.value;\n }\n\n ngOnInit(): void {\n this._isOpen$.next(this.isOpenByDefault);\n }\n\n toggleAccordionOpen() {\n this._isOpen$.next(!this._isOpen$.value);\n }\n\n open() {\n this._isOpen$.next(true);\n }\n\n close() {\n this._isOpen$.next(false);\n }\n}\n","<div *etLet=\"_isOpen$ | async as isOpen\" class=\"et-accordion-container\">\n <h3 class=\"et-accordion-header-wrapper\">\n <button\n [disabled]=\"disabled\"\n [id]=\"headerId\"\n [attr.aria-controls]=\"bodyId\"\n [attr.aria-expanded]=\"isOpen\"\n [class.et-accordion-has-hint]=\"!!templateHint\"\n (click)=\"toggleAccordionOpen()\"\n class=\"et-accordion-header\"\n type=\"button\"\n >\n <div>\n @if (templateLabel) {\n <ng-template [cdkPortalOutlet]=\"templateLabel\" />\n } @else {\n <span et-accordion-label>{{ label }} </span>\n }\n </div>\n\n @if (templateHint) {\n <ng-template [cdkPortalOutlet]=\"templateHint\" />\n }\n\n <et-chevron-icon />\n </button>\n </h3>\n <div\n [@animateOpenClose]=\"(_isOpen$ | async) ? 'open' : 'close'\"\n [attr.aria-labelledby]=\"headerId\"\n [id]=\"bodyId\"\n class=\"et-accordion-body\"\n role=\"region\"\n >\n <div class=\"et-accordion-body-container\">\n <ng-content />\n </div>\n </div>\n <hr class=\"et-accordion-separator\" />\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\nimport { TypedQueryList, createDestroy } from '@ethlete/core';\nimport { combineLatest, map, pairwise, startWith, switchMap, takeUntil, tap } from 'rxjs';\nimport { ACCORDION_COMPONENT, AccordionComponent } from '../accordion';\n\n@Component({\n selector: 'et-accordion-group',\n templateUrl: './accordion-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'et-accordion-group',\n },\n})\nexport class AccordionGroupComponent implements AfterContentInit {\n private readonly _destroy$ = createDestroy();\n\n @Input({ transform: booleanAttribute })\n autoCloseOthers = false;\n\n @ContentChildren(ACCORDION_COMPONENT)\n private readonly _accordions?: TypedQueryList<AccordionComponent>;\n\n ngAfterContentInit(): void {\n if (!this._accordions) {\n return;\n }\n\n this._accordions.changes\n .pipe(\n startWith(this._accordions),\n map(\n (accordions) =>\n accordions\n ?.toArray()\n .filter((a): a is AccordionComponent => !!a)\n .map((a) => a.isOpen$) ?? [],\n ),\n switchMap((d) => combineLatest(d)),\n pairwise(),\n tap(([prev, curr]) => {\n if (!this.autoCloseOthers) {\n return;\n }\n\n const isOpenedNow = curr.findIndex((a, i) => a && !prev[i]);\n\n if (isOpenedNow === -1) {\n return;\n }\n\n for (const [i, item] of this._accordions\n ?.toArray()\n .filter((a): a is AccordionComponent => !!a)\n .entries() ?? [].entries()) {\n if (i !== isOpenedNow && item.isOpen) {\n item.close();\n }\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n}\n","<ng-content select=\"et-accordion\" />\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[et-accordion-hint]',\n standalone: true,\n host: {\n class: 'et-accordion-hint',\n },\n})\nexport class AccordionHintDirective {}\n","import { AccordionComponent } from './components/accordion';\nimport { AccordionGroupComponent } from './components/accordion-group';\nimport { AccordionHintDirective } from './partials/accordion-hint';\nimport { AccordionHintWrapperDirective } from './partials/accordion-hint-wrapper';\nimport { AccordionLabelDirective } from './partials/accordion-label';\nimport { AccordionLabelWrapperDirective } from './partials/accordion-label-wrapper';\n\nexport const AccordionImports = [\n AccordionHintDirective,\n AccordionHintWrapperDirective,\n AccordionLabelDirective,\n AccordionLabelWrapperDirective,\n AccordionComponent,\n AccordionGroupComponent,\n] as const;\n","import { Directive, inject } from '@angular/core';\nimport { BRACKET_MATCH_ID_TOKEN, BRACKET_TOKEN } from '../../constants';\n\n@Directive({\n standalone: true,\n})\nexport class BracketMatchDirective {\n matchId = inject(BRACKET_MATCH_ID_TOKEN);\n bracket = inject(BRACKET_TOKEN);\n\n match$ = this.bracket.getBracketMatchById(this.matchId);\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { BracketMatchDirective } from '../../directives/bracket-match';\n\n@Component({\n selector: 'et-bracket-match',\n templateUrl: './bracket-match.component.html',\n styleUrls: ['./bracket-match.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'et-bracket-match',\n },\n imports: [AsyncPipe],\n hostDirectives: [BracketMatchDirective],\n})\nexport class BracketMatchComponent {\n matchData = inject(BracketMatchDirective);\n}\n","@if (matchData.match$ | async; as match) {\n {{ match.data.id }}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BRACKET_ROUND_ID_TOKEN, BRACKET_TOKEN } from '../../constants';\n\n@Directive({\n standalone: true,\n})\nexport class BracketRoundDirective {\n roundId = inject(BRACKET_ROUND_ID_TOKEN);\n bracket = inject(BRACKET_TOKEN);\n\n round$ = this.bracket.getBracketRoundById(this.roundId);\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { BracketRoundDirective } from '../../directives/bracket-round';\n\n@Component({\n selector: 'et-bracket-round-header',\n templateUrl: './bracket-round-header.component.html',\n styleUrls: ['./bracket-round-header.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'et-bracket-round-header',\n },\n imports: [AsyncPipe],\n hostDirectives: [BracketRoundDirective],\n})\nexport class BracketRoundHeaderComponent {\n roundData = inject(BracketRoundDirective);\n}\n","@if (roundData.round$ | async; as round) {\n {{ round.name }}\n}\n","import { InjectionToken } from '@angular/core';\nimport { BracketComponent } from '../components/bracket';\nimport { BracketMatchComponent } from '../partials/bracket-match';\nimport { BracketRoundHeaderComponent } from '../partials/bracket-round-header';\nimport { BracketConfig } from '../types';\n\nexport const BRACKET_TOKEN = new InjectionToken<BracketComponent>('BRACKET_TOKEN');\nexport const BRACKET_CONFIG_TOKEN = new InjectionToken<BracketConfig>('BRACKET_CONFIG_TOKEN');\nexport const BRACKET_ROUND_ID_TOKEN = new InjectionToken<string>('BRACKET_ROUND_ID_TOKEN');\nexport const BRACKET_MATCH_ID_TOKEN = new InjectionToken<string>('BRACKET_MATCH_ID_TOKEN');\n\nexport const BRACKET_DEFAULT_CONFIG: BracketConfig = {\n roundHeaderComponent: BracketRoundHeaderComponent,\n matchComponent: BracketMatchComponent,\n} as const;\n","import { BRACKET_CONFIG_TOKEN, BRACKET_DEFAULT_CONFIG } from '../constants';\nimport { BracketConfig } from '../types';\n\nexport const createBracketConfig = (\n globalConfig: Partial<BracketConfig> | null | undefined = {},\n localConfig: Partial<BracketConfig> | null | undefined = {},\n): BracketConfig => ({\n ...BRACKET_DEFAULT_CONFIG,\n ...(globalConfig || {}),\n ...(localConfig || {}),\n});\n\nexport const provideBracketConfig = (config: Partial<BracketConfig> | null | undefined = {}) => {\n return {\n provide: BRACKET_CONFIG_TOKEN,\n useValue: createBracketConfig(config),\n };\n};\n","import { MatchListView, RoundStageStructureWithMatchesView } from '@ethlete/types';\nimport { BracketMatch, BracketRound } from '../types';\n\nlet bracketId = 0;\n\nexport const isUpperBracketMatch = (match: RoundStageStructureWithMatchesView | null | undefined) => {\n if (!match) {\n return false;\n }\n\n return (\n match.round.type === 'winner_bracket' ||\n match.round.type === 'final' ||\n match.round.type === 'normal' ||\n match.round.type === 'reverse_final' ||\n !match.round.type\n );\n};\n\nexport const orderRounds = (rounds: RoundStageStructureWithMatchesView[]) => {\n const normalRounds = orderRoundsByRoundNumber(rounds.filter((r) => r.round.type === 'normal'));\n const winnerRounds = orderRoundsByRoundNumber(rounds.filter((r) => r.round.type === 'winner_bracket'));\n const loserRounds = orderRoundsByRoundNumber(rounds.filter((r) => r.round.type === 'loser_bracket'));\n const finalRounds = rounds.filter((r) => r.round.type === 'final');\n const reverseFinalRounds = rounds.filter((r) => r.round.type === 'reverse_final');\n const thirdPlaceRounds = rounds.filter((r) => r.round.type === 'third_place');\n\n return [...winnerRounds, ...normalRounds, ...finalRounds, ...reverseFinalRounds, ...loserRounds, ...thirdPlaceRounds];\n};\n\nexport const orderRoundsByRoundNumber = (rounds: RoundStageStructureWithMatchesView[]) => {\n return rounds.slice(0).sort((a, b) => {\n if (a.round.number < b.round.number) {\n return -1;\n }\n if (a.round.number > b.round.number) {\n return 1;\n }\n return 0;\n });\n};\n\nexport const normalizeRoundType = (roundType: string | null | undefined) => {\n if (!roundType) {\n return null;\n }\n\n if (\n roundType === 'normal' ||\n roundType === 'winner_bracket' ||\n roundType === 'final' ||\n roundType === 'reverse_final'\n ) {\n return 'upper';\n }\n\n return 'lower';\n};\n\nexport class Bracket {\n get winnerRounds() {\n return this._roundsWithMatches.filter((r) => isUpperBracketMatch(r));\n }\n\n get loserRounds() {\n return this._roundsWithMatches.filter((r) => r.round.type === 'loser_bracket');\n }\n\n get firstWinnerRound() {\n return this.winnerRounds[0] ?? null;\n }\n\n get firstLoserRound() {\n return this.loserRounds[0] ?? null;\n }\n\n get winnerRoundCount() {\n return this.winnerRounds.length;\n }\n\n get loserRoundCount() {\n return this.loserRounds.length;\n }\n\n get bracketSize() {\n return this.firstWinnerRound ? this.firstWinnerRound.matches.length * 2 : 0;\n }\n\n get bracketType() {\n return !this.loserRoundCount ? 'single' : 'double';\n }\n\n get winnerBracketRowCount() {\n return this.firstWinnerRound?.matches.length ?? 0;\n }\n\n get loserBracketRowCount() {\n return this.firstLoserRound?.matches.length ?? 0;\n }\n\n get totalRowCount() {\n return this.winnerBracketRowCount + this.loserBracketRowCount + 1;\n }\n\n get totalColCount() {\n return this.bracketType === 'single'\n ? this.winnerRoundCount\n : this.loserRoundCount + (this.winnerRoundCount - this.loserRoundCount / 2) - 1;\n }\n\n get winnerRowStart() {\n return 1;\n }\n\n get winnerRowEnd() {\n return this.bracketType === 'single' ? this.totalRowCount : this.totalRowCount - this.winnerBracketRowCount;\n }\n\n get loserRowStart() {\n return this.winnerBracketRowCount + 1;\n }\n\n get loserRowEnd() {\n return this.totalRowCount;\n }\n\n get indexOfLooserRoundStart() {\n return this._roundsWithMatches.findIndex((r) => r.round.type === 'loser_bracket');\n }\n\n get looserRowAdditionalRoundCount() {\n if (this.bracketType === 'single') {\n return 0;\n }\n\n const winnerRounds = this._roundsWithMatches.filter((r) => r.round.type === 'winner_bracket');\n const winnerRoundCount = winnerRounds.length;\n const loserRounds = this._roundsWithMatches.filter((r) => r.round.type === 'loser_bracket');\n const loserRoundCount = loserRounds.length;\n\n return loserRoundCount - winnerRoundCount;\n }\n\n get isPartialDoubleElimination() {\n return (\n this.bracketType === 'double' && this.firstWinnerRound?.matches.length === this.firstLoserRound?.matches.length\n );\n }\n\n readonly bracketRounds: BracketRound[];\n readonly id = bracketId++;\n\n private readonly _bracketMatches: BracketMatch[];\n\n constructor(private _roundsWithMatches: RoundStageStructureWithMatchesView[]) {\n this.bracketRounds = this._computeBracket(_roundsWithMatches);\n\n const rounds = this.bracketRounds.map((r) => r.matches);\n const flatMatches: BracketMatch[] = [];\n\n for (const round of rounds) {\n for (const match of round) {\n flatMatches.push(match);\n }\n }\n\n this._bracketMatches = flatMatches;\n }\n\n getRoundById(roundId: string) {\n return this.bracketRounds.find((r) => r.data.id === roundId);\n }\n\n getMatchById(matchId: string) {\n return this._bracketMatches.find((m) => m.data.id === matchId);\n }\n\n private _computeBracket(data: RoundStageStructureWithMatchesView[]) {\n const rounds: BracketRound[] = [];\n\n for (const [index, round] of data.entries()) {\n let relativeIndex = index;\n\n if (index === this.indexOfLooserRoundStart || index > this.indexOfLooserRoundStart) {\n relativeIndex = index - this.indexOfLooserRoundStart;\n }\n\n let previousRound: RoundStageStructureWithMatchesView | null = data[index - 1] ?? null;\n const nextRound: RoundStageStructureWithMatchesView | null = data[index + 1] ?? null;\n\n // Switching to loser bracket should reset the previousRound.\n if (normalizeRoundType(previousRound?.round.type) !== normalizeRoundType(round.round.type)) {\n previousRound = null;\n }\n\n rounds.push(this._transformRound(round, relativeIndex, previousRound, nextRound));\n }\n\n return rounds;\n }\n\n private _transformRound = (\n currentRound: RoundStageStructureWithMatchesView,\n currentRoundIndex: number,\n previousRound: RoundStageStructureWithMatchesView | null,\n nextRound: RoundStageStructureWithMatchesView | null,\n ): BracketRound => {\n const matchCount = currentRound.matches.length;\n const name = currentRound.round.name;\n const isWinnerBracket = isUpperBracketMatch(currentRound);\n const isDoubleElimination = this.bracketType === 'double';\n\n let colStart = 0;\n let colEnd = 0;\n\n let rowStart = isWinnerBracket ? this.winnerRowStart : this.loserRowStart;\n let rowEnd = isWinnerBracket ? this.winnerRowEnd : this.loserRowEnd;\n let firstRoundMatchCount = isWinnerBracket\n ? this.firstWinnerRound?.matches.length\n : this.firstLoserRound?.matches.length;\n\n if (isDoubleElimination) {\n if (isWinnerBracket) {\n if (currentRoundIndex === 0) {\n // The first winner bracket round is always 1 col wide.\n colStart = 1;\n colEnd = 1;\n } else {\n const colStartDouble = currentRoundIndex * 2;\n const colEndDouble = colStartDouble + 1;\n const isSemiFinalRound = currentRound.round.type === 'winner_bracket' && matchCount === 1;\n\n // If the col end is greater than the total looser rounds, then we need to span 2 cols,\n // since the loser bracket will always play 2 rounds per winner bracket round.\n // We also need to span 2 col if the current round is the semi final round AND we have an async start.\n // Async start means that the first winner round's matches length is equal to the first loser round's matches length.\n // This is produced by only showing a part (eg. the last 5 rounds) of a much bigger bracket.\n if (colEndDouble < this.loserRoundCount || (isSemiFinalRound && this.isPartialDoubleElimination)) {\n colStart = colStartDouble;\n\n // We need to add one to the col to create a actual grid span\n colEnd = colEndDouble + 1;\n } else {\n // If the col end is greater than the total looser rounds, then we need to go back to 1 col wide,\n // since this is the point where semi finals, finals (and second chance final) are played\n const overshoot = colEndDouble - this.loserRoundCount;\n let delta = Math.floor(overshoot / 2);\n\n if (this.isPartialDoubleElimination) {\n delta = delta - 1;\n }\n\n colStart = colStartDouble - delta;\n colEnd = colStartDouble - delta;\n\n // If the overshoot is bigger than 1, we need to adjust the row start and end to span over the whole grid,\n // since we are in the final round(s).\n // Overshoot 1 means we are in the semi final round and there is a loser bracket round in this step (the last one).\n if (overshoot > 1) {\n rowStart = 1;\n rowEnd = this.totalRowCount;\n firstRoundMatchCount = this.totalRowCount - 1;\n }\n }\n }\n } else if (currentRound.round.type === 'third_place') {\n const hasSecondChanceFinal = this._roundsWithMatches.some((r) => r.round.type === 'reverse_final');\n\n // Span the third place match form final to second chance final\n if (hasSecondChanceFinal) {\n colStart = currentRoundIndex + 1;\n colEnd = currentRoundIndex + 3;\n } else {\n // Keep the third place match in the same col as the final\n colStart = currentRoundIndex + 1;\n colEnd = currentRoundIndex + 1;\n }\n } else {\n // Loser bracket rounds are always 1 col wide.\n colStart = currentRoundIndex + 1;\n colEnd = currentRoundIndex + 1;\n }\n } else {\n if (currentRound.round.type === 'third_place') {\n // The third place match is always in the same col as the final\n colStart = currentRoundIndex - 1;\n colEnd = currentRoundIndex - 1;\n\n if (this.winnerRowEnd - 1 === 2) {\n // Special case for 2 match brackets\n rowStart = 2;\n rowEnd = 2;\n } else if (this.winnerRowEnd - 1 === 4) {\n // Special case for 4 match brackets\n rowStart = 3;\n rowEnd = 3;\n } else if (this.winnerRowEnd - 1 > 4) {\n // Special case for 8+ match brackets. This will result in it being in the same row as the second semi final match.\n rowStart = (this.winnerRowEnd - 1) / 2 + (this.winnerRowEnd - 1) / 2 / 2;\n rowEnd = this.winnerRowEnd;\n }\n } else {\n // All other single elimination rounds are always 1 col wide.\n colStart = currentRoundIndex;\n colEnd = currentRoundIndex;\n }\n }\n\n const matches = currentRound.matches.map((match, matchIndex) => {\n return this._transformMatch(\n match,\n matchIndex,\n rowStart,\n matchCount,\n firstRoundMatchCount ?? 0,\n previousRound,\n nextRound,\n currentRound,\n currentRoundIndex,\n );\n });\n\n return {\n matchCount,\n name,\n matches,\n data: currentRound.round,\n\n row: {\n start: rowStart,\n end: rowEnd,\n },\n column: {\n start: colStart,\n end: colEnd,\n },\n };\n };\n\n private _transformMatch = (\n match: MatchListView,\n matchIndex: number,\n roundRowStart: number,\n matchCount: number,\n firstRoundMatchCount: number,\n previousRound: RoundStageStructureWithMatchesView | null,\n nextRound: RoundStageStructureWithMatchesView | null,\n currentRound: RoundStageStructureWithMatchesView | null,\n currentRoundIndex: number,\n ): BracketMatch => {\n const diff = firstRoundMatchCount / matchCount;\n\n let rowStart = roundRowStart + matchIndex * diff;\n let rowEnd = rowStart + diff;\n\n if (currentRound?.round.type === 'third_place' && this.bracketType === 'single') {\n // Special case for 8+ single elimination brackets. This will result in the current match being in the same row as the second semi final match.\n if (this.winnerRowEnd - 1 > 4) {\n rowStart = (this.winnerRowEnd - 1) / 2;\n rowEnd = this.winnerRowEnd - 1;\n }\n }\n\n let roundsSameSize = previousRound?.matches.length === matchCount;\n let logicalNextRound: RoundStageStructureWithMatchesView | null = null;\n\n if (\n (currentRound?.round.type === 'loser_bracket' && !nextRound) ||\n (currentRound?.round.type === 'loser_bracket' && nextRound?.round.type === 'third_place')\n ) {\n const next = this._roundsWithMatches[currentRoundIndex - this.looserRowAdditionalRoundCount + 1];\n\n if (next) {\n // Transition from last round of looser bracket to semi final round of winner bracket\n logicalNextRound = next;\n }\n } else if (\n ((currentRound && isUpperBracketMatch(currentRound)) || !currentRound?.round.type) &&\n nextRound?.round.type === 'loser_bracket'\n ) {\n // The last winner round (final) does not have a next round, but the next round is the first looser round.\n logicalNextRound = null;\n } else {\n logicalNextRound = nextRound;\n }\n\n const previousMatchA =\n (roundsSameSize ? previousRound?.matches[matchIndex]?.id : previousRound?.matches[matchIndex * 2]?.id) ?? null;\n let previousMatchB = previousRound?.matches[matchIndex * 2 + 1]?.id ?? null;\n\n // previousMatchB could be the last loser bracket match\n if (!previousMatchB && currentRound && isUpperBracketMatch(currentRound)) {\n const matchB = this.loserRounds[currentRoundIndex + this.looserRowAdditionalRoundCount - 1]?.matches[0];\n\n if (this.loserRounds.length === currentRoundIndex + this.looserRowAdditionalRoundCount && matchB) {\n previousMatchB = matchB.id;\n roundsSameSize = false;\n }\n }\n\n const nextMatch = logicalNextRound?.matches[Math.floor(matchIndex / 2)]?.id ?? null;\n\n let previousRoundMatches = null;\n\n if (previousRound) {\n if (roundsSameSize && previousMatchA) {\n // 1 match to 1 match\n previousRoundMatches = {\n roundId: previousRound.round.id,\n matchIds: [previousMatchA],\n };\n } else if (previousMatchA && previousMatchB) {\n // 2 matches to 1 match\n previousRoundMatches = {\n roundId: previousRound.round.id,\n matchIds: [previousMatchA, previousMatchB],\n };\n }\n }\n\n const nextRoundMatch =\n nextMatch && logicalNextRound\n ? {\n roundId: logicalNextRound.round.id,\n matchId: nextMatch,\n }\n : null;\n\n return {\n row: {\n start: rowStart,\n end: rowEnd,\n },\n data: match,\n\n previousMatches: currentRound?.round.type !== 'third_place' ? previousRoundMatches : null,\n nextMatch: currentRound?.round.type !== 'third_place' ? nextRoundMatch : null,\n };\n };\n}\n","import { ComponentPortal, ComponentType, PortalModule } from '@angular/cdk/portal';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n TrackByFunction,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { LetDirective, Memo } from '@ethlete/core';\nimport { RoundStageStructureWithMatchesView } from '@ethlete/types';\nimport { BehaviorSubject, map } from 'rxjs';\nimport { BRACKET_CONFIG_TOKEN, BRACKET_MATCH_ID_TOKEN, BRACKET_ROUND_ID_TOKEN, BRACKET_TOKEN } from '../../constants';\nimport { BracketConfig, BracketMatch, BracketRound } from '../../types';\nimport { Bracket, createBracketConfig, orderRounds } from '../../utils';\nimport { ConnectedMatches } from './bracket.component.types';\n\n@Component({\n selector: 'et-bracket',\n templateUrl: './bracket.component.html',\n styleUrls: ['./bracket.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, LetDirective, PortalModule, AsyncPipe],\n host: {\n class: 'et-bracket',\n },\n providers: [\n {\n provide: BRACKET_TOKEN,\n useExisting: BracketComponent,\n },\n ],\n})\nexport class BracketComponent {\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _bracketConfig = inject(BRACKET_CONFIG_TOKEN, { optional: true });\n private _injector = inject(Injector);\n\n @Input()\n get itemWith() {\n return this._itemWith;\n }\n set itemWith(v: string) {\n this._itemWith = v;\n\n this._elementRef.nativeElement.style.setProperty('--_bracket-item-width', v);\n }\n private _itemWith = '200px';\n\n @Input()\n get itemHeight() {\n return this._itemHeight;\n }\n set itemHeight(v: string) {\n this._itemHeight = v;\n this._elementRef.nativeElement.style.setProperty('--_bracket-item-height', v);\n }\n private _itemHeight = '100px';\n\n @Input()\n get roundHeaderHeight() {\n return this._roundHeaderHeight;\n }\n set roundHeaderHeight(v: string) {\n this._roundHeaderHeight = v;\n this._elementRef.nativeElement.style.setProperty('--_round-header-height', v);\n }\n private _roundHeaderHeight = '50px';\n\n @Input()\n get upperLowerBracketGap() {\n return this._upperLowerBracketGap;\n }\n set upperLowerBracketGap(v: string) {\n this._upperLowerBracketGap = v;\n this._elementRef.nativeElement.style.setProperty('--_upper-lower-bracket-gap', v);\n }\n private _upperLowerBracketGap = '0px';\n\n @Input()\n get columnGap() {\n return this._columnGap;\n }\n set columnGap(v: string) {\n this._columnGap = v;\n this._elementRef.nativeElement.style.setProperty('--_bracket-column-gap', v);\n }\n private _columnGap!: string;\n\n @Input()\n get rowGap() {\n return this._rowGap;\n }\n set rowGap(v: string) {\n this._rowGap = v;\n this._elementRef.nativeElement.style.setProperty('--_bracket-row-gap', v);\n }\n private _rowGap!: string;\n\n @Input()\n get roundsWithMatches() {\n return this._roundsWithMatches;\n }\n set roundsWithMatches(v: RoundStageStructureWithMatchesView[] | null | undefined) {\n this._roundsWithMatches = v;\n\n if (!v || v.length === 0) {\n this._bracket$.next(null);\n this._roundsWithMatches = null;\n } else {\n const sortedRounds = orderRounds(v);\n\n this._bracket$.next(new Bracket(sortedRounds));\n this._roundsWithMatches = sortedRounds;\n }\n }\n private _roundsWithMatches!: RoundStageStructureWithMatchesView[] | null | undefined;\n\n @Input()\n get componentConfig() {\n return this._componentConfig;\n }\n set componentConfig(v: BracketConfig | null) {\n this._componentConfig = v;\n this._config = createBracketConfig(this._bracketConfig, v);\n }\n private _componentConfig: BracketConfig | null = null;\n\n @HostBinding('attr.has-round-headers')\n get hasRoundHeaders() {\n return !!this._config?.roundHeaderComponent;\n }\n\n protected _config = createBracketConfig(this._componentConfig, this._bracketConfig);\n protected _bracket$ = new BehaviorSubject<Bracket | null>(null);\n\n trackByRound: TrackByFunction<BracketRound> = (_, round) => round.data.id;\n trackByMatch: TrackByFunction<BracketMatch> = (_, match) => match.data.id;\n\n getBracketMatchById(id: string) {\n return this._bracket$.pipe(map((bracket) => bracket?.getMatchById(id) ?? null));\n }\n\n getBracketRoundById(id: string) {\n return this._bracket$.pipe(map((bracket) => bracket?.getRoundById(id) ?? null));\n }\n\n @Memo({\n resolver: (match: BracketMatch, bracket: Bracket) =>\n `${match.data.id}-${match.previousMatches?.roundId ?? null} ${bracket.id}`,\n })\n protected getConnectedMatches(match: BracketMatch, bracket: Bracket): ConnectedMatches {\n const previousMatches = this._getPreviousMatches(match, bracket);\n const nextMatch = this._getNextMatch(match, bracket);\n\n return {\n previousMatches,\n nextMatch,\n };\n }\n\n @Memo({\n resolver: (currentMatch: BracketMatch, nextMatch: BracketMatch | null) =>\n `${currentMatch.data.id}-${nextMatch?.previousMatches?.roundId ?? null}`,\n })\n protected getChildConnectorShape(currentMatch: BracketMatch, nextMatch: BracketMatch | null) {\n if (!nextMatch) {\n return null;\n }\n\n const nextMatchPreviousMatches = nextMatch.previousMatches?.matchIds;\n\n if (!nextMatchPreviousMatches) {\n return null;\n }\n\n const nextMatchPreviousMatchA = nextMatchPreviousMatches[0];\n const nextMatchPreviousMatchB = nextMatchPreviousMatches[1];\n\n if (nextMatchPreviousMatches.length === 1) {\n return 'straight';\n }\n\n if (currentMatch.data.id === nextMatchPreviousMatchA) {\n return 'down';\n }\n\n if (currentMatch.data.id === nextMatchPreviousMatchB) {\n return 'up';\n }\n\n return null;\n }\n\n @Memo({\n resolver: (roundIndex: number, bracket: Bracket) => `${roundIndex}-${bracket.id}`,\n })\n protected getLineMultiAfter(roundIndex: number, bracket: Bracket) {\n const isDoubleElimination = bracket.bracketType === 'double';\n const currentRound = bracket.bracketRounds[roundIndex];\n const nextRound = bracket.bracketRounds[roundIndex + 1];\n\n // for connecting the last looser match and the respective semi final winner match\n if (\n isDoubleElimination &&\n (!nextRound || nextRound.data.type === 'third_place') &&\n currentRound?.data.type === 'loser_bracket'\n ) {\n return bracket.totalRowCount - 1;\n }\n\n if (!nextRound) {\n return 1;\n }\n\n if (nextRound.matches.length === currentRound?.matches.length) {\n return 1;\n }\n\n if (!isDoubleElimination) {\n return 2 ** roundIndex;\n } else {\n let rndIndex = roundIndex;\n\n if (currentRound?.data.type === 'loser_bracket') {\n const totalWinnerRounds = bracket.winnerRoundCount;\n const looserRoundIndex =\n currentRound.data.type === 'loser_bracket' ? roundIndex - totalWinnerRounds : roundIndex;\n\n rndIndex = looserRoundIndex / 2;\n }\n\n return 2 ** rndIndex;\n }\n }\n\n @Memo({\n resolver: (\n affectedRound: BracketRound | null,\n previousRound: BracketRound | null,\n currentRound: BracketRound | null,\n nextRound: BracketRound | null,\n bracket: Bracket,\n ) =>\n `${affectedRound?.data.id} ${previousRound?.data.id} ${currentRound?.data.id} ${nextRound?.data.id} ${bracket.id}`,\n })\n protected getLineSpan(\n affectedRound: BracketRound | null,\n previousRound: BracketRound | null,\n currentRound: BracketRound | null,\n nextRound: BracketRound | null,\n bracket: Bracket,\n ) {\n if (!affectedRound) {\n return 0;\n }\n\n // There is never a connection to the third place match\n if (nextRound?.data.type === 'third_place') {\n return 0;\n }\n\n if (bracket.isPartialDoubleElimination) {\n if (affectedRound === nextRound && nextRound.data.type === 'final') {\n return 2;\n } else if (affectedRound === currentRound && currentRound?.data.type === 'final') {\n return 0;\n } else if (affectedRound === previousRound && currentRound?.data.type === 'final') {\n return 0;\n }\n }\n\n return affectedRound.column.end - affectedRound.column.start;\n }\n\n @Memo({\n resolver: (round: BracketRound) => `${round.data.id}`,\n })\n protected createRoundPortal(round: BracketRound, component: ComponentType<unknown>) {\n const injector = Injector.create({\n providers: [\n {\n provide: BRACKET_ROUND_ID_TOKEN,\n useValue: round.data.id,\n },\n ],\n parent: this._injector,\n });\n\n const portal = new ComponentPortal(component, null, injector);\n\n return portal;\n }\n\n @Memo({\n resolver: (match: BracketMatch) => `${match.data.id}`,\n })\n protected createMatchPortal(match: BracketMatch, component: ComponentType<unknown>) {\n const injector = Injector.create({\n providers: [\n {\n provide: BRACKET_MATCH_ID_TOKEN,\n useValue: match.data.id,\n },\n ],\n parent: this._injector,\n });\n\n const portal = new ComponentPortal(component, null, injector);\n\n return portal;\n }\n\n @Memo({ resolver: (id: string, bracket: Bracket) => `${id}-${bracket.id}` })\n private _getRoundById(id: string, bracket: Bracket) {\n return bracket?.bracketRounds.find((round) => round.data.id === id) ?? null;\n }\n\n @Memo({\n resolver: (match: BracketMatch, bracket: Bracket) =>\n `${match.data.id}-${match.previousMatches?.roundId ?? null} ${bracket.id}`,\n })\n private _getPreviousMatches(match: BracketMatch, bracket: Bracket) {\n if (!match.previousMatches) {\n return null;\n }\n\n const { roundId, matchIds } = match.previousMatches;\n\n const round = this._getRoundById(roundId, bracket);\n\n return matchIds.map((matchId: string) => {\n return round?.matches.find((match) => match.data.id === matchId) ?? null;\n });\n }\n\n @Memo({\n resolver: (match: BracketMatch, bracket: Bracket) =>\n `${match.data.id}-${match.previousMatches?.roundId ?? null} ${bracket.id}`,\n })\n private _getNextMatch(match: BracketMatch, bracket: Bracket) {\n if (!match.nextMatch) {\n return null;\n }\n\n const { roundId, matchId } = match.nextMatch;\n\n const round = this._getRoundById(roundId, bracket);\n\n return round?.matches.find((match) => match.data.id === matchId) ?? null;\n }\n}\n","@if (_bracket$ | async; as bracket) {\n @for (round of bracket.bracketRounds; track trackByRound(roundIndex, round); let roundIndex = $index) {\n @if (_config.roundHeaderComponent) {\n <div\n [style.--_cs]=\"round.column.start\"\n [style.--_ce]=\"round.column.end\"\n [style.--_rs]=\"\n round.data.type === 'loser_bracket' || round.data.type === 'third_place'\n ? round.row.start + 1\n : round.row.start\n \"\n [attr.special-align-end]=\"\n round.data.type === 'third_place' &&\n bracket.bracketType === 'single' &&\n bracket.firstWinnerRound &&\n bracket.firstWinnerRound.matches.length <= 4\n ? 'true'\n : 'false'\n \"\n [attr.is-loser-round-header]=\"\n (round.data.type === 'loser_bracket' || round.data.type === 'third_place') && bracket.bracketType === 'double'\n \"\n class=\"et-bracket-round\"\n >\n <ng-container *cdkPortalOutlet=\"createRoundPortal(round, _config.roundHeaderComponent)\" />\n </div>\n }\n <ng-container *etLet=\"bracket.bracketRounds[roundIndex - 1] ?? null as lastRound\">\n <ng-container *etLet=\"bracket.bracketRounds[roundIndex + 1] ?? null as nextRound\">\n @for (match of round.matches; track trackByMatch(matchIndex, match); let matchIndex = $index) {\n @if (getConnectedMatches(match, bracket); as connectedMatches) {\n <div\n [style.--_cs]=\"round.column.start\"\n [style.--_ce]=\"round.column.end\"\n [style.--_rs]=\"\n round.data.type === 'loser_bracket' || round.data.type === 'third_place'\n ? match.row.start + (_config.roundHeaderComponent ? 2 : 0)\n : match.row.start + (_config.roundHeaderComponent ? 1 : 0)\n \"\n [style.--_re]=\"\n round.data.type === 'loser_bracket' || round.data.type === 'third_place'\n ? match.row.end + (_config.roundHeaderComponent ? 2 : 0)\n : match.row.end + (_config.roundHeaderComponent ? 1 : 0)\n \"\n [style.--_line-multi-after]=\"getLineMultiAfter(roundIndex, bracket)\"\n [attr.et-has-parents]=\"!!connectedMatches.previousMatches?.length\"\n [attr.et-has-child]=\"!!connectedMatches.nextMatch\"\n [attr.et-child-connector-shape]=\"getChildConnectorShape(match, connectedMatches.nextMatch)\"\n [attr.line-span-before]=\"getLineSpan(lastRound, lastRound, round, nextRound, bracket)\"\n [attr.line-span-current]=\"getLineSpan(round, lastRound, round, nextRound, bracket)\"\n [attr.line-span-after]=\"getLineSpan(nextRound, lastRound, round, nextRound, bracket)\"\n [attr.is-first-loser-round-match]=\"\n (round.data.type === 'loser_bracket' || round.data.type === 'third_place') && matchIndex === 0\n \"\n [attr.is-last-lower-bracket-match]=\"\n round.data.type === 'loser_bracket' &&\n (roundIndex === bracket.bracketRounds.length - 1 || nextRound?.data?.type === 'third_place')\n \"\n class=\"et-bracket-match\"\n >\n <ng-container *cdkPortalOutlet=\"createMatchPortal(match, _config.matchComponent)\" />\n </div>\n }\n }\n </ng-container>\n </ng-container>\n }\n}\n","import { BracketComponent } from './components/bracket';\nimport { BracketMatchComponent } from './partials/bracket-match';\nimport { BracketRoundHeaderComponent } from './partials/bracket-round-header';\n\nexport const BracketImports = [BracketComponent, BracketMatchComponent, BracketRoundHeaderComponent] as const;\n","import { Directive, ElementRef, Input, booleanAttribute, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { signalHostAttributes, signalHostClasses } from '@ethlete/core';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\n\ntype ButtonType = 'button' | 'submit' | 'reset' | 'menu';\n\n@Directive({\n standalone: true,\n exportAs: 'etButton',\n})\nexport class ButtonDirective {\n readonly isButton = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement.tagName === 'BUTTON';\n readonly isAnchor = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement.tagName === 'A';\n\n @Input()\n get disabled(): boolean {\n return this._disabled$.value;\n }\n set disabled(value: unknown) {\n this._disabled$.next(booleanAttribute(value));\n }\n get disabled$(): Observable<boolean> {\n return this._disabled$.asObservable();\n }\n private _disabled$ = new BehaviorSubject(false);\n\n @Input()\n get type(): ButtonType {\n return this._type$.value;\n }\n set type(value: ButtonType) {\n this._type$.next(value);\n }\n get type$(): Observable<ButtonType> {\n return this._type$.asObservable();\n }\n private _type$ = new BehaviorSubject<ButtonType>('button');\n\n @Input()\n get pressed(): boolean {\n return this._pressed$.value;\n }\n set pressed(value: unknown) {\n this._pressed$.next(booleanAttribute(value));\n }\n private _pressed$ = new BehaviorSubject(false);\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'disabled aria-disabled': toSignal(this.disabled$),\n 'aria-pressed': toSignal(this._pressed$),\n\n ...(this.isAnchor ? { tabindex: toSignal(this.disabled$.pipe(map((disabled) => (disabled ? -1 : 0)))) } : {}),\n ...(this.isButton ? { type: toSignal(this.type$) } : {}),\n });\n\n readonly hostClassBindings = signalHostClasses({\n 'et-pressed': toSignal(this._pressed$),\n });\n\n _removeDisabledBindings() {\n this.hostAttributeBindings.remove('disabled aria-disabled');\n }\n\n _removeTabIndexBindings() {\n this.hostAttributeBindings.remove('tabindex');\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { ButtonDirective } from '../../directives/button';\n\n@Component({\n selector: '[et-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [{ directive: ButtonDirective, inputs: ['disabled', 'type', 'pressed'] }],\n host: {\n class: 'et-button',\n },\n})\nexport class ButtonComponent {\n protected button = inject(ButtonDirective);\n}\n","<span class=\"et-button-content\">\n <span class=\"et-button-text\">\n <ng-content />\n </span>\n</span>\n","import { booleanAttribute, Directive, ElementRef, inject, Input } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { createDestroy, signalHostAttributes } from '@ethlete/core';\nimport {\n AnyQuery,\n AnyQueryCollection,\n extractQuery,\n isQueryStateFailure,\n isQueryStateLoading,\n isQueryStateSuccess,\n} from '@ethlete/query';\nimport { BehaviorSubject, combineLatest, map, of, skip, switchMap, takeUntil } from 'rxjs';\nimport { ButtonDirective } from '../button';\n\nconst CLASSES = {\n loading: 'et-query-button--loading',\n success: 'et-query-button--success',\n failure: 'et-query-button--failure',\n};\n\n@Directive({\n standalone: true,\n exportAs: 'etQueryButton',\n})\nexport class QueryButtonDirective {\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _destroy$ = createDestroy();\n private readonly _button = inject(ButtonDirective);\n\n private _cleanupTimeout: number | null = null;\n\n readonly showSuccess$ = new BehaviorSubject(false);\n readonly showFailure$ = new BehaviorSubject(false);\n readonly didLoadOnce$ = new BehaviorSubject(false);\n readonly isLoading$ = new BehaviorSubject(false);\n\n @Input({ transform: booleanAttribute })\n get skipSuccess(): boolean {\n return this._skipSuccess;\n }\n set skipSuccess(value: boolean) {\n this._skipSuccess = value;\n }\n private _skipSuccess = false;\n\n @Input({ transform: booleanAttribute })\n get skipFailure(): boolean {\n return this._skipFailure;\n }\n set skipFailure(value: boolean) {\n this._skipFailure = value;\n }\n private _skipFailure = false;\n\n @Input({ transform: booleanAttribute })\n get skipLoading(): boolean {\n return this._skipLoading;\n }\n set skipLoading(value: boolean) {\n this._skipLoading = value;\n }\n private _skipLoading = false;\n\n @Input()\n get query() {\n return this._query$.value;\n }\n set query(v: AnyQuery | AnyQueryCollection | null) {\n this._query$.next(v);\n\n const classList = this._elementRef.nativeElement.classList;\n\n if (this._cleanupTimeout !== null) {\n window.clearTimeout(this._cleanupTimeout);\n }\n\n classList.remove(CLASSES.success);\n classList.remove(CLASSES.failure);\n classList.remove(CLASSES.loading);\n\n const query = extractQuery(this._query$.value);\n\n if (!query) {\n return;\n }\n\n // If the query is already in a success or failure state, skip it.\n // This usually happens when the button just got rendered and the query is already in a success or failure state.\n // In that case we don't want the button to flash the success or failure state.\n const skipFirst = isQueryStateSuccess(query.rawState) || isQueryStateFailure(query.rawState);\n\n query.state$\n .pipe(takeUntil(this._destroy$), takeUntil(this._query$.pipe(skip(1))), skip(skipFirst ? 1 : 0))\n .subscribe((state) => {\n if (isQueryStateLoading(state) && !this._skipLoading) {\n this.isLoading$.next(true);\n classList.add(CLASSES.loading);\n } else {\n this.isLoading$.next(false);\n classList.remove(CLASSES.loading);\n }\n\n if (isQueryStateSuccess(state) && !this._skipSuccess) {\n this.showSuccess$.next(true);\n classList.add(CLASSES.success);\n } else if (isQueryStateFailure(state) && !this._skipFailure) {\n this.showFailure$.next(true);\n classList.add(CLASSES.failure);\n }\n\n if (isQueryStateSuccess(state) || isQueryStateFailure(state)) {\n if (!this.didLoadOnce$.value) {\n this.didLoadOnce$.next(true);\n }\n\n this._cleanupTimeout = window.setTimeout(() => {\n this.showFailure$.next(false);\n this.showSuccess$.next(false);\n classList.remove(CLASSES.success);\n classList.remove(CLASSES.failure);\n }, 1000);\n }\n });\n }\n get query$() {\n return this._query$.asObservable();\n }\n private readonly _query$ = new BehaviorSubject<AnyQuery | AnyQueryCollection | null>(null);\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'disabled aria-disabled': toSignal(\n combineLatest([this._button.disabled$, this.showFailure$, this.showSuccess$, this.isLoading$]).pipe(\n map(([disabled, showFailure, showSuccess, isLoading]) => disabled || showFailure || showSuccess || isLoading),\n ),\n ),\n 'aria-live': toSignal(\n combineLatest([\n this.query$.pipe(\n map((q) => extractQuery(q)),\n switchMap((q) => q?.state$ ?? of(null)),\n ),\n this.didLoadOnce$,\n ]).pipe(\n map(([state, didLoadOnce]) => {\n let value = 'off';\n\n if (isQueryStateLoading(state) || isQueryStateSuccess(state) || isQueryStateFailure(state) || didLoadOnce) {\n value = 'assertive';\n }\n\n return value;\n }),\n ),\n ),\n });\n\n constructor() {\n this._button._removeDisabledBindings();\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { LetDirective } from '@ethlete/core';\nimport { QueryDirective } from '@ethlete/query';\nimport { ButtonDirective } from '../../directives/button';\nimport { QueryButtonDirective } from '../../directives/query-button';\n\n@Component({\n selector: '[et-query-button]',\n templateUrl: './query-button.component.html',\n styleUrls: ['./query-button.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n { directive: QueryButtonDirective, inputs: ['query', 'skipSuccess', 'skipFailure', 'skipLoading'] },\n { directive: ButtonDirective, inputs: ['disabled', 'type', 'pressed'] },\n ],\n imports: [QueryDirective, AsyncPipe, LetDirective],\n host: {\n class: 'et-query-button',\n },\n})\nexport class QueryButtonComponent {\n protected queryButton = inject(QueryButtonDirective);\n}\n","<ng-container *etLet=\"queryButton.showSuccess$ | async as showSuccess\">\n <ng-container *etLet=\"queryButton.showFailure$ | async as showFailure\">\n <span *etQuery=\"queryButton.query$ | async; loading as loading\" class=\"et-button-content et-query-button-content\">\n <span\n [attr.aria-hidden]=\"(loading && !queryButton.skipLoading) || showSuccess || showFailure ? 'true' : undefined\"\n class=\"et-button-text et-query-button-text et-query-button-text--default\"\n >\n <ng-content />\n </span>\n\n @if (loading && !queryButton.skipLoading) {\n <span class=\"et-query-button-loading\"> </span>\n }\n @if (loading && !queryButton.skipLoading) {\n <span class=\"et-button-text et-query-button-text et-query-button-text--loading\">Loading</span>\n }\n\n @if (showSuccess) {\n <span class=\"et-button-text et-query-button-text et-query-button-text--success\">Success</span>\n }\n @if (showFailure) {\n <span class=\"et-button-text et-query-button-text et-query-button-text--failure\">Failure</span>\n }\n </span>\n </ng-container>\n</ng-container>\n","import { ButtonComponent } from './components/button';\nimport { QueryButtonComponent } from './components/query-button';\n\nexport const ButtonImports = [ButtonComponent, QueryButtonComponent] as const;\n","import { Directive, InjectionToken, computed, inject, input, numberAttribute } from '@angular/core';\nimport { signalHostAttributes, signalHostClasses } from '@ethlete/core';\nimport { CAROUSEL_TOKEN } from './carousel.directive';\n\nexport const CAROUSEL_ITEM_TOKEN = new InjectionToken<CarouselItemDirective>('CAROUSEL_ITEM_TOKEN');\n\n@Directive({\n selector: '[etCarouselItem]',\n standalone: true,\n providers: [\n {\n provide: CAROUSEL_ITEM_TOKEN,\n useExisting: CarouselItemDirective,\n },\n ],\n host: {\n class: 'et-carousel-item',\n },\n})\nexport class CarouselItemDirective {\n autoPlayTime = input(null, { transform: numberAttribute });\n\n carousel = inject(CAROUSEL_TOKEN);\n\n itemIndex = computed(() => this.carousel.items().indexOf(this));\n isPreviousActive = computed(\n () => this.carousel.previousActiveIndex() === this.itemIndex() && this.carousel.isNavigationLocked(),\n );\n\n isActive = computed(() => this.itemIndex() === this.carousel.activeIndex());\n\n hostClassBindings = signalHostClasses({\n active: this.isActive,\n 'previous-active': this.isPreviousActive,\n });\n\n hostAttributeBindings = signalHostAttributes({\n inert: computed(() => !this.isActive()),\n 'aria-hidden': computed(() => !this.isActive()),\n });\n}\n","import {\n Directive,\n ElementRef,\n InjectionToken,\n Injector,\n booleanAttribute,\n computed,\n contentChildren,\n inject,\n input,\n numberAttribute,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport {\n nextFrame,\n previousSignalValue,\n signalHostAttributes,\n signalHostClasses,\n signalHostStyles,\n} from '@ethlete/core';\nimport { combineLatest, filter, fromEvent, map, merge, of, switchMap, takeWhile, tap, timer } from 'rxjs';\nimport { CAROUSEL_ITEM_TOKEN } from './et-carousel-item.directive';\n\nexport const CAROUSEL_TOKEN = new InjectionToken<CarouselDirective>('CAROUSEL_TOKEN');\n\nexport type CarouselTransitionType = 'mask-slide';\n\nexport type CarouselTransitionDirection = 'left' | 'right';\n\n@Directive({\n standalone: true,\n providers: [\n {\n provide: CAROUSEL_TOKEN,\n useExisting: CarouselDirective,\n },\n ],\n})\nexport class CarouselDirective {\n injector = inject(Injector);\n\n loop = input(true, { transform: booleanAttribute });\n autoPlay = input(false, { transform: booleanAttribute });\n autoPlayTime = input(5000, { transform: numberAttribute });\n pauseAutoPlayOnHover = input(true, { transform: booleanAttribute });\n pauseAutoPlayOnFocus = input(true, { transform: booleanAttribute });\n transitionType = input<CarouselTransitionType>('mask-slide');\n transitionDuration = input(450, { transform: numberAttribute });\n\n activeIndex = signal(0);\n previousActiveIndex = previousSignalValue(this.activeIndex);\n transitionDirection = signal<CarouselTransitionDirection>('left');\n carouselItemsWrapper = signal<ElementRef<HTMLDivElement> | null>(null);\n\n isAutoPlayPaused = signal(false);\n isAutoPlayPausedByInternalHover = signal(false);\n isAutoPlayPausedByInternalFocus = signal(false);\n\n isNavigationLocked = toSignal(\n toObservable(this.activeIndex).pipe(\n switchMap(() => merge(of(true), timer(this.transitionDuration()).pipe(map(() => false)))),\n ),\n {\n initialValue: false,\n },\n );\n\n items = contentChildren(CAROUSEL_ITEM_TOKEN);\n\n activeItem = computed(() => this.items()[this.activeIndex()] || null);\n\n isAtStart = computed(() => this.activeIndex() === 0);\n isAtEnd = computed(() => this.activeIndex() === this.items().length - 1);\n\n hostClassBindings = signalHostClasses({\n 'et-carousel--slide-left': computed(() => this.transitionDirection() === 'left'),\n 'et-carousel--slide-right': computed(() => this.transitionDirection() === 'right'),\n });\n\n hostAttributeBindings = signalHostAttributes({\n 'transition-type': this.transitionType,\n });\n\n hostStyleBindings = signalHostStyles({\n '--_carousel-slide-duration': computed(() => `${this.transitionDuration()}ms`),\n });\n\n activeItemAutoPlayDuration = computed(() => {\n if (!this.autoPlay()) return null;\n\n return this.activeItem()?.autoPlayTime() || this.autoPlayTime();\n });\n\n activeItemAutoPlayProgress = toSignal(\n combineLatest([toObservable(this.activeItemAutoPlayDuration), toObservable(this.activeItem)]).pipe(\n switchMap(([duration]) => {\n if (duration === null) return of(null);\n\n let elapsed = 0;\n\n return combineLatest([\n toObservable(this.isAutoPlayPaused, { injector: this.injector }),\n toObservable(this.isAutoPlayPausedByInternalHover, { injector: this.injector }),\n toObservable(this.isAutoPlayPausedByInternalFocus, { injector: this.injector }),\n ]).pipe(\n switchMap(([isPaused, internalIsPausedDueToHover, internalIsPausedDueToFocus]) => {\n if (isPaused || internalIsPausedDueToHover || internalIsPausedDueToFocus) return of(elapsed / duration);\n\n return timer(0, 100).pipe(\n tap(() => (elapsed += 100)),\n map(() => elapsed / duration),\n takeWhile((progress) => progress < 1, true),\n );\n }),\n );\n }),\n ),\n { initialValue: null },\n );\n\n shouldPlayNextItem = computed(() => {\n if (!this.autoPlay()) return false;\n\n return this.activeItemAutoPlayProgress() === 1;\n });\n\n constructor() {\n combineLatest([toObservable(this.activeItemAutoPlayProgress), toObservable(this.autoPlay)])\n .pipe(\n filter(([progress, autoPlay]) => progress === 1 && autoPlay),\n tap(() => this.next()),\n takeUntilDestroyed(),\n )\n .subscribe();\n\n combineLatest([toObservable(this.carouselItemsWrapper), toObservable(this.pauseAutoPlayOnHover)])\n .pipe(\n switchMap(([wrapper, pauseOnHover]) => {\n if (!wrapper || !pauseOnHover) {\n this.isAutoPlayPausedByInternalHover.set(false);\n return of(null);\n }\n\n return merge(\n fromEvent(wrapper.nativeElement, 'mouseenter').pipe(map(() => true)),\n fromEvent(wrapper.nativeElement, 'mouseleave').pipe(map(() => false)),\n ).pipe(tap((isHovering) => this.isAutoPlayPausedByInternalHover.set(isHovering)));\n }),\n takeUntilDestroyed(),\n )\n .subscribe();\n\n combineLatest([toObservable(this.carouselItemsWrapper), toObservable(this.pauseAutoPlayOnFocus)])\n .pipe(\n switchMap(([wrapper, pauseOnFocus]) => {\n if (!wrapper || !pauseOnFocus) {\n this.isAutoPlayPausedByInternalFocus.set(false);\n return of(null);\n }\n\n return merge(\n fromEvent(wrapper.nativeElement, 'focusin').pipe(map(() => true)),\n fromEvent(wrapper.nativeElement, 'focusout').pipe(map(() => false)),\n ).pipe(tap((isFocused) => this.isAutoPlayPausedByInternalFocus.set(isFocused)));\n }),\n takeUntilDestroyed(),\n )\n .subscribe();\n }\n\n next() {\n if (this.isNavigationLocked()) return;\n\n this.transitionDirection.set('right');\n\n nextFrame(() => {\n if (this.activeIndex() === this.items().length - 1) {\n if (!this.loop()) return;\n\n this.activeIndex.set(0);\n return;\n }\n\n this.activeIndex.set(this.activeIndex() + 1);\n });\n }\n\n prev() {\n if (this.isNavigationLocked()) return;\n\n this.transitionDirection.set('left');\n\n nextFrame(() => {\n if (this.activeIndex() === 0) {\n if (!this.loop()) return;\n\n this.activeIndex.set(this.items().length - 1);\n return;\n }\n\n this.activeIndex.set(this.activeIndex() - 1);\n });\n }\n\n goTo(index: number) {\n if (this.isNavigationLocked()) return;\n\n this.transitionDirection.set(this.activeIndex() < index ? 'right' : 'left');\n\n nextFrame(() => {\n this.activeIndex.set(index);\n });\n }\n\n stopAutoPlay() {\n this.isAutoPlayPaused.set(true);\n }\n\n resumeAutoPlay() {\n this.isAutoPlayPaused.set(false);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, inject, viewChild } from '@angular/core';\nimport { syncSignal } from '@ethlete/core';\nimport { CAROUSEL_TOKEN, CarouselDirective } from './carousel.directive';\n\n@Component({\n selector: 'et-carousel',\n template: `\n <div class=\"et-carousel\">\n <div #carouselItemsWrapper class=\"et-carousel-items\">\n <ng-content select=\"et-carousel-item, [etCarouselItem]\" />\n </div>\n\n <ng-content />\n </div>\n `,\n styleUrl: './carousel.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-carousel-host',\n },\n imports: [NgTemplateOutlet],\n hostDirectives: [\n {\n directive: CarouselDirective,\n inputs: [\n 'loop',\n 'autoPlay',\n 'autoPlayTime',\n 'pauseAutoPlayOnHover',\n 'pauseAutoPlayOnFocus',\n 'transitionType',\n 'transitionDuration',\n ],\n },\n ],\n})\nexport class CarouselComponent {\n carousel = inject(CAROUSEL_TOKEN);\n carouselItemsWrapper = viewChild.required<ElementRef<HTMLElement>>('carouselItemsWrapper');\n\n constructor() {\n syncSignal(this.carouselItemsWrapper, this.carousel.carouselItemsWrapper);\n }\n}\n","import { Directive, InjectionToken, inject } from '@angular/core';\nimport { CAROUSEL_TOKEN } from '../carousel.directive';\n\nexport const CAROUSEL_ITEM_NAV_TOKEN = new InjectionToken<CarouselItemNavDirective>('CAROUSEL_ITEM_NAV_TOKEN');\n\n@Directive({\n standalone: true,\n providers: [\n {\n provide: CAROUSEL_ITEM_NAV_TOKEN,\n useExisting: CarouselItemNavDirective,\n },\n ],\n})\nexport class CarouselItemNavDirective {\n carousel = inject(CAROUSEL_TOKEN);\n\n autoPlayProgress = this.carousel.activeItemAutoPlayProgress;\n autoPlayEnabled = this.carousel.autoPlay;\n\n goTo(index: number) {\n this.carousel.goTo(index);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n inject,\n viewChildren,\n} from '@angular/core';\nimport { signalStyles } from '@ethlete/core';\nimport { CAROUSEL_ITEM_NAV_TOKEN, CarouselItemNavDirective } from './carousel-item-nav.directive';\n\n@Component({\n selector: 'et-carousel-item-nav',\n template: `\n <ul class=\"et-carousel-item-nav\">\n @for (item of nav.carousel.items(); track $index) {\n <li class=\"et-carousel-item-nav-item\">\n <button\n [class.et-carousel-item-nav-button--progressing]=\"item.isActive() && nav.autoPlayEnabled()\"\n [class.et-carousel-item-nav-button--active-static]=\"item.isActive() && !nav.autoPlayEnabled()\"\n (click)=\"nav.goTo($index)\"\n class=\"et-carousel-item-nav-button\"\n type=\"button\"\n >\n <div #progress class=\"et-carousel-item-nav-button-progress\"></div>\n </button>\n </li>\n }\n </ul>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-carousel-item-nav-host',\n },\n hostDirectives: [{ directive: CarouselItemNavDirective }],\n})\nexport class CarouselItemNavComponent {\n nav = inject(CAROUSEL_ITEM_NAV_TOKEN);\n\n progressBars = viewChildren<ElementRef<HTMLElement>[]>('progress');\n activeProgressBar = computed(() => this.progressBars()[this.nav.carousel.activeIndex()]);\n\n progressBarStyleBindings = signalStyles(this.activeProgressBar, {\n '--_et-carousel-item-nav-button-progress': this.nav.autoPlayProgress,\n });\n}\n","import { Directive, InjectionToken, computed, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { injectHostElement, signalHostAttributes } from '@ethlete/core';\nimport { filter, fromEvent, tap } from 'rxjs';\nimport { CAROUSEL_TOKEN } from '../carousel.directive';\n\nexport const CAROUSEL_NEXT_BUTTON_TOKEN = new InjectionToken<CarouselNextButtonDirective>('CAROUSEL_NEXT_BUTTON_TOKEN');\n\n@Directive({\n selector: '[etCarouselNextButton]',\n standalone: true,\n providers: [\n {\n provide: CAROUSEL_NEXT_BUTTON_TOKEN,\n useExisting: CarouselNextButtonDirective,\n },\n ],\n host: {\n class: 'et-carousel-next-button',\n },\n})\nexport class CarouselNextButtonDirective {\n carousel = inject(CAROUSEL_TOKEN);\n\n readonly isButton = injectHostElement().tagName === 'BUTTON';\n\n canGoNext = computed(() => this.carousel.loop() || !this.carousel.isAtEnd());\n\n hostAttributeBindings = signalHostAttributes({\n disabled: computed(() => (this.isButton ? !this.canGoNext() : false)),\n 'aria-disabled': computed(() => !this.canGoNext()),\n });\n\n constructor() {\n fromEvent(injectHostElement(), 'click')\n .pipe(\n takeUntilDestroyed(),\n filter(() => this.canGoNext()),\n tap(() => this.carousel.next()),\n )\n .subscribe();\n }\n}\n","import { Directive, InjectionToken, computed, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { injectHostElement, signalHostAttributes } from '@ethlete/core';\nimport { filter, fromEvent, tap } from 'rxjs';\nimport { CAROUSEL_TOKEN } from '../carousel.directive';\n\nexport const CAROUSEL_PREVIOUS_BUTTON_TOKEN = new InjectionToken<CarouselPreviousButtonDirective>(\n 'CAROUSEL_PREVIOUS_BUTTON_TOKEN',\n);\n\n@Directive({\n selector: '[etCarouselPreviousButton]',\n standalone: true,\n providers: [\n {\n provide: CAROUSEL_PREVIOUS_BUTTON_TOKEN,\n useExisting: CarouselPreviousButtonDirective,\n },\n ],\n host: {\n class: 'et-carousel-previous-button',\n },\n})\nexport class CarouselPreviousButtonDirective {\n carousel = inject(CAROUSEL_TOKEN);\n\n readonly isButton = injectHostElement().tagName === 'BUTTON';\n\n canGoPrevious = computed(() => this.carousel.loop() || !this.carousel.isAtStart());\n\n hostAttributeBindings = signalHostAttributes({\n disabled: computed(() => (this.isButton ? !this.canGoPrevious() : false)),\n 'aria-disabled': computed(() => !this.canGoPrevious()),\n });\n\n constructor() {\n fromEvent(injectHostElement(), 'click')\n .pipe(\n takeUntilDestroyed(),\n filter(() => this.canGoPrevious()),\n tap(() => this.carousel.prev()),\n )\n .subscribe();\n }\n}\n","import { Directive, InjectionToken, computed, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { injectHostElement, signalHostClasses } from '@ethlete/core';\nimport { fromEvent, tap } from 'rxjs';\nimport { CAROUSEL_TOKEN } from '../carousel.directive';\n\nexport const CAROUSEL_TOGGLE_AUTO_PLAY_BUTTON_TOKEN = new InjectionToken<CarouselToggleAutoPlayButtonDirective>(\n 'CAROUSEL_TOGGLE_AUTO_PLAY_BUTTON_TOKEN',\n);\n\n@Directive({\n selector: '[etCarouselToggleAutoPlayButton]',\n standalone: true,\n providers: [\n {\n provide: CAROUSEL_TOGGLE_AUTO_PLAY_BUTTON_TOKEN,\n useExisting: CarouselToggleAutoPlayButtonDirective,\n },\n ],\n host: {\n class: 'et-carousel-toggle-auto-play-button',\n },\n})\nexport class CarouselToggleAutoPlayButtonDirective {\n carousel = inject(CAROUSEL_TOKEN);\n\n hostClassBindings = signalHostClasses({\n 'et-carousel-toggle-auto-play-button--playing': computed(() => !this.carousel.isAutoPlayPaused()),\n 'et-carousel-toggle-auto-play-button--paused': computed(() => this.carousel.isAutoPlayPaused()),\n });\n\n constructor() {\n fromEvent(injectHostElement(), 'click')\n .pipe(\n takeUntilDestroyed(),\n tap(() => (this.carousel.isAutoPlayPaused() ? this.carousel.resumeAutoPlay() : this.carousel.stopAutoPlay())),\n )\n .subscribe();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { CAROUSEL_ITEM_TOKEN, CarouselItemDirective } from './et-carousel-item.directive';\n\n@Component({\n selector: 'et-carousel-item',\n template: ` <ng-content /> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [],\n hostDirectives: [{ directive: CarouselItemDirective, inputs: ['autoPlayTime'] }],\n})\nexport class CarouselItemComponent {\n carouselItem = inject(CAROUSEL_ITEM_TOKEN);\n}\n","import { CarouselComponent } from './carousel.component';\nimport {\n CarouselItemNavComponent,\n CarouselNextButtonDirective,\n CarouselPreviousButtonDirective,\n CarouselToggleAutoPlayButtonDirective,\n} from './controls';\nimport { CarouselItemComponent } from './et-carousel-item.component';\n\nexport const CarouselImports = [\n CarouselComponent,\n CarouselItemComponent,\n CarouselItemNavComponent,\n CarouselNextButtonDirective,\n CarouselPreviousButtonDirective,\n CarouselToggleAutoPlayButtonDirective,\n] as const;\n","import { Directive, ElementRef, InjectionToken, inject } from '@angular/core';\n\nexport const RICH_FILTER_BUTTON_TOKEN = new InjectionToken<RichFilterButtonDirective>('RICH_FILTER_BUTTON_TOKEN');\n\n@Directive({\n selector: '[etRichFilterButton]',\n standalone: true,\n providers: [\n {\n provide: RICH_FILTER_BUTTON_TOKEN,\n useExisting: RichFilterButtonDirective,\n },\n ],\n host: {\n class: 'et-rich-filter-button',\n },\n})\nexport class RichFilterButtonDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { Directive, InjectionToken, inject } from '@angular/core';\nimport { ObserveVisibilityDirective } from '@ethlete/core';\n\nexport const RICH_FILTER_BUTTON_SLOT_TOKEN = new InjectionToken<RichFilterButtonSlotDirective>(\n 'RICH_FILTER_BUTTON_SLOT_TOKEN',\n);\n\n@Directive({\n selector: 'et-rich-filter-button-slot',\n standalone: true,\n providers: [\n {\n provide: RICH_FILTER_BUTTON_SLOT_TOKEN,\n useExisting: RichFilterButtonSlotDirective,\n },\n ],\n hostDirectives: [ObserveVisibilityDirective],\n})\nexport class RichFilterButtonSlotDirective {\n readonly visibilityObserver = inject(ObserveVisibilityDirective);\n}\n","import { Directive, InjectionToken, inject } from '@angular/core';\nimport { ObserveVisibilityDirective } from '@ethlete/core';\n\nexport const RICH_FILTER_CONTENT_TOKEN = new InjectionToken<RichFilterContentDirective>('RICH_FILTER_CONTENT_TOKEN');\n\n@Directive({\n selector: '[etRichFilterContent]',\n standalone: true,\n providers: [\n {\n provide: RICH_FILTER_CONTENT_TOKEN,\n useExisting: RichFilterContentDirective,\n },\n ],\n hostDirectives: [ObserveVisibilityDirective],\n})\nexport class RichFilterContentDirective {\n readonly visibilityObserver = inject(ObserveVisibilityDirective);\n}\n","import { Directive, ElementRef, InjectionToken, inject } from '@angular/core';\n\nexport const RICH_FILTER_TOP_TOKEN = new InjectionToken<RichFilterTopDirective>('RICH_FILTER_TOP_TOKEN');\n\n@Directive({\n selector: '[etRichFilterTop]',\n standalone: true,\n providers: [\n {\n provide: RICH_FILTER_TOP_TOKEN,\n useExisting: RichFilterTopDirective,\n },\n ],\n})\nexport class RichFilterTopDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, ViewEncapsulation, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { signalHostClasses, signalVisibilityChangeClasses } from '@ethlete/core';\nimport { BehaviorSubject, map, of, switchMap } from 'rxjs';\nimport { RICH_FILTER_BUTTON_TOKEN, RichFilterButtonDirective } from '../../directives/rich-filter-button';\nimport { RICH_FILTER_BUTTON_SLOT_TOKEN, RichFilterButtonSlotDirective } from '../../directives/rich-filter-button-slot';\nimport { RICH_FILTER_CONTENT_TOKEN, RichFilterContentDirective } from '../../directives/rich-filter-content';\nimport { RICH_FILTER_TOP_TOKEN, RichFilterTopDirective } from '../../directives/rich-filter-top';\n\n@Component({\n selector: 'et-rich-filter-host, [et-rich-filter-host]',\n styleUrls: ['./rich-filter-host.component.scss'],\n template: '<ng-content />',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'et-rich-filter-host',\n },\n hostDirectives: [RichFilterTopDirective],\n})\nexport class RichFilterHostComponent {\n private readonly _implicitTop = inject(RICH_FILTER_TOP_TOKEN);\n\n @ContentChild(RICH_FILTER_BUTTON_TOKEN)\n private set _button(value: RichFilterButtonDirective | null | undefined) {\n this.button$.next(value ?? null);\n }\n readonly button$ = new BehaviorSubject<RichFilterButtonDirective | null>(null);\n\n @ContentChild(RICH_FILTER_BUTTON_SLOT_TOKEN)\n private set _buttonSlot(value: RichFilterButtonSlotDirective | null | undefined) {\n this.buttonSlot$.next(value ?? null);\n }\n readonly buttonSlot$ = new BehaviorSubject<RichFilterButtonSlotDirective | null>(null);\n\n @ContentChild(RICH_FILTER_CONTENT_TOKEN)\n private set _content(value: RichFilterContentDirective | null | undefined) {\n this.content$.next(value ?? null);\n }\n readonly content$ = new BehaviorSubject<RichFilterContentDirective | null>(null);\n\n @ContentChild(RICH_FILTER_TOP_TOKEN)\n private set _top(value: RichFilterTopDirective | null | undefined) {\n this.top$.next(value ?? this._implicitTop);\n }\n readonly top$ = new BehaviorSubject<RichFilterTopDirective>(this._implicitTop);\n\n readonly buttonSlotVisibilityChanges$ = this.buttonSlot$.pipe(\n switchMap((buttonSlot) => buttonSlot?.visibilityObserver.currentVisibility$ ?? of(null)),\n );\n\n readonly contentVisibilityChanges$ = this.content$.pipe(\n switchMap((content) => content?.visibilityObserver.currentVisibility$ ?? of(null)),\n );\n\n readonly buttonSlotVisibilityChanges = toSignal(this.buttonSlotVisibilityChanges$, { requireSync: true });\n readonly contentVisibilityChanges = toSignal(this.contentVisibilityChanges$, { requireSync: true });\n readonly topElementRef = toSignal(this.top$.pipe(map((top) => top.elementRef)), { requireSync: true });\n\n constructor() {\n signalHostClasses({\n ...signalVisibilityChangeClasses({\n name: 'et-rich-filter-host-button',\n signal: this.buttonSlotVisibilityChanges,\n }),\n ...signalVisibilityChangeClasses({\n name: 'et-rich-filter-host-content',\n signal: this.contentVisibilityChanges,\n }),\n });\n }\n\n scrollToTop(options?: ScrollIntoViewOptions): void {\n this.top$?.value?.elementRef.nativeElement?.scrollIntoView(options);\n }\n}\n","import { RichFilterHostComponent } from './components/rich-filter-host';\nimport { RichFilterButtonDirective } from './directives/rich-filter-button';\nimport { RichFilterButtonSlotDirective } from './directives/rich-filter-button-slot';\nimport { RichFilterContentDirective } from './directives/rich-filter-content';\nimport { RichFilterTopDirective } from './directives/rich-filter-top';\n\nexport const RichFilterImports = [\n RichFilterHostComponent,\n RichFilterButtonDirective,\n RichFilterButtonSlotDirective,\n RichFilterContentDirective,\n RichFilterTopDirective,\n] as const;\n","import { Injectable, InjectionToken, isDevMode } from '@angular/core';\nimport { AT_LEAST_ONE_REQUIRED, IS_ARRAY_NOT_EMPTY, IS_EMAIL, MUST_MATCH } from '@ethlete/core';\nimport { Observable } from 'rxjs';\nimport { ValidatorErrors } from '../types';\n\nexport const VALIDATOR_ERROR_SERVICE_TOKEN = new InjectionToken<ValidationErrorsServiceType>('VALIDATOR_ERROR_SERVICE');\n\nexport interface ValidationErrorsServiceType {\n parse: (errors: ValidatorErrors) => string | Observable<string>;\n}\n\nexport const provideValidatorErrorsService = (\n service: new () => ValidationErrorsServiceType = DefaultValidatorErrorsService,\n) => ({\n provide: VALIDATOR_ERROR_SERVICE_TOKEN,\n useClass: service,\n});\n\n@Injectable()\nexport class DefaultValidatorErrorsService implements ValidationErrorsServiceType {\n parse(errors: ValidatorErrors): string | Observable<string> {\n if (errors.required) {\n return 'This field is required';\n } else if (errors.email || errors[IS_EMAIL]) {\n return 'This field must be a valid email';\n } else if (errors.minlength) {\n return `This field must be at least ${errors.minlength.requiredLength} characters`;\n } else if (errors.maxlength) {\n return `This field must be at most ${errors.maxlength.requiredLength} characters`;\n } else if (errors.pattern) {\n return `This field must match the pattern ${errors.pattern.requiredPattern}`;\n } else if (errors.min) {\n return `This field must be at least ${errors.min.min}`;\n } else if (errors.max) {\n return `This field must be at most ${errors.max.max}`;\n } else if (errors[MUST_MATCH]) {\n return `This field must match`;\n } else if (errors[IS_ARRAY_NOT_EMPTY]) {\n return `This field must not be empty`;\n } else if (errors[AT_LEAST_ONE_REQUIRED]) {\n return `At least one of the fields is required`;\n } else {\n if (isDevMode()) {\n console.warn('Unknown validation error', errors);\n }\n }\n\n return 'This field is invalid';\n }\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { Injectable } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\n\n@Injectable()\nexport class FormFieldStateService {\n readonly labelId$ = new BehaviorSubject<string | null>(null);\n readonly labelId = toSignal(this.labelId$, { requireSync: true });\n\n readonly inputId$ = new BehaviorSubject<string | null>(null);\n readonly inputId = toSignal(this.inputId$, { requireSync: true });\n\n readonly isFocusedVia$ = new BehaviorSubject<FocusOrigin | null>(null);\n readonly isFocusedVia = toSignal(this.isFocusedVia$, { requireSync: true });\n\n readonly errorId$ = new BehaviorSubject<string | null>(null);\n readonly errorId = toSignal(this.errorId$, { requireSync: true });\n\n readonly hasPrefix$ = new BehaviorSubject(false);\n readonly hasPrefix = toSignal(this.hasPrefix$, { requireSync: true });\n\n readonly hasSuffix$ = new BehaviorSubject(false);\n readonly hasSuffix = toSignal(this.hasSuffix$, { requireSync: true });\n\n // This will get more complex once hints are added\n readonly describedBy$ = combineLatest([this.errorId$]).pipe(\n map((ids) => {\n const idList = ids.filter((id) => !!id).join(' ');\n\n return idList || null;\n }),\n );\n\n readonly describedBy = toSignal(this.describedBy$, { requireSync: true });\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\n\n@Injectable()\nexport class FormGroupStateService {\n readonly labelId$ = new BehaviorSubject<string | null>(null);\n readonly inputIds$ = new BehaviorSubject<string[] | null>(null);\n readonly errorId$ = new BehaviorSubject<string | null>(null);\n\n // This will get more complex once hints are added\n readonly describedBy$ = combineLatest([this.errorId$]).pipe(\n map((ids) => {\n const idList = ids.filter((id) => !!id).join(' ');\n\n return idList || null;\n }),\n );\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { Injectable } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, combineLatest, filter, map, Observable, of, Subject, switchMap } from 'rxjs';\nimport { NativeInputRefDirective } from '../directives/native-input-ref';\nimport { InputTouchedFn, InputValueChangeFn, InputValueUpdateType, ValidatorErrors } from '../types';\n\n@Injectable()\nexport class InputStateService<T = unknown, J extends HTMLElement = HTMLElement> {\n readonly lastUpdateType$ = new BehaviorSubject<InputValueUpdateType | null>(null);\n readonly lastUpdateType = toSignal(this.lastUpdateType$, { requireSync: true });\n\n readonly onInternalUpdate$ = this.lastUpdateType$.pipe(filter((type) => type === 'internal'));\n readonly onExternalUpdate$ = this.lastUpdateType$.pipe(filter((type) => type === 'external'));\n\n readonly value$ = new BehaviorSubject<T | null>(null);\n readonly value = toSignal(this.value$, { requireSync: true });\n\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n readonly disabled = toSignal(this.disabled$, { requireSync: true });\n\n readonly required$ = new BehaviorSubject<boolean>(false);\n readonly required = toSignal(this.required$, { requireSync: true });\n\n readonly valueChange$ = new Subject<T>();\n readonly disabledChange$ = new Subject<boolean>();\n readonly requiredChange$ = new Subject<boolean>();\n\n readonly usesImplicitControl$ = new BehaviorSubject<boolean>(false);\n readonly usesImplicitControl = toSignal(this.usesImplicitControl$, { requireSync: true });\n\n readonly nativeInputRef$ = new BehaviorSubject<NativeInputRefDirective<J> | null>(null);\n readonly nativeInputRef = toSignal(this.nativeInputRef$, { requireSync: true });\n\n readonly isNeverEmptyInput$ = new BehaviorSubject<boolean>(false);\n readonly isNeverEmptyInput = toSignal(this.isNeverEmptyInput$, { requireSync: true });\n\n readonly autofilled$ = new BehaviorSubject<boolean>(false);\n readonly autofilled = toSignal(this.autofilled$, { requireSync: true });\n\n readonly valueIsTruthy$ = this.value$.pipe(map((value) => !!value));\n readonly valueIsTruthy = toSignal(this.valueIsTruthy$, { requireSync: true });\n\n readonly valueIsFalsy$ = this.value$.pipe(map((value) => !value));\n readonly valueIsFalsy = toSignal(this.valueIsFalsy$, { requireSync: true });\n\n /**\n * Selects might have a option that is \"null\".\n * This helper can be used to enhance the detection of empty values.\n * The input is empty if the helper returns a falsy value and the value itself is falsy or an empty array.\n */\n readonly isEmptyHelper$ = new BehaviorSubject<unknown | Observable<unknown>>(undefined);\n readonly isEmptyHelper = toSignal(this.isEmptyHelper$, { requireSync: true });\n\n readonly valueIsEmpty$ = combineLatest([\n this.value$,\n this.autofilled$,\n this.isEmptyHelper$.pipe(\n switchMap((isEmptyHelper) => (isEmptyHelper instanceof Observable ? isEmptyHelper : of(isEmptyHelper))),\n ),\n ]).pipe(\n map(([value, autofilled, isEmptyHelper]) => {\n const defaultIsEmpty =\n (value === null || value === undefined || value === '' || (Array.isArray(value) && !value.length)) &&\n !autofilled;\n\n if (isEmptyHelper !== undefined) {\n return !isEmptyHelper && defaultIsEmpty;\n }\n\n return defaultIsEmpty;\n }),\n );\n readonly valueIsEmpty = toSignal(this.valueIsEmpty$, { requireSync: true });\n\n readonly errors$ = new BehaviorSubject<ValidatorErrors | null>(null);\n readonly errors = toSignal(this.errors$, { requireSync: true });\n\n readonly shouldDisplayError$ = new BehaviorSubject<boolean>(false);\n readonly shouldDisplayError = toSignal(this.shouldDisplayError$, { requireSync: true });\n\n readonly isFocusedVia$ = new BehaviorSubject<FocusOrigin | null>(null);\n readonly isFocusedVia = toSignal(this.isFocusedVia$, { requireSync: true });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _valueChange: InputValueChangeFn<T> = (value) => {\n // stub\n };\n _touched: InputTouchedFn = () => {\n // stub\n };\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, InjectionToken, ViewEncapsulation } from '@angular/core';\nimport { FormFieldStateService } from '../../../../services';\n\nexport const LABEL_TOKEN = new InjectionToken<LabelComponent>('ET_LABEL_COMPONENT_TOKEN');\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'et-label',\n template: `\n <label\n [attr.for]=\"formFieldStateService.inputId$ | async\"\n [attr.aria-owns]=\"formFieldStateService.inputId$ | async\"\n [id]=\"id\"\n class=\"et-label-native-label\"\n >\n <ng-content />\n </label>\n <ng-content select=\"[etLabelSuffix]\" />\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n exportAs: 'etLabel',\n imports: [AsyncPipe],\n providers: [{ provide: LABEL_TOKEN, useExisting: LabelComponent }],\n host: {\n class: 'et-label',\n },\n})\nexport class LabelComponent {\n protected readonly formFieldStateService = inject(FormFieldStateService);\n\n readonly id = `et-label-${++nextUniqueId}`;\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n InjectionToken,\n Input,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { InputValueUpdateType } from '../../types';\nimport { InputDirective } from '../input/input.directive';\n\nexport interface ExposeInputVarsContext {\n shouldDisplayError: boolean;\n autofilled: boolean;\n disabled: boolean;\n isFocusedVia: FocusOrigin;\n lastUpdateType: InputValueUpdateType | null;\n value: unknown;\n}\n\ntype ObservableValueType<T extends Observable<unknown>> = T extends Observable<infer J> ? J : never;\n\nexport const EXPOSE_INPUT_VARS_TOKEN = new InjectionToken<ExposeInputVarsDirective>('ET_EXPOSE_INPUT_VARS_TOKEN');\n\n@Directive({\n selector: '[etExposeInputVars]',\n standalone: true,\n providers: [\n {\n provide: EXPOSE_INPUT_VARS_TOKEN,\n useExisting: ExposeInputVarsDirective,\n },\n ],\n})\nexport class ExposeInputVarsDirective {\n private readonly _cdr = inject(ChangeDetectorRef);\n private readonly _destroy$ = createDestroy();\n private readonly _monitorStop$ = new Subject<void>();\n private readonly _templateRef = inject(TemplateRef);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n\n private _viewContext: ExposeInputVarsContext = {\n shouldDisplayError: false,\n autofilled: false,\n disabled: false,\n isFocusedVia: null,\n lastUpdateType: null,\n value: null,\n };\n\n @Input('etExposeInputVars')\n set explicitInput(input: InputDirective | null | undefined) {\n if (!input) return;\n\n this._monitorInput(input);\n }\n\n constructor() {\n this._viewContainerRef.createEmbeddedView(this._templateRef, this._viewContext);\n }\n\n static ngTemplateContextGuard(dir: ExposeInputVarsDirective, ctx: unknown): ctx is ExposeInputVarsContext {\n return true;\n }\n\n _monitorInput(input: InputDirective) {\n this._monitorStop$.next();\n\n this._monitorObservable(input.shouldDisplayError$, (shouldDisplayError) =>\n this._updateView({\n shouldDisplayError,\n }),\n );\n\n this._monitorObservable(input.autofilled$, (autofilled) =>\n this._updateView({\n autofilled,\n }),\n );\n\n this._monitorObservable(input.disabled$, (disabled) =>\n this._updateView({\n disabled,\n }),\n );\n\n this._monitorObservable(input.isFocusedVia$, (isFocusedVia) =>\n this._updateView({\n isFocusedVia,\n }),\n );\n\n this._monitorObservable(input.lastUpdateType$, (lastUpdateType) =>\n this._updateView({\n lastUpdateType,\n }),\n );\n\n this._monitorObservable(input.value$, (value) =>\n this._updateView({\n value,\n }),\n );\n }\n\n private _monitorObservable<T extends Observable<unknown>, J extends ObservableValueType<T>>(\n observable: T,\n callback: (value: J) => void,\n ) {\n observable.pipe(takeUntil(this._monitorStop$), takeUntil(this._destroy$)).subscribe((v) => callback(v as J));\n }\n\n private _updateView(context: Partial<ExposeInputVarsContext>) {\n Object.assign(this._viewContext, context);\n\n this._cdr.markForCheck();\n }\n}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\nimport { Directive, ElementRef, InjectionToken, Injector, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { FormControl, NgControl, Validators } from '@angular/forms';\nimport { createDestroy, equal } from '@ethlete/core';\nimport { Observable, combineLatest, debounceTime, filter, map, pairwise, startWith, takeUntil, tap } from 'rxjs';\nimport { FormFieldStateService, InputStateService } from '../../services';\nimport { EXPOSE_INPUT_VARS_TOKEN } from '../expose-input-vars';\nimport { NativeInputRefDirective } from '../native-input-ref';\n\nexport const INPUT_TOKEN = new InjectionToken<InputDirective>('ET_INPUT_DIRECTIVE_TOKEN');\n\nlet nextUniqueId = 0;\n\n@Directive({\n selector: '[etInput]',\n standalone: true,\n exportAs: 'etInput',\n host: {\n class: 'et-input',\n '[attr.autocomplete]': 'null',\n },\n providers: [{ provide: INPUT_TOKEN, useExisting: InputDirective }],\n})\nexport class InputDirective<T = unknown, J extends HTMLElement = HTMLElement> implements OnInit, OnDestroy {\n private readonly _injector = inject(Injector);\n private readonly _inputStateService = inject<InputStateService<T, J>>(InputStateService);\n private readonly _formFieldStateService = inject(FormFieldStateService);\n private readonly _ngControl = inject(NgControl, { optional: true });\n private readonly _destroy$ = createDestroy();\n private readonly _autofillMonitor = inject(AutofillMonitor);\n private readonly _focusMonitor = inject(FocusMonitor);\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n protected _neverEmptyInputs = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'];\n\n private _implicitControl?: FormControl<unknown>;\n\n private get control() {\n if (!this._ngControl) {\n if (!this._implicitControl) {\n this._implicitControl = new FormControl();\n }\n\n return this._implicitControl;\n }\n\n if (!this._ngControl.control) {\n throw new Error('NgControl.control can only be accessed after construction phase');\n }\n\n return this._ngControl.control;\n }\n\n private readonly _id = `et-input-${++nextUniqueId}`;\n\n @Input()\n autocomplete: string | null = null;\n\n @Input()\n placeholder: string | null = null;\n\n get id() {\n return this._id;\n }\n\n get value$() {\n return this._inputStateService.value$.asObservable();\n }\n\n get value() {\n return this._inputStateService.value();\n }\n\n get lastUpdateType$() {\n return this._inputStateService.lastUpdateType$.asObservable();\n }\n\n get lastUpdateType() {\n return this._inputStateService.lastUpdateType();\n }\n\n get valueChange$() {\n return this._inputStateService.valueChange$.asObservable();\n }\n\n get disabled$() {\n return this._inputStateService.disabled$.asObservable();\n }\n\n get disabled() {\n return this._inputStateService.disabled();\n }\n\n get disabledChange$() {\n return this._inputStateService.disabledChange$.asObservable();\n }\n\n get required$() {\n return this._inputStateService.required$.asObservable();\n }\n\n get required() {\n return this._inputStateService.required();\n }\n\n get requiredChange$() {\n return this._inputStateService.requiredChange$.asObservable();\n }\n\n get labelId$() {\n return this._formFieldStateService.labelId$.asObservable();\n }\n\n get labelId() {\n return this._formFieldStateService.labelId();\n }\n\n get invalid$() {\n return this.control.statusChanges.pipe(\n startWith(this.control.status),\n map((s) => s === 'INVALID'),\n );\n }\n\n get invalid() {\n return this.control.invalid;\n }\n\n get usesImplicitControl$() {\n return this._inputStateService.usesImplicitControl$.asObservable();\n }\n\n get usesImplicitControl() {\n return this._inputStateService.usesImplicitControl();\n }\n\n get nativeInputRef$() {\n return this._inputStateService.nativeInputRef$.asObservable();\n }\n\n get nativeInputElement$() {\n return this.nativeInputRef$.pipe(\n map((ref) => {\n const el = ref?.element.nativeElement;\n if (!el || !('value' in el)) return null;\n\n return el;\n }),\n );\n }\n\n get nativeInputRef() {\n return this._inputStateService.nativeInputRef();\n }\n\n get autofilled$() {\n return this._inputStateService.autofilled$.asObservable();\n }\n\n get autofilled() {\n return this._inputStateService.autofilled();\n }\n\n get errors$() {\n return this._inputStateService.errors$.asObservable();\n }\n\n get errors() {\n return this._inputStateService.errors();\n }\n\n get shouldDisplayError$() {\n return this._inputStateService.shouldDisplayError$.asObservable();\n }\n\n get shouldDisplayError() {\n return this._inputStateService.shouldDisplayError();\n }\n\n get isFocusedVia$() {\n return this._inputStateService.isFocusedVia$.asObservable();\n }\n\n get isFocusedVia() {\n return this._inputStateService.isFocusedVia();\n }\n\n get errorId$() {\n return this._formFieldStateService.errorId$.asObservable();\n }\n\n get errorId() {\n return this._formFieldStateService.errorId();\n }\n\n get isNeverEmptyInput$() {\n return this._inputStateService.isNeverEmptyInput$.asObservable();\n }\n\n get isNeverEmptyInput() {\n return this._inputStateService.isNeverEmptyInput();\n }\n\n readonly describedBy$ = this._formFieldStateService.describedBy$;\n readonly onInternalUpdate$ = this._inputStateService.onInternalUpdate$;\n readonly onExternalUpdate$ = this._inputStateService.onExternalUpdate$;\n\n constructor() {\n this._inputStateService.usesImplicitControl$.next(!this._ngControl);\n\n Promise.resolve().then(() => {\n const exposeInputVarsDirective = this._injector.get(EXPOSE_INPUT_VARS_TOKEN, null, { optional: true });\n\n if (exposeInputVarsDirective) {\n exposeInputVarsDirective._monitorInput(this as unknown as InputDirective);\n }\n });\n }\n\n ngOnInit(): void {\n const controlStateChanges$ = combineLatest([\n this.control.statusChanges.pipe(startWith(this.control.status)),\n this.control.valueChanges.pipe(startWith(this.control.value)),\n ]).pipe(\n debounceTime(0),\n map(([status, value]) => ({ status, value })),\n );\n\n controlStateChanges$\n .pipe(\n map(() => this.control.errors),\n filter((errors) => !equal(errors, this.errors)),\n tap((errors) => this._inputStateService.errors$.next(errors)),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n controlStateChanges$\n .pipe(\n tap(() => this._detectControlRequiredValidationChanges()),\n tap(() => this._detectControlDisabledChanges()),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n this.control.valueChanges\n ?.pipe(\n takeUntil(this._destroy$),\n tap((value) => {\n if (this._inputStateService.lastUpdateType() === 'internal') {\n this._inputStateService.lastUpdateType$.next(null);\n return;\n }\n\n this._inputStateService.lastUpdateType$.next('external');\n\n this._updateValue(value);\n }),\n )\n .subscribe();\n\n this.nativeInputRef$\n .pipe(\n pairwise(),\n tap(([previousNativeInputRef, currentNativeInputRef]) => {\n if (previousNativeInputRef) {\n this._autofillMonitor.stopMonitoring(previousNativeInputRef.element.nativeElement);\n }\n\n if (currentNativeInputRef) {\n this._autofillMonitor\n .monitor(currentNativeInputRef.element.nativeElement)\n .pipe(takeUntil(this._destroy$))\n .subscribe((event) => this._setAutofilled(event.isAutofilled));\n } else {\n this._setAutofilled(false);\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n this._focusMonitor\n .monitor(this._elementRef, true)\n .pipe(\n tap((origin) => {\n this._inputStateService.isFocusedVia$.next(origin);\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n this.nativeInputRef$\n .pipe(\n tap((nativeInput) => {\n const type = nativeInput?.element.nativeElement.getAttribute('type');\n\n if (!type) return;\n\n if (this._neverEmptyInputs.indexOf(type) > -1) {\n this._inputStateService.isNeverEmptyInput$.next(true);\n } else {\n this._inputStateService.isNeverEmptyInput$.next(false);\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n if (this.nativeInputRef) {\n this._autofillMonitor.stopMonitoring(this.nativeInputRef.element.nativeElement);\n }\n }\n\n focusInputVia(origin: FocusOrigin = 'program') {\n const inputEl = this.nativeInputRef?.element?.nativeElement;\n\n if (inputEl) {\n this._focusMonitor.focusVia(inputEl, origin);\n }\n }\n\n _updateValue(value: T, options: { emitEvent?: boolean } = {}) {\n if (value === this.value || this.disabled) {\n return;\n }\n\n const { emitEvent = true } = options;\n\n this._inputStateService.value$.next(value);\n this._inputStateService.lastUpdateType$.next('internal');\n\n if (this.control.value !== value) {\n this._inputStateService._valueChange(value);\n }\n\n if (emitEvent) {\n this._inputStateService.valueChange$.next(value);\n }\n }\n\n _updateDisabled(value: boolean) {\n if (value === this.disabled) {\n return;\n }\n\n this._inputStateService.disabled$.next(value);\n this._inputStateService.disabledChange$.next(value);\n }\n\n _markAsTouched() {\n if (this.disabled || this.control.touched) {\n return;\n }\n\n this._inputStateService._touched();\n }\n\n _setNativeInputRef(ref: NativeInputRefDirective<J> | null) {\n if (this.nativeInputRef === ref) {\n return;\n }\n\n this._inputStateService.nativeInputRef$.next(ref);\n }\n\n _setAutofilled(value: boolean) {\n if (this.autofilled === value) {\n return;\n }\n\n this._inputStateService.autofilled$.next(value);\n }\n\n _setShouldDisplayError(value: boolean) {\n if (this.shouldDisplayError === value) {\n return;\n }\n\n this._inputStateService.shouldDisplayError$.next(value);\n }\n\n _setEmptyHelper(value: unknown | Observable<unknown>) {\n this._inputStateService.isEmptyHelper$.next(value);\n }\n\n private _detectControlRequiredValidationChanges() {\n const hasRequired = this.control.hasValidator(Validators.required) ?? false;\n const hasRequiredTrue = this.control.hasValidator(Validators.requiredTrue) ?? false;\n\n const isRequired = hasRequired || hasRequiredTrue;\n\n if (isRequired !== this.required) {\n this._inputStateService.required$.next(isRequired);\n this._inputStateService.requiredChange$.next(isRequired);\n }\n }\n\n private _detectControlDisabledChanges() {\n const isDisabled = this.control.disabled;\n\n if (isDisabled !== this.disabled) {\n this._inputStateService.disabled$.next(isDisabled);\n this._inputStateService.disabledChange$.next(isDisabled);\n }\n }\n}\n","import { Directive, ElementRef, inject, InjectionToken } from '@angular/core';\n\nexport const NATIVE_INPUT_REF_TOKEN = new InjectionToken<NativeInputRefDirective>(\n 'ET_NATIVE_INPUT_REF_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n selector: 'input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]',\n standalone: true,\n providers: [{ provide: NATIVE_INPUT_REF_TOKEN, useExisting: NativeInputRefDirective }],\n})\nexport class NativeInputRefDirective<T extends HTMLElement = HTMLElement> {\n readonly element = inject<ElementRef<T>>(ElementRef);\n}\n","import { Directive, inject } from '@angular/core';\nimport { signalHostClasses } from '@ethlete/core';\nimport { FormFieldStateService } from '../services';\n\n@Directive()\nexport class DecoratedFormFieldBase {\n private readonly _formFieldStateService = inject(FormFieldStateService);\n\n readonly hostClassBindings = signalHostClasses({\n 'et-form-field--has-prefix': this._formFieldStateService.hasPrefix,\n 'et-form-field--has-suffix': this._formFieldStateService.hasSuffix,\n });\n}\n","import { Directive, InjectionToken } from '@angular/core';\n\nexport const INPUT_PREFIX_TOKEN = new InjectionToken<InputPrefixDirective>('INPUT_PREFIX_DIRECTIVE_TOKEN');\n\n@Directive({\n selector: '[etInputPrefix]',\n standalone: true,\n host: {\n class: 'et-input-prefix',\n },\n exportAs: 'etInputPrefix',\n providers: [\n {\n provide: INPUT_PREFIX_TOKEN,\n useExisting: InputPrefixDirective,\n },\n ],\n})\nexport class InputPrefixDirective {}\n","import { Directive, InjectionToken } from '@angular/core';\n\nexport const INPUT_SUFFIX_TOKEN = new InjectionToken<InputSuffixDirective>('INPUT_SUFFIX_DIRECTIVE_TOKEN');\n\n@Directive({\n selector: '[etInputSuffix]',\n standalone: true,\n host: {\n class: 'et-input-suffix',\n },\n exportAs: 'etInputSuffix',\n providers: [\n {\n provide: INPUT_SUFFIX_TOKEN,\n useExisting: InputSuffixDirective,\n },\n ],\n})\nexport class InputSuffixDirective {}\n","import { Directive, inject, ViewChild } from '@angular/core';\nimport { INPUT_TOKEN } from '../directives/input';\nimport { NATIVE_INPUT_REF_TOKEN, NativeInputRefDirective } from '../directives/native-input-ref';\n\n@Directive()\nexport class InputBase {\n private readonly __nativeInputRef = inject(NATIVE_INPUT_REF_TOKEN, { optional: true });\n protected readonly input = inject(INPUT_TOKEN);\n\n @ViewChild(NATIVE_INPUT_REF_TOKEN)\n set nativeInputRef(value: NativeInputRefDirective) {\n if (this.__nativeInputRef) return;\n\n this.input._setNativeInputRef(value);\n }\n\n constructor() {\n if (this.__nativeInputRef) {\n this.input._setNativeInputRef(this.__nativeInputRef);\n }\n }\n}\n","import { ContentChildren, Directive, inject } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { TypedQueryList, createDestroy, signalHostClasses, switchQueryListChanges } from '@ethlete/core';\nimport { BehaviorSubject, map, tap } from 'rxjs';\nimport { INPUT_PREFIX_TOKEN, InputPrefixDirective } from '../directives/input-prefix';\nimport { INPUT_SUFFIX_TOKEN, InputSuffixDirective } from '../directives/input-suffix';\nimport { FormFieldStateService } from '../services';\nimport { InputBase } from './input.base';\n\n@Directive()\nexport class DecoratedInputBase extends InputBase {\n private readonly _formFieldStateService = inject(FormFieldStateService);\n readonly _destroy$ = createDestroy();\n\n @ContentChildren(INPUT_PREFIX_TOKEN)\n set inputPrefix(inputPrefix: TypedQueryList<InputPrefixDirective>) {\n this.inputPrefix$.next(inputPrefix);\n }\n protected readonly inputPrefix$ = new BehaviorSubject<TypedQueryList<InputPrefixDirective> | null>(null);\n\n @ContentChildren(INPUT_SUFFIX_TOKEN)\n set inputSuffix(inputSuffix: TypedQueryList<InputSuffixDirective>) {\n this.inputSuffix$.next(inputSuffix);\n }\n protected readonly inputSuffix$ = new BehaviorSubject<TypedQueryList<InputSuffixDirective> | null>(null);\n\n readonly hasPrefix$ = this.inputPrefix$.pipe(\n switchQueryListChanges(),\n map((list) => !!list && list?.length > 0),\n );\n readonly hasSuffix$ = this.inputSuffix$.pipe(\n switchQueryListChanges(),\n map((list) => !!list && list?.length > 0),\n );\n\n readonly hostClassBindings = signalHostClasses({\n 'et-input--has-prefix': toSignal(this.hasPrefix$),\n 'et-input--has-suffix': toSignal(this.hasSuffix$),\n });\n\n constructor() {\n super();\n\n this.hasPrefix$\n .pipe(\n takeUntilDestroyed(),\n tap((hasPrefix) => this._formFieldStateService.hasPrefix$.next(hasPrefix)),\n )\n .subscribe();\n\n this.hasSuffix$\n .pipe(\n takeUntilDestroyed(),\n tap((hasSuffix) => this._formFieldStateService.hasSuffix$.next(hasSuffix)),\n )\n .subscribe();\n }\n}\n","import { Directive, inject, InjectionToken } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { signalHostClasses } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const CHECKBOX_TOKEN = new InjectionToken<CheckboxDirective>('ET_CHECKBOX_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n providers: [{ provide: CHECKBOX_TOKEN, useExisting: CheckboxDirective }],\n exportAs: 'etCheckbox',\n})\nexport class CheckboxDirective {\n readonly input = inject<InputDirective<boolean>>(INPUT_TOKEN);\n readonly checked$ = this.input.value$.pipe(map((value) => !!value));\n readonly indeterminate$ = new BehaviorSubject(false);\n\n readonly hostClassBindings = signalHostClasses({\n 'et-checkbox--checked': toSignal(this.checked$),\n 'et-checkbox--disabled': toSignal(this.input.disabled$),\n 'et-checkbox--indeterminate': toSignal(\n combineLatest([this.checked$, this.indeterminate$]).pipe(\n map(([checked, indeterminate]) => !checked && indeterminate),\n ),\n ),\n });\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n this.input._updateValue(!this.input.value);\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { InputBase } from '../../../../utils';\nimport { CHECKBOX_TOKEN, CheckboxDirective } from '../../directives/checkbox';\n\n@Component({\n selector: 'et-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-checkbox',\n },\n imports: [NgClass, AsyncPipe, NativeInputRefDirective],\n hostDirectives: [CheckboxDirective, { directive: InputDirective, inputs: ['autocomplete'] }],\n})\nexport class CheckboxComponent extends InputBase {\n protected readonly checkbox = inject(CHECKBOX_TOKEN);\n}\n","<input\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\n [attr.checked]=\"(checkbox.checked$ | async) || null\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [disabled]=\"input.disabled$ | async\"\n [attr.id]=\"input.id\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [indeterminate]=\"checkbox.indeterminate$ | async\"\n (click)=\"checkbox._onInputInteraction($event)\"\n (blur)=\"checkbox._controlTouched()\"\n class=\"et-checkbox-native-input\"\n etNativeInputRef\n type=\"checkbox\"\n/>\n\n<div [ngClass]=\"{ 'et-checkbox-check--active': checkbox.checked$ | async }\" class=\"et-checkbox-check\"></div>\n<div\n [ngClass]=\"{ 'et-checkbox-indeterminate--active': checkbox.indeterminate$ | async }\"\n class=\"et-checkbox-indeterminate\"\n></div>\n","import { Directive, InjectionToken, Input, booleanAttribute } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport const DYNAMIC_FORM_FIELD_TOKEN = new InjectionToken<DynamicFormFieldDirective>(\n 'ET_DYNAMIC_FORM_FIELD_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n standalone: true,\n exportAs: 'etDynamicFormField',\n providers: [\n {\n provide: DYNAMIC_FORM_FIELD_TOKEN,\n useExisting: DynamicFormFieldDirective,\n },\n ],\n})\nexport class DynamicFormFieldDirective {\n @Input()\n get hideErrorMessage(): boolean {\n return this._explicitlyHideErrorMessage$.getValue();\n }\n set hideErrorMessage(value: unknown) {\n this._explicitlyHideErrorMessage$.next(booleanAttribute(value));\n }\n get hideErrorMessage$() {\n return this._explicitlyHideErrorMessage$.asObservable();\n }\n private readonly _explicitlyHideErrorMessage$ = new BehaviorSubject(false);\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n InjectionToken,\n OnInit,\n} from '@angular/core';\nimport { createDestroy, TypedQueryList } from '@ethlete/core';\nimport { startWith, takeUntil, tap } from 'rxjs';\nimport { LABEL_TOKEN, LabelComponent } from '../../components/label/components/label';\nimport { FormFieldStateService } from '../../services';\nimport { INPUT_TOKEN, InputDirective } from '../input';\n\nexport const STATIC_FORM_FIELD_TOKEN = new InjectionToken<StaticFormFieldDirective>(\n 'ET_STATIC_FORM_FIELD_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n standalone: true,\n exportAs: 'etStaticFormField',\n providers: [\n FormFieldStateService,\n {\n provide: STATIC_FORM_FIELD_TOKEN,\n useExisting: StaticFormFieldDirective,\n },\n ],\n})\nexport class StaticFormFieldDirective implements OnInit, AfterContentInit {\n private readonly _formFieldStateService = inject(FormFieldStateService);\n private readonly _destroy$ = createDestroy();\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _focusMonitor = inject(FocusMonitor);\n\n @ContentChildren(forwardRef(() => INPUT_TOKEN))\n private readonly _input?: TypedQueryList<InputDirective>;\n\n @ContentChildren(forwardRef(() => LABEL_TOKEN))\n private readonly _label?: TypedQueryList<LabelComponent>;\n\n ngOnInit(): void {\n this._focusMonitor\n .monitor(this._elementRef, true)\n .pipe(\n tap((origin) => {\n this._formFieldStateService.isFocusedVia$.next(origin);\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n ngAfterContentInit(): void {\n this._input?.changes\n .pipe(\n startWith(this._input),\n tap((input) => {\n if (input.length > 1) {\n throw new Error('There should be only one input element in the form field.');\n }\n\n if (input.first) {\n this._formFieldStateService.inputId$.next(input.first.id);\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n this._label?.changes\n .pipe(\n startWith(this._label),\n tap((label) => {\n if (label.length > 1) {\n throw new Error('There should be only one label element in the form field.');\n }\n\n if (label.first) {\n this._formFieldStateService.labelId$.next(label.first.id);\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n}\n","import { Directive, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { signalHostClasses } from '@ethlete/core';\nimport { InputStateService } from '../../services';\nimport { InputTouchedFn, InputValueChangeFn } from '../../types';\n\nexport const WRITEABLE_INPUT_TOKEN = new InjectionToken<WriteableInputDirective>('ET_WRITEABLE_INPUT_DIRECTIVE_TOKEN');\n\nexport const WRITEABLE_INPUT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => WriteableInputDirective),\n multi: true,\n};\n\n@Directive({\n standalone: true,\n exportAs: 'etWriteableInput',\n providers: [\n WRITEABLE_INPUT_VALUE_ACCESSOR,\n InputStateService,\n { provide: WRITEABLE_INPUT_TOKEN, useExisting: WriteableInputDirective },\n ],\n})\nexport class WriteableInputDirective implements ControlValueAccessor {\n readonly _inputStateService = inject(InputStateService);\n\n readonly hostClassBindings = signalHostClasses({\n 'et-required': this._inputStateService.required,\n 'et-disabled': this._inputStateService.disabled,\n 'et-value-is-truthy': this._inputStateService.valueIsTruthy,\n 'et-value-is-falsy': this._inputStateService.valueIsFalsy,\n 'et-empty': this._inputStateService.valueIsEmpty,\n 'et-should-display-error': this._inputStateService.shouldDisplayError,\n 'et-autofilled': this._inputStateService.autofilled,\n 'et-native-input-is-never-empty': this._inputStateService.isNeverEmptyInput,\n });\n\n writeValue(value: unknown) {\n this._inputStateService.value$.next(value);\n }\n\n registerOnChange(fn: InputValueChangeFn) {\n this._inputStateService._valueChange = fn;\n }\n\n registerOnTouched(fn: InputTouchedFn) {\n this._inputStateService._touched = fn;\n }\n\n setDisabledState?(isDisabled: boolean) {\n this._inputStateService.disabled$.next(isDisabled);\n }\n}\n","import { Directive, InjectionToken, Input, booleanAttribute } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport const DYNAMIC_FORM_GROUP_TOKEN = new InjectionToken<DynamicFormGroupDirective>(\n 'ET_DYNAMIC_FORM_GROUP_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n standalone: true,\n exportAs: 'etDynamicFormGroup',\n providers: [\n {\n provide: DYNAMIC_FORM_GROUP_TOKEN,\n useExisting: DynamicFormGroupDirective,\n },\n ],\n})\nexport class DynamicFormGroupDirective {\n @Input()\n get hideErrorMessage(): boolean {\n return this._explicitlyHideErrorMessage$.getValue();\n }\n set hideErrorMessage(value: unknown) {\n this._explicitlyHideErrorMessage$.next(booleanAttribute(value));\n }\n get hideErrorMessage$() {\n return this._explicitlyHideErrorMessage$.asObservable();\n }\n private readonly _explicitlyHideErrorMessage$ = new BehaviorSubject(false);\n}\n","import { AsyncPipe, JsonPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ValidationErrors } from '@angular/forms';\nimport { signalHostClasses } from '@ethlete/core';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { DYNAMIC_FORM_FIELD_TOKEN } from '../../../../directives/dynamic-form-field';\nimport { DYNAMIC_FORM_GROUP_TOKEN } from '../../../../directives/dynamic-form-group';\nimport { FormFieldStateService, FormGroupStateService, VALIDATOR_ERROR_SERVICE_TOKEN } from '../../../../services';\n\nlet _uniqueIdCounter = 0;\n\n@Component({\n selector: 'et-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-error',\n },\n imports: [JsonPipe, AsyncPipe],\n})\nexport class ErrorComponent {\n private readonly _validatorErrorsService = inject(VALIDATOR_ERROR_SERVICE_TOKEN);\n private readonly _formFieldOrGroupStateService =\n inject(FormFieldStateService, { optional: true }) ?? inject(FormGroupStateService);\n\n private readonly _dynamicFormGroupOrField =\n inject(DYNAMIC_FORM_FIELD_TOKEN, { optional: true }) ?? inject(DYNAMIC_FORM_GROUP_TOKEN);\n\n protected readonly errorText$ = new BehaviorSubject<Observable<string> | null>(null);\n\n readonly id = `et-error-${_uniqueIdCounter++}`;\n\n @Input()\n public get errors() {\n return this._errors;\n }\n public set errors(v: ValidationErrors | null) {\n this._errors = v;\n\n if (v) {\n const errorText = this._validatorErrorsService.parse(v);\n\n if (typeof errorText === 'string') {\n this.errorText$.next(of(errorText));\n } else {\n this.errorText$.next(errorText);\n }\n\n this._formFieldOrGroupStateService.errorId$.next(this.id);\n } else {\n this.errorText$.next(null);\n this._formFieldOrGroupStateService.errorId$.next(null);\n }\n }\n private _errors: ValidationErrors | null = null;\n\n readonly hostClassBindings = signalHostClasses({\n 'et-error--has-errors': toSignal(this.errorText$),\n 'cdk-visually-hidden': toSignal(this._dynamicFormGroupOrField.hideErrorMessage$),\n });\n}\n","@if (errorText$ | async | async; as text) {\n <span [id]=\"id\" aria-atomic=\"true\" aria-live=\"polite\"> {{ text }} </span>\n}\n","import { ContentChildren, Directive, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { signalHostClasses, switchQueryListChanges, TypedQueryList } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map, of, switchMap } from 'rxjs';\nimport { InputStateService } from '../../../../services';\nimport { CHECKBOX_TOKEN, CheckboxDirective } from '../checkbox/checkbox.directive';\n\nexport const CHECKBOX_FIELD_TOKEN = new InjectionToken<CheckboxFieldDirective>('ET_CHECKBOX_FIELD_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n providers: [{ provide: CHECKBOX_FIELD_TOKEN, useExisting: CheckboxFieldDirective }],\n exportAs: 'etCheckboxField',\n})\nexport class CheckboxFieldDirective {\n readonly inputState = inject<InputStateService<boolean>>(InputStateService);\n\n @ContentChildren(forwardRef(() => CHECKBOX_TOKEN), { descendants: true })\n set checkbox(checkbox: TypedQueryList<CheckboxDirective>) {\n this._checkbox$.next(checkbox);\n }\n private _checkbox$ = new BehaviorSubject<TypedQueryList<CheckboxDirective> | null>(null);\n\n readonly hostClassBindings = signalHostClasses({\n 'et-checkbox-field--indeterminate': toSignal(\n this._checkbox$.pipe(\n switchQueryListChanges(),\n switchMap((checkboxes) => {\n if (!checkboxes?.length) {\n return of(null);\n }\n\n return combineLatest(checkboxes.map((checkbox) => checkbox.indeterminate$)).pipe(\n map((indeterminateStates) => indeterminateStates.some((isIndeterminate) => isIndeterminate)),\n );\n }),\n ),\n ),\n });\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicFormFieldDirective } from '../../../../directives/dynamic-form-field';\nimport { StaticFormFieldDirective } from '../../../../directives/static-form-field';\nimport { WriteableInputDirective } from '../../../../directives/writeable-input';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error/components/error';\nimport { CheckboxFieldDirective } from '../../directives/checkbox-field';\n\n@Component({\n selector: 'et-checkbox-field, et-checkbox-card-field',\n template: `\n <div class=\"et-checkbox-field-container\">\n <ng-content />\n <ng-content />\n </div>\n <et-error [errors]=\"inputState.errors$ | async\" />\n `,\n styleUrls: ['./checkbox-field.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-form-field et-checkbox-field',\n },\n hostDirectives: [\n StaticFormFieldDirective,\n WriteableInputDirective,\n {\n directive: forwardRef(() => DynamicFormFieldDirective) as Type<DynamicFormFieldDirective>,\n inputs: ['hideErrorMessage'],\n },\n CheckboxFieldDirective,\n ],\n imports: [ErrorComponent, AsyncPipe],\n})\nexport class CheckboxFieldComponent {\n protected readonly inputState = inject(InputStateService);\n}\n","import { Directive, InjectionToken } from '@angular/core';\nimport { FormGroupStateService } from '../../services';\n\nexport const STATIC_FORM_GROUP_TOKEN = new InjectionToken<StaticFormGroupDirective>(\n 'ET_STATIC_FORM_GROUP_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n standalone: true,\n exportAs: 'etStaticFormGroup',\n providers: [\n FormGroupStateService,\n {\n provide: STATIC_FORM_GROUP_TOKEN,\n useExisting: StaticFormGroupDirective,\n },\n ],\n})\nexport class StaticFormGroupDirective {}\n","import { Directive, inject, InjectionToken } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { signalAttributes } from '@ethlete/core';\nimport { map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\nimport { CHECKBOX_TOKEN } from '../checkbox';\nimport { CHECKBOX_GROUP_TOKEN } from '../checkbox-group';\n\nexport const CHECKBOX_GROUP_CONTROL_TOKEN = new InjectionToken<CheckboxGroupControlDirective>(\n 'ET_CHECKBOX_GROUP_CONTROL_TOKEN',\n);\n\n@Directive({\n selector: '[etCheckboxGroupControl]',\n standalone: true,\n exportAs: 'etCheckboxGroupControl',\n providers: [{ provide: CHECKBOX_GROUP_CONTROL_TOKEN, useExisting: CheckboxGroupControlDirective }],\n})\nexport class CheckboxGroupControlDirective {\n readonly checkbox = inject(CHECKBOX_TOKEN);\n readonly input = inject<InputDirective<boolean>>(INPUT_TOKEN);\n readonly group = inject(CHECKBOX_GROUP_TOKEN);\n\n readonly inputAttributeBindings = signalAttributes(this.input.nativeInputRef$.pipe(map((el) => el?.element)), {\n 'aria-controls': toSignal(\n this.group.checkboxesWithoutGroupCtrl$.pipe(\n map((checkboxes) => checkboxes.map((checkbox) => checkbox.input.id).join(' ')),\n ),\n ),\n });\n}\n","import { AfterContentInit, ContentChild, ContentChildren, Directive, forwardRef, InjectionToken } from '@angular/core';\nimport { createDestroy, TypedQueryList } from '@ethlete/core';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n of,\n startWith,\n switchMap,\n takeUntil,\n tap,\n withLatestFrom,\n} from 'rxjs';\nimport {\n CHECKBOX_GROUP_CONTROL_TOKEN,\n CheckboxGroupControlDirective,\n} from '../checkbox-group-control/checkbox-group-control.directive';\nimport { CHECKBOX_TOKEN, CheckboxDirective } from '../checkbox/checkbox.directive';\n\nexport const CHECKBOX_GROUP_TOKEN = new InjectionToken<CheckboxGroupDirective>('ET_CHECKBOX_GROUP_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n host: {\n role: 'group',\n },\n exportAs: 'etCheckboxGroup',\n providers: [{ provide: CHECKBOX_GROUP_TOKEN, useExisting: CheckboxGroupDirective }],\n})\nexport class CheckboxGroupDirective implements AfterContentInit {\n private readonly _destroy$ = createDestroy();\n\n @ContentChildren(forwardRef(() => CHECKBOX_TOKEN), { descendants: true })\n readonly checkboxes?: TypedQueryList<CheckboxDirective>;\n\n @ContentChild(forwardRef(() => CHECKBOX_GROUP_CONTROL_TOKEN))\n readonly groupControl?: CheckboxGroupControlDirective;\n\n readonly checkboxesWithoutGroupCtrlObservable$ = new BehaviorSubject<Observable<CheckboxDirective[]> | null>(null);\n\n readonly checkboxesWithoutGroupCtrl$ = this.checkboxesWithoutGroupCtrlObservable$.pipe(\n switchMap((value) => value ?? of([])),\n );\n\n ngAfterContentInit(): void {\n if (!this.groupControl) {\n console.warn('A checkbox group without a group control is totally useless.');\n return;\n }\n\n if (!this.checkboxes) {\n return;\n }\n\n this.checkboxesWithoutGroupCtrlObservable$.next(\n this.checkboxes.changes.pipe(\n startWith(this.checkboxes),\n map((queryList) =>\n queryList\n .toArray()\n .filter((cb): cb is CheckboxDirective => !!cb)\n .filter((cb) => cb.input.id !== this.groupControl?.checkbox.input.id),\n ),\n ),\n );\n\n if (this.groupControl.input.usesImplicitControl) {\n this.checkboxesWithoutGroupCtrl$\n .pipe(\n switchMap((checkboxes) => combineLatest(checkboxes.map((checkbox) => checkbox.input.disabled$))),\n map((disabledMap) => disabledMap.every((disabled) => disabled)),\n tap((allDisabled) => this.groupControl?.input._updateDisabled(allDisabled)),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n this._monitorCheckboxes();\n }\n\n private _monitorCheckboxes(): void {\n if (!this.checkboxesWithoutGroupCtrl$) {\n return;\n }\n\n this.checkboxesWithoutGroupCtrl$\n .pipe(\n takeUntil(this._destroy$),\n switchMap((checkboxes) =>\n combineLatest(checkboxes.map((checkbox) => checkbox.input.value$)).pipe(\n tap((checkStates) => {\n if (!this.groupControl) {\n return;\n }\n\n const allChecked = checkStates.every((checked) => checked);\n const allUnchecked = checkStates.every((checked) => !checked);\n\n if (allChecked) {\n this.groupControl.input._updateValue(true);\n } else {\n this.groupControl.input._updateValue(false, { emitEvent: false });\n }\n\n this.groupControl.checkbox.indeterminate$.next(!allChecked && !allUnchecked);\n }),\n ),\n ),\n )\n .subscribe();\n\n this.groupControl?.input.valueChange$\n .pipe(\n startWith(this.groupControl?.input.value),\n withLatestFrom(this.checkboxesWithoutGroupCtrl$),\n takeUntil(this._destroy$),\n tap(([checked, checkboxes]) => {\n for (const checkbox of checkboxes ?? []) {\n if (checkbox.input.id !== this.groupControl?.input.id) {\n checkbox.input._updateValue(!!checked);\n }\n }\n }),\n )\n .subscribe();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { StaticFormGroupDirective } from '../../../../directives/static-form-group';\nimport { CheckboxGroupDirective } from '../../directives/checkbox-group';\n\n@Component({\n selector: 'et-checkbox-group',\n template: ` <ng-content /> `,\n styleUrls: ['./checkbox-group.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-form-group et-checkbox-group',\n },\n hostDirectives: [CheckboxGroupDirective, StaticFormGroupDirective],\n})\nexport class CheckboxGroupComponent {}\n","import { LabelComponent } from '../label/components/label';\nimport { CheckboxComponent } from './components/checkbox';\nimport { CheckboxFieldComponent } from './components/checkbox-field';\nimport { CheckboxGroupComponent } from './components/checkbox-group';\nimport { CheckboxGroupControlDirective } from './directives/checkbox-group-control';\n\nexport const CheckboxImports = [\n CheckboxComponent,\n CheckboxFieldComponent,\n CheckboxGroupComponent,\n CheckboxGroupControlDirective,\n LabelComponent,\n] as const;\n","import { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { format } from 'date-fns';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const DATE_INPUT_TOKEN = new InjectionToken<DateInputDirective>('ET_DATE_INPUT_DIRECTIVE_TOKEN');\nexport const DATE_INPUT_FORMAT_TOKEN = new InjectionToken<string>('ET_DATE_INPUT_FORMAT_TOKEN');\nexport const DEFAULT_DATE_INPUT_FORMAT = \"yyyy-MM-dd'T'HH:mm:ssxxx\";\n\nexport const provideDateFormat = (dateFormat: string) => ({\n provide: DATE_INPUT_FORMAT_TOKEN,\n useValue: dateFormat,\n});\n\nconst DATE_INPUT_FORMAT = 'yyyy-MM-dd';\n\n@Directive({\n standalone: true,\n exportAs: 'etDateInput',\n providers: [{ provide: DATE_INPUT_TOKEN, useExisting: DateInputDirective }],\n})\nexport class DateInputDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n private readonly _dateFormat = inject(DATE_INPUT_FORMAT_TOKEN, { optional: true }) || DEFAULT_DATE_INPUT_FORMAT;\n readonly input = inject<InputDirective<string | null>>(INPUT_TOKEN);\n\n ngOnInit(): void {\n combineLatest([this.input.value$, this.input.nativeInputElement$])\n .pipe(\n tap(([value, inputEl]) => {\n if (!inputEl) return;\n\n const formattedDate = value ? format(value, DATE_INPUT_FORMAT) : '';\n\n if (formattedDate !== inputEl.value) {\n inputEl.value = formattedDate;\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n const input = event.target as HTMLInputElement;\n const value = input.valueAsDate;\n\n if (!value) {\n this.input._updateValue(null);\n } else {\n const formattedDate = format(value, this._dateFormat);\n\n this.input._updateValue(formattedDate);\n }\n\n this.input._markAsTouched();\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { DATE_INPUT_TOKEN, DateInputDirective } from '../../directives/date-input';\n\n@Component({\n selector: 'et-date-input',\n templateUrl: './date-input.component.html',\n styleUrls: ['./date-input.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-date-input',\n },\n imports: [AsyncPipe, NativeInputRefDirective],\n hostDirectives: [DateInputDirective, { directive: InputDirective, inputs: ['autocomplete', 'placeholder'] }],\n})\nexport class DateInputComponent extends DecoratedInputBase {\n protected readonly dateInput = inject(DATE_INPUT_TOKEN);\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"dateInput._onInputInteraction($event)\"\n (blur)=\"dateInput._controlTouched()\"\n class=\"et-input-native-control et-date-input-native-control\"\n type=\"date\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n","import { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { format } from 'date-fns';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const DATE_TIME_INPUT_TOKEN = new InjectionToken<DateTimeInputDirective>('ET_DATE_TIME_INPUT_DIRECTIVE_TOKEN');\nexport const DATE_TIME_INPUT_FORMAT_TOKEN = new InjectionToken<string>('ET_DATE_TIME_INPUT_FORMAT_TOKEN');\nexport const DEFAULT_DATE_TIME_INPUT_FORMAT = \"yyyy-MM-dd'T'HH:mm:ssxxx\";\n\nexport const provideDateTimeFormat = (dateFormat: string) => ({\n provide: DATE_TIME_INPUT_FORMAT_TOKEN,\n useValue: dateFormat,\n});\n\nconst DATE_TIME_INPUT_FORMAT = \"yyyy-MM-dd'T'HH:mm:ss.SSS\";\n\n@Directive({\n standalone: true,\n exportAs: 'etDateTimeInput',\n providers: [{ provide: DATE_TIME_INPUT_TOKEN, useExisting: DateTimeInputDirective }],\n})\nexport class DateTimeInputDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n private readonly _dateFormat =\n inject(DATE_TIME_INPUT_FORMAT_TOKEN, { optional: true }) || DEFAULT_DATE_TIME_INPUT_FORMAT;\n readonly input = inject<InputDirective<string | null>>(INPUT_TOKEN);\n\n ngOnInit(): void {\n combineLatest([this.input.value$, this.input.nativeInputElement$])\n .pipe(\n tap(([value, inputEl]) => {\n if (!inputEl) return;\n\n const formattedDate = value ? format(value, DATE_TIME_INPUT_FORMAT) : '';\n\n if (formattedDate !== inputEl.value) {\n inputEl.value = formattedDate;\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n const input = event.target as HTMLInputElement;\n const value = input.value;\n\n if (!value) {\n this.input._updateValue(null);\n } else {\n const formattedDate = format(value, this._dateFormat);\n\n this.input._updateValue(formattedDate);\n }\n\n this.input._markAsTouched();\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { DATE_TIME_INPUT_TOKEN, DateTimeInputDirective } from '../../directives/date-time-input';\n\n@Component({\n selector: 'et-date-time-input',\n templateUrl: './date-time-input.component.html',\n styleUrls: ['./date-time-input.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-date-time-input',\n },\n imports: [AsyncPipe, NativeInputRefDirective],\n hostDirectives: [DateTimeInputDirective, { directive: InputDirective, inputs: ['autocomplete', 'placeholder'] }],\n})\nexport class DateTimeInputComponent extends DecoratedInputBase {\n protected readonly dateInput = inject(DATE_TIME_INPUT_TOKEN);\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"dateInput._onInputInteraction($event)\"\n (blur)=\"dateInput._controlTouched()\"\n class=\"et-input-native-control et-date-time-input-native-control\"\n type=\"datetime-local\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n","import { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const EMAIL_INPUT_TOKEN = new InjectionToken<EmailInputDirective>('ET_EMAIL_INPUT_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n exportAs: 'etEmailInput',\n providers: [{ provide: EMAIL_INPUT_TOKEN, useExisting: EmailInputDirective }],\n})\nexport class EmailInputDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n readonly input = inject<InputDirective<string | null>>(INPUT_TOKEN);\n\n ngOnInit(): void {\n combineLatest([this.input.value$, this.input.nativeInputElement$])\n .pipe(\n tap(([value, inputEl]) => {\n if (!inputEl) return;\n\n if (value !== inputEl.value) {\n inputEl.value = value ?? '';\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n const input = event.target as HTMLInputElement;\n const value = input.value;\n\n if (value === '') {\n this.input._updateValue(null);\n } else {\n this.input._updateValue(value);\n }\n\n this.input._markAsTouched();\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { EMAIL_INPUT_TOKEN, EmailInputDirective } from '../../directives/email-input';\n\n@Component({\n selector: 'et-email-input',\n templateUrl: './email-input.component.html',\n styleUrls: ['./email-input.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-email-input',\n },\n imports: [AsyncPipe, NativeInputRefDirective],\n hostDirectives: [EmailInputDirective, { directive: InputDirective, inputs: ['autocomplete', 'placeholder'] }],\n})\nexport class EmailInputComponent extends DecoratedInputBase {\n protected readonly emailInput = inject(EMAIL_INPUT_TOKEN);\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"emailInput._onInputInteraction($event)\"\n (blur)=\"emailInput._controlTouched()\"\n class=\"et-input-native-control et-email-input-native-control\"\n type=\"email\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormFieldDirective } from '../../../../directives/dynamic-form-field';\nimport { StaticFormFieldDirective } from '../../../../directives/static-form-field';\nimport { WriteableInputDirective } from '../../../../directives/writeable-input';\nimport { InputStateService } from '../../../../services';\nimport { DecoratedFormFieldBase } from '../../../../utils';\nimport { ErrorComponent } from '../../../error/components/error';\n\n@Component({\n selector: 'et-input-field',\n template: `\n <ng-content select=\"et-label\" />\n <div class=\"et-input-field-input\">\n <ng-content />\n </div>\n <et-error [errors]=\"inputState.errors$ | async\" />\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-form-field et-input-field',\n },\n hostDirectives: [\n StaticFormFieldDirective,\n WriteableInputDirective,\n {\n directive: forwardRef(() => DynamicFormFieldDirective) as Type<DynamicFormFieldDirective>,\n inputs: ['hideErrorMessage'],\n },\n ],\n imports: [ErrorComponent, AsyncPipe],\n})\nexport class InputFieldComponent extends DecoratedFormFieldBase {\n protected readonly inputState = inject(InputStateService);\n}\n","import { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const NUMBER_INPUT_TOKEN = new InjectionToken<NumberInputDirective>('ET_NUMBER_INPUT_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n exportAs: 'etNumberInput',\n providers: [{ provide: NUMBER_INPUT_TOKEN, useExisting: NumberInputDirective }],\n})\nexport class NumberInputDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n readonly input = inject<InputDirective<number | null>>(INPUT_TOKEN);\n\n ngOnInit(): void {\n combineLatest([this.input.value$, this.input.nativeInputElement$])\n .pipe(\n tap(([value, inputEl]) => {\n if (!inputEl) return;\n\n const val = value !== null ? `${value}` : '';\n\n if (val !== inputEl.value) {\n inputEl.value = val;\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n const input = event.target as HTMLInputElement;\n const value = input.valueAsNumber;\n\n if (Number.isNaN(value)) {\n this.input._updateValue(null);\n } else {\n this.input._updateValue(value);\n }\n\n this.input._markAsTouched();\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { NUMBER_INPUT_TOKEN, NumberInputDirective } from '../../directives/number-input';\n\n@Component({\n selector: 'et-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-number-input',\n },\n imports: [AsyncPipe, NativeInputRefDirective],\n hostDirectives: [NumberInputDirective, { directive: InputDirective, inputs: ['autocomplete', 'placeholder'] }],\n})\nexport class NumberInputComponent extends DecoratedInputBase {\n protected readonly numberInput = inject(NUMBER_INPUT_TOKEN);\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"numberInput._onInputInteraction($event)\"\n (blur)=\"numberInput._controlTouched()\"\n class=\"et-input-native-control et-number-input-native-control\"\n type=\"number\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n","import { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const PASSWORD_INPUT_TOKEN = new InjectionToken<PasswordInputDirective>('ET_PASSWORD_INPUT_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n exportAs: 'etPasswordInput',\n providers: [{ provide: PASSWORD_INPUT_TOKEN, useExisting: PasswordInputDirective }],\n})\nexport class PasswordInputDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n readonly input = inject<InputDirective<string | null>>(INPUT_TOKEN);\n readonly showPassword$ = new BehaviorSubject(false);\n\n ngOnInit(): void {\n combineLatest([this.input.value$, this.input.nativeInputElement$])\n .pipe(\n tap(([value, inputEl]) => {\n if (!inputEl) return;\n\n if (value !== inputEl.value) {\n inputEl.value = value ?? '';\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n const input = event.target as HTMLInputElement;\n const value = input.value;\n\n if (value === '') {\n this.input._updateValue(null);\n } else {\n this.input._updateValue(value);\n }\n\n this.input._markAsTouched();\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n _toggleShowPassword() {\n this.showPassword$.next(!this.showPassword$.value);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { PASSWORD_INPUT_TOKEN, PasswordInputDirective } from '../../directives/password-input';\n\n@Component({\n selector: 'et-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-password-input',\n },\n imports: [AsyncPipe, NativeInputRefDirective],\n hostDirectives: [PasswordInputDirective, { directive: InputDirective, inputs: ['autocomplete', 'placeholder'] }],\n})\nexport class PasswordInputComponent extends DecoratedInputBase {\n protected readonly passwordInput = inject(PASSWORD_INPUT_TOKEN);\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.type]=\"(passwordInput.showPassword$ | async) ? 'text' : 'password'\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"passwordInput._onInputInteraction($event)\"\n (blur)=\"passwordInput._controlTouched()\"\n class=\"et-input-native-control et-password-input-native-control\"\n etNativeInputRef\n spellcheck=\"false\"\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n","import { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const SEARCH_INPUT_TOKEN = new InjectionToken<SearchInputDirective>('ET_SEARCH_INPUT_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n exportAs: 'etSearchInput',\n providers: [{ provide: SEARCH_INPUT_TOKEN, useExisting: SearchInputDirective }],\n})\nexport class SearchInputDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n readonly input = inject<InputDirective<string | null>>(INPUT_TOKEN);\n\n ngOnInit(): void {\n combineLatest([this.input.value$, this.input.nativeInputElement$])\n .pipe(\n tap(([value, inputEl]) => {\n if (!inputEl) return;\n\n if (value !== inputEl.value) {\n inputEl.value = value ?? '';\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n const input = event.target as HTMLInputElement;\n const value = input.value;\n\n if (value === '') {\n this.input._updateValue(null);\n } else {\n this.input._updateValue(value);\n }\n\n this.input._markAsTouched();\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n _clear(event?: Event) {\n if (this.input.value === null) return;\n\n event?.preventDefault();\n event?.stopPropagation();\n\n this.input._updateValue(null);\n this._controlTouched();\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { SEARCH_INPUT_TOKEN, SearchInputDirective } from '../../directives/search-input';\n\n@Component({\n selector: 'et-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-search-input',\n },\n imports: [AsyncPipe, NativeInputRefDirective],\n hostDirectives: [SearchInputDirective, { directive: InputDirective, inputs: ['autocomplete', 'placeholder'] }],\n})\nexport class SearchInputComponent extends DecoratedInputBase {\n protected readonly searchInput = inject(SEARCH_INPUT_TOKEN);\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"searchInput._onInputInteraction($event)\"\n (blur)=\"searchInput._controlTouched()\"\n (keydown.escape)=\"searchInput._clear($event)\"\n class=\"et-input-native-control et-search-input-native-control\"\n type=\"search\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n","import { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const TEXT_INPUT_TOKEN = new InjectionToken<TextInputDirective>('ET_TEXT_INPUT_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n exportAs: 'etTextInput',\n providers: [{ provide: TEXT_INPUT_TOKEN, useExisting: TextInputDirective }],\n})\nexport class TextInputDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n readonly input = inject<InputDirective<string | null>>(INPUT_TOKEN);\n\n ngOnInit(): void {\n combineLatest([this.input.value$, this.input.nativeInputElement$])\n .pipe(\n tap(([value, inputEl]) => {\n if (!inputEl) return;\n\n if (value !== inputEl.value) {\n inputEl.value = value ?? '';\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n const input = event.target as HTMLInputElement;\n const value = input.value;\n\n if (value === '') {\n this.input._updateValue(null);\n } else {\n this.input._updateValue(value);\n }\n\n this.input._markAsTouched();\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { TEXT_INPUT_TOKEN, TextInputDirective } from '../../directives/text-input';\n@Component({\n selector: 'et-text-input',\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-text-input',\n },\n imports: [AsyncPipe, NativeInputRefDirective],\n hostDirectives: [TextInputDirective, { directive: InputDirective, inputs: ['autocomplete', 'placeholder'] }],\n})\nexport class TextInputComponent extends DecoratedInputBase {\n protected readonly textInput = inject(TEXT_INPUT_TOKEN);\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"textInput._onInputInteraction($event)\"\n (blur)=\"textInput._controlTouched()\"\n class=\"et-input-native-control et-text-input-native-control\"\n type=\"text\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n","import { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const TEXTAREA_INPUT_TOKEN = new InjectionToken<TextareaInputDirective>('ET_TEXTAREA_INPUT_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n exportAs: 'etTextareaInput',\n providers: [{ provide: TEXTAREA_INPUT_TOKEN, useExisting: TextareaInputDirective }],\n})\nexport class TextareaInputDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n readonly input = inject<InputDirective<string | null>>(INPUT_TOKEN);\n\n ngOnInit(): void {\n combineLatest([this.input.value$, this.input.nativeInputElement$])\n .pipe(\n tap(([value, inputEl]) => {\n if (!inputEl) return;\n\n if (value !== inputEl.value) {\n inputEl.value = value ?? '';\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n const input = event.target as HTMLTextAreaElement;\n const value = input.value;\n\n if (value === '') {\n this.input._updateValue(null);\n } else {\n this.input._updateValue(value);\n }\n\n this.input._markAsTouched();\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { TEXTAREA_INPUT_TOKEN, TextareaInputDirective } from '../../directives/textarea-input';\n\n@Component({\n selector: 'et-textarea-input',\n templateUrl: './textarea-input.component.html',\n styleUrls: ['./textarea-input.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-textarea-input',\n },\n imports: [AsyncPipe, NativeInputRefDirective],\n hostDirectives: [TextareaInputDirective, { directive: InputDirective, inputs: ['autocomplete', 'placeholder'] }],\n})\nexport class TextareaInputComponent extends DecoratedInputBase {\n protected readonly textareaInput = inject(TEXTAREA_INPUT_TOKEN);\n\n @Input({ transform: numberAttribute })\n cols: number | null = null;\n\n @Input({ transform: numberAttribute })\n rows: number | null = null;\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<textarea\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [cols]=\"cols\"\n [rows]=\"rows\"\n (input)=\"textareaInput._onInputInteraction($event)\"\n (blur)=\"textareaInput._controlTouched()\"\n class=\"et-input-native-control et-textarea-input-native-control\"\n etNativeInputRef\n></textarea>\n\n<ng-content select=\"[etInputSuffix]\" />\n","import { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { format, parse } from 'date-fns';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const TIME_INPUT_TOKEN = new InjectionToken<TimeInputDirective>('ET_TIME_INPUT_DIRECTIVE_TOKEN');\nexport const TIME_INPUT_FORMAT_TOKEN = new InjectionToken<string>('ET_TIME_INPUT_FORMAT_TOKEN');\nexport const DEFAULT_TIME_INPUT_FORMAT = 'HH:mm';\n\nexport const provideTimeFormat = (timeFormat: string) => ({\n provide: TIME_INPUT_FORMAT_TOKEN,\n useValue: timeFormat,\n});\n\nconst TIME_INPUT_FORMAT = 'HH:mm';\n\n@Directive({\n standalone: true,\n exportAs: 'etTimeInput',\n providers: [{ provide: TIME_INPUT_TOKEN, useExisting: TimeInputDirective }],\n})\nexport class TimeInputDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n private readonly _timeFormat = inject(TIME_INPUT_FORMAT_TOKEN, { optional: true }) || DEFAULT_TIME_INPUT_FORMAT;\n readonly input = inject<InputDirective<string | null>>(INPUT_TOKEN);\n\n ngOnInit(): void {\n combineLatest([this.input.value$, this.input.nativeInputElement$])\n .pipe(\n tap(([value, inputEl]) => {\n if (!inputEl) return;\n\n const formattedTime = value ? format(parse(value, this._timeFormat, new Date()), TIME_INPUT_FORMAT) : '';\n\n if (formattedTime !== inputEl.value) {\n inputEl.value = formattedTime;\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n const input = event.target as HTMLInputElement;\n const value = input.value;\n\n if (!value) {\n this.input._updateValue(null);\n } else {\n const formattedTime = format(parse(value, this._timeFormat, new Date()), this._timeFormat);\n\n this.input._updateValue(formattedTime);\n }\n\n this.input._markAsTouched();\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { TIME_INPUT_TOKEN, TimeInputDirective } from '../../directives/time-input';\n\n@Component({\n selector: 'et-time-input',\n templateUrl: './time-input.component.html',\n styleUrls: ['./time-input.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-time-input',\n },\n imports: [AsyncPipe, NativeInputRefDirective],\n hostDirectives: [TimeInputDirective, { directive: InputDirective, inputs: ['autocomplete', 'placeholder'] }],\n})\nexport class TimeInputComponent extends DecoratedInputBase {\n protected readonly timeInput = inject(TIME_INPUT_TOKEN);\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"timeInput._onInputInteraction($event)\"\n (blur)=\"timeInput._controlTouched()\"\n class=\"et-input-native-control et-time-input-native-control\"\n type=\"time\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n","import { Directive, inject, isDevMode, OnInit } from '@angular/core';\nimport { createDestroy, ResizeObserverService } from '@ethlete/core';\nimport { debounceTime, takeUntil } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\n@Directive({\n standalone: true,\n selector: 'et-textarea-input[etAutosize]',\n host: {\n class: 'et-textarea--autosize',\n },\n})\nexport class AutosizeTextareaDirective implements OnInit {\n private readonly _input = inject<InputDirective<string | null>>(INPUT_TOKEN, { host: true });\n private readonly _resizeObserver = inject(ResizeObserverService);\n private readonly _destroy$ = createDestroy();\n\n get element() {\n if (!this._input.nativeInputRef?.element) {\n if (isDevMode()) {\n throw new Error('AutosizeTextareaDirective must be used with an input that has a native input element');\n }\n\n return null;\n }\n\n return this._input.nativeInputRef.element.nativeElement;\n }\n\n ngOnInit(): void {\n if (!this.element) {\n return;\n }\n\n this._resizeObserver\n .observe(this.element)\n .pipe(debounceTime(1), takeUntil(this._destroy$))\n .subscribe(() => this.updateSize());\n\n this.updateSize();\n }\n\n updateSize() {\n if (!this.element) {\n return;\n }\n\n this.element.style.height = '0';\n this.element.style.height = `${this.element.scrollHeight}px`;\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { Directive, TemplateRef, ViewContainerRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, tap } from 'rxjs';\nimport { INPUT_TOKEN } from '../../../../directives/input';\n\n// Browser compatibility for the HTMLElement.showPicker method as of 14.02.2024\n// https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/showPicker#browser_compatibility\nconst SHOW_PICKER_SUPPORT = {\n firefox: ['color', 'date', 'datetime-local', 'file'],\n safari: ['color', 'file', 'time'],\n firefoxAndroid: ['color', 'date', 'datetime-local', 'file', 'month', 'time', 'week'],\n safariIOS: ['file'],\n};\n\n@Directive({\n selector: '[etIfSupportsShowPicker]',\n standalone: true,\n})\nexport class IfSupportsShowPickerDirective {\n readonly input = inject(INPUT_TOKEN);\n readonly platform = inject(Platform);\n readonly templateRef = inject(TemplateRef);\n readonly viewContainerRef = inject(ViewContainerRef);\n didCreateView = false;\n\n constructor() {\n this.input.nativeInputRef$\n .pipe(\n takeUntilDestroyed(),\n distinctUntilChanged(),\n tap((value) => {\n const inputElement = value?.element.nativeElement;\n\n if (inputElement && 'type' in inputElement) {\n const type = inputElement.type as string;\n\n if (this.currentPlatformSupportsShowPickerForInput(type) && !this.didCreateView) {\n this.viewContainerRef.createEmbeddedView(this.templateRef);\n this.didCreateView = true;\n } else if (this.didCreateView) {\n this.viewContainerRef.clear();\n this.didCreateView = false;\n }\n }\n }),\n )\n .subscribe();\n }\n\n getShowPickerSupportPlatformKey() {\n if (this.platform.ANDROID || this.platform.IOS) {\n // Mobile\n if (this.platform.FIREFOX) {\n return 'firefoxAndroid';\n } else if (this.platform.SAFARI) {\n return 'safariIOS';\n }\n } else {\n // Desktop\n if (this.platform.FIREFOX) {\n return 'firefox';\n } else if (this.platform.SAFARI) {\n return 'safari';\n }\n }\n return null;\n }\n\n currentPlatformSupportsShowPickerForInput(inputType: string) {\n const platform = this.getShowPickerSupportPlatformKey();\n\n if (!inputType) return false;\n if (!platform) return true;\n\n return SHOW_PICKER_SUPPORT[platform].includes(inputType);\n }\n}\n","import { Directive, InjectionToken, inject } from '@angular/core';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const SHOW_PICKER_TRIGGER_TOKEN = new InjectionToken<ShowPickerTriggerDirective>('SHOW_PICKER_TRIGGER_TOKEN');\n\n@Directive({\n selector: '[etShowPickerTrigger]',\n standalone: true,\n providers: [\n {\n provide: SHOW_PICKER_TRIGGER_TOKEN,\n useExisting: ShowPickerTriggerDirective,\n },\n ],\n host: {\n '(click)': '_onInputInteraction($event)',\n },\n})\nexport class ShowPickerTriggerDirective {\n readonly input = inject<InputDirective>(INPUT_TOKEN);\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n const el = this.input.nativeInputRef?.element.nativeElement;\n\n if (el && 'showPicker' in el) {\n //@ts-expect-error showPicker is currently not in the type definition\n // See https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/showPicker\n el.showPicker();\n }\n }\n}\n","import { Directive, inject, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { distinctUntilChanged, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN } from '../input';\n\n@Directive({\n selector: '[etIfInputEmpty]',\n standalone: true,\n})\nexport class IfInputEmptyDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n private readonly _input = inject(INPUT_TOKEN);\n private readonly _templateRef = inject(TemplateRef);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n\n private _didCreateView = false;\n\n ngOnInit() {\n this._input.value$\n .pipe(\n takeUntil(this._destroy$),\n distinctUntilChanged(),\n tap((value) => {\n if (!value) {\n if (!this._didCreateView) {\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n this._didCreateView = true;\n }\n } else {\n this._viewContainerRef.clear();\n this._didCreateView = false;\n }\n }),\n )\n .subscribe();\n }\n}\n","import { Directive, inject, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { distinctUntilChanged, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN } from '../input';\n\n@Directive({\n selector: '[etIfInputFilled]',\n standalone: true,\n})\nexport class IfInputFilledDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n private readonly _input = inject(INPUT_TOKEN);\n private readonly _templateRef = inject(TemplateRef);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n\n private _didCreateView = false;\n\n ngOnInit() {\n this._input.value$\n .pipe(\n takeUntil(this._destroy$),\n distinctUntilChanged(),\n tap((value) => {\n if (value) {\n if (!this._didCreateView) {\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n this._didCreateView = true;\n }\n } else {\n this._viewContainerRef.clear();\n this._didCreateView = false;\n }\n }),\n )\n .subscribe();\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { INPUT_TOKEN } from '../../../../directives/input';\nimport { PASSWORD_INPUT_TOKEN } from '../../directives/password-input';\n\n@Component({\n selector: 'et-password-input-toggle',\n templateUrl: './password-input-toggle.component.html',\n styleUrls: ['./password-input-toggle.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-password-input-toggle',\n },\n imports: [AsyncPipe],\n})\nexport class PasswordInputToggleComponent {\n protected readonly passwordInput = inject(PASSWORD_INPUT_TOKEN);\n protected readonly input = inject(INPUT_TOKEN);\n\n @Input()\n ariaLabel?: string;\n}\n","<button\n [attr.aria-controls]=\"input.id\"\n [attr.aria-pressed]=\"passwordInput.showPassword$ | async\"\n [class.et-password-input-toggle-button--active]=\"passwordInput.showPassword$ | async\"\n [attr.aria-label]=\"ariaLabel || null\"\n [disabled]=\"input.disabled$ | async\"\n (click)=\"passwordInput._toggleShowPassword(); input.focusInputVia()\"\n class=\"et-password-input-toggle-button\"\n type=\"button\"\n tabindex=\"-1\"\n>\n <ng-content />\n</button>\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { INPUT_TOKEN } from '../../../../directives/input';\nimport { SEARCH_INPUT_TOKEN } from '../../directives/search-input';\n\n@Component({\n selector: 'et-search-input-clear',\n templateUrl: './search-input-clear.component.html',\n styleUrls: ['./search-input-clear.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-search-input-clear',\n },\n imports: [AsyncPipe],\n})\nexport class SearchInputClearComponent {\n protected readonly searchInput = inject(SEARCH_INPUT_TOKEN);\n protected readonly input = inject(INPUT_TOKEN);\n\n @Input()\n ariaLabel?: string;\n}\n","<button\n [attr.aria-controls]=\"input.id\"\n [attr.aria-label]=\"ariaLabel || null\"\n [disabled]=\"input.disabled$ | async\"\n (click)=\"searchInput._clear(); input.focusInputVia()\"\n class=\"et-search-input-clear-button\"\n type=\"button\"\n>\n <ng-content />\n</button>\n","import { IfInputEmptyDirective } from '../../directives/if-input-empty';\nimport { IfInputFilledDirective } from '../../directives/if-input-filled';\nimport { InputPrefixDirective } from '../../directives/input-prefix';\nimport { InputSuffixDirective } from '../../directives/input-suffix';\nimport { LabelComponent } from '../label/components/label';\nimport { DateInputComponent } from './components/date-input';\nimport { DateTimeInputComponent } from './components/date-time-input';\nimport { EmailInputComponent } from './components/email-input';\nimport { InputFieldComponent } from './components/input-field';\nimport { NumberInputComponent } from './components/number-input';\nimport { PasswordInputComponent } from './components/password-input';\nimport { SearchInputComponent } from './components/search-input';\nimport { TextInputComponent } from './components/text-input';\nimport { TextareaInputComponent } from './components/textarea-input';\nimport { TimeInputComponent } from './components/time-input';\nimport { AutosizeTextareaDirective } from './directives/autosize-textarea';\nimport { IfSupportsShowPickerDirective } from './directives/if-supports-show-picker';\nimport { ShowPickerTriggerDirective } from './directives/show-picker-trigger';\nimport { PasswordInputToggleComponent } from './partials/password-input-toggle';\nimport { SearchInputClearComponent } from './partials/search-input-clear';\n\nexport const InputImports = [\n InputFieldComponent,\n NumberInputComponent,\n SearchInputComponent,\n PasswordInputComponent,\n PasswordInputToggleComponent,\n TextInputComponent,\n TextareaInputComponent,\n InputPrefixDirective,\n InputSuffixDirective,\n IfInputFilledDirective,\n ShowPickerTriggerDirective,\n IfInputEmptyDirective,\n SearchInputClearComponent,\n EmailInputComponent,\n LabelComponent,\n DateInputComponent,\n DateTimeInputComponent,\n TimeInputComponent,\n IfSupportsShowPickerDirective,\n AutosizeTextareaDirective,\n] as const;\n","import { Directive, HostBinding, Input, booleanAttribute } from '@angular/core';\n\n@Directive({\n selector: '[etLabelSuffix]',\n standalone: true,\n exportAs: 'etLabelSuffix',\n})\nexport class LabelSuffixDirective {\n @Input({ transform: booleanAttribute })\n showToScreenReader = false;\n\n @HostBinding('attr.aria-hidden')\n private get _attrAriaHidden() {\n return this.showToScreenReader ? null : 'true';\n }\n}\n","import { LabelComponent } from './components/label';\nimport { LabelSuffixDirective } from './directives/label-suffix';\n\nexport const LabelImports = [LabelComponent, LabelSuffixDirective] as const;\n","import { Directive, InjectionToken, Input, booleanAttribute, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { signalHostClasses } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\nimport { RadioValue } from '../../types';\n\nexport const RADIO_TOKEN = new InjectionToken<RadioDirective>('ET_RADIO_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n providers: [{ provide: RADIO_TOKEN, useExisting: RadioDirective }],\n exportAs: 'etRadio',\n})\nexport class RadioDirective {\n readonly input = inject<InputDirective<RadioValue>>(INPUT_TOKEN);\n\n @Input()\n get value() {\n return this._value$.getValue();\n }\n set value(value: RadioValue) {\n this._value$.next(value);\n }\n private _value$ = new BehaviorSubject<RadioValue>(null);\n\n @Input()\n get disabled(): boolean {\n return this._disabled$.getValue();\n }\n set disabled(value: unknown) {\n this._disabled$.next(booleanAttribute(value));\n }\n private _disabled$ = new BehaviorSubject(false);\n\n readonly checked$ = combineLatest([this.input.value$, this._value$]).pipe(\n map(([inputValue, value]) => inputValue === value),\n );\n\n readonly disabled$ = combineLatest([this.input.disabled$, this._disabled$]).pipe(\n map(([inputDisabled, disabled]) => inputDisabled || disabled),\n );\n\n readonly hostClassBindings = signalHostClasses({\n 'et-radio--checked': toSignal(this.checked$),\n 'et-radio--disabled': toSignal(this.disabled$),\n });\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n if (this.disabled) {\n return;\n }\n\n this.input._updateValue(this.value);\n\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { Directive, inject, InjectionToken } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { signalHostAttributes } from '@ethlete/core';\nimport { FormGroupStateService } from '../../../../services';\n\nexport const RADIO_GROUP_TOKEN = new InjectionToken<RadioGroupDirective>('ET_RADIO_GROUP_DIRECTIVE_TOKEN');\n\nlet nextUniqueId = 0;\n\n@Directive({\n standalone: true,\n providers: [{ provide: RADIO_GROUP_TOKEN, useExisting: RadioGroupDirective }],\n exportAs: 'etRadioGroup',\n host: {\n role: 'radiogroup',\n },\n})\nexport class RadioGroupDirective {\n private readonly _formGroupStateService = inject(FormGroupStateService);\n\n readonly name = `et-radio-group-${++nextUniqueId}`;\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'aria-labelledby': toSignal(this._formGroupStateService.describedBy$),\n });\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { InputBase } from '../../../../utils';\nimport { RADIO_TOKEN, RadioDirective } from '../../directives/radio';\nimport { RADIO_GROUP_TOKEN } from '../../directives/radio-group';\n\n@Component({\n selector: 'et-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-radio',\n },\n imports: [AsyncPipe, NgClass, NativeInputRefDirective],\n hostDirectives: [\n { directive: RadioDirective, inputs: ['value', 'disabled'] },\n { directive: InputDirective, inputs: ['autocomplete'] },\n ],\n})\nexport class RadioComponent extends InputBase {\n protected readonly radio = inject(RADIO_TOKEN);\n protected readonly radioGroup = inject(RADIO_GROUP_TOKEN);\n}\n","<input\n [attr.tabindex]=\"(radio.disabled$ | async) ? -1 : 0\"\n [attr.checked]=\"(radio.checked$ | async) || null\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [disabled]=\"radio.disabled$ | async\"\n [attr.id]=\"input.id\"\n [attr.name]=\"radioGroup.name\"\n (click)=\"radio._onInputInteraction($event)\"\n (blur)=\"radio._controlTouched()\"\n class=\"et-radio-native-input\"\n type=\"radio\"\n etNativeInputRef\n/>\n\n<div [ngClass]=\"{ 'et-radio-check--active': radio.checked$ | async }\" class=\"et-radio-check\"></div>\n","import { ContentChildren, Directive, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { signalHostClasses, switchQueryListChanges, TypedQueryList } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map, of, switchMap } from 'rxjs';\nimport { InputStateService } from '../../../../services';\nimport { RadioValue } from '../../types';\nimport { RADIO_TOKEN, RadioDirective } from '../radio';\n\nexport const RADIO_FIELD_TOKEN = new InjectionToken<RadioFieldDirective>('ET_RADIO_FIELD_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n providers: [{ provide: RADIO_FIELD_TOKEN, useExisting: RadioFieldDirective }],\n exportAs: 'etRadioField',\n})\nexport class RadioFieldDirective {\n readonly inputState = inject<InputStateService<RadioValue>>(InputStateService);\n\n @ContentChildren(forwardRef(() => RADIO_TOKEN), { descendants: true })\n set radio(radio: TypedQueryList<RadioDirective>) {\n this._radio$.next(radio);\n }\n private _radio$ = new BehaviorSubject<TypedQueryList<RadioDirective> | null>(null);\n\n readonly radioQueryList$ = this._radio$.pipe(switchQueryListChanges());\n\n readonly hostClassBindings = signalHostClasses({\n 'et-radio-field--checked': toSignal(\n this.radioQueryList$.pipe(\n switchMap((radios) => (radios?.length ? combineLatest(radios.map((radio) => radio.checked$)) : of([]))),\n map((checked) => checked.some((value) => value)),\n ),\n ),\n 'et-radio-field--disabled': toSignal(\n this.radioQueryList$.pipe(\n switchMap((radios) => (radios?.length ? combineLatest(radios.map((radio) => radio.disabled$)) : of([]))),\n map((disabled) => disabled.some((value) => value)),\n ),\n ),\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { StaticFormFieldDirective } from '../../../../directives/static-form-field';\nimport { RadioFieldDirective } from '../../directives/radio-field';\n\n@Component({\n selector: 'et-radio-field, et-radio-card-field',\n template: `\n <div class=\"et-radio-field-container\">\n <ng-content />\n <ng-content />\n </div>\n `,\n styleUrls: ['./radio-field.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-form-field et-radio-field',\n },\n hostDirectives: [StaticFormFieldDirective, RadioFieldDirective],\n})\nexport class RadioFieldComponent {}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, ViewEncapsulation } from '@angular/core';\nimport { DynamicFormGroupDirective } from '../../../../directives/dynamic-form-group';\nimport { StaticFormGroupDirective } from '../../../../directives/static-form-group';\nimport { WriteableInputDirective } from '../../../../directives/writeable-input';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error/components/error';\nimport { RadioGroupDirective } from '../../directives/radio-group';\n\n@Component({\n selector: 'et-radio-group',\n template: `\n <div class=\"et-radio-group-container\">\n <ng-content />\n </div>\n <et-error [errors]=\"inputState.errors$ | async\" />\n `,\n styleUrls: ['./radio-group.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-form-group et-radio-group',\n },\n hostDirectives: [\n StaticFormGroupDirective,\n WriteableInputDirective,\n {\n directive: forwardRef(() => DynamicFormGroupDirective),\n inputs: ['hideErrorMessage'],\n },\n RadioGroupDirective,\n ],\n imports: [ErrorComponent, AsyncPipe],\n})\nexport class RadioGroupComponent {\n protected readonly inputState = inject(InputStateService);\n}\n","import { LabelComponent } from '../label/components/label';\nimport { RadioComponent } from './components/radio';\nimport { RadioFieldComponent } from './components/radio-field';\nimport { RadioGroupComponent } from './components/radio-group';\n\nexport const RadioImports = [RadioComponent, RadioFieldComponent, RadioGroupComponent, LabelComponent] as const;\n","import { Directive, InjectionToken, Input, booleanAttribute, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { Primitive, signalHostClasses } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const SEGMENTED_BUTTON_TOKEN = new InjectionToken<SegmentedButtonDirective>(\n 'ET_SEGMENTED_BUTTON_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n standalone: true,\n providers: [{ provide: SEGMENTED_BUTTON_TOKEN, useExisting: SegmentedButtonDirective }],\n exportAs: 'etSegmentedButton',\n})\nexport class SegmentedButtonDirective {\n private readonly _activeIndicatorElement$ = new BehaviorSubject<HTMLElement | null>(null);\n readonly input = inject<InputDirective<Primitive>>(INPUT_TOKEN);\n\n @Input()\n get value() {\n return this._value$.getValue();\n }\n set value(value: Primitive) {\n this._value$.next(value);\n }\n private _value$ = new BehaviorSubject<Primitive>(null);\n\n @Input()\n get disabled(): boolean {\n return this._disabled$.getValue();\n }\n set disabled(value: unknown) {\n this._disabled$.next(booleanAttribute(value));\n }\n private _disabled$ = new BehaviorSubject(false);\n\n readonly checked$ = combineLatest([this.input.value$, this._value$]).pipe(\n map(([inputValue, value]) => inputValue === value),\n );\n\n readonly disabled$ = combineLatest([this.input.disabled$, this._disabled$]).pipe(\n map(([inputDisabled, disabled]) => inputDisabled || disabled),\n );\n\n readonly hostClassBindings = signalHostClasses({\n 'et-segmented-button--checked': toSignal(this.checked$),\n 'et-segmented-button--disabled': toSignal(this.disabled$),\n });\n\n get activeIndicatorElement$() {\n return this._activeIndicatorElement$.asObservable();\n }\n\n get activeIndicatorElement() {\n return this._activeIndicatorElement$.getValue();\n }\n\n _setActiveIndicatorElement(element: HTMLElement) {\n this._activeIndicatorElement$.next(element);\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n if (this.disabled) {\n return;\n }\n\n this.input._updateValue(this.value);\n\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AfterContentInit, ContentChildren, Directive, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { createDestroy, createFlipAnimation, Primitive, signalHostAttributes, TypedQueryList } from '@ethlete/core';\nimport { combineLatest, pairwise, startWith, takeUntil, tap } from 'rxjs';\nimport { FormGroupStateService, InputStateService } from '../../../../services';\nimport { SEGMENTED_BUTTON_TOKEN, SegmentedButtonDirective } from '../segmented-button/segmented-button.directive';\n\nexport const SEGMENTED_BUTTON_GROUP_TOKEN = new InjectionToken<SegmentedButtonGroupDirective>(\n 'ET_SEGMENTED_BUTTON_GROUP_DIRECTIVE_TOKEN',\n);\n\nlet nextUniqueId = 0;\n\n@Directive({\n standalone: true,\n providers: [{ provide: SEGMENTED_BUTTON_GROUP_TOKEN, useExisting: SegmentedButtonGroupDirective }],\n exportAs: 'etSegmentedButtonGroup',\n host: {\n role: 'group',\n },\n})\nexport class SegmentedButtonGroupDirective implements AfterContentInit {\n private readonly _formGroupStateService = inject(FormGroupStateService);\n private readonly _inputStateService = inject<InputStateService<Primitive, HTMLButtonElement>>(InputStateService);\n private readonly _destroy$ = createDestroy();\n\n readonly name = `et-segmented-button-group-${++nextUniqueId}`;\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'aria-labelledby': toSignal(this._formGroupStateService.describedBy$),\n });\n\n @ContentChildren(forwardRef(() => SEGMENTED_BUTTON_TOKEN), { descendants: true })\n private _segmentedButtons?: TypedQueryList<SegmentedButtonDirective>;\n\n ngAfterContentInit(): void {\n if (!this._segmentedButtons) {\n return;\n }\n\n combineLatest([\n this._segmentedButtons.changes.pipe(startWith(this._segmentedButtons)),\n this._inputStateService.value$.pipe(pairwise()),\n ])\n .pipe(\n tap(([buttons, [prevValue, currValue]]) => {\n const prevActiveIndicator = buttons.find((button) => button?.value === prevValue);\n const currActiveIndicator = buttons.find((button) => button?.value === currValue);\n\n if (\n !prevActiveIndicator ||\n !currActiveIndicator ||\n prevActiveIndicator === currActiveIndicator ||\n !prevActiveIndicator.activeIndicatorElement ||\n !currActiveIndicator.activeIndicatorElement\n ) {\n return;\n }\n\n const flip = createFlipAnimation({\n originElement: prevActiveIndicator.activeIndicatorElement,\n element: currActiveIndicator.activeIndicatorElement,\n });\n\n flip.play();\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { InputBase } from '../../../../utils';\nimport { SEGMENTED_BUTTON_TOKEN, SegmentedButtonDirective } from '../../directives/segmented-button';\nimport { SEGMENTED_BUTTON_GROUP_TOKEN } from '../../directives/segmented-button-group';\n\n@Component({\n selector: 'et-segmented-button',\n templateUrl: './segmented-button.component.html',\n styleUrls: ['./segmented-button.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-segmented-button',\n },\n imports: [AsyncPipe, NgClass, NativeInputRefDirective],\n hostDirectives: [\n { directive: SegmentedButtonDirective, inputs: ['value', 'disabled'] },\n { directive: InputDirective },\n ],\n})\nexport class SegmentedButtonComponent extends InputBase implements OnInit {\n protected readonly segmentedButton = inject(SEGMENTED_BUTTON_TOKEN);\n protected readonly segmentedButtonGroup = inject(SEGMENTED_BUTTON_GROUP_TOKEN);\n\n @ViewChild('activeIndicator', { static: true })\n activeIndicator?: ElementRef<HTMLElement>;\n\n ngOnInit() {\n if (!this.activeIndicator) {\n return;\n }\n\n this.segmentedButton._setActiveIndicatorElement(this.activeIndicator.nativeElement);\n }\n}\n","<button\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\n [attr.aria-pressed]=\"segmentedButton.checked$ | async\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [disabled]=\"segmentedButton.disabled$ | async\"\n [attr.id]=\"input.id\"\n (click)=\"segmentedButton._onInputInteraction($event)\"\n (blur)=\"segmentedButton._controlTouched()\"\n class=\"et-segmented-button-button\"\n type=\"button\"\n>\n <div #activeIndicator class=\"et-segmented-button-button-active-indicator\"></div>\n\n <span class=\"et-segmented-button-button-content\">\n <ng-content />\n </span>\n</button>\n","import { ContentChildren, Directive, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { Primitive, signalHostClasses, switchQueryListChanges, TypedQueryList } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map, of, switchMap } from 'rxjs';\nimport { InputStateService } from '../../../../services';\nimport { SEGMENTED_BUTTON_TOKEN, SegmentedButtonDirective } from '../segmented-button';\n\nexport const SEGMENTED_BUTTON_FIELD_TOKEN = new InjectionToken<SegmentedButtonFieldDirective>(\n 'ET_SEGMENTED_BUTTON_FIELD_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n standalone: true,\n providers: [{ provide: SEGMENTED_BUTTON_FIELD_TOKEN, useExisting: SegmentedButtonFieldDirective }],\n exportAs: 'etSegmentedButtonField',\n})\nexport class SegmentedButtonFieldDirective {\n readonly inputState = inject<InputStateService<Primitive>>(InputStateService);\n\n @ContentChildren(forwardRef(() => SEGMENTED_BUTTON_TOKEN), { descendants: true })\n set segmentedButton(segmentedButton: TypedQueryList<SegmentedButtonDirective>) {\n this._segmentedButton$.next(segmentedButton);\n }\n private _segmentedButton$ = new BehaviorSubject<TypedQueryList<SegmentedButtonDirective> | null>(null);\n\n readonly segmentedButtonQueryList$ = this._segmentedButton$.pipe(switchQueryListChanges());\n\n readonly hostClassBindings = signalHostClasses({\n 'et-segmented-button-field--checked': toSignal(\n this.segmentedButtonQueryList$.pipe(\n switchMap((buttons) => (buttons?.length ? combineLatest(buttons.map((radio) => radio.checked$)) : of([]))),\n map((checked) => checked.some((value) => value)),\n ),\n ),\n 'et-segmented-button-field--disabled': toSignal(\n this.segmentedButtonQueryList$.pipe(\n switchMap((buttons) => (buttons?.length ? combineLatest(buttons.map((radio) => radio.disabled$)) : of([]))),\n map((disabled) => disabled.some((value) => value)),\n ),\n ),\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { StaticFormFieldDirective } from '../../../../directives/static-form-field';\nimport { SegmentedButtonFieldDirective } from '../../directives/segmented-button-field';\n\n@Component({\n selector: 'et-segmented-button-field',\n template: `\n <div class=\"et-segmented-button-field-container\">\n <ng-content />\n </div>\n `,\n styleUrls: ['./segmented-button-field.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-form-field et-segmented-button-field',\n },\n hostDirectives: [StaticFormFieldDirective, SegmentedButtonFieldDirective],\n})\nexport class SegmentedButtonFieldComponent {}\n","import { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n forwardRef,\n inject,\n input,\n} from '@angular/core';\nimport { signalHostClasses } from '@ethlete/core';\nimport { DynamicFormGroupDirective } from '../../../../directives/dynamic-form-group';\nimport { StaticFormGroupDirective } from '../../../../directives/static-form-group';\nimport { WriteableInputDirective } from '../../../../directives/writeable-input';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error/components/error';\nimport { SegmentedButtonGroupDirective } from '../../directives/segmented-button-group';\n\nexport type SegmentedButtonGroupRenderAs = 'buttons' | 'tabs';\n\n@Component({\n selector: 'et-segmented-button-group',\n template: `\n <div class=\"et-segmented-button-group-container\">\n <ng-content />\n </div>\n <et-error [errors]=\"inputState.errors$ | async\" />\n `,\n styleUrls: ['./segmented-button-group.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-form-group et-segmented-button-group',\n },\n hostDirectives: [\n StaticFormGroupDirective,\n WriteableInputDirective,\n {\n directive: forwardRef(() => DynamicFormGroupDirective),\n inputs: ['hideErrorMessage'],\n },\n SegmentedButtonGroupDirective,\n ],\n imports: [ErrorComponent, AsyncPipe],\n})\nexport class SegmentedButtonGroupComponent {\n protected readonly inputState = inject(InputStateService);\n\n renderAs = input<SegmentedButtonGroupRenderAs>('buttons');\n\n hostClassBindings = signalHostClasses({\n 'et-segmented-button-group--tabs': computed(() => this.renderAs() === 'tabs'),\n 'et-segmented-button-group--buttons': computed(() => this.renderAs() === 'buttons'),\n });\n}\n","import { SegmentedButtonComponent } from './components/segmented-button';\nimport { SegmentedButtonFieldComponent } from './components/segmented-button-field';\nimport { SegmentedButtonGroupComponent } from './components/segmented-button-group';\n\nexport const SegmentedButtonImports = [\n SegmentedButtonComponent,\n SegmentedButtonFieldComponent,\n SegmentedButtonGroupComponent,\n] as const;\n","import { Directive, ElementRef, InjectionToken, inject } from '@angular/core';\n\nexport const SELECT_FIELD_TOKEN = new InjectionToken<SelectFieldDirective>('ET_SELECT_FIELD_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n providers: [{ provide: SELECT_FIELD_TOKEN, useExisting: SelectFieldDirective }],\n exportAs: 'etSelectField',\n})\nexport class SelectFieldDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormFieldDirective } from '../../../../directives/dynamic-form-field';\nimport { StaticFormFieldDirective } from '../../../../directives/static-form-field';\nimport { WriteableInputDirective } from '../../../../directives/writeable-input';\nimport { InputStateService } from '../../../../services';\nimport { DecoratedFormFieldBase } from '../../../../utils';\nimport { ErrorComponent } from '../../../error/components/error';\nimport { SelectFieldDirective } from '../../directives/select-field';\n\n@Component({\n selector: 'et-select-field',\n template: `\n <ng-content select=\"et-label\" />\n <div class=\"et-select-field-input\">\n <ng-content />\n </div>\n <et-error [errors]=\"inputState.errors$ | async\" />\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-form-field et-select-field',\n },\n hostDirectives: [\n SelectFieldDirective,\n StaticFormFieldDirective,\n WriteableInputDirective,\n {\n directive: forwardRef(() => DynamicFormFieldDirective) as Type<DynamicFormFieldDirective>,\n inputs: ['hideErrorMessage'],\n },\n ],\n imports: [ErrorComponent, AsyncPipe],\n})\nexport class SelectFieldComponent extends DecoratedFormFieldBase {\n protected readonly inputState = inject(InputStateService);\n}\n","import { Direction } from '@angular/cdk/bidi';\nimport { PositionStrategy, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Injector, StaticProvider, ViewContainerRef } from '@angular/core';\nimport { Breakpoint } from '@ethlete/core';\n\n/** Options for where to set focus to automatically on overlay open */\nexport type OverlayAutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';\n\n/** Valid ARIA roles for a overlay element. */\nexport type OverlayRole = 'dialog' | 'alertdialog';\n\n/** Possible overrides for a overlay's position. */\nexport interface OverlayPosition {\n /** Override for the overlay's top position. */\n top?: string;\n\n /** Override for the overlay's bottom position. */\n bottom?: string;\n\n /** Override for the overlay's left position. */\n left?: string;\n\n /** Override for the overlay's right position. */\n right?: string;\n}\n\nexport const OVERLAY_STATE = {\n OPEN: 'open',\n CLOSING: 'closing',\n CLOSED: 'closed',\n} as const;\n\nexport type OverlayState = (typeof OVERLAY_STATE)[keyof typeof OVERLAY_STATE];\n\nexport interface OverlayDragToDismissConfig {\n /** Direction in which the overlay can be dragged. */\n direction: 'to-top' | 'to-bottom' | 'to-left' | 'to-right';\n\n /**\n * The minimum distance in pixels that the user must swipe to dismiss the overlay.\n *\n * @default 150 // 150px\n */\n minDistanceToDismiss?: number;\n\n /**\n * The minimum velocity in pixels per second that the user must swipe to dismiss the overlay.\n *\n * @default 150 // 150px/s\n */\n minVelocityToDismiss?: number;\n}\n\nexport interface OverlayBreakpointConfig {\n /** Min-width of the overlay. If a number is provided, assumes pixel units. */\n minWidth?: number | string;\n\n /** Max-width of the overlay. If a number is provided, assumes pixel units. */\n maxWidth?: number | string;\n\n /** Min-height of the overlay. If a number is provided, assumes pixel units. */\n minHeight?: number | string;\n\n /** Max-height of the overlay. If a number is provided, assumes pixel units. */\n maxHeight?: number | string;\n\n /** Width of the overlay. */\n width?: number | string;\n\n /** Height of the overlay. */\n height?: number | string;\n\n /** Position strategy to be used for the overlay. */\n positionStrategy?: () => PositionStrategy;\n\n /** Custom class for the overlay container. */\n containerClass?: string | string[];\n\n /** Custom class for the overlay pane. */\n paneClass?: string | string[];\n\n /** Extra CSS classes to be added to the overlay overlay container. */\n overlayClass?: string | string[];\n\n /** Custom class for the backdrop. */\n backdropClass?: string | string[];\n\n /** Custom class for the document (`<html>` element). */\n documentClass?: string | string[];\n\n /** Custom class for the `<body>` element */\n bodyClass?: string | string[];\n\n /** Position overrides. */\n position?: OverlayPosition;\n\n /** Determine if and in what direction the overlay should be able to be dragged to dismiss it. */\n dragToDismiss?: OverlayDragToDismissConfig;\n\n /**\n * Whether the transform origin should be set using the config's `origin` property value.\n *\n * @default false\n */\n applyTransformOrigin?: boolean;\n}\n\nexport interface OverlayBreakpointConfigEntry {\n /**\n * Breakpoint to apply the config for. If a number is provided, it will be used as a pixel value.\n * Always uses the min-width media query.\n *\n * @default 'xs' // 0px\n */\n breakpoint?: Breakpoint | number;\n\n /**\n * Overlay configuration to be applied when the breakpoint is active.\n */\n config: OverlayBreakpointConfig;\n}\n\nexport interface OverlayConfig<D = unknown> {\n /**\n * Conditionally applied overlay configurations based on breakpoints.\n */\n positions: OverlayBreakpointConfigEntry[];\n\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the overlay. This does not affect where the overlay\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /**\n * Injector used for the instantiation of the component to be attached. If provided,\n * takes precedence over the injector indirectly provided by `ViewContainerRef`.\n */\n injector?: Injector;\n\n /** ID for the overlay. If omitted, a unique one will be generated. */\n id?: string;\n\n /**\n * The ARIA role of the overlay element.\n * @default 'dialog'\n */\n role?: OverlayRole;\n\n /**\n * Whether the overlay has a backdrop.\n * @default true\n */\n hasBackdrop?: boolean;\n\n /**\n * Whether the user can use escape or clicking on the backdrop to close the modal.\n * @default false\n */\n disableClose?: boolean;\n\n /**\n * Data being injected into the child component.\n * @default null\n */\n data?: D | null;\n\n /** Layout direction for the overlay's content. */\n direction?: Direction;\n\n /**\n * ID of the element that describes the overlay.\n * @default null\n */\n ariaDescribedBy?: string | null;\n\n /**\n * ID of the element that labels the overlay.\n * @default null\n */\n ariaLabelledBy?: string | null;\n\n /**\n * Aria label to assign to the overlay element.\n * @default null\n */\n ariaLabel?: string | null;\n\n /**\n * Whether this is a modal overlay. Used to set the `aria-modal` attribute.\n * @default true\n */\n ariaModal?: boolean;\n\n /**\n * Whether the overlay uses a custom animation.\n * @default false\n */\n customAnimated?: boolean;\n\n /**\n * Where the overlay should focus on open.\n * Can be one of AutoFocusTarget, or a css selector string.\n * @default 'first-tabbable'\n */\n autoFocus?: OverlayAutoFocusTarget | string;\n\n /**\n * Whether the overlay should restore focus to the\n * previously-focused element, after it's closed.\n * @default true\n */\n restoreFocus?: boolean;\n\n /**\n * Whether to wait for the opening animation to finish before trapping focus.\n * @default true\n */\n delayFocusTrap?: boolean;\n\n /** Scroll strategy to be used for the overlay. */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * Whether the overlay should close when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`). Will be automatically set to false if the overlay contains a overlay router.\n * @default true\n */\n closeOnNavigation?: boolean;\n\n /**\n * Extra providers to be made available to the overlay.\n *\n * **WARNING**: Avoid providing `@Injectable()` classes such as services here, as they will never be destroyed.\n * This could lead to memory leaks over time.\n */\n providers?: StaticProvider[];\n\n /**\n * The origin element that triggered the overlay's opening.\n */\n origin?: HTMLElement | MouseEvent | TouchEvent | KeyboardEvent | PointerEvent;\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentRef, TemplateRef, signal } from '@angular/core';\nimport { Subject, filter, merge, skipUntil, take } from 'rxjs';\nimport { OverlayContainerComponent } from '../components/overlay-container';\nimport { OVERLAY_STATE, OverlayConfig, OverlayPosition, OverlayState } from '../types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface OverlayCloseCallEvent<R = any> {\n result: R | undefined;\n forced: boolean;\n}\n\nexport interface OverlayLayout {\n hasHeader: boolean;\n hasBody: boolean;\n hasFooter: boolean;\n}\n\nexport interface OverlayHeaderTemplates {\n current: TemplateRef<unknown> | null;\n previous: TemplateRef<unknown> | null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class OverlayRef<T = any, R = any> {\n componentInstance: T | null = null;\n readonly componentRef: ComponentRef<T> | null = null;\n disableClose: boolean | undefined;\n\n id: string;\n\n private readonly _afterOpened = new Subject<void>();\n private readonly _beforeClosed = new Subject<R | undefined>();\n private readonly _closeCalled = new Subject<OverlayCloseCallEvent<R>>();\n\n private _result: R | undefined;\n private _state: OverlayState = OVERLAY_STATE.OPEN;\n\n /**\n * @internal\n */\n _closeInteractionType: FocusOrigin | undefined;\n\n /**\n * @internal\n */\n _isEscCloseControlledExternally = false;\n\n /**\n * @internal\n */\n _isBackdropCloseControlledExternally = false;\n\n /**\n * @internal\n */\n _isCloseFnCloseControlledExternally = false;\n\n private _disableCloseFromInternalInitiators = new Set<string | number>();\n\n get _internalDisableClose() {\n return this._disableCloseFromInternalInitiators.size > 0;\n }\n\n get _cdkRef() {\n return this._ref;\n }\n\n headerTemplate = signal<TemplateRef<unknown> | null>(null);\n\n constructor(\n private _ref: CdkDialogRef<R, T>,\n public config: OverlayConfig,\n public _containerInstance: OverlayContainerComponent,\n ) {\n this.disableClose = config.disableClose;\n this.id = _ref.id;\n\n _containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'entered'),\n take(1),\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n _containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'left'),\n take(1),\n )\n .subscribe(() => {\n this._finishOverlayClose();\n });\n\n _ref.overlayRef.detachments().subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n this._finishOverlayClose();\n });\n\n merge(\n this.backdropClick(),\n this.keydownEvents().pipe(\n filter((event) => event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)),\n ),\n )\n .pipe(skipUntil(_containerInstance._animatedLifecycle.state$.pipe(filter((e) => e === 'entering'))))\n .subscribe((event) => {\n if (\n (this._isEscCloseControlledExternally && event.type === 'keydown') ||\n (this._isBackdropCloseControlledExternally && event.type !== 'keydown')\n ) {\n return;\n }\n\n if (!this.disableClose && !this._internalDisableClose) {\n event.preventDefault();\n this._closeOverlayVia(event.type === 'keydown' ? 'keyboard' : 'mouse', undefined, true);\n }\n });\n }\n\n close(result?: R, force?: boolean): void {\n if (this._state === OVERLAY_STATE.CLOSING || this._state === OVERLAY_STATE.CLOSED) {\n return;\n }\n\n this._closeCalled.next({ result, forced: force ?? false });\n\n if (this._isCloseFnCloseControlledExternally && !force) {\n return;\n }\n\n this._result = result;\n\n this._containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'leaving'),\n take(1),\n )\n .subscribe(() => {\n this._beforeClosed.next(result);\n this._beforeClosed.complete();\n this._ref.overlayRef.detachBackdrop();\n });\n\n this._containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'left'),\n take(1),\n )\n .subscribe(() => this._finishOverlayClose());\n\n this._state = OVERLAY_STATE.CLOSING;\n this._containerInstance._animatedLifecycle.leave();\n }\n\n afterOpened() {\n return this._afterOpened.asObservable();\n }\n\n afterClosed() {\n return this._ref.closed;\n }\n\n beforeClosed() {\n return this._beforeClosed.asObservable();\n }\n\n backdropClick() {\n return this._ref.backdropClick;\n }\n\n keydownEvents() {\n return this._ref.keydownEvents;\n }\n\n closeCalled() {\n return this._closeCalled.asObservable();\n }\n\n updatePosition(position?: OverlayPosition): this {\n const strategy = this._ref.config.positionStrategy as GlobalPositionStrategy;\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right);\n } else {\n strategy.centerHorizontally();\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom);\n } else {\n strategy.centerVertically();\n }\n\n this._ref.updatePosition();\n\n return this;\n }\n\n updateSize(width = '', height = ''): this {\n this._ref.updateSize(width, height);\n return this;\n }\n\n addPanelClass(classes: string | string[]): this {\n this._ref.addPanelClass(classes);\n return this;\n }\n\n removePanelClass(classes: string | string[]): this {\n this._ref.removePanelClass(classes);\n return this;\n }\n\n getState(): OverlayState {\n return this._state;\n }\n\n private _finishOverlayClose() {\n this._state = OVERLAY_STATE.CLOSED;\n this._ref.close(this._result, { focusOrigin: this._closeInteractionType });\n this.componentInstance = null;\n }\n\n _closeOverlayVia(interactionType: FocusOrigin, result?: R, force?: boolean) {\n this._closeInteractionType = interactionType;\n return this.close(result, force);\n }\n\n _addInternalBackdropCloseInitiator(initiatorId: string | number) {\n if (this.disableClose) return;\n\n this._disableCloseFromInternalInitiators.add(initiatorId);\n }\n\n _removeInternalBackdropCloseInitiator(initiatorId: string | number) {\n if (this.disableClose) return;\n\n this._disableCloseFromInternalInitiators.delete(initiatorId);\n }\n\n _setCurrentHeaderTemplate(template: TemplateRef<unknown> | null) {\n this.headerTemplate.set(template);\n }\n}\n","import { Directive, InjectionToken, OnDestroy, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AnimatedOverlayDirective } from '@ethlete/core';\nimport { combineLatest, tap } from 'rxjs';\nimport { OverlayRef } from '../../components/overlay/utils/overlay-ref';\n\nexport const OVERLAY_CLOSE_BLOCKER_TOKEN = new InjectionToken<OverlayCloseBlockerDirective>(\n 'OVERLAY_CLOSE_BLOCKER_TOKEN',\n);\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[etOverlayCloseBlocker]',\n standalone: true,\n providers: [\n {\n provide: OVERLAY_CLOSE_BLOCKER_TOKEN,\n useExisting: OverlayCloseBlockerDirective,\n },\n ],\n})\nexport class OverlayCloseBlockerDirective implements OnDestroy {\n private readonly _id = `et-overlay-close-blocker-${uniqueId++}`;\n private readonly _animatedOverlay = inject(AnimatedOverlayDirective, { optional: true });\n private readonly _nearestOverlayRef = inject(OverlayRef, { optional: true });\n\n constructor() {\n if (!this._animatedOverlay || !this._nearestOverlayRef) return;\n\n combineLatest([this._animatedOverlay.isMounted$, this._animatedOverlay.isHidden$])\n .pipe(\n takeUntilDestroyed(),\n tap(([mounted, hidden]) => {\n if (mounted && !hidden) {\n this._nearestOverlayRef?._addInternalBackdropCloseInitiator(this._id);\n } else {\n this._nearestOverlayRef?._removeInternalBackdropCloseInitiator(this._id);\n }\n }),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this._nearestOverlayRef?._removeInternalBackdropCloseInitiator(this._id);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ComboboxConfig } from '../types';\n\nexport const COMBOBOX_CONFIG_TOKEN = new InjectionToken<ComboboxConfig>('COMBOBOX_CONFIG_TOKEN');\n\nexport const COMBOBOX_DEFAULT_CONFIG = {\n bodyEmptyText: 'No results found',\n} satisfies ComboboxConfig;\n","import { ComponentType } from '@angular/cdk/overlay';\nimport { AnimatedOverlayComponentBase, RuntimeError } from '@ethlete/core';\n\nexport const COMBOBOX_ERRORS = {\n options_object_mismatch:\n 'Expected options to be an array of objects. This is due to \"bindLabel\" and \"bindValue\" being set.',\n options_primitive_mismatch:\n 'Expected options to be an array of primitives. This is due to \"bindLabel\" and \"bindValue\" not being set or \"allowCustomValues\" being set to true.',\n body_unset: 'Combobox body component is not set',\n init_val_primitive_mismatch:\n 'Combobox options are a primitive array, but the supplied \"initialValue\" is not a primitive',\n init_val_object_mismatch: 'Combobox options are an object array, but the supplied \"initialValue\" is not an object',\n} as const;\n\nconst COMBOBOX_ERROR_CODES = Object.keys(COMBOBOX_ERRORS).reduce(\n (acc, key, index) => {\n acc[key as keyof typeof COMBOBOX_ERRORS] = index;\n return acc;\n },\n {} as Record<keyof typeof COMBOBOX_ERRORS, number>,\n);\n\nexport const comboboxError = (code: keyof typeof COMBOBOX_ERRORS, devOnly: boolean, data?: unknown) => {\n const message = `<et-combobox>: ${COMBOBOX_ERRORS[code]}`;\n\n throw new RuntimeError(COMBOBOX_ERROR_CODES[code], message, devOnly, data);\n};\n\nexport function assetComboboxBodyComponentSet(\n component: ComponentType<AnimatedOverlayComponentBase> | null,\n): asserts component is ComponentType<AnimatedOverlayComponentBase> {\n if (!component) {\n comboboxError('body_unset', false);\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { TemplateRef } from '@angular/core';\n\nexport const ComboboxOptionType = {\n Primitive: 'primitive',\n Object: 'object',\n} as const;\n\nexport interface ComboboxKeyHandlerResult {\n setFilter?: string;\n overlayOperation?: 'open' | 'close';\n optionAction?:\n | {\n type: 'add';\n option: unknown;\n }\n | {\n type: 'remove';\n option: unknown;\n }\n | {\n type: 'toggle';\n option: unknown;\n }\n | 'clear'\n | 'toggleAll';\n}\n\nexport type TemplateRefWithOption = TemplateRef<{\n option: unknown;\n}>;\n\nexport type ComponentWithOption = ComponentType<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n option: any;\n}>;\n\nexport type TemplateRefWithError = TemplateRef<{\n error: unknown;\n}>;\n\nexport type ComponentWithError = ComponentType<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any;\n}>;\n","import { Directive, InjectionToken, TemplateRef, inject } from '@angular/core';\n\nexport const COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN = new InjectionToken<ComboboxBodyEmptyTemplateDirective>(\n 'ET_COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN',\n);\n\n@Directive({\n selector: 'ng-template[etComboboxBodyEmptyTemplate]',\n standalone: true,\n exportAs: 'etComboboxBodyEmptyTemplate',\n providers: [\n {\n provide: COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN,\n useExisting: ComboboxBodyEmptyTemplateDirective,\n },\n ],\n})\nexport class ComboboxBodyEmptyTemplateDirective {\n readonly template = inject(TemplateRef);\n}\n","import { Directive, InjectionToken, TemplateRef, inject } from '@angular/core';\n\nexport const COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN = new InjectionToken<ComboboxBodyErrorTemplateDirective>(\n 'ET_COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN',\n);\n\n@Directive({\n selector: 'ng-template[etComboboxBodyErrorTemplate]',\n standalone: true,\n exportAs: 'etComboboxBodyErrorTemplate',\n providers: [\n {\n provide: COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN,\n useExisting: ComboboxBodyErrorTemplateDirective,\n },\n ],\n})\nexport class ComboboxBodyErrorTemplateDirective {\n readonly template = inject(TemplateRef);\n}\n","import { Directive, InjectionToken, TemplateRef, inject } from '@angular/core';\n\nexport const COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN = new InjectionToken<ComboboxBodyLoadingTemplateDirective>(\n 'ET_COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN',\n);\n\n@Directive({\n selector: 'ng-template[etComboboxBodyLoadingTemplate]',\n standalone: true,\n exportAs: 'etComboboxBodyLoadingTemplate',\n providers: [\n {\n provide: COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN,\n useExisting: ComboboxBodyLoadingTemplateDirective,\n },\n ],\n})\nexport class ComboboxBodyLoadingTemplateDirective {\n readonly template = inject(TemplateRef);\n}\n","import { Directive, InjectionToken, TemplateRef, inject } from '@angular/core';\n\nexport const COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN =\n new InjectionToken<ComboboxBodyMoreItemsHintTemplateDirective>('ET_COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN');\n\n@Directive({\n selector: 'ng-template[etComboboxBodyMoreItemsHintTemplate]',\n standalone: true,\n exportAs: 'etComboboxBodyMoreItemsHintTemplate',\n providers: [\n {\n provide: COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN,\n useExisting: ComboboxBodyMoreItemsHintTemplateDirective,\n },\n ],\n})\nexport class ComboboxBodyMoreItemsHintTemplateDirective {\n readonly template = inject(TemplateRef);\n}\n","import { Directive, InjectionToken, TemplateRef, inject } from '@angular/core';\n\nexport const COMBOBOX_OPTION_TEMPLATE_TOKEN = new InjectionToken<ComboboxOptionTemplateDirective>(\n 'ET_COMBOBOX_OPTION_TEMPLATE_TOKEN',\n);\n\n@Directive({\n selector: 'ng-template[etComboboxOptionTemplate]',\n standalone: true,\n exportAs: 'etComboboxOptionTemplate',\n providers: [\n {\n provide: COMBOBOX_OPTION_TEMPLATE_TOKEN,\n useExisting: ComboboxOptionTemplateDirective,\n },\n ],\n})\nexport class ComboboxOptionTemplateDirective {\n readonly template = inject(TemplateRef);\n}\n","import { Directive, InjectionToken, TemplateRef, inject } from '@angular/core';\n\nexport const COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN = new InjectionToken<ComboboxSelectedOptionTemplateDirective>(\n 'ET_COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN',\n);\n\n@Directive({\n selector: 'ng-template[etComboboxSelectedOptionTemplate]',\n standalone: true,\n exportAs: 'etComboboxSelectedOptionTemplate',\n providers: [\n {\n provide: COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN,\n useExisting: ComboboxSelectedOptionTemplateDirective,\n },\n ],\n})\nexport class ComboboxSelectedOptionTemplateDirective {\n readonly template = inject(TemplateRef);\n}\n","import { A, BACKSPACE, ENTER, ESCAPE, TAB } from '@angular/cdk/keycodes';\nimport { ComponentType } from '@angular/cdk/overlay';\nimport {\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n InjectionToken,\n Input,\n InputSignal,\n OnInit,\n Output,\n TemplateRef,\n TrackByFunction,\n booleanAttribute,\n inject,\n input,\n isDevMode,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport {\n ActiveSelectionModel,\n AnimatedOverlayComponentBase,\n AnimatedOverlayDirective,\n KeyPressManager,\n SelectionModel,\n SelectionModelBinding,\n TypedQueryList,\n createDestroy,\n isEmptyArray,\n isObjectArray,\n isPrimitiveArray,\n scrollToElement,\n signalClasses,\n signalHostClasses,\n} from '@ethlete/core';\nimport { THEME_PROVIDER } from '@ethlete/theming';\nimport {\n BehaviorSubject,\n catchError,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n map,\n of,\n skip,\n skipWhile,\n startWith,\n switchMap,\n takeUntil,\n tap,\n throwError,\n} from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../../../directives/input';\nimport { SELECT_FIELD_TOKEN } from '../../../../directives/select-field';\nimport { COMBOBOX_CONFIG_TOKEN, COMBOBOX_DEFAULT_CONFIG } from '../../constants';\nimport {\n ComboboxKeyHandlerResult,\n ComboboxOptionType,\n ComponentWithError,\n ComponentWithOption,\n TemplateRefWithError,\n TemplateRefWithOption,\n assetComboboxBodyComponentSet,\n comboboxError,\n} from '../../private';\nimport { COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN } from '../combobox-body-empty-template';\nimport { COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN } from '../combobox-body-error-template';\nimport { COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN } from '../combobox-body-loading-template';\nimport { COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN } from '../combobox-body-more-items-hint-template';\nimport { COMBOBOX_OPTION_TEMPLATE_TOKEN } from '../combobox-option-template';\nimport { COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN } from '../combobox-selected-option-template';\n\nexport const COMBOBOX_TOKEN = new InjectionToken<ComboboxDirective>('ET_COMBOBOX_INPUT_TOKEN');\n\nexport type AbstractComboboxBody = AnimatedOverlayComponentBase & {\n _options$: BehaviorSubject<TypedQueryList<AbstractComboboxOption> | null>;\n _containerElementRef: ElementRef<HTMLElement> | undefined;\n id: string;\n};\n\nexport type AbstractComboboxOption = {\n option: InputSignal<unknown>;\n elementRef: ElementRef<HTMLElement>;\n id: string;\n};\n\n@Directive({\n standalone: true,\n providers: [\n {\n provide: COMBOBOX_TOKEN,\n useExisting: ComboboxDirective,\n },\n ],\n})\nexport class ComboboxDirective implements OnInit {\n //#region Injects\n\n private readonly _destroy$ = createDestroy();\n readonly _input = inject<InputDirective<unknown, HTMLInputElement>>(INPUT_TOKEN);\n private readonly _selectField = inject(SELECT_FIELD_TOKEN);\n private readonly _animatedOverlay = inject<AnimatedOverlayDirective<AbstractComboboxBody>>(AnimatedOverlayDirective);\n private readonly _comboboxConfig = inject(COMBOBOX_CONFIG_TOKEN, { optional: true });\n private readonly _themeProvider = inject(THEME_PROVIDER, { optional: true });\n\n //#region Inputs\n\n @Input({ required: true })\n get options() {\n return this._selectionModel.getFilteredOptions();\n }\n set options(value: unknown[]) {\n this._selectionModel.setOptions(value);\n }\n\n @Input()\n set initialValue(value: unknown) {\n this._selectionModel.setSelection(value);\n this._initialValue$.next(value);\n }\n private _initialValue$ = new BehaviorSubject<unknown>(null);\n\n @Input()\n get filterInternal(): boolean {\n return this._filterInternal$.value;\n }\n set filterInternal(value: unknown) {\n const val = booleanAttribute(value);\n this._filterInternal$.next(val);\n\n if (!val) {\n this._selectionModel.setFilter('');\n } else {\n this._selectionModel.setFilter(this.currentFilter);\n }\n }\n private _filterInternal$ = new BehaviorSubject(false);\n\n @Input()\n get loading(): boolean {\n return this._loading$.value;\n }\n set loading(value: unknown) {\n this._loading$.next(booleanAttribute(value));\n }\n private _loading$ = new BehaviorSubject(false);\n readonly loading$ = this._loading$.asObservable();\n\n @Input()\n get error() {\n return this._error$.value;\n }\n set error(value: unknown) {\n this._error$.next(value);\n }\n private _error$ = new BehaviorSubject<unknown>(null);\n readonly error$ = this._error$.asObservable();\n\n /**\n * @deprecated Use `bodyEmptyText` instead. Will be removed in v5.\n */\n @Input()\n emptyText?: string;\n\n @Input()\n bodyEmptyText?: string;\n\n @Input()\n bodyMoreItemsHintText?: string;\n\n /**\n * To be removed in v5.\n */\n get _tempEmptyText() {\n return (\n this.emptyText ??\n this.bodyEmptyText ??\n this._comboboxConfig?.bodyEmptyText ??\n this._comboboxConfig?.emptyText ??\n COMBOBOX_DEFAULT_CONFIG.bodyEmptyText\n );\n }\n\n @Input()\n get placeholder() {\n return this._placeholder$.value;\n }\n set placeholder(value: string | null) {\n this._placeholder$.next(value);\n }\n private _placeholder$ = new BehaviorSubject<string | null>(null);\n\n @Input()\n set multiple(value: unknown) {\n this._selectionModel.setAllowMultiple(booleanAttribute(value));\n }\n\n @Input()\n set bindLabel(value: SelectionModelBinding | null) {\n this._selectionModel.setLabelBinding(value);\n }\n\n @Input()\n set bindValue(value: SelectionModelBinding | null) {\n this._selectionModel.setValueBinding(value);\n }\n\n @Input()\n set bindKey(value: SelectionModelBinding | null) {\n this._selectionModel.setKeyBinding(value);\n }\n\n @Input()\n set bindDisabled(value: SelectionModelBinding | null) {\n this._selectionModel.setDisabledBinding(value);\n }\n\n @Input()\n get allowCustomValues(): boolean {\n return this._allowCustomValues$.value;\n }\n set allowCustomValues(value: unknown) {\n this._allowCustomValues$.next(booleanAttribute(value));\n }\n private _allowCustomValues$ = new BehaviorSubject(false);\n\n @Input({ transform: booleanAttribute })\n get showBodyMoreItemsHint(): boolean {\n return this._showBodyMoreItemsHint$.value;\n }\n set showBodyMoreItemsHint(value: boolean) {\n this._showBodyMoreItemsHint$.next(value);\n }\n private _showBodyMoreItemsHint$ = new BehaviorSubject(false);\n\n optionComponent = input<ComponentWithOption | null>();\n optionComponentInputs = input<Record<string, unknown> | null | undefined>();\n\n selectedOptionComponent = input<ComponentWithOption | null>();\n bodyErrorComponentInputs = input<Record<string, unknown> | null | undefined>();\n\n bodyErrorComponent = input<ComponentWithError | null>();\n selectedOptionComponentInputs = input<Record<string, unknown> | null | undefined>();\n\n bodyLoadingComponent = input<ComponentType<unknown> | null>();\n bodyLoadingComponentInputs = input<Record<string, unknown> | null | undefined>();\n\n bodyEmptyComponent = input<ComponentType<unknown> | null>();\n bodyEmptyComponentInputs = input<Record<string, unknown> | null | undefined>();\n\n bodyMoreItemsHintComponent = input<ComponentType<unknown> | null>();\n bodyMoreItemsHintComponentInputs = input<Record<string, unknown> | null | undefined>();\n\n //#endregion\n\n //#region Outputs\n\n @Output()\n protected readonly filterChange = new EventEmitter<string>();\n\n //#endregion\n\n //#region Members\n\n private _shouldIgnoreNextBlurEvent = false;\n private _deletedSearchWithKeyPress = false;\n\n readonly selectBodyId$ = new BehaviorSubject<string | null>(null);\n readonly activeOptionId$ = new BehaviorSubject<string | null>(null);\n\n get currentFilter() {\n return this._currentFilter$.value;\n }\n private readonly _currentFilter$ = new BehaviorSubject<string>('');\n\n private get _isOpen() {\n return this._animatedOverlay.isMounted;\n }\n readonly isOpen$ = this._animatedOverlay.isMounted$;\n readonly isOpen = toSignal(this.isOpen$);\n\n readonly _selectionModel = new SelectionModel();\n readonly _activeSelectionModel = new ActiveSelectionModel();\n private readonly _backspaceKeyPressManager = new KeyPressManager(BACKSPACE);\n\n readonly selectedOptions$ = this._selectionModel.selection$;\n readonly multiple$ = this._selectionModel.allowMultiple$;\n readonly multipleSignal = toSignal(this.multiple$, { requireSync: true });\n readonly options$ = this._selectionModel.filteredOptions$;\n readonly rawOptions$ = this._selectionModel.options$;\n\n @ContentChild(COMBOBOX_OPTION_TEMPLATE_TOKEN, { read: TemplateRef })\n set optionTemplate(value: TemplateRefWithOption | undefined) {\n this._optionTemplate$.next(value ?? null);\n }\n private readonly _optionTemplate$ = new BehaviorSubject<TemplateRefWithOption | null>(null);\n\n @ContentChild(COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN, { read: TemplateRef })\n set selectedOptionTemplate(value: TemplateRefWithOption | undefined) {\n this._selectedOptionTemplate$.next(value ?? null);\n }\n private readonly _selectedOptionTemplate$ = new BehaviorSubject<TemplateRefWithOption | null>(null);\n\n @ContentChild(COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN, { read: TemplateRef })\n set bodyLoadingTemplate(value: TemplateRef<unknown> | undefined) {\n this._bodyLoadingTemplate$.next(value ?? null);\n }\n private readonly _bodyLoadingTemplate$ = new BehaviorSubject<TemplateRef<unknown> | null>(null);\n\n @ContentChild(COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN, { read: TemplateRef })\n set bodyErrorTemplate(value: TemplateRefWithError | undefined) {\n this._bodyErrorTemplate$.next(value ?? null);\n }\n private readonly _bodyErrorTemplate$ = new BehaviorSubject<TemplateRefWithError | null>(null);\n\n @ContentChild(COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN, { read: TemplateRef })\n set bodyEmptyTemplate(value: TemplateRef<unknown> | undefined) {\n this._bodyEmptyTemplate$.next(value ?? null);\n }\n private readonly _bodyEmptyTemplate$ = new BehaviorSubject<TemplateRef<unknown> | null>(null);\n\n @ContentChild(COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN, { read: TemplateRef })\n set bodyMoreItemsHintTemplate(value: TemplateRef<unknown> | undefined) {\n this._bodyMoreItemsHintTemplate$.next(value ?? null);\n }\n private readonly _bodyMoreItemsHintTemplate$ = new BehaviorSubject<TemplateRef<unknown> | null>(null);\n\n readonly hostClassBindings = signalHostClasses({\n 'et-combobox--loading': toSignal(this._loading$),\n 'et-combobox--error': toSignal(this._error$.pipe(map((v) => !!v))),\n 'et-combobox--open': toSignal(this.isOpen$),\n 'et-select-field--multiple': toSignal(this.multiple$),\n 'et-select-field--open': this.isOpen,\n });\n\n readonly fieldHostClassBindings = signalClasses(this._selectField.elementRef, {\n 'et-select-field--open': toSignal(this.isOpen$),\n 'et-select-field--multiple': toSignal(this.multiple$),\n });\n\n private _comboboxBodyComponent: ComponentType<AbstractComboboxBody> | null = null;\n\n //#endregion\n\n //#region Computes\n\n readonly customOptionTpl$ = this._optionTemplate$.asObservable();\n readonly customSelectedOptionTpl$ = this._selectedOptionTemplate$.asObservable();\n readonly customBodyLoadingTpl$ = this._bodyLoadingTemplate$.asObservable();\n readonly customBodyErrorTpl$ = this._bodyErrorTemplate$.asObservable();\n readonly customBodyEmptyTpl$ = this._bodyEmptyTemplate$.asObservable();\n readonly customBodyMoreItemsHintTpl$ = this._bodyMoreItemsHintTemplate$.asObservable();\n\n //#endregion\n\n //#region Lifecycle\n\n constructor() {\n this._selectionModel.setDisabledBinding('disabled');\n\n this._activeSelectionModel.setSelectionModel(this._selectionModel);\n\n this._animatedOverlay.placement = 'bottom';\n this._animatedOverlay.fallbackPlacements = ['bottom', 'top'];\n this._animatedOverlay.autoResize = true;\n\n this._selectionModel.allowMultiple$\n .pipe(\n takeUntilDestroyed(),\n tap((allowMultiple) => {\n if (allowMultiple) {\n this._updateFilter('');\n }\n }),\n )\n .subscribe();\n\n this._input._setEmptyHelper(this._currentFilter$);\n }\n\n ngOnInit(): void {\n this._initDispatchFilterChanges();\n this._closeBodyOnDisable();\n\n if (isDevMode()) {\n this._debugValidateComboboxConfig();\n this._debugValidateOptionAndInitialValueSchema();\n }\n\n this._selectionModel.setSelectionFromValue$(this._input.value);\n\n this._selectionModel.value$\n .pipe(\n takeUntil(this._destroy$),\n tap((value) => {\n this._input._updateValue(value);\n this._setFilterFromInputValue();\n }),\n )\n .subscribe();\n\n this._input.onExternalUpdate$\n .pipe(\n takeUntil(this._destroy$),\n tap(() => this._selectionModel.setSelectionFromValue$(this._input.value)),\n )\n .subscribe();\n }\n\n //#endregion\n\n //#region Public Methods\n\n setBodyComponent(component: ComponentType<AbstractComboboxBody>) {\n this._comboboxBodyComponent = component;\n }\n\n getOptionLabel(option: unknown) {\n return this._selectionModel.getLabel$(option);\n }\n\n getOptionValue(option: unknown) {\n return this._selectionModel.getValue$(option);\n }\n\n combineSelectedOptionWithComponentInputs(option: unknown) {\n return {\n ...(this.selectedOptionComponentInputs() ?? {}),\n option,\n };\n }\n\n removeSelectedOption(option: unknown) {\n this._selectionModel.removeSelectedOption(option);\n\n this._input._markAsTouched();\n }\n\n open() {\n assetComboboxBodyComponentSet(this._comboboxBodyComponent);\n\n if (this._isOpen || this._input.disabled || this._animatedOverlay.isMounting) return;\n\n const bodyRef = this._animatedOverlay.mount({\n component: this._comboboxBodyComponent,\n mirrorWidth: true,\n themeProvider: this._themeProvider,\n });\n\n if (!bodyRef) return;\n\n this.selectBodyId$.next(bodyRef.id);\n\n bodyRef._options$\n .pipe(\n switchMap((queryList) =>\n combineLatest([\n queryList?.changes.pipe(\n startWith(queryList),\n map((l) => l.toArray()),\n ) ?? of([] as AbstractComboboxOption[]),\n this._activeSelectionModel.activeOption$,\n ]),\n ),\n tap(([options, activeOptionData]) => {\n const optionRef = options.find((o) => o.option() === activeOptionData);\n\n if (!optionRef?.elementRef?.nativeElement) return;\n\n scrollToElement({\n behavior: 'instant',\n element: optionRef.elementRef.nativeElement,\n container: bodyRef._containerElementRef?.nativeElement,\n });\n\n this.activeOptionId$.next(optionRef.id);\n }),\n takeUntil(this._destroy$),\n takeUntil(this._animatedOverlay.afterClosed()),\n )\n .subscribe();\n\n this._animatedOverlay\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n tap(() => {\n this.selectBodyId$.next(null);\n this.activeOptionId$.next(null);\n }),\n )\n .subscribe();\n }\n\n close() {\n if (!this._isOpen || this._animatedOverlay.isUnmounting) return;\n\n this._animatedOverlay.unmount();\n }\n\n focus() {\n this._input.nativeInputRef?.element.nativeElement.focus();\n }\n\n selectInputAndOpen() {\n if (this._input.disabled) return;\n\n this._input.nativeInputRef?.element.nativeElement.select();\n this.open();\n }\n\n writeValueFromOption(option: unknown) {\n this._input._markAsTouched();\n\n if (this._selectionModel.allowMultiple) {\n this._selectionModel.toggleSelectedOption(option);\n } else {\n this._selectionModel.addSelectedOption(option);\n }\n\n if (!this._selectionModel.allowMultiple) {\n this.close();\n this._setFilterFromInputValue();\n } else {\n this._updateFilter('');\n }\n }\n\n isOptionSelected(option: unknown) {\n return this._selectionModel.isSelected$(option);\n }\n\n isOptionActive(option: unknown) {\n return this._activeSelectionModel.isOptionActive$(option);\n }\n\n isOptionDisabled(option: unknown) {\n return this._selectionModel.isDisabled$(option);\n }\n\n trackByOptionKeyFn: TrackByFunction<unknown> = (index, item) => this._selectionModel.getKey(item);\n\n //#endregion\n\n //#region Private Methods\n\n _ignoreNextBlurEvent() {\n this._shouldIgnoreNextBlurEvent = true;\n }\n\n _processKeydownEvent(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n const isOpen = this._isOpen;\n const isMultiple = this._selectionModel.allowMultiple;\n const canAddCustomValue = this.allowCustomValues;\n const value = (event.target as HTMLInputElement).value;\n const hasFilterValue = !!value;\n const selection = this._selectionModel.selection;\n const isBackspacePressed = this._backspaceKeyPressManager.isPressed(event);\n\n const result: ComboboxKeyHandlerResult = {};\n\n if (keyCode === ENTER) {\n event.preventDefault();\n event.stopPropagation();\n\n // The user typed a custom value and pressed enter. Add it to the selected options.\n // FIXME: Currently it is impossible to select the active option with the keyboard if canAddCustomValue is true.\n // To fix this, the active option should also include the origin it got active from (keyboard or programmatic).\n // The \"value\" changing should put the combobox into a \"use the custom input on enter\" mode.\n // The \"active option\" changing via keyboard should put the combobox into a \"use the active option on enter\" mode.\n if (canAddCustomValue && hasFilterValue) {\n result.optionAction = { type: 'add', option: value };\n } else {\n const activeOption = this._activeSelectionModel.activeOption;\n\n if (activeOption) {\n if (isMultiple) {\n result.optionAction = { type: 'toggle', option: activeOption };\n } else {\n result.optionAction = { type: 'add', option: activeOption };\n }\n }\n }\n\n if (isMultiple) {\n result.setFilter = '';\n } else {\n result.overlayOperation = 'close';\n }\n\n return this._interpretKeyHandlerResult(result);\n }\n\n if (keyCode === ESCAPE) {\n if (isOpen) {\n result.overlayOperation = 'close';\n event.preventDefault();\n event.stopPropagation();\n } else if (!isMultiple) {\n if (this.currentFilter) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n result.setFilter = '';\n result.optionAction = 'clear';\n }\n\n return this._interpretKeyHandlerResult(result);\n }\n\n if (keyCode === TAB) {\n result.overlayOperation = 'close';\n return this._interpretKeyHandlerResult(result);\n }\n\n if (keyCode === BACKSPACE) {\n if (isBackspacePressed && value) {\n this._deletedSearchWithKeyPress = true;\n }\n\n if (!hasFilterValue && isMultiple && selection.length && !this._deletedSearchWithKeyPress) {\n result.optionAction = { type: 'remove', option: selection[selection.length - 1] };\n return this._interpretKeyHandlerResult(result);\n }\n\n if (!isBackspacePressed) {\n this._deletedSearchWithKeyPress = false;\n }\n } else {\n this._deletedSearchWithKeyPress = false;\n }\n\n if (!isOpen) {\n result.overlayOperation = 'open';\n }\n\n this._activeSelectionModel.evaluateKeyboardEvent(event);\n\n if (keyCode === A && event.ctrlKey && isMultiple) {\n result.optionAction = 'toggleAll';\n event.preventDefault();\n }\n\n return this._interpretKeyHandlerResult(result);\n }\n\n _processKeyupEvent() {\n this._backspaceKeyPressManager.clear();\n }\n\n _processInputEvent(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n\n this._updateFilter(value);\n }\n\n _handleBlurEvent() {\n if (this._shouldIgnoreNextBlurEvent) {\n this._shouldIgnoreNextBlurEvent = false;\n return;\n }\n\n this._input._markAsTouched();\n this._input._setShouldDisplayError(true);\n\n if (this._selectionModel.allowMultiple) {\n this._updateFilter('');\n return;\n }\n\n if (this.currentFilter === '') {\n this._selectionModel.clearSelectedOptions();\n return;\n }\n\n this._setFilterFromInputValue();\n }\n\n _updateFilter(value: string) {\n if (this._input.nativeInputRef && this._input.nativeInputRef.element.nativeElement.value !== value) {\n this._input.nativeInputRef.element.nativeElement.value = value;\n }\n\n if (this.currentFilter === value) return;\n\n this._currentFilter$.next(value);\n\n if (this.filterInternal) {\n this._selectionModel.setFilter(value);\n }\n }\n\n _setFilterFromInputValue() {\n if (this._selectionModel.allowMultiple) return;\n\n const value = this._input.value;\n\n if (!value || Array.isArray(value)) {\n this._updateFilter('');\n return;\n }\n\n const option = this._selectionModel.getOptionByValue(value);\n\n if (!option) return;\n\n const label = this._selectionModel.getLabel(option);\n\n if (typeof label !== 'string') return;\n\n this._updateFilter(label);\n }\n\n _interpretKeyHandlerResult(result: ComboboxKeyHandlerResult) {\n if (result.overlayOperation === 'close') {\n this.close();\n } else if (result.overlayOperation === 'open') {\n this.open();\n }\n\n if (result.setFilter !== undefined) {\n this._updateFilter(result.setFilter);\n }\n\n if (result.optionAction) {\n if (typeof result.optionAction === 'string') {\n if (result.optionAction === 'clear') {\n this._selectionModel.clearSelectedOptions();\n } else if (result.optionAction === 'toggleAll') {\n this._selectionModel.toggleAllSelectedOptions();\n }\n } else {\n const { type, option } = result.optionAction;\n\n if (this._selectionModel.isDisabled(option)) return;\n\n if (type === 'add') {\n this._selectionModel.addSelectedOption(option);\n }\n\n if (type === 'remove') {\n this._selectionModel.removeSelectedOption(option);\n }\n\n if (type === 'toggle') {\n this._selectionModel.toggleSelectedOption(option);\n }\n }\n }\n }\n\n private _initDispatchFilterChanges() {\n this._currentFilter$\n .pipe(\n skipWhile(() => this.filterInternal),\n debounceTime(300),\n distinctUntilChanged(),\n takeUntil(this._destroy$),\n tap((v) => this.filterChange.emit(v)),\n )\n .subscribe();\n }\n\n private _closeBodyOnDisable() {\n this._input.disabled$\n .pipe(\n tap((disabled) => {\n if (!disabled) return;\n\n this.close();\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n //#endregion\n\n //#region Dev mode\n\n private _debugValidateComboboxConfig(isRetry = false) {\n combineLatest([this._selectionModel.labelBinding$, this._selectionModel.valueBinding$, this._allowCustomValues$])\n .pipe(\n skip(isRetry ? 1 : 0), // Skip if retrying to avoid infinite loop\n debounceTime(0),\n takeUntil(this._destroy$),\n map(([bindLabel, bindValue, allowCustomValues]) => {\n const shouldBeObjects = bindLabel && bindValue && !allowCustomValues;\n\n if (shouldBeObjects) {\n return ComboboxOptionType.Object;\n }\n\n return ComboboxOptionType.Primitive;\n }),\n tap((expectedOptionType) => {\n const options = this._selectionModel.options;\n\n if (isEmptyArray(options)) {\n return;\n }\n\n if (expectedOptionType === ComboboxOptionType.Object) {\n if (!isObjectArray(options)) {\n throw comboboxError('options_object_mismatch', true, options);\n }\n } else if (expectedOptionType === ComboboxOptionType.Primitive) {\n if (!isPrimitiveArray(options)) {\n throw comboboxError('options_primitive_mismatch', true, options);\n }\n }\n }),\n catchError((e) => {\n this._debugValidateComboboxConfig(true);\n return throwError(() => e);\n }),\n )\n .subscribe();\n }\n\n private _debugValidateOptionAndInitialValueSchema(isRetry = false) {\n combineLatest([this.options$, this._initialValue$])\n .pipe(\n skip(isRetry ? 1 : 0), // Skip if retrying to avoid infinite loop\n takeUntil(this._destroy$),\n tap(([options, initialValue]) => {\n if (initialValue === null || initialValue === undefined) return;\n\n if (!this.multiple) return;\n\n const isPrimitive = isPrimitiveArray(options);\n const initialValueIsPrimitive = this.multiple\n ? isPrimitiveArray(initialValue)\n : typeof initialValue !== 'object';\n\n if (isPrimitive) {\n if (!initialValueIsPrimitive) {\n throw comboboxError('init_val_primitive_mismatch', true, { initialValue, options });\n }\n } else {\n if (initialValueIsPrimitive) {\n throw comboboxError('init_val_object_mismatch', true, { initialValue, options });\n }\n }\n }),\n catchError((e) => {\n this._debugValidateOptionAndInitialValueSchema(true);\n return throwError(() => e);\n }),\n )\n .subscribe();\n }\n\n //#endregion\n}\n","import { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n InjectionToken,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { createComponentId, signalHostAttributes, signalHostClasses } from '@ethlete/core';\nimport { switchMap } from 'rxjs';\nimport { AbstractComboboxOption, COMBOBOX_TOKEN } from '../../directives/combobox';\n\nexport const COMBOBOX_OPTION_TOKEN = new InjectionToken<ComboboxOptionComponent>('ET_COMBOBOX_OPTION_TOKEN');\n\n@Component({\n selector: 'et-combobox-option',\n templateUrl: './combobox-option.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-combobox-option',\n '(mousedown)': '_ignoreBlur()',\n '(click)': '_selectOption()',\n '(mouseenter)': '_setActiveByHover()',\n '[attr.id]': 'id',\n role: 'option',\n },\n imports: [AsyncPipe, NgTemplateOutlet, NgComponentOutlet],\n providers: [\n {\n provide: COMBOBOX_OPTION_TOKEN,\n useExisting: ComboboxOptionComponent,\n },\n ],\n})\nexport class ComboboxOptionComponent implements AbstractComboboxOption {\n combobox = inject(COMBOBOX_TOKEN);\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly id = createComponentId('et-combobox-option');\n\n option = input.required<unknown>();\n\n option$ = toObservable(this.option);\n\n disabled = toSignal(this.option$.pipe(switchMap((o) => this.combobox.isOptionDisabled(o))));\n selected = toSignal(this.option$.pipe(switchMap((o) => this.combobox.isOptionSelected(o))));\n active = toSignal(this.option$.pipe(switchMap((o) => this.combobox.isOptionActive(o))));\n\n _customOptionComponentInputs = computed(() => {\n const inputs = this.combobox.optionComponentInputs();\n const option = this.option();\n\n return { ...(inputs ?? {}), option };\n });\n\n _hostClassBindings = signalHostClasses({\n 'et-combobox-option--selected': this.selected,\n 'et-combobox-option--disabled': this.disabled,\n 'et-combobox-option--active': this.active,\n });\n\n _hostAttributeBindings = signalHostAttributes({\n 'aria-selected': this.selected,\n 'aria-disabled': this.disabled,\n });\n\n _selectOption() {\n if (this.combobox._selectionModel.isDisabled(this.option())) {\n return;\n }\n\n this.combobox.writeValueFromOption(this.option());\n this.combobox.focus();\n }\n\n _ignoreBlur() {\n this.combobox._ignoreNextBlurEvent();\n }\n\n _setActiveByHover() {\n this.combobox._activeSelectionModel.setActiveOption(this.option());\n }\n}\n","@if (combobox.customOptionTpl$ | async; as customOptionTpl) {\n <ng-container *ngTemplateOutlet=\"customOptionTpl; context: { option: option() }\" />\n} @else {\n @if (combobox.optionComponent(); as comp) {\n <ng-container *ngComponentOutlet=\"comp; inputs: _customOptionComponentInputs()\" />\n } @else {\n {{ combobox.getOptionLabel(option()) | async }}\n }\n}\n","import { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n InjectionToken,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport {\n ANIMATED_LIFECYCLE_TOKEN,\n AnimatedLifecycleDirective,\n ClickOutsideDirective,\n LetDirective,\n TypedQueryList,\n createComponentId,\n signalHostAttributes,\n signalHostClasses,\n} from '@ethlete/core';\nimport { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';\nimport { BehaviorSubject, combineLatest, map, tap } from 'rxjs';\nimport { AbstractComboboxBody, AbstractComboboxOption, COMBOBOX_TOKEN } from '../../directives/combobox';\nimport { ComboboxOptionComponent } from '../combobox-option';\n\nexport const COMBOBOX_BODY_TOKEN = new InjectionToken<ComboboxBodyComponent>('ET_COMBOBOX_BODY_TOKEN');\n\n@Component({\n selector: 'et-combobox-body',\n templateUrl: './combobox-body.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-combobox-body et-with-default-animation',\n tabindex: '-1',\n '[attr.id]': 'id',\n role: 'listbox',\n },\n imports: [\n NgTemplateOutlet,\n NgComponentOutlet,\n ComboboxOptionComponent,\n LetDirective,\n AsyncPipe,\n AnimatedLifecycleDirective,\n ],\n hostDirectives: [ClickOutsideDirective, ProvideThemeDirective],\n providers: [\n {\n provide: COMBOBOX_BODY_TOKEN,\n useExisting: ComboboxBodyComponent,\n },\n ],\n})\nexport class ComboboxBodyComponent implements AbstractComboboxBody {\n clickOutside = inject(ClickOutsideDirective);\n themeProvider = inject(THEME_PROVIDER);\n combobox = inject(COMBOBOX_TOKEN);\n\n readonly id = createComponentId('et-combobox-body');\n\n @ViewChild('containerElement', { static: true, read: ElementRef })\n _containerElementRef: ElementRef<HTMLElement> | undefined;\n\n @ViewChild(ANIMATED_LIFECYCLE_TOKEN, { static: true })\n _animatedLifecycle?: AnimatedLifecycleDirective;\n\n @ViewChildren(ComboboxOptionComponent)\n set _options(options: TypedQueryList<ComboboxOptionComponent>) {\n this._options$.next(options);\n }\n _options$ = new BehaviorSubject<TypedQueryList<AbstractComboboxOption> | null>(null);\n\n _hostClassBindings = signalHostClasses({\n 'et-combobox-body--loading': toSignal(this.combobox.loading$),\n 'et-combobox-body--multiple': toSignal(this.combobox.multiple$),\n });\n\n _hostAttributeBindings = signalHostAttributes({\n 'aria-multiselectable': toSignal(this.combobox.multiple$),\n 'aria-labelledby': toSignal(this.combobox._input.labelId$),\n });\n\n _customErrorComponentInputs = toSignal(\n combineLatest([this.combobox.error$, toObservable(this.combobox.bodyErrorComponentInputs)]).pipe(\n map(([error, inputs]) => ({ error, ...inputs })),\n ),\n );\n\n _bodyTemplate: TemplateRef<unknown> | null = null;\n\n constructor() {\n this.clickOutside.etClickOutside\n .pipe(\n takeUntilDestroyed(),\n tap(() => this.combobox.close()),\n )\n .subscribe();\n }\n\n _setThemeFromProvider(provider: ProvideThemeDirective) {\n this.themeProvider.syncWithProvider(provider);\n }\n}\n","<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n @if (!options?.length && !combobox.error && !combobox.loading) {\n @if (combobox.customBodyEmptyTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n @if (combobox.bodyEmptyComponent(); as comp) {\n <ng-container *ngComponentOutlet=\"comp; inputs: combobox.bodyEmptyComponentInputs() ?? undefined\" />\n } @else {\n <p class=\"et-combobox-body--empty\">{{ combobox._tempEmptyText }}</p>\n }\n }\n }\n\n @if (combobox.error && !combobox.loading) {\n @if (combobox.customBodyErrorTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl; context: { error: combobox.error }\" />\n } @else {\n @if (combobox.bodyErrorComponent(); as comp) {\n <ng-container *ngComponentOutlet=\"comp; inputs: _customErrorComponentInputs() ?? { error: combobox.error }\" />\n } @else {\n <p class=\"et-combobox-body--error\">{{ combobox.error }}</p>\n }\n }\n }\n\n @if (combobox.loading$ | async) {\n @if (combobox.customBodyLoadingTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n @if (combobox.bodyLoadingComponent(); as comp) {\n <ng-container *ngComponentOutlet=\"comp; inputs: combobox.bodyLoadingComponentInputs() ?? undefined\" />\n }\n }\n }\n\n @if (!combobox.error) {\n @for (option of options; track combobox._selectionModel.trackByOptionKey) {\n <et-combobox-option [option]=\"option\" />\n }\n }\n\n @if (options?.length && combobox.showBodyMoreItemsHint) {\n @if (combobox.customBodyMoreItemsHintTpl$ | async; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n @if (combobox.bodyMoreItemsHintComponent(); as comp) {\n <ng-container *ngComponentOutlet=\"comp; inputs: combobox.bodyMoreItemsHintComponentInputs() ?? undefined\" />\n } @else {\n @if (combobox.bodyMoreItemsHintText) {\n <p class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n }\n }\n }\n }\n </ng-container>\n</div>\n","import { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AnimatedOverlayDirective, LetDirective } from '@ethlete/core';\nimport { ChevronIconComponent } from '../../../../../../../icons/chevron-icon';\nimport { OverlayCloseBlockerDirective } from '../../../../../../../overlay/directives/overlay-close-auto-blocker';\nimport { InputDirective } from '../../../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../../../utils';\nimport { COMBOBOX_TOKEN, ComboboxDirective } from '../../directives/combobox';\nimport { ComboboxBodyComponent } from '../../partials/combobox-body';\n\n@Component({\n selector: 'et-combobox',\n templateUrl: './combobox.component.html',\n styleUrls: ['./combobox.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-combobox',\n '(click)': 'combobox.selectInputAndOpen()',\n },\n imports: [\n NativeInputRefDirective,\n AsyncPipe,\n ChevronIconComponent,\n LetDirective,\n NgTemplateOutlet,\n NgComponentOutlet,\n ],\n hostDirectives: [\n AnimatedOverlayDirective,\n OverlayCloseBlockerDirective,\n { directive: InputDirective, inputs: ['placeholder'] },\n {\n directive: ComboboxDirective,\n inputs: [\n 'options',\n 'initialValue',\n 'filterInternal',\n 'loading',\n 'error',\n 'emptyText',\n 'placeholder',\n 'multiple',\n 'bindLabel',\n 'bindValue',\n 'bindDisabled',\n 'allowCustomValues',\n 'selectedOptionComponent',\n 'optionComponent',\n 'bodyErrorComponent',\n 'bodyLoadingComponent',\n 'bodyEmptyComponent',\n 'bodyMoreItemsHintComponent',\n 'showBodyMoreItemsHint',\n 'bodyEmptyText',\n 'bodyMoreItemsHintText',\n 'optionComponentInputs',\n 'selectedOptionComponentInputs',\n 'bodyErrorComponentInputs',\n 'bodyLoadingComponentInputs',\n 'bodyEmptyComponentInputs',\n 'bodyMoreItemsHintComponentInputs',\n ],\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['filterChange'],\n },\n ],\n})\nexport class ComboboxComponent extends DecoratedInputBase {\n protected readonly combobox = inject(COMBOBOX_TOKEN);\n\n constructor() {\n super();\n\n this.combobox.setBodyComponent(ComboboxBodyComponent);\n }\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<div>\n @if (combobox.multiple$ | async) {\n <div class=\"et-combobox-selected-options\">\n @for (item of combobox.selectedOptions$ | async; track combobox.trackByOptionKeyFn($index, item)) {\n <div class=\"et-combobox-selected-option\" aria-hidden=\"true\">\n @if (combobox.customSelectedOptionTpl$ | async; as customSelectedOptionTpl) {\n <ng-container *ngTemplateOutlet=\"customSelectedOptionTpl; context: { option: item }\" />\n } @else {\n @if (combobox.selectedOptionComponent(); as comp) {\n <ng-container\n *ngComponentOutlet=\"comp; inputs: combobox.combineSelectedOptionWithComponentInputs(item)\"\n />\n } @else {\n {{ combobox.getOptionLabel(item) | async }}\n }\n }\n\n <button\n (click)=\"combobox.removeSelectedOption(item); $event.stopPropagation(); combobox.focus()\"\n class=\"et-combobox-selected-option-remove\"\n tabindex=\"-1\"\n >\n x\n </button>\n </div>\n }\n <div class=\"et-combobox-muliple-input\">\n <ng-container *ngTemplateOutlet=\"inputTpl\" />\n </div>\n </div>\n }\n\n <ng-template #inputTpl>\n <input\n [disabled]=\"input.disabled\"\n [attr.id]=\"input.id\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [attr.aria-disabled]=\"(input.disabled$ | async) || null\"\n [attr.aria-invalid]=\"(input.invalid$ | async) || null\"\n [attr.aria-expanded]=\"combobox.isOpen$ | async\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-activedescendant]=\"combobox.activeOptionId$ | async\"\n [attr.aria-controls]=\"(combobox.selectBodyId$ | async) || null\"\n [attr.aria-owns]=\"(combobox.selectBodyId$ | async) || null\"\n (keydown)=\"combobox._processKeydownEvent($event)\"\n (keyup)=\"combobox._processKeyupEvent()\"\n (click)=\"combobox.open()\"\n (blur)=\"combobox._handleBlurEvent()\"\n (input)=\"combobox._processInputEvent($event)\"\n class=\"et-combobox-wrapper\"\n autocomplete=\"off\"\n aria-haspopup=\"listbox\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n type=\"text\"\n value=\"{{ combobox.currentFilter }}\"\n etNativeInputRef\n />\n </ng-template>\n\n @if ((combobox.multiple$ | async) === false) {\n <ng-container *ngTemplateOutlet=\"inputTpl\" />\n }\n\n <et-chevron-icon class=\"et-combobox-chevron\" />\n</div>\n\n<ng-content select=\"[etInputSuffix]\" />\n\n<ng-template>\n <ng-content />\n</ng-template>\n","import { InputPrefixDirective } from '../../../../directives/input-prefix';\nimport { InputSuffixDirective } from '../../../../directives/input-suffix';\nimport { LabelComponent } from '../../../label/components/label';\nimport { SelectFieldComponent } from '../select-field';\nimport { ComboboxComponent } from './components/combobox';\nimport { ComboboxBodyEmptyTemplateDirective } from './directives/combobox-body-empty-template';\nimport { ComboboxBodyErrorTemplateDirective } from './directives/combobox-body-error-template';\nimport { ComboboxBodyLoadingTemplateDirective } from './directives/combobox-body-loading-template';\nimport { ComboboxOptionTemplateDirective } from './directives/combobox-option-template';\nimport { ComboboxSelectedOptionTemplateDirective } from './directives/combobox-selected-option-template';\n\nexport const ComboboxImports = [\n ComboboxComponent,\n SelectFieldComponent,\n InputPrefixDirective,\n InputSuffixDirective,\n LabelComponent,\n ComboboxOptionTemplateDirective,\n ComboboxSelectedOptionTemplateDirective,\n ComboboxBodyErrorTemplateDirective,\n ComboboxBodyLoadingTemplateDirective,\n ComboboxBodyEmptyTemplateDirective,\n] as const;\n","import { COMBOBOX_CONFIG_TOKEN, COMBOBOX_DEFAULT_CONFIG } from '../constants';\nimport { ComboboxConfig } from '../types';\n\nexport const createComboboxConfig = (\n globalConfig: Partial<ComboboxConfig> | null | undefined = {},\n localConfig: Partial<ComboboxConfig> | null | undefined = {},\n): ComboboxConfig => ({\n ...COMBOBOX_DEFAULT_CONFIG,\n ...(globalConfig || {}),\n ...(localConfig || {}),\n});\n\nexport const provideComboboxConfig = (config: Partial<ComboboxConfig> | null | undefined = {}) => {\n return {\n provide: COMBOBOX_CONFIG_TOKEN,\n useValue: createComboboxConfig(config),\n };\n};\n","import { Directive, InjectionToken, Input, TemplateRef, booleanAttribute } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { NativeSelectOptionValue } from '../../types';\n\nexport const NATIVE_SELECT_OPTION_TOKEN = new InjectionToken<NativeSelectOptionDirective>(\n 'ET_NATIVE_SELECT_OPTION_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n standalone: true,\n exportAs: 'etNativeSelectOption',\n providers: [{ provide: NATIVE_SELECT_OPTION_TOKEN, useExisting: NativeSelectOptionDirective }],\n})\nexport class NativeSelectOptionDirective {\n private readonly _textTemplate$ = new BehaviorSubject<TemplateRef<unknown> | null>(null);\n\n get textTemplate$() {\n return this._textTemplate$.asObservable();\n }\n\n @Input()\n get value() {\n return this._value$.getValue();\n }\n set value(value: NativeSelectOptionValue) {\n this._value$.next(value);\n }\n private _value$ = new BehaviorSubject<NativeSelectOptionValue>(null);\n\n @Input({ transform: booleanAttribute })\n disabled = false;\n\n @Input({ transform: booleanAttribute })\n hidden = false;\n\n @Input()\n key?: string;\n\n _setTextTemplate(template: TemplateRef<unknown> | null): void {\n this._textTemplate$.next(template);\n }\n}\n","import { ContentChildren, Directive, inject, InjectionToken, OnInit, TrackByFunction } from '@angular/core';\nimport { createDestroy, TypedQueryList } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../../../directives/input';\nimport { NativeSelectOptionValue } from '../../types';\nimport { NATIVE_SELECT_OPTION_TOKEN, NativeSelectOptionDirective } from '../native-select-option';\n\nexport const NATIVE_SELECT_INPUT_TOKEN = new InjectionToken<NativeSelectInputDirective>(\n 'ET_NATIVE_SELECT_INPUT_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n standalone: true,\n exportAs: 'etNativeSelectInput',\n providers: [{ provide: NATIVE_SELECT_INPUT_TOKEN, useExisting: NativeSelectInputDirective }],\n})\nexport class NativeSelectInputDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n readonly input = inject<InputDirective<NativeSelectOptionValue, HTMLSelectElement>>(INPUT_TOKEN);\n\n @ContentChildren(NATIVE_SELECT_OPTION_TOKEN, { descendants: true })\n readonly options?: TypedQueryList<NativeSelectOptionDirective>;\n\n ngOnInit(): void {\n combineLatest([this.input.value$, this.input.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n const val = value !== null ? `${value}` : 'null';\n\n if (val !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.value = val;\n }\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n _trackByFn: TrackByFunction<NativeSelectOptionDirective> = (index, option) => option.key ?? option.value;\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n if (!this.options) {\n return;\n }\n\n const input = event.target as HTMLSelectElement;\n const selectedOption = this.options.toArray()[input.selectedIndex];\n\n if (!selectedOption) {\n return;\n }\n\n this.input._updateValue(selectedOption.value);\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { InputDirective } from '../../../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../../../utils';\nimport { NATIVE_SELECT_INPUT_TOKEN, NativeSelectInputDirective } from '../../directives/native-select-input';\n\n@Component({\n selector: 'et-native-select',\n templateUrl: './native-select.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-native-select',\n },\n imports: [NativeInputRefDirective, NgTemplateOutlet, AsyncPipe],\n hostDirectives: [NativeSelectInputDirective, { directive: InputDirective, inputs: ['autocomplete'] }],\n})\nexport class NativeSelectInputComponent extends DecoratedInputBase {\n protected readonly select = inject(NATIVE_SELECT_INPUT_TOKEN);\n}\n","<ng-template>\n <ng-content select=\"et-native-select-option\" />\n</ng-template>\n\n<ng-content select=\"[etInputPrefix]\" />\n\n<select\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"select._onInputInteraction($event)\"\n (blur)=\"select._controlTouched()\"\n class=\"et-native-select-native-input\"\n etNativeInputRef\n>\n @for (option of select.options; track select._trackByFn($index, option)) {\n <option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [attr.selected]=\"option.value === input.value ? '' : null\"\n [attr.hidden]=\"option.hidden ? '' : null\"\n class=\"et-native-select-native-option\"\n >\n <ng-container *ngTemplateOutlet=\"option.textTemplate$ | async\" />\n </option>\n }\n</select>\n\n<ng-content select=\"[etInputSuffix]\" />\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NativeSelectOptionDirective } from '../../directives/native-select-option';\n\n@Component({\n selector: 'et-native-select-option',\n template: ` <ng-template #textTpl> <ng-content /></ng-template> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-native-select-option',\n },\n hostDirectives: [{ directive: NativeSelectOptionDirective, inputs: ['value', 'disabled', 'hidden'] }],\n})\nexport class NativeSelectOptionComponent implements OnInit {\n protected readonly option = inject(NativeSelectOptionDirective);\n\n @ViewChild('textTpl', { static: true })\n textTpl?: TemplateRef<unknown>;\n\n ngOnInit(): void {\n this.option._setTextTemplate(this.textTpl ?? null);\n }\n}\n","import { InputPrefixDirective } from '../../../../directives/input-prefix';\nimport { InputSuffixDirective } from '../../../../directives/input-suffix';\nimport { LabelComponent } from '../../../label/components/label';\nimport { SelectFieldComponent } from '../select-field';\nimport { NativeSelectInputComponent } from './components/native-select';\nimport { NativeSelectInputDirective } from './directives/native-select-input';\nimport { NativeSelectOptionDirective } from './directives/native-select-option';\nimport { NativeSelectOptionComponent } from './partials/native-select-option';\n\nexport const NativeSelectImports = [\n NativeSelectInputComponent,\n NativeSelectOptionComponent,\n SelectFieldComponent,\n NativeSelectInputDirective,\n NativeSelectOptionDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n LabelComponent,\n] as const;\n","import { AfterViewInit, Directive, ElementRef, InjectionToken, Input, booleanAttribute, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ObserveContentDirective, signalHostAttributes, signalHostClasses } from '@ethlete/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SELECT_TOKEN } from '../select';\n\nexport const SELECT_OPTION_TOKEN = new InjectionToken<SelectOptionDirective>('ET_SELECT_OPTION_TOKEN');\n\nlet uniqueId = 0;\n\n@Directive({\n standalone: true,\n providers: [\n {\n provide: SELECT_OPTION_TOKEN,\n useExisting: SelectOptionDirective,\n },\n ],\n host: {\n '[attr.id]': 'id',\n '[attr.aria-disabled]': 'disabled',\n '[class.et-select-option--disabled]': 'disabled',\n '(click)': 'selectOption()',\n '(mouseenter)': 'setActiveByHover()',\n '(etObserveContent)': '_updateViewValue()',\n role: 'option',\n },\n hostDirectives: [ObserveContentDirective],\n})\nexport class SelectOptionDirective implements AfterViewInit {\n private readonly _select = inject(SELECT_TOKEN);\n readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _viewValue$ = new BehaviorSubject<string>(this._elementRef.nativeElement.textContent?.trim() ?? '');\n\n readonly isActive$ = this._select._activeSelectionModel.isOptionActive$(this);\n\n readonly id = `et-select-option-${uniqueId++}`;\n\n @Input({ required: true })\n get value() {\n return this._value$.value;\n }\n set value(value: unknown) {\n this._value$.next(value);\n }\n private _value$ = new BehaviorSubject<unknown>(null);\n\n @Input()\n get disabled(): boolean {\n return this._disabled$.value;\n }\n set disabled(value: unknown) {\n this._disabled$.next(booleanAttribute(value));\n }\n private _disabled$ = new BehaviorSubject(false);\n readonly disabled$ = this._disabled$.asObservable();\n\n readonly isSelected$ = this._select._selectionModel.isSelected$(this);\n readonly isSelected = toSignal(this.isSelected$);\n\n get viewValue() {\n return this._viewValue$.value;\n }\n readonly viewValue$ = this._viewValue$.asObservable();\n\n readonly hostClassBindings = signalHostClasses({\n 'et-select-option--selected': this.isSelected,\n 'et-select-option--active': toSignal(this.isActive$),\n });\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'aria-selected': this.isSelected,\n });\n\n ngAfterViewInit(): void {\n this._updateViewValue();\n }\n\n protected selectOption() {\n if (this._select._selectionModel.isDisabled(this)) {\n return;\n }\n\n this._select.writeValueFromOption(this);\n this._select.focus();\n }\n\n _updateViewValue() {\n this._viewValue$.next(this._elementRef.nativeElement.textContent?.trim() ?? '');\n }\n\n protected setActiveByHover() {\n this._select._activeSelectionModel.setActiveOption(this);\n }\n}\n","import { A, BACKSPACE, DOWN_ARROW, ENTER, ESCAPE, SPACE, TAB, UP_ARROW, hasModifierKey } from '@angular/cdk/keycodes';\nimport { ComponentType } from '@angular/cdk/portal';\nimport {\n ContentChildren,\n Directive,\n ElementRef,\n InjectionToken,\n Input,\n OnInit,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n ActiveSelectionModel,\n AnimatedOverlayComponentBase,\n AnimatedOverlayDirective,\n SelectionModel,\n TypedQueryList,\n createDestroy,\n scrollToElement,\n signalClasses,\n signalHostClasses,\n} from '@ethlete/core';\nimport { THEME_PROVIDER } from '@ethlete/theming';\nimport { BehaviorSubject, combineLatest, debounceTime, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { OverlayCloseBlockerDirective } from '../../../../../../../overlay/directives/overlay-close-auto-blocker';\nimport { INPUT_TOKEN } from '../../../../../../directives/input';\nimport { SELECT_FIELD_TOKEN } from '../../../../directives/select-field';\nimport { SelectKeyHandlerResult } from '../../private';\nimport { SelectBodyDirective } from '../select-body';\nimport { SELECT_OPTION_TOKEN, SelectOptionDirective } from '../select-option';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const SELECT_TOKEN = new InjectionToken<SelectDirective<any>>('ET_SELECT_INPUT_TOKEN');\n\ntype SelectDirectiveBodyComponentBase = AnimatedOverlayComponentBase & {\n _bodyTemplate: TemplateRef<unknown> | null;\n _containerElementRef: ElementRef<HTMLElement> | null | undefined;\n selectBody: SelectBodyDirective;\n};\n\nlet uniqueId = 0;\n\ninterface SelectBodyConfig<T extends SelectDirectiveBodyComponentBase> {\n component: ComponentType<T>;\n template: TemplateRef<unknown>;\n}\n\n@Directive({\n standalone: true,\n hostDirectives: [AnimatedOverlayDirective, OverlayCloseBlockerDirective],\n providers: [\n {\n provide: SELECT_TOKEN,\n useExisting: SelectDirective,\n },\n ],\n})\nexport class SelectDirective<T extends SelectDirectiveBodyComponentBase> implements OnInit {\n private _selectBodyConfig: SelectBodyConfig<T> | null = null;\n\n private readonly _animatedOverlay = inject<AnimatedOverlayDirective<T>>(AnimatedOverlayDirective);\n private readonly _destroy$ = createDestroy();\n private readonly _selectField = inject(SELECT_FIELD_TOKEN);\n private readonly _themeProvider = inject(THEME_PROVIDER, { optional: true });\n\n readonly input = inject(INPUT_TOKEN);\n\n private readonly _selectBodyId$ = new BehaviorSubject<string | null>(null);\n private readonly _isOpen$ = new BehaviorSubject(false);\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly _selectionModel = new SelectionModel<SelectOptionDirective>();\n readonly _activeSelectionModel = new ActiveSelectionModel<SelectOptionDirective>();\n\n @Input()\n set multiple(value: unknown) {\n this._selectionModel.setAllowMultiple(booleanAttribute(value));\n }\n\n @Input()\n emptyText?: string;\n\n @ContentChildren(SELECT_OPTION_TOKEN, { descendants: true })\n private set _selectOptionsQueryList(value: TypedQueryList<SelectOptionDirective>) {\n this._selectOptionsQueryList$.next(value);\n }\n private readonly _selectOptionsQueryList$ = new BehaviorSubject<TypedQueryList<SelectOptionDirective> | null>(null);\n\n readonly selectBodyId$ = this._selectBodyId$.asObservable();\n readonly isOpen$ = this._isOpen$.asObservable();\n readonly isOpen = toSignal(this.isOpen$);\n readonly multiple$ = this._selectionModel.allowMultiple$;\n\n readonly selectCurrentValueId = `et-select-current-value-${uniqueId++}`;\n\n readonly ariaViewValue$ = this._selectionModel.selection$.pipe(\n switchMap((options) => {\n if (!options?.length) return of(null);\n\n const viewValues = options.map((option) => option.viewValue$);\n\n return combineLatest(viewValues);\n }),\n map((viewValues) => {\n if (!viewValues) return null;\n\n return viewValues.join(', ');\n }),\n );\n\n readonly ariaViewValue = toSignal(this.ariaViewValue$);\n\n readonly activeDescendant$ = combineLatest([this.isOpen$, this._activeSelectionModel.activeOption$]).pipe(\n map(([isOpen, activeOption]) => {\n if (!isOpen || !activeOption) return null;\n\n return activeOption.id;\n }),\n );\n\n readonly owns$ = combineLatest([this.isOpen$, this.selectBodyId$]).pipe(\n map(([isOpen, selectBodyId]) => {\n if (!isOpen || !selectBodyId) {\n return null;\n }\n\n return selectBodyId;\n }),\n );\n\n readonly labelledBy$ = this.input.labelId$.pipe(\n map((labelId) => {\n const ids = [labelId, this.selectCurrentValueId];\n\n return ids.filter((id) => !!id).join(' ');\n }),\n );\n\n readonly hostClassBindings = signalHostClasses({\n 'et-select--is-open': this.isOpen,\n 'et-select--disabled': toSignal(this.input.disabled$),\n });\n\n readonly fieldHostClassBindings = signalClasses(this._selectField.elementRef, {\n 'et-select-field--open': this.isOpen,\n 'et-select-field--multiple': toSignal(this.multiple$),\n });\n\n @ViewChild('inputElement')\n inputElement: ElementRef<HTMLElement> | null = null;\n\n constructor() {\n this._animatedOverlay.placement = 'bottom';\n this._animatedOverlay.fallbackPlacements = ['bottom', 'top'];\n this._animatedOverlay.autoResize = true;\n\n this.input._setEmptyHelper(this.ariaViewValue$);\n\n this._selectionModel\n .setOptionsFromQueryList$(this._selectOptionsQueryList$)\n .setLabelBinding((v) => v.viewValue)\n .setValueBinding((v) => v.value)\n .setDisabledBinding((v) => v.disabled);\n\n this._activeSelectionModel.setSelectionModel(this._selectionModel);\n }\n\n ngOnInit(): void {\n this._closeBodyOnDisable();\n\n this._selectionModel.setSelectionFromValue$(this.input.value);\n\n this._selectionModel.value$\n .pipe(\n takeUntil(this._destroy$),\n tap((value) => this.input._updateValue(value)),\n )\n .subscribe();\n\n this.input.onExternalUpdate$\n .pipe(\n takeUntil(this._destroy$),\n tap(() => this._selectionModel.setSelectionFromValue$(this.input.value)),\n )\n .subscribe();\n }\n\n trackByFn: TrackByFunction<SelectOptionDirective> = (_, item) => item.id;\n\n open() {\n if (!this._selectBodyConfig) return;\n\n if (this._animatedOverlay.isMounted || this.input.disabled) return;\n\n const instance = this._animatedOverlay.mount({\n component: this._selectBodyConfig.component,\n mirrorWidth: true,\n themeProvider: this._themeProvider,\n data: { _bodyTemplate: this._selectBodyConfig.template } as Partial<T>,\n });\n\n if (!instance) return;\n\n this._selectBodyId$.next(instance.selectBody.id);\n this._isOpen$.next(true);\n\n this._activeSelectionModel.activeOption$\n .pipe(\n debounceTime(0),\n tap((activeOption) => {\n if (!activeOption) return;\n\n scrollToElement({\n container: instance._containerElementRef?.nativeElement,\n element: activeOption._elementRef.nativeElement,\n behavior: 'instant',\n });\n }),\n takeUntil(this._destroy$),\n takeUntil(this._animatedOverlay.afterClosed()),\n )\n .subscribe();\n\n this._animatedOverlay\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n tap(() => {\n this._selectBodyId$.next(null);\n this._isOpen$.next(false);\n }),\n )\n .subscribe();\n }\n\n close() {\n if (!this._animatedOverlay.isMounted) return;\n\n this._animatedOverlay.unmount();\n }\n\n writeValueFromOption(option: SelectOptionDirective) {\n this.input._markAsTouched();\n\n if (this._selectionModel.allowMultiple) {\n this._selectionModel.toggleSelectedOption(option);\n } else {\n this._selectionModel.addSelectedOption(option);\n }\n\n if (!this._selectionModel.allowMultiple) {\n this.close();\n }\n }\n\n focus() {\n this.inputElement?.nativeElement.focus();\n }\n\n setSelectBody(config: SelectBodyConfig<T>) {\n this._selectBodyConfig = config;\n }\n\n removeOptionFromSelection(option: SelectOptionDirective) {\n this._selectionModel.removeSelectedOption(option);\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n _processKeydownEvent(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n const isOpen = this.isOpen();\n const isMultiple = this._selectionModel.allowMultiple;\n const selection = this._selectionModel.selection;\n const isArrowKey = keyCode === UP_ARROW || keyCode === DOWN_ARROW;\n const isAltPressed = hasModifierKey(event, 'altKey');\n\n const result: SelectKeyHandlerResult<SelectOptionDirective> = {};\n\n if (isArrowKey && isAltPressed && !isOpen) {\n result.overlayOperation = 'open';\n return this._interpretKeyHandlerResult(result);\n }\n\n if (keyCode === ENTER) {\n event.preventDefault();\n event.stopPropagation();\n\n const activeOption = this._activeSelectionModel.activeOption;\n\n if (activeOption && this._selectionModel.isDisabled(activeOption)) return;\n\n if (activeOption) {\n if (isMultiple) {\n result.optionAction = { type: 'toggle', option: activeOption };\n } else {\n result.optionAction = { type: 'add', option: activeOption };\n }\n }\n\n if (!isMultiple) {\n result.overlayOperation = 'close';\n }\n\n return this._interpretKeyHandlerResult(result);\n }\n\n if (keyCode === ESCAPE) {\n if (isOpen) {\n result.overlayOperation = 'close';\n event.preventDefault();\n event.stopPropagation();\n }\n\n return this._interpretKeyHandlerResult(result);\n }\n\n if (keyCode === TAB) {\n result.overlayOperation = 'close';\n return this._interpretKeyHandlerResult(result);\n }\n\n if (keyCode === BACKSPACE) {\n const lastSelectedOption = selection[selection.length - 1];\n\n if (isMultiple && lastSelectedOption) {\n result.optionAction = { type: 'remove', option: lastSelectedOption };\n return this._interpretKeyHandlerResult(result);\n }\n }\n\n if (keyCode === SPACE) {\n result.overlayOperation = 'open';\n\n return this._interpretKeyHandlerResult(result);\n }\n\n const newActiveOption = this._activeSelectionModel.evaluateKeyboardEvent(event, { skipDisabled: !isOpen });\n\n if (newActiveOption && !isOpen && !isMultiple) {\n result.optionAction = { type: 'add', option: newActiveOption };\n }\n\n if (keyCode === A && event.ctrlKey && isMultiple) {\n result.optionAction = 'toggleAll';\n event.preventDefault();\n }\n\n return this._interpretKeyHandlerResult(result);\n }\n\n private _interpretKeyHandlerResult(result: SelectKeyHandlerResult<SelectOptionDirective>) {\n if (result.overlayOperation === 'close') {\n this.close();\n } else if (result.overlayOperation === 'open') {\n this.open();\n }\n\n if (result.optionAction) {\n if (typeof result.optionAction === 'string') {\n if (result.optionAction === 'clear') {\n this._selectionModel.clearSelectedOptions();\n } else if (result.optionAction === 'toggleAll') {\n this._selectionModel.toggleAllSelectedOptions();\n }\n } else {\n const { type, option } = result.optionAction;\n\n if (this._selectionModel.isDisabled(option)) return;\n\n if (type === 'add') {\n this._selectionModel.addSelectedOption(option);\n }\n\n if (type === 'remove') {\n this._selectionModel.removeSelectedOption(option);\n }\n\n if (type === 'toggle') {\n this._selectionModel.toggleSelectedOption(option);\n }\n }\n }\n }\n\n private _closeBodyOnDisable() {\n this.input.disabled$\n .pipe(\n tap((disabled) => {\n if (!disabled) return;\n\n this.close();\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n}\n","import { Directive, ElementRef, InjectionToken, OnInit, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ClickOutsideDirective, createDestroy, signalHostAttributes } from '@ethlete/core';\nimport { takeUntil, tap } from 'rxjs';\nimport { SELECT_TOKEN } from '../select';\n\nexport const SELECT_BODY_TOKEN = new InjectionToken<SelectBodyDirective>('ET_SELECT_BODY_TOKEN');\n\nlet uniqueId = 0;\n\n@Directive({\n standalone: true,\n providers: [\n {\n provide: SELECT_BODY_TOKEN,\n useExisting: SelectBodyDirective,\n },\n ],\n host: {\n '[attr.id]': 'id',\n tabindex: '-1',\n role: 'listbox',\n },\n hostDirectives: [ClickOutsideDirective],\n})\nexport class SelectBodyDirective implements OnInit {\n private readonly _destroy$ = createDestroy();\n readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _select = inject(SELECT_TOKEN);\n private readonly _clickOutside = inject(ClickOutsideDirective);\n\n readonly id = `et-select-body-${uniqueId++}`;\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'aria-multiselectable': toSignal(this._select.multiple$),\n 'aria-labelledby': toSignal(this._select.input.labelId$),\n });\n\n ngOnInit(): void {\n this._clickOutside.etClickOutside\n .pipe(\n takeUntil(this._destroy$),\n tap(() => this._select.close()),\n )\n .subscribe();\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective } from '@ethlete/core';\nimport { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';\nimport { SELECT_BODY_TOKEN, SelectBodyDirective } from '../../directives/select-body';\n\n@Component({\n selector: 'et-select-body',\n template: `\n <div #containerElement class=\"et-select-body-container\" etAnimatedLifecycle>\n <ng-container [ngTemplateOutlet]=\"_bodyTemplate\" />\n </div>\n `,\n styleUrls: ['./select-body.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-select-body et-with-default-animation',\n },\n imports: [AnimatedLifecycleDirective, NgTemplateOutlet],\n hostDirectives: [SelectBodyDirective, ProvideThemeDirective],\n})\nexport class SelectBodyComponent {\n readonly selectBody = inject(SELECT_BODY_TOKEN);\n private readonly _themeProvider = inject(THEME_PROVIDER);\n\n @ViewChild(ANIMATED_LIFECYCLE_TOKEN, { static: true })\n readonly _animatedLifecycle?: AnimatedLifecycleDirective;\n\n @ViewChild('containerElement', { static: true, read: ElementRef })\n readonly _containerElementRef: ElementRef<HTMLElement> | undefined;\n\n _bodyTemplate: TemplateRef<unknown> | null = null;\n\n _setThemeFromProvider(provider: ProvideThemeDirective) {\n this._themeProvider.syncWithProvider(provider);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { LetDirective } from '@ethlete/core';\nimport { ChevronIconComponent } from '../../../../../../../icons/chevron-icon';\nimport { InputDirective } from '../../../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../../../directives/native-input-ref';\nimport { DecoratedInputBase } from '../../../../../../utils';\nimport { SELECT_TOKEN, SelectDirective } from '../../directives/select';\nimport { SelectBodyComponent } from '../../partials/select-body';\n\n@Component({\n selector: 'et-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-select',\n },\n imports: [NativeInputRefDirective, AsyncPipe, ChevronIconComponent, LetDirective],\n hostDirectives: [{ directive: InputDirective }, { directive: SelectDirective, inputs: ['multiple', 'emptyText'] }],\n})\nexport class SelectComponent extends DecoratedInputBase implements AfterViewInit {\n protected readonly select = inject<SelectDirective<SelectBodyComponent>>(SELECT_TOKEN);\n\n @ViewChild('selectBodyTpl')\n selectBodyTpl: TemplateRef<unknown> | null = null;\n\n ngAfterViewInit(): void {\n if (!this.selectBodyTpl) return;\n\n this.select.setSelectBody({ component: SelectBodyComponent, template: this.selectBodyTpl });\n }\n}\n","<ng-content select=\"[etInputPrefix]\" />\n\n<div class=\"et-select-wrapper\">\n <div\n #inputElement\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"select.labelledBy$ | async\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [attr.aria-disabled]=\"(input.disabled$ | async) || null\"\n [attr.aria-invalid]=\"(input.invalid$ | async) || null\"\n [attr.aria-controls]=\"(select.selectBodyId$ | async) || null\"\n [attr.aria-owns]=\"(select.owns$ | async) || null\"\n [attr.aria-expanded]=\"select.isOpen$ | async\"\n [attr.aria-activedescendant]=\"select.activeDescendant$ | async\"\n (click)=\"select.open()\"\n (keydown)=\"select._processKeydownEvent($event)\"\n (blur)=\"select._controlTouched()\"\n class=\"et-select-input et-select-input--static\"\n aria-haspopup=\"listbox\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n >\n <span\n [attr.id]=\"select.selectCurrentValueId\"\n [class.cdk-visually-hidden]=\"select._selectionModel.allowMultiple && select.ariaViewValue()\"\n class=\"et-select-current-value\"\n >\n @if (select.ariaViewValue()) {\n {{ select.ariaViewValue() }}\n } @else {\n {{ select.emptyText }}\n }\n </span>\n\n @if (select._selectionModel.allowMultiple) {\n @if (select._selectionModel.selection$ | async; as selectedOptions) {\n @if (selectedOptions.length) {\n <ul class=\"et-select-selected-options\" aria-hidden=\"true\">\n @for (opt of selectedOptions; track select.trackByFn($index, opt)) {\n <li class=\"et-select-selected-option\">\n {{ opt.viewValue$ | async }}\n <button\n (click)=\"$event.stopPropagation(); select.removeOptionFromSelection(opt); select.focus()\"\n class=\"et-select-selected-option-remove\"\n tabindex=\"-1\"\n type=\"button\"\n ></button>\n </li>\n }\n </ul>\n }\n }\n }\n </div>\n\n <et-chevron-icon class=\"et-select-chevron\" />\n</div>\n\n<ng-content select=\"[etInputSuffix]\" />\n\n<ng-template #selectBodyTpl>\n <ng-content />\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { SELECT_OPTION_TOKEN, SelectOptionDirective } from '../../directives/select-option';\n\n@Component({\n selector: 'et-select-option',\n template: ` <ng-content /> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-select-option',\n },\n imports: [NgTemplateOutlet],\n hostDirectives: [{ directive: SelectOptionDirective, inputs: ['value', 'disabled'] }],\n})\nexport class SelectOptionComponent {\n protected readonly selectOption = inject(SELECT_OPTION_TOKEN);\n}\n","import { InputPrefixDirective } from '../../../../directives/input-prefix';\nimport { InputSuffixDirective } from '../../../../directives/input-suffix';\nimport { LabelComponent } from '../../../label/components/label';\nimport { SelectFieldComponent } from '../select-field';\nimport { SelectComponent } from './components/select';\nimport { SelectOptionComponent } from './partials/select-option';\n\nexport const SelectImports = [\n SelectComponent,\n SelectOptionComponent,\n SelectFieldComponent,\n InputPrefixDirective,\n InputSuffixDirective,\n LabelComponent,\n] as const;\n","import {\n Directive,\n ElementRef,\n InjectionToken,\n Input,\n booleanAttribute,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { Primitive } from '@ethlete/core';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\nimport { SELECTION_LIST_FIELD } from '../selection-list-field';\n\nexport const SELECTION_LIST_OPTION = new InjectionToken<SelectionListOptionDirective>(\n 'ET_SELECTION_LIST_OPTION_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n standalone: true,\n providers: [{ provide: SELECTION_LIST_OPTION, useExisting: SelectionListOptionDirective }],\n exportAs: 'etSelectionListOption',\n host: {\n class: 'et-selection-list-option',\n '[class.et-selection-list-option--selected]': 'selected()',\n '[class.et-selection-list-option--disabled]': 'disabled || input.disabled',\n role: 'option',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'disabled || input.disabled',\n tabindex: '0',\n '(click)': '_onInputInteraction($event)',\n '(blur)': '_controlTouched()',\n },\n})\nexport class SelectionListOptionDirective {\n readonly input = inject<InputDirective<Primitive | Primitive[] | null>>(INPUT_TOKEN);\n readonly field = inject(SELECTION_LIST_FIELD);\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @Input()\n get value() {\n return this._value();\n }\n set value(value: Primitive) {\n this._value.set(value);\n }\n private _value = signal<Primitive>(undefined);\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled();\n }\n set disabled(value: boolean) {\n this._disabled.set(value);\n }\n private _disabled = signal<boolean>(false);\n\n @Input({ transform: booleanAttribute })\n get isResetOption(): boolean {\n return this._isResetOption();\n }\n set isResetOption(value: boolean) {\n this._isResetOption.set(value);\n }\n private _isResetOption = signal<boolean>(false);\n\n readonly selected = computed(() => {\n const value = this.input.value;\n\n return (\n (Array.isArray(value) && value.includes(this.value)) ||\n value === this.value ||\n (this.isResetOption && ((Array.isArray(value) && value.length === 0) || value === null || value === undefined))\n );\n });\n\n focus() {\n this.elementRef.nativeElement.focus();\n }\n\n getLabel() {\n return this.elementRef.nativeElement.textContent || '';\n }\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n if (this.disabled) {\n return;\n }\n\n this._toggleSelected();\n\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n _setTabindex(value: number) {\n this.elementRef.nativeElement.setAttribute('tabindex', value + '');\n }\n\n _toggleSelected() {\n if (this.field.multiple) {\n if (!Array.isArray(this.input.value)) {\n this.input._updateValue([this.value]);\n } else if (this.isResetOption) {\n this.input._updateValue([]);\n } else if (this.selected()) {\n this.input._updateValue(this.input.value.filter((value) => value !== this.value));\n } else {\n this.input._updateValue([...this.input.value, this.value]);\n }\n } else {\n this.input._updateValue(this.value);\n }\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { A, ENTER, SPACE, hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n ContentChildren,\n Directive,\n InjectionToken,\n Input,\n QueryList,\n booleanAttribute,\n inject,\n signal,\n} from '@angular/core';\nimport { Primitive, TypedQueryList, createDestroy } from '@ethlete/core';\nimport { takeUntil } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\nimport { SELECTION_LIST_OPTION, SelectionListOptionDirective } from '../selection-list-option';\n\nexport const SELECTION_LIST_FIELD = new InjectionToken<SelectionListFieldDirective>(\n 'ET_SELECTION_LIST_FIELD_DIRECTIVE_TOKEN',\n);\n\n@Directive({\n standalone: true,\n providers: [{ provide: SELECTION_LIST_FIELD, useExisting: SelectionListFieldDirective }],\n exportAs: 'etSelectionListField',\n host: {\n class: 'et-selection-list-field',\n '[class.et-selection-list-field--multiple]': 'multiple',\n role: 'listbox',\n '[attr.aria-multiselectable]': 'multiple',\n '[attr.aria-disabled]': 'input.disabled',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class SelectionListFieldDirective {\n private readonly _destroy$ = createDestroy();\n\n private _keyManager: FocusKeyManager<SelectionListOptionDirective> | null = null;\n readonly input = inject<InputDirective<Primitive | Primitive[] | null>>(INPUT_TOKEN);\n\n @ContentChildren(SELECTION_LIST_OPTION)\n set options(value: TypedQueryList<SelectionListOptionDirective> | null) {\n this._options.set(value);\n\n if (value && !this._keyManager) {\n this._setupRovingTabindex(value);\n }\n }\n private _options = signal<TypedQueryList<SelectionListOptionDirective> | null>(null);\n\n @Input({ transform: booleanAttribute })\n get multiple(): boolean {\n return this._multiple();\n }\n set multiple(value: boolean) {\n this._multiple.set(value);\n }\n private _multiple = signal<boolean>(false);\n\n protected _handleKeydown(event: KeyboardEvent) {\n const activeItem = this._keyManager?.activeItem;\n\n if (\n (event.keyCode === ENTER || event.keyCode === SPACE) &&\n !this._keyManager?.isTyping() &&\n activeItem &&\n !activeItem.disabled\n ) {\n event.preventDefault();\n activeItem._toggleSelected();\n } else if (\n event.keyCode === A &&\n this.multiple &&\n !this._keyManager?.isTyping() &&\n hasModifierKey(event, 'ctrlKey')\n ) {\n const shouldSelect = this._options()?.some(\n (option) => !option?.disabled && !option?.selected() && !option?.isResetOption,\n );\n event.preventDefault();\n this._setAllOptionsSelected(shouldSelect ?? true);\n } else {\n this._keyManager?.onKeydown(event);\n }\n }\n\n private _setupRovingTabindex(queryList: TypedQueryList<SelectionListOptionDirective>) {\n this._keyManager = new FocusKeyManager(queryList as QueryList<SelectionListOptionDirective>)\n .withHomeAndEnd()\n .withTypeAhead()\n .withWrap()\n .skipPredicate(() => this.input.disabled);\n\n // Set the initial focus.\n this._resetActiveOption();\n\n // Move the tabindex to the currently-focused list item.\n this._keyManager.change\n .pipe(takeUntil(this._destroy$))\n .subscribe((activeItemIndex) => this._setActiveOption(activeItemIndex));\n\n // If the active item is removed from the list, reset back to the first one.\n queryList.changes.pipe(takeUntil(this._destroy$)).subscribe(() => {\n const activeItem = this._keyManager?.activeItem;\n\n if (!activeItem || !queryList.toArray().indexOf(activeItem)) {\n this._resetActiveOption();\n }\n });\n }\n\n private _setActiveOption(index: number) {\n this._options()?.forEach((item, itemIndex) => item?._setTabindex(itemIndex === index ? 0 : -1));\n this._keyManager?.updateActiveItem(index);\n }\n\n private _resetActiveOption() {\n if (this.input.disabled) {\n this._setActiveOption(-1);\n return;\n }\n\n const list = this._options();\n if (!list) return;\n\n const activeItem = list.find((item) => !!item && item.selected() && !item.disabled) || list.first;\n this._setActiveOption(activeItem ? list.toArray().indexOf(activeItem) : -1);\n }\n\n private _setAllOptionsSelected(shouldSelectAll: boolean) {\n if (!this.multiple) return;\n\n const options = this._options()?.toArray() as SelectionListOptionDirective[] | undefined;\n\n if (!options) return;\n\n if (shouldSelectAll) {\n const values = options.filter((o) => !o.disabled && !o.isResetOption).map((o) => o.value);\n\n this.input._updateValue(values);\n } else {\n this.input._updateValue([]);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Type, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { DynamicFormFieldDirective } from '../../../../directives/dynamic-form-field';\nimport { InputDirective } from '../../../../directives/input';\nimport { StaticFormFieldDirective } from '../../../../directives/static-form-field';\nimport { WriteableInputDirective } from '../../../../directives/writeable-input';\nimport { SelectionListFieldDirective } from '../../directives/selection-list-field';\n\n@Component({\n selector: 'et-selection-list-field',\n template: `<ng-content />`,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n StaticFormFieldDirective,\n WriteableInputDirective,\n {\n directive: forwardRef(() => DynamicFormFieldDirective) as Type<DynamicFormFieldDirective>,\n inputs: ['hideErrorMessage'],\n },\n {\n directive: SelectionListFieldDirective,\n inputs: ['multiple'],\n },\n { directive: InputDirective },\n ],\n})\nexport class SelectionListFieldComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { SelectionListOptionDirective } from '../../directives/selection-list-option';\n\n@Component({\n selector: 'et-selection-list-option',\n template: `\n <div class=\"et-selection-list-option-content\">\n <ng-content />\n </div>\n\n <div class=\"et-selection-list-option-state\">\n <div class=\"et-selection-list-option-state-check\"></div>\n </div>\n `,\n styleUrls: ['./selection-list-option.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [{ directive: SelectionListOptionDirective, inputs: ['value', 'disabled', 'isResetOption'] }],\n})\nexport class SelectionListOptionComponent {}\n","import { SelectionListFieldComponent } from './components/selection-list-field';\nimport { SelectionListOptionComponent } from './components/selection-list-option';\n\nexport const SelectionListImports = [SelectionListFieldComponent, SelectionListOptionComponent] as const;\n","import { Directive, inject, InjectionToken } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { signalHostClasses } from '@ethlete/core';\nimport { map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\n\nexport const SLIDE_TOGGLE_TOKEN = new InjectionToken<SlideToggleDirective>('ET_SLIDE_TOGGLE_DIRECTIVE_TOKEN');\n\n@Directive({\n standalone: true,\n providers: [{ provide: SLIDE_TOGGLE_TOKEN, useExisting: SlideToggleDirective }],\n exportAs: 'etSlideToggle',\n})\nexport class SlideToggleDirective {\n readonly input = inject<InputDirective<boolean>>(INPUT_TOKEN);\n readonly checked$ = this.input.value$.pipe(map((value) => !!value));\n\n readonly hostClassBindings = signalHostClasses({\n 'et-slide-toggle--checked': toSignal(this.checked$),\n 'et-slide-toggle--disabled': toSignal(this.input.disabled$),\n });\n\n _onInputInteraction(event: Event) {\n event.stopPropagation();\n\n this.input._updateValue(!this.input.value);\n\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { InputDirective } from '../../../../directives/input';\nimport { NativeInputRefDirective } from '../../../../directives/native-input-ref';\nimport { InputBase } from '../../../../utils';\nimport { SLIDE_TOGGLE_TOKEN, SlideToggleDirective } from '../../directives/slide-toggle';\n\n@Component({\n selector: 'et-slide-toggle',\n templateUrl: './slide-toggle.component.html',\n styleUrls: ['./slide-toggle.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-slide-toggle',\n },\n imports: [NgClass, AsyncPipe, NativeInputRefDirective],\n hostDirectives: [SlideToggleDirective, InputDirective],\n})\nexport class SlideToggleComponent extends InputBase {\n protected readonly slideToggle = inject(SLIDE_TOGGLE_TOKEN);\n}\n","<button\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\n [attr.aria-checked]=\"slideToggle.checked$ | async\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.id]=\"input.id\"\n (click)=\"slideToggle._onInputInteraction($event)\"\n (blur)=\"slideToggle._controlTouched()\"\n class=\"et-slide-toggle-button\"\n role=\"switch\"\n type=\"button\"\n etNativeInputRef\n>\n <div class=\"et-slide-toggle-handle\"></div>\n</button>\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicFormFieldDirective } from '../../../../directives/dynamic-form-field';\nimport { StaticFormFieldDirective } from '../../../../directives/static-form-field';\nimport { WriteableInputDirective } from '../../../../directives/writeable-input';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error/components/error';\n\n@Component({\n selector: 'et-slide-toggle-field',\n template: `\n <div class=\"et-slide-toggle-field-container\">\n <ng-content select=\"et-slide-toggle\" />\n <ng-content select=\"et-label\" />\n </div>\n <et-error [errors]=\"inputState.errors$ | async\" />\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-form-field et-slide-toggle-field',\n },\n hostDirectives: [\n StaticFormFieldDirective,\n WriteableInputDirective,\n {\n directive: forwardRef(() => DynamicFormFieldDirective) as Type<DynamicFormFieldDirective>,\n inputs: ['hideErrorMessage'],\n },\n ],\n imports: [ErrorComponent, AsyncPipe],\n})\nexport class SlideToggleFieldComponent {\n protected readonly inputState = inject(InputStateService);\n}\n","import { LabelComponent } from '../label/components/label';\nimport { SlideToggleComponent } from './components/slide-toggle';\nimport { SlideToggleFieldComponent } from './components/slide-toggle-field';\n\nexport const SlideToggleImports = [SlideToggleComponent, SlideToggleFieldComponent, LabelComponent] as const;\n","import { Directionality } from '@angular/cdk/bidi';\nimport { AsyncPipe, DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { LetDirective, clamp, createDestroy, signalHostAttributes, signalHostClasses } from '@ethlete/core';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n fromEvent,\n map,\n merge,\n of,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n withLatestFrom,\n} from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives/input';\nimport { FormFieldStateService } from '../../../../services';\n\nconst isTouchEvent = (event: Event): event is TouchEvent => {\n return event.type[0] === 't';\n};\n\nconst getTouchIdForSlider = (event: TouchEvent, slider: HTMLElement) => {\n for (let i = 0; i < event.touches.length; i++) {\n const target = event.touches[i]!.target as HTMLElement;\n\n if (slider === target || slider.contains(target)) {\n return event.touches[i]!.identifier;\n }\n }\n\n return null;\n};\n\nconst findMatchingTouch = (touches: TouchList, id: number) => {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i]!.identifier === id) {\n return touches[i];\n }\n }\n\n return null;\n};\n\nconst getPointerPositionOnPage = (event: MouseEvent | TouchEvent, id: number | null) => {\n let point: { clientX: number; clientY: number } | null;\n\n if (isTouchEvent(event)) {\n if (typeof id === 'number') {\n point = findMatchingTouch(event.touches, id) || findMatchingTouch(event.changedTouches, id) || null;\n } else {\n point = event.touches[0] || event.changedTouches[0] || null;\n }\n } else {\n point = event;\n }\n\n return point ? { x: point.clientX, y: point.clientY } : null;\n};\n\n@Component({\n selector: 'et-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-slider',\n role: 'slider',\n '[id]': '_input.id',\n },\n imports: [LetDirective, AsyncPipe],\n hostDirectives: [{ directive: InputDirective, inputs: ['autocomplete'] }],\n})\nexport class SliderComponent implements OnInit {\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _dirService = inject(Directionality);\n private readonly _document = inject(DOCUMENT);\n private readonly _destroy$ = createDestroy();\n\n private readonly _mouseDown$ = fromEvent<MouseEvent>(this._elementRef.nativeElement, 'mousedown', { passive: false });\n private readonly _touchStart$ = fromEvent<TouchEvent>(this._elementRef.nativeElement, 'touchstart', {\n passive: false,\n });\n private readonly _keyDown$ = fromEvent<KeyboardEvent>(this._elementRef.nativeElement, 'keydown', { passive: false });\n private readonly _keyUp$ = fromEvent<KeyboardEvent>(this._elementRef.nativeElement, 'keyup', { passive: false });\n\n private readonly _input = inject<InputDirective<number>>(INPUT_TOKEN);\n private readonly _formFieldStateService = inject(FormFieldStateService);\n\n @Input()\n get min(): number {\n return this._min$.value;\n }\n set min(value: unknown) {\n this._min$.next(numberAttribute(value, 0));\n }\n private _min$ = new BehaviorSubject(0);\n\n @Input()\n get max(): number {\n return this._max$.value;\n }\n set max(value: unknown) {\n this._max$.next(numberAttribute(value, 100));\n }\n private _max$ = new BehaviorSubject(100);\n\n @Input()\n get step(): number {\n return this._step$.value;\n }\n set step(value: unknown) {\n this._step$.next(numberAttribute(value, 1));\n }\n private _step$ = new BehaviorSubject(1);\n\n @Input()\n get vertical(): boolean {\n return this._vertical$.value;\n }\n set vertical(value: unknown) {\n this._vertical$.next(booleanAttribute(value));\n }\n private _vertical$ = new BehaviorSubject(false);\n\n @Input()\n get inverted(): boolean {\n return this._inverted$.value;\n }\n set inverted(value: unknown) {\n this._inverted$.next(booleanAttribute(value));\n }\n private _inverted$ = new BehaviorSubject(false);\n\n @Input({ transform: booleanAttribute })\n get renderValueTooltip(): boolean {\n return this._renderValueTooltip$.value;\n }\n set renderValueTooltip(value: boolean) {\n this._renderValueTooltip$.next(value);\n }\n private _renderValueTooltip$ = new BehaviorSubject(false);\n\n private readonly _dir$ = this._dirService.change.pipe(startWith(this._dirService.value));\n\n private readonly _value$ = combineLatest([this._input.value$, this._min$, this._max$]).pipe(\n map(([value, min, max]) => clamp(value ?? 0, min, max)),\n );\n\n private readonly _roundToDecimal$ = this._step$.pipe(\n map((step) => {\n const stepString = step.toString();\n\n return stepString.includes('.') ? stepString.split('.')[1]!.length : 0;\n }),\n );\n\n private readonly _percent$ = combineLatest([this._value$, this._min$, this._max$]).pipe(\n map(([value, min, max]) => (value - min) / (max - min)),\n );\n private readonly _shouldInvertAxis$ = combineLatest([this._vertical$, this._inverted$]).pipe(\n map(([vertical, inverted]) => (vertical ? !inverted : inverted)),\n );\n private readonly _shouldInvertMouseCoords$ = combineLatest([\n this._vertical$,\n this._shouldInvertAxis$,\n this._dir$,\n ]).pipe(\n map(([vertical, shouldInvertAxis, dir]) => (dir === 'rtl' && !vertical ? !shouldInvertAxis : shouldInvertAxis)),\n );\n private readonly _sliderDimensions$ = new BehaviorSubject(this._elementRef.nativeElement.getBoundingClientRect());\n\n protected readonly valueText$ = combineLatest([this._value$, this._roundToDecimal$]).pipe(\n map(([value, roundToDecimal]) => value.toFixed(roundToDecimal)),\n );\n\n protected readonly trackBackgroundStyles$ = combineLatest([this._percent$, this._vertical$]).pipe(\n map(([percent, vertical]) => {\n const scale = vertical ? `1, ${1 - percent}, 1` : `${1 - percent}, 1, 1`;\n\n return {\n transform: `scale3d(${scale})`,\n };\n }),\n );\n\n protected readonly trackFillStyles$ = combineLatest([this._percent$, this._vertical$]).pipe(\n map(([percent, vertical]) => {\n const scale = vertical ? `1, ${percent}, 1` : `${percent}, 1, 1`;\n\n return {\n transform: `scale3d(${scale})`,\n display: percent === 0 ? 'none' : '',\n };\n }),\n );\n\n protected readonly thumbContainerStyles$ = combineLatest([\n this._percent$,\n this._shouldInvertMouseCoords$,\n this._vertical$,\n this._dir$,\n ]).pipe(\n map(([percent, shouldInvertMouseCoords, vertical, dir]) => {\n const axis = vertical ? 'Y' : 'X';\n const invertOffset = dir === 'rtl' && !vertical ? !shouldInvertMouseCoords : shouldInvertMouseCoords;\n const offset = (invertOffset ? percent : 1 - percent) * 100;\n const sign = vertical ? '-' : dir === 'rtl' ? '' : '-';\n\n return {\n transform: `translate${axis}(${sign}${offset}%)`,\n };\n }),\n );\n\n protected readonly isSlidingVia$ = new BehaviorSubject<'keyboard' | 'pointer' | null>(null);\n protected readonly disableAnimations$ = new BehaviorSubject(false);\n protected readonly touchId$ = new BehaviorSubject<number | null>(null);\n protected readonly lastPointerEvent$ = new BehaviorSubject<MouseEvent | TouchEvent | null>(null);\n\n readonly hostClassBindings = signalHostClasses({\n 'et-slider--is-sliding': toSignal(this.isSlidingVia$),\n 'et-slider--inverted': toSignal(this._inverted$),\n 'et-slider--disable-animations': toSignal(this.disableAnimations$),\n });\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'aria-orientation': toSignal(this._vertical$.pipe(map((vertical) => (vertical ? 'vertical' : 'horizontal')))),\n 'aria-disabled': toSignal(this._input.disabled$),\n 'aria-valuenow': toSignal(this._value$),\n 'aria-valuemin': toSignal(this._min$),\n 'aria-valuemax': toSignal(this._max$),\n 'aria-valuetext': toSignal(this.valueText$),\n tabindex: toSignal(this._input.disabled$.pipe(map((disabled) => (disabled ? -1 : 0)))),\n 'aria-labeledby': this._formFieldStateService.labelId,\n 'aria-describedby': this._formFieldStateService.describedBy,\n });\n\n ngOnInit(): void {\n merge(this._mouseDown$, this._touchStart$)\n .pipe(\n filter((event) => {\n const isDisabled = this._input.disabled;\n const isSliding = !!this.isSlidingVia$.value;\n const isInvalidMouseButton = !isTouchEvent(event) && event.button !== 0;\n\n return !isDisabled && !isSliding && !isInvalidMouseButton;\n }),\n switchMap((event) =>\n combineLatest([of(event), this._freshSliderDimensions(), this._shouldInvertMouseCoords$]).pipe(\n tap(([event, sliderDimensions, shouldInvertMouseCoords]) => {\n this._elementRef.nativeElement.focus();\n\n this._initializeSlide(event, sliderDimensions, shouldInvertMouseCoords);\n }),\n ),\n ),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n this._keyDown$\n .pipe(\n filter((event) => {\n const isDisabled = this._input.disabled;\n const isSliding = this.isSlidingVia$.value && this.isSlidingVia$.value !== 'keyboard';\n const isModifierPressed = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey || event.metaKey;\n\n return !isDisabled && !isSliding && !isModifierPressed;\n }),\n takeUntil(this._destroy$),\n withLatestFrom(this._dir$),\n tap(([event, dir]) => this._updateSliderViaKeyboard(event, dir)),\n )\n .subscribe();\n\n this._keyUp$\n .pipe(\n takeUntil(this._destroy$),\n filter(() => this.isSlidingVia$.value === 'keyboard'),\n tap(() => this.isSlidingVia$.next(null)),\n )\n .subscribe();\n\n fromEvent(this._elementRef.nativeElement, 'blur')\n .pipe(\n takeUntil(this._destroy$),\n tap(() => {\n this._input._markAsTouched();\n this._input._setShouldDisplayError(true);\n }),\n take(1),\n )\n .subscribe();\n }\n\n private _initializeSlide(\n event: MouseEvent | TouchEvent,\n sliderDimensions: DOMRect,\n shouldInvertMouseCoords: boolean,\n ) {\n if (isTouchEvent(event)) {\n this.touchId$.next(getTouchIdForSlider(event, this._elementRef.nativeElement));\n }\n\n const pointerPosition = getPointerPositionOnPage(event, this.touchId$.value);\n\n if (!pointerPosition) {\n return;\n }\n\n this.isSlidingVia$.next('pointer');\n\n this._bindGlobalEvents(event);\n this._updateValueFromPosition(pointerPosition, sliderDimensions, shouldInvertMouseCoords);\n this._document.documentElement.style.cursor = 'grabbing';\n\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n\n private _bindGlobalEvents(event: MouseEvent | TouchEvent) {\n const isTouch = isTouchEvent(event);\n const moveEventName = isTouch ? 'touchmove' : 'mousemove';\n const endEventName = isTouch ? 'touchend' : 'mouseup';\n\n const eventConfig = { passive: false };\n\n const pointerUp$ = fromEvent<MouseEvent | TouchEvent>(window, endEventName, eventConfig);\n const touchCancel$ = fromEvent<TouchEvent>(window, 'touchcancel', eventConfig);\n const windowBlur$ = fromEvent<FocusEvent>(window, 'blur');\n\n const slideEnd$ = merge(pointerUp$, touchCancel$, windowBlur$);\n\n fromEvent<MouseEvent | TouchEvent>(window, moveEventName, eventConfig)\n .pipe(\n takeUntil(slideEnd$),\n takeUntil(this._destroy$),\n withLatestFrom(this._sliderDimensions$, this._shouldInvertMouseCoords$),\n tap(([event, sliderDimensions, shouldInvertMouseCoords]) => {\n const pointerPosition = getPointerPositionOnPage(event, this.touchId$.value);\n\n if (!pointerPosition) {\n return;\n }\n\n if (!this.disableAnimations$.value) {\n this.disableAnimations$.next(true);\n }\n\n this._updateValueFromPosition(pointerPosition, sliderDimensions, shouldInvertMouseCoords);\n }),\n )\n .subscribe();\n\n slideEnd$\n .pipe(\n takeUntil(this._destroy$),\n take(1),\n tap((event) => {\n event.preventDefault();\n this.isSlidingVia$.next(null);\n this.touchId$.next(null);\n this._document.documentElement.style.cursor = '';\n this.disableAnimations$.next(false);\n }),\n )\n .subscribe();\n }\n\n private _updateValueFromPosition = (\n pos: { x: number; y: number },\n sliderDimensions: DOMRect,\n shouldInvertMouseCoords: boolean,\n ) => {\n const offset = this.vertical ? sliderDimensions.top : sliderDimensions.left;\n const size = this.vertical ? sliderDimensions.height : sliderDimensions.width;\n const posComponent = this.vertical ? pos.y : pos.x;\n\n let percent = clamp((posComponent - offset) / size, 0, 1);\n\n if (shouldInvertMouseCoords) {\n percent = 1 - percent;\n }\n\n if (percent === 0) {\n this._input._updateValue(this.min);\n } else if (percent === 1) {\n this._input._updateValue(this.max);\n } else {\n const exactValue = percent * (this.max - this.min) + this.min;\n const closestValue = Math.round((exactValue - this.min) / this.step) * this.step + this.min;\n this._input._updateValue(clamp(closestValue, this.min, this.max));\n }\n\n this._input._markAsTouched();\n this._input._setShouldDisplayError(true);\n };\n\n private _updateSliderViaKeyboard(event: KeyboardEvent, dir: string) {\n switch (event.key) {\n case 'PageUp':\n this._updateSliderValueBy(10);\n break;\n case 'PageDown':\n this._updateSliderValueBy(-10);\n break;\n case 'End':\n this._input._updateValue(this.max);\n break;\n case 'Home':\n this._input._updateValue(this.min);\n break;\n case 'ArrowLeft':\n this._updateSliderValueBy(dir === 'rtl' ? 1 : -1);\n break;\n case 'ArrowUp':\n this._updateSliderValueBy(1);\n break;\n case 'ArrowRight':\n this._updateSliderValueBy(dir === 'rtl' ? -1 : 1);\n break;\n case 'ArrowDown':\n this._updateSliderValueBy(-1);\n break;\n default:\n return;\n }\n\n event.preventDefault();\n this.isSlidingVia$.next('keyboard');\n\n this._input._markAsTouched();\n this._input._setShouldDisplayError(true);\n }\n\n private async _updateSliderValueBy(offset: number) {\n const currentValue = this._input.value || 0;\n const value = clamp(currentValue + this.step * offset, this.min, this.max);\n\n this._input._updateValue(value);\n }\n\n private _freshSliderDimensions() {\n this._sliderDimensions$.next(this._elementRef.nativeElement.getBoundingClientRect());\n\n return this._sliderDimensions$;\n }\n}\n","<div class=\"et-slider-track-container\">\n @if (trackBackgroundStyles$ | async; as trackBackgroundStyles) {\n <div [style.transform]=\"trackBackgroundStyles.transform\" class=\"et-slider-track-background\"></div>\n }\n @if (trackFillStyles$ | async; as trackFillStyles) {\n <div\n [style.transform]=\"trackFillStyles.transform\"\n [style.display]=\"trackFillStyles.display\"\n class=\"et-slider-track-fill\"\n ></div>\n }\n</div>\n\n@if (thumbContainerStyles$ | async; as thumbContainerStyles) {\n <div [style.transform]=\"thumbContainerStyles.transform\" class=\"et-slider-thumb-container\">\n <div class=\"et-slider-thumb\">\n @if (renderValueTooltip) {\n <div class=\"et-slider-value-tooltip\">{{ valueText$ | async }}</div>\n }\n </div>\n </div>\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormFieldDirective } from '../../../../directives/dynamic-form-field';\nimport { StaticFormFieldDirective } from '../../../../directives/static-form-field';\nimport { WriteableInputDirective } from '../../../../directives/writeable-input';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error/components/error';\n\n@Component({\n selector: 'et-slider-field',\n template: `\n <ng-content select=\"et-label\" />\n <div class=\"et-slider-field-container\">\n <ng-content select=\"et-slider\" />\n </div>\n <et-error [errors]=\"inputState.errors$ | async\" />\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-form-field et-slider-field',\n },\n hostDirectives: [\n StaticFormFieldDirective,\n WriteableInputDirective,\n {\n directive: forwardRef(() => DynamicFormFieldDirective) as Type<DynamicFormFieldDirective>,\n inputs: ['hideErrorMessage'],\n },\n ],\n imports: [ErrorComponent, AsyncPipe],\n})\nexport class SliderFieldComponent {\n protected readonly inputState = inject(InputStateService);\n}\n","import { LabelComponent } from '../label/components/label';\nimport { SliderComponent } from './components/slider';\nimport { SliderFieldComponent } from './components/slider-field';\n\nexport const SliderImports = [SliderComponent, SliderFieldComponent, LabelComponent] as const;\n","import { ChevronIconComponent } from './chevron-icon';\n\nexport const IconImports = [ChevronIconComponent] as const;\n","import { AfterViewInit, Component, ElementRef, inject, InjectionToken, Input, ViewChild } from '@angular/core';\nimport { nextFrame } from '@ethlete/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport const MASONRY_ITEM_TOKEN = new InjectionToken<MasonryItemComponent>('ET_MASONRY_ITEM');\n\n@Component({\n selector: '[et-masonry-item], et-masonry-item',\n template: `<div #innerElement class=\"et-masonry-item-inner\"><ng-content /></div>`,\n standalone: true,\n exportAs: 'etMasonryItem',\n host: {\n class: 'et-masonry-item',\n role: 'listitem',\n style: 'opacity: 0;',\n },\n providers: [{ provide: MASONRY_ITEM_TOKEN, useExisting: MasonryItemComponent }],\n})\nexport class MasonryItemComponent implements AfterViewInit {\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @ViewChild('innerElement', { static: true })\n private readonly _innerElementRef?: ElementRef<HTMLElement>;\n\n @Input()\n get key(): string | number {\n return this._key;\n }\n set key(v: string | number) {\n this._key = v;\n\n if (this.isPositioned) {\n this._isPositioned$.next(false);\n }\n }\n private _key!: string | number;\n\n get dimensions() {\n if (!this._innerElementRef?.nativeElement) {\n return null;\n }\n\n return this._innerElementRef.nativeElement.getBoundingClientRect();\n }\n\n private _initialDimensions: DOMRect | null = null;\n\n get initialDimensions() {\n return this._initialDimensions;\n }\n\n private readonly _isPositioned$ = new BehaviorSubject(false);\n\n get isPositioned$() {\n return this._isPositioned$.asObservable();\n }\n\n get isPositioned() {\n return this._isPositioned$.getValue();\n }\n\n ngAfterViewInit(): void {\n if (!this.key) {\n throw new Error('MasonryItemComponent: @Input() key is required');\n }\n\n this._initialDimensions = this.dimensions;\n this._elementRef.nativeElement.style.setProperty('width', `var(--et-masonry-column-width)`);\n }\n\n setPosition(x: number, y: number, height: number) {\n this._elementRef.nativeElement.style.setProperty('transform', `translate3d(${x}px, ${y}px, 0)`);\n this._elementRef.nativeElement.style.setProperty('height', `${height}px`);\n\n if (!this._isPositioned$.value) {\n this._elementRef.nativeElement.style.setProperty('opacity', '1');\n nextFrame(() => this._isPositioned$.next(true));\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n numberAttribute,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n createDestroy,\n DELAYABLE_TOKEN,\n ObserveResizeDirective,\n signalHostClasses,\n TypedQueryList,\n} from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, debounceTime, of, startWith, switchMap, takeUntil, tap, timer } from 'rxjs';\nimport { MASONRY_ITEM_TOKEN, MasonryItemComponent } from '../../partials/masonry-item';\n\ntype MasonryState = {\n preferredColumnWidth: number;\n columnWidth: number;\n columns: number;\n gridRowElHeights: number[][];\n hostHeight: number;\n hostDimensions: DOMRect | null;\n gap: number;\n isInitialized: boolean;\n itemCount: number;\n};\n\n@Component({\n selector: 'et-masonry',\n template: `\n <div (etObserveResize)=\"setResizeEvent()\"></div>\n <ng-content select=\"[etMasonryItem], et-masonry-item, ng-container\" />\n `,\n styleUrls: ['./masonry.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-masonry',\n },\n imports: [ObserveResizeDirective],\n})\nexport class MasonryComponent implements AfterContentInit {\n private readonly _destroy$ = createDestroy();\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _delayable = inject(DELAYABLE_TOKEN, { optional: true });\n\n @ContentChildren(forwardRef(() => MASONRY_ITEM_TOKEN), { descendants: true })\n private readonly _items?: TypedQueryList<MasonryItemComponent>;\n\n @Input()\n get columWidth(): number {\n return this._columWidth$.getValue() || 250;\n }\n set columWidth(value: unknown) {\n this._columWidth$.next(numberAttribute(value, 250));\n }\n private _columWidth$ = new BehaviorSubject<number>(250);\n\n @Input()\n get gap(): number {\n return this._gap$.getValue() || 0;\n }\n set gap(value: unknown) {\n this._gap$.next(numberAttribute(value, 16));\n }\n private _gap$ = new BehaviorSubject<number>(16);\n\n @Output()\n readonly initializing = new EventEmitter();\n\n @Output()\n readonly initialized = new EventEmitter();\n\n private readonly _didResize$ = new BehaviorSubject(false);\n private readonly _didInitialize$ = new BehaviorSubject(false);\n private readonly _hideOverflow$ = new BehaviorSubject(false);\n\n readonly hostClassBindings = signalHostClasses({\n 'et-masonry--initialized': toSignal(this._didInitialize$),\n 'et-masonry--hide-overflow': toSignal(this._hideOverflow$),\n });\n\n private readonly _state: MasonryState = {\n preferredColumnWidth: 0,\n columnWidth: 0,\n columns: 0,\n gridRowElHeights: [],\n hostHeight: 0,\n hostDimensions: null,\n gap: 0,\n itemCount: 0,\n isInitialized: false,\n };\n\n ngAfterContentInit(): void {\n if (!this._items) {\n return;\n }\n\n this._delayable?.enableDelayed();\n\n combineLatest([this._items.changes.pipe(startWith(this._items)), this._didResize$, this._columWidth$, this._gap$])\n .pipe(\n debounceTime(1),\n tap(([, didResize, colWidth, gap]) => {\n if (didResize) {\n this._didResize$.next(false);\n }\n\n const isCompleteInvalid =\n didResize || colWidth !== this._state.preferredColumnWidth || gap !== this._state.gap;\n\n this.invalidate({ partial: !isCompleteInvalid });\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n this._didResize$\n .pipe(\n tap(() => this._hideOverflow$.next(true)),\n switchMap(() => timer(150)),\n tap(() => this._hideOverflow$.next(false)),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n this._items.changes\n .pipe(\n startWith(this._items),\n switchMap((items) =>\n items.length\n ? combineLatest(\n items\n .toArray()\n .filter((i): i is MasonryItemComponent => !!i)\n .map((i) => i.isPositioned$),\n )\n : of([]),\n ),\n switchMap((positioned) => {\n const allPositioned = positioned.every((i) => i);\n\n if (!allPositioned) {\n this._didInitialize$.next(allPositioned);\n this.initializing.emit();\n this._delayable?.enableDelayed();\n return of(null);\n }\n\n return timer(100).pipe(\n tap(() => {\n this._didInitialize$.next(true);\n this._delayable?.disableDelayed();\n this.initialized.emit();\n }),\n );\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n invalidate(config?: { partial?: boolean }) {\n const itemList = this._items;\n const state = this._state;\n\n if (!itemList) {\n return;\n }\n\n const items = itemList.toArray().filter((i): i is MasonryItemComponent => !!i);\n\n if (!config?.partial || !state.isInitialized) {\n state.preferredColumnWidth = this.columWidth;\n state.hostDimensions = this._getHostDimensions();\n state.columns = Math.floor(state.hostDimensions.width / this.columWidth);\n state.gap = this.gap;\n state.itemCount = items.length;\n state.columnWidth = (state.hostDimensions.width - (state.columns - 1) * state.gap) / state.columns;\n this._setColumnWidth(state.columnWidth);\n\n /**\n * Data structure:\n * [\n * [currentTotalHeightOfCol, itemHeight, itemHeight, itemHeight],\n * [currentTotalHeightOfCol, itemHeight, itemHeight, itemHeight],\n * ]\n */\n state.gridRowElHeights = Array.from({ length: state.columns }).map(() => [0]);\n\n this._paintMasonry(0, items);\n\n state.isInitialized = true;\n } else {\n const fromIndex = items.findIndex((item) => !item.isPositioned);\n\n // item count 20 fromIndex 20 + 1 -> 21 => partial invalidation\n if (fromIndex + 1 > state.itemCount) {\n state.itemCount = items.length;\n this._paintMasonry(fromIndex, items);\n\n return;\n }\n\n // do a full invalidation the fromIndex is not the first new item\n this.invalidate();\n }\n }\n\n private _paintMasonry(fromIndex = 0, items: MasonryItemComponent[]) {\n const state = this._state;\n\n for (let itemIndex = fromIndex; itemIndex < items.length; itemIndex++) {\n const item = items[itemIndex];\n\n if (!item) {\n continue;\n }\n\n const initialItemDimensions = item.initialDimensions;\n const updatedDimensions = item.dimensions;\n\n if (!initialItemDimensions || !updatedDimensions) {\n continue;\n }\n\n const { lowestColumnHeight, lowestColumnIndex } = this._getLowestColumn(state.gridRowElHeights);\n\n const x = state.columnWidth * lowestColumnIndex + lowestColumnIndex * state.gap;\n\n item.setPosition(x, lowestColumnHeight, updatedDimensions.height);\n\n const row = state.gridRowElHeights[lowestColumnIndex];\n\n if (!row) continue;\n\n row.push(updatedDimensions.height);\n row[0] += updatedDimensions.height + state.gap;\n }\n\n state.hostHeight = this._getHighestColumn(state.gridRowElHeights).highestColumnHeight - state.gap;\n\n this._elementRef.nativeElement.style.setProperty('height', `${state.hostHeight}px`);\n }\n\n protected setResizeEvent() {\n this._didResize$.next(true);\n }\n\n private _getHostDimensions() {\n return this._elementRef.nativeElement.getBoundingClientRect();\n }\n\n private _setColumnWidth(width: number) {\n this._elementRef.nativeElement.style.setProperty('--et-masonry-column-width', `${width}px`);\n }\n\n private _getLowestColumn = (columnHeights: number[][]) => {\n let lowestColumnHeight = columnHeights[0]?.[0] ?? 0;\n let lowestColumnIndex = 0;\n\n for (let i = 0; i < columnHeights.length; i++) {\n const columnHeight = columnHeights[i]?.[0];\n\n if (columnHeight !== undefined && columnHeight < lowestColumnHeight) {\n lowestColumnHeight = columnHeight;\n lowestColumnIndex = i;\n }\n }\n\n return { lowestColumnHeight, lowestColumnIndex };\n };\n\n private _getHighestColumn = (columnHeights: number[][]) => {\n let highestColumnHeight = columnHeights[0]?.[0] ?? 0;\n let highestColumnIndex = 0;\n\n for (let i = 0; i < columnHeights.length; i++) {\n const columnHeight = columnHeights[i]?.[0];\n\n if (columnHeight !== undefined && columnHeight >= highestColumnHeight) {\n highestColumnHeight = columnHeight;\n highestColumnIndex = i;\n }\n }\n\n return { highestColumnHeight, highestColumnIndex };\n };\n}\n","import { MasonryComponent } from './components/masonry';\nimport { MasonryItemComponent } from './partials/masonry-item';\n\nexport const MasonryImports = [MasonryComponent, MasonryItemComponent] as const;\n","import { ScrollStrategy, ViewportRuler } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\nimport { RouterStateService, SmartBlockScrollStrategy } from '@ethlete/core';\nimport { BottomSheetConfig } from '../types';\n/**\n * @deprecated Will be removed in v5.\n */\nexport const BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH = 150;\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE = 150;\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const BOTTOM_SHEET_DATA = new InjectionToken<unknown>('BottomSheetData');\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken<BottomSheetConfig>('BottomSheetDefaultOptions');\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const BOTTOM_SHEET_CONFIG = new InjectionToken<BottomSheetConfig>('BottomSheetConfig');\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const BOTTOM_SHEET_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('BottomSheetScrollStrategy');\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport function BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER_FACTORY(\n ruler: ViewportRuler,\n routerState: RouterStateService,\n): () => ScrollStrategy {\n return () => new SmartBlockScrollStrategy(ruler, routerState, document);\n}\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER = {\n provide: BOTTOM_SHEET_SCROLL_STRATEGY,\n deps: [ViewportRuler, RouterStateService],\n useFactory: BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const BOTTOM_SHEET_DEFAULT_CONFIG: BottomSheetConfig = {\n data: null,\n hasBackdrop: true,\n delayFocusTrap: true,\n disableClose: false,\n ariaLabel: null,\n ariaModal: true,\n closeOnNavigation: true,\n autoFocus: 'dialog',\n customAnimated: false,\n restoreFocus: true,\n} as const;\n","import { FocusMonitor, FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { Component, ElementRef, Inject, NgZone, Optional, inject } from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN } from '@ethlete/core';\nimport { BOTTOM_SHEET_CONFIG } from '../../constants';\nimport { BottomSheetConfig } from '../../types';\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Component({ selector: 'et-bottom-sheet-container-base', template: '' })\nexport abstract class BottomSheetContainerBaseComponent extends CdkDialogContainer<BottomSheetConfig> {\n readonly _animatedLifecycle = inject(ANIMATED_LIFECYCLE_TOKEN);\n\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n focusTrapFactory: FocusTrapFactory,\n @Optional() @Inject(DOCUMENT) _document: Document,\n @Inject(BOTTOM_SHEET_CONFIG)\n bottomSheetConfig: BottomSheetConfig,\n interactivityChecker: InteractivityChecker,\n ngZone: NgZone,\n public overlayRef: OverlayRef,\n focusMonitor?: FocusMonitor,\n ) {\n super(\n elementRef,\n focusTrapFactory,\n _document,\n bottomSheetConfig,\n interactivityChecker,\n ngZone,\n overlayRef,\n focusMonitor,\n );\n }\n\n protected override _captureInitialFocus(): void {\n if (!this._config.delayFocusTrap) {\n this._trapFocus();\n }\n }\n\n protected _openAnimationDone() {\n if (this._config.delayFocusTrap) {\n this._trapFocus();\n }\n }\n}\n","import { FocusMonitor, FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AnimatedLifecycleDirective, nextFrame } from '@ethlete/core';\nimport { BOTTOM_SHEET_CONFIG } from '../../constants';\nimport { BottomSheetContainerBaseComponent } from '../../partials/bottom-sheet-container-base';\nimport { BottomSheetConfig } from '../../types';\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Component({\n selector: 'et-bottom-sheet-container',\n styleUrls: ['./bottom-sheet-container.component.scss'],\n template: `<ng-template cdkPortalOutlet />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'et-bottom-sheet',\n tabindex: '-1',\n '[attr.aria-modal]': '_config.ariaModal',\n '[id]': '_config.id',\n '[attr.role]': '_config.role',\n '[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledBy',\n '[attr.aria-label]': '_config.ariaLabel',\n '[attr.aria-describedby]': '_config.ariaDescribedBy || null',\n '[class.et-with-default-animation]': '!_config.customAnimated',\n '[class]': '_config.containerClass',\n },\n standalone: true,\n imports: [PortalModule],\n hostDirectives: [AnimatedLifecycleDirective],\n})\nexport class BottomSheetContainerComponent extends BottomSheetContainerBaseComponent {\n constructor(\n elementRef: ElementRef<HTMLElement>,\n focusTrapFactory: FocusTrapFactory,\n @Optional() @Inject(DOCUMENT) document: Document,\n @Inject(BOTTOM_SHEET_CONFIG)\n bottomSheetConfig: BottomSheetConfig,\n checker: InteractivityChecker,\n ngZone: NgZone,\n public override overlayRef: OverlayRef,\n focusMonitor?: FocusMonitor,\n ) {\n super(elementRef, focusTrapFactory, document, bottomSheetConfig, checker, ngZone, overlayRef, focusMonitor);\n }\n\n protected override _contentAttached(): void {\n super._contentAttached();\n\n nextFrame(() => {\n this._animatedLifecycle.enter();\n });\n }\n}\n","import { BOTTOM_SHEET_DEFAULT_CONFIG } from '../constants';\nimport { BottomSheetConfig } from '../types';\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const createBottomSheetConfig = <D = unknown>(\n globalConfig?: Partial<BottomSheetConfig<D>> | null | undefined,\n localConfig?: Partial<BottomSheetConfig<D>> | null | undefined,\n): BottomSheetConfig<D> => ({\n ...(BOTTOM_SHEET_DEFAULT_CONFIG as BottomSheetConfig<D>),\n ...(globalConfig || {}),\n ...(localConfig || {}),\n});\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Observable, Subject, filter, merge, skipUntil, take } from 'rxjs';\nimport { BottomSheetContainerComponent } from '../components/bottom-sheet-container';\nimport { BottomSheetConfig, BottomSheetState } from '../types';\n\n/**\n * @deprecated Will be removed in v5.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class BottomSheetRef<T = any, R = any> {\n componentInstance: T | null = null;\n disableClose: boolean | undefined;\n id: string;\n\n private readonly _afterOpened = new Subject<void>();\n private readonly _beforeClosed = new Subject<R | undefined>();\n\n private _result: R | undefined;\n private _state = BottomSheetState.OPEN;\n private _closeInteractionType: FocusOrigin | undefined;\n\n constructor(\n private _ref: CdkDialogRef<R, T>,\n config: BottomSheetConfig,\n public _containerInstance: BottomSheetContainerComponent,\n ) {\n this.disableClose = config.disableClose;\n this.id = _ref.id;\n\n _containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'entered'),\n take(1),\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n _containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'left'),\n take(1),\n )\n .subscribe(() => {\n this._finishBottomSheetClose();\n });\n\n _ref.overlayRef.detachments().subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n this._finishBottomSheetClose();\n });\n\n merge(\n this.backdropClick(),\n this.keydownEvents().pipe(\n filter((event) => event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)),\n ),\n )\n .pipe(skipUntil(_containerInstance._animatedLifecycle.state$.pipe(filter((e) => e === 'entering'))))\n .subscribe((event) => {\n if (!this.disableClose) {\n event.preventDefault();\n this._closeBottomSheetVia(this, event.type === 'keydown' ? 'keyboard' : 'mouse');\n }\n });\n }\n\n close(bottomSheetResult?: R): void {\n if (this._state === BottomSheetState.CLOSING || this._state === BottomSheetState.CLOSED) {\n return;\n }\n\n this._result = bottomSheetResult;\n\n this._containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'leaving'),\n take(1),\n )\n .subscribe(() => {\n this._beforeClosed.next(bottomSheetResult);\n this._beforeClosed.complete();\n this._ref.overlayRef.detachBackdrop();\n });\n\n this._containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'left'),\n take(1),\n )\n .subscribe(() => this._finishBottomSheetClose());\n\n this._state = BottomSheetState.CLOSING;\n this._containerInstance._animatedLifecycle.leave();\n }\n\n afterOpened(): Observable<void> {\n return this._afterOpened;\n }\n\n afterClosed(): Observable<R | undefined> {\n return this._ref.closed;\n }\n\n beforeClosed(): Observable<R | undefined> {\n return this._beforeClosed;\n }\n\n backdropClick(): Observable<MouseEvent> {\n return this._ref.backdropClick;\n }\n\n keydownEvents(): Observable<KeyboardEvent> {\n return this._ref.keydownEvents;\n }\n\n addPanelClass(classes: string | string[]): this {\n this._ref.addPanelClass(classes);\n return this;\n }\n\n removePanelClass(classes: string | string[]): this {\n this._ref.removePanelClass(classes);\n return this;\n }\n\n getState(): BottomSheetState {\n return this._state;\n }\n\n private _finishBottomSheetClose() {\n this._state = BottomSheetState.CLOSED;\n this._ref.close(this._result, { focusOrigin: this._closeInteractionType });\n this.componentInstance = null;\n }\n\n _closeBottomSheetVia<R>(ref: BottomSheetRef<R>, interactionType: FocusOrigin, result?: R) {\n (ref as unknown as { _closeInteractionType: FocusOrigin })._closeInteractionType = interactionType;\n return ref.close(result);\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { BOTTOM_SHEET_DEFAULT_OPTIONS } from '../constants';\nimport { BottomSheetConfig } from '../types';\nimport { createBottomSheetConfig } from './bottom-sheet-config';\nimport { BottomSheetRef } from './bottom-sheet-ref';\n\n/**\n * Finds the closest BottomSheetRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a bottom sheet.\n * @param openBottomSheets References to the currently-open bottom sheets.\n * @deprecated Will be removed in v5.\n */\nexport function getClosestBottomSheet(element: ElementRef<HTMLElement>, openBottomSheets: BottomSheetRef<unknown>[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('et-bottom-sheet')) {\n parent = parent.parentElement;\n }\n\n return parent ? openBottomSheets.find((bottomSheet) => bottomSheet.id === parent?.id) : null;\n}\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const provideBottomSheetDefaultConfig = (config: Partial<BottomSheetConfig> | null | undefined = {}) => {\n return { provide: BOTTOM_SHEET_DEFAULT_OPTIONS, useValue: createBottomSheetConfig(config) };\n};\n","import { Dialog as CdkDialog, DialogConfig as CdkDialogConfig } from '@angular/cdk/dialog';\nimport { ComponentType, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Directive, InjectionToken, Injector, OnDestroy, TemplateRef, Type } from '@angular/core';\nimport { Observable, Subject, defer, startWith } from 'rxjs';\nimport { BOTTOM_SHEET_CONFIG } from '../constants';\nimport { BottomSheetContainerBaseComponent } from '../partials/bottom-sheet-container-base';\nimport { BottomSheetConfig } from '../types';\nimport { BottomSheetRef, createBottomSheetConfig } from '../utils';\n\nlet uniqueId = 0;\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Directive()\nexport abstract class BottomSheetServiceBase<C extends BottomSheetContainerBaseComponent> implements OnDestroy {\n private readonly _openBottomSheetsAtThisLevel: BottomSheetRef[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenedAtThisLevel = new Subject<BottomSheetRef>();\n private _scrollStrategy: () => ScrollStrategy;\n protected _idPrefix = 'et-bottom-sheet-';\n private _dialog: CdkDialog;\n\n readonly afterAllClosed: Observable<void> = defer(() =>\n this.openBottomSheets.length ? this._getAfterAllClosed() : this._getAfterAllClosed().pipe(startWith(undefined)),\n ) as Observable<void>;\n\n get openBottomSheets(): BottomSheetRef[] {\n return this._parentBottomSheetService\n ? this._parentBottomSheetService.openBottomSheets\n : this._openBottomSheetsAtThisLevel;\n }\n\n get afterOpened(): Subject<BottomSheetRef> {\n return this._parentBottomSheetService ? this._parentBottomSheetService.afterOpened : this._afterOpenedAtThisLevel;\n }\n\n private _getAfterAllClosed(): Subject<void> {\n const parent = this._parentBottomSheetService;\n return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;\n }\n\n constructor(\n private _overlay: Overlay,\n injector: Injector,\n private _defaultOptions: BottomSheetConfig | undefined,\n private _parentBottomSheetService: BottomSheetServiceBase<C> | undefined,\n scrollStrategy: () => ScrollStrategy,\n private _bottomSheetRefConstructor: Type<BottomSheetRef>,\n private _bottomSheetContainerType: Type<C>,\n private _bottomSheetDataToken: InjectionToken<unknown>,\n ) {\n this._scrollStrategy = scrollStrategy;\n this._dialog = injector.get(CdkDialog);\n }\n\n open<T, D = unknown, R = unknown>(component: ComponentType<T>, config?: BottomSheetConfig<D>): BottomSheetRef<T, R>;\n\n open<T, D = unknown, R = unknown>(template: TemplateRef<T>, config?: BottomSheetConfig<D>): BottomSheetRef<T, R>;\n\n open<T, D = unknown, R = unknown>(\n template: ComponentType<T> | TemplateRef<T>,\n config?: BottomSheetConfig<D>,\n ): BottomSheetRef<T, R>;\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: BottomSheetConfig<D>,\n ): BottomSheetRef<T, R> {\n let bottomSheetRef: BottomSheetRef<T, R>;\n config = createBottomSheetConfig<D>(this._defaultOptions as BottomSheetConfig<D>, config);\n config.id = config.id || `${this._idPrefix}${uniqueId++}`;\n config.scrollStrategy = config.scrollStrategy || this._scrollStrategy();\n\n const cdkRef = this._dialog.open<R, D, T>(componentOrTemplateRef, {\n ...config,\n width: '100%',\n maxWidth: '640px',\n maxHeight: 'calc(100% - 72px)',\n height: '100%',\n positionStrategy: this._overlay.position().global().centerHorizontally().bottom('0'),\n disableClose: true,\n closeOnDestroy: false,\n container: {\n type: this._bottomSheetContainerType,\n providers: () => [\n { provide: BOTTOM_SHEET_CONFIG, useValue: config },\n { provide: CdkDialogConfig, useValue: config },\n ],\n },\n templateContext: () => ({ dialogRef: bottomSheetRef }),\n providers: (ref, cdkConfig, container) => {\n if (config?.overlayClass) {\n const overlayRefClasses = Array.isArray(config.overlayClass)\n ? config.overlayClass.join(' ')\n : config.overlayClass;\n\n ref.overlayRef.hostElement.classList.add(overlayRefClasses);\n }\n\n bottomSheetRef = new this._bottomSheetRefConstructor(ref, config, container);\n return [\n { provide: this._bottomSheetContainerType, useValue: container },\n { provide: this._bottomSheetDataToken, useValue: cdkConfig.data },\n { provide: this._bottomSheetRefConstructor, useValue: bottomSheetRef },\n ];\n },\n });\n\n /* eslint-disable @typescript-eslint/no-non-null-assertion*/\n\n bottomSheetRef!.componentInstance = cdkRef.componentInstance!;\n\n this.openBottomSheets.push(bottomSheetRef!);\n this.afterOpened.next(bottomSheetRef!);\n\n bottomSheetRef!.afterClosed().subscribe(() => {\n const index = this.openBottomSheets.indexOf(bottomSheetRef);\n\n if (index > -1) {\n this.openBottomSheets.splice(index, 1);\n\n if (!this.openBottomSheets.length) {\n this._getAfterAllClosed().next();\n }\n }\n });\n\n return bottomSheetRef!;\n\n /* eslint-enable @typescript-eslint/no-non-null-assertion*/\n }\n\n closeAll(): void {\n this._closeBottomSheets(this.openBottomSheets);\n }\n\n getBottomSheetById(id: string): BottomSheetRef | undefined {\n return this.openBottomSheets.find((bottomSheet) => bottomSheet.id === id);\n }\n\n ngOnDestroy() {\n this._closeBottomSheets(this._openBottomSheetsAtThisLevel);\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n }\n\n private _closeBottomSheets(bottomSheets: BottomSheetRef[]) {\n let i = bottomSheets.length;\n\n while (i--) {\n bottomSheets[i]?.close();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SwipeEndEvent, SwipeUpdateEvent } from '../types';\n\nlet nextUniqueId = 0;\n\nconst isTouchEvent = (event: Event): event is TouchEvent => {\n return event.type[0] === 't';\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SwipeHandlerService {\n private _handlerMap: Record<number, SwipeUpdateEvent> = {};\n\n startSwipe(event: TouchEvent | MouseEvent) {\n const handlerId = nextUniqueId++;\n\n const originClientX = isTouchEvent(event) ? event.targetTouches[0]!.clientX : event.clientX;\n const originClientY = isTouchEvent(event) ? event.targetTouches[0]!.clientY : event.clientY;\n const timestamp = Date.now();\n\n this._handlerMap[handlerId] = {\n originClientX,\n originClientY,\n timestamp,\n movementX: 0,\n movementY: 0,\n positiveMovementX: 0,\n positiveMovementY: 0,\n isScrolling: false,\n isSwiping: false,\n };\n\n return handlerId;\n }\n\n updateSwipe(handlerId: number, event: TouchEvent | MouseEvent) {\n const handler = this._getSwipeHandler(handlerId);\n\n if (!handler) return null;\n\n const { originClientX, originClientY, isSwiping, isScrolling } = handler;\n\n const currentClientX = isTouchEvent(event) ? event.targetTouches[0]!.clientX : event.clientX;\n const currentClientY = isTouchEvent(event) ? event.targetTouches[0]!.clientY : event.clientY;\n\n const movementX = (originClientX - currentClientX) * -1;\n const movementY = (originClientY - currentClientY) * -1;\n\n const positiveMovementX = Math.abs(movementX);\n const positiveMovementY = Math.abs(movementY);\n\n if (!isSwiping && !isScrolling) {\n if (positiveMovementY > positiveMovementX) {\n handler.isScrolling = true;\n } else {\n handler.isSwiping = true;\n }\n }\n\n handler.movementX = movementX;\n handler.movementY = movementY;\n\n handler.positiveMovementX = positiveMovementX;\n handler.positiveMovementY = positiveMovementY;\n\n return handler;\n }\n\n endSwipe(handlerId: number) {\n const handler = this._getSwipeHandler(handlerId);\n\n if (!handler) return null;\n\n const { movementX, movementY, timestamp, originClientX, originClientY, positiveMovementX, positiveMovementY } =\n handler;\n\n const timestampStart = timestamp;\n const timestampEnd = Date.now();\n\n const swipeTime = timestampEnd - timestampStart;\n\n const pixelPerMillisecondX = movementX ? movementX / swipeTime : 0;\n const pixelPerSecondX = pixelPerMillisecondX * 1000;\n const positivePixelPerSecondX = Math.abs(pixelPerSecondX);\n\n const pixelPerMillisecondY = movementY ? movementY / swipeTime : 0;\n const pixelPerSecondY = pixelPerMillisecondY * 1000;\n const positivePixelPerSecondY = Math.abs(pixelPerSecondY);\n\n delete this._handlerMap[handlerId];\n\n const swipeEnd: SwipeEndEvent = {\n positivePixelPerSecondX,\n positivePixelPerSecondY,\n pixelPerSecondX,\n pixelPerSecondY,\n movementX,\n movementY,\n originClientX,\n originClientY,\n positiveMovementX,\n positiveMovementY,\n };\n\n return swipeEnd;\n }\n\n cancelSwipe(handlerId: number) {\n delete this._handlerMap[handlerId];\n }\n\n private _getSwipeHandler(handlerId: number) {\n const handler = this._handlerMap[handlerId];\n\n if (!handler) {\n return null;\n }\n\n return handler;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { SwipeHandlerService } from '../../../../../services';\nimport { BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH, BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE } from '../constants';\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Injectable()\nexport class BottomSheetSwipeHandlerService {\n private _swipeHandlerService = inject(SwipeHandlerService);\n private _elementMap: Record<number, HTMLElement> = {};\n\n startSwipe(event: TouchEvent, element: HTMLElement) {\n const handlerId = this._swipeHandlerService.startSwipe(event);\n\n this._elementMap[handlerId] = element;\n\n return handlerId;\n }\n\n updateSwipe(handlerId: number, event: TouchEvent) {\n const e = this._swipeHandlerService.updateSwipe(handlerId, event);\n\n if (!e) return false;\n\n const { movementY } = e;\n\n const element = this._getSwipeElement(handlerId);\n\n element.style.setProperty('--touch-translate-y', `${movementY < 0 ? 0 : movementY}px`);\n\n return true;\n }\n\n endSwipe(handlerId: number) {\n const event = this._swipeHandlerService.endSwipe(handlerId);\n\n if (!event) return false;\n\n const { movementY, pixelPerSecondY } = event;\n\n const element = this._getSwipeElement(handlerId);\n\n if (\n movementY > BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH ||\n (pixelPerSecondY > BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE && movementY > 0)\n ) {\n return true;\n }\n\n element.style.transition = 'transform 100ms var(--ease-out-1)';\n element.style.removeProperty('--touch-translate-y');\n\n setTimeout(() => {\n element.style.transition = '';\n }, 100);\n\n return false;\n }\n\n private _getSwipeElement(handlerId: number) {\n const handler = this._elementMap[handlerId];\n\n if (!handler) {\n throw new Error(`The swipe handler with id ${handlerId} was not found`);\n }\n\n return handler;\n }\n}\n","import { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Inject, Injectable, Injector, Optional, SkipSelf } from '@angular/core';\nimport { BottomSheetContainerComponent } from '../components/bottom-sheet-container';\nimport { BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_OPTIONS, BOTTOM_SHEET_SCROLL_STRATEGY } from '../constants';\nimport { BottomSheetConfig } from '../types';\nimport { BottomSheetRef } from '../utils';\nimport { BottomSheetServiceBase } from './bottom-sheet-base.service';\n\n/**\n * @deprecated Use `OverlayService` instead. Will be removed in v5.\n */\n@Injectable()\nexport class BottomSheetService extends BottomSheetServiceBase<BottomSheetContainerComponent> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional() @Inject(BOTTOM_SHEET_DEFAULT_OPTIONS) defaultOptions: BottomSheetConfig,\n @Inject(BOTTOM_SHEET_SCROLL_STRATEGY) scrollStrategy: () => ScrollStrategy,\n @Optional() @SkipSelf() parentBottomSheetService: BottomSheetService,\n ) {\n super(\n overlay,\n injector,\n defaultOptions,\n parentBottomSheetService,\n scrollStrategy,\n BottomSheetRef,\n BottomSheetContainerComponent,\n BOTTOM_SHEET_DATA,\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { fromEvent, takeUntil, tap } from 'rxjs';\nimport { BottomSheetService, BottomSheetSwipeHandlerService } from '../../services';\nimport { BottomSheetRef, getClosestBottomSheet } from '../../utils';\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Component({\n selector: '[et-bottom-sheet-drag-handle], [etBottomSheetDragHandle]',\n template: '',\n styleUrls: ['./bottom-sheet-drag-handle.component.scss'],\n exportAs: 'etBottomSheetDragHandle',\n host: {\n class: 'et-bottom-sheet-drag-handle',\n '[attr.aria-label]': 'ariaLabel || null',\n },\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [BottomSheetSwipeHandlerService],\n})\nexport class BottomSheetDragHandleComponent implements OnInit, OnChanges {\n private _bottomSheetRef = inject(BottomSheetRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _bottomSheetService = inject(BottomSheetService);\n private readonly _bottomSheetSwipeHandlerService = inject(BottomSheetSwipeHandlerService);\n private readonly _destroy$ = createDestroy();\n\n @Input('aria-label')\n ariaLabel?: string = 'Close sheet';\n\n @Input()\n @HostBinding('attr.type')\n type: 'submit' | 'button' | 'reset' = 'button';\n\n @Input('et-bottom-sheet-drag-handle')\n bottomSheetResult: unknown;\n\n @Input('etBottomSheetDragHandle')\n _etBottomSheetDragHandle: unknown;\n\n private _swipeHandlerId: number | null = null;\n\n ngOnInit() {\n if (!this._bottomSheetRef) {\n const closestRef = getClosestBottomSheet(this._elementRef, this._bottomSheetService.openBottomSheets);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._bottomSheetRef = closestRef;\n }\n\n fromEvent<TouchEvent>(this._elementRef.nativeElement, 'touchstart', { passive: true })\n .pipe(\n tap((event) => this._onTouchStart(event)),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n fromEvent<TouchEvent>(this._elementRef.nativeElement, 'touchmove', { passive: true })\n .pipe(\n tap((event) => this._onTouchMove(event)),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n fromEvent<TouchEvent>(this._elementRef.nativeElement, 'touchend', { passive: true })\n .pipe(\n tap((event) => this._onTouchEnd(event)),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const change = changes['_etBottomSheetDragHandle'];\n\n if (change) {\n this.bottomSheetResult = change.currentValue;\n }\n }\n\n @HostListener('click', ['$event'])\n _onButtonClick(event: MouseEvent) {\n if (!this._bottomSheetRef) {\n return;\n }\n\n this._bottomSheetRef._closeBottomSheetVia(\n this._bottomSheetRef,\n event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse',\n this.bottomSheetResult,\n );\n }\n\n _onTouchStart(event: TouchEvent) {\n if (!this._bottomSheetRef) {\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n event.stopPropagation();\n\n this._swipeHandlerId = this._bottomSheetSwipeHandlerService.startSwipe(\n event,\n this._bottomSheetRef._containerInstance.elementRef.nativeElement,\n );\n }\n\n _onTouchMove(event: TouchEvent) {\n if (this._swipeHandlerId === null) {\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n event.stopPropagation();\n\n const didSwipe = this._bottomSheetSwipeHandlerService.updateSwipe(this._swipeHandlerId, event);\n\n if (!didSwipe) {\n this._swipeHandlerId = null;\n }\n }\n\n _onTouchEnd(event: TouchEvent) {\n if (this._swipeHandlerId === null) {\n return;\n }\n\n event.stopPropagation();\n\n const shouldClose = this._bottomSheetSwipeHandlerService.endSwipe(this._swipeHandlerId);\n\n this._swipeHandlerId = null;\n\n if (shouldClose) {\n if (!this._bottomSheetRef) {\n return;\n }\n\n this._bottomSheetRef._closeBottomSheetVia(this._bottomSheetRef, 'touch', this.bottomSheetResult);\n }\n }\n}\n","import { Directive, ElementRef, HostBinding, inject, Input, OnInit } from '@angular/core';\nimport { BottomSheetService } from '../../services';\nimport { BottomSheetRef, getClosestBottomSheet } from '../../utils';\n\nlet bottomSheetElementUid = 0;\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Directive({\n selector: '[et-bottom-sheet-title], [etBottomSheetTitle]',\n exportAs: 'etBottomSheetTitle',\n standalone: true,\n})\nexport class BottomSheetTitleDirective implements OnInit {\n private _bottomSheetRef = inject(BottomSheetRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _bottomSheetService = inject(BottomSheetService);\n\n @Input()\n @HostBinding('attr.id')\n id = `et-bottom-sheet-title-${bottomSheetElementUid++}`;\n\n ngOnInit() {\n if (!this._bottomSheetRef) {\n const closestRef = getClosestBottomSheet(this._elementRef, this._bottomSheetService.openBottomSheets);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._bottomSheetRef = closestRef;\n }\n\n Promise.resolve().then(() => this._bottomSheetRef?._containerInstance?._ariaLabelledByQueue?.push(this.id));\n }\n}\n","import { Dialog, DIALOG_SCROLL_STRATEGY_PROVIDER } from '@angular/cdk/dialog';\nimport { BottomSheetContainerComponent } from './components/bottom-sheet-container';\nimport { BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER } from './constants';\nimport { BottomSheetDragHandleComponent } from './partials/bottom-sheet-drag-handle';\nimport { BottomSheetTitleDirective } from './partials/bottom-sheet-title';\nimport { BottomSheetService } from './services';\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const BottomSheetImports = [\n BottomSheetContainerComponent,\n BottomSheetTitleDirective,\n BottomSheetDragHandleComponent,\n] as const;\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const provideBottomSheet = () => {\n return [BottomSheetService, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER, Dialog, DIALOG_SCROLL_STRATEGY_PROVIDER];\n};\n","import { ScrollStrategy, ViewportRuler } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\nimport { RouterStateService, SmartBlockScrollStrategy } from '@ethlete/core';\nimport { DialogConfig } from '../types';\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const DIALOG_DATA = new InjectionToken('DialogData');\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const DIALOG_DEFAULT_OPTIONS = new InjectionToken<DialogConfig>('DialogDefaultOptions');\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const DIALOG_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('DialogScrollStrategy');\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const DIALOG_CONFIG = new InjectionToken<DialogConfig>('DialogConfig');\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport function DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(\n ruler: ViewportRuler,\n routerState: RouterStateService,\n): () => ScrollStrategy {\n return () => new SmartBlockScrollStrategy(ruler, routerState, document);\n}\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const DIALOG_SCROLL_STRATEGY_PROVIDER = {\n provide: DIALOG_SCROLL_STRATEGY,\n deps: [ViewportRuler, RouterStateService],\n useFactory: DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const DIALOG_DEFAULT_CONFIG: DialogConfig = {\n role: 'dialog',\n hasBackdrop: true,\n disableClose: false,\n maxWidth: '80vw',\n data: null,\n ariaDescribedBy: null,\n ariaLabelledBy: null,\n ariaLabel: null,\n ariaModal: true,\n customAnimated: false,\n autoFocus: 'first-tabbable',\n restoreFocus: true,\n delayFocusTrap: true,\n closeOnNavigation: true,\n} as const;\n","import { FocusMonitor, FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { Component, ElementRef, Inject, NgZone, Optional, inject } from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN } from '@ethlete/core';\nimport { DIALOG_CONFIG } from '../../constants';\nimport { DialogConfig } from '../../types';\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Component({ selector: 'et-dialog-container-base', template: '' })\nexport abstract class DialogContainerBaseComponent extends CdkDialogContainer<DialogConfig> {\n readonly _animatedLifecycle = inject(ANIMATED_LIFECYCLE_TOKEN);\n\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n focusTrapFactory: FocusTrapFactory,\n @Optional() @Inject(DOCUMENT) _document: Document,\n @Inject(DIALOG_CONFIG)\n dialogConfig: DialogConfig,\n interactivityChecker: InteractivityChecker,\n ngZone: NgZone,\n public overlayRef: OverlayRef,\n focusMonitor?: FocusMonitor,\n ) {\n super(\n elementRef,\n focusTrapFactory,\n _document,\n dialogConfig,\n interactivityChecker,\n ngZone,\n overlayRef,\n focusMonitor,\n );\n }\n\n protected override _captureInitialFocus(): void {\n if (!this._config.delayFocusTrap) {\n this._trapFocus();\n }\n }\n\n protected _openAnimationDone() {\n if (this._config.delayFocusTrap) {\n this._trapFocus();\n }\n }\n}\n","import { FocusMonitor, FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AnimatedLifecycleDirective, nextFrame } from '@ethlete/core';\nimport { DIALOG_CONFIG } from '../../constants';\nimport { DialogContainerBaseComponent } from '../../partials/dialog-container-base';\nimport { DialogConfig } from '../../types';\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Component({\n selector: 'et-dialog-container',\n styleUrls: ['./dialog-container.component.scss'],\n template: `<ng-template cdkPortalOutlet />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'et-dialog',\n tabindex: '-1',\n '[attr.aria-modal]': '_config.ariaModal',\n '[id]': '_config.id',\n '[attr.role]': '_config.role',\n '[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledBy',\n '[attr.aria-label]': '_config.ariaLabel',\n '[attr.aria-describedby]': '_config.ariaDescribedBy || null',\n '[class.et-with-default-animation]': '!_config.customAnimated',\n '[class]': '_config.containerClass',\n },\n standalone: true,\n imports: [PortalModule],\n hostDirectives: [AnimatedLifecycleDirective],\n})\nexport class DialogContainerComponent extends DialogContainerBaseComponent {\n constructor(\n elementRef: ElementRef<HTMLElement>,\n focusTrapFactory: FocusTrapFactory,\n @Optional() @Inject(DOCUMENT) document: Document,\n @Inject(DIALOG_CONFIG)\n dialogConfig: DialogConfig,\n checker: InteractivityChecker,\n ngZone: NgZone,\n public override overlayRef: OverlayRef,\n focusMonitor?: FocusMonitor,\n ) {\n super(elementRef, focusTrapFactory, document, dialogConfig, checker, ngZone, overlayRef, focusMonitor);\n }\n\n protected override _contentAttached(): void {\n super._contentAttached();\n\n nextFrame(() => {\n this._animatedLifecycle.enter();\n });\n }\n}\n","import { DIALOG_DEFAULT_CONFIG } from '../constants';\nimport { DialogConfig } from '../types';\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const createDialogConfig = <D = unknown>(\n globalConfig?: Partial<DialogConfig<D>> | null | undefined,\n localConfig?: Partial<DialogConfig<D>> | null | undefined,\n): DialogConfig<D> => ({\n ...(DIALOG_DEFAULT_CONFIG as DialogConfig<D>),\n ...(globalConfig || {}),\n ...(localConfig || {}),\n});\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { Observable, Subject, filter, merge, skipUntil, take } from 'rxjs';\nimport { DialogContainerBaseComponent } from '../partials/dialog-container-base';\nimport { DialogConfig, DialogPosition, DialogState } from '../types';\n\n/**\n * @deprecated Will be removed in v5.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class DialogRef<T = any, R = any> {\n componentInstance: T | null = null;\n disableClose: boolean | undefined;\n id: string;\n\n private readonly _afterOpened = new Subject<void>();\n private readonly _beforeClosed = new Subject<R | undefined>();\n\n private _result: R | undefined;\n private _state = DialogState.OPEN;\n private _closeInteractionType: FocusOrigin | undefined;\n\n constructor(\n private _ref: CdkDialogRef<R, T>,\n config: DialogConfig,\n public _containerInstance: DialogContainerBaseComponent,\n ) {\n this.disableClose = config.disableClose;\n this.id = _ref.id;\n\n _containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'entered'),\n take(1),\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n _containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'left'),\n take(1),\n )\n .subscribe(() => {\n this._finishDialogClose();\n });\n\n _ref.overlayRef.detachments().subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n this._finishDialogClose();\n });\n\n merge(\n this.backdropClick(),\n this.keydownEvents().pipe(\n filter((event) => event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)),\n ),\n )\n .pipe(skipUntil(_containerInstance._animatedLifecycle.state$.pipe(filter((e) => e === 'entering'))))\n .subscribe((event) => {\n if (!this.disableClose) {\n event.preventDefault();\n this._closeDialogVia(this, event.type === 'keydown' ? 'keyboard' : 'mouse');\n }\n });\n }\n\n close(dialogResult?: R): void {\n if (this._state === DialogState.CLOSING || this._state === DialogState.CLOSED) {\n return;\n }\n\n this._result = dialogResult;\n\n this._containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'leaving'),\n take(1),\n )\n .subscribe(() => {\n this._beforeClosed.next(dialogResult);\n this._beforeClosed.complete();\n this._ref.overlayRef.detachBackdrop();\n });\n\n this._containerInstance._animatedLifecycle.state$\n .pipe(\n filter((event) => event === 'left'),\n take(1),\n )\n .subscribe(() => this._finishDialogClose());\n\n this._state = DialogState.CLOSING;\n this._containerInstance._animatedLifecycle.leave();\n }\n\n afterOpened(): Observable<void> {\n return this._afterOpened;\n }\n\n afterClosed(): Observable<R | undefined> {\n return this._ref.closed;\n }\n\n beforeClosed(): Observable<R | undefined> {\n return this._beforeClosed;\n }\n\n backdropClick(): Observable<MouseEvent> {\n return this._ref.backdropClick;\n }\n\n keydownEvents(): Observable<KeyboardEvent> {\n return this._ref.keydownEvents;\n }\n\n updatePosition(position?: DialogPosition): this {\n const strategy = this._ref.config.positionStrategy as GlobalPositionStrategy;\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right);\n } else {\n strategy.centerHorizontally();\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom);\n } else {\n strategy.centerVertically();\n }\n\n this._ref.updatePosition();\n\n return this;\n }\n\n updateSize(width = '', height = ''): this {\n this._ref.updateSize(width, height);\n return this;\n }\n\n addPanelClass(classes: string | string[]): this {\n this._ref.addPanelClass(classes);\n return this;\n }\n\n removePanelClass(classes: string | string[]): this {\n this._ref.removePanelClass(classes);\n return this;\n }\n\n getState(): DialogState {\n return this._state;\n }\n\n private _finishDialogClose() {\n this._state = DialogState.CLOSED;\n this._ref.close(this._result, { focusOrigin: this._closeInteractionType });\n this.componentInstance = null;\n }\n\n _closeDialogVia<R>(ref: DialogRef<R>, interactionType: FocusOrigin, result?: R) {\n (ref as unknown as { _closeInteractionType: FocusOrigin })._closeInteractionType = interactionType;\n return ref.close(result);\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { DIALOG_DEFAULT_OPTIONS } from '../constants';\nimport { DialogConfig } from '../types';\nimport { createDialogConfig } from './dialog-config';\nimport { DialogRef } from './dialog-ref';\n\n/**\n * Finds the closest DialogRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n * @deprecated Will be removed in v5.\n */\nexport function getClosestDialog(element: ElementRef<HTMLElement>, openDialogs: DialogRef<unknown>[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('et-dialog')) {\n parent = parent.parentElement;\n }\n\n return parent ? openDialogs.find((dialog) => dialog.id === parent?.id) : null;\n}\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const provideDialogDefaultConfig = (config: Partial<DialogConfig> | null | undefined = {}) => {\n return { provide: DIALOG_DEFAULT_OPTIONS, useValue: createDialogConfig(config) };\n};\n","import { Dialog as CdkDialog, DialogConfig as CdkDialogConfig } from '@angular/cdk/dialog';\nimport { ComponentType, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Directive, InjectionToken, Injector, OnDestroy, TemplateRef, Type } from '@angular/core';\nimport { Observable, Subject, defer, startWith } from 'rxjs';\nimport { DIALOG_CONFIG } from '../constants';\nimport { DialogContainerBaseComponent } from '../partials/dialog-container-base';\nimport { DialogConfig } from '../types';\nimport { DialogRef, createDialogConfig } from '../utils';\n\nlet uniqueId = 0;\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Directive()\nexport abstract class DialogServiceBase<C extends DialogContainerBaseComponent> implements OnDestroy {\n private readonly _openDialogsAtThisLevel: DialogRef[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenedAtThisLevel = new Subject<DialogRef>();\n private _scrollStrategy: () => ScrollStrategy;\n protected _idPrefix = 'et-dialog-';\n private _dialog: CdkDialog;\n\n readonly afterAllClosed: Observable<void> = defer(() =>\n this.openDialogs.length ? this._getAfterAllClosed() : this._getAfterAllClosed().pipe(startWith(undefined)),\n ) as Observable<void>;\n\n get openDialogs(): DialogRef[] {\n return this._parentDialogService ? this._parentDialogService.openDialogs : this._openDialogsAtThisLevel;\n }\n\n get afterOpened(): Subject<DialogRef> {\n return this._parentDialogService ? this._parentDialogService.afterOpened : this._afterOpenedAtThisLevel;\n }\n\n private _getAfterAllClosed(): Subject<void> {\n const parent = this._parentDialogService;\n return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;\n }\n\n constructor(\n private _overlay: Overlay,\n injector: Injector,\n private _defaultOptions: DialogConfig | undefined,\n private _parentDialogService: DialogServiceBase<C> | undefined,\n scrollStrategy: () => ScrollStrategy,\n private _dialogRefConstructor: Type<DialogRef>,\n private _dialogContainerType: Type<C>,\n private _dialogDataToken: InjectionToken<unknown>,\n ) {\n this._scrollStrategy = scrollStrategy;\n this._dialog = injector.get(CdkDialog);\n }\n\n open<T, D = unknown, R = unknown>(component: ComponentType<T>, config?: DialogConfig<D>): DialogRef<T, R>;\n\n open<T, D = unknown, R = unknown>(template: TemplateRef<T>, config?: DialogConfig<D>): DialogRef<T, R>;\n\n open<T, D = unknown, R = unknown>(\n template: ComponentType<T> | TemplateRef<T>,\n config?: DialogConfig<D>,\n ): DialogRef<T, R>;\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: DialogConfig<D>,\n ): DialogRef<T, R> {\n let dialogRef: DialogRef<T, R>;\n config = createDialogConfig<D>(this._defaultOptions as DialogConfig<D>, config);\n config.id = config.id || `${this._idPrefix}${uniqueId++}`;\n config.scrollStrategy = config.scrollStrategy || this._scrollStrategy();\n\n const cdkRef = this._dialog.open<R, D, T>(componentOrTemplateRef, {\n ...config,\n positionStrategy:\n config.positionStrategy ?? this._overlay.position().global().centerHorizontally().centerVertically(),\n disableClose: true,\n closeOnDestroy: false,\n container: {\n type: this._dialogContainerType,\n providers: () => [\n { provide: DIALOG_CONFIG, useValue: config },\n { provide: CdkDialogConfig, useValue: config },\n ],\n },\n templateContext: () => ({ dialogRef }),\n providers: (ref, cdkConfig, dialogContainer) => {\n if (config?.overlayClass) {\n const overlayRefClasses = Array.isArray(config.overlayClass)\n ? config.overlayClass.join(' ')\n : config.overlayClass;\n\n ref.overlayRef.hostElement.classList.add(overlayRefClasses);\n }\n\n dialogRef = new this._dialogRefConstructor(ref, config, dialogContainer);\n dialogRef.updatePosition(config?.position);\n return [\n { provide: this._dialogContainerType, useValue: dialogContainer },\n { provide: this._dialogDataToken, useValue: cdkConfig.data },\n { provide: this._dialogRefConstructor, useValue: dialogRef },\n ];\n },\n });\n\n /* eslint-disable @typescript-eslint/no-non-null-assertion*/\n\n dialogRef!.componentInstance = cdkRef.componentInstance!;\n\n this.openDialogs.push(dialogRef!);\n this.afterOpened.next(dialogRef!);\n\n dialogRef!.afterClosed().subscribe(() => {\n const index = this.openDialogs.indexOf(dialogRef);\n\n if (index > -1) {\n this.openDialogs.splice(index, 1);\n\n if (!this.openDialogs.length) {\n this._getAfterAllClosed().next();\n }\n }\n });\n\n return dialogRef!;\n\n /* eslint-enable @typescript-eslint/no-non-null-assertion*/\n }\n\n closeAll(): void {\n this._closeDialogs(this.openDialogs);\n }\n\n getDialogById(id: string): DialogRef | undefined {\n return this.openDialogs.find((dialog) => dialog.id === id);\n }\n\n ngOnDestroy() {\n this._closeDialogs(this._openDialogsAtThisLevel);\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n }\n\n private _closeDialogs(dialogs: DialogRef[]) {\n let i = dialogs.length;\n\n while (i--) {\n dialogs[i]?.close();\n }\n }\n}\n","import { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Inject, Injectable, Injector, Optional, SkipSelf } from '@angular/core';\nimport { DialogContainerComponent } from '../components/dialog-container';\nimport { DIALOG_DATA, DIALOG_DEFAULT_OPTIONS, DIALOG_SCROLL_STRATEGY } from '../constants';\nimport { DialogConfig } from '../types';\nimport { DialogRef } from '../utils';\nimport { DialogServiceBase } from './dialog-base.service';\n\n/**\n * @deprecated Use `OverlayService` instead. Will be removed in v5.\n */\n@Injectable()\nexport class DialogService extends DialogServiceBase<DialogContainerComponent> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional() @Inject(DIALOG_DEFAULT_OPTIONS) defaultOptions: DialogConfig,\n @Inject(DIALOG_SCROLL_STRATEGY) scrollStrategy: () => ScrollStrategy,\n @Optional() @SkipSelf() parentDialogService: DialogService,\n ) {\n super(\n overlay,\n injector,\n defaultOptions,\n parentDialogService,\n scrollStrategy,\n DialogRef,\n DialogContainerComponent,\n DIALOG_DATA,\n );\n }\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n inject,\n} from '@angular/core';\nimport { DialogService } from '../../services';\nimport { DialogRef, getClosestDialog } from '../../utils';\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Directive({\n selector: '[et-dialog-close], [etDialogClose]',\n exportAs: 'etDialogClose',\n host: {\n '[attr.aria-label]': 'ariaLabel || null',\n },\n standalone: true,\n})\nexport class DialogCloseDirective implements OnInit, OnChanges {\n private _dialogRef = inject(DialogRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _dialogService = inject(DialogService);\n\n @Input('aria-label')\n ariaLabel?: string;\n\n @Input()\n @HostBinding('attr.type')\n type: 'submit' | 'button' | 'reset' = 'button';\n\n @Input('et-dialog-close')\n dialogResult: unknown;\n\n @Input('etDialogClose')\n _etDialogClose: unknown;\n\n ngOnInit() {\n if (!this._dialogRef) {\n const closestRef = getClosestDialog(this._elementRef, this._dialogService.openDialogs);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._dialogRef = closestRef;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const change = changes['_etDialogClose'];\n\n if (change) {\n this.dialogResult = change.currentValue;\n }\n }\n\n @HostListener('click', ['$event'])\n _onButtonClick(event: MouseEvent) {\n if (!this._dialogRef) {\n return;\n }\n\n this._dialogRef._closeDialogVia(\n this._dialogRef,\n event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse',\n this.dialogResult,\n );\n }\n}\n","import { Directive, ElementRef, HostBinding, inject, Input, OnInit } from '@angular/core';\nimport { DialogService } from '../../services';\nimport { DialogRef, getClosestDialog } from '../../utils';\n\nlet dialogElementUid = 0;\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Directive({\n selector: '[et-dialog-title], [etDialogTitle]',\n exportAs: 'etDialogTitle',\n standalone: true,\n})\nexport class DialogTitleDirective implements OnInit {\n private _dialogRef = inject(DialogRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _dialogService = inject(DialogService);\n\n @Input()\n @HostBinding('attr.id')\n id = `et-dialog-title-${dialogElementUid++}`;\n\n ngOnInit() {\n if (!this._dialogRef) {\n const closestRef = getClosestDialog(this._elementRef, this._dialogService.openDialogs);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._dialogRef = closestRef;\n }\n\n Promise.resolve().then(() => this._dialogRef?._containerInstance?._ariaLabelledByQueue?.push(this.id));\n }\n}\n","import { DIALOG_SCROLL_STRATEGY_PROVIDER as CDK_DIALOG_SCROLL_STRATEGY_PROVIDER, Dialog } from '@angular/cdk/dialog';\nimport { DialogContainerComponent } from './components/dialog-container';\nimport { DIALOG_SCROLL_STRATEGY_PROVIDER } from './constants';\nimport { DialogCloseDirective } from './partials/dialog-close';\nimport { DialogTitleDirective } from './partials/dialog-title';\nimport { DialogService } from './services';\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const DialogImports = [DialogContainerComponent, DialogCloseDirective, DialogTitleDirective] as const;\n\n/**\n * @deprecated Will be removed in v5.\n */\nexport const provideDialog = () => {\n return [DialogService, DIALOG_SCROLL_STRATEGY_PROVIDER, Dialog, CDK_DIALOG_SCROLL_STRATEGY_PROVIDER];\n};\n","import { Directive, InjectionToken, Input, booleanAttribute, signal } from '@angular/core';\nimport { signalHostAttributes } from '@ethlete/core';\n\nexport const SCROLLABLE_IGNORE_CHILD_TOKEN = new InjectionToken<ScrollableIgnoreChildDirective>(\n 'SCROLLABLE_IGNORE_CHILD_TOKEN',\n);\n\nexport const SCROLLABLE_IGNORE_CHILD_ATTRIBUTE = 'etScrollableIgnoreChild';\n\nexport const isScrollableChildIgnored = (e: HTMLElement) => {\n const attr = e.attributes.getNamedItem(SCROLLABLE_IGNORE_CHILD_ATTRIBUTE)?.value;\n\n return attr === 'true' || attr === '';\n};\n\n@Directive({\n selector: `[${SCROLLABLE_IGNORE_CHILD_ATTRIBUTE}]`,\n standalone: true,\n providers: [\n {\n provide: SCROLLABLE_IGNORE_CHILD_TOKEN,\n useExisting: ScrollableIgnoreChildDirective,\n },\n ],\n})\nexport class ScrollableIgnoreChildDirective {\n @Input({ transform: booleanAttribute, alias: SCROLLABLE_IGNORE_CHILD_ATTRIBUTE })\n set _ignoreChildEnabled(v: boolean) {\n this.ignoreChildEnabled.set(v);\n }\n readonly ignoreChildEnabled = signal(true);\n\n readonly hostAttributeBindings = signalHostAttributes({\n [SCROLLABLE_IGNORE_CHILD_ATTRIBUTE]: this.ignoreChildEnabled,\n });\n}\n","import { Directive, ElementRef, InjectionToken, Input, booleanAttribute, inject, signal } from '@angular/core';\nimport { signalHostAttributes } from '@ethlete/core';\n\nexport const SCROLLABLE_IS_ACTIVE_CHILD_TOKEN = new InjectionToken<ScrollableIsActiveChildDirective>(\n 'SCROLLABLE_IS_ACTIVE_CHILD_TOKEN',\n);\n\nexport const SCROLLABLE_IS_ACTIVE_CHILD_ATTRIBUTE = 'etScrollableIsActiveChild';\n\nexport const isScrollableChildActive = (e: HTMLElement) => {\n const attr = e.attributes.getNamedItem(SCROLLABLE_IS_ACTIVE_CHILD_ATTRIBUTE)?.value;\n\n return attr === 'true' || attr === '';\n};\n\n@Directive({\n selector: `[${SCROLLABLE_IS_ACTIVE_CHILD_ATTRIBUTE}]`,\n standalone: true,\n providers: [\n {\n provide: SCROLLABLE_IS_ACTIVE_CHILD_TOKEN,\n useExisting: ScrollableIsActiveChildDirective,\n },\n ],\n})\nexport class ScrollableIsActiveChildDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @Input({ transform: booleanAttribute, alias: SCROLLABLE_IS_ACTIVE_CHILD_ATTRIBUTE })\n set _isActiveChildEnabled(v: boolean) {\n this.isActiveChildEnabled.set(v);\n }\n readonly isActiveChildEnabled = signal(true);\n\n readonly hostAttributeBindings = signalHostAttributes({\n [SCROLLABLE_IS_ACTIVE_CHILD_ATTRIBUTE]: this.isActiveChildEnabled,\n });\n}\n","import { Directive, InjectionToken, TemplateRef, computed, inject, input, numberAttribute } from '@angular/core';\n\nexport const SCROLLABLE_LOADING_TEMPLATE_TOKEN = new InjectionToken<ScrollableLoadingTemplateDirective>(\n 'SCROLLABLE_LOADING_TEMPLATE_TOKEN',\n);\n\n@Directive({\n selector: 'ng-template[etScrollableLoadingTemplate]',\n standalone: true,\n providers: [\n {\n provide: SCROLLABLE_LOADING_TEMPLATE_TOKEN,\n useExisting: ScrollableLoadingTemplateDirective,\n },\n ],\n})\nexport class ScrollableLoadingTemplateDirective {\n templateRef = inject(TemplateRef);\n\n repeatContentCount = input(1, { transform: numberAttribute });\n\n repeat = computed(() => Array.from({ length: this.repeatContentCount() }));\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChild,\n contentChildren,\n effect,\n inject,\n input,\n isDevMode,\n numberAttribute,\n signal,\n viewChild,\n} from '@angular/core';\nimport { outputFromObservable, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport {\n LetDirective,\n NgClassType,\n ObserveScrollStateDirective,\n ScrollObserverScrollState,\n ScrollToElementOptions,\n createCanAnimateSignal,\n createIsRenderedSignal,\n getElementScrollCoordinates,\n getIntersectionInfo,\n signalClasses,\n signalElementChildren,\n signalElementDimensions,\n signalElementIntersection,\n signalElementScrollState,\n signalHostAttributes,\n signalHostClasses,\n signalHostStyles,\n signalStyles,\n useCursorDragScroll,\n} from '@ethlete/core';\nimport { Subject, combineLatest, debounceTime, filter, fromEvent, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { ChevronIconComponent } from '../../../icons/chevron-icon';\nimport { ScrollableIgnoreChildDirective, isScrollableChildIgnored } from '../../directives/scrollable-ignore-child';\nimport {\n SCROLLABLE_IS_ACTIVE_CHILD_TOKEN,\n ScrollableIsActiveChildDirective,\n} from '../../directives/scrollable-is-active-child';\nimport { SCROLLABLE_LOADING_TEMPLATE_TOKEN } from '../../directives/scrollable-loading-template';\nimport { ScrollableIntersectionChange, ScrollableScrollMode } from '../../types';\n\n// Thresholds for the intersection observer.\nconst ELEMENT_INTERSECTION_THRESHOLD = [\n // 5% steps\n ...Array.from({ length: 21 }, (_, i) => i * 0.05),\n\n // Additional steps needed since display scaling can cause the intersection ratio to be slightly off.\n 0.01,\n 0.005,\n 0.001,\n 0.99,\n 0.995,\n 0.999,\n];\n\ninterface ScrollableNavigationItem {\n isActive: boolean;\n activeOffset: number;\n element: HTMLElement;\n}\n\nexport type ScrollableButtonPosition = 'inside' | 'footer';\nexport type ScrollableScrollOrigin = 'auto' | 'center' | 'start' | 'end';\nexport type ScrollableDirection = 'horizontal' | 'vertical';\nexport type ScrollableItemSize = 'auto' | 'same' | 'full';\nexport type ScrollableLoadingTemplatePosition = 'start' | 'end';\n\n@Component({\n selector: 'et-scrollable',\n templateUrl: './scrollable.component.html',\n styleUrls: ['./scrollable.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ObserveScrollStateDirective,\n NgClass,\n LetDirective,\n ChevronIconComponent,\n ScrollableIsActiveChildDirective,\n ScrollableIgnoreChildDirective,\n NgTemplateOutlet,\n ],\n host: {\n class: 'et-scrollable',\n },\n})\nexport class ScrollableComponent {\n private _disableSnapping$ = new Subject<void>();\n private _manualActiveNavigationIndex = signal<number | null>(null);\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n itemSize = input<ScrollableItemSize>('auto');\n direction = input<ScrollableDirection>('horizontal');\n scrollableRole = input<string | null>(null);\n scrollableClass = input<NgClassType | null>(null);\n renderNavigation = input(false, { transform: booleanAttribute });\n renderMasks = input(true, { transform: booleanAttribute });\n renderButtons = input(true, { transform: booleanAttribute });\n buttonPosition = input<ScrollableButtonPosition>('inside');\n renderScrollbars = input(false, { transform: booleanAttribute });\n stickyButtons = input(false, { transform: booleanAttribute });\n cursorDragScroll = input(true, { transform: booleanAttribute });\n disableActiveElementScrolling = input(false, { transform: booleanAttribute });\n scrollMode = input<ScrollableScrollMode>('container');\n snap = input(false, { transform: booleanAttribute });\n scrollMargin = input(0, { transform: numberAttribute });\n scrollOrigin = input<ScrollableScrollOrigin>('auto');\n darkenNonIntersectingItems = input(false, { transform: booleanAttribute });\n showLoadingTemplate = input(false, { transform: booleanAttribute });\n loadingTemplatePosition = input<ScrollableLoadingTemplatePosition>('end');\n\n scrollable = viewChild<ElementRef<HTMLElement>>('scrollable');\n firstElement = viewChild<ElementRef<HTMLElement>>('firstElement');\n lastElement = viewChild<ElementRef<HTMLElement>>('lastElement');\n activeElementList = contentChildren(SCROLLABLE_IS_ACTIVE_CHILD_TOKEN, { descendants: true });\n navigationDotsContainer = viewChild<ElementRef<HTMLElement>>('navigationDotsContainer');\n firstNavigationDot = viewChild<ElementRef<HTMLButtonElement>>('navigationDot');\n\n loadingTemplate = contentChild(SCROLLABLE_LOADING_TEMPLATE_TOKEN);\n\n navigationDotDimensions = signalElementDimensions(this.firstNavigationDot);\n scrollState = signalElementScrollState(this.scrollable);\n\n isRendered = createIsRenderedSignal();\n canAnimate = createCanAnimateSignal();\n\n cursorDragScrollState = useCursorDragScroll(this.scrollable, {\n enabled: this.cursorDragScroll,\n allowedDirection: this.direction,\n });\n isCursorDragging$ = toObservable(this.cursorDragScrollState.isDragging);\n\n renderButtonsInside = computed(() => this.buttonPosition() === 'inside' && this.renderButtons());\n renderButtonsInFooter = computed(() => this.buttonPosition() === 'footer' && this.renderButtons());\n\n containerScrollState = signalElementScrollState(this.scrollable, {\n initialScrollPosition: computed(() => {\n const scrollable = this.scrollable()?.nativeElement;\n const activeElementList = this.activeElementList();\n\n if (!scrollable || !activeElementList.length || !this.isRendered.state()) return null;\n\n const firstActive = activeElementList.find((a) => a.isActiveChildEnabled());\n\n if (firstActive && !this.disableActiveElementScrolling()) {\n return this.getElementScrollCoordinates({ element: firstActive.elementRef.nativeElement });\n }\n\n return null;\n }),\n });\n firstElementIntersection = signalElementIntersection(this.firstElement, {\n root: this.scrollable,\n enabled: this.isRendered.state,\n });\n lastElementIntersection = signalElementIntersection(this.lastElement, {\n root: this.scrollable,\n enabled: this.isRendered.state,\n });\n\n allScrollableChildren = signalElementChildren(this.scrollable);\n scrollableChildren = computed(() => this.allScrollableChildren().filter((c) => !isScrollableChildIgnored(c)));\n\n scrollableContentIntersections = signalElementIntersection(this.scrollableChildren, {\n root: this.scrollable,\n threshold: ELEMENT_INTERSECTION_THRESHOLD,\n enabled: this.isRendered.state,\n });\n scrollableContentIntersections$ = toObservable(this.scrollableContentIntersections);\n\n nonScrollableIntersections = computed(\n () => {\n const allIntersections = this.scrollableContentIntersections();\n return allIntersections.filter((i) => i.intersectionRatio !== 1).map((i) => i.target as HTMLElement);\n },\n { equal: (a, b) => a.length === b.length && a.every((v, i) => v === b[i]) },\n );\n\n isAtStart = computed(() => {\n const intersection = this.firstElementIntersection()[0];\n\n if (!intersection) return false;\n\n return intersection.isIntersecting;\n });\n\n isAtEnd = computed(() => {\n const intersection = this.lastElementIntersection()[0];\n\n if (!intersection) return false;\n\n return intersection.isIntersecting;\n });\n\n canScroll = computed(() =>\n this.direction() === 'horizontal'\n ? this.scrollState().canScrollHorizontally\n : this.scrollState().canScrollVertically,\n );\n\n scrollableNavigation = computed<ScrollableNavigationItem[]>(\n () => {\n const allIntersections = this.scrollableContentIntersections();\n const manualActiveNavigationIndex = this._manualActiveNavigationIndex();\n\n const highestIntersection = allIntersections.reduce((prev, curr) => {\n if (prev && prev.intersectionRatio > curr.intersectionRatio) {\n return prev;\n }\n\n return curr;\n }, allIntersections[0]);\n\n if (!highestIntersection) {\n return [];\n }\n\n const activeIndex =\n manualActiveNavigationIndex !== null\n ? manualActiveNavigationIndex\n : allIntersections.findIndex((i) => i === highestIntersection);\n\n return allIntersections.map((i, index) => ({\n isActive:\n manualActiveNavigationIndex !== null\n ? manualActiveNavigationIndex === index\n : i === highestIntersection && highestIntersection.intersectionRatio > 0,\n activeOffset: index === activeIndex ? 0 : Math.abs(index - activeIndex),\n element: i.target as HTMLElement,\n }));\n },\n { equal: (a, b) => a.length === b.length && a.every((v, i) => v.activeOffset === b[i]?.activeOffset) },\n );\n\n activeIndex = computed(() => {\n const scrollableNavigation = this.scrollableNavigation();\n const activeIndex = scrollableNavigation.findIndex((element) => element.isActive);\n\n return activeIndex;\n });\n\n intersectionChange = outputFromObservable<ScrollableIntersectionChange[]>(\n this.scrollableContentIntersections$.pipe(\n takeUntilDestroyed(),\n debounceTime(50),\n map((entries) =>\n entries.map((i, index) => ({\n index,\n element: i.target as HTMLElement,\n intersectionRatio: i.intersectionRatio,\n isIntersecting: i.isIntersecting,\n })),\n ),\n ),\n );\n\n scrollStateChange = outputFromObservable<ScrollObserverScrollState>(\n toObservable(\n computed(() => {\n const isAtStart = this.isAtStart();\n const isAtEnd = this.isAtEnd();\n const canScroll = this.canScroll();\n\n return {\n canScroll,\n isAtEnd: !!isAtEnd,\n isAtStart: !!isAtStart,\n };\n }),\n ),\n );\n\n allChildElementClassBindings = signalClasses(this.scrollableChildren, {\n 'et-scrollable-item': signal(true),\n });\n\n nonFullIntersectingElementClassBindings = signalClasses(this.nonScrollableIntersections, {\n 'et-scrollable-item--not-intersecting': signal(true),\n });\n\n hostAttributeBindings = signalHostAttributes({\n 'item-size': this.itemSize,\n direction: this.direction,\n 'render-scrollbars': this.renderScrollbars,\n 'sticky-buttons': computed(() => this.stickyButtons() && this.renderButtonsInside()),\n });\n\n hostClassBindings = signalHostClasses({\n 'et-scrollable--can-scroll': this.canScroll,\n 'et-scrollable--is-at-start': this.isAtStart,\n 'et-scrollable--is-at-end': this.isAtEnd,\n 'et-scrollable--can-animate': this.canAnimate.state,\n 'et-scrollable--darken-non-intersecting-items': this.darkenNonIntersectingItems,\n });\n\n hostStyleBindings = signalHostStyles({\n '--item-count': computed(() => this.scrollableChildren().length),\n });\n\n scrollableDotsContainerStyleBindings = signalStyles(this.navigationDotsContainer, {\n // Responsible for centering the active dot in navigation bar by using 'translate'\n transform: computed(() => {\n const activeIndex = this.activeIndex();\n const childCount = this.scrollableChildren().length;\n const offset = this.getNavigationDotsContainerTranslate(childCount, activeIndex);\n const dir = this.direction() === 'horizontal' ? 'X' : 'Y';\n\n return `translate${dir}(${offset})`;\n }),\n });\n\n constructor() {\n effect(() => {\n const enableSnapping = this.snap();\n\n if (enableSnapping) {\n this._enableSnapping();\n } else {\n this._disableSnapping();\n }\n });\n\n toObservable(this._manualActiveNavigationIndex)\n .pipe(\n filter((i) => i !== null),\n takeUntilDestroyed(),\n switchMap(() => {\n const scrollable = this.scrollable()?.nativeElement;\n\n if (!scrollable) {\n return of(null);\n }\n\n return fromEvent(scrollable, 'scroll');\n }),\n debounceTime(50),\n tap(() => this._manualActiveNavigationIndex.set(null)),\n )\n .subscribe();\n\n this.isRendered.bind();\n }\n\n getNavigationDotsContainerTranslate(navigationDotCount: number, activeIndex: number) {\n if (navigationDotCount <= 5) {\n return '0px';\n } else {\n const dotContainerWidth = this.navigationDotDimensions().client?.width ?? 20;\n let offset = -(activeIndex - 2);\n if (activeIndex < 3) {\n offset = 0;\n } else if (activeIndex >= navigationDotCount - 3) {\n offset = 5 - navigationDotCount;\n }\n return `${offset * dotContainerWidth}px`;\n }\n }\n\n scrollOneContainerSize(direction: 'start' | 'end') {\n const scrollElement = this.scrollable()?.nativeElement;\n\n if (!scrollElement) {\n return;\n }\n\n const parent = this.elementRef.nativeElement;\n\n const isSnappingEnabled = this.snap();\n\n if (isSnappingEnabled) {\n // If snapping is enabled we want to scroll to a position where no further snapping will happen after the scroll.\n const allIntersections = this.scrollableContentIntersections();\n const intersections = getIntersectionInfo(allIntersections);\n const relevantIntersection = direction === 'start' ? intersections?.partial.first : intersections?.partial.last;\n\n if (!relevantIntersection) return;\n\n const nextIndex =\n relevantIntersection.intersection.intersectionRatio !== 1\n ? relevantIntersection.index\n : direction === 'start'\n ? relevantIntersection.index - 1\n : relevantIntersection.index + 1;\n\n const element =\n (allIntersections[nextIndex]?.target as HTMLElement) ||\n (relevantIntersection.intersection.target as HTMLElement);\n\n this.scrollToElement({\n element: element,\n origin: direction === 'end' ? 'start' : 'end',\n });\n } else {\n // Just scroll one size of the scrollable container.\n const scrollableSize = this.direction() === 'horizontal' ? parent.clientWidth : parent.clientHeight;\n const currentScroll = this.direction() === 'horizontal' ? scrollElement.scrollLeft : scrollElement.scrollTop;\n\n scrollElement.scrollTo({\n [this.direction() === 'horizontal' ? 'left' : 'top']:\n currentScroll + (direction === 'start' ? -scrollableSize : scrollableSize),\n behavior: 'smooth',\n });\n }\n }\n\n scrollOneItemSize(direction: 'start' | 'end') {\n const allIntersections = this.scrollableContentIntersections();\n const scrollElement = this.scrollable()?.nativeElement;\n\n if (!allIntersections.length) {\n if (isDevMode()) {\n console.warn(\n 'No elements found to scroll to. Make sure to apply the isElement directive to the elements you want to scroll to.',\n );\n }\n return;\n }\n\n const intersections = getIntersectionInfo(allIntersections);\n\n if (!intersections || !scrollElement) return;\n\n // Means the current element is bigger than the scrollable container.\n // In this case we should scroll to the start of the current element. If we are already there we should scroll to the end of the previous element.\n // This applies to the other direction as well.\n const isFirstAndLastIntersectionEqual =\n intersections.partial.first.intersection === intersections.partial.last.intersection;\n const scrollableRect = scrollElement.getBoundingClientRect();\n\n if (isFirstAndLastIntersectionEqual) {\n const intersection = intersections.partial.first.intersection.target.getBoundingClientRect();\n const isStartOfElementVisible =\n this.direction() === 'horizontal'\n ? Math.round(intersection.left) >= Math.round(scrollableRect.left)\n : Math.round(intersection.top) >= Math.round(scrollableRect.top);\n\n const isEndOfElementVisible =\n this.direction() === 'horizontal'\n ? Math.round(intersection.right) <= Math.round(scrollableRect.right)\n : Math.round(intersection.bottom) <= Math.round(scrollableRect.bottom);\n\n if (!isStartOfElementVisible || !isEndOfElementVisible) {\n if (direction === 'start') {\n if (isStartOfElementVisible) {\n // to the end of the previous element\n const previousIndex = intersections.partial.first.index - 1;\n const elementToScrollTo = allIntersections[previousIndex]?.target as HTMLElement;\n\n if (!elementToScrollTo) return;\n this.scrollToElement({\n element: elementToScrollTo,\n origin: 'end',\n });\n this._manualActiveNavigationIndex.set(previousIndex);\n } else {\n // to the start of the current element\n this.scrollToElement({\n element: intersections.partial.first.intersection.target as HTMLElement,\n origin: 'start',\n });\n this._manualActiveNavigationIndex.set(intersections.partial.first.index);\n }\n } else {\n if (isEndOfElementVisible) {\n // to the start of the next element\n const nextIndex = intersections.partial.last.index + 1;\n const elementToScrollTo = allIntersections[nextIndex]?.target as HTMLElement;\n\n if (!elementToScrollTo) return;\n this.scrollToElement({\n element: elementToScrollTo,\n origin: 'start',\n });\n this._manualActiveNavigationIndex.set(nextIndex);\n } else {\n // to the end of the current element\n this.scrollToElement({\n element: intersections.partial.last.intersection.target as HTMLElement,\n origin: 'end',\n });\n\n this._manualActiveNavigationIndex.set(intersections.partial.last.index);\n }\n }\n\n return;\n }\n } else if (this.scrollOrigin() === 'center') {\n // If the scroll origin is forced to be center we should always snap to the center of the next partial intersection in the scroll direction.\n const nextPartialIntersection = direction === 'start' ? intersections.partial.first : intersections.partial.last;\n const nextIndex = nextPartialIntersection.index;\n\n this.scrollToElement({\n element: nextPartialIntersection.intersection.target as HTMLElement,\n origin: 'center',\n });\n this._manualActiveNavigationIndex.set(nextIndex);\n\n return;\n }\n\n const data = direction === 'start' ? intersections.partial.first : intersections.partial.last;\n let elementToScrollTo = data.intersection.target as HTMLElement;\n let nextIndex = data.index;\n\n if (Math.round(data.intersection.intersectionRatio) === 1) {\n if (direction === 'start' && data.index === 0) {\n return;\n }\n\n if (direction === 'end' && data.index === allIntersections.length - 1) {\n return;\n }\n\n nextIndex = direction === 'start' ? data.index - 1 : data.index + 1;\n\n elementToScrollTo = allIntersections[nextIndex]?.target as HTMLElement;\n\n if (!elementToScrollTo) return;\n }\n\n this.scrollToElement({\n element: elementToScrollTo,\n origin: direction,\n });\n\n this._manualActiveNavigationIndex.set(nextIndex);\n }\n\n getElementScrollCoordinates(options: Omit<ScrollToElementOptions, 'container'> & { ignoreForcedOrigin?: boolean }) {\n const scrollElement = this.scrollable()?.nativeElement;\n const { origin } = options;\n const forcedOrigin = this.scrollOrigin();\n\n return getElementScrollCoordinates({\n container: scrollElement,\n direction: this.direction() === 'horizontal' ? 'inline' : 'block',\n ...(this.direction() === 'horizontal'\n ? { scrollInlineMargin: this.scrollMargin() }\n : { scrollBlockMargin: this.scrollMargin() }),\n ...options,\n ...(forcedOrigin === 'auto' || options.ignoreForcedOrigin ? { origin } : { origin: forcedOrigin }),\n });\n }\n\n scrollToElement(options: Omit<ScrollToElementOptions, 'container'> & { ignoreForcedOrigin?: boolean }) {\n this.scrollable()?.nativeElement.scroll(this.getElementScrollCoordinates(options));\n }\n\n scrollToElementByIndex(\n options: Omit<ScrollToElementOptions, 'container'> & { index: number; ignoreForcedOrigin?: boolean },\n ) {\n const elements = this.scrollableChildren();\n const element = elements[options.index];\n\n if (!element) return;\n\n this.scrollToElement({\n element,\n ...options,\n });\n }\n\n protected scrollToElementViaNavigation(elementIndex: number) {\n const element = this.scrollableChildren()[elementIndex];\n this._manualActiveNavigationIndex.set(elementIndex);\n\n this.scrollToElement({\n element,\n });\n }\n\n protected scrollToStartDirection() {\n if (this.scrollMode() === 'container') {\n this.scrollOneContainerSize('start');\n } else {\n this.scrollOneItemSize('start');\n }\n }\n\n protected scrollToEndDirection() {\n if (this.scrollMode() === 'container') {\n this.scrollOneContainerSize('end');\n } else {\n this.scrollOneItemSize('end');\n }\n }\n\n private _enableSnapping() {\n combineLatest([this.scrollableContentIntersections$, this.isCursorDragging$])\n .pipe(\n filter(([, isDragging]) => !isDragging),\n map(([intersections]) => intersections),\n debounceTime(150),\n tap((allIntersections) => {\n const scrollElement = this.scrollable()?.nativeElement;\n\n if (!scrollElement) return;\n\n const intersections = getIntersectionInfo(allIntersections);\n\n if (!intersections) return;\n\n const isFirstAndLastIntersectionEqual =\n intersections.partial.first.intersection === intersections.partial.last.intersection;\n const scrollableRect = scrollElement.getBoundingClientRect();\n\n if (this.scrollOrigin() === 'center' && intersections.full.hasMultiple) {\n // If there is more than one fully visible element we should not snap at all.\n return;\n } else if (this.scrollOrigin() === 'center' && intersections.full.first.intersection) {\n // If there is already a fully visible element we should snap it to the center.\n this.scrollToElement({\n element: intersections.full.first.intersection.target as HTMLElement,\n origin: 'center',\n });\n return;\n } else if (isFirstAndLastIntersectionEqual) {\n const intersection = intersections.partial.first.intersection.target.getBoundingClientRect();\n const isStartOfElementVisible =\n this.direction() === 'horizontal'\n ? intersection.left >= scrollableRect.left\n : intersection.top >= scrollableRect.top;\n\n const isEndOfElementVisible =\n this.direction() === 'horizontal'\n ? intersection.right <= scrollableRect.right\n : intersection.bottom <= scrollableRect.bottom;\n\n // Don't snap if neither the start nor the end of the current element is visible.\n // Otherwise this would result in parts of the element being inaccessible.\n if (!isStartOfElementVisible && !isEndOfElementVisible) return;\n\n // If the start of the element is visible we should snap to the start.\n if (isStartOfElementVisible) {\n this.scrollToElement({\n element: intersections.partial.first.intersection.target as HTMLElement,\n origin: 'start',\n });\n return;\n }\n\n // If the end of the element is visible we should snap to the end.\n if (isEndOfElementVisible) {\n this.scrollToElement({\n element: intersections.partial.last.intersection.target as HTMLElement,\n origin: 'end',\n });\n return;\n }\n } else if (\n (this.direction() === 'horizontal' &&\n intersections.partial.biggest.intersection.boundingClientRect.width > scrollableRect.width) ||\n (this.direction() === 'vertical' &&\n intersections.partial.biggest.intersection.boundingClientRect.height > scrollableRect.height)\n ) {\n // If the current element is bigger than the scrollable container we should snap to the start of the current element if the scroll direction is forward\n // and to the end of the current element if the scroll direction is backwards.\n const origin = intersections.partial.biggest.index === intersections.partial.first.index ? 'end' : 'start';\n\n this.scrollToElement({\n element: intersections.partial.biggest.intersection.target as HTMLElement,\n origin,\n ignoreForcedOrigin: true,\n });\n } else {\n // No special case. Just snap to the biggest intersection.\n this.scrollToElement({\n element: intersections.partial.biggest.intersection.target as HTMLElement,\n });\n }\n }),\n takeUntil(this._disableSnapping$),\n )\n .subscribe();\n }\n\n private _disableSnapping() {\n this._disableSnapping$.next();\n }\n}\n","<div class=\"et-scrollable-wrapper\">\n <div\n #scrollable\n [attr.role]=\"scrollableRole() ?? undefined\"\n [ngClass]=\"scrollableClass()\"\n class=\"et-scrollable-container\"\n >\n <div #firstElement class=\"et-scroll-observer-first-element\" etScrollableIgnoreChild></div>\n @if (loadingTemplatePosition() === 'start' && showLoadingTemplate()) {\n <ng-container *ngTemplateOutlet=\"loadingTpl\" />\n }\n <ng-content />\n @if (loadingTemplatePosition() === 'end' && showLoadingTemplate()) {\n <ng-container *ngTemplateOutlet=\"loadingTpl\" />\n }\n\n <div #lastElement class=\"et-scroll-observer-last-element\" etScrollableIgnoreChild></div>\n </div>\n\n @if (renderMasks()) {\n <div class=\"et-scrollable-masks\">\n <div class=\"et-scrollable-mask et-scrollable-mask--start\"></div>\n <div class=\"et-scrollable-mask et-scrollable-mask--end\"></div>\n </div>\n }\n\n @if (renderButtonsInside()) {\n <div class=\"et-scrollable-buttons\">\n <ng-container *ngTemplateOutlet=\"forwardButtonTpl\" />\n <ng-container *ngTemplateOutlet=\"backwardButtonTpl\" />\n </div>\n }\n</div>\n\n@if ((renderButtonsInFooter() || (renderNavigation() && scrollableNavigation().length > 1)) && canScroll()) {\n <div\n [ngClass]=\"{\n 'et-scrollable-footer--with-navigation': renderNavigation(),\n 'et-scrollable-footer--with-buttons': renderButtonsInFooter()\n }\"\n class=\"et-scrollable-footer\"\n aria-hidden=\"true\"\n >\n @if (renderButtonsInFooter()) {\n <ng-container *ngTemplateOutlet=\"forwardButtonTpl\" />\n }\n\n @if (renderNavigation()) {\n <div class=\"et-scrollable-progress-bar\">\n <div #navigationDotsContainer class=\"et-scrollable-dots-container\">\n @for (item of scrollableNavigation(); track i; let i = $index) {\n <button\n #navigationDot\n [class.et-scrollable-navigation-item--active]=\"item.isActive\"\n [class.et-scrollable-navigation-item--close]=\"\n scrollableNavigation()[i + 1]?.isActive || scrollableNavigation()[i - 1]?.isActive\n \"\n [class.et-scrollable-navigation-item--far]=\"\n !scrollableNavigation()[i + 1]?.isActive && !scrollableNavigation()[i - 1]?.isActive && !item.isActive\n \"\n [attr.active-offset]=\"item.activeOffset\"\n (click)=\"scrollToElementViaNavigation(i)\"\n class=\"et-scrollable-navigation-item\"\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n ></button>\n }\n </div>\n </div>\n }\n\n @if (renderButtonsInFooter()) {\n <ng-container *ngTemplateOutlet=\"backwardButtonTpl\" />\n }\n </div>\n}\n\n<ng-template #forwardButtonTpl>\n <button\n [disabled]=\"isAtStart()\"\n (click)=\"scrollToStartDirection()\"\n class=\"et-scrollable-button et-scrollable-button--start\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n</ng-template>\n\n<ng-template #backwardButtonTpl>\n <button\n [disabled]=\"isAtEnd()\"\n (click)=\"scrollToEndDirection()\"\n class=\"et-scrollable-button et-scrollable-button--end\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n</ng-template>\n\n<ng-template #loadingTpl>\n @if (loadingTemplate(); as tpl) {\n @for (\n _ of tpl.repeat();\n track index;\n let index = $index;\n let even = $even;\n let odd = $odd;\n let first = $first;\n let last = $last\n ) {\n <ng-container *ngTemplateOutlet=\"tpl.templateRef; context: { index, even, odd, first, last }\" />\n }\n }\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n InjectionToken,\n Injector,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective } from '@ethlete/core';\nimport { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';\nimport { MENU_TRIGGER_TOKEN } from '../../directives/menu-trigger';\n\nexport const MENU_CONTAINER = new InjectionToken<MenuContainerComponent>('ET_MENU_CONTAINER');\nexport const MENU_TEMPLATE = new InjectionToken<TemplateRef<unknown>>('MENU_TEMPLATE');\n\n@Component({\n selector: 'et-menu-container',\n templateUrl: './menu-container.component.html',\n styleUrl: './menu-container.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-menu-container',\n },\n imports: [AnimatedLifecycleDirective, NgTemplateOutlet],\n hostDirectives: [ProvideThemeDirective],\n providers: [\n {\n provide: MENU_CONTAINER,\n useExisting: MenuContainerComponent,\n },\n ],\n})\nexport class MenuContainerComponent {\n @ViewChild(ANIMATED_LIFECYCLE_TOKEN, { static: true })\n readonly _animatedLifecycle?: AnimatedLifecycleDirective;\n\n private readonly _themeProvider = inject(THEME_PROVIDER);\n protected readonly injector = inject(Injector);\n private readonly _cdr = inject(ChangeDetectorRef);\n readonly _trigger = inject(MENU_TRIGGER_TOKEN);\n readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly _menuTemplate = inject(MENU_TEMPLATE);\n\n _markForCheck() {\n this._cdr.markForCheck();\n }\n\n _setThemeFromProvider(provider: ProvideThemeDirective) {\n this._themeProvider.syncWithProvider(provider);\n }\n}\n","<div class=\"et-menu-body\" etAnimatedLifecycle>\n <ng-container *ngTemplateOutlet=\"_menuTemplate; injector: injector\" />\n</div>\n","import {\n Directive,\n ElementRef,\n InjectionToken,\n Input,\n OnDestroy,\n TemplateRef,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AnimatedOverlayDirective, ClickObserverService, signalHostAttributes, signalHostClasses } from '@ethlete/core';\nimport { THEME_PROVIDER } from '@ethlete/theming';\nimport { Subscription, filter, fromEvent, take, tap } from 'rxjs';\nimport { OverlayCloseBlockerDirective } from '../../../../directives/overlay-close-auto-blocker';\nimport { MenuComponent } from '../../components/menu';\nimport { MENU_TEMPLATE, MenuContainerComponent } from '../../components/menu-container';\n\nexport const MENU_TRIGGER_TOKEN = new InjectionToken<MenuTriggerDirective>('ET_MENU_TRIGGER_TOKEN');\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[etMenuTrigger]',\n standalone: true,\n providers: [\n {\n provide: MENU_TRIGGER_TOKEN,\n useExisting: MenuTriggerDirective,\n },\n ],\n hostDirectives: [\n { directive: AnimatedOverlayDirective, inputs: ['placement', 'offset', 'viewportPadding', 'fallbackPlacements'] },\n OverlayCloseBlockerDirective,\n ],\n host: {\n 'aria-haspopup': 'menu',\n class: 'et-menu-trigger',\n '[id]': 'id',\n },\n})\nexport class MenuTriggerDirective implements OnDestroy {\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly _animatedOverlay = inject<AnimatedOverlayDirective<MenuContainerComponent>>(AnimatedOverlayDirective);\n private readonly _themeProvider = inject(THEME_PROVIDER, { optional: true });\n private readonly _clickObserverService = inject(ClickObserverService);\n\n readonly id = `et-menu-trigger-${uniqueId++}`;\n\n protected readonly isOpen = signal<boolean>(false);\n\n private readonly _listenerSubscriptions: Subscription[] = [];\n\n private readonly _currentMenu = signal<MenuComponent | null>(null);\n\n private readonly _currentMenuId = computed(() => {\n const menu = this._currentMenu();\n return menu ? menu.id() : null;\n });\n\n readonly currentMenu = this._currentMenu.asReadonly();\n\n @Input({ alias: 'etMenuTrigger', required: true })\n set __menuTemplate(value: TemplateRef<unknown>) {\n this.menuTemplate.set(value);\n }\n protected readonly menuTemplate = signal<TemplateRef<unknown> | null>(null);\n\n readonly hostClassBindings = signalHostClasses({\n 'et-menu-trigger--open': this.isOpen,\n });\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'aria-controls': this._currentMenuId,\n 'aria-expanded': this.isOpen,\n });\n\n constructor() {\n this._animatedOverlay.autoHide = true;\n this._animatedOverlay.shift = false;\n this._animatedOverlay.autoResize = true;\n\n if (!this._animatedOverlay.placement) {\n this._animatedOverlay.placement = 'bottom';\n }\n\n if (!this._animatedOverlay.fallbackPlacements) {\n this._animatedOverlay.fallbackPlacements = [\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n 'top',\n 'top-start',\n 'top-end',\n ];\n }\n\n fromEvent<MouseEvent>(this._elementRef.nativeElement, 'click')\n .pipe(\n tap(() => this.mount()),\n takeUntilDestroyed(),\n )\n .subscribe();\n\n this._animatedOverlay\n .afterClosed()\n .pipe(\n tap(() => this._removeListeners()),\n takeUntilDestroyed(),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this._animatedOverlay._destroy();\n this._removeListeners();\n }\n\n mount() {\n const menuTemplate = this.menuTemplate();\n\n if (!menuTemplate) {\n throw new Error('No menu template provided');\n }\n\n if (!this._animatedOverlay.canMount) return;\n\n const menuRef = this._animatedOverlay.mount({\n component: MenuContainerComponent,\n themeProvider: this._themeProvider,\n providers: [\n {\n provide: MENU_TEMPLATE,\n useValue: menuTemplate,\n },\n ],\n });\n\n if (menuRef) {\n this.isOpen.set(true);\n this._addListeners();\n }\n }\n\n unmount(restoreFocus = true) {\n if (!this._animatedOverlay.canUnmount) return;\n\n this._animatedOverlay.unmount();\n this.isOpen.set(false);\n\n if (restoreFocus) {\n this._animatedOverlay\n .afterClosed()\n .pipe(\n tap(() => this._elementRef.nativeElement.focus()),\n take(1),\n )\n .subscribe();\n }\n }\n\n _connectWithMenu(menu: MenuComponent) {\n this._currentMenu.set(menu);\n }\n\n _clearMenuConnection() {\n this._currentMenu.set(null);\n }\n\n private _addListeners() {\n const keyupEscSub = fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(\n filter((e) => e.key === 'Escape'),\n tap(() => {\n const menu = this.currentMenu();\n const searchInput = menu?.searchInput();\n\n if (!menu || !searchInput) {\n this.unmount();\n return;\n }\n\n if (searchInput.isFocusedVia) {\n if (searchInput.value) {\n return;\n }\n }\n\n this.unmount();\n }),\n )\n .subscribe();\n\n const clickOutsideSub = this._clickObserverService\n .observe(this._animatedOverlay.componentRef?.location.nativeElement)\n .subscribe((e) => {\n const targetElement = e.target as HTMLElement;\n const isInside = this._animatedOverlay.componentRef?.location.nativeElement.contains(targetElement);\n\n if (!isInside) {\n this.unmount();\n }\n });\n\n this._listenerSubscriptions.push(keyupEscSub, clickOutsideSub);\n }\n\n private _removeListeners() {\n this._listenerSubscriptions.forEach((s) => s.unsubscribe());\n this._listenerSubscriptions.length = 0;\n }\n}\n","import { ENTER, SPACE, hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n Directive,\n ElementRef,\n InjectionToken,\n Input,\n booleanAttribute,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { signalHostAttributes, signalHostClasses } from '@ethlete/core';\nimport { fromEvent, merge, tap } from 'rxjs';\nimport { MENU_TRIGGER_TOKEN } from '../menu-trigger';\n\nexport const MENU_ITEM_TOKEN = new InjectionToken<MenuItemDirective>('MENU_ITEM_TOKEN');\n\n@Directive({\n selector: 'et-menu-item, [et-menu-item], [etMenuItem]',\n standalone: true,\n providers: [\n {\n provide: MENU_ITEM_TOKEN,\n useExisting: MenuItemDirective,\n },\n ],\n host: {\n role: 'menuitem',\n class: 'et-menu-item',\n },\n})\nexport class MenuItemDirective {\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _trigger = inject(MENU_TRIGGER_TOKEN);\n private readonly _tabIndex = signal<number>(-1);\n private readonly _closeOnInteraction = signal<boolean>(true);\n\n @Input({ transform: booleanAttribute, alias: 'etMenuItemDisabled' })\n set __disabled(value: boolean) {\n this.disabled.set(value);\n }\n readonly disabled = signal<boolean>(false);\n\n readonly isFocused = computed(() => this._tabIndex() === 0);\n\n readonly hostAttributeBindings = signalHostAttributes({\n tabindex: this._tabIndex,\n 'aria-disabled': this.disabled,\n });\n\n readonly hostClassBindings = signalHostClasses({\n 'et-menu-item--disabled': this.disabled,\n 'et-menu-item--focused': this.isFocused,\n });\n\n constructor() {\n const el = this._elementRef.nativeElement;\n\n merge(\n fromEvent(el, 'focus').pipe(tap(() => this._setTabIndex())),\n fromEvent(el, 'blur').pipe(tap(() => this._resetTabIndex())),\n fromEvent<KeyboardEvent>(el, 'keydown').pipe(tap((event) => this._onKeydown(event))),\n fromEvent<MouseEvent>(el, 'mousedown').pipe(tap((event) => this._handleMousedown(event))),\n fromEvent(el, 'click').pipe(tap(() => this.trigger())),\n )\n .pipe(takeUntilDestroyed())\n .subscribe();\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n trigger() {\n if (this.disabled() || !this._closeOnInteraction()) return;\n\n this._trigger.unmount();\n }\n\n _disableCloseOnInteraction() {\n this._closeOnInteraction.set(false);\n }\n\n _enableCloseOnInteraction() {\n this._closeOnInteraction.set(true);\n }\n\n _setTabIndex(event?: MouseEvent) {\n if (this.disabled()) return;\n\n if (!event) {\n this._tabIndex.set(0);\n }\n }\n\n _resetTabIndex() {\n this._tabIndex.set(-1);\n }\n\n _onKeydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n case SPACE:\n case ENTER:\n if (!hasModifierKey(event)) {\n this.trigger();\n }\n break;\n }\n }\n\n _handleMousedown(event: MouseEvent) {\n event.preventDefault();\n }\n}\n","import { Directive, InjectionToken, TemplateRef, inject } from '@angular/core';\n\nexport const MENU_SEARCH_TEMPLATE_TOKEN = new InjectionToken<MenuSearchTemplateDirective>('MENU_SEARCH_TEMPLATE_TOKEN');\n\n@Directive({\n selector: 'ng-template[etMenuSearchTemplate]',\n standalone: true,\n providers: [\n {\n provide: MENU_SEARCH_TEMPLATE_TOKEN,\n useExisting: MenuSearchTemplateDirective,\n },\n ],\n})\nexport class MenuSearchTemplateDirective {\n templateRef = inject(TemplateRef);\n}\n","import { DOWN_ARROW, END, HOME, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n InjectionToken,\n Input,\n OnDestroy,\n ViewEncapsulation,\n booleanAttribute,\n contentChild,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgClassType, TypedQueryList, signalHostAttributes, signalHostClasses } from '@ethlete/core';\nimport { fromEvent, tap } from 'rxjs';\nimport { INPUT_TOKEN } from '../../../../../forms/directives/input';\nimport { ScrollableComponent } from '../../../../../scrollable/components/scrollable';\nimport { MENU_ITEM_TOKEN, MenuItemDirective } from '../../directives/menu-item';\nimport { MENU_SEARCH_TEMPLATE_TOKEN } from '../../directives/menu-search-template';\nimport { MENU_TRIGGER_TOKEN } from '../../directives/menu-trigger';\n\nexport const MENU = new InjectionToken<MenuComponent>('ET_MENU');\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'et-menu',\n templateUrl: './menu.component.html',\n styleUrl: './menu.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-menu',\n role: 'menu',\n '[id]': 'id',\n '[attr.aria-labelledby]': '_trigger.id',\n },\n imports: [ScrollableComponent, NgTemplateOutlet],\n providers: [\n {\n provide: MENU,\n useExisting: MenuComponent,\n },\n ],\n})\nexport class MenuComponent implements OnDestroy {\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly _trigger = inject(MENU_TRIGGER_TOKEN);\n\n @Input({ alias: 'id' })\n private set __id(value: string) {\n this.id.set(value);\n }\n readonly id = signal<string>(`et-menu-${uniqueId++}`);\n\n @Input({ transform: booleanAttribute, alias: 'renderScrollableMasks' })\n private set __renderScrollableMasks(v: boolean) {\n this.renderScrollableMasks.set(v);\n }\n readonly renderScrollableMasks = signal(false);\n\n @Input({ transform: booleanAttribute, alias: 'renderScrollableButtons' })\n private set __renderScrollableButtons(v: boolean) {\n this.renderScrollableButtons.set(v);\n }\n readonly renderScrollableButtons = signal(false);\n\n @Input({ alias: 'scrollableClass' })\n set _scrollableClass(v: NgClassType | null) {\n this.scrollableClass.set(v);\n }\n readonly scrollableClass = signal<NgClassType | null>(null);\n\n @ContentChildren(MENU_ITEM_TOKEN, { descendants: true })\n private set __menuItemList(value: TypedQueryList<MenuItemDirective>) {\n this._menuItemList.set(value);\n }\n private readonly _menuItemList = signal<TypedQueryList<MenuItemDirective> | null>(null);\n\n @Input({ alias: 'orientation' })\n private set __orientation(value: 'horizontal' | 'vertical') {\n this.orientation.set(value);\n }\n readonly orientation = signal<'horizontal' | 'vertical'>('vertical');\n\n menuSearchTemplate = contentChild(MENU_SEARCH_TEMPLATE_TOKEN);\n searchInput = contentChild(INPUT_TOKEN);\n\n hostClassBindings = signalHostClasses({\n 'et-menu--has-search': this.menuSearchTemplate,\n });\n\n readonly hostAttributeBindings = signalHostAttributes({\n id: this.id,\n 'aria-orientation': this.orientation,\n });\n\n constructor() {\n this._trigger._connectWithMenu(this);\n\n fromEvent(this._elementRef.nativeElement, 'focus')\n .pipe(\n takeUntilDestroyed(),\n tap(() => this.focusFirstItem()),\n )\n .subscribe();\n\n fromEvent<KeyboardEvent>(this._elementRef.nativeElement, 'keydown')\n .pipe(\n takeUntilDestroyed(),\n tap((e) => this._handleKeydown(e)),\n )\n .subscribe();\n\n const initialFocusEffectRef = effect(\n () => {\n const items = this._menuItemList();\n const searchInput = this.searchInput();\n const firstItem = items?.first;\n\n if (searchInput) {\n searchInput.focusInputVia();\n initialFocusEffectRef.destroy();\n } else if (firstItem) {\n firstItem.focus();\n initialFocusEffectRef.destroy();\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n ngOnDestroy(): void {\n this._trigger._clearMenuConnection();\n }\n\n focusFirstItem() {\n this._menuItemList()?.first?.focus();\n }\n\n focusLastItem() {\n this._menuItemList()?.last?.focus();\n }\n\n focusNextItem() {\n const items = this._menuItemList()?.toArray();\n\n if (!items) return;\n\n const activeItem = items.findIndex((item) => item.isFocused());\n\n if (activeItem === -1) {\n this.focusFirstItem();\n return;\n }\n\n const nextItem = items[activeItem + 1];\n\n if (nextItem) {\n nextItem.focus();\n } else {\n const searchInput = this.searchInput();\n\n if (searchInput) {\n if (searchInput.isFocusedVia) {\n this._menuItemList()?.first?.focus();\n } else {\n this.searchInput()?.focusInputVia();\n }\n\n return;\n }\n\n this.focusFirstItem();\n }\n }\n\n focusPreviousItem() {\n const items = this._menuItemList()?.toArray();\n\n if (!items) return;\n\n const activeItem = items.findIndex((item) => item.isFocused());\n\n if (activeItem === -1) {\n this.focusLastItem();\n return;\n }\n\n const previousItem = items[activeItem - 1];\n\n if (previousItem) {\n previousItem.focus();\n } else {\n const searchInput = this.searchInput();\n\n if (searchInput) {\n if (searchInput.isFocusedVia) {\n this.focusLastItem();\n } else {\n this.searchInput()?.focusInputVia();\n }\n\n return;\n }\n\n this.focusLastItem();\n }\n }\n\n _handleKeydown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n\n switch (keyCode) {\n case DOWN_ARROW:\n case RIGHT_ARROW:\n this.focusNextItem();\n event.preventDefault();\n break;\n\n case UP_ARROW:\n case LEFT_ARROW:\n this.focusPreviousItem();\n event.preventDefault();\n break;\n\n case HOME:\n this.focusFirstItem();\n event.preventDefault();\n break;\n\n case END:\n this.focusLastItem();\n event.preventDefault();\n break;\n\n case TAB:\n this._trigger.unmount(false);\n break;\n }\n }\n}\n","@if (menuSearchTemplate(); as tpl) {\n <div class=\"et-menu-search-container\">\n <ng-container *ngTemplateOutlet=\"tpl.templateRef\" />\n </div>\n}\n\n<et-scrollable\n [direction]=\"orientation()\"\n [renderButtons]=\"renderScrollableButtons()\"\n [renderMasks]=\"renderScrollableMasks()\"\n [cursorDragScroll]=\"orientation() === 'horizontal'\"\n [scrollableClass]=\"scrollableClass()\"\n renderScrollbars\n>\n <ng-content />\n</et-scrollable>\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Type,\n ViewEncapsulation,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { signalHostAttributes } from '@ethlete/core';\nimport { combineLatest, filter, fromEvent, map, merge } from 'rxjs';\nimport { CHECKBOX_TOKEN, CheckboxDirective } from '../../../../../forms/components/checkbox/directives/checkbox';\nimport { DynamicFormFieldDirective } from '../../../../../forms/directives/dynamic-form-field';\nimport { InputDirective } from '../../../../../forms/directives/input';\nimport { NativeInputRefDirective } from '../../../../../forms/directives/native-input-ref';\nimport { StaticFormFieldDirective } from '../../../../../forms/directives/static-form-field';\nimport { WriteableInputDirective } from '../../../../../forms/directives/writeable-input';\nimport { InputBase } from '../../../../../forms/utils';\nimport { MENU_ITEM_TOKEN, MenuItemDirective } from '../../directives/menu-item';\nimport { MENU_TRIGGER_TOKEN } from '../../directives/menu-trigger';\n\n@Component({\n selector: 'et-menu-checkbox-item',\n templateUrl: './menu-checkbox-item.component.html',\n styleUrl: './menu-checkbox-item.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-menu-checkbox-item',\n role: 'menuitemcheckbox',\n '[id]': 'input.id',\n },\n imports: [NgClass, AsyncPipe],\n hostDirectives: [\n NativeInputRefDirective,\n StaticFormFieldDirective,\n WriteableInputDirective,\n MenuItemDirective,\n {\n directive: forwardRef(() => DynamicFormFieldDirective) as Type<DynamicFormFieldDirective>,\n inputs: ['hideErrorMessage'],\n },\n CheckboxDirective,\n { directive: InputDirective, inputs: ['autocomplete'] },\n ],\n})\nexport class MenuCheckboxItemComponent extends InputBase {\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _trigger = inject(MENU_TRIGGER_TOKEN);\n\n protected readonly checkbox = inject(CHECKBOX_TOKEN);\n protected readonly menuItem = inject(MENU_ITEM_TOKEN);\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'aria-checked': toSignal(\n combineLatest([this.checkbox.checked$, this.checkbox.indeterminate$]).pipe(\n map(([checked, indeterminate]) => (checked ? true : indeterminate ? 'mixed' : false)),\n ),\n ),\n 'aria-required': toSignal(this.input.required$),\n 'aria-disabled': toSignal(this.input.disabled$),\n 'aria-describedby': toSignal(this.input.describedBy$),\n });\n\n constructor() {\n super();\n\n merge(\n fromEvent(this._elementRef.nativeElement, 'click'),\n fromEvent<KeyboardEvent>(this._elementRef.nativeElement, 'keydown').pipe(\n filter((e) => e.keyCode === SPACE || e.keyCode === ENTER),\n ),\n )\n .pipe(takeUntilDestroyed())\n .subscribe((e) => {\n if ('keyCode' in e) {\n e.preventDefault();\n\n if (e.keyCode === ENTER) {\n this._trigger.unmount();\n }\n }\n\n this.checkbox._onInputInteraction(e);\n });\n\n fromEvent(this._elementRef.nativeElement, 'blur')\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.checkbox._controlTouched());\n\n this.menuItem._disableCloseOnInteraction();\n }\n}\n","<div class=\"et-menu-checkbox\">\n <div [ngClass]=\"{ 'et-menu-checkbox-check--active': checkbox.checked$ | async }\" class=\"et-menu-checkbox-check\"></div>\n <div\n [ngClass]=\"{ 'et-menu-checkbox-indeterminate--active': checkbox.indeterminate$ | async }\"\n class=\"et-menu-checkbox-indeterminate\"\n ></div>\n</div>\n\n<ng-content />\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, inject } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { signalHostAttributes } from '@ethlete/core';\nimport { filter, fromEvent, merge } from 'rxjs';\nimport { RADIO_TOKEN, RadioDirective } from '../../../../../forms/components/radio/directives/radio';\nimport { InputDirective } from '../../../../../forms/directives/input';\nimport { NativeInputRefDirective } from '../../../../../forms/directives/native-input-ref';\nimport { StaticFormFieldDirective } from '../../../../../forms/directives/static-form-field';\nimport { InputBase } from '../../../../../forms/utils';\nimport { MENU_ITEM_TOKEN, MenuItemDirective } from '../../directives/menu-item';\nimport { MENU_TRIGGER_TOKEN } from '../../directives/menu-trigger';\n\n@Component({\n selector: 'et-menu-radio-item',\n templateUrl: './menu-radio-item.component.html',\n styleUrl: './menu-radio-item.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-menu-radio-item',\n role: 'menuitemradio',\n '[id]': 'input.id',\n },\n imports: [NgClass, AsyncPipe],\n hostDirectives: [\n NativeInputRefDirective,\n StaticFormFieldDirective,\n MenuItemDirective,\n { directive: RadioDirective, inputs: ['value', 'disabled'] },\n { directive: InputDirective, inputs: ['autocomplete'] },\n ],\n})\nexport class MenuRadioItemComponent extends InputBase {\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _trigger = inject(MENU_TRIGGER_TOKEN);\n\n protected readonly radio = inject(RADIO_TOKEN);\n protected readonly menuItem = inject(MENU_ITEM_TOKEN);\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'aria-checked': toSignal(this.radio.checked$),\n 'aria-required': toSignal(this.input.required$),\n 'aria-disabled': toSignal(this.input.disabled$),\n 'aria-describedby': toSignal(this.input.describedBy$),\n });\n\n constructor() {\n super();\n\n merge(\n fromEvent(this._elementRef.nativeElement, 'click'),\n fromEvent<KeyboardEvent>(this._elementRef.nativeElement, 'keydown').pipe(\n filter((e) => e.keyCode === SPACE || e.keyCode === ENTER),\n ),\n )\n .pipe(takeUntilDestroyed())\n .subscribe((e) => {\n if ('keyCode' in e) {\n e.preventDefault();\n\n if (e.keyCode === ENTER) {\n this._trigger.unmount();\n }\n }\n\n this.radio._onInputInteraction(e);\n });\n\n fromEvent(this._elementRef.nativeElement, 'blur')\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.radio._controlTouched());\n\n this.menuItem._disableCloseOnInteraction();\n }\n}\n","<div class=\"et-menu-radio\">\n <div [ngClass]=\"{ 'et-menu-radio-check--active': radio.checked$ | async }\" class=\"et-menu-radio-check\"></div>\n</div>\n\n<ng-content />\n","import { Directive, InjectionToken, computed, signal } from '@angular/core';\nimport { signalHostAttributes } from '@ethlete/core';\nimport { MenuGroupTitleDirective } from '../menu-group-title';\n\nexport const MENU_GROUP_TOKEN = new InjectionToken<MenuGroupDirective>('MENU_GROUP_TOKEN');\n\n@Directive({\n selector: 'et-menu-group, [et-menu-group], [etMenuGroup]',\n standalone: true,\n providers: [\n {\n provide: MENU_GROUP_TOKEN,\n useExisting: MenuGroupDirective,\n },\n ],\n host: {\n role: 'group',\n class: 'et-menu-group',\n },\n})\nexport class MenuGroupDirective {\n private readonly _currentTitle = signal<MenuGroupTitleDirective | null>(null);\n\n readonly hostAttributeBindings = signalHostAttributes({\n 'aria-labelledby': computed(() => this._currentTitle()?.id),\n });\n\n _connectWithTitle(title: MenuGroupTitleDirective) {\n this._currentTitle.set(title);\n }\n\n _clearTitleConnection() {\n this._currentTitle.set(null);\n }\n}\n","import { Directive, InjectionToken } from '@angular/core';\nimport { CheckboxGroupDirective } from '../../../../../forms/components/checkbox/directives/checkbox-group';\nimport { MenuGroupDirective } from '../menu-group';\n\nexport const MENU_CHECKBOX_GROUP_TOKEN = new InjectionToken<MenuCheckboxGroupDirective>('MENU_CHECKBOX_GROUP_TOKEN');\n\n@Directive({\n selector: 'et-menu-checkbox-group, [et-menu-checkbox-group], [etMenuCheckboxGroup]',\n standalone: true,\n providers: [\n {\n provide: MENU_CHECKBOX_GROUP_TOKEN,\n useExisting: MenuCheckboxGroupDirective,\n },\n ],\n hostDirectives: [MenuGroupDirective, CheckboxGroupDirective],\n})\nexport class MenuCheckboxGroupDirective {}\n","import { Directive, InjectionToken, OnDestroy, inject } from '@angular/core';\nimport { MENU_GROUP_TOKEN } from '../menu-group';\n\nexport const MENU_GROUP_TITLE_TOKEN = new InjectionToken<MenuGroupTitleDirective>('MENU_GROUP_TITLE_TOKEN');\n\nlet uniqueId = 0;\n\n@Directive({\n selector: 'et-menu-group-title, [et-menu-group-title], [etMenuGroupTitle]',\n standalone: true,\n providers: [\n {\n provide: MENU_GROUP_TITLE_TOKEN,\n useExisting: MenuGroupTitleDirective,\n },\n ],\n host: {\n class: 'et-menu-group-title',\n role: 'presentation',\n '[id]': 'id',\n },\n})\nexport class MenuGroupTitleDirective implements OnDestroy {\n private readonly _menuGroup = inject(MENU_GROUP_TOKEN);\n\n readonly id = `et-menu-group-title-${uniqueId++}`;\n\n constructor() {\n this._menuGroup._connectWithTitle(this);\n }\n\n ngOnDestroy(): void {\n this._menuGroup._clearTitleConnection();\n }\n}\n","import { Directive, InjectionToken, forwardRef } from '@angular/core';\nimport { RadioGroupDirective } from '../../../../../forms/components/radio/directives/radio-group';\nimport { DynamicFormGroupDirective } from '../../../../../forms/directives/dynamic-form-group';\nimport { StaticFormGroupDirective } from '../../../../../forms/directives/static-form-group';\nimport { WriteableInputDirective } from '../../../../../forms/directives/writeable-input';\nimport { MenuGroupDirective } from '../menu-group';\n\nexport const MENU_RADIO_GROUP_TOKEN = new InjectionToken<MenuRadioGroupDirective>('MENU_RADIO_GROUP_TOKEN');\n\n@Directive({\n selector: 'et-menu-radio-group, [et-menu-radio-group], [etMenuRadioGroup]',\n standalone: true,\n providers: [\n {\n provide: MENU_RADIO_GROUP_TOKEN,\n useExisting: MenuRadioGroupDirective,\n },\n ],\n hostDirectives: [\n MenuGroupDirective,\n StaticFormGroupDirective,\n WriteableInputDirective,\n {\n directive: forwardRef(() => DynamicFormGroupDirective),\n },\n RadioGroupDirective,\n ],\n})\nexport class MenuRadioGroupDirective {}\n","import { MenuComponent } from './components/menu';\nimport { MenuCheckboxItemComponent } from './components/menu-checkbox-item';\nimport { MenuRadioItemComponent } from './components/menu-radio-item';\nimport { MenuCheckboxGroupDirective } from './directives/menu-checkbox-group';\nimport { MenuGroupDirective } from './directives/menu-group';\nimport { MenuGroupTitleDirective } from './directives/menu-group-title';\nimport { MenuItemDirective } from './directives/menu-item';\nimport { MenuRadioGroupDirective } from './directives/menu-radio-group';\nimport { MenuSearchTemplateDirective } from './directives/menu-search-template';\nimport { MenuTriggerDirective } from './directives/menu-trigger';\n\nexport const MenuImports = [\n MenuGroupDirective,\n MenuCheckboxItemComponent,\n MenuRadioItemComponent,\n MenuGroupTitleDirective,\n MenuItemDirective,\n MenuTriggerDirective,\n MenuCheckboxGroupDirective,\n MenuRadioGroupDirective,\n MenuComponent,\n MenuSearchTemplateDirective,\n] as const;\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { Inject, Injectable, InjectionToken, Optional, SkipSelf } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, startWith } from 'rxjs/operators';\n\nexport const enum FocusNext {\n nextItem,\n previousItem,\n currentItem,\n}\n\nexport interface MenuStackItem {\n menuStack?: MenuStack;\n}\n\nexport const MENU_STACK = new InjectionToken<MenuStack>('cdk-menu-stack');\n\nexport const PARENT_OR_NEW_MENU_STACK_PROVIDER = {\n provide: MENU_STACK,\n deps: [[new Optional(), new SkipSelf(), new Inject(MENU_STACK)]],\n useFactory: (parentMenuStack?: MenuStack) => parentMenuStack || new MenuStack(),\n};\n\nexport const PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER = (orientation: 'vertical' | 'horizontal') => ({\n provide: MENU_STACK,\n deps: [[new Optional(), new SkipSelf(), new Inject(MENU_STACK)]],\n useFactory: (parentMenuStack?: MenuStack) => parentMenuStack || MenuStack.inline(orientation),\n});\n\nexport interface CloseOptions {\n focusNextOnEmpty?: FocusNext;\n focusParentTrigger?: boolean;\n}\n\nexport interface MenuStackCloseEvent {\n item: MenuStackItem;\n focusParentTrigger?: boolean;\n}\n\nlet nextId = 0;\n\n/**\n * @deprecated Use the new menu instead\n */\n@Injectable()\nexport class MenuStack {\n readonly id = `${nextId++}`;\n\n private readonly _elements: MenuStackItem[] = [];\n\n private readonly _close = new Subject<MenuStackCloseEvent>();\n\n private readonly _empty = new Subject<FocusNext | undefined>();\n\n private readonly _hasFocus = new Subject<boolean>();\n\n readonly closed: Observable<MenuStackCloseEvent> = this._close;\n\n readonly hasFocus: Observable<boolean> = this._hasFocus.pipe(\n startWith(false),\n debounceTime(0),\n distinctUntilChanged(),\n );\n\n readonly emptied: Observable<FocusNext | undefined> = this._empty;\n\n private _inlineMenuOrientation: 'vertical' | 'horizontal' | null = null;\n\n static inline(orientation: 'vertical' | 'horizontal') {\n const stack = new MenuStack();\n stack._inlineMenuOrientation = orientation;\n return stack;\n }\n\n push(menu: MenuStackItem) {\n this._elements.push(menu);\n }\n\n close(lastItem: MenuStackItem, options?: CloseOptions) {\n const { focusNextOnEmpty, focusParentTrigger } = { ...options };\n if (this._elements.indexOf(lastItem) >= 0) {\n let poppedElement;\n do {\n poppedElement = this._elements.pop()!;\n this._close.next({ item: poppedElement, focusParentTrigger });\n } while (poppedElement !== lastItem);\n\n if (this.isEmpty()) {\n this._empty.next(focusNextOnEmpty);\n }\n }\n }\n\n closeSubMenuOf(lastItem: MenuStackItem) {\n let removed = false;\n if (this._elements.indexOf(lastItem) >= 0) {\n removed = this.peek() !== lastItem;\n while (this.peek() !== lastItem) {\n this._close.next({ item: this._elements.pop()! });\n }\n }\n return removed;\n }\n\n closeAll(options?: CloseOptions) {\n const { focusNextOnEmpty, focusParentTrigger } = { ...options };\n if (!this.isEmpty()) {\n while (!this.isEmpty()) {\n const menuStackItem = this._elements.pop();\n if (menuStackItem) {\n this._close.next({ item: menuStackItem, focusParentTrigger });\n }\n }\n this._empty.next(focusNextOnEmpty);\n }\n }\n\n isEmpty() {\n return !this._elements.length;\n }\n\n length() {\n return this._elements.length;\n }\n\n peek(): MenuStackItem | undefined {\n return this._elements[this._elements.length - 1];\n }\n\n hasInlineMenu() {\n return this._inlineMenuOrientation != null;\n }\n\n inlineMenuOrientation() {\n return this._inlineMenuOrientation;\n }\n\n setHasFocus(hasFocus: boolean) {\n this._hasFocus.next(hasFocus);\n }\n}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { ConnectedPosition, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n EventEmitter,\n InjectionToken,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { Subject, merge } from 'rxjs';\nimport { Menu } from './menu-interface';\nimport { MENU_STACK, MenuStack } from './menu-stack';\n\nexport const MENU_TRIGGER = new InjectionToken<CdkMenuTriggerBase>('cdk-menu-trigger');\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n host: {\n '[attr.aria-controls]': 'childMenu?.id',\n '[attr.data-cdk-menu-stack-id]': 'menuStack.id',\n },\n})\nexport abstract class CdkMenuTriggerBase implements OnDestroy {\n readonly injector = inject(Injector);\n\n protected readonly viewContainerRef = inject(ViewContainerRef);\n\n protected readonly menuStack: MenuStack = inject(MENU_STACK);\n\n menuPosition: ConnectedPosition[] | null = null;\n\n readonly opened: EventEmitter<void> = new EventEmitter();\n\n readonly closed: EventEmitter<void> = new EventEmitter();\n\n menuTemplateRef: TemplateRef<unknown> | null = null;\n\n menuData: unknown;\n\n protected overlayRef: OverlayRef | null = null;\n\n protected readonly destroyed: Subject<void> = new Subject();\n\n protected readonly stopOutsideClicksListener = merge(this.closed, this.destroyed);\n\n protected childMenu?: Menu;\n\n private _menuPortal: TemplatePortal | null = null;\n\n private _childMenuInjector?: Injector;\n\n ngOnDestroy() {\n this._destroyOverlay();\n\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n isOpen() {\n return !!this.overlayRef?.hasAttached();\n }\n\n registerChildMenu(child: Menu) {\n this.childMenu = child;\n }\n\n protected getMenuContentPortal() {\n const hasMenuContentChanged = this.menuTemplateRef !== this._menuPortal?.templateRef;\n if (this.menuTemplateRef && (!this._menuPortal || hasMenuContentChanged)) {\n this._menuPortal = new TemplatePortal(\n this.menuTemplateRef,\n this.viewContainerRef,\n this.menuData,\n this._getChildMenuInjector(),\n );\n }\n\n return this._menuPortal;\n }\n\n protected isElementInsideMenuStack(element: Element) {\n for (let el: Element | null = element; el; el = el?.parentElement ?? null) {\n if (el.getAttribute('data-cdk-menu-stack-id') === this.menuStack.id) {\n return true;\n }\n }\n return false;\n }\n\n private _destroyOverlay() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n private _getChildMenuInjector() {\n this._childMenuInjector =\n this._childMenuInjector ||\n Injector.create({\n providers: [\n { provide: MENU_TRIGGER, useValue: this },\n { provide: MENU_STACK, useValue: this.menuStack },\n ],\n parent: this.injector,\n });\n return this._childMenuInjector;\n }\n}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n STANDARD_DROPDOWN_BELOW_POSITIONS,\n} from '@angular/cdk/overlay';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { Directive, Injectable, Input, OnDestroy, inject } from '@angular/core';\nimport { merge, partition } from 'rxjs';\nimport { skip, takeUntil } from 'rxjs/operators';\nimport { MENU_STACK, MenuStack } from './menu-stack';\nimport { CdkMenuTriggerBase, MENU_TRIGGER } from './menu-trigger-base';\n\nconst CONTEXT_MENU_POSITIONS = STANDARD_DROPDOWN_BELOW_POSITIONS.map((position) => {\n const offsetX = position.overlayX === 'start' ? 2 : -2;\n const offsetY = position.overlayY === 'top' ? 2 : -2;\n return { ...position, offsetX, offsetY };\n});\n\n@Injectable({ providedIn: 'root' })\nexport class ContextMenuTracker {\n private static _openContextMenuTrigger?: CdkContextMenuTrigger;\n\n update(trigger: CdkContextMenuTrigger) {\n if (ContextMenuTracker._openContextMenuTrigger !== trigger) {\n ContextMenuTracker._openContextMenuTrigger?.close();\n ContextMenuTracker._openContextMenuTrigger = trigger;\n }\n }\n}\n\nexport type ContextMenuCoordinates = { x: number; y: number };\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n selector: '[cdkContextMenuTriggerFor]',\n exportAs: 'cdkContextMenuTriggerFor',\n standalone: true,\n host: {\n '[attr.data-cdk-menu-stack-id]': 'null',\n '(contextmenu)': '_openOnContextMenu($event)',\n },\n inputs: [\n 'menuTemplateRef: cdkContextMenuTriggerFor',\n 'menuPosition: cdkContextMenuPosition',\n 'menuData: cdkContextMenuTriggerData',\n ],\n outputs: ['opened: cdkContextMenuOpened', 'closed: cdkContextMenuClosed'],\n providers: [\n { provide: MENU_TRIGGER, useExisting: CdkContextMenuTrigger },\n { provide: MENU_STACK, useClass: MenuStack },\n ],\n})\nexport class CdkContextMenuTrigger extends CdkMenuTriggerBase implements OnDestroy {\n private readonly _overlay = inject(Overlay);\n\n private readonly _directionality = inject(Directionality, { optional: true });\n\n private readonly _contextMenuTracker = inject(ContextMenuTracker);\n\n @Input('cdkContextMenuDisabled')\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n constructor() {\n super();\n this._setMenuStackCloseListener();\n }\n\n open(coordinates: ContextMenuCoordinates) {\n this._open(coordinates, false);\n }\n\n close() {\n this.menuStack.closeAll();\n }\n\n _openOnContextMenu(event: MouseEvent) {\n if (!this.disabled) {\n event.preventDefault();\n\n event.stopPropagation();\n\n this._contextMenuTracker.update(this);\n this._open({ x: event.clientX, y: event.clientY }, true);\n\n if (event.button === 2) {\n this.childMenu?.focusFirstItem('mouse');\n } else if (event.button === 0) {\n this.childMenu?.focusFirstItem('keyboard');\n } else {\n this.childMenu?.focusFirstItem('program');\n }\n }\n }\n\n private _getOverlayConfig(coordinates: ContextMenuCoordinates) {\n return new OverlayConfig({\n positionStrategy: this._getOverlayPositionStrategy(coordinates),\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n direction: this._directionality || undefined,\n });\n }\n\n private _getOverlayPositionStrategy(coordinates: ContextMenuCoordinates): FlexibleConnectedPositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(coordinates)\n .withLockedPosition()\n .withGrowAfterOpen()\n .withPositions(this.menuPosition ?? CONTEXT_MENU_POSITIONS);\n }\n\n private _setMenuStackCloseListener() {\n this.menuStack.closed.pipe(takeUntil(this.destroyed)).subscribe(({ item }) => {\n if (item === this.childMenu && this.isOpen()) {\n this.closed.next();\n this.overlayRef!.detach();\n }\n });\n }\n\n private _subscribeToOutsideClicks(ignoreFirstAuxClick: boolean) {\n if (this.overlayRef) {\n let outsideClicks = this.overlayRef.outsidePointerEvents();\n\n if (ignoreFirstAuxClick) {\n const [auxClicks, nonAuxClicks] = partition(outsideClicks, ({ type }) => type === 'auxclick');\n outsideClicks = merge(nonAuxClicks, auxClicks.pipe(skip(1)));\n }\n outsideClicks.pipe(takeUntil(this.stopOutsideClicksListener)).subscribe((event) => {\n if (!this.isElementInsideMenuStack(_getEventTarget(event)!)) {\n this.menuStack.closeAll();\n }\n });\n }\n }\n\n private _open(coordinates: ContextMenuCoordinates, ignoreFirstOutsideAuxClick: boolean) {\n if (this.disabled) {\n return;\n }\n if (this.isOpen()) {\n this.menuStack.closeSubMenuOf(this.childMenu!);\n\n (this.overlayRef!.getConfig().positionStrategy as FlexibleConnectedPositionStrategy).setOrigin(coordinates);\n this.overlayRef!.updatePosition();\n } else {\n this.opened.next();\n\n if (this.overlayRef) {\n (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy).setOrigin(coordinates);\n this.overlayRef.updatePosition();\n } else {\n this.overlayRef = this._overlay.create(this._getOverlayConfig(coordinates));\n }\n\n this.overlayRef.attach(this.getMenuContentPortal());\n this._subscribeToOutsideClicks(ignoreFirstOutsideAuxClick);\n }\n }\n}\n","export function throwMissingPointerFocusTracker() {\n throw Error('expected an instance of PointerFocusTracker to be provided');\n}\n\nexport function throwMissingMenuReference() {\n throw Error('expected a reference to the parent menu');\n}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { Directive, inject, Injectable, InjectionToken, isDevMode, NgZone, OnDestroy } from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { throwMissingMenuReference, throwMissingPointerFocusTracker } from './menu-errors';\nimport { Menu } from './menu-interface';\nimport { FocusableElement, PointerFocusTracker } from './pointer-focus-tracker';\n\nexport interface MenuAim {\n initialize(menu: Menu, pointerTracker: PointerFocusTracker<FocusableElement & Toggler>): void;\n\n toggle(doToggle: () => void): void;\n}\n\nexport const MENU_AIM = new InjectionToken<MenuAim>('cdk-menu-aim');\n\nconst MOUSE_MOVE_SAMPLE_FREQUENCY = 3;\n\nconst NUM_POINTS = 5;\n\nconst CLOSE_DELAY = 300;\n\nexport interface Toggler {\n getMenu(): Menu | undefined;\n}\n\nfunction getSlope(a: Point, b: Point) {\n return (b.y - a.y) / (b.x - a.x);\n}\n\nfunction getYIntercept(point: Point, slope: number) {\n return point.y - slope * point.x;\n}\n\ntype Point = { x: number; y: number };\n\nfunction isWithinSubmenu(submenuPoints: DOMRect, m: number, b: number) {\n const { left, right, top, bottom } = submenuPoints;\n\n return (\n (m * left + b >= top && m * left + b <= bottom) ||\n (m * right + b >= top && m * right + b <= bottom) ||\n ((top - b) / m >= left && (top - b) / m <= right) ||\n ((bottom - b) / m >= left && (bottom - b) / m <= right)\n );\n}\n\n@Injectable()\nexport class TargetMenuAim implements MenuAim, OnDestroy {\n private readonly _ngZone = inject(NgZone);\n\n private readonly _points: Point[] = [];\n\n private _menu: Menu | null = null;\n\n private _pointerTracker: PointerFocusTracker<Toggler & FocusableElement> | null = null;\n\n private _timeoutId: number | null = null;\n\n private readonly _destroyed: Subject<void> = new Subject();\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n initialize(menu: Menu, pointerTracker: PointerFocusTracker<FocusableElement & Toggler>) {\n this._menu = menu;\n this._pointerTracker = pointerTracker;\n this._subscribeToMouseMoves();\n }\n\n toggle(doToggle: () => void) {\n if (!this._menu) return;\n\n if (this._menu.orientation === 'horizontal') {\n doToggle();\n }\n\n this._checkConfigured();\n\n const siblingItemIsWaiting = !!this._timeoutId;\n const hasPoints = this._points.length > 1;\n\n if (hasPoints && !siblingItemIsWaiting) {\n if (this._isMovingToSubmenu()) {\n this._startTimeout(doToggle);\n } else {\n doToggle();\n }\n } else if (!siblingItemIsWaiting) {\n doToggle();\n }\n }\n\n private _startTimeout(doToggle: () => void) {\n const timeoutId = window.setTimeout(() => {\n if (!this._pointerTracker) return;\n\n if (this._pointerTracker.activeElement && timeoutId === this._timeoutId) {\n doToggle();\n }\n this._timeoutId = null;\n }, CLOSE_DELAY);\n\n this._timeoutId = timeoutId;\n }\n\n private _isMovingToSubmenu() {\n const submenuPoints = this._getSubmenuBounds();\n if (!submenuPoints) {\n return false;\n }\n\n let numMoving = 0;\n const currPoint = this._points[this._points.length - 1];\n\n for (let i = this._points.length - 2; i >= 0; i--) {\n const previous = this._points[i];\n const slope = getSlope(currPoint!, previous!);\n if (isWithinSubmenu(submenuPoints, slope, getYIntercept(currPoint!, slope))) {\n numMoving++;\n }\n }\n return numMoving >= Math.floor(NUM_POINTS / 2);\n }\n\n private _getSubmenuBounds(): DOMRect | undefined {\n return this._pointerTracker?.previousElement?.getMenu()?.nativeElement.getBoundingClientRect();\n }\n\n private _checkConfigured() {\n if (isDevMode()) {\n if (!this._pointerTracker) {\n throwMissingPointerFocusTracker();\n }\n if (!this._menu) {\n throwMissingMenuReference();\n }\n }\n }\n\n private _subscribeToMouseMoves() {\n this._ngZone.runOutsideAngular(() => {\n if (!this._menu) return;\n\n fromEvent<MouseEvent>(this._menu.nativeElement, 'mousemove')\n .pipe(\n filter((_: MouseEvent, index: number) => index % MOUSE_MOVE_SAMPLE_FREQUENCY === 0),\n takeUntil(this._destroyed),\n )\n .subscribe((event: MouseEvent) => {\n this._points.push({ x: event.clientX, y: event.clientY });\n if (this._points.length > NUM_POINTS) {\n this._points.shift();\n }\n });\n });\n }\n}\n\n@Directive({\n selector: '[cdkTargetMenuAim]',\n exportAs: 'cdkTargetMenuAim',\n standalone: true,\n providers: [{ provide: MENU_AIM, useClass: TargetMenuAim }],\n})\nexport class CdkTargetMenuAim {}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { Directive } from '@angular/core';\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n selector: '[cdkMenuGroup]',\n exportAs: 'cdkMenuGroup',\n standalone: true,\n host: {\n role: 'group',\n class: 'cdk-menu-group',\n },\n providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }],\n})\nexport class CdkMenuGroup {}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { InjectionToken } from '@angular/core';\nimport { MenuStackItem } from './menu-stack';\n\nexport const CDK_MENU = new InjectionToken<Menu>('cdk-menu');\n\nexport interface Menu extends MenuStackItem {\n id: string;\n\n nativeElement: HTMLElement;\n\n readonly orientation: 'horizontal' | 'vertical';\n\n focusFirstItem(focusOrigin: FocusOrigin): void;\n\n focusLastItem(focusOrigin: FocusOrigin): void;\n\n focusItem(item: unknown, focusOrigin?: FocusOrigin): void;\n}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { InputModalityDetector } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { DOWN_ARROW, ENTER, hasModifierKey, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n STANDARD_DROPDOWN_ADJACENT_POSITIONS,\n STANDARD_DROPDOWN_BELOW_POSITIONS,\n} from '@angular/cdk/overlay';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { Directive, ElementRef, inject, NgZone, OnDestroy } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { MENU_AIM } from './menu-aim';\nimport { CDK_MENU, Menu } from './menu-interface';\nimport { PARENT_OR_NEW_MENU_STACK_PROVIDER } from './menu-stack';\nimport { CdkMenuTriggerBase, MENU_TRIGGER } from './menu-trigger-base';\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n selector: '[cdkMenuTriggerFor]',\n exportAs: 'cdkMenuTriggerFor',\n standalone: true,\n host: {\n class: 'cdk-menu-trigger',\n '[attr.aria-haspopup]': 'menuTemplateRef ? \"menu\" : null',\n '[attr.aria-expanded]': 'menuTemplateRef == null ? null : isOpen()',\n '(focusin)': '_setHasFocus(true)',\n '(focusout)': '_setHasFocus(false)',\n '(keydown)': '_toggleOnKeydown($event)',\n '(click)': '_handleClick()',\n },\n inputs: ['menuTemplateRef: cdkMenuTriggerFor', 'menuPosition: cdkMenuPosition', 'menuData: cdkMenuTriggerData'],\n outputs: ['opened: cdkMenuOpened', 'closed: cdkMenuClosed'],\n providers: [{ provide: MENU_TRIGGER, useExisting: CdkMenuTrigger }, PARENT_OR_NEW_MENU_STACK_PROVIDER],\n})\nexport class CdkMenuTrigger extends CdkMenuTriggerBase implements OnDestroy {\n private readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n private readonly _overlay = inject(Overlay);\n private readonly _ngZone = inject(NgZone);\n private readonly _directionality = inject(Directionality, { optional: true });\n private readonly _inputModalityDetector = inject(InputModalityDetector);\n\n private readonly _parentMenu = inject(CDK_MENU, { optional: true });\n\n private readonly _menuAim = inject(MENU_AIM, { optional: true });\n\n constructor() {\n super();\n this._setRole();\n this._registerCloseHandler();\n this._subscribeToMenuStackClosed();\n this._subscribeToMouseEnter();\n this._subscribeToMenuStackHasFocus();\n this._setType();\n }\n\n toggle() {\n this.isOpen() ? this.close() : this.open();\n }\n\n open() {\n if (!this.isOpen() && this.menuTemplateRef != null) {\n this.opened.next();\n\n this.overlayRef = this.overlayRef || this._overlay.create(this._getOverlayConfig());\n this.overlayRef.attach(this.getMenuContentPortal());\n this._subscribeToOutsideClicks();\n }\n }\n\n close() {\n if (this.isOpen()) {\n this.closed.next();\n\n this.overlayRef!.detach();\n }\n this._closeSiblingTriggers();\n }\n\n getMenu(): Menu | undefined {\n return this.childMenu;\n }\n\n _toggleOnKeydown(event: KeyboardEvent) {\n const isParentVertical = this._parentMenu?.orientation === 'vertical';\n switch (event.keyCode) {\n case SPACE:\n case ENTER:\n if (!hasModifierKey(event)) {\n this.toggle();\n this.childMenu?.focusFirstItem('keyboard');\n }\n break;\n\n case RIGHT_ARROW:\n if (!hasModifierKey(event)) {\n if (this._parentMenu && isParentVertical && this._directionality?.value !== 'rtl') {\n event.preventDefault();\n this.open();\n this.childMenu?.focusFirstItem('keyboard');\n }\n }\n break;\n\n case LEFT_ARROW:\n if (!hasModifierKey(event)) {\n if (this._parentMenu && isParentVertical && this._directionality?.value === 'rtl') {\n event.preventDefault();\n this.open();\n this.childMenu?.focusFirstItem('keyboard');\n }\n }\n break;\n\n case DOWN_ARROW:\n case UP_ARROW:\n if (!hasModifierKey(event)) {\n if (!isParentVertical) {\n event.preventDefault();\n this.open();\n event.keyCode === DOWN_ARROW\n ? this.childMenu?.focusFirstItem('keyboard')\n : this.childMenu?.focusLastItem('keyboard');\n }\n }\n break;\n }\n }\n\n _handleClick() {\n if (this._inputModalityDetector.mostRecentModality !== 'keyboard') {\n this.toggle();\n this.childMenu?.focusFirstItem('mouse');\n }\n }\n\n _setHasFocus(hasFocus: boolean) {\n if (!this._parentMenu) {\n this.menuStack.setHasFocus(hasFocus);\n }\n }\n\n private _subscribeToMouseEnter() {\n this._ngZone.runOutsideAngular(() => {\n fromEvent(this._elementRef.nativeElement, 'mouseenter')\n .pipe(\n filter(() => !this.menuStack.isEmpty() && !this.isOpen()),\n takeUntil(this.destroyed),\n )\n .subscribe(() => {\n const toggleMenus = () =>\n this._ngZone.run(() => {\n this._closeSiblingTriggers();\n this.open();\n });\n\n if (this._menuAim) {\n this._menuAim.toggle(toggleMenus);\n } else {\n toggleMenus();\n }\n });\n });\n }\n\n private _closeSiblingTriggers() {\n if (this._parentMenu) {\n const isParentMenuBar =\n !this.menuStack.closeSubMenuOf(this._parentMenu) && this.menuStack.peek() !== this._parentMenu;\n\n if (isParentMenuBar) {\n this.menuStack.closeAll();\n }\n } else {\n this.menuStack.closeAll();\n }\n }\n\n private _getOverlayConfig() {\n return new OverlayConfig({\n positionStrategy: this._getOverlayPositionStrategy(),\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n direction: this._directionality || undefined,\n });\n }\n\n private _getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .withLockedPosition()\n .withGrowAfterOpen()\n .withPositions(this._getOverlayPositions());\n }\n\n private _getOverlayPositions(): ConnectedPosition[] {\n return (\n this.menuPosition ??\n (!this._parentMenu || this._parentMenu.orientation === 'horizontal'\n ? STANDARD_DROPDOWN_BELOW_POSITIONS\n : STANDARD_DROPDOWN_ADJACENT_POSITIONS)\n );\n }\n\n private _registerCloseHandler() {\n if (!this._parentMenu) {\n this.menuStack.closed.pipe(takeUntil(this.destroyed)).subscribe(({ item }) => {\n if (item === this.childMenu) {\n this.close();\n }\n });\n }\n }\n\n private _subscribeToOutsideClicks() {\n if (this.overlayRef) {\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.stopOutsideClicksListener))\n .subscribe((event) => {\n const target = _getEventTarget(event) as Element;\n const element = this._elementRef.nativeElement;\n\n if (target !== element && !element.contains(target)) {\n if (!this.isElementInsideMenuStack(target)) {\n this.menuStack.closeAll();\n } else {\n this._closeSiblingTriggers();\n }\n }\n });\n }\n }\n\n private _subscribeToMenuStackHasFocus() {\n if (!this._parentMenu) {\n this.menuStack.hasFocus.pipe(takeUntil(this.destroyed)).subscribe((hasFocus) => {\n if (!hasFocus) {\n this.menuStack.closeAll();\n }\n });\n }\n }\n\n private _subscribeToMenuStackClosed() {\n if (!this._parentMenu) {\n this.menuStack.closed.subscribe(({ focusParentTrigger }) => {\n if (focusParentTrigger && !this.menuStack.length()) {\n this._elementRef.nativeElement.focus();\n }\n });\n }\n }\n\n private _setRole() {\n if (!this._parentMenu) {\n this._elementRef.nativeElement.setAttribute('role', 'button');\n }\n }\n\n private _setType() {\n const element = this._elementRef.nativeElement;\n\n if (element.nodeName === 'BUTTON' && !element.getAttribute('type')) {\n element.setAttribute('type', 'button');\n }\n }\n}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { FocusableOption, InputModalityDetector } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Directive, ElementRef, EventEmitter, Input, NgZone, OnDestroy, Output, inject } from '@angular/core';\nimport { Subject, fromEvent } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { MENU_AIM, Toggler } from './menu-aim';\nimport { CDK_MENU, Menu } from './menu-interface';\nimport { FocusNext, MENU_STACK } from './menu-stack';\nimport { CdkMenuTrigger } from './menu-trigger';\nimport { FocusableElement } from './pointer-focus-tracker';\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n selector: '[cdkMenuItem]',\n exportAs: 'cdkMenuItem',\n standalone: true,\n host: {\n role: 'menuitem',\n class: 'cdk-menu-item',\n '[tabindex]': '_tabindex',\n '[attr.aria-disabled]': 'disabled || null',\n '(blur)': '_resetTabIndex()',\n '(focus)': '_setTabIndex()',\n '(click)': '_handleClick()',\n '(mousedown)': '_handleMousedown($event)',\n '(keydown)': '_onKeydown($event)',\n },\n})\nexport class CdkMenuItem implements FocusableOption, FocusableElement, Toggler, OnDestroy {\n protected readonly _dir = inject(Directionality, { optional: true });\n private readonly _inputModalityDetector = inject(InputModalityDetector);\n readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n protected _ngZone = inject(NgZone);\n\n private readonly _menuAim = inject(MENU_AIM, { optional: true });\n\n private readonly _menuStack = inject(MENU_STACK);\n\n private readonly _parentMenu = inject(CDK_MENU, { optional: true });\n\n private readonly _menuTrigger = inject(CdkMenuTrigger, { optional: true, self: true });\n\n @Input('cdkMenuItemDisabled')\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n @Input('cdkMenuitemTypeaheadLabel') typeaheadLabel: string | null = null;\n\n @Output('cdkMenuItemTriggered') readonly triggered: EventEmitter<void> = new EventEmitter();\n\n get hasMenu() {\n return this._menuTrigger?.menuTemplateRef != null;\n }\n\n _tabindex: 0 | -1 = -1;\n\n protected closeOnSpacebarTrigger = true;\n\n protected readonly destroyed = new Subject<void>();\n\n constructor() {\n this._setupMouseEnter();\n this._setType();\n\n if (this._isStandaloneItem()) {\n this._tabindex = 0;\n }\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n trigger(options?: { keepOpen: boolean }) {\n const { keepOpen } = { ...options };\n if (!this.disabled && !this.hasMenu) {\n this.triggered.next();\n if (!keepOpen) {\n this._menuStack.closeAll({ focusParentTrigger: true });\n }\n }\n }\n\n isMenuOpen() {\n return !!this._menuTrigger?.isOpen();\n }\n\n getMenu(): Menu | undefined {\n return this._menuTrigger?.getMenu();\n }\n\n getMenuTrigger(): CdkMenuTrigger | null {\n return this._menuTrigger;\n }\n\n getLabel(): string {\n return this.typeaheadLabel || this._elementRef.nativeElement.textContent?.trim() || '';\n }\n\n getParentMenu() {\n return this._parentMenu;\n }\n\n _resetTabIndex() {\n if (!this._isStandaloneItem()) {\n this._tabindex = -1;\n }\n }\n\n _setTabIndex(event?: MouseEvent) {\n if (this.disabled) {\n return;\n }\n\n if (!event || !this._menuStack.isEmpty()) {\n this._tabindex = 0;\n }\n }\n\n _onKeydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n case SPACE:\n case ENTER:\n if (!hasModifierKey(event)) {\n this.trigger({ keepOpen: event.keyCode === SPACE && !this.closeOnSpacebarTrigger });\n }\n break;\n\n case RIGHT_ARROW:\n if (!hasModifierKey(event)) {\n if (this._parentMenu && this._isParentVertical()) {\n if (this._dir?.value !== 'rtl') {\n this._forwardArrowPressed(event);\n } else {\n this._backArrowPressed(event);\n }\n }\n }\n break;\n\n case LEFT_ARROW:\n if (!hasModifierKey(event)) {\n if (this._parentMenu && this._isParentVertical()) {\n if (this._dir?.value !== 'rtl') {\n this._backArrowPressed(event);\n } else {\n this._forwardArrowPressed(event);\n }\n }\n }\n break;\n }\n }\n\n _handleClick() {\n if (this._inputModalityDetector.mostRecentModality !== 'keyboard') {\n this.trigger();\n }\n }\n\n _handleMousedown(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n private _isStandaloneItem() {\n return !this._parentMenu;\n }\n\n private _backArrowPressed(event: KeyboardEvent) {\n const parentMenu = this._parentMenu!;\n if (this._menuStack.hasInlineMenu() || this._menuStack.length() > 1) {\n event.preventDefault();\n this._menuStack.close(parentMenu, {\n focusNextOnEmpty:\n this._menuStack.inlineMenuOrientation() === 'horizontal' ? FocusNext.previousItem : FocusNext.currentItem,\n focusParentTrigger: true,\n });\n }\n }\n\n private _forwardArrowPressed(event: KeyboardEvent) {\n if (!this.hasMenu && this._menuStack.inlineMenuOrientation() === 'horizontal') {\n event.preventDefault();\n this._menuStack.closeAll({\n focusNextOnEmpty: FocusNext.nextItem,\n focusParentTrigger: true,\n });\n }\n }\n\n private _setupMouseEnter() {\n if (!this._isStandaloneItem()) {\n const closeOpenSiblings = () => this._ngZone.run(() => this._menuStack.closeSubMenuOf(this._parentMenu!));\n\n this._ngZone.runOutsideAngular(() =>\n fromEvent(this._elementRef.nativeElement, 'mouseenter')\n .pipe(\n filter(() => !this._menuStack.isEmpty() && !this.hasMenu),\n takeUntil(this.destroyed),\n )\n .subscribe(() => {\n if (this._menuAim) {\n this._menuAim.toggle(closeOpenSiblings);\n } else {\n closeOpenSiblings();\n }\n }),\n );\n }\n }\n\n private _isParentVertical() {\n return this._parentMenu?.orientation === 'vertical';\n }\n\n private _setType() {\n const element = this._elementRef.nativeElement;\n\n if (element.nodeName === 'BUTTON' && !element.getAttribute('type')) {\n element.setAttribute('type', 'button');\n }\n }\n}\n","import { ElementRef, QueryList } from '@angular/core';\nimport { Observable, Subject, defer, fromEvent } from 'rxjs';\nimport { mapTo, mergeAll, mergeMap, startWith, takeUntil } from 'rxjs/operators';\n\nexport interface FocusableElement {\n _elementRef: ElementRef<HTMLElement>;\n}\n\n/**\n * @deprecated Use the new menu instead\n */\nexport class PointerFocusTracker<T extends FocusableElement> {\n readonly entered: Observable<T> = this._getItemPointerEntries();\n\n readonly exited: Observable<T> = this._getItemPointerExits();\n\n activeElement?: T;\n\n previousElement?: T;\n\n private readonly _destroyed: Subject<void> = new Subject();\n\n constructor(private readonly _items: QueryList<T>) {\n this.entered.subscribe((element) => (this.activeElement = element));\n this.exited.subscribe(() => {\n this.previousElement = this.activeElement;\n this.activeElement = undefined;\n });\n }\n\n destroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n private _getItemPointerEntries(): Observable<T> {\n return defer(() =>\n this._items.changes.pipe(\n startWith(this._items),\n mergeMap((list: QueryList<T>) =>\n list.map((element) =>\n fromEvent(element._elementRef.nativeElement, 'mouseenter').pipe(\n mapTo(element),\n takeUntil(this._items.changes),\n ),\n ),\n ),\n mergeAll(),\n ),\n );\n }\n\n private _getItemPointerExits() {\n return defer(() =>\n this._items.changes.pipe(\n startWith(this._items),\n mergeMap((list: QueryList<T>) =>\n list.map((element) =>\n fromEvent(element._elementRef.nativeElement, 'mouseout').pipe(\n mapTo(element),\n takeUntil(this._items.changes),\n ),\n ),\n ),\n mergeAll(),\n ),\n );\n }\n}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { FocusKeyManager, FocusOrigin } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport {\n AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n QueryList,\n inject,\n} from '@angular/core';\nimport { Subject, merge } from 'rxjs';\nimport { mapTo, mergeAll, mergeMap, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { MENU_AIM } from './menu-aim';\nimport { CdkMenuGroup } from './menu-group';\nimport { Menu } from './menu-interface';\nimport { CdkMenuItem } from './menu-item';\nimport { MENU_STACK, MenuStack, MenuStackItem } from './menu-stack';\nimport { PointerFocusTracker } from './pointer-focus-tracker';\n\nlet nextId = 0;\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n host: {\n role: 'menu',\n class: '',\n '[tabindex]': '_getTabIndex()',\n '[id]': 'id',\n '[attr.aria-orientation]': 'orientation',\n '[attr.data-cdk-menu-stack-id]': 'menuStack.id',\n '(focus)': 'focusFirstItem()',\n '(focusin)': 'menuStack.setHasFocus(true)',\n '(focusout)': 'menuStack.setHasFocus(false)',\n },\n})\nexport abstract class CdkMenuBase extends CdkMenuGroup implements Menu, AfterContentInit, OnDestroy {\n readonly nativeElement: HTMLElement = inject(ElementRef).nativeElement;\n\n protected ngZone = inject(NgZone);\n\n readonly menuStack: MenuStack = inject(MENU_STACK);\n\n protected readonly menuAim = inject(MENU_AIM, { optional: true, self: true });\n\n protected readonly dir = inject(Directionality, { optional: true });\n\n @Input() id = `cdk-menu-${nextId++}`;\n\n @ContentChildren(CdkMenuItem, { descendants: true })\n readonly items: QueryList<CdkMenuItem> | null = null;\n\n orientation: 'horizontal' | 'vertical' = 'vertical';\n\n isInline = false;\n\n protected keyManager: FocusKeyManager<CdkMenuItem> | null = null;\n\n protected readonly destroyed: Subject<void> = new Subject();\n\n protected triggerItem?: CdkMenuItem;\n\n protected pointerTracker?: PointerFocusTracker<CdkMenuItem>;\n\n private _menuStackHasFocus = false;\n\n ngAfterContentInit() {\n if (!this.isInline) {\n this.menuStack.push(this);\n }\n this._setKeyManager();\n this._subscribeToMenuStackHasFocus();\n this._subscribeToMenuOpen();\n this._subscribeToMenuStackClosed();\n this._setUpPointerTracker();\n }\n\n ngOnDestroy() {\n this.keyManager?.destroy();\n this.destroyed.next();\n this.destroyed.complete();\n this.pointerTracker?.destroy();\n }\n\n focusFirstItem(focusOrigin: FocusOrigin = 'program') {\n if (!this.keyManager) return;\n\n this.keyManager.setFocusOrigin(focusOrigin);\n this.keyManager.setFirstItemActive();\n }\n\n focusLastItem(focusOrigin: FocusOrigin = 'program') {\n if (!this.keyManager) return;\n\n this.keyManager.setFocusOrigin(focusOrigin);\n this.keyManager.setLastItemActive();\n }\n\n focusItem(item: CdkMenuItem, focusOrigin: FocusOrigin = 'program') {\n const doFocus = () => {\n if (!this.keyManager) return;\n\n const index = this.items?.toArray().indexOf(item);\n\n if (index !== undefined && index !== -1) {\n this.keyManager.setFocusOrigin(focusOrigin);\n this.keyManager.setActiveItem(index);\n }\n };\n\n if (!this.items) {\n setTimeout(() => {\n doFocus();\n }, 0);\n } else {\n doFocus();\n }\n }\n\n _getTabIndex() {\n const tabindexIfInline = this._menuStackHasFocus ? -1 : 0;\n return this.isInline ? tabindexIfInline : null;\n }\n\n protected closeOpenMenu(menu: MenuStackItem, options?: { focusParentTrigger?: boolean }) {\n const { focusParentTrigger } = { ...options };\n const keyManager = this.keyManager;\n const trigger = this.triggerItem;\n if (menu === trigger?.getMenuTrigger()?.getMenu()) {\n trigger?.getMenuTrigger()?.close();\n\n if (focusParentTrigger) {\n if (!keyManager) return;\n\n if (trigger) {\n keyManager.setActiveItem(trigger);\n } else {\n keyManager.setFirstItemActive();\n }\n }\n }\n }\n\n private _setKeyManager() {\n if (!this.items) return;\n\n this.keyManager = new FocusKeyManager(this.items).withWrap().withTypeAhead().withHomeAndEnd();\n\n if (this.orientation === 'horizontal') {\n this.keyManager.withHorizontalOrientation(this.dir?.value || 'ltr');\n } else {\n this.keyManager.withVerticalOrientation();\n }\n }\n\n private _subscribeToMenuOpen() {\n if (!this.items) return;\n\n const exitCondition = merge(this.items.changes, this.destroyed);\n this.items.changes\n .pipe(\n startWith(this.items),\n mergeMap((list: QueryList<CdkMenuItem>) =>\n list\n .filter((item) => item.hasMenu)\n .map((item) => item.getMenuTrigger()!.opened.pipe(mapTo(item), takeUntil(exitCondition))),\n ),\n mergeAll(),\n switchMap((item: CdkMenuItem) => {\n this.triggerItem = item;\n return item.getMenuTrigger()!.closed;\n }),\n takeUntil(this.destroyed),\n )\n .subscribe(() => (this.triggerItem = undefined));\n }\n\n private _subscribeToMenuStackClosed() {\n this.menuStack.closed\n .pipe(takeUntil(this.destroyed))\n .subscribe(({ item, focusParentTrigger }) => this.closeOpenMenu(item, { focusParentTrigger }));\n }\n\n private _subscribeToMenuStackHasFocus() {\n if (this.isInline) {\n this.menuStack.hasFocus.pipe(takeUntil(this.destroyed)).subscribe((hasFocus) => {\n this._menuStackHasFocus = hasFocus;\n });\n }\n }\n\n private _setUpPointerTracker() {\n if (this.menuAim) {\n this.ngZone.runOutsideAngular(() => {\n if (!this.items) return;\n\n this.pointerTracker = new PointerFocusTracker(this.items);\n });\n this.menuAim.initialize(this, this.pointerTracker!);\n }\n }\n}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { ESCAPE, hasModifierKey, LEFT_ARROW, RIGHT_ARROW, TAB } from '@angular/cdk/keycodes';\nimport { AfterContentInit, Directive, EventEmitter, inject, OnDestroy, Output } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { CdkMenuBase } from './menu-base';\nimport { CdkMenuGroup } from './menu-group';\nimport { CDK_MENU } from './menu-interface';\nimport { FocusNext, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER } from './menu-stack';\nimport { MENU_TRIGGER } from './menu-trigger-base';\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n selector: '[cdkMenu]',\n exportAs: 'cdkMenu',\n standalone: true,\n host: {\n role: 'menu',\n class: 'cdk-menu',\n '[class.cdk-menu-inline]': 'isInline',\n '(keydown)': '_handleKeyEvent($event)',\n },\n providers: [\n { provide: CdkMenuGroup, useExisting: CdkMenu },\n { provide: CDK_MENU, useExisting: CdkMenu },\n PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER('vertical'),\n ],\n})\nexport class CdkMenu extends CdkMenuBase implements AfterContentInit, OnDestroy {\n private _parentTrigger = inject(MENU_TRIGGER, { optional: true });\n\n @Output() readonly closed: EventEmitter<void> = new EventEmitter();\n\n override readonly orientation = 'vertical';\n\n override readonly isInline = !this._parentTrigger;\n\n constructor() {\n super();\n this.destroyed.subscribe(this.closed);\n this._parentTrigger?.registerChildMenu(this);\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n this._subscribeToMenuStackEmptied();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.closed.complete();\n }\n\n _handleKeyEvent(event: KeyboardEvent) {\n const keyManager = this.keyManager;\n\n if (!keyManager) return;\n\n switch (event.keyCode) {\n case LEFT_ARROW:\n case RIGHT_ARROW:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n keyManager.setFocusOrigin('keyboard');\n keyManager.onKeydown(event);\n }\n break;\n\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this.menuStack.close(this, {\n focusNextOnEmpty: FocusNext.currentItem,\n focusParentTrigger: true,\n });\n }\n break;\n\n case TAB:\n if (!hasModifierKey(event, 'altKey', 'metaKey', 'ctrlKey')) {\n this.menuStack.closeAll({ focusParentTrigger: true });\n }\n break;\n\n default:\n keyManager.onKeydown(event);\n }\n }\n\n private _toggleMenuFocus(focusNext: FocusNext | undefined) {\n const keyManager = this.keyManager;\n\n if (!keyManager) return;\n\n switch (focusNext) {\n case FocusNext.nextItem:\n keyManager.setFocusOrigin('keyboard');\n keyManager.setNextItemActive();\n break;\n\n case FocusNext.previousItem:\n keyManager.setFocusOrigin('keyboard');\n keyManager.setPreviousItemActive();\n break;\n\n case FocusNext.currentItem:\n if (keyManager.activeItem) {\n keyManager.setFocusOrigin('keyboard');\n keyManager.setActiveItem(keyManager.activeItem);\n }\n break;\n }\n }\n\n private _subscribeToMenuStackEmptied() {\n this.menuStack.emptied.pipe(takeUntil(this.destroyed)).subscribe((event) => this._toggleMenuFocus(event));\n }\n}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { DOWN_ARROW, ESCAPE, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW, hasModifierKey } from '@angular/cdk/keycodes';\nimport { AfterContentInit, Directive } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { CdkMenuBase } from './menu-base';\nimport { CdkMenuGroup } from './menu-group';\nimport { CDK_MENU } from './menu-interface';\nimport { FocusNext, MENU_STACK, MenuStack } from './menu-stack';\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n selector: '[cdkMenuBar]',\n exportAs: 'cdkMenuBar',\n standalone: true,\n host: {\n role: 'menubar',\n class: 'cdk-menu-bar',\n '(keydown)': '_handleKeyEvent($event)',\n },\n providers: [\n { provide: CdkMenuGroup, useExisting: CdkMenuBar },\n { provide: CDK_MENU, useExisting: CdkMenuBar },\n { provide: MENU_STACK, useFactory: () => MenuStack.inline('horizontal') },\n ],\n})\nexport class CdkMenuBar extends CdkMenuBase implements AfterContentInit {\n override readonly orientation = 'horizontal';\n\n override readonly isInline = true;\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n this._subscribeToMenuStackEmptied();\n }\n\n _handleKeyEvent(event: KeyboardEvent) {\n const keyManager = this.keyManager;\n\n if (!keyManager) return;\n\n switch (event.keyCode) {\n case UP_ARROW:\n case DOWN_ARROW:\n case LEFT_ARROW:\n case RIGHT_ARROW:\n if (!hasModifierKey(event)) {\n const horizontalArrows = event.keyCode === LEFT_ARROW || event.keyCode === RIGHT_ARROW;\n\n if (horizontalArrows) {\n event.preventDefault();\n\n const prevIsOpen = keyManager.activeItem?.isMenuOpen();\n keyManager.activeItem?.getMenuTrigger()?.close();\n\n keyManager.setFocusOrigin('keyboard');\n keyManager.onKeydown(event);\n if (prevIsOpen) {\n keyManager.activeItem?.getMenuTrigger()?.open();\n }\n }\n }\n break;\n\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n keyManager.activeItem?.getMenuTrigger()?.close();\n }\n break;\n\n case TAB:\n if (!hasModifierKey(event, 'altKey', 'metaKey', 'ctrlKey')) {\n keyManager.activeItem?.getMenuTrigger()?.close();\n }\n break;\n\n default:\n keyManager.onKeydown(event);\n }\n }\n\n private _toggleOpenMenu(focusNext: FocusNext | undefined) {\n const keyManager = this.keyManager;\n\n if (!keyManager) return;\n\n switch (focusNext) {\n case FocusNext.nextItem:\n keyManager.setFocusOrigin('keyboard');\n keyManager.setNextItemActive();\n keyManager.activeItem?.getMenuTrigger()?.open();\n break;\n\n case FocusNext.previousItem:\n keyManager.setFocusOrigin('keyboard');\n keyManager.setPreviousItemActive();\n keyManager.activeItem?.getMenuTrigger()?.open();\n break;\n\n case FocusNext.currentItem:\n if (keyManager.activeItem) {\n keyManager.setFocusOrigin('keyboard');\n keyManager.setActiveItem(keyManager.activeItem);\n }\n break;\n }\n }\n\n private _subscribeToMenuStackEmptied() {\n this.menuStack?.emptied.pipe(takeUntil(this.destroyed)).subscribe((event) => this._toggleOpenMenu(event));\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, Input } from '@angular/core';\nimport { CdkMenuItem } from './menu-item';\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n host: {\n '[attr.aria-checked]': '!!checked',\n '[attr.aria-disabled]': 'disabled || null',\n },\n})\nexport abstract class CdkMenuItemSelectable extends CdkMenuItem {\n @Input('cdkMenuItemChecked')\n get checked(): boolean {\n return this._checked;\n }\n set checked(value: BooleanInput) {\n this._checked = coerceBooleanProperty(value);\n\n if (this._checked) {\n this.getParentMenu()?.focusItem(this);\n }\n }\n private _checked = false;\n\n protected override closeOnSpacebarTrigger = false;\n}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { Directive } from '@angular/core';\nimport { CdkMenuItem } from './menu-item';\nimport { CdkMenuItemSelectable } from './menu-item-selectable';\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n selector: '[cdkMenuItemCheckbox]',\n exportAs: 'cdkMenuItemCheckbox',\n standalone: true,\n host: {\n role: 'menuitemcheckbox',\n '[class.cdk-menu-item-checkbox]': 'true',\n },\n providers: [\n { provide: CdkMenuItemSelectable, useExisting: CdkMenuItemCheckbox },\n { provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },\n ],\n})\nexport class CdkMenuItemCheckbox extends CdkMenuItemSelectable {\n override trigger(options?: { keepOpen: boolean }) {\n super.trigger(options);\n\n if (!this.disabled) {\n this.checked = !this.checked;\n }\n }\n}\n","/* eslint-disable @angular-eslint/directive-class-suffix */\n/* eslint-disable @angular-eslint/no-output-rename */\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\n\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { Directive, inject, OnDestroy } from '@angular/core';\nimport { CdkMenuItem } from './menu-item';\nimport { CdkMenuItemSelectable } from './menu-item-selectable';\n\nlet nextId = 0;\n\n/**\n * @deprecated Use the new menu instead\n */\n@Directive({\n selector: '[cdkMenuItemRadio]',\n exportAs: 'cdkMenuItemRadio',\n standalone: true,\n host: {\n role: 'menuitemradio',\n '[class.cdk-menu-item-radio]': 'true',\n },\n providers: [\n { provide: CdkMenuItemSelectable, useExisting: CdkMenuItemRadio },\n { provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },\n ],\n})\nexport class CdkMenuItemRadio extends CdkMenuItemSelectable implements OnDestroy {\n private readonly _selectionDispatcher = inject(UniqueSelectionDispatcher);\n\n private _id = `${nextId++}`;\n\n private _removeDispatcherListener?: () => void;\n\n constructor() {\n super();\n this._registerDispatcherListener();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n\n this._removeDispatcherListener?.();\n }\n\n override trigger(options?: { keepOpen: boolean }) {\n super.trigger(options);\n\n if (!this.disabled) {\n this._selectionDispatcher.notify(this._id, '');\n }\n }\n\n private _registerDispatcherListener() {\n this._removeDispatcherListener = this._selectionDispatcher.listen((id: string) => {\n this.checked = this._id === id;\n });\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\nimport { CdkContextMenuTrigger } from './context-menu-trigger';\nimport { CdkMenu } from './menu';\nimport { CdkTargetMenuAim } from './menu-aim';\nimport { CdkMenuBar } from './menu-bar';\nimport { CdkMenuGroup } from './menu-group';\nimport { CdkMenuItem } from './menu-item';\nimport { CdkMenuItemCheckbox } from './menu-item-checkbox';\nimport { CdkMenuItemRadio } from './menu-item-radio';\nimport { CdkMenuTrigger } from './menu-trigger';\n\n/**\n * @deprecated Use the new menu instead\n */\nconst MENU_DIRECTIVES = [\n CdkMenuBar,\n CdkMenu,\n CdkMenuItem,\n CdkMenuItemRadio,\n CdkMenuItemCheckbox,\n CdkMenuTrigger,\n CdkMenuGroup,\n CdkContextMenuTrigger,\n CdkTargetMenuAim,\n];\n\n/**\n * @deprecated Use the new menu instead\n */\n@NgModule({\n imports: [OverlayModule, ...MENU_DIRECTIVES],\n exports: MENU_DIRECTIVES,\n})\nexport class CdkMenuModule {}\n","import { ScrollStrategy, ViewportRuler } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\nimport { RouterStateService, SmartBlockScrollStrategy } from '@ethlete/core';\nimport { OverlayConfig } from '../types';\n\nexport const OVERLAY_DATA = new InjectionToken('OverlayData');\nexport const OVERLAY_DEFAULT_OPTIONS = new InjectionToken<OverlayConfig>('OverlayDefaultOptions');\nexport const OVERLAY_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('OverlayScrollStrategy');\nexport const OVERLAY_CONFIG = new InjectionToken<OverlayConfig>('OverlayConfig');\n\nexport function OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(\n ruler: ViewportRuler,\n routerState: RouterStateService,\n): () => ScrollStrategy {\n return () => new SmartBlockScrollStrategy(ruler, routerState, document);\n}\n\nexport const OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n provide: OVERLAY_SCROLL_STRATEGY,\n deps: [ViewportRuler, RouterStateService],\n useFactory: OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\nexport const OVERLAY_DEFAULT_CONFIG: OverlayConfig = {\n role: 'dialog',\n hasBackdrop: true,\n disableClose: false,\n data: null,\n ariaDescribedBy: null,\n ariaLabelledBy: null,\n ariaLabel: null,\n ariaModal: true,\n customAnimated: false,\n autoFocus: 'first-tabbable',\n restoreFocus: true,\n delayFocusTrap: true,\n closeOnNavigation: true,\n positions: [\n {\n config: {},\n },\n ],\n};\n","import { FocusMonitor, FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { OverlayRef as CdkOverlayRef } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, NgZone, ViewEncapsulation, inject } from '@angular/core';\nimport {\n ANIMATED_LIFECYCLE_TOKEN,\n AnimatedLifecycleDirective,\n RootBoundaryDirective,\n elementCanScroll,\n nextFrame,\n} from '@ethlete/core';\nimport { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';\nimport { Subject, fromEvent, merge, takeUntil, tap } from 'rxjs';\nimport { SwipeHandlerService } from '../../../../../../services';\nimport { SwipeEndEvent, SwipeUpdateEvent } from '../../../../../../types';\nimport { OVERLAY_CONFIG } from '../../constants';\nimport { OverlayConfig, OverlayDragToDismissConfig } from '../../types';\nimport { OverlayRef } from '../../utils';\n\nconst isTouchEvent = (event: Event): event is TouchEvent => {\n return event.type[0] === 't';\n};\n\n@Component({\n selector: 'et-overlay-container',\n styleUrls: ['./overlay-container.component.scss'],\n template: `\n <div class=\"et-overlay-container-drag-handle\"></div>\n <ng-template cdkPortalOutlet />\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'et-overlay',\n tabindex: '-1',\n '[attr.aria-modal]': '_config.ariaModal',\n '[id]': '_config.id',\n '[attr.role]': '_config.role',\n '[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledBy',\n '[attr.aria-label]': '_config.ariaLabel',\n '[attr.aria-describedby]': '_config.ariaDescribedBy || null',\n '[class.et-with-default-animation]': '!_config.customAnimated',\n },\n standalone: true,\n imports: [PortalModule],\n hostDirectives: [RootBoundaryDirective, AnimatedLifecycleDirective, ProvideThemeDirective],\n})\nexport class OverlayContainerComponent extends CdkDialogContainer<OverlayConfig> {\n private readonly _swipeHandlerService = inject(SwipeHandlerService);\n private readonly _dragToDismissStop$ = new Subject<void>();\n readonly _themeProvider = inject(THEME_PROVIDER);\n private readonly _parentThemeProvider = inject(THEME_PROVIDER, { optional: true, skipSelf: true });\n readonly _rootBoundary = inject(RootBoundaryDirective);\n\n readonly _animatedLifecycle = inject(ANIMATED_LIFECYCLE_TOKEN);\n readonly cdkOverlayRef = inject(CdkOverlayRef);\n\n overlayRef: OverlayRef | null = null;\n\n readonly elementRef = this._elementRef;\n\n constructor() {\n super(\n inject(ElementRef),\n inject(FocusTrapFactory),\n inject(DOCUMENT),\n inject(OVERLAY_CONFIG),\n inject(InteractivityChecker),\n inject(NgZone),\n inject(CdkOverlayRef),\n inject(FocusMonitor),\n );\n\n if (this._parentThemeProvider) {\n this._themeProvider.syncWithProvider(this._parentThemeProvider);\n }\n }\n\n protected override _contentAttached(): void {\n super._contentAttached();\n\n this._rootBoundary.boundaryElement = this._elementRef.nativeElement;\n\n nextFrame(() => {\n this._animatedLifecycle.enter();\n });\n }\n\n protected override _captureInitialFocus(): void {\n if (!this._config.delayFocusTrap) {\n this._trapFocus();\n }\n }\n\n protected _openAnimationDone() {\n if (this._config.delayFocusTrap) {\n this._trapFocus();\n }\n }\n\n _enableDragToDismiss(config: OverlayDragToDismissConfig) {\n if (!this.overlayRef) return;\n\n this._dragToDismissStop$.next();\n\n const el = this._elementRef.nativeElement as HTMLElement;\n let swipeId: number | null = null;\n let isSelectionActive = false;\n\n const cancelDrag = () => {\n el.style.setProperty('transition', 'transform 100ms var(--ease-out-1)');\n el.style.transform =\n config.direction === 'to-bottom' || config.direction === 'to-top' ? 'translateY(0)' : 'translateX(0)';\n swipeId = null;\n\n setTimeout(() => {\n el.style.removeProperty('transition');\n el.style.removeProperty('transform');\n }, 100);\n };\n\n merge(fromEvent<TouchEvent>(el, 'touchstart'), fromEvent<MouseEvent>(el, 'mousedown'))\n .pipe(\n takeUntil(this._dragToDismissStop$),\n takeUntil(this.overlayRef.afterClosed()),\n tap((event) => {\n if (isSelectionActive) return;\n\n const target = event.target as HTMLElement;\n const tag = target.tagName.toLowerCase();\n\n if (tag === 'input' || tag === 'textarea' || tag === 'select' || tag === 'button' || tag === 'a') return;\n\n swipeId = this._swipeHandlerService.startSwipe(event);\n }),\n )\n .subscribe();\n\n fromEvent<Event>(document, 'selectionchange')\n .pipe(takeUntil(this._dragToDismissStop$), takeUntil(this.overlayRef.afterClosed()))\n .subscribe(() => {\n const selection = document.getSelection();\n\n if (!selection || !selection.toString().length) {\n isSelectionActive = false;\n return;\n }\n\n isSelectionActive = true;\n\n cancelDrag();\n });\n\n merge(fromEvent<TouchEvent>(el, 'touchmove'), fromEvent<MouseEvent>(el, 'mousemove'))\n .pipe(\n takeUntil(this._dragToDismissStop$),\n takeUntil(this.overlayRef.afterClosed()),\n tap((event) => {\n if (swipeId === null || isSelectionActive) return;\n\n if (isTouchEvent(event)) {\n const target = event.target as HTMLElement;\n\n const recursiveFindScrollableParent = (el: HTMLElement): HTMLElement | null => {\n if (!el) return null;\n\n if (config.direction === 'to-bottom' || config.direction === 'to-top') {\n if (elementCanScroll(el, 'y')) {\n return el;\n }\n } else {\n if (elementCanScroll(el, 'x')) {\n return el;\n }\n }\n\n if (!el.parentElement || el.tagName.toLowerCase() === 'et-overlay-container') return null;\n\n return recursiveFindScrollableParent(el.parentElement);\n };\n\n const scrollableElement = recursiveFindScrollableParent(target);\n\n if (scrollableElement) {\n let cancel = false;\n if (config.direction === 'to-bottom') {\n if (scrollableElement.scrollTop !== 0) {\n cancel = true;\n }\n } else if (config.direction === 'to-top') {\n if (\n Math.round(scrollableElement.scrollTop) !==\n scrollableElement.scrollHeight - scrollableElement.clientHeight\n ) {\n cancel = true;\n }\n } else if (config.direction === 'to-right') {\n if (scrollableElement.scrollLeft !== 0) {\n cancel = true;\n }\n } else {\n if (\n Math.round(scrollableElement.scrollLeft) !==\n scrollableElement.scrollWidth - scrollableElement.clientWidth\n ) {\n cancel = true;\n }\n }\n\n if (cancel) {\n cancelDrag();\n\n return;\n }\n }\n }\n\n const swipeData = this._swipeHandlerService.updateSwipe(swipeId, event);\n\n if (!swipeData) return;\n\n const css = this._defaultSwipeMoveStyleInterpolator(swipeData, config);\n\n Object.entries(css).forEach(([key, value]) => {\n el.style.setProperty(key, value);\n });\n }),\n )\n .subscribe();\n\n merge(fromEvent<TouchEvent>(el, 'touchend'), fromEvent<MouseEvent>(el, 'mouseup'))\n .pipe(\n takeUntil(this._dragToDismissStop$),\n takeUntil(this.overlayRef.afterClosed()),\n tap(() => {\n if (swipeId === null || isSelectionActive) return;\n\n const swipeData = this._swipeHandlerService.endSwipe(swipeId);\n swipeId = null;\n\n if (!swipeData) return;\n\n const css = this._defaultSwipeEndStyleInterpolator(swipeData, config);\n\n if (!css) {\n this.overlayRef?._closeOverlayVia('touch');\n return;\n }\n\n Object.entries(css).forEach(([key, value]) => {\n if (key === 'cleanUp') {\n if (typeof value === 'string' || !value) return;\n\n setTimeout(() => {\n value.fn(el);\n }, value.delay);\n\n return;\n }\n\n el.style.setProperty(key, value as string);\n });\n }),\n )\n .subscribe();\n }\n\n _disableDragToDismiss() {\n this._dragToDismissStop$.next();\n }\n\n private _defaultSwipeMoveStyleInterpolator(event: SwipeUpdateEvent, config: OverlayDragToDismissConfig) {\n const { direction } = config;\n const { movementX, movementY } = event;\n\n if (direction === 'to-bottom') {\n return {\n transform: `translateY(${movementY < 0 ? 0 : movementY}px)`,\n };\n } else if (direction === 'to-top') {\n return {\n transform: `translateY(${movementY > 0 ? 0 : movementY}px)`,\n };\n } else if (direction === 'to-left') {\n return {\n transform: `translateX(${movementX > 0 ? 0 : movementX}px)`,\n };\n } else {\n return {\n transform: `translateX(${movementX < 0 ? 0 : movementX}px)`,\n };\n }\n }\n\n private _defaultSwipeEndStyleInterpolator(event: SwipeEndEvent, config: OverlayDragToDismissConfig) {\n const { direction, minDistanceToDismiss = 150, minVelocityToDismiss = 150 } = config;\n const { movementX, movementY, pixelPerSecondX, pixelPerSecondY } = event;\n\n const cleanUp = {\n delay: 100,\n fn: (el: HTMLElement) => el.style.removeProperty('transition'),\n };\n\n if (direction === 'to-bottom') {\n if (movementY < minDistanceToDismiss && pixelPerSecondY < minVelocityToDismiss) {\n return {\n transform: `translateY(0)`,\n transition: 'transform 100ms var(--ease-out-1)',\n cleanUp: movementY ? cleanUp : undefined,\n };\n } else {\n return null;\n }\n }\n if (direction === 'to-top') {\n if (movementY > -minDistanceToDismiss && pixelPerSecondY > -minVelocityToDismiss) {\n return {\n transform: `translateY(0)`,\n transition: 'transform 100ms var(--ease-out-1)',\n cleanUp: movementY ? cleanUp : undefined,\n };\n } else {\n return null;\n }\n } else if (direction === 'to-left') {\n if (movementX > -minDistanceToDismiss && pixelPerSecondX > -minVelocityToDismiss) {\n return {\n transform: `translateX(0)`,\n transition: 'transform 100ms var(--ease-out-1)',\n cleanUp: movementX ? cleanUp : undefined,\n };\n } else {\n return null;\n }\n } else {\n if (movementX < minDistanceToDismiss && pixelPerSecondX < minVelocityToDismiss) {\n return {\n transform: `translateX(0)`,\n transition: 'transform 100ms var(--ease-out-1)',\n cleanUp: movementX ? cleanUp : undefined,\n };\n } else {\n return null;\n }\n }\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable, InjectionToken, Provider, computed, inject, isDevMode } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { FormGroup } from '@angular/forms';\nimport { cloneFormGroup, controlValueSignal, getFormGroupValue } from '@ethlete/core';\nimport {\n AnyQuery,\n QueryResponseOf,\n QueryState,\n isQueryStateFailure,\n isQueryStateLoading,\n isQueryStateSuccess,\n queryComputed,\n switchQueryState,\n} from '@ethlete/query';\nimport { OverlayRef } from './overlay-ref';\n\nexport const FILTER_OVERLAY_CONFIG = new InjectionToken<FilterOverlayConfig>('FILTER_OVERLAY_CONFIG');\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FilterOverlayConfig<F extends FormGroup<any> = FormGroup<any>, Q extends AnyQuery = AnyQuery> = {\n /**\n * The form to use.\n */\n form: F;\n\n /**\n * The default form value. Used when the form is reset.\n */\n defaults?: ReturnType<F['getRawValue']>;\n\n /**\n * A function to create a query based on the form value.\n */\n searchPreviewQueryFn?: (formValue: ReturnType<F['getRawValue']>) => Q;\n\n /**\n * A function to extract the total hits from the response.\n * @default `response.totalHits`\n */\n totalHitsExtractorFn?: (response: QueryResponseOf<Q>) => number;\n\n /**\n * A function to create the submit button config based on the query state and the total hits.\n * If a german translation is needed, manually provide the `defaultSubmitButtonConfigFn` and set the locale to `de`.\n * @default defaultSubmitButtonConfigFn()\n */\n submitButtonConfigFn?: (\n config: DefaultSubmitButtonConfigFnConfig<QueryResponseOf<Q>>,\n ) => FilterOverlaySubmitButtonConfig;\n};\n\nexport type FilterOverlaySubmitButtonConfig = {\n label: string;\n disabled: boolean;\n};\n\nexport type DefaultSubmitButtonConfigFnConfig<ResponseType = unknown> = {\n queryState: QueryState<ResponseType> | null;\n totalHits: number | null;\n locale?: 'en' | 'de';\n};\n\nexport const defaultSubmitButtonConfigFn = (\n config: DefaultSubmitButtonConfigFnConfig,\n): FilterOverlaySubmitButtonConfig => {\n const { queryState, totalHits, locale = 'en' } = config;\n\n const isInitializing = queryState === null && totalHits === null;\n\n if (isQueryStateLoading(queryState) || isInitializing) {\n return {\n disabled: true,\n label: locale === 'en' ? 'Loading results...' : 'Lade Ergebnisse...',\n };\n } else if (isQueryStateFailure(queryState)) {\n return {\n disabled: true,\n label: locale === 'en' ? 'An error occurred' : 'Ein Fehler ist aufgetreten',\n };\n } else if (totalHits !== null) {\n if (totalHits === 0) {\n return {\n disabled: true,\n label: locale === 'en' ? 'No results found' : 'Keine Ergebnisse gefunden',\n };\n } else if (totalHits === 1) {\n return {\n disabled: false,\n label: locale === 'en' ? 'Show one result' : 'Zeige ein Ergebnis',\n };\n } else if (totalHits > 250) {\n return {\n disabled: false,\n label: locale === 'en' ? 'Show more than 250 results' : 'Zeige mehr als 250 Ergebnisse',\n };\n } else {\n return {\n disabled: false,\n label: locale === 'en' ? `Show ${totalHits} results` : `Zeige ${totalHits} Ergebnisse`,\n };\n }\n }\n\n if (isDevMode()) {\n console.error(\n 'The default submit button config function resulted in an unknown state. The fallback state might be invalid and should be checked.',\n config,\n );\n }\n\n // This should never happen\n return {\n disabled: true,\n label: locale === 'en' ? 'No results found' : 'Keine Ergebnisse gefunden',\n };\n};\n\nexport type FilterOverlayResult<FormValue = unknown> =\n | {\n didUpdate: false;\n }\n | {\n didUpdate: true;\n formValue: FormValue;\n };\n\n@Injectable()\nexport class FilterOverlayService<F extends FormGroup, C extends ComponentType<unknown> | unknown = unknown> {\n config = inject<FilterOverlayConfig<F>>(FILTER_OVERLAY_CONFIG);\n overlayRef = inject<OverlayRef<C, FilterOverlayResult>>(OverlayRef);\n\n form = cloneFormGroup(this.config.form as F);\n\n formValue = controlValueSignal(this.form);\n searchPreviewQuery = queryComputed(() => {\n const formVal = this.formValue();\n\n if (!this.config.searchPreviewQueryFn || !formVal) {\n return null;\n }\n\n return this.config.searchPreviewQueryFn(formVal);\n });\n\n searchPreviewQueryState = toSignal(toObservable(this.searchPreviewQuery).pipe(switchQueryState()), {\n initialValue: null,\n });\n\n searchPreviewTotalHits = computed(() => {\n const state = this.searchPreviewQueryState();\n\n if (isQueryStateSuccess(state)) {\n if (this.config.totalHitsExtractorFn) {\n return this.config.totalHitsExtractorFn(state.response);\n }\n\n if (!state.response || typeof state.response !== 'object' || !('totalHits' in state.response)) {\n console.error(`The response does not contain a totalHits property.`, state.response);\n return null;\n }\n\n return state.response.totalHits as number;\n }\n\n return null;\n });\n\n submitButtonConfig = computed(() => {\n const state = this.searchPreviewQueryState();\n const totalHits = this.searchPreviewTotalHits();\n\n return (\n this.config.submitButtonConfigFn?.({ queryState: state, totalHits }) ??\n defaultSubmitButtonConfigFn({ queryState: state, totalHits })\n );\n });\n\n submit() {\n const value = getFormGroupValue(this.form);\n this.config.form.setValue(value);\n\n this.close({ didUpdate: true, formValue: value });\n }\n\n reset() {\n if (!this.config.defaults) {\n throw new Error(`The default form value is not defined.`);\n }\n\n this.form.patchValue(this.config.defaults);\n }\n\n close(data?: FilterOverlayResult) {\n this.overlayRef?.close(data);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const provideFilterOverlayConfig = <F extends FormGroup<any> = FormGroup<any>, Q extends AnyQuery = AnyQuery>(\n config: FilterOverlayConfig<F, Q>,\n): Provider[] => {\n return [\n {\n provide: FILTER_OVERLAY_CONFIG,\n useValue: config,\n },\n ];\n};\n","import { OVERLAY_DEFAULT_CONFIG } from '../constants';\nimport { OverlayConfig } from '../types';\n\nexport const createOverlayConfig = <D = unknown>(\n globalConfig?: Partial<OverlayConfig<D>> | null | undefined,\n localConfig?: Partial<OverlayConfig<D>> | null | undefined,\n): OverlayConfig<D> => ({\n ...(OVERLAY_DEFAULT_CONFIG as OverlayConfig<D>),\n ...(globalConfig || {}),\n ...(localConfig || {}),\n});\n","import { Overlay } from '@angular/cdk/overlay';\nimport { inject } from '@angular/core';\nimport { Breakpoint } from '@ethlete/core';\nimport { OverlayBreakpointConfig, OverlayBreakpointConfigEntry } from '../types';\n\nexport const ET_OVERLAY_LEFT_SHEET_CLASS = 'et-overlay--left-sheet';\nexport const ET_OVERLAY_RIGHT_SHEET_CLASS = 'et-overlay--right-sheet';\nexport const ET_OVERLAY_TOP_SHEET_CLASS = 'et-overlay--top-sheet';\nexport const ET_OVERLAY_BOTTOM_SHEET_CLASS = 'et-overlay--bottom-sheet';\nexport const ET_OVERLAY_DIALOG_CLASS = 'et-overlay--dialog';\nexport const ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS = 'et-overlay--full-screen-dialog';\n\nexport const ET_OVERLAY_CONFIG_CLASS_KEYS = new Set([\n 'containerClass',\n 'paneClass',\n 'overlayClass',\n 'backdropClass',\n 'documentClass',\n 'bodyClass',\n]);\n\nexport const ET_OVERLAY_LAYOUT_CLASSES = new Set([\n ET_OVERLAY_LEFT_SHEET_CLASS,\n ET_OVERLAY_RIGHT_SHEET_CLASS,\n ET_OVERLAY_TOP_SHEET_CLASS,\n ET_OVERLAY_BOTTOM_SHEET_CLASS,\n ET_OVERLAY_DIALOG_CLASS,\n ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS,\n]);\n\nexport class OverlayPositionBuilder {\n private readonly _overlay = inject(Overlay);\n\n readonly DEFAULTS = {\n dialog: {\n width: undefined,\n height: undefined,\n maxHeight: '80vh',\n maxWidth: '80vw',\n minHeight: undefined,\n minWidth: undefined,\n containerClass: ET_OVERLAY_DIALOG_CLASS,\n positionStrategy: () => this._overlay.position().global().centerHorizontally().centerVertically(),\n },\n fullScreenDialog: {\n width: '100%',\n height: '100%',\n maxHeight: undefined,\n maxWidth: undefined,\n minHeight: undefined,\n minWidth: undefined,\n containerClass: ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS,\n positionStrategy: () => this._overlay.position().global().left('0').top('0').bottom('0').right('0'),\n documentClass: 'et-overlay--full-screen-dialog-document',\n applyTransformOrigin: true,\n },\n bottomSheet: {\n width: '100%',\n height: undefined,\n maxHeight: 'calc(100% - 72px)',\n maxWidth: '640px',\n minHeight: undefined,\n minWidth: undefined,\n containerClass: ET_OVERLAY_BOTTOM_SHEET_CLASS,\n positionStrategy: () => this._overlay.position().global().centerHorizontally().bottom('0'),\n dragToDismiss: {\n direction: 'to-bottom',\n },\n },\n topSheet: {\n width: '100%',\n height: undefined,\n maxHeight: 'calc(100% - 72px)',\n maxWidth: '640px',\n minHeight: undefined,\n minWidth: undefined,\n containerClass: ET_OVERLAY_TOP_SHEET_CLASS,\n positionStrategy: () => this._overlay.position().global().centerHorizontally().top('0'),\n dragToDismiss: {\n direction: 'to-top',\n },\n },\n leftSheet: {\n width: '100%',\n height: '100%',\n maxHeight: undefined,\n maxWidth: '640px',\n minHeight: undefined,\n minWidth: undefined,\n containerClass: ET_OVERLAY_LEFT_SHEET_CLASS,\n positionStrategy: () => this._overlay.position().global().left('0').centerVertically(),\n dragToDismiss: {\n direction: 'to-left',\n },\n },\n rightSheet: {\n width: '100%',\n height: '100%',\n maxHeight: undefined,\n maxWidth: '640px',\n minHeight: undefined,\n minWidth: undefined,\n containerClass: ET_OVERLAY_RIGHT_SHEET_CLASS,\n positionStrategy: () => this._overlay.position().global().right('0').centerVertically(),\n dragToDismiss: {\n direction: 'to-right',\n },\n },\n } satisfies Record<string, OverlayBreakpointConfig>;\n\n transformingBottomSheetToDialog(customConfig?: {\n bottomSheet?: OverlayBreakpointConfig;\n dialog?: OverlayBreakpointConfig;\n breakpoint?: Breakpoint | number;\n }) {\n const data: OverlayBreakpointConfigEntry[] = [\n {\n config: this.mergeConfigs(this.DEFAULTS.bottomSheet, customConfig?.bottomSheet ?? {}),\n },\n {\n breakpoint: customConfig?.breakpoint ?? 'md',\n config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig?.dialog ?? {}),\n },\n ];\n\n return data;\n }\n\n transformingFullScreenDialogToRightSheet(customConfig?: {\n fullScreenDialog?: OverlayBreakpointConfig;\n rightSheet?: OverlayBreakpointConfig;\n breakpoint?: Breakpoint | number;\n }) {\n const data: OverlayBreakpointConfigEntry[] = [\n {\n config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig?.fullScreenDialog ?? {}),\n },\n {\n breakpoint: customConfig?.breakpoint ?? 'md',\n config: this.mergeConfigs(this.DEFAULTS.rightSheet, customConfig?.rightSheet ?? {}),\n },\n ];\n\n return data;\n }\n\n transformingFullScreenDialogToDialog(customConfig?: {\n fullScreenDialog?: OverlayBreakpointConfig;\n dialog?: OverlayBreakpointConfig;\n breakpoint?: Breakpoint | number;\n }) {\n const data: OverlayBreakpointConfigEntry[] = [\n {\n config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig?.fullScreenDialog ?? {}),\n },\n {\n breakpoint: customConfig?.breakpoint ?? 'md',\n config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig?.dialog ?? {}),\n },\n ];\n\n return data;\n }\n\n dialog(customConfig?: OverlayBreakpointConfig) {\n const data: OverlayBreakpointConfigEntry[] = [\n {\n config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig ?? {}),\n },\n ];\n\n return data;\n }\n\n fullScreenDialog(customConfig?: OverlayBreakpointConfig) {\n const data: OverlayBreakpointConfigEntry[] = [\n {\n config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig ?? {}),\n },\n ];\n\n return data;\n }\n\n bottomSheet(customConfig?: OverlayBreakpointConfig) {\n const data: OverlayBreakpointConfigEntry[] = [\n {\n config: this.mergeConfigs(this.DEFAULTS.bottomSheet, customConfig ?? {}),\n },\n ];\n\n return data;\n }\n\n topSheet(customConfig?: OverlayBreakpointConfig) {\n const data: OverlayBreakpointConfigEntry[] = [\n {\n config: this.mergeConfigs(this.DEFAULTS.topSheet, customConfig ?? {}),\n },\n ];\n\n return data;\n }\n\n leftSheet(customConfig?: OverlayBreakpointConfig) {\n const data: OverlayBreakpointConfigEntry[] = [\n {\n config: this.mergeConfigs(this.DEFAULTS.leftSheet, customConfig ?? {}),\n },\n ];\n\n return data;\n }\n\n rightSheet(customConfig?: OverlayBreakpointConfig) {\n const data: OverlayBreakpointConfigEntry[] = [\n {\n config: this.mergeConfigs(this.DEFAULTS.rightSheet, customConfig ?? {}),\n },\n ];\n\n return data;\n }\n\n mergeConfigs(...configs: OverlayBreakpointConfig[]) {\n const combinedConfig: OverlayBreakpointConfig = {};\n\n for (const config of configs) {\n for (const configKey of Object.keys(config)) {\n const key = configKey as keyof OverlayBreakpointConfig;\n const newConfigValue = config[key];\n\n if (ET_OVERLAY_CONFIG_CLASS_KEYS.has(configKey)) {\n const existing = combinedConfig[key];\n\n if (existing && Array.isArray(existing)) {\n if (Array.isArray(newConfigValue)) {\n existing.push(...newConfigValue);\n } else if (typeof newConfigValue === 'string') {\n existing.push(newConfigValue);\n }\n\n const totalLayoutClassesInExisting = existing.filter((value) =>\n ET_OVERLAY_LAYOUT_CLASSES.has(value),\n ).length;\n\n if (totalLayoutClassesInExisting > 1) {\n throw new Error(`Multiple layout classes are not allowed in the same config key: ${key}`);\n }\n } else if (typeof newConfigValue === 'string') {\n (combinedConfig[key] as any) = [newConfigValue];\n }\n } else {\n (combinedConfig[key] as any) = newConfigValue;\n }\n }\n }\n\n return combinedConfig;\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { DestroyRef, InjectionToken, Provider, computed, inject, isSignal, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Router } from '@angular/router';\nimport { RouterStateService, createComponentId, fromNextFrame } from '@ethlete/core';\nimport { map, skip, switchMap, tap } from 'rxjs';\nimport { OverlayRef } from './overlay-ref';\n\nexport const OVERLAY_ROUTER_CONFIG_TOKEN = new InjectionToken<OverlayRouterConfig>('OVERLAY_ROUTER_CONFIG_TOKEN');\n\nexport type OverlayRoute = {\n /**\n * The component to render.\n */\n component: ComponentType<unknown>;\n\n /**\n * The route of the page.\n *\n * @example\n * \"/\" // The root route\n * \"/two\" // The route \"two\"\n */\n path: `/${string}`;\n\n /**\n * The inputs to pass to the component.\n */\n inputs?: Record<string, unknown>;\n};\n\nexport type OverlayRouterConfig = {\n /**\n * The routes to be able to navigate to.\n */\n routes: OverlayRoute[];\n\n /**\n * The route on which to start.\n * @default \"\" // The root route\n * @default routes[0].path // The first route if no root route is defined\n */\n initialRoute?: string;\n};\n\nexport type OverlayRouterNavigationDirection = 'forward' | 'backward';\n\nexport type OverlayRouterNavigateConfig = {\n navigationDirection?: OverlayRouterNavigationDirection;\n};\n\nexport type OverlayRouterTransitionType = 'slide' | 'fade' | 'overlay' | 'vertical' | 'none';\n\nexport class OverlayRouterService {\n _router = inject(Router);\n _routerStateService = inject(RouterStateService);\n _id = createComponentId('ovr');\n _overlayRef = inject(OverlayRef);\n _config = inject(OVERLAY_ROUTER_CONFIG_TOKEN);\n\n _syncCurrentRoute = signal(this._getInitialRoute());\n _nativeBrowserTempBackNavigationStack = signal<string[]>([]);\n\n // The current route, but delayed by one frame to ensure that the needed animation classes are applied.\n currentRoute = toSignal(\n toObservable(this._syncCurrentRoute).pipe(switchMap((r) => fromNextFrame().pipe(map(() => r)))),\n { initialValue: this._getInitialRoute() },\n );\n\n extraRoutes = signal<OverlayRoute[]>([]);\n\n transitionType = signal<OverlayRouterTransitionType>('slide');\n\n routes = computed(() => {\n const allRoutes = [...this._config.routes, ...this.extraRoutes()];\n\n const allRoundsWithTransformedInputs = allRoutes.map((route) => {\n return {\n ...route,\n inputs: Object.entries(route.inputs ?? {}).reduce(\n (acc, [key, value]) => {\n if (isSignal(value)) {\n acc[key] = value();\n } else {\n acc[key] = value;\n }\n\n return acc;\n },\n {} as Record<string, unknown>,\n ),\n };\n });\n\n return allRoundsWithTransformedInputs;\n });\n\n currentPage = computed(() => {\n const currentRoute = this._syncCurrentRoute();\n\n for (const route of this.routes()) {\n if (route.path === currentRoute) {\n return route;\n }\n }\n\n return null;\n });\n\n navigationDirection = signal<OverlayRouterNavigationDirection>('forward');\n\n constructor() {\n this._disableCloseOnNavigation();\n this._updateBrowserUrl(this._syncCurrentRoute());\n\n this._routerStateService\n .selectQueryParam(this._id)\n .pipe(\n takeUntilDestroyed(),\n skip(1),\n tap((route) => {\n // The user navigated back or forward using the browser history\n if (!route) {\n // The route query param no longer exists - close the overlay\n this._overlayRef.close();\n } else if (route !== this._syncCurrentRoute()) {\n const navStack = this._nativeBrowserTempBackNavigationStack();\n const currentRoute = this._syncCurrentRoute();\n\n if (!navStack.length) {\n // If the nav stack is empty the only way to navigate is back.\n this.navigate(route, { navigationDirection: 'backward' });\n this._nativeBrowserTempBackNavigationStack.set([currentRoute]);\n } else {\n const lastItem = navStack[navStack.length - 1];\n\n if (route === lastItem) {\n // The new route matches the last item in the back nav stack.\n // This means we are going forward again.\n this.navigate(route, { navigationDirection: 'forward' });\n this._nativeBrowserTempBackNavigationStack.set(navStack.slice(0, -1));\n } else {\n // Else we are going back.\n this.navigate(route, { navigationDirection: 'backward' });\n this._nativeBrowserTempBackNavigationStack.set([...navStack, currentRoute]);\n }\n }\n } else {\n // The navigation was triggered by ui interaction. Clear the back nav stack.\n this._nativeBrowserTempBackNavigationStack.set([]);\n }\n }),\n )\n .subscribe();\n\n inject(DestroyRef).onDestroy(() => {\n // Remove the dialog route from the browser url\n this._updateBrowserUrl(undefined);\n });\n }\n\n navigate(route: string | (string | number)[], config?: OverlayRouterNavigateConfig) {\n const resolvedRoute = this.resolvePath(route);\n if (config?.navigationDirection) {\n this.navigationDirection.set(config.navigationDirection);\n } else if (resolvedRoute.type === 'back') {\n this.navigationDirection.set('backward');\n } else {\n this.navigationDirection.set('forward');\n }\n\n this._updateCurrentRoute(resolvedRoute.route);\n }\n\n resolvePath(route: string | (string | number)[]) {\n if (Array.isArray(route)) {\n route = route.join('/');\n }\n\n if (route === '') {\n route = '/';\n }\n\n const isAbsolute = route.startsWith('/');\n const isReplaceCurrent = route.startsWith('./');\n const isBack = route.startsWith('../');\n const isForward = !isAbsolute && !isReplaceCurrent && !isBack;\n\n const curr = this._syncCurrentRoute();\n\n if (isForward) {\n route = `${curr}/${route}`;\n } else if (isReplaceCurrent) {\n const currSegments = curr.split('/').filter((s) => s !== '');\n currSegments.pop();\n\n const newSegments = route.split('/').filter((s) => s !== '.');\n\n route = `/${currSegments.concat(newSegments).join('/')}`;\n } else if (isBack) {\n const currSegments = curr.split('/').filter((s) => s !== '');\n const newSegments = route.split('/').filter((s) => s !== '..');\n const stepsBack = route.split('/').filter((s) => s === '..').length;\n\n for (let i = 0; i < stepsBack; i++) {\n currSegments.pop();\n }\n\n route = `/${currSegments.concat(newSegments).join('/')}`;\n }\n\n return {\n route,\n type:\n isBack || route === '/'\n ? 'back'\n : isReplaceCurrent\n ? 'replace-current'\n : isAbsolute\n ? 'absolute'\n : isForward\n ? 'forward'\n : 'unknown',\n } as const;\n }\n\n addRoute(route: OverlayRoute) {\n this.extraRoutes.set([...this.extraRoutes(), route]);\n }\n\n removeRoute(path: string) {\n this.extraRoutes.set(this.extraRoutes().filter((r) => r.path !== path));\n }\n\n _updateCurrentRoute(route: string) {\n if (route === this._syncCurrentRoute()) return;\n\n if (this.routes().findIndex((r) => r.path === route) === -1) {\n console.error(`The route \"${route}\" does not exist.`, this._config);\n return;\n }\n\n this._syncCurrentRoute.set(route);\n\n this._updateBrowserUrl(route);\n }\n\n _getInitialRoute() {\n return this._config.initialRoute ?? this._config.routes[0]?.path ?? '/';\n }\n\n _navigateToInitialRoute() {\n this._updateCurrentRoute(this._getInitialRoute());\n }\n\n _updateBrowserUrl(route: string | undefined) {\n this._router.navigate([this._routerStateService.route], {\n queryParams: { [this._id]: route },\n queryParamsHandling: 'merge',\n });\n }\n\n private _disableCloseOnNavigation() {\n // @ts-expect-error - private property\n this._overlayRef._cdkRef.overlayRef._locationChanges?.unsubscribe?.();\n }\n}\n\nexport const provideOverlayRouterConfig = (config: OverlayRouterConfig): Provider[] => {\n return [\n {\n provide: OVERLAY_ROUTER_CONFIG_TOKEN,\n useValue: config,\n },\n ];\n};\n","import { ElementRef } from '@angular/core';\nimport { OVERLAY_DEFAULT_OPTIONS } from '../constants';\nimport { OverlayConfig } from '../types';\nimport { createOverlayConfig } from './overlay-config';\nimport { OverlayRef } from './overlay-ref';\n\nexport function getClosestOverlay(element: ElementRef<HTMLElement>, openOverlays: OverlayRef<unknown>[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('et-overlay')) {\n parent = parent.parentElement;\n }\n\n return parent ? openOverlays.find((overlay) => overlay.id === parent?.id) : null;\n}\n\nexport const provideOverlayDefaultConfig = (config: Partial<OverlayConfig> | null | undefined = {}) => {\n return { provide: OVERLAY_DEFAULT_OPTIONS, useValue: createOverlayConfig(config) };\n};\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { Dialog as CdkDialog, DialogConfig as CdkDialogConfig } from '@angular/cdk/dialog';\nimport { ComponentType } from '@angular/cdk/overlay';\nimport { ComponentRef, Injectable, OnDestroy, TemplateRef, inject } from '@angular/core';\nimport { ROOT_BOUNDARY_TOKEN, RootBoundaryDirective, ViewportService, createDestroy, equal } from '@ethlete/core';\nimport { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';\nimport { Observable, Subject, combineLatest, defer, map, of, pairwise, startWith, takeUntil, tap } from 'rxjs';\nimport { OverlayContainerComponent } from '../components/overlay-container';\nimport { OVERLAY_CONFIG, OVERLAY_DATA, OVERLAY_DEFAULT_OPTIONS, OVERLAY_SCROLL_STRATEGY } from '../constants';\nimport { OverlayConfig } from '../types';\nimport {\n ET_OVERLAY_BOTTOM_SHEET_CLASS,\n ET_OVERLAY_LEFT_SHEET_CLASS,\n ET_OVERLAY_RIGHT_SHEET_CLASS,\n ET_OVERLAY_TOP_SHEET_CLASS,\n OverlayPositionBuilder,\n OverlayRef,\n createOverlayConfig,\n} from '../utils';\n\nlet uniqueId = 0;\nconst ID_PREFIX = 'et-overlay-';\n\nconst setStyle = (el: HTMLElement, style: string, value: string | number | null | undefined) => {\n if (value === null || value === undefined) {\n el.style.removeProperty(style);\n } else {\n el.style.setProperty(style, coerceCssPixelValue(value));\n }\n};\n\nconst setClass = (el: HTMLElement, prevClass?: string | string[], currClass?: string | string[]) => {\n if (!equal(prevClass, currClass)) {\n if (prevClass) {\n if (Array.isArray(prevClass)) {\n el.classList.remove(...prevClass);\n } else {\n el.classList.remove(prevClass);\n }\n }\n\n if (currClass) {\n if (Array.isArray(currClass)) {\n el.classList.add(...currClass);\n } else {\n el.classList.add(currClass);\n }\n }\n }\n};\n\nconst isHtmlElement = (element: HTMLElement | unknown): element is HTMLElement => {\n return element instanceof HTMLElement;\n};\n\nconst isTouchEvent = (event: Event): event is TouchEvent => {\n return event.type[0] === 't';\n};\n\nconst isPointerEvent = (event: Event): event is PointerEvent => {\n return event.type[0] === 'c';\n};\n\n@Injectable()\nexport class OverlayService implements OnDestroy {\n private readonly _destroy$ = createDestroy();\n private readonly _defaultOptions = inject(OVERLAY_DEFAULT_OPTIONS, { optional: true });\n private readonly _scrollStrategy = inject(OVERLAY_SCROLL_STRATEGY);\n private readonly _parentOverlayService = inject(OverlayService, { optional: true, skipSelf: true });\n private readonly _dialog = inject(CdkDialog);\n private readonly _viewportService = inject(ViewportService);\n\n private readonly _openOverlaysAtThisLevel: OverlayRef[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenedAtThisLevel = new Subject<OverlayRef>();\n\n readonly positions = new OverlayPositionBuilder();\n\n readonly afterAllClosed = defer(() =>\n this.openOverlays.length ? this._getAfterAllClosed() : this._getAfterAllClosed().pipe(startWith(undefined)),\n ) as Observable<void>;\n\n get openOverlays(): OverlayRef[] {\n return this._parentOverlayService ? this._parentOverlayService.openOverlays : this._openOverlaysAtThisLevel;\n }\n\n get afterOpened(): Subject<OverlayRef> {\n return this._parentOverlayService ? this._parentOverlayService.afterOpened : this._afterOpenedAtThisLevel;\n }\n\n ngOnDestroy() {\n this._closeOverlays(this._openOverlaysAtThisLevel);\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n }\n\n open<T, D = unknown, R = unknown>(component: ComponentType<T>, config: OverlayConfig<D>): OverlayRef<T, R>;\n open<T, D = unknown, R = unknown>(template: TemplateRef<T>, config: OverlayConfig<D>): OverlayRef<T, R>;\n open<T, D = unknown, R = unknown>(\n template: ComponentType<T> | TemplateRef<T>,\n config: OverlayConfig<D>,\n ): OverlayRef<T, R>;\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config: OverlayConfig<D>,\n ): OverlayRef<T, R> {\n let overlayRef: OverlayRef<T, R>;\n\n const composedConfig = createOverlayConfig<D>(this._defaultOptions as OverlayConfig<D>, config);\n composedConfig.id = composedConfig.id || `${ID_PREFIX}${uniqueId++}`;\n composedConfig.scrollStrategy = composedConfig.scrollStrategy || this._scrollStrategy();\n\n const cdkRef = this._dialog.open<R, D, T>(componentOrTemplateRef, {\n ...composedConfig,\n disableClose: true,\n closeOnDestroy: false,\n panelClass: 'et-overlay-pane',\n container: {\n type: OverlayContainerComponent,\n providers: () => [\n { provide: OVERLAY_CONFIG, useValue: composedConfig },\n { provide: CdkDialogConfig, useValue: composedConfig },\n ],\n },\n templateContext: () => ({ dialogRef: overlayRef }),\n providers: (ref, cdkConfig, overlayContainer) => {\n const container = overlayContainer as OverlayContainerComponent;\n overlayRef = new OverlayRef(ref, composedConfig, container);\n\n return [\n { provide: OverlayContainerComponent, useValue: overlayContainer },\n { provide: THEME_PROVIDER, useValue: container._themeProvider },\n { provide: ProvideThemeDirective, useValue: container._themeProvider },\n { provide: ROOT_BOUNDARY_TOKEN, useValue: container._rootBoundary },\n { provide: RootBoundaryDirective, useValue: container._rootBoundary },\n { provide: OVERLAY_DATA, useValue: cdkConfig.data },\n { provide: OverlayRef, useValue: overlayRef },\n ...(composedConfig.providers ?? []),\n ];\n },\n });\n\n /* eslint-disable @typescript-eslint/no-non-null-assertion*/\n (overlayRef! as { componentRef: ComponentRef<T> }).componentRef = cdkRef.componentRef!;\n overlayRef!.componentInstance = cdkRef.componentInstance!;\n\n (cdkRef.containerInstance as OverlayContainerComponent).overlayRef = overlayRef!;\n\n const containerEl = overlayRef!._containerInstance.elementRef.nativeElement as HTMLElement;\n const overlayPaneEl = cdkRef.overlayRef.overlayElement;\n const backdropEl = cdkRef.overlayRef.backdropElement;\n const overlayWrapper = cdkRef.overlayRef.hostElement;\n const defaultAnimationBuffer = 50; // 50px since the default animation uses spring physics and thus will overshoot.\n const useDefaultAnimation = composedConfig.customAnimated !== true;\n const origin = composedConfig.origin;\n\n combineLatest(\n composedConfig.positions.map((breakpoint) =>\n (breakpoint.breakpoint ? this._viewportService.observe({ min: breakpoint.breakpoint }) : of(true)).pipe(\n map((isActive) => ({\n isActive,\n config: breakpoint.config,\n size:\n typeof breakpoint.breakpoint === 'number'\n ? breakpoint.breakpoint\n : breakpoint.breakpoint === undefined\n ? 0\n : this._viewportService.getBreakpointSize(breakpoint.breakpoint, 'min'),\n })),\n ),\n ),\n )\n .pipe(\n takeUntil(overlayRef!.afterClosed()),\n takeUntil(this._destroy$),\n map((entries) => {\n const activeBreakpoints = entries.filter((entry) => entry.isActive);\n const highestBreakpoint = activeBreakpoints.reduce((prev, curr) => (prev.size > curr.size ? prev : curr));\n\n return highestBreakpoint.config;\n }),\n startWith(null),\n pairwise(),\n tap(([prevConfig, currConfig]) => {\n if (!currConfig) return;\n\n const containerClass = currConfig.containerClass;\n\n const applyDefaultMaxWidths = () => {\n setStyle(overlayPaneEl, 'max-width', currConfig.maxWidth);\n setStyle(overlayPaneEl, 'max-height', currConfig.maxHeight);\n };\n\n const combineOrMakeCalc = (value: string | number | null | undefined, append: string) => {\n if (!value) return append;\n\n if (typeof value === 'number') {\n return `calc(${value}px + ${append})`;\n } else if (value.startsWith('calc(')) {\n return `${value.slice(0, value.length - 1)} + ${append})`;\n }\n\n return `calc(${value} + ${append})`;\n };\n\n if (origin) {\n // TODO: If getBoundingClientRect is used it should use the center of the element.\n const originX = isHtmlElement(origin)\n ? origin.getBoundingClientRect().left\n : isTouchEvent(origin)\n ? origin.targetTouches[0]!.clientX\n : isPointerEvent(origin)\n ? origin.clientX !== 0\n ? origin.clientX\n : (origin.target as HTMLElement).getBoundingClientRect().left\n : -1;\n const originY = isHtmlElement(origin)\n ? origin.getBoundingClientRect().top\n : isTouchEvent(origin)\n ? origin.targetTouches[0]!.clientY\n : isPointerEvent(origin)\n ? origin.clientY !== 0\n ? origin.clientY\n : (origin.target as HTMLElement).getBoundingClientRect().top\n : -1;\n\n if (originX !== -1 && originY !== -1 && currConfig.applyTransformOrigin) {\n setStyle(containerEl, 'transform-origin', `${originX}px ${originY}px`);\n } else {\n setStyle(containerEl, 'transform-origin', null);\n }\n }\n\n if (useDefaultAnimation && containerClass?.length) {\n if (\n containerClass?.includes(ET_OVERLAY_LEFT_SHEET_CLASS) ||\n containerClass?.includes(ET_OVERLAY_RIGHT_SHEET_CLASS)\n ) {\n setStyle(\n overlayPaneEl,\n 'max-width',\n combineOrMakeCalc(currConfig.maxWidth, `${defaultAnimationBuffer}px`),\n );\n setStyle(overlayPaneEl, 'max-height', currConfig.maxHeight);\n } else if (\n containerClass?.includes(ET_OVERLAY_TOP_SHEET_CLASS) ||\n containerClass?.includes(ET_OVERLAY_BOTTOM_SHEET_CLASS)\n ) {\n setStyle(\n overlayPaneEl,\n 'max-height',\n combineOrMakeCalc(currConfig.maxHeight, `${defaultAnimationBuffer}px`),\n );\n\n setStyle(overlayPaneEl, 'max-width', currConfig.maxWidth);\n } else {\n applyDefaultMaxWidths();\n }\n } else {\n applyDefaultMaxWidths();\n }\n\n setStyle(overlayPaneEl, 'min-width', currConfig.minWidth);\n setStyle(overlayPaneEl, 'min-height', currConfig.minHeight);\n\n setStyle(overlayPaneEl, 'width', currConfig.width);\n setStyle(overlayPaneEl, 'height', currConfig.height);\n\n setClass(containerEl, prevConfig?.containerClass, currConfig?.containerClass);\n setClass(overlayPaneEl, prevConfig?.paneClass, currConfig?.paneClass);\n setClass(overlayWrapper, prevConfig?.overlayClass, currConfig?.overlayClass);\n\n // FIXME: These classes should only be removed if no open overlays require them inside their config.\n setClass(document.documentElement, prevConfig?.documentClass, currConfig?.documentClass);\n setClass(document.body, prevConfig?.bodyClass, currConfig?.bodyClass);\n\n if (backdropEl) {\n setClass(backdropEl, prevConfig?.backdropClass, currConfig?.backdropClass);\n }\n\n if (!equal(prevConfig?.position, currConfig?.position)) {\n overlayRef.updatePosition(currConfig.position);\n }\n\n if (currConfig.positionStrategy) {\n cdkRef.overlayRef.updatePositionStrategy(currConfig.positionStrategy());\n } else {\n cdkRef.overlayRef.updatePosition();\n }\n\n if (currConfig.dragToDismiss) {\n overlayRef._containerInstance._enableDragToDismiss(currConfig.dragToDismiss);\n } else {\n overlayRef._containerInstance._disableDragToDismiss();\n }\n }),\n )\n .subscribe();\n\n this.openOverlays.push(overlayRef!);\n this.afterOpened.next(overlayRef!);\n\n overlayRef!.beforeClosed().subscribe(() => {\n // FIXME: These classes should only be removed if no open overlays require them inside their config.\n const documentClasses = composedConfig.positions.map((position) => position.config.documentClass);\n\n for (const klass of documentClasses) {\n if (!klass) continue;\n\n if (Array.isArray(klass)) {\n document.documentElement.classList.remove(...klass);\n } else {\n document.documentElement.classList.remove(klass);\n }\n }\n\n const bodyClasses = composedConfig.positions.map((position) => position.config.bodyClass);\n\n for (const klass of bodyClasses) {\n if (!klass) continue;\n\n if (Array.isArray(klass)) {\n document.body.classList.remove(...klass);\n } else {\n document.body.classList.remove(klass);\n }\n }\n });\n\n overlayRef!.afterClosed().subscribe(() => {\n const index = this.openOverlays.indexOf(overlayRef);\n\n if (index === -1) return;\n\n this.openOverlays.splice(index, 1);\n\n if (!this.openOverlays.length) {\n this._getAfterAllClosed().next();\n }\n });\n\n return overlayRef!;\n\n /* eslint-enable @typescript-eslint/no-non-null-assertion*/\n }\n\n closeAll(): void {\n this._closeOverlays(this.openOverlays);\n }\n\n getOverlayById(id: string): OverlayRef | undefined {\n return this.openOverlays.find((overlay) => overlay.id === id);\n }\n\n private _closeOverlays(overlays: OverlayRef[]) {\n let i = overlays.length;\n\n while (i--) {\n overlays[i]?.close();\n }\n }\n\n private _getAfterAllClosed(): Subject<void> {\n const parent = this._parentOverlayService;\n return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;\n }\n}\n","import {\n Component,\n ElementRef,\n InjectionToken,\n Input,\n OnInit,\n computed,\n effect,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport {\n CurrentElementVisibility,\n RootBoundaryDirective,\n isElementVisible,\n nextFrame,\n signalElementIntersection,\n signalElementScrollState,\n signalHostClasses,\n} from '@ethlete/core';\nimport { OverlayService } from '../../services';\nimport { OverlayRef, getClosestOverlay } from '../../utils';\n\nexport const OVERLAY_BODY_TOKEN = new InjectionToken<OverlayBodyComponent>('OVERLAY_BODY_TOKEN');\n\nexport type OverlayBodyDividerType = 'static' | 'dynamic' | false;\n\n@Component({\n selector: '[et-overlay-body], et-overlay-body',\n template: `\n <div class=\"et-overlay-body-container\">\n <div #firstElement class=\"et-overlay-body-start-element\"></div>\n <ng-content />\n <div #lastElement class=\"et-overlay-body-end-element\"></div>\n </div>\n `,\n standalone: true,\n providers: [\n {\n provide: OVERLAY_BODY_TOKEN,\n useExisting: OverlayBodyComponent,\n },\n ],\n hostDirectives: [RootBoundaryDirective],\n host: {\n class: 'et-overlay-body',\n },\n})\nexport class OverlayBodyComponent implements OnInit {\n private _overlayRef = inject(OverlayRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _overlayService = inject(OverlayService);\n\n @Input({ alias: 'dividers' })\n set __dividers(value: OverlayBodyDividerType) {\n this.dividers.set(value);\n }\n protected readonly dividers = signal<OverlayBodyDividerType>(false);\n\n readonly firstElement = viewChild<ElementRef<HTMLElement> | null>('firstElement');\n readonly lastElement = viewChild<ElementRef<HTMLElement> | null>('lastElement');\n\n private readonly _dividersEnabled = computed(() => this.dividers() === 'dynamic' || this.dividers() === 'static');\n private readonly _dynamicDividersEnabled = computed(() => this.dividers() === 'dynamic');\n\n private readonly containerScrollState = signalElementScrollState(this._elementRef);\n private readonly firstElementIntersection = signalElementIntersection(this.firstElement, {\n root: this._elementRef,\n enabled: this._dynamicDividersEnabled,\n });\n private readonly firstElementVisibility = signal<CurrentElementVisibility | null>(null);\n private readonly lastElementIntersection = signalElementIntersection(this.lastElement, {\n root: this._elementRef,\n enabled: this._dynamicDividersEnabled,\n });\n private readonly lastElementVisibility = signal<CurrentElementVisibility | null>(null);\n\n private readonly canScroll = computed(() => this.containerScrollState().canScrollHorizontally);\n\n private readonly isAtStart = computed(() => {\n if (!this.canScroll()) {\n return true;\n }\n\n const intersection = this.firstElementIntersection()[0];\n\n if (!intersection) {\n return this.firstElementVisibility()?.inline ?? true;\n }\n\n return intersection.isIntersecting;\n });\n private readonly isAtEnd = computed(() => {\n if (!this.canScroll()) {\n return true;\n }\n\n const intersection = this.lastElementIntersection()[0];\n\n if (!intersection) {\n return this.lastElementVisibility()?.inline ?? true;\n }\n\n return intersection.isIntersecting;\n });\n\n private readonly enableDividerAnimations = signal(false);\n\n readonly hostClassBindings = signalHostClasses({\n 'et-overlay-body--render-dividers': this._dividersEnabled,\n 'et-overlay-body--dynamic-dividers': this._dynamicDividersEnabled,\n 'et-overlay-body--enable-divider-animations': this.enableDividerAnimations,\n\n 'et-scrollable-body--can-scroll': this.canScroll,\n 'et-scrollable-body--is-at-start': computed(() => (this._dynamicDividersEnabled() ? this.isAtStart() : false)),\n 'et-scrollable-body--is-at-end': computed(() => (this._dynamicDividersEnabled() ? this.isAtEnd() : false)),\n });\n\n constructor() {\n effect(\n () => {\n const scrollable = this._elementRef.nativeElement;\n const firstElement = this.firstElement()?.nativeElement;\n const lastElement = this.lastElement()?.nativeElement;\n\n if (!scrollable || !firstElement || !lastElement) {\n return;\n }\n\n this.firstElementVisibility.set(\n isElementVisible({\n container: scrollable,\n element: firstElement,\n }),\n );\n\n this.lastElementVisibility.set(\n isElementVisible({\n container: scrollable,\n element: lastElement,\n }),\n );\n\n // We need to wait one frame before enabling animations to prevent a animation from playing during initial render.\n nextFrame(() => this.enableDividerAnimations.set(true));\n },\n { allowSignalWrites: true },\n );\n }\n\n ngOnInit() {\n if (!this._overlayRef) {\n const closestRef = getClosestOverlay(this._elementRef, this._overlayService.openOverlays);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._overlayRef = closestRef;\n }\n }\n}\n","import { Directive, ElementRef, InjectionToken, OnInit, inject } from '@angular/core';\nimport { OverlayService } from '../../services';\nimport { OverlayRef, getClosestOverlay } from '../../utils';\n\nexport const OVERLAY_HEADER_TOKEN = new InjectionToken<OverlayHeaderDirective>('OVERLAY_HEADER_TOKEN');\n\n@Directive({\n selector: '[etOverlayHeader], et-overlay-header',\n standalone: true,\n providers: [\n {\n provide: OVERLAY_HEADER_TOKEN,\n useExisting: OverlayHeaderDirective,\n },\n ],\n host: {\n class: 'et-overlay-header',\n },\n})\nexport class OverlayHeaderDirective implements OnInit {\n private _overlayRef = inject(OverlayRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _overlayService = inject(OverlayService);\n\n ngOnInit() {\n if (!this._overlayRef) {\n const closestRef = getClosestOverlay(this._elementRef, this._overlayService.openOverlays);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._overlayRef = closestRef;\n }\n }\n}\n","import { Directive, ElementRef, InjectionToken, OnInit, booleanAttribute, inject, input } from '@angular/core';\nimport { signalHostClasses } from '@ethlete/core';\nimport { OverlayService } from '../../services';\nimport { OverlayRef, getClosestOverlay } from '../../utils';\n\nexport const OVERLAY_MAIN_TOKEN = new InjectionToken<OverlayMainDirective>('OVERLAY_MAIN_TOKEN');\n\n@Directive({\n selector: '[etOverlayMain], et-overlay-main',\n standalone: true,\n providers: [\n {\n provide: OVERLAY_MAIN_TOKEN,\n useExisting: OverlayMainDirective,\n },\n ],\n})\nexport class OverlayMainDirective implements OnInit {\n private _parent = inject(OVERLAY_MAIN_TOKEN, { optional: true, skipSelf: true });\n\n private _overlayRef = inject(OverlayRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _overlayService = inject(OverlayService);\n\n enabled = input(true, { alias: 'etOverlayMain', transform: booleanAttribute });\n\n hostClassBindings = signalHostClasses({\n 'et-overlay-main': this.enabled,\n });\n\n ngOnInit() {\n if (this._parent) {\n throw new Error('An overlay must not contain nested <et-overlay-main> elements or etOverlayMain directives.');\n }\n\n if (!this._overlayRef) {\n const closestRef = getClosestOverlay(this._elementRef, this._overlayService.openOverlays);\n\n if (!closestRef) {\n throw new Error('No closest ref found');\n }\n\n this._overlayRef = closestRef;\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, input } from '@angular/core';\nimport { OverlayBodyComponent, OverlayBodyDividerType } from '../overlay-body';\nimport { OverlayHeaderDirective } from '../overlay-header';\nimport { OverlayHeaderTemplateDirective } from '../overlay-header-template';\nimport { OverlayMainDirective } from '../overlay-main';\n\n@Component({\n selector: 'et-overlay-sidebar-page',\n template: `\n @if (headerTemplate()?.template; as tpl) {\n <et-overlay-header>\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </et-overlay-header>\n }\n\n <et-overlay-body [dividers]=\"pageDividers()\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate()\" />\n </et-overlay-body>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-overlay-sidebar-page-host',\n },\n imports: [OverlayHeaderDirective, OverlayBodyComponent, NgTemplateOutlet],\n hostDirectives: [OverlayMainDirective],\n})\nexport class OverlaySidebarPageComponent {\n headerTemplate = input.required<OverlayHeaderTemplateDirective | null>();\n bodyTemplate = input.required<TemplateRef<unknown> | null>();\n pageDividers = input<OverlayBodyDividerType>(false);\n}\n","import { InjectionToken, Provider, TemplateRef, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Breakpoint, ViewportService } from '@ethlete/core';\nimport { distinctUntilChanged, tap } from 'rxjs';\nimport { OverlayBodyDividerType } from '../partials/overlay-body';\nimport { OverlayHeaderTemplateDirective } from '../partials/overlay-header-template';\nimport { OverlaySidebarPageComponent } from '../partials/overlay-sidebar-page';\nimport { OverlayRouterService } from './overlay-router';\n\nexport const SIDEBAR_OVERLAY_CONFIG = new InjectionToken<SidebarOverlayConfig>('SIDEBAR_OVERLAY_CONFIG');\n\nexport type SidebarOverlayConfig = {\n /**\n * On mobile devices, the sidebar will be shown as a separate page that can be navigated to.\n * This is the route to the sidebar page.\n *\n * @default \"/sidebar\"\n */\n sidebarPageRoute?: `/${string}`;\n\n /**\n * The breakpoint from which to render the sidebar. Can be a breakpoint or a number representing the pixel width.\n * @default \"md\"\n */\n renderSidebarFrom?: Breakpoint | number;\n};\n\nexport class SidebarOverlayService {\n config = inject(SIDEBAR_OVERLAY_CONFIG);\n viewportService = inject(ViewportService);\n router = inject(OverlayRouterService);\n\n renderSidebar = toSignal(this.viewportService.observe({ min: this.config.renderSidebarFrom ?? 'md' }), {\n initialValue: this.viewportService.isMatched({ min: this.config.renderSidebarFrom ?? 'md' }),\n });\n\n sidebarContentTemplate = signal<TemplateRef<unknown> | null>(null);\n sidebarHeaderTemplate = signal<OverlayHeaderTemplateDirective | null>(null);\n sidebarPageDividers = signal<OverlayBodyDividerType>(false);\n\n constructor() {\n const sidebarPageRoute = this.config.sidebarPageRoute ?? '/sidebar';\n\n toObservable(this.renderSidebar)\n .pipe(\n distinctUntilChanged(),\n tap((renderSidebar) => {\n if (renderSidebar) {\n this.router.transitionType.set('vertical');\n\n this.router.removeRoute(sidebarPageRoute);\n\n // if the user is currently on the sidebar route, navigate to the initial route.\n if (this.router.currentRoute() === sidebarPageRoute) {\n this.router._navigateToInitialRoute();\n }\n } else {\n this.router.transitionType.set('overlay');\n\n this.router.addRoute({\n path: sidebarPageRoute,\n component: OverlaySidebarPageComponent,\n inputs: {\n headerTemplate: this.sidebarHeaderTemplate,\n bodyTemplate: this.sidebarContentTemplate,\n pageDividers: this.sidebarPageDividers,\n },\n });\n }\n }),\n takeUntilDestroyed(),\n )\n .subscribe();\n }\n}\n\nexport const provideSidebarOverlayConfig = (config: SidebarOverlayConfig): Provider[] => {\n return [\n {\n provide: SIDEBAR_OVERLAY_CONFIG,\n useValue: config,\n },\n ];\n};\n","import { Location } from '@angular/common';\nimport { Directive, ElementRef, InjectionToken, booleanAttribute, inject, input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter, fromEvent, tap } from 'rxjs';\nimport { OverlayRef, OverlayRouterService } from '../../utils';\n\nexport const OVERLAY_BACK_OR_CLOSE_TOKEN = new InjectionToken<OverlayBackOrCloseDirective>(\n 'OVERLAY_BACK_OR_CLOSE_TOKEN',\n);\n\n@Directive({\n selector: '[etOverlayBackOrClose]',\n standalone: true,\n providers: [\n {\n provide: OVERLAY_BACK_OR_CLOSE_TOKEN,\n useExisting: OverlayBackOrCloseDirective,\n },\n ],\n host: {\n class: 'et-overlay-back-or-close',\n type: 'button',\n },\n})\nexport class OverlayBackOrCloseDirective {\n locationService = inject(Location);\n overlayRef = inject(OverlayRef);\n router = inject(OverlayRouterService);\n disabled = input(false, { transform: booleanAttribute });\n\n constructor() {\n fromEvent<PointerEvent>(inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement, 'click')\n .pipe(\n filter(() => !this.disabled()),\n tap(() => this.locationService.back()),\n takeUntilDestroyed(),\n )\n .subscribe();\n }\n}\n","import { Directive, ElementRef, HostBinding, HostListener, Input, OnInit, inject } from '@angular/core';\nimport { OverlayService } from '../../services';\nimport { OverlayRef, getClosestOverlay } from '../../utils';\n\n@Directive({\n selector: '[et-overlay-close], [etOverlayClose]',\n exportAs: 'etOverlayClose',\n host: {\n '[attr.aria-label]': 'ariaLabel || null',\n },\n standalone: true,\n})\nexport class OverlayCloseDirective implements OnInit {\n private _overlayRef = inject(OverlayRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _overlayService = inject(OverlayService);\n\n @Input('aria-label')\n ariaLabel?: string;\n\n @Input()\n @HostBinding('attr.type')\n type: 'submit' | 'button' | 'reset' = 'button';\n\n @Input('et-overlay-close')\n closeResult: unknown;\n\n @Input('etOverlayClose')\n set _closeResult(value: unknown) {\n this.closeResult = value;\n }\n\n ngOnInit() {\n if (!this._overlayRef) {\n const closestRef = getClosestOverlay(this._elementRef, this._overlayService.openOverlays);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._overlayRef = closestRef;\n }\n }\n\n @HostListener('click', ['$event'])\n _onButtonClick(event: MouseEvent) {\n if (!this._overlayRef) {\n return;\n }\n\n this._overlayRef._closeOverlayVia(\n event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse',\n this.closeResult,\n );\n }\n}\n","import { Directive, ElementRef, InjectionToken, OnInit, inject } from '@angular/core';\nimport { OverlayService } from '../../services';\nimport { OverlayRef, getClosestOverlay } from '../../utils';\n\nexport const OVERLAY_FOOTER_TOKEN = new InjectionToken<OverlayFooterDirective>('OVERLAY_FOOTER_TOKEN');\n\n@Directive({\n selector: '[etOverlayFooter], et-overlay-footer',\n standalone: true,\n providers: [\n {\n provide: OVERLAY_FOOTER_TOKEN,\n useExisting: OverlayFooterDirective,\n },\n ],\n host: {\n class: 'et-overlay-footer',\n },\n})\nexport class OverlayFooterDirective implements OnInit {\n private _overlayRef = inject(OverlayRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _overlayService = inject(OverlayService);\n\n ngOnInit() {\n if (!this._overlayRef) {\n const closestRef = getClosestOverlay(this._elementRef, this._overlayService.openOverlays);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._overlayRef = closestRef;\n }\n }\n}\n","import { Directive, ElementRef, InjectionToken, OnDestroy, OnInit, TemplateRef, inject } from '@angular/core';\nimport { OverlayService } from '../../services';\nimport { OverlayRef, getClosestOverlay } from '../../utils';\n\nexport const OVERLAY_HEADER_TEMPLATE_TOKEN = new InjectionToken<OverlayHeaderTemplateDirective>(\n 'OVERLAY_HEADER_TEMPLATE_TOKEN',\n);\n\n@Directive({\n selector: 'ng-template[etOverlayHeaderTemplate]',\n standalone: true,\n providers: [\n {\n provide: OVERLAY_HEADER_TEMPLATE_TOKEN,\n useExisting: OverlayHeaderTemplateDirective,\n },\n ],\n})\nexport class OverlayHeaderTemplateDirective implements OnInit, OnDestroy {\n private _overlayRef = inject(OverlayRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _overlayService = inject(OverlayService);\n\n template = inject(TemplateRef);\n\n constructor() {\n this._overlayRef?._setCurrentHeaderTemplate(this.template);\n }\n\n ngOnInit() {\n if (!this._overlayRef) {\n const closestRef = getClosestOverlay(this._elementRef, this._overlayService.openOverlays);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._overlayRef = closestRef;\n this._overlayRef._setCurrentHeaderTemplate(this.template);\n }\n }\n\n ngOnDestroy(): void {\n if (this._overlayRef?.headerTemplate() === this.template) {\n this._overlayRef?._setCurrentHeaderTemplate(null);\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, viewChild } from '@angular/core';\nimport {\n ANIMATED_LIFECYCLE_TOKEN,\n AnimatedIfDirective,\n AnimatedLifecycleDirective,\n signalHostClasses,\n} from '@ethlete/core';\nimport { OverlayRef, OverlayRouterService } from '../../utils';\n\n@Component({\n selector: 'et-overlay-route-header-template-outlet',\n template: `\n <div class=\"et-overlay-route-header-template-outlet\">\n <div [skipNextEnter]=\"true\" class=\"et-overlay-route-header-template-outlet-item\" etAnimatedLifecycle>\n <ng-container *etAnimatedIf=\"overlay.headerTemplate()\">\n <ng-container *ngTemplateOutlet=\"overlay.headerTemplate()\" />\n </ng-container>\n </div>\n </div>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-overlay-route-header-template-outlet-host',\n },\n styles: `\n .et-overlay-route-header-template-outlet-host {\n --_et-overlay-router-transition-easing: var(--ease-in-out-5);\n }\n\n .et-overlay-route-header-template-outlet {\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n grid-template-rows: minmax(0, 1fr);\n overflow-x: hidden;\n }\n\n .et-overlay-route-header-template-outlet-item {\n grid-area: 1 / 1 / 2 / 2;\n pointer-events: none;\n\n > * {\n pointer-events: auto;\n }\n\n &.et-animation-enter-from {\n opacity: 0;\n }\n\n &.et-animation-leave-to {\n opacity: 0;\n }\n\n &.et-animation-enter-active,\n &.et-animation-leave-active {\n transition:\n transform 300ms var(--_et-overlay-router-transition-easing),\n opacity 300ms var(--_et-overlay-router-transition-easing);\n }\n }\n `,\n imports: [AnimatedIfDirective, AnimatedLifecycleDirective, NgTemplateOutlet],\n})\nexport class OverlayRouteHeaderTemplateOutletComponent {\n router = inject(OverlayRouterService);\n overlay = inject(OverlayRef);\n animatedLifecycle = viewChild.required(ANIMATED_LIFECYCLE_TOKEN);\n\n hostClassBindings = signalHostClasses({\n 'et-overlay-router-outlet-nav-dir--backward': computed(() => this.router.navigationDirection() === 'backward'),\n 'et-overlay-router-outlet-nav-dir--forward': computed(() => this.router.navigationDirection() === 'forward'),\n });\n}\n","import { Directive, ElementRef, InjectionToken, booleanAttribute, computed, inject, input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { signalHostClasses } from '@ethlete/core';\nimport { filter, fromEvent, tap } from 'rxjs';\nimport { OverlayRouterNavigationDirection, OverlayRouterService } from '../../utils';\n\nexport const OVERLAY_ROUTER_LINK_TOKEN = new InjectionToken<OverlayRouterLinkDirective>('OVERLAY_ROUTER_LINK_TOKEN');\n\n@Directive({\n selector: '[etOverlayRouterLink]',\n standalone: true,\n providers: [\n {\n provide: OVERLAY_ROUTER_LINK_TOKEN,\n useExisting: OverlayRouterLinkDirective,\n },\n ],\n host: {\n class: 'et-overlay-router-link',\n type: 'button',\n },\n})\nexport class OverlayRouterLinkDirective {\n router = inject(OverlayRouterService);\n path = input.required<string | (string | number)[]>({ alias: 'etOverlayRouterLink' });\n disabled = input(false, { transform: booleanAttribute });\n navigationDirection = input<OverlayRouterNavigationDirection | null>(null);\n\n hostClassBindings = signalHostClasses({\n 'et-overlay-router-link--active': computed(\n () => this.router.resolvePath(this.path()).route === this.router.currentRoute(),\n ),\n });\n\n constructor() {\n fromEvent<PointerEvent>(inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement, 'click')\n .pipe(\n filter(() => !this.disabled()),\n tap(() => this.router.navigate(this.path(), { navigationDirection: this.navigationDirection() ?? undefined })),\n takeUntilDestroyed(),\n )\n .subscribe();\n }\n}\n","import { Directive, InjectionToken } from '@angular/core';\n\nexport const OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN =\n new InjectionToken<OverlayRouterOutletDisabledTemplateDirective>('OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN');\n\n@Directive({\n selector: 'ng-template[etOverlayRouterOutletDisabledTemplate]',\n standalone: true,\n providers: [\n {\n provide: OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN,\n useExisting: OverlayRouterOutletDisabledTemplateDirective,\n },\n ],\n})\nexport class OverlayRouterOutletDisabledTemplateDirective {}\n","import { Directive, InjectionToken } from '@angular/core';\n\nexport const OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN = new InjectionToken<OverlaySharedRouteTemplateDirective>(\n 'OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN',\n);\n\n@Directive({\n selector: 'ng-template[etOverlaySharedRouteTemplate]',\n standalone: true,\n providers: [\n {\n provide: OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN,\n useExisting: OverlaySharedRouteTemplateDirective,\n },\n ],\n})\nexport class OverlaySharedRouteTemplateDirective {}\n","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n InjectionToken,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChild,\n inject,\n input,\n signal,\n viewChildren,\n} from '@angular/core';\nimport {\n AnimatedIfDirective,\n AnimatedLifecycleDirective,\n AnimatedLifecycleState,\n signalHostClasses,\n} from '@ethlete/core';\nimport { OverlayRouterService, SidebarOverlayService } from '../../utils';\nimport { OverlayMainDirective } from '../overlay-main';\nimport { OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN } from '../overlay-router-outlet-disabled-template';\nimport { OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN } from '../overlay-shared-route-template';\n\nexport const OVERLAY_ROUTER_OUTLET_TOKEN = new InjectionToken<OverlayRouterOutletComponent>(\n 'OVERLAY_ROUTER_OUTLET_TOKEN',\n);\n\n@Component({\n selector: 'et-overlay-router-outlet',\n template: `\n <ng-template>\n <ng-content />\n </ng-template>\n\n <div class=\"et-overlay-router-outlet\">\n @for (page of router.routes(); track page.path) {\n <div\n #pageWrapper\n [class.et-overlay-router-outlet-page--active]=\"page === router.currentPage()\"\n class=\"et-overlay-router-outlet-page\"\n etAnimatedLifecycle\n >\n <ng-container *etAnimatedIf=\"page === router.currentPage() && !disabled()\">\n <ng-container *ngComponentOutlet=\"page.component; inputs: page.inputs\" />\n </ng-container>\n </div>\n }\n\n @if (outletDisabledTemplate()) {\n <div\n (stateChange)=\"disabledPageAnimationStateChange($event)\"\n class=\"et-overlay-router-outlet-page et-overlay-router-outlet-page--active\"\n etAnimatedLifecycle\n >\n <div *etAnimatedIf=\"disabled()\" [etOverlayMain]=\"hasSidebar\" class=\"et-overlay-router-outlet-disabled-page\">\n <ng-container *ngTemplateOutlet=\"outletDisabledTemplate()!\" />\n </div>\n </div>\n }\n </div>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-overlay-router-outlet-host',\n },\n styleUrl: './overlay-router-outlet.component.scss',\n imports: [AnimatedIfDirective, AnimatedLifecycleDirective, NgComponentOutlet, NgTemplateOutlet, OverlayMainDirective],\n providers: [\n {\n provide: OVERLAY_ROUTER_OUTLET_TOKEN,\n useExisting: OverlayRouterOutletComponent,\n },\n ],\n})\nexport class OverlayRouterOutletComponent {\n readonly hasSidebar = !!inject(SidebarOverlayService, { optional: true });\n\n router = inject(OverlayRouterService);\n\n sharedRouteTemplate = contentChild(OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, { read: TemplateRef });\n outletDisabledTemplate = contentChild(OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, { read: TemplateRef });\n\n pageWrappers = viewChildren<ElementRef<HTMLElement>>('pageWrapper');\n\n disabled = input(false, { transform: booleanAttribute });\n wasDisabled = signal(false);\n\n // We need to keep track of the disabled state until the exit animation is finished.\n // Otherwise, a wrong animation will be played when the disabled state is toggled off.\n keepDisabledTransition = computed(() => this.wasDisabled() || this.disabled());\n\n activePageElement = computed(() => {\n const wrappers = this.pageWrappers();\n const currentPage = this.router.currentPage();\n const currentPageIndex = this.router.routes().findIndex((r) => r.path === currentPage?.path);\n\n return wrappers[currentPageIndex]?.nativeElement ?? null;\n });\n\n hostClassBindings = signalHostClasses({\n 'et-overlay-router-outlet-nav-dir--backward': computed(() => this.router.navigationDirection() === 'backward'),\n 'et-overlay-router-outlet-nav-dir--forward': computed(() => this.router.navigationDirection() === 'forward'),\n 'et-overlay-router-outlet-transition--slide': computed(\n () => this.router.transitionType() === 'slide' && !this.keepDisabledTransition(),\n ),\n 'et-overlay-router-outlet-transition--fade': computed(\n () =>\n this.router.transitionType() === 'fade' ||\n (this.keepDisabledTransition() && this.router.transitionType() !== 'none'),\n ),\n 'et-overlay-router-outlet-transition--overlay': computed(\n () => this.router.transitionType() === 'overlay' && !this.keepDisabledTransition(),\n ),\n 'et-overlay-router-outlet-transition--vertical': computed(\n () => this.router.transitionType() === 'vertical' && !this.keepDisabledTransition(),\n ),\n 'et-overlay-router-outlet-transition--none': computed(() => this.router.transitionType() === 'none'),\n 'et-overlay-router-outlet--disabled': this.disabled,\n 'et-overlay-router-outlet--has-disabled-template': this.outletDisabledTemplate,\n 'et-overlay-router-outlet--has-shared-route-template': this.sharedRouteTemplate,\n });\n\n scrollActivePageTo(options?: ScrollToOptions | undefined) {\n const activePage = this.activePageElement();\n\n if (activePage) {\n activePage.scroll(options);\n }\n }\n\n disabledPageAnimationStateChange(state: AnimatedLifecycleState) {\n if (state === 'entered') {\n this.wasDisabled.set(true);\n } else if (state === 'left') {\n this.wasDisabled.set(false);\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { OVERLAY_ROUTER_OUTLET_TOKEN } from '../overlay-router-outlet';\n\n@Component({\n selector: 'et-overlay-shared-route-template-outlet',\n template: `\n @if (routerOutlet.sharedRouteTemplate(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n }\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-overlay-shared-route-template-outlet-host',\n },\n imports: [NgTemplateOutlet],\n styles: `\n .et-overlay-shared-route-template-outlet-host {\n display: contents;\n }\n `,\n})\nexport class OverlaySharedRouteTemplateOutletComponent {\n routerOutlet = inject(OVERLAY_ROUTER_OUTLET_TOKEN);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n contentChild,\n inject,\n input,\n viewChild,\n} from '@angular/core';\nimport { signalHostClasses, syncSignal } from '@ethlete/core';\nimport { OverlayRouterService, SidebarOverlayService } from '../../utils';\nimport { OverlayBodyDividerType } from '../overlay-body';\nimport { OVERLAY_HEADER_TEMPLATE_TOKEN } from '../overlay-header-template';\n\n@Component({\n selector: 'et-overlay-sidebar',\n template: `\n <ng-template #sidebarContentTpl>\n <ng-content />\n </ng-template>\n\n @if (sidebar.renderSidebar()) {\n <ng-container *ngTemplateOutlet=\"sidebarContent()\" />\n }\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-overlay-sidebar-host',\n },\n imports: [NgTemplateOutlet],\n})\nexport class OverlaySidebarComponent {\n sidebarContent = viewChild.required<TemplateRef<unknown>>('sidebarContentTpl');\n sidebarHeaderContent = contentChild(OVERLAY_HEADER_TEMPLATE_TOKEN);\n sidebar = inject(SidebarOverlayService);\n router = inject(OverlayRouterService);\n pageDividers = input<OverlayBodyDividerType>(false);\n\n hostClassBindings = signalHostClasses({\n 'et-overlay-sidebar--visible': this.sidebar.renderSidebar,\n });\n\n constructor() {\n syncSignal(this.sidebarContent, this.sidebar.sidebarContentTemplate);\n syncSignal(this.sidebarHeaderContent, this.sidebar.sidebarHeaderTemplate);\n syncSignal(this.pageDividers, this.sidebar.sidebarPageDividers);\n }\n}\n","import { Directive, ElementRef, HostBinding, inject, Input, OnInit } from '@angular/core';\nimport { OverlayService } from '../../services';\nimport { getClosestOverlay, OverlayRef } from '../../utils';\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[et-overlay-title], [etOverlayTitle]',\n exportAs: 'etOverlayTitle',\n standalone: true,\n})\nexport class OverlayTitleDirective implements OnInit {\n private _overlayRef = inject(OverlayRef, { optional: true });\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _overlayService = inject(OverlayService);\n\n @Input()\n @HostBinding('attr.id')\n id = `et-overlay-title-${uniqueId++}`;\n\n ngOnInit() {\n if (!this._overlayRef) {\n const closestRef = getClosestOverlay(this._elementRef, this._overlayService.openOverlays);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._overlayRef = closestRef;\n }\n\n Promise.resolve().then(() => this._overlayRef?._containerInstance?._ariaLabelledByQueue?.push(this.id));\n }\n}\n","import { DIALOG_SCROLL_STRATEGY_PROVIDER as CDK_DIALOG_SCROLL_STRATEGY_PROVIDER, Dialog } from '@angular/cdk/dialog';\nimport { OVERLAY_SCROLL_STRATEGY_PROVIDER } from './constants';\nimport { OverlayBackOrCloseDirective } from './partials/overlay-back-or-close';\nimport { OverlayBodyComponent } from './partials/overlay-body';\nimport { OverlayCloseDirective } from './partials/overlay-close';\nimport { OverlayFooterDirective } from './partials/overlay-footer';\nimport { OverlayHeaderDirective } from './partials/overlay-header';\nimport { OverlayHeaderTemplateDirective } from './partials/overlay-header-template';\nimport { OverlayMainDirective } from './partials/overlay-main';\nimport { OverlayRouteHeaderTemplateOutletComponent } from './partials/overlay-route-header-template-outlet';\nimport { OverlayRouterLinkDirective } from './partials/overlay-router-link';\nimport { OverlayRouterOutletComponent } from './partials/overlay-router-outlet';\nimport { OverlayRouterOutletDisabledTemplateDirective } from './partials/overlay-router-outlet-disabled-template';\nimport { OverlaySharedRouteTemplateDirective } from './partials/overlay-shared-route-template';\nimport { OverlaySharedRouteTemplateOutletComponent } from './partials/overlay-shared-route-template-outlet';\nimport { OverlaySidebarComponent } from './partials/overlay-sidebar';\nimport { OverlayTitleDirective } from './partials/overlay-title';\nimport { OverlayService } from './services';\n\nexport const OverlayImports = [\n OverlayCloseDirective,\n OverlayTitleDirective,\n OverlayHeaderDirective,\n OverlayBodyComponent,\n OverlayFooterDirective,\n OverlayMainDirective,\n] as const;\n\nexport const OverlayWithRoutingImports = [\n ...OverlayImports,\n OverlayHeaderTemplateDirective,\n OverlayRouterOutletComponent,\n OverlayRouterLinkDirective,\n OverlayRouteHeaderTemplateOutletComponent,\n OverlayBackOrCloseDirective,\n OverlaySharedRouteTemplateOutletComponent,\n OverlaySharedRouteTemplateDirective,\n OverlayRouterOutletDisabledTemplateDirective,\n] as const;\n\nexport const OverlayWithSidebarImports = [...OverlayWithRoutingImports, OverlaySidebarComponent] as const;\n\nexport const provideOverlay = () => {\n return [OverlayService, OVERLAY_SCROLL_STRATEGY_PROVIDER, Dialog, CDK_DIALOG_SCROLL_STRATEGY_PROVIDER];\n};\n","import { InjectionToken, TemplateRef } from '@angular/core';\nimport { ToggletipConfig } from '../types';\n\nexport const TOGGLETIP_CONFIG = new InjectionToken<ToggletipConfig>('ToggletipConfig');\nexport const TOGGLETIP_TEXT = new InjectionToken<string | null>('ToggletipText');\nexport const TOGGLETIP_TEMPLATE = new InjectionToken<TemplateRef<unknown> | null>('ToggletipTemplate');\n\nexport const TOGGLETIP_DEFAULT_CONFIG: ToggletipConfig = {\n placement: 'bottom',\n offset: 8,\n arrowPadding: 8,\n viewportPadding: 8,\n customAnimated: false,\n} as const;\n","import { TOGGLETIP_DEFAULT_CONFIG } from '../constants';\nimport { ToggletipConfig } from '../types';\n\nexport const createToggletipConfig = (config: Partial<ToggletipConfig> | null | undefined = {}): ToggletipConfig => ({\n ...TOGGLETIP_DEFAULT_CONFIG,\n ...(config || {}),\n});\n","import { TOGGLETIP_CONFIG } from '../constants';\nimport { ToggletipConfig } from '../types';\nimport { createToggletipConfig } from './toggletip-config';\n\nexport const provideToggletipConfig = (config: Partial<ToggletipConfig> | null | undefined = {}) => {\n return { provide: TOGGLETIP_CONFIG, useValue: createToggletipConfig(config) };\n};\n","import {\n Directive,\n EventEmitter,\n InjectionToken,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { AnimatedOverlayDirective, ClickObserverService, createDestroy, nextFrame } from '@ethlete/core';\nimport { THEME_PROVIDER } from '@ethlete/theming';\nimport { Subscription, filter, fromEvent, takeUntil, tap } from 'rxjs';\nimport { OverlayCloseBlockerDirective } from '../../../../directives/overlay-close-auto-blocker';\nimport { ToggletipComponent } from '../../components/toggletip';\nimport { TOGGLETIP_CONFIG, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT } from '../../constants';\nimport { ToggletipConfig } from '../../types';\nimport { createToggletipConfig } from '../../utils';\n\ntype ToggletipTemplate = string | TemplateRef<unknown>;\n\nexport const TOGGLETIP_DIRECTIVE = new InjectionToken<ToggletipDirective>('TOGGLETIP_DIRECTIVE');\n\n@Directive({\n selector: '[etToggletip]',\n standalone: true,\n providers: [\n {\n provide: TOGGLETIP_DIRECTIVE,\n useExisting: ToggletipDirective,\n },\n ],\n hostDirectives: [{ directive: AnimatedOverlayDirective, inputs: ['placement'] }, OverlayCloseBlockerDirective],\n})\nexport class ToggletipDirective implements OnInit, OnDestroy {\n private readonly _destroy$ = createDestroy();\n private readonly _defaultConfig =\n inject<ToggletipConfig>(TOGGLETIP_CONFIG, { optional: true }) ?? createToggletipConfig();\n readonly _animatedOverlay = inject<AnimatedOverlayDirective<ToggletipComponent>>(AnimatedOverlayDirective);\n private readonly _themeProvider = inject(THEME_PROVIDER, { optional: true });\n\n @Input('etToggletip')\n get toggletip() {\n return this._toggletip;\n }\n set toggletip(v: ToggletipTemplate | null) {\n this._toggletip = v;\n }\n private _toggletip: ToggletipTemplate | null = null;\n\n @Input()\n get showToggletip(): boolean {\n return this._showToggletip;\n }\n set showToggletip(value: unknown) {\n this._showToggletip = booleanAttribute(value);\n\n if (this._showToggletip && !this._animatedOverlay.isMounted) {\n nextFrame(() => {\n this._mountToggletip();\n this._addListeners();\n });\n } else if (!this._showToggletip && this._animatedOverlay.isMounted) {\n this._animatedOverlay.unmount();\n this._removeListeners();\n }\n }\n private _showToggletip = false;\n\n @Output()\n toggletipClose = new EventEmitter();\n\n private _clickObserverService = inject(ClickObserverService);\n\n private readonly _listenerSubscriptions: Subscription[] = [];\n\n constructor() {\n this._animatedOverlay.placement = this._defaultConfig.placement;\n this._animatedOverlay.offset = this._defaultConfig.offset;\n this._animatedOverlay.viewportPadding = this._defaultConfig.viewportPadding;\n this._animatedOverlay.arrowPadding = this._defaultConfig.arrowPadding;\n this._animatedOverlay.autoCloseIfReferenceHidden = true;\n }\n\n ngOnInit(): void {\n this._animatedOverlay\n .afterClosed()\n .pipe(\n tap(() => {\n this._removeListeners();\n this.toggletipClose.emit();\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this._animatedOverlay._destroy();\n this._removeListeners();\n }\n\n private _addListeners() {\n const keyupEscSub = fromEvent<KeyboardEvent>(document, 'keyup')\n .pipe(\n filter((e) => e.key === 'Escape'),\n tap(() => this._animatedOverlay.unmount()),\n )\n .subscribe();\n\n const clickOutsideSub = this._clickObserverService\n .observe(this._animatedOverlay.componentRef?.location.nativeElement)\n .subscribe((e) => {\n const targetElement = e.target as HTMLElement;\n const isInside = this._animatedOverlay.componentRef?.location.nativeElement.contains(targetElement);\n\n if (!isInside) {\n this._animatedOverlay.unmount();\n }\n });\n\n this._listenerSubscriptions.push(keyupEscSub, clickOutsideSub);\n }\n\n private _removeListeners() {\n this._listenerSubscriptions.forEach((s) => s.unsubscribe());\n this._listenerSubscriptions.length = 0;\n }\n\n private _mountToggletip() {\n this._animatedOverlay.mount({\n component: ToggletipComponent,\n themeProvider: this._themeProvider,\n providers: [\n {\n provide: TOGGLETIP_CONFIG,\n useValue: this._defaultConfig,\n },\n ...[\n typeof this.toggletip === 'string'\n ? {\n provide: TOGGLETIP_TEXT,\n useValue: this.toggletip,\n }\n : {\n provide: TOGGLETIP_TEMPLATE,\n useValue: this.toggletip,\n },\n ],\n ],\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n InjectionToken,\n Injector,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective } from '@ethlete/core';\nimport { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';\nimport { TOGGLETIP_CONFIG, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT } from '../../constants';\nimport { TOGGLETIP_DIRECTIVE } from '../../directives/toggletip';\n\nexport const TOGGLETIP = new InjectionToken<ToggletipComponent>('Toggletip');\n\n// TODO(TRB): The focus should get trapped inside the toggletip.\n// The toggletip trigger should get a aria-haspopup=\"true\" and aria-expanded=\"true\" attribute.\n@Component({\n selector: 'et-toggletip',\n templateUrl: './toggletip.component.html',\n styleUrls: ['./toggletip.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, AnimatedLifecycleDirective],\n hostDirectives: [ProvideThemeDirective],\n host: {\n class: 'et-toggletip',\n },\n providers: [\n {\n provide: TOGGLETIP,\n useExisting: ToggletipComponent,\n },\n ],\n})\nexport class ToggletipComponent {\n @ViewChild(ANIMATED_LIFECYCLE_TOKEN, { static: true })\n readonly _animatedLifecycle?: AnimatedLifecycleDirective;\n\n private readonly _config = inject(TOGGLETIP_CONFIG);\n protected readonly toggletipText = inject(TOGGLETIP_TEXT, { optional: true });\n protected readonly toggletipTemplate = inject(TOGGLETIP_TEMPLATE, { optional: true });\n private readonly _themeProvider = inject(THEME_PROVIDER);\n protected readonly injector = inject(Injector);\n private readonly _cdr = inject(ChangeDetectorRef);\n readonly _trigger = inject(TOGGLETIP_DIRECTIVE);\n readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostBinding('attr.aria-hidden')\n get attrAriaHidden() {\n return true;\n }\n\n @HostBinding('class.et-with-default-animation')\n get usesDefaultAnimation() {\n return !this._config.customAnimated;\n }\n\n @HostBinding('class')\n get containerClass() {\n return this._config.containerClass;\n }\n\n _markForCheck() {\n this._cdr.markForCheck();\n }\n\n _setThemeFromProvider(provider: ProvideThemeDirective) {\n this._themeProvider.syncWithProvider(provider);\n }\n}\n","<div class=\"et-toggletip-container\" etAnimatedLifecycle>\n @if (toggletipText) {\n {{ toggletipText }}\n }\n\n @if (toggletipTemplate) {\n <ng-container *ngTemplateOutlet=\"toggletipTemplate; injector: injector\" />\n }\n\n <div class=\"toggletip-arrow\" et-floating-arrow></div>\n</div>\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { TOGGLETIP } from '../../components/toggletip';\n\n@Directive({\n selector: '[et-toggletip-close], [etToggletipClose]',\n exportAs: 'etToggletipClose',\n standalone: true,\n})\nexport class ToggletipCloseDirective {\n private _toggletipDirective = inject(TOGGLETIP);\n\n @HostListener('click', ['$event'])\n _onButtonClick() {\n this._toggletipDirective._trigger._animatedOverlay.unmount();\n }\n}\n","import { ToggletipDirective } from './directives/toggletip';\n\nexport const ToggletipImports = [ToggletipDirective] as const;\n","import { InjectionToken, TemplateRef } from '@angular/core';\nimport { TooltipConfig } from '../types';\n\nexport const TOOLTIP_CONFIG = new InjectionToken<TooltipConfig>('TooltipConfig');\n\nexport const TOOLTIP_TEXT = new InjectionToken<string | null>('TooltipText');\n\nexport const TOOLTIP_TEMPLATE = new InjectionToken<TemplateRef<unknown> | null>('TooltipTemplate');\n\nexport const TOOLTIP_DEFAULT_CONFIG: TooltipConfig = {\n placement: 'bottom',\n offset: 8,\n arrowPadding: 8,\n viewportPadding: 8,\n customAnimated: false,\n} as const;\n","import { TOOLTIP_DEFAULT_CONFIG } from '../constants';\nimport { TooltipConfig } from '../types';\n\nexport const createTooltipConfig = (config: Partial<TooltipConfig> | null | undefined = {}): TooltipConfig => ({\n ...TOOLTIP_DEFAULT_CONFIG,\n ...(config || {}),\n});\n","import { TOOLTIP_CONFIG } from '../constants';\nimport { TooltipConfig } from '../types';\nimport { createTooltipConfig } from './tooltip-config';\n\nexport const provideTooltipConfig = (config: Partial<TooltipConfig> | null | undefined = {}) => {\n return { provide: TOOLTIP_CONFIG, useValue: createTooltipConfig(config) };\n};\n","import { AriaDescriber } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, InjectionToken, Input, OnDestroy, TemplateRef, inject } from '@angular/core';\nimport { AnimatedOverlayDirective, FocusVisibleService } from '@ethlete/core';\nimport { THEME_PROVIDER } from '@ethlete/theming';\nimport { Subscription, debounceTime, filter, fromEvent, tap } from 'rxjs';\nimport { OverlayCloseBlockerDirective } from '../../../../directives/overlay-close-auto-blocker';\nimport { TooltipComponent } from '../../components/tooltip';\nimport { TOOLTIP_CONFIG, TOOLTIP_TEMPLATE, TOOLTIP_TEXT } from '../../constants';\nimport { TooltipConfig } from '../../types';\nimport { createTooltipConfig } from '../../utils';\n\ntype TooltipTemplate = string | TemplateRef<unknown>;\n\nexport const TOOLTIP_DIRECTIVE = new InjectionToken<TooltipDirective>('TOOLTIP_DIRECTIVE');\n\n@Directive({\n selector: '[etTooltip]',\n standalone: true,\n providers: [\n {\n provide: TOOLTIP_DIRECTIVE,\n useExisting: TooltipDirective,\n },\n ],\n hostDirectives: [{ directive: AnimatedOverlayDirective, inputs: ['placement'] }, OverlayCloseBlockerDirective],\n})\nexport class TooltipDirective implements OnDestroy {\n private readonly _defaultConfig = inject<TooltipConfig>(TOOLTIP_CONFIG, { optional: true }) ?? createTooltipConfig();\n private readonly _animatedOverlay = inject<AnimatedOverlayDirective<TooltipComponent>>(AnimatedOverlayDirective);\n private readonly _themeProvider = inject(THEME_PROVIDER, { optional: true });\n\n @Input('etTooltip')\n get tooltip() {\n return this._tooltip;\n }\n set tooltip(v: TooltipTemplate | null) {\n this._tooltip = v;\n\n this._updateAriaDescription();\n\n if (v) {\n this._addListeners();\n } else {\n this._removeListeners();\n }\n }\n private _tooltip: TooltipTemplate | null = null;\n\n @Input()\n get tooltipAriaDescription() {\n return this._tooltipAriaDescription;\n }\n set tooltipAriaDescription(v: string | null) {\n this._tooltipAriaDescription = v;\n this._updateAriaDescription();\n }\n private _tooltipAriaDescription: string | null = null;\n private _lastTooltipText: string | null = null;\n\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _ariaDescriberService = inject(AriaDescriber);\n private _focusVisibleService = inject(FocusVisibleService);\n\n private _willMount = true;\n private _hasFocus = false;\n private _hasHover = false;\n\n private readonly _listenerSubscriptions: Subscription[] = [];\n\n constructor() {\n this._animatedOverlay.placement = this._defaultConfig.placement;\n this._animatedOverlay.offset = this._defaultConfig.offset;\n this._animatedOverlay.arrowPadding = this._defaultConfig.arrowPadding;\n this._animatedOverlay.viewportPadding = this._defaultConfig.viewportPadding;\n this._animatedOverlay.autoCloseIfReferenceHidden = true;\n }\n\n ngOnDestroy(): void {\n this._animatedOverlay._destroy();\n this._removeListeners();\n }\n\n private _updateAriaDescription() {\n const tooltipText = this._getTooltipText();\n\n if (tooltipText) {\n this._ariaDescriberService.describe(this._elementRef.nativeElement, tooltipText);\n } else if (this._lastTooltipText) {\n this._ariaDescriberService.removeDescription(this._elementRef.nativeElement, this._lastTooltipText);\n }\n\n this._lastTooltipText = tooltipText;\n }\n\n private _addListeners() {\n const mouseEnterSub = fromEvent(this._elementRef.nativeElement, 'mouseenter')\n .pipe(\n tap(() => {\n this._willMount = true;\n this._hasHover = true;\n }),\n debounceTime(200),\n )\n .subscribe(() => {\n if (!this._willMount || this._animatedOverlay.isMounted) {\n return;\n }\n\n this._mountTooltip();\n });\n\n const focusSub = fromEvent(this._elementRef.nativeElement, 'focus').subscribe(() => {\n if (!this._focusVisibleService.isFocusVisible) {\n return;\n }\n\n this._hasFocus = true;\n\n if (this._animatedOverlay.isMounted) {\n return;\n }\n\n this._mountTooltip();\n });\n\n const mouseLeaveSub = fromEvent(this._elementRef.nativeElement, 'mouseleave').subscribe(() => {\n this._hasHover = false;\n this._willMount = false;\n\n if (this._animatedOverlay.isMounted && !this._hasFocus) {\n this._animatedOverlay.unmount();\n }\n });\n\n const blurSub = fromEvent(this._elementRef.nativeElement, 'blur').subscribe(() => {\n this._hasFocus = false;\n this._willMount = false;\n\n if (this._animatedOverlay.isMounted && !this._hasHover) {\n this._animatedOverlay.unmount();\n }\n });\n\n const keyupEscSub = fromEvent<KeyboardEvent>(document, 'keyup')\n .pipe(\n filter((e) => e.key === 'Escape'),\n filter(() => this._animatedOverlay.isMounted),\n tap(() => this._animatedOverlay.unmount()),\n )\n .subscribe();\n\n this._listenerSubscriptions.push(mouseEnterSub, mouseLeaveSub, focusSub, blurSub, keyupEscSub);\n }\n\n private _removeListeners() {\n this._listenerSubscriptions.forEach((s) => s.unsubscribe());\n this._listenerSubscriptions.length = 0;\n }\n\n private _mountTooltip() {\n this._animatedOverlay.mount({\n component: TooltipComponent,\n themeProvider: this._themeProvider,\n providers: [\n {\n provide: TOOLTIP_CONFIG,\n useValue: this._defaultConfig,\n },\n ...[\n typeof this.tooltip === 'string'\n ? {\n provide: TOOLTIP_TEXT,\n useValue: this.tooltip,\n }\n : {\n provide: TOOLTIP_TEMPLATE,\n useValue: this.tooltip,\n },\n ],\n ],\n });\n }\n\n private _getTooltipText() {\n return this._tooltipAriaDescription\n ? this._tooltipAriaDescription\n : typeof this.tooltip === 'string'\n ? this.tooltip\n : null;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n InjectionToken,\n Injector,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective } from '@ethlete/core';\nimport { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';\nimport { TOOLTIP_CONFIG, TOOLTIP_TEMPLATE, TOOLTIP_TEXT } from '../../constants';\nimport { TOOLTIP_DIRECTIVE } from '../../directives/tooltip';\n\nexport const TOOLTIP = new InjectionToken<TooltipComponent>('Tooltip');\n\n@Component({\n selector: 'et-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, AnimatedLifecycleDirective],\n hostDirectives: [ProvideThemeDirective],\n host: {\n class: 'et-tooltip',\n },\n providers: [\n {\n provide: TOOLTIP,\n useExisting: TooltipComponent,\n },\n ],\n})\nexport class TooltipComponent {\n @ViewChild(ANIMATED_LIFECYCLE_TOKEN, { static: true })\n readonly _animatedLifecycle?: AnimatedLifecycleDirective;\n\n private readonly _config = inject(TOOLTIP_CONFIG);\n protected tooltipText = inject(TOOLTIP_TEXT, { optional: true });\n protected tooltipTemplate = inject(TOOLTIP_TEMPLATE, { optional: true });\n private readonly _themeProvider = inject(THEME_PROVIDER);\n protected readonly injector = inject(Injector);\n private readonly _cdr = inject(ChangeDetectorRef);\n readonly _trigger = inject(TOOLTIP_DIRECTIVE);\n readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostBinding('attr.aria-hidden')\n get attrAriaHidden() {\n return true;\n }\n\n @HostBinding('class.et-with-default-animation')\n get usesDefaultAnimation() {\n return !this._config.customAnimated;\n }\n\n @HostBinding('class')\n get containerClass() {\n return this._config.containerClass;\n }\n\n _markForCheck() {\n this._cdr.markForCheck();\n }\n\n _setThemeFromProvider(provider: ProvideThemeDirective) {\n this._themeProvider.syncWithProvider(provider);\n }\n}\n","<div class=\"et-tooltip-container\" etAnimatedLifecycle>\n @if (tooltipText) {\n {{ tooltipText }}\n }\n\n @if (tooltipTemplate) {\n <ng-container *ngTemplateOutlet=\"tooltipTemplate; injector: injector\" />\n }\n\n <div class=\"tooltip-arrow\" et-floating-arrow></div>\n</div>\n","import { TooltipDirective } from './directives/tooltip';\n\nexport const TooltipImports = [TooltipDirective] as const;\n","import { Directive, ElementRef, HostBinding, Input, OnInit, inject } from '@angular/core';\nimport { BottomSheetService } from '../../components/bottom-sheet/services';\nimport { BottomSheetRef, getClosestBottomSheet } from '../../components/bottom-sheet/utils';\nimport { DialogService } from '../../components/dialog/services';\nimport { DialogRef, getClosestDialog } from '../../components/dialog/utils';\n\nlet overlayElementUid = 0;\n\n/**\n * @deprecated Will be removed in v5.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[et-dynamic-overlay-title], [etDynamicOverlayTitle]',\n exportAs: 'etDynamicOverlayTitle',\n standalone: true,\n host: {\n class: 'et-dynamic-overlay-title',\n },\n})\nexport class DynamicOverlayTitleDirective implements OnInit {\n private _overlayRef = inject(DialogRef, { optional: true }) ?? inject(BottomSheetRef);\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _overlayService = inject(DialogService, { optional: true }) ?? inject(BottomSheetService);\n\n @Input()\n @HostBinding('attr.id')\n id = `et-dynamic-overlay-title-${overlayElementUid++}`;\n\n ngOnInit() {\n if (!this._overlayRef) {\n const closestRef =\n this._overlayService instanceof DialogService\n ? getClosestDialog(this._elementRef, this._overlayService.openDialogs)\n : getClosestBottomSheet(this._elementRef, this._overlayService.openBottomSheets);\n\n if (!closestRef) {\n throw Error('No closest ref found');\n }\n\n this._overlayRef = closestRef;\n }\n\n Promise.resolve().then(() => this._overlayRef?._containerInstance?._ariaLabelledByQueue?.push(this.id));\n }\n}\n","import { ComponentType } from '@angular/cdk/overlay';\nimport { Injectable, TemplateRef, inject } from '@angular/core';\nimport { ViewportService } from '@ethlete/core';\nimport { BottomSheetService } from '../components/bottom-sheet/services';\nimport { DialogService } from '../components/dialog/services';\nimport { DynamicOverlayConfig, DynamicOverlayRed } from '../types';\n\n/**\n * @deprecated Use `OverlayService` instead. Will be removed in v5.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DynamicOverlayService {\n private readonly _dialogService = inject(DialogService);\n private readonly _bottomSheetService = inject(BottomSheetService);\n private readonly _viewportService = inject(ViewportService);\n\n open<T, D = unknown, R = unknown>(\n component: ComponentType<T>,\n config: DynamicOverlayConfig<D>,\n ): DynamicOverlayRed<T, R>;\n\n open<T, D = unknown, R = unknown>(template: TemplateRef<T>, config: DynamicOverlayConfig<D>): DynamicOverlayRed<T, R>;\n\n open<T, D = unknown, R = unknown>(\n template: ComponentType<T> | TemplateRef<T>,\n config: DynamicOverlayConfig<D>,\n ): DynamicOverlayRed<T, R>;\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config: DynamicOverlayConfig<D>,\n ): DynamicOverlayRed<T, R> {\n const shouldOpenAsDialog = this._viewportService.isMatched({ min: config.isDialogFrom });\n\n if (shouldOpenAsDialog) {\n return this._dialogService.open<T, D, R>(componentOrTemplateRef, config.dialogConfig);\n }\n\n return this._bottomSheetService.open<T, D, R>(componentOrTemplateRef, config.bottomSheetConfig);\n }\n}\n","import { ESCAPE } from '@angular/cdk/keycodes';\nimport { assertInInjectionContext, inject, isDevMode } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { createDestroy, equal } from '@ethlete/core';\nimport { Observable, filter, finalize, from, map, merge, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { OverlayRef } from '../components/overlay/utils';\n\nexport interface OverlayDismissCheckerRef {\n /**\n * Destroys the dismiss checker. No further checks will be performed.\n */\n destroy: () => void;\n\n /**\n * Set the default form value to the current form value.\n * Useful when the form value changes after the overlay is opened.\n *\n * (e.g. when a http request was needed to fill the remaining form fields to their default values)\n */\n refreshDefaultFormValue: () => void;\n}\n\nexport type CreateOverlayDismissCheckerConfig<T extends AbstractControl> = {\n /**\n * The form to check for changes\n */\n form: T;\n\n /**\n * The default value to compare the current form value to\n *\n * @default form.getRawValue()\n */\n defaultValue?: ReturnType<T['getRawValue']>;\n\n /**\n * The events that should trigger the dismiss check\n *\n * @default { backdropClick: true, escapeKey: true, closeCall: true }\n */\n dismissEvents?: {\n /**\n * Whether the backdrop click should trigger the dismiss check\n *\n * @default true\n */\n backdropClick?: boolean;\n\n /**\n * Whether the escape key should trigger the dismiss check\n *\n * @default true\n */\n escapeKey?: boolean;\n\n /**\n * Whether the close call should trigger the dismiss check.\n * (e.g. `overlayRef.close()`)\n *\n * @default true\n */\n closeCall?: boolean;\n };\n\n /**\n * This function will be called when the current form value is not equal to the default value.\n * Use this to show a confirmation dialog or similar.\n *\n * @example Show a confirmation dialog:\n * ```ts\n * () => this.overlayService\n * .show(SomeConfirmationComponent)\n * .afterClosed()\n * .pipe(map((result) => !!result?.confirmed))\n * ```\n *\n * @param v The current form value\n */\n dismissCheckFn: (v: ReturnType<T['getRawValue']>) => unknown | Promise<unknown> | Observable<unknown>;\n\n /**\n * A custom compare function to compare the current form value to the default value.\n * By default, a deep comparison will be used.\n *\n * @default (currentValue, defaultValue) => equal(currentValue, defaultValue)\n */\n compareFn?: (currentValue: ReturnType<T['getRawValue']>, defaultValue: ReturnType<T['getRawValue']>) => boolean;\n};\n\n/**\n * A utility function to enhance the ux of overlays containing forms.\n * It can prevent the user from accidentally closing the overlay when the form value is not equal to the default value.\n */\nexport const createOverlayDismissChecker = <T extends AbstractControl>(\n config: CreateOverlayDismissCheckerConfig<T>,\n): OverlayDismissCheckerRef => {\n assertInInjectionContext(createOverlayDismissChecker);\n\n const {\n form,\n dismissEvents = { backdropClick: true, escapeKey: true, closeCall: true },\n dismissCheckFn,\n compareFn,\n } = config;\n let { defaultValue = form.getRawValue() } = config;\n\n const checkBackdropClick = dismissEvents.backdropClick ?? true;\n const checkEscapeKey = dismissEvents.escapeKey ?? true;\n const checkCloseCall = dismissEvents.closeCall ?? true;\n\n if (!checkBackdropClick && !checkEscapeKey && !checkCloseCall) {\n throw new Error('At least one dismiss event must be enabled');\n }\n\n const destroy$ = createDestroy();\n const overlayRef = inject(OverlayRef);\n\n overlayRef._isBackdropCloseControlledExternally = checkBackdropClick;\n overlayRef._isEscCloseControlledExternally = checkEscapeKey;\n overlayRef._isCloseFnCloseControlledExternally = checkCloseCall;\n\n const eventStreams: Observable<'mouse' | 'keyboard' | unknown>[] = [];\n\n if (checkBackdropClick) {\n if (!overlayRef.disableClose) {\n eventStreams.push(overlayRef.backdropClick().pipe(map(() => 'mouse')));\n } else if (isDevMode() && dismissEvents.backdropClick) {\n console.warn('dismissEvents.backdropClick being set to true has no effect when overlayRef.disableClose is true.');\n }\n }\n\n if (checkEscapeKey) {\n if (!overlayRef.disableClose) {\n eventStreams.push(\n overlayRef.keydownEvents().pipe(\n filter((event) => event.keyCode === ESCAPE),\n map(() => 'keyboard'),\n ),\n );\n } else if (isDevMode() && dismissEvents.escapeKey) {\n console.warn('dismissEvents.escapeKey being set to true has no effect when overlayRef.disableClose is true.');\n }\n }\n\n if (checkCloseCall) {\n eventStreams.push(\n overlayRef.closeCalled().pipe(\n filter((e) => !e.forced),\n map((e) => e.result),\n ),\n );\n }\n\n const sub = merge(...eventStreams)\n .pipe(\n switchMap((eventOrResult) => {\n const isDefaultFormValue = compareFn\n ? compareFn(form.getRawValue(), defaultValue)\n : equal(form.getRawValue(), defaultValue);\n\n if (isDefaultFormValue) {\n return of(eventOrResult).pipe(\n tap(() => {\n sub.unsubscribe();\n\n if (eventOrResult === 'keyboard' || eventOrResult === 'mouse') {\n overlayRef._closeOverlayVia(eventOrResult, undefined, true);\n } else {\n overlayRef.close(eventOrResult, true);\n }\n }),\n );\n } else {\n return of(eventOrResult).pipe(\n filter(() => {\n const wasKeyboard = overlayRef._closeInteractionType === 'keyboard';\n const wasMouse = overlayRef._closeInteractionType === 'mouse';\n\n if ((wasKeyboard && !checkEscapeKey) || (wasMouse && !checkBackdropClick)) {\n return false;\n }\n\n return !overlayRef._internalDisableClose;\n }),\n switchMap(() => {\n const checkResponse = dismissCheckFn(form.getRawValue());\n\n let nextObservable: Observable<unknown>;\n\n if (checkResponse instanceof Observable) {\n nextObservable = checkResponse;\n } else if (checkResponse instanceof Promise) {\n nextObservable = from(checkResponse);\n } else {\n nextObservable = of(checkResponse);\n }\n\n return nextObservable.pipe(\n filter((checkFnResult) => !!checkFnResult),\n tap(() => {\n sub.unsubscribe();\n\n if (eventOrResult === 'keyboard' || eventOrResult === 'mouse') {\n overlayRef._closeOverlayVia(eventOrResult, undefined, true);\n } else {\n overlayRef.close(eventOrResult, true);\n }\n }),\n );\n }),\n );\n }\n }),\n takeUntil(destroy$),\n finalize(() => {\n overlayRef._isBackdropCloseControlledExternally = false;\n overlayRef._isEscCloseControlledExternally = false;\n overlayRef._isCloseFnCloseControlledExternally = false;\n }),\n )\n .subscribe();\n\n return {\n destroy: () => sub.unsubscribe(),\n refreshDefaultFormValue: () => {\n defaultValue = form.getRawValue();\n },\n };\n};\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { PaginationItem } from '../../types';\n\n@Directive({\n selector: '[etPaginationLink]',\n standalone: true,\n})\nexport class PaginationLinkDirective {\n @Input('etPaginationLink')\n page!: PaginationItem;\n\n @Output()\n pageClick = new EventEmitter<PaginationItem>();\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n event.preventDefault();\n\n if (this.page.disabled || this.page.current) {\n return;\n }\n\n this.pageClick.emit(this.page);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, OnDestroy } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\nimport { PaginationHeadServiceConfig } from '../types';\n\n@Injectable()\nexport class PaginationHeadService implements OnDestroy {\n private _config: PaginationHeadServiceConfig | null = null;\n private _document = inject(DOCUMENT);\n private _titleService = inject(Title);\n private _router = inject(Router);\n private _head = this._document.getElementsByTagName('head')[0];\n\n private get config(): PaginationHeadServiceConfig {\n return this._config ?? { titleTemplate: null, firstPageTitle: null, addCanonicalTag: false };\n }\n\n set addCanonicalTag(v: boolean) {\n this._config = { ...this.config, addCanonicalTag: v };\n }\n\n set titleTemplate(v: string | null) {\n this._config = { ...this.config, titleTemplate: v };\n }\n\n set firstPageTitle(v: string | null) {\n this._config = { ...this.config, firstPageTitle: v };\n }\n\n ngOnDestroy(): void {\n const element = this._getCanonicalElement(false);\n\n if (element) {\n this._removeCanonicalElement(element);\n }\n }\n\n _updateHead(page: number) {\n const { titleTemplate, addCanonicalTag, firstPageTitle } = this.config;\n\n if (titleTemplate && !titleTemplate.includes('%s')) {\n throw new Error('Title template must contain \"%s\" placeholder');\n }\n\n const title =\n page === 1 && firstPageTitle\n ? firstPageTitle\n : titleTemplate\n ? titleTemplate.replace('%s', page.toString())\n : null;\n\n if (title) {\n this._titleService.setTitle(title);\n }\n\n if (addCanonicalTag) {\n const urlTree = this._router.createUrlTree([], {\n queryParams: { page: page === 1 ? null : page },\n queryParamsHandling: 'merge',\n });\n\n const relativeUrl = this._router.serializeUrl(urlTree);\n const canonicalUrl = `${window.location.origin}${relativeUrl}`;\n\n const element = this._getCanonicalElement(true);\n element.setAttribute('rel', 'canonical');\n element.setAttribute('href', canonicalUrl);\n this._head?.appendChild(element);\n }\n }\n\n private _getCanonicalElement<T extends boolean, R extends T extends true ? HTMLElement : HTMLElement | null>(\n createIfNotExisting: T,\n ) {\n let element = this._document.querySelector(`link[rel='canonical']`) || null;\n if (element === null && createIfNotExisting) {\n element = this._document.createElement('link') as HTMLLinkElement;\n }\n return element as R;\n }\n\n private _removeCanonicalElement(element: Element) {\n this._head?.removeChild(element);\n }\n}\n","import { clamp } from '@ethlete/core';\nimport { PaginateOptions, PaginationItem } from '../types';\n\nexport const paginate = (value?: PaginateOptions | null) => {\n if (!value) {\n return null;\n }\n\n const { omitFirstLast = false, omitPreviousNext = false, pagesBeforeAfter = 2, firstPage = 1 } = value;\n\n const pages: PaginationItem[] = [];\n const activePage = clamp(value.currentPage, firstPage, value.totalPageCount);\n\n if (value.totalPageCount === 0) {\n return null;\n }\n\n const currentUrl = new URL(window.location.href);\n\n const createUrl = (page: number) => {\n const url = new URL(currentUrl.href);\n\n if (page === 1) {\n url.searchParams.delete('page');\n } else {\n url.searchParams.set('page', page.toString());\n }\n\n return url.toString();\n };\n\n if (!omitFirstLast) {\n pages.push({\n page: firstPage,\n current: false,\n ariaLabel: 'First page',\n disabled: activePage === firstPage,\n type: 'hotLink',\n explicitType: 'first',\n url: createUrl(firstPage),\n });\n }\n\n if (!omitPreviousNext) {\n pages.push({\n page: activePage - 1,\n current: false,\n ariaLabel: `Previous page`,\n disabled: activePage === 1,\n type: 'hotLink',\n explicitType: 'previous',\n url: createUrl(activePage - 1),\n });\n }\n\n let pagesBefore = activePage - pagesBeforeAfter;\n let pagesAfter = activePage + pagesBeforeAfter;\n\n if (pagesBefore < firstPage) {\n pagesAfter += firstPage - pagesBefore;\n pagesBefore = firstPage;\n }\n\n if (pagesAfter > value.totalPageCount) {\n pagesBefore -= pagesAfter - value.totalPageCount;\n pagesAfter = value.totalPageCount;\n }\n\n // add N pages before and after active page\n for (let i = pagesBefore; i <= pagesAfter; i++) {\n if (i > firstPage - 1 && i <= value.totalPageCount) {\n const explicitType =\n i === activePage\n ? 'current'\n : i === activePage - 1 || i === activePage + 1\n ? 'page-number-close'\n : 'page-number-far';\n\n pages.push({\n page: i,\n current: i === activePage,\n ariaLabel: `Page ${i}`,\n disabled: false,\n type: 'page',\n explicitType,\n url: createUrl(i),\n });\n }\n }\n\n if (!omitPreviousNext) {\n pages.push({\n page: activePage + 1,\n current: false,\n ariaLabel: `Next page`,\n disabled: activePage === value.totalPageCount,\n type: 'hotLink',\n explicitType: 'next',\n url: createUrl(activePage + 1),\n });\n }\n\n if (!omitFirstLast) {\n pages.push({\n page: value.totalPageCount,\n current: false,\n ariaLabel: `Last page`,\n disabled: activePage === value.totalPageCount,\n type: 'hotLink',\n explicitType: 'last',\n url: createUrl(value.totalPageCount),\n });\n }\n\n return pages;\n};\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TrackByFunction,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { PaginationLinkDirective } from '../../partials/pagination-link';\nimport { PaginationHeadService } from '../../services';\nimport { PaginationItem } from '../../types';\nimport { paginate } from '../../utils';\n\n@Component({\n selector: 'et-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [AsyncPipe, PaginationLinkDirective],\n providers: [PaginationHeadService],\n host: {\n class: 'et-pagination',\n },\n})\nexport class PaginationComponent implements OnInit, OnDestroy {\n private _pageControlSubscription = Subscription.EMPTY;\n private _paginationHeadService = inject(PaginationHeadService);\n\n @Input()\n get pageControl() {\n return this._pageControl;\n }\n set pageControl(v: FormControl<number | null> | null) {\n this._pageControl = v;\n this._updatePages();\n this._subscribeToPageControlChanges();\n }\n private _pageControl: FormControl<number | null> | null = null;\n\n @Input()\n get totalPages(): number {\n return this._totalPages;\n }\n set totalPages(value: unknown) {\n this._totalPages = numberAttribute(value, 0);\n this._updatePages();\n }\n private _totalPages = 0;\n\n @Input()\n set headTitleTemplate(v: string | null) {\n this._paginationHeadService.titleTemplate = v;\n this._updateHead();\n }\n\n @Input()\n set headFirstPageTitle(v: string | null) {\n this._paginationHeadService.firstPageTitle = v;\n this._updateHead();\n }\n\n @Input({ transform: booleanAttribute })\n set headAddCanonicalTag(v: boolean) {\n this._paginationHeadService.addCanonicalTag = v;\n this._updateHead();\n }\n\n @Input()\n ariaLabel = 'Pagination';\n\n @Input()\n pageChangeScrollAnchor: HTMLElement | ElementRef<HTMLElement> | null = null;\n\n protected pages$ = new BehaviorSubject<PaginationItem[] | null>(null);\n\n protected trackByPage: TrackByFunction<PaginationItem> = (index) => index;\n\n ngOnInit(): void {\n this._updateHead();\n }\n\n ngOnDestroy(): void {\n this._pageControlSubscription.unsubscribe();\n }\n\n protected onPageClick(page: PaginationItem) {\n if (page.disabled || page.current) {\n return;\n }\n\n this.pageControl?.setValue(page.page);\n this._paginationHeadService._updateHead(page.page);\n\n if (this.pageChangeScrollAnchor) {\n const el = coerceElement(this.pageChangeScrollAnchor);\n el?.scrollIntoView();\n }\n }\n\n private _subscribeToPageControlChanges() {\n this._pageControlSubscription.unsubscribe();\n\n if (!this.pageControl) {\n return;\n }\n\n this._pageControlSubscription = this.pageControl?.valueChanges.subscribe(() => this._updatePages());\n }\n\n private _updatePages() {\n if (!this.pageControl?.value || !this.totalPages) {\n this.pages$.next(null);\n return;\n }\n\n this.pages$.next(paginate({ currentPage: this.pageControl.value, totalPageCount: this.totalPages }));\n }\n\n private _updateHead() {\n if (this.pageControl?.value) {\n this._paginationHeadService._updateHead(this.pageControl.value);\n }\n }\n}\n","@if (pages$ | async; as pages) {\n <nav [attr.aria-label]=\"ariaLabel\" class=\"et-pagination-nav\">\n <ul class=\"et-pagination-list\">\n @for (page of pages; track trackByPage($index, page)) {\n <li\n [class.et-pagination-hot-link]=\"page.type === 'hotLink'\"\n [class.et-pagination-page-link]=\"page.type === 'page'\"\n [class.et-pagination-item-disabled]=\"page.disabled\"\n class=\"et-pagination-list-item et-pagination-{{ page.explicitType }}\"\n >\n <a\n [attr.aria-current]=\"page.current ? 'page' : null\"\n [attr.aria-label]=\"page.ariaLabel\"\n [attr.aria-disabled]=\"page.disabled ? 'true' : null\"\n [etPaginationLink]=\"page\"\n [href]=\"page.disabled ? '#' : page.url\"\n (pageClick)=\"onPageClick($event)\"\n class=\"et-pagination-anchor\"\n >\n @if (page.type === 'page') {\n {{ page.page }}\n }\n </a>\n </li>\n }\n </ul>\n </nav>\n}\n","import { PaginationComponent } from './components/pagination';\n\nexport const PaginationImports = [PaginationComponent] as const;\n","import { InjectionToken } from '@angular/core';\nimport { inferMimeType } from '@ethlete/core';\nimport { PictureConfig, PictureSource } from '../types/picture.types';\n\nexport const IMAGE_CONFIG_TOKEN = new InjectionToken<PictureConfig>('IMAGE_CONFIG_TOKEN');\n\nexport const provideImageConfig = (config: Partial<PictureConfig> | null | undefined = {}) => {\n return {\n provide: IMAGE_CONFIG_TOKEN,\n useValue: config,\n };\n};\n\nexport const normalizePictureSource = (source: string | PictureSource) => {\n if (typeof source === 'string') {\n return { type: inferMimeType(source), srcset: source } as PictureSource;\n } else {\n const mimeType = source.type && source.type !== '' ? source.type : inferMimeType(source.srcset);\n return { type: mimeType, srcset: source.srcset } as PictureSource;\n }\n};\n\nexport const normalizePictureSizes = (sizes: string | string[] | null) => {\n if (!sizes) {\n return null;\n }\n\n if (Array.isArray(sizes)) {\n return sizes.join(', ');\n }\n\n return sizes;\n};\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n numberAttribute,\n viewChild,\n} from '@angular/core';\nimport { outputFromObservable, toObservable } from '@angular/core/rxjs-interop';\nimport { NgClassType } from '@ethlete/core';\nimport { fromEvent, map, of, switchMap } from 'rxjs';\nimport { PictureSource } from '../../types/picture.types';\nimport { IMAGE_CONFIG_TOKEN, normalizePictureSizes, normalizePictureSource } from '../../utils/picture.utils';\n\n@Component({\n selector: 'et-picture',\n templateUrl: './picture.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass],\n host: {\n class: 'et-picture',\n },\n})\nexport class PictureComponent {\n _config = inject(IMAGE_CONFIG_TOKEN, { optional: true });\n\n sources = input<Array<PictureSource | string>>([]);\n hasPriority = input(false, { transform: booleanAttribute });\n imgClass = input<NgClassType>(null);\n figureClass = input<NgClassType>(null);\n figcaptionClass = input<NgClassType>(null);\n pictureClass = input<NgClassType>(null);\n defaultSrc = input<PictureSource | string | null>(null);\n alt = input<string | null>(null);\n figcaption = input<string | null>(null);\n width = input(null, { transform: numberAttribute });\n height = input(null, { transform: numberAttribute });\n sizes = input<string | null, string[] | string | null>(null, {\n transform: (v) => normalizePictureSizes(v),\n });\n\n img = viewChild<ElementRef<HTMLImageElement>>('img');\n img$ = toObservable(this.img).pipe(map((ref) => ref?.nativeElement ?? null));\n\n imgLoaded = outputFromObservable(\n this.img$.pipe(switchMap((img) => (img ? fromEvent(img, 'load').pipe(map(() => true)) : of(false)))),\n );\n imgError = outputFromObservable(\n this.img$.pipe(switchMap((img) => (img ? fromEvent(img, 'error').pipe(map(() => true)) : of(false)))),\n );\n\n sourcesWithConfig = computed(() => {\n const sources = this.sources();\n\n return sources.map((source) => this._combineWithConfig(normalizePictureSource(source)));\n });\n\n defaultSourceWithConfig = computed(() => {\n const defaultSrc = this.defaultSrc();\n return defaultSrc ? this._combineWithConfig(normalizePictureSource(defaultSrc)) : null;\n });\n\n _combineWithConfig(src: PictureSource) {\n if (!this._config?.baseUrl || src.srcset.startsWith('http')) {\n return src;\n }\n\n const shouldAppendSlash = !this._config.baseUrl.endsWith('/') && !src.srcset.startsWith('/');\n\n return {\n ...src,\n srcset: `${this._config.baseUrl}${shouldAppendSlash ? '/' : ''}${src.srcset}`,\n };\n }\n}\n","<figure [ngClass]=\"figureClass()\" class=\"et-picture-figure\">\n <picture [ngClass]=\"pictureClass()\" class=\"et-picture-picture\">\n @for (source of sourcesWithConfig(); track source.srcset) {\n <source [type]=\"source.type\" [attr.srcset]=\"source.srcset\" [attr.sizes]=\"sizes()\" />\n }\n\n @if (defaultSourceWithConfig(); as source) {\n <img\n #img\n [attr.loading]=\"hasPriority() ? 'eager' : 'lazy'\"\n [attr.fetchpriority]=\"hasPriority() ? 'high' : 'auto'\"\n [ngClass]=\"imgClass()\"\n [attr.srcset]=\"source.srcset\"\n [attr.type]=\"source.type\"\n [attr.alt]=\"alt()\"\n [attr.width]=\"width()\"\n [attr.height]=\"height()\"\n [attr.sizes]=\"sizes()\"\n class=\"et-picture-img\"\n />\n }\n </picture>\n\n @if (figcaption()) {\n <figcaption [ngClass]=\"figcaptionClass()\" class=\"et-picture-figcaption\">\n {{ figcaption() }}\n </figcaption>\n }\n</figure>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n InjectionToken,\n Input,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { clamp } from '@ethlete/core';\n\nexport type ProgressSpinnerMode = 'determinate' | 'indeterminate';\n\nexport interface ProgressSpinnerDefaultOptions {\n diameter?: number;\n strokeWidth?: number;\n}\n\nexport const PROGRESS_SPINNER_DEFAULT_OPTIONS = new InjectionToken<ProgressSpinnerDefaultOptions>(\n 'PROGRESS_SPINNER_DEFAULT_OPTIONS',\n {\n providedIn: 'root',\n factory: PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY,\n },\n);\n\nexport function PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY(): ProgressSpinnerDefaultOptions {\n return { diameter: BASE_SIZE, strokeWidth: BASE_STROKE_WIDTH };\n}\n\nconst BASE_SIZE = 100;\nconst BASE_STROKE_WIDTH = 10;\n\n@Component({\n selector: 'et-progress-spinner, et-spinner',\n templateUrl: './progress-spinner.component.html',\n styleUrls: ['./progress-spinner.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-progress-spinner',\n role: 'progressbar',\n tabindex: '-1',\n '[class.et-circular-progress--indeterminate]': 'mode === \"indeterminate\"',\n '[class.et-progress-spinner--multi-color]': 'multiColor',\n '[style.width.px]': 'diameter',\n '[style.height.px]': 'diameter',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': '100',\n '[attr.aria-valuenow]': 'mode === \"determinate\" ? value : null',\n '[attr.mode]': 'mode',\n },\n imports: [NgTemplateOutlet],\n})\nexport class ProgressSpinnerComponent {\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _defaults = inject<ProgressSpinnerDefaultOptions>(PROGRESS_SPINNER_DEFAULT_OPTIONS);\n\n @Input({ transform: booleanAttribute })\n multiColor = false;\n\n @Input()\n mode: ProgressSpinnerMode =\n this._elementRef.nativeElement.nodeName.toLowerCase() === 'et-spinner' ? 'indeterminate' : 'determinate';\n\n @Input()\n get value(): number {\n return this.mode === 'determinate' ? this._value : 0;\n }\n set value(v: unknown) {\n this._value = clamp(numberAttribute(v, 0));\n }\n private _value = 0;\n\n @Input({ transform: numberAttribute })\n diameter = BASE_SIZE;\n\n @Input()\n get strokeWidth(): number {\n return this._strokeWidth ?? this.diameter / 10;\n }\n set strokeWidth(value: unknown) {\n this._strokeWidth = numberAttribute(value);\n }\n private _strokeWidth: number | null = null;\n\n constructor() {\n if (this._defaults) {\n if (this._defaults.diameter) {\n this.diameter = this._defaults.diameter;\n }\n\n if (this._defaults.strokeWidth) {\n this.strokeWidth = this._defaults.strokeWidth;\n }\n }\n }\n\n protected _circleRadius() {\n return (this.diameter - BASE_STROKE_WIDTH) / 2;\n }\n\n protected _viewBox() {\n const viewBox = this._circleRadius() * 2 + this.strokeWidth;\n return `0 0 ${viewBox} ${viewBox}`;\n }\n\n protected _strokeCircumference() {\n return 2 * Math.PI * this._circleRadius();\n }\n\n protected _strokeDashOffset() {\n if (this.mode === 'determinate') {\n return (this._strokeCircumference() * (100 - this._value)) / 100;\n }\n return null;\n }\n\n protected _circleStrokeWidth() {\n return (this.strokeWidth / this.diameter) * 100;\n }\n}\n","<ng-template #circle>\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__indeterminate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeCircumference() / 2\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</ng-template>\n\n<ng-template #spinner>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-left\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__gap-patch\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-right\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n</ng-template>\n\n<div class=\"et-circular-progress__determinate-container\" aria-hidden=\"true\">\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__determinate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeDashOffset()\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n class=\"et-circular-progress__determinate-circle\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</div>\n\n<div class=\"et-circular-progress__indeterminate-container\" aria-hidden=\"true\">\n <div [class.et-circular-progress__color-1]=\"multiColor\" class=\"et-circular-progress__spinner-layer\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-2\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-3\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-4\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n</div>\n","import { Directive, InjectionToken, computed, input } from '@angular/core';\nimport {\n AnyQuery,\n AnyQueryCollection,\n HttpStatusCode,\n RequestError,\n isClassValidatorError,\n isSymfonyFormViolationListError,\n isSymfonyListError,\n shouldRetryRequest,\n} from '@ethlete/query';\nimport { QueryErrorList } from '../../types';\n\nexport const QUERY_ERROR_TOKEN = new InjectionToken<QueryErrorDirective>('QUERY_ERROR_DIRECTIVE_TOKEN');\n\nexport const convertHttpStatusCodeToMessageEn = (statusCode: HttpStatusCode) => {\n switch (statusCode) {\n case HttpStatusCode.BadRequest:\n return 'Sorry, we could not process your request. Please try again later.';\n case HttpStatusCode.Unauthorized:\n return 'You are not authorized to perform this action. Please log in to continue.';\n case HttpStatusCode.PaymentRequired:\n return 'Payment is required to complete this action.';\n case HttpStatusCode.Forbidden:\n return 'You do not have permission to perform this action.';\n case HttpStatusCode.NotFound:\n return 'The requested resource was not found.';\n case HttpStatusCode.MethodNotAllowed:\n return 'The requested method is not allowed for this resource.';\n case HttpStatusCode.NotAcceptable:\n return 'The requested resource is not capable of generating a response matching the list of acceptable values.';\n case HttpStatusCode.ProxyAuthenticationRequired:\n return 'Proxy authentication is required to complete this action.';\n case HttpStatusCode.RequestTimeout:\n return 'The server timed out waiting for the request.';\n case HttpStatusCode.Conflict:\n return 'The request conflicts with the current state of the resource.';\n case HttpStatusCode.Gone:\n return 'The requested resource is no longer available and will not be available again.';\n case HttpStatusCode.LengthRequired:\n return 'The request did not specify the length of its content, which is required by the requested resource.';\n case HttpStatusCode.PreconditionFailed:\n return 'The server does not meet one of the preconditions that the requester put on the request.';\n case HttpStatusCode.PayloadTooLarge:\n return 'The request is larger than the server is willing or able to process.';\n case HttpStatusCode.UriTooLong:\n return 'The URL provided was too long for the server to process.';\n case HttpStatusCode.UnsupportedMediaType:\n return 'The request entity has a media type which the server or resource does not support.';\n case HttpStatusCode.RangeNotSatisfiable:\n return 'The client has asked for a portion of the file, but the server cannot supply that portion.';\n case HttpStatusCode.ExpectationFailed:\n return 'The server cannot meet the requirements of the Expect request-header field.';\n case HttpStatusCode.ImATeapot:\n return 'I am a teapot.';\n case HttpStatusCode.MisdirectedRequest:\n return 'The request was directed at a server that is not able to produce a response.';\n case HttpStatusCode.UnprocessableEntity:\n return 'The request was well-formed but was unable to be followed due to semantic errors.';\n case HttpStatusCode.Locked:\n return 'The resource that is being accessed is locked.';\n case HttpStatusCode.FailedDependency:\n return 'The request failed due to failure of a previous request.';\n case HttpStatusCode.TooEarly:\n return 'The server is unwilling to process the request because the user has not been authenticated.';\n case HttpStatusCode.UpgradeRequired:\n return 'The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.';\n case HttpStatusCode.PreconditionRequired:\n return 'The origin server requires the request to be conditional.';\n case HttpStatusCode.TooManyRequests:\n return 'You have sent too many requests in a given amount of time. Please try again later.';\n case HttpStatusCode.RequestHeaderFieldsTooLarge:\n return 'The server is unwilling to process the request because its header fields are too large.';\n case HttpStatusCode.UnavailableForLegalReasons:\n return 'The resource is unavailable due to a legal demand.';\n case HttpStatusCode.InternalServerError:\n return 'Something went wrong on our end. Please try again later.';\n case HttpStatusCode.NotImplemented:\n return 'The server does not support the functionality required to fulfill the request.';\n case HttpStatusCode.BadGateway:\n return 'Something went wrong on our end. Please try again later.';\n case HttpStatusCode.ServiceUnavailable:\n return 'The server is currently unable to handle the request due to a temporary overload or maintenance of the server.';\n case HttpStatusCode.GatewayTimeout:\n return 'The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URL or some other auxiliary server it needed to access in attempting to complete the request.';\n case HttpStatusCode.HttpVersionNotSupported:\n return 'The server does not support the HTTP protocol version used in the request.';\n case HttpStatusCode.VariantAlsoNegotiates:\n return 'The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.';\n case HttpStatusCode.InsufficientStorage:\n return 'The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.';\n case HttpStatusCode.LoopDetected:\n return 'The server detected an infinite loop while processing the request.';\n case HttpStatusCode.NotExtended:\n return 'Further extensions to the request are required for the server to fulfill it.';\n case HttpStatusCode.NetworkAuthenticationRequired:\n return 'You need to authenticate to gain network access.';\n default:\n return 'Something went wrong. Check your internet connection and try again later.';\n }\n};\n\nexport const convertHttpStatusCodeToMessageDe = (statusCode: HttpStatusCode) => {\n switch (statusCode) {\n case HttpStatusCode.BadRequest:\n return 'Entschuldigung, wir konnten Ihre Anfrage nicht bearbeiten. Bitte versuchen Sie es später erneut.';\n case HttpStatusCode.Unauthorized:\n return 'Sie sind nicht berechtigt, diese Aktion auszuführen. Bitte melden Sie sich an, um fortzufahren.';\n case HttpStatusCode.PaymentRequired:\n return 'Zur Ausführung dieser Aktion ist eine Zahlung erforderlich.';\n case HttpStatusCode.Forbidden:\n return 'Sie haben keine Berechtigung, diese Aktion auszuführen.';\n case HttpStatusCode.NotFound:\n return 'Die angeforderte Ressource wurde nicht gefunden.';\n case HttpStatusCode.MethodNotAllowed:\n return 'Die angeforderte Methode ist für diese Ressource nicht zulässig.';\n case HttpStatusCode.NotAcceptable:\n return 'Die angeforderte Ressource ist nicht in der Lage, eine Antwort zu generieren, die der Liste der akzeptablen Werte entspricht.';\n case HttpStatusCode.ProxyAuthenticationRequired:\n return 'Zur Ausführung dieser Aktion ist eine Proxy-Authentifizierung erforderlich.';\n case HttpStatusCode.RequestTimeout:\n return 'Der Server hat auf die Anforderung gewartet.';\n case HttpStatusCode.Conflict:\n return 'Die Anforderung steht im Widerspruch zum aktuellen Zustand der Ressource.';\n case HttpStatusCode.Gone:\n return 'Die angeforderte Ressource ist nicht mehr verfügbar und wird auch nicht mehr verfügbar sein.';\n case HttpStatusCode.LengthRequired:\n return 'Die Anforderung hat die Länge ihres Inhalts nicht angegeben, die von der angeforderten Ressource benötigt wird.';\n case HttpStatusCode.PreconditionFailed:\n return 'Der Server erfüllt eine der Voraussetzungen nicht, die der Anforderer an die Anforderung gestellt hat.';\n case HttpStatusCode.PayloadTooLarge:\n return 'Die Anforderung ist größer als der Server bereit oder in der Lage ist, zu verarbeiten.';\n case HttpStatusCode.UriTooLong:\n return 'Die bereitgestellte URL war für den Server zu lang, um sie zu verarbeiten.';\n case HttpStatusCode.UnsupportedMediaType:\n return 'Die Anforderungseinheit hat einen Medientyp, den der Server oder die Ressource nicht unterstützt.';\n case HttpStatusCode.RangeNotSatisfiable:\n return 'Der Client hat einen Teil der Datei angefordert, aber der Server kann diesen Teil nicht liefern.';\n case HttpStatusCode.ExpectationFailed:\n return 'Der Server kann die Anforderungen des Erwartung-Anforderungskopffelds nicht erfüllen.';\n case HttpStatusCode.ImATeapot:\n return 'Ich bin eine Teekanne.';\n case HttpStatusCode.MisdirectedRequest:\n return 'Die Anforderung wurde an einen Server gerichtet, der nicht in der Lage ist, eine Antwort zu generieren.';\n case HttpStatusCode.UnprocessableEntity:\n return 'Die Anforderung war gut formuliert, konnte aber aufgrund semantischer Fehler nicht befolgt werden.';\n case HttpStatusCode.Locked:\n return 'Die Ressource, auf die zugegriffen wird, ist gesperrt.';\n case HttpStatusCode.FailedDependency:\n return 'Die Anforderung ist aufgrund eines Fehlers einer vorherigen Anforderung fehlgeschlagen.';\n case HttpStatusCode.TooEarly:\n return 'Der Server ist nicht bereit, die Anforderung zu verarbeiten, weil der Benutzer nicht authentifiziert wurde.';\n case HttpStatusCode.UpgradeRequired:\n return 'Der Client sollte zu einem anderen Protokoll wie TLS/1.0 wechseln, das im Upgrade-Anforderungskopffeld angegeben ist.';\n case HttpStatusCode.PreconditionRequired:\n return 'Der Ursprungsserver erfordert, dass die Anforderung bedingt ist.';\n case HttpStatusCode.TooManyRequests:\n return 'Sie haben in einer bestimmten Zeit zu viele Anfragen gesendet. Bitte versuchen Sie es später erneut.';\n case HttpStatusCode.RequestHeaderFieldsTooLarge:\n return 'Der Server ist nicht bereit, die Anforderung zu verarbeiten, weil seine Kopffelder zu groß sind.';\n case HttpStatusCode.UnavailableForLegalReasons:\n return 'Die Ressource ist aufgrund einer rechtlichen Forderung nicht verfügbar.';\n case HttpStatusCode.InternalServerError:\n return 'Etwas ist schief gelaufen. Bitte versuchen Sie es später erneut.';\n case HttpStatusCode.NotImplemented:\n return 'Der Server unterstützt die zur Erfüllung der Anforderung erforderliche Funktionalität nicht.';\n case HttpStatusCode.BadGateway:\n return 'Etwas ist schief gelaufen. Bitte versuchen Sie es später erneut.';\n case HttpStatusCode.ServiceUnavailable:\n return 'Der Server kann die Anforderung derzeit nicht bearbeiten, da er vorübergehend überlastet oder gewartet wird.';\n case HttpStatusCode.GatewayTimeout:\n return 'Der Server hat beim Versuch, die Anforderung abzuschließen, keine rechtzeitige Antwort vom Server erhalten.';\n case HttpStatusCode.HttpVersionNotSupported:\n return 'Der Server unterstützt die in der Anforderung verwendete HTTP-Protokollversion nicht.';\n case HttpStatusCode.VariantAlsoNegotiates:\n return 'Der Server hat einen internen Konfigurationsfehler: Die ausgewählte Variantenressource ist so konfiguriert, dass sie sich selbst in die transparente Inhaltsverhandlung einbindet, und ist daher kein geeigneter Endpunkt im Verhandlungsprozess.';\n case HttpStatusCode.InsufficientStorage:\n return 'Die Methode konnte auf die Ressource nicht angewendet werden, weil der Server nicht in der Lage ist, die für die erfolgreiche Ausführung der Anforderung erforderliche Darstellung zu speichern.';\n case HttpStatusCode.LoopDetected:\n return 'Der Server hat eine Endlosschleife erkannt, während er die Anforderung verarbeitet.';\n case HttpStatusCode.NotExtended:\n return 'Weitere Erweiterungen der Anforderung sind erforderlich, damit der Server sie erfüllen kann.';\n case HttpStatusCode.NetworkAuthenticationRequired:\n return 'Sie müssen sich authentifizieren, um Zugang zum Netzwerk zu erhalten.';\n default:\n return 'Etwas ist schief gelaufen. Überprüfen Sie Ihre Internetverbindung und versuchen Sie es später erneut.';\n }\n};\n\nexport const convertHttpStatusCodeToTitleEn = (statusCode: HttpStatusCode) => {\n switch (statusCode) {\n case HttpStatusCode.BadRequest:\n return 'Bad request';\n case HttpStatusCode.Unauthorized:\n return 'Unauthorized';\n case HttpStatusCode.PaymentRequired:\n return 'Payment required';\n case HttpStatusCode.Forbidden:\n return 'Forbidden';\n case HttpStatusCode.NotFound:\n return 'Not found';\n case HttpStatusCode.MethodNotAllowed:\n return 'Method not allowed';\n case HttpStatusCode.NotAcceptable:\n return 'Not acceptable';\n case HttpStatusCode.ProxyAuthenticationRequired:\n return 'Proxy authentication required';\n case HttpStatusCode.RequestTimeout:\n return 'Request timeout';\n case HttpStatusCode.Conflict:\n return 'Conflict';\n case HttpStatusCode.Gone:\n return 'Gone';\n case HttpStatusCode.LengthRequired:\n return 'Length required';\n case HttpStatusCode.PreconditionFailed:\n return 'Precondition failed';\n case HttpStatusCode.PayloadTooLarge:\n return 'Payload too large';\n case HttpStatusCode.UriTooLong:\n return 'URI too long';\n case HttpStatusCode.UnsupportedMediaType:\n return 'Unsupported media type';\n case HttpStatusCode.RangeNotSatisfiable:\n return 'Range not satisfiable';\n case HttpStatusCode.ExpectationFailed:\n return 'Expectation failed';\n case HttpStatusCode.ImATeapot:\n return 'I am a teapot';\n case HttpStatusCode.MisdirectedRequest:\n return 'Misdirected request';\n case HttpStatusCode.UnprocessableEntity:\n return 'Unprocessable entity';\n case HttpStatusCode.Locked:\n return 'Locked';\n case HttpStatusCode.FailedDependency:\n return 'Failed dependency';\n case HttpStatusCode.TooEarly:\n return 'Too early';\n case HttpStatusCode.UpgradeRequired:\n return 'Upgrade required';\n case HttpStatusCode.PreconditionRequired:\n return 'Precondition required';\n case HttpStatusCode.TooManyRequests:\n return 'Too many requests';\n case HttpStatusCode.RequestHeaderFieldsTooLarge:\n return 'Request header fields too large';\n case HttpStatusCode.UnavailableForLegalReasons:\n return 'Unavailable for legal reasons';\n case HttpStatusCode.InternalServerError:\n return 'Internal server error';\n case HttpStatusCode.NotImplemented:\n return 'Not implemented';\n case HttpStatusCode.BadGateway:\n return 'Bad gateway';\n case HttpStatusCode.ServiceUnavailable:\n return 'Service unavailable';\n case HttpStatusCode.GatewayTimeout:\n return 'Gateway timeout';\n case HttpStatusCode.HttpVersionNotSupported:\n return 'HTTP version not supported';\n case HttpStatusCode.VariantAlsoNegotiates:\n return 'Variant also negotiates';\n case HttpStatusCode.InsufficientStorage:\n return 'Insufficient storage';\n case HttpStatusCode.LoopDetected:\n return 'Loop detected';\n case HttpStatusCode.NotExtended:\n return 'Not extended';\n case HttpStatusCode.NetworkAuthenticationRequired:\n return 'Network authentication required';\n default:\n return 'Something went wrong';\n }\n};\n\nexport const convertHttpStatusCodeToTitleDe = (statusCode: HttpStatusCode) => {\n switch (statusCode) {\n case HttpStatusCode.BadRequest:\n return 'Ungültige Anfrage';\n case HttpStatusCode.Unauthorized:\n return 'Nicht autorisiert';\n case HttpStatusCode.PaymentRequired:\n return 'Zahlung erforderlich';\n case HttpStatusCode.Forbidden:\n return 'Verboten';\n case HttpStatusCode.NotFound:\n return 'Nicht gefunden';\n case HttpStatusCode.MethodNotAllowed:\n return 'Methode nicht erlaubt';\n case HttpStatusCode.NotAcceptable:\n return 'Nicht akzeptabel';\n case HttpStatusCode.ProxyAuthenticationRequired:\n return 'Proxy-Authentifizierung erforderlich';\n case HttpStatusCode.RequestTimeout:\n return 'Anforderungszeitüberschreitung';\n case HttpStatusCode.Conflict:\n return 'Konflikt';\n case HttpStatusCode.Gone:\n return 'Weg';\n case HttpStatusCode.LengthRequired:\n return 'Länge erforderlich';\n case HttpStatusCode.PreconditionFailed:\n return 'Vorbedingung fehlgeschlagen';\n case HttpStatusCode.PayloadTooLarge:\n return 'Nutzlast zu groß';\n case HttpStatusCode.UriTooLong:\n return 'URI zu lang';\n case HttpStatusCode.UnsupportedMediaType:\n return 'Nicht unterstützter Medientyp';\n case HttpStatusCode.RangeNotSatisfiable:\n return 'Bereich nicht zufriedenstellend';\n case HttpStatusCode.ExpectationFailed:\n return 'Erwartung fehlgeschlagen';\n case HttpStatusCode.ImATeapot:\n return 'Ich bin eine Teekanne';\n case HttpStatusCode.MisdirectedRequest:\n return 'Fehlgeleitete Anfrage';\n case HttpStatusCode.UnprocessableEntity:\n return 'Unverarbeitbare Entität';\n case HttpStatusCode.Locked:\n return 'Gesperrt';\n case HttpStatusCode.FailedDependency:\n return 'Fehlgeschlagene Abhängigkeit';\n case HttpStatusCode.TooEarly:\n return 'Zu früh';\n case HttpStatusCode.UpgradeRequired:\n return 'Upgrade erforderlich';\n case HttpStatusCode.PreconditionRequired:\n return 'Vorbedingung erforderlich';\n case HttpStatusCode.TooManyRequests:\n return 'Zu viele Anfragen';\n case HttpStatusCode.RequestHeaderFieldsTooLarge:\n return 'Anforderungskopffelder zu groß';\n case HttpStatusCode.UnavailableForLegalReasons:\n return 'Aus rechtlichen Gründen nicht verfügbar';\n case HttpStatusCode.InternalServerError:\n return 'Interner Serverfehler';\n case HttpStatusCode.NotImplemented:\n return 'Nicht implementiert';\n case HttpStatusCode.BadGateway:\n return 'Schlechtes Gateway';\n case HttpStatusCode.ServiceUnavailable:\n return 'Dienst nicht verfügbar';\n case HttpStatusCode.GatewayTimeout:\n return 'Gateway-Zeitüberschreitung';\n case HttpStatusCode.HttpVersionNotSupported:\n return 'HTTP-Version nicht unterstützt';\n case HttpStatusCode.VariantAlsoNegotiates:\n return 'Variante verhandelt auch';\n case HttpStatusCode.InsufficientStorage:\n return 'Unzureichender Speicher';\n case HttpStatusCode.LoopDetected:\n return 'Schleifenerkennung';\n case HttpStatusCode.NotExtended:\n return 'Nicht erweitert';\n case HttpStatusCode.NetworkAuthenticationRequired:\n return 'Netzwerkauthentifizierung erforderlich';\n default:\n return 'Etwas ist schief gelaufen';\n }\n};\n\n@Directive({\n standalone: true,\n exportAs: 'etQueryError',\n providers: [\n {\n provide: QUERY_ERROR_TOKEN,\n useExisting: QueryErrorDirective,\n },\n ],\n})\nexport class QueryErrorDirective {\n error = input.required<RequestError | null>();\n query = input.required<AnyQuery | AnyQueryCollection | null>();\n language = input<'en' | 'de'>('en');\n\n readonly errorList = computed(() => {\n const error = this.error();\n\n if (!error) {\n return null;\n }\n\n const retryResult = shouldRetryRequest({ error, currentRetryCount: 0, headers: {} });\n\n const errorList: QueryErrorList = {\n canBeRetried: retryResult.retry,\n retryDelay: retryResult.delay ?? 0,\n isList: false,\n items: [],\n title:\n error.statusText.toLowerCase() === 'ok'\n ? this.language() === 'en'\n ? convertHttpStatusCodeToTitleEn(error.status)\n : convertHttpStatusCodeToTitleDe(error.status)\n : error.statusText,\n };\n\n const detail = error.detail;\n const defaultErrorMessage = `${this.language() === 'en' ? convertHttpStatusCodeToMessageEn(error.status) : convertHttpStatusCodeToMessageDe(error.status)} (Code: ${error.status})`;\n\n if (isClassValidatorError(detail)) {\n for (const error of detail.message) {\n errorList.items.push({ message: error });\n }\n } else if (isSymfonyFormViolationListError(detail)) {\n for (const violation of detail.violations) {\n errorList.items.push({ message: violation.message });\n }\n } else if (isSymfonyListError(detail)) {\n for (const error of detail) {\n errorList.items.push({ message: error.message });\n }\n } else if (typeof detail === 'object' && !!detail && 'message' in detail && typeof detail.message === 'string') {\n errorList.items.push({ message: detail.message });\n } else if (typeof detail === 'object' && !!detail && 'detail' in detail && typeof detail.detail === 'string') {\n // Symfony error response (during development)\n errorList.items.push({ message: detail.detail });\n } else {\n errorList.items.push({ message: defaultErrorMessage });\n }\n\n errorList.isList = errorList.items.length > 1;\n\n if (errorList.items.length === 1) {\n const compareString = (str: string) => str.toLowerCase().replace(/\\s/g, '').replace(/\\.|,/g, '');\n\n if (compareString(errorList.items[0]!.message) === compareString(errorList.title)) {\n // Often the error title is the same as the error message. In this case we simply use the default error message as a message.\n // This way the same text is at least not displayed twice.\n errorList.items[0]!.message = defaultErrorMessage;\n }\n }\n\n return errorList;\n });\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TrackByFunction,\n ViewEncapsulation,\n computed,\n inject,\n} from '@angular/core';\nimport { extractQuery } from '@ethlete/query';\nimport { QUERY_ERROR_TOKEN, QueryErrorDirective } from '../../directives/query-error';\nimport { QueryErrorItem } from '../../types';\n\n@Component({\n selector: 'et-query-error',\n templateUrl: './query-error.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-query-error-host',\n },\n imports: [NgClass],\n hostDirectives: [{ directive: QueryErrorDirective, inputs: ['error', 'query', 'language'] }],\n})\nexport class QueryErrorComponent {\n protected readonly host = inject(QUERY_ERROR_TOKEN);\n protected readonly errorList = inject(QUERY_ERROR_TOKEN).errorList;\n\n protected readonly canBeRetried = computed(() => this.errorList()?.canBeRetried ?? false);\n protected readonly isList = computed(() => this.errorList()?.isList ?? false);\n\n protected trackByFn: TrackByFunction<QueryErrorItem> = (index, item) => item.message;\n\n protected retry() {\n extractQuery(this.host.query())?.execute({ skipCache: true });\n }\n}\n","<div\n [ngClass]=\"{ 'et-query-error--can-be-retried': canBeRetried(), 'et-query-error--is-list': isList() }\"\n class=\"et-query-error\"\n>\n @if (errorList(); as errorList) {\n <h3 class=\"et-query-error-title\">{{ errorList.title }}</h3>\n\n @if (!errorList.isList) {\n <p class=\"et-query-error-message\">{{ errorList.items[0]!.message }}</p>\n }\n\n @if (errorList.isList) {\n <ul class=\"et-query-error-list\">\n @for (item of errorList.items; track trackByFn($index, item)) {\n <li class=\"et-query-error-list-item\">\n {{ item.message }}\n </li>\n }\n </ul>\n }\n\n @if (errorList.canBeRetried) {\n <button (click)=\"retry()\" class=\"et-query-error-retry-button\">\n {{ host.language() === 'en' ? 'Retry' : 'Erneut versuchen' }}\n </button>\n }\n }\n</div>\n","import { Directive, InjectionToken } from '@angular/core';\n\nexport const SCROLLABLE_PLACEHOLDER_ITEM_TEMPLATE_TOKEN =\n new InjectionToken<ScrollablePlaceholderItemTemplateDirective>('SCROLLABLE_PLACEHOLDER_ITEM_TEMPLATE_TOKEN');\n\n@Directive({\n selector: 'ng-template[etScrollablePlaceholderItemTemplate]',\n standalone: true,\n providers: [\n {\n provide: SCROLLABLE_PLACEHOLDER_ITEM_TEMPLATE_TOKEN,\n useExisting: ScrollablePlaceholderItemTemplateDirective,\n },\n ],\n})\nexport class ScrollablePlaceholderItemTemplateDirective {}\n","import { Directive, InjectionToken } from '@angular/core';\n\nexport const SCROLLABLE_PLACEHOLDER_OVERLAY_TEMPLATE_TOKEN =\n new InjectionToken<ScrollablePlaceholderOverlayTemplateDirective>('SCROLLABLE_PLACEHOLDER_OVERLAY_TEMPLATE_TOKEN');\n\n@Directive({\n selector: 'ng-template[etScrollablePlaceholderOverlayTemplate]',\n standalone: true,\n providers: [\n {\n provide: SCROLLABLE_PLACEHOLDER_OVERLAY_TEMPLATE_TOKEN,\n useExisting: ScrollablePlaceholderOverlayTemplateDirective,\n },\n ],\n})\nexport class ScrollablePlaceholderOverlayTemplateDirective {}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChild,\n input,\n numberAttribute,\n} from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { SCROLLABLE_PLACEHOLDER_ITEM_TEMPLATE_TOKEN } from '../../directives/scrollable-placeholder-item-template';\nimport { SCROLLABLE_PLACEHOLDER_OVERLAY_TEMPLATE_TOKEN } from '../../directives/scrollable-placeholder-overlay-template';\n\n@Component({\n selector: 'et-scrollable-placeholder',\n templateUrl: './scrollable-placeholder.component.html',\n styleUrl: './scrollable-placeholder.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, NgClass],\n host: {\n class: 'et-scrollable-placeholder',\n },\n})\nexport class ScrollablePlaceholderComponent {\n renderMasks = input(true, { transform: booleanAttribute });\n renderStartMask = input(false, { transform: booleanAttribute });\n renderEndMask = input(true, { transform: booleanAttribute });\n repeatContentCount = input(1, { transform: numberAttribute });\n scrollableClass = input<NgClassType>();\n\n repeat = computed(() => Array.from({ length: this.repeatContentCount() }));\n\n contentTemplate = contentChild.required(SCROLLABLE_PLACEHOLDER_ITEM_TEMPLATE_TOKEN, { read: TemplateRef });\n overlayTemplate = contentChild(SCROLLABLE_PLACEHOLDER_OVERLAY_TEMPLATE_TOKEN, { read: TemplateRef });\n}\n","<ng-template>\n <ng-content />\n</ng-template>\n\n<div class=\"et-scrollable-placeholder-wrapper\">\n <div [ngClass]=\"scrollableClass()\" class=\"et-scrollable-placeholder-container\">\n <div class=\"et-scroll-observer-first-element\"></div>\n @for (\n _ of repeat();\n track index;\n let index = $index;\n let even = $even;\n let odd = $odd;\n let first = $first;\n let last = $last\n ) {\n <ng-container *ngTemplateOutlet=\"contentTemplate(); context: { index, even, odd, first, last }\" />\n }\n <div class=\"et-scroll-observer-last-element\"></div>\n </div>\n\n @if (renderMasks()) {\n <div class=\"et-scrollable-masks\">\n @if (renderStartMask()) {\n <div class=\"et-scrollable-mask et-scrollable-mask--start\"></div>\n }\n @if (renderEndMask()) {\n <div class=\"et-scrollable-mask et-scrollable-mask--end\"></div>\n }\n </div>\n }\n\n @if (overlayTemplate(); as overlayTemplate) {\n <div class=\"et-scrollable-placeholder-overlay\">\n <ng-container *ngTemplateOutlet=\"overlayTemplate\" />\n </div>\n }\n</div>\n","import { ScrollableComponent } from './components/scrollable';\nimport { ScrollablePlaceholderComponent } from './components/scrollable-placeholder';\nimport { ScrollableIgnoreChildDirective } from './directives/scrollable-ignore-child';\nimport { ScrollableIsActiveChildDirective } from './directives/scrollable-is-active-child';\nimport { ScrollableLoadingTemplateDirective } from './directives/scrollable-loading-template';\nimport { ScrollablePlaceholderItemTemplateDirective } from './directives/scrollable-placeholder-item-template';\nimport { ScrollablePlaceholderOverlayTemplateDirective } from './directives/scrollable-placeholder-overlay-template';\n\nexport const ScrollableImports = [\n ScrollableComponent,\n ScrollableIsActiveChildDirective,\n ScrollableIgnoreChildDirective,\n ScrollableLoadingTemplateDirective,\n ScrollablePlaceholderItemTemplateDirective,\n ScrollablePlaceholderOverlayTemplateDirective,\n ScrollablePlaceholderComponent,\n] as const;\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\n\n@Component({\n selector: 'et-skeleton',\n template: ` <span class=\"cdk-visually-hidden\"> {{ loadingAllyText }} </span> <ng-content />`,\n styleUrls: ['skeleton.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-skeleton',\n },\n})\nexport class SkeletonComponent {\n @Input()\n loadingAllyText = 'Loading...';\n\n @Input({ transform: booleanAttribute })\n @HostBinding('class.et-skeleton--animated')\n animated = true;\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'et-skeleton-item',\n template: ``,\n styleUrls: ['skeleton-item.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'et-skeleton-item',\n },\n})\nexport class SkeletonItemComponent {\n @HostBinding('attr.aria-hidden')\n ariaHidden = true;\n}\n","import { SkeletonComponent } from './components/skeleton';\nimport { SkeletonItemComponent } from './partials/skeleton-item';\n\nexport const SkeletonImports = [SkeletonComponent, SkeletonItemComponent] as const;\n","import { CdkColumnDef, CDK_TABLE } from '@angular/cdk/table';\nimport { Directive, Inject, InjectionToken, Input, Optional } from '@angular/core';\n\nexport const SORT_HEADER_COLUMN_DEF = new InjectionToken<ColumnDefDirective>('SortHeaderColumnDef');\n\n@Directive({\n selector: '[etColumnDef]',\n providers: [\n { provide: CdkColumnDef, useExisting: ColumnDefDirective },\n { provide: SORT_HEADER_COLUMN_DEF, useExisting: ColumnDefDirective },\n ],\n standalone: true,\n})\nexport class ColumnDefDirective extends CdkColumnDef {\n @Input('etColumnDef')\n override get name(): string {\n return this._name;\n }\n override set name(name: string) {\n this._setNameInput(name);\n }\n\n constructor(@Inject(CDK_TABLE) @Optional() _table?: unknown) {\n super(_table);\n }\n\n protected override _updateColumnCssClassName() {\n super._updateColumnCssClassName();\n this._columnCssClassName?.push(`et-column-${this.cssClassFriendlyName}`);\n }\n}\n","import {\n Directive,\n EventEmitter,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Observable, Subject, Subscriber } from 'rxjs';\nimport { SortDirection } from '../../types';\nimport { Sort, SortDefaultOptions, Sortable } from './sort.types';\n\nexport const SORT_DEFAULT_OPTIONS = new InjectionToken<SortDefaultOptions>('SortDefaultOptions');\n\n@Directive({\n selector: '[etSort]',\n exportAs: 'etSort',\n host: { class: 'et-sort' },\n standalone: true,\n})\nexport class SortDirective implements OnChanges, OnDestroy, OnInit {\n private readonly _defaultOptions = inject(SORT_DEFAULT_OPTIONS, { optional: true });\n\n sortables = new Map<string, Sortable>();\n\n readonly _stateChanges = new Subject<void>();\n\n _isInitialized = false;\n\n _pendingSubscribers: Subscriber<void>[] | null = [];\n\n initialized = new Observable<void>((subscriber) => {\n if (this._isInitialized) {\n this._notifySubscriber(subscriber);\n } else {\n this._pendingSubscribers?.push(subscriber);\n }\n });\n\n @Input({ alias: 'etSortDisabled', transform: booleanAttribute })\n disabled = false;\n\n @Input('etSortActive')\n active?: string;\n\n @Input('etSortStart')\n start: SortDirection = 'asc';\n\n @Input('etSortDirection')\n get direction(): SortDirection {\n return this._direction;\n }\n set direction(direction: SortDirection) {\n this._direction = direction;\n }\n private _direction: SortDirection = '';\n\n @Input({ alias: 'etSortDisableClear', transform: booleanAttribute })\n disableClear = false;\n\n @Input()\n sortControl?: FormControl<Sort | null>;\n\n @Input()\n sortByControl?: FormControl<string | null>;\n\n @Input()\n sortDirectionControl?: FormControl<SortDirection | null>;\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('etSortChange')\n readonly sortChange: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n register(sortable: Sortable): void {\n this.sortables.set(sortable.id, sortable);\n }\n\n deregister(sortable: Sortable): void {\n this.sortables.delete(sortable.id);\n }\n\n sort(sortable: Sortable): void {\n if (this.active != sortable.id) {\n this.active = sortable.id;\n this.direction = sortable.start ? sortable.start : this.start;\n } else {\n this.direction = this.getNextSortDirection(sortable);\n }\n\n const sort: Sort = { active: this.active, direction: this.direction };\n\n this.sortChange.emit(sort);\n this.sortControl?.setValue(sort);\n this.sortByControl?.setValue(sort.active);\n this.sortDirectionControl?.setValue(sort.direction);\n }\n\n getNextSortDirection(sortable: Sortable): SortDirection {\n if (!sortable) {\n return '';\n }\n\n const disableClear = sortable?.disableClear ?? this.disableClear ?? !!this._defaultOptions?.disableClear;\n const sortDirectionCycle = getSortDirectionCycle(sortable.start || this.start, disableClear);\n\n let nextDirectionIndex = sortDirectionCycle.indexOf(this.direction) + 1;\n if (nextDirectionIndex >= sortDirectionCycle.length) {\n nextDirectionIndex = 0;\n }\n return sortDirectionCycle[nextDirectionIndex] as SortDirection;\n }\n\n ngOnInit() {\n this._markInitialized();\n\n if (this.sortControl?.value) {\n this.active = this.sortControl.value.active;\n this.direction = this.sortControl.value.direction;\n } else if (this.sortByControl?.value && this.sortDirectionControl?.value) {\n this.active = this.sortByControl.value;\n this.direction = this.sortDirectionControl.value;\n }\n }\n\n ngOnChanges() {\n this._stateChanges.next();\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n\n _markInitialized(): void {\n this._isInitialized = true;\n\n this._pendingSubscribers?.forEach(this._notifySubscriber);\n this._pendingSubscribers = null;\n }\n\n _notifySubscriber(subscriber: Subscriber<void>): void {\n subscriber.next();\n subscriber.complete();\n }\n}\n\n/** Returns the sort direction cycle to use given the provided parameters of order and clear. */\nfunction getSortDirectionCycle(start: SortDirection, disableClear: boolean): SortDirection[] {\n const sortOrder: SortDirection[] = ['asc', 'desc'];\n if (start == 'desc') {\n sortOrder.reverse();\n }\n if (!disableClear) {\n sortOrder.push('');\n }\n\n return sortOrder;\n}\n","import { Injectable, SkipSelf, Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class SortHeaderIntl {\n readonly changes: Subject<void> = new Subject<void>();\n}\n\nexport function SORT_HEADER_INTL_PROVIDER_FACTORY(parentIntl: SortHeaderIntl) {\n return parentIntl || new SortHeaderIntl();\n}\n\nexport const SORT_HEADER_INTL_PROVIDER = {\n provide: SortHeaderIntl,\n deps: [[new Optional(), new SkipSelf(), SortHeaderIntl]],\n useFactory: SORT_HEADER_INTL_PROVIDER_FACTORY,\n};\n","import { AriaDescriber, FocusMonitor } from '@angular/cdk/a11y';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { Subscription, merge } from 'rxjs';\nimport { ChevronIconComponent } from '../../../icons/chevron-icon';\nimport { SORT_HEADER_COLUMN_DEF } from '../../../table/partials/cells/column-def';\nimport { SORT_DEFAULT_OPTIONS, SortDirective, SortHeaderArrowPosition, Sortable } from '../../partials/sort';\nimport { SortHeaderIntl } from '../../services';\nimport { SortDirection } from '../../types';\nimport { ArrowViewStateTransition } from './sort-header.types';\n\n@Component({\n selector: '[et-sort-header]',\n exportAs: 'etSortHeader',\n templateUrl: 'sort-header.component.html',\n styleUrls: ['sort-header.component.scss'],\n host: {\n class: 'et-sort-header',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ChevronIconComponent],\n})\nexport class SortHeaderComponent implements Sortable, OnDestroy, OnInit, AfterViewInit {\n private readonly _intl = inject(SortHeaderIntl);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _sort = inject(SortDirective, { optional: true });\n private readonly _columnDef = inject(SORT_HEADER_COLUMN_DEF, { optional: true });\n private readonly _focusMonitor = inject(FocusMonitor);\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _ariaDescriber = inject(AriaDescriber);\n private readonly _sortDefaultOptions = inject(SORT_DEFAULT_OPTIONS, { optional: true });\n\n private _rerenderSubscription?: Subscription;\n private _sortButton!: HTMLElement;\n\n _showIndicatorHint = false;\n _viewState: ArrowViewStateTransition = {};\n _arrowDirection: SortDirection = '';\n\n @Input({ transform: booleanAttribute })\n @HostBinding('class.et-sort-header-disabled')\n disabled = false;\n\n @Input('et-sort-header')\n id!: string;\n\n @Input()\n arrowPosition: SortHeaderArrowPosition = 'after';\n\n @Input()\n start!: SortDirection;\n\n @Input()\n get sortActionDescription(): string {\n return this._sortActionDescription;\n }\n set sortActionDescription(value: string) {\n this._updateSortActionDescription(value);\n }\n private _sortActionDescription = 'Sort';\n\n @Input({ transform: booleanAttribute })\n disableClear = false;\n\n get _isSorted() {\n if (!this._sort) {\n return false;\n }\n\n return this._sort.active == this.id && (this._sort.direction === 'asc' || this._sort.direction === 'desc');\n }\n\n get _getArrowDirectionState() {\n return `${this._isSorted ? 'active-' : ''}${this._arrowDirection}`;\n }\n\n get _getArrowViewState() {\n const fromState = this._viewState.fromState;\n return (fromState ? `${fromState}-to-` : '') + this._viewState.toState;\n }\n\n get _isDisabled() {\n return this._sort?.disabled || this.disabled;\n }\n\n get _renderArrow() {\n return !this._isDisabled || this._isSorted;\n }\n\n @HostBinding('attr.aria-sort')\n get _ariaSortAttr() {\n if (!this._isSorted) {\n return 'none';\n }\n\n return this._sort?.direction == 'asc' ? 'ascending' : 'descending';\n }\n\n constructor() {\n if (this._sortDefaultOptions?.arrowPosition) {\n this.arrowPosition = this._sortDefaultOptions?.arrowPosition;\n }\n\n this._handleStateChanges();\n }\n\n ngOnInit() {\n if (!this.id && this._columnDef) {\n this.id = this._columnDef.name;\n }\n\n this._updateArrowDirection();\n this._setAnimationTransitionState({\n toState: this._isSorted ? 'active' : this._arrowDirection,\n });\n\n this._sort?.register(this);\n\n this._sortButton = this._elementRef.nativeElement.querySelector('.et-sort-header-container') as HTMLElement;\n this._updateSortActionDescription(this._sortActionDescription);\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true).subscribe((origin) => {\n const newState = !!origin;\n if (newState !== this._showIndicatorHint) {\n this._setIndicatorHintVisible(newState);\n this._changeDetectorRef.markForCheck();\n }\n });\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._sort?.deregister(this);\n this._rerenderSubscription?.unsubscribe();\n }\n\n @HostListener('mouseenter')\n _handleMouseEnter() {\n this._setIndicatorHintVisible(true);\n }\n\n @HostListener('mouseleave')\n _handleMouseLeave() {\n this._setIndicatorHintVisible(false);\n }\n\n _setIndicatorHintVisible(visible: boolean) {\n if (this._isDisabled && visible) {\n return;\n }\n\n this._showIndicatorHint = visible;\n\n if (!this._isSorted) {\n this._updateArrowDirection();\n if (this._showIndicatorHint) {\n this._setAnimationTransitionState({ fromState: this._arrowDirection, toState: 'hint' });\n } else {\n this._setAnimationTransitionState({ fromState: 'hint', toState: this._arrowDirection });\n }\n }\n }\n\n _setAnimationTransitionState(viewState: ArrowViewStateTransition) {\n this._viewState = viewState || {};\n }\n\n _toggleOnInteraction() {\n this._sort?.sort(this);\n }\n\n @HostListener('click')\n _handleClick() {\n if (!this._isDisabled) {\n this._sort?.sort(this);\n }\n }\n\n @HostListener('keydown', ['$event'])\n _handleKeydown(event: KeyboardEvent) {\n if (!this._isDisabled && (event.keyCode === SPACE || event.keyCode === ENTER)) {\n event.preventDefault();\n this._toggleOnInteraction();\n }\n }\n\n _updateArrowDirection() {\n if (!this._sort) {\n return;\n }\n\n this._arrowDirection = this._isSorted ? this._sort.direction : this.start || this._sort.start;\n }\n\n private _updateSortActionDescription(newDescription: string) {\n if (this._sortButton) {\n this._ariaDescriber?.removeDescription(this._sortButton, this._sortActionDescription);\n this._ariaDescriber?.describe(this._sortButton, newDescription);\n }\n\n this._sortActionDescription = newDescription;\n }\n\n private _handleStateChanges() {\n if (!this._sort) {\n return;\n }\n\n this._rerenderSubscription = merge(this._sort.sortChange, this._sort._stateChanges, this._intl.changes).subscribe(\n () => {\n if (this._isSorted) {\n this._updateArrowDirection();\n\n this._setAnimationTransitionState({ fromState: this._arrowDirection, toState: 'active' });\n this._showIndicatorHint = false;\n }\n\n if (!this._isSorted && this._viewState && this._viewState.toState === 'active') {\n this._setAnimationTransitionState({ fromState: 'active', toState: this._arrowDirection });\n }\n\n this._changeDetectorRef.markForCheck();\n },\n );\n }\n}\n","<div\n [class.et-sort-header-sorted]=\"_isSorted\"\n [class.et-sort-header-position-before]=\"arrowPosition === 'before'\"\n [attr.tabindex]=\"_isDisabled ? null : 0\"\n [attr.role]=\"_isDisabled ? null : 'button'\"\n class=\"et-sort-header-container\"\n>\n <div class=\"et-sort-header-content\">\n <ng-content />\n </div>\n\n @if (_renderArrow) {\n <div class=\"et-sort-header-arrow {{ _getArrowDirectionState }} {{ _getArrowViewState }}\">\n <et-chevron-icon />\n </div>\n }\n</div>\n","import { SortHeaderComponent } from './components/sort-header';\nimport { SortDirective } from './partials/sort';\nimport { SORT_HEADER_INTL_PROVIDER } from './services';\n\nexport const SortImports = [SortDirective, SortHeaderComponent] as const;\n\nexport const provideSort = () => {\n return [SORT_HEADER_INTL_PROVIDER];\n};\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[etTableBusy]',\n standalone: true,\n})\nexport class TableBusyDirective {\n templateRef = inject(TemplateRef);\n\n _contentClassName = 'et-table-busy';\n}\n","import { RowOutlet } from '@angular/cdk/table';\nimport { Directive, ElementRef, ViewContainerRef, inject } from '@angular/core';\n\n@Directive({ selector: '[tableBusyOutlet]', standalone: true })\nexport class TableBusyOutletDirective implements RowOutlet {\n viewContainer = inject(ViewContainerRef);\n elementRef = inject(ElementRef);\n}\n","import { _DisposeViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY } from '@angular/cdk/collections';\nimport {\n CDK_TABLE,\n CdkTable,\n DataRowOutlet,\n FooterRowOutlet,\n HeaderRowOutlet,\n NoDataRowOutlet,\n STICKY_POSITIONING_LISTENER,\n _COALESCED_STYLE_SCHEDULER,\n _CoalescedStyleScheduler,\n} from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n HostBinding,\n Input,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { TableBusyDirective } from '../../partials/table-busy';\nimport { TableBusyOutletDirective } from '../../partials/table-busy-outlet';\n\n@Component({\n selector: 'et-table, table[et-table]',\n exportAs: 'etTable',\n template: `\n <ng-content select=\"caption\" />\n <ng-content select=\"colgroup, col\" />\n\n @if (_isServer) {\n <ng-content />\n }\n\n @if (_isNativeHtmlTable) {\n <thead role=\"rowgroup\">\n <ng-container headerRowOutlet />\n </thead>\n <tbody class=\"mdc-data-table__content\" role=\"rowgroup\">\n <ng-container rowOutlet />\n <ng-container noDataRowOutlet />\n </tbody>\n <tfoot role=\"rowgroup\">\n <ng-container footerRowOutlet />\n </tfoot>\n } @else {\n <ng-container headerRowOutlet />\n <div class=\"et-table-body\">\n <ng-container rowOutlet />\n <ng-container tableBusyOutlet />\n </div>\n <ng-container noDataRowOutlet />\n <ng-container footerRowOutlet />\n }\n `,\n styleUrls: ['table.component.scss'],\n host: {\n class: 'et-table et-data-table__table',\n '[class.et-table-fixed-layout]': 'fixedLayout',\n },\n providers: [\n { provide: CdkTable, useExisting: TableComponent },\n { provide: CDK_TABLE, useExisting: TableComponent },\n { provide: _COALESCED_STYLE_SCHEDULER, useClass: _CoalescedStyleScheduler },\n { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },\n { provide: STICKY_POSITIONING_LISTENER, useValue: null },\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet, TableBusyOutletDirective],\n})\nexport class TableComponent<T> extends CdkTable<T> {\n private _cdr = inject(ChangeDetectorRef);\n\n protected override stickyCssClass = 'et-table-sticky';\n protected override needsPositionStickyOnElement = false;\n\n @ViewChild(TableBusyOutletDirective)\n _tableBusyOutlet?: TableBusyOutletDirective;\n\n @ContentChild(TableBusyDirective)\n _tableBusyComponent?: TableBusyDirective;\n\n @Input()\n get busy(): boolean {\n return this._busy;\n }\n set busy(value: unknown) {\n this._busy = booleanAttribute(value);\n this._updateTableBusy();\n }\n private _busy = false;\n\n @HostBinding('attr.aria-busy')\n get _attrAriaBusy() {\n return this.busy ? true : null;\n }\n\n _isShowingTableBusy = false;\n\n private _updateTableBusy() {\n const tableBusyComponent = this._tableBusyComponent;\n\n if (!tableBusyComponent) {\n return;\n }\n\n const shouldShow = this.busy;\n\n if (shouldShow === this._isShowingTableBusy) {\n return;\n }\n\n const container = this._tableBusyOutlet?.viewContainer;\n\n if (!container) {\n return;\n }\n\n if (shouldShow) {\n const view = container.createEmbeddedView(tableBusyComponent.templateRef);\n const rootNode: HTMLElement | undefined = view.rootNodes[0];\n\n if (view.rootNodes.length === 1 && rootNode?.nodeType === document.ELEMENT_NODE) {\n rootNode.classList.add(tableBusyComponent._contentClassName);\n }\n } else {\n container.clear();\n }\n\n this._isShowingTableBusy = shouldShow;\n this._cdr.markForCheck();\n }\n}\n","export const MAX_SAFE_INTEGER = 9007199254740991;\n","import { CdkCell } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'et-cell, td[et-cell]',\n host: {\n class: 'et-cell et-data-table__cell',\n },\n standalone: true,\n})\nexport class CellDirective extends CdkCell {}\n","import { CdkCellDef } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[etCellDef]',\n providers: [{ provide: CdkCellDef, useExisting: CellDefDirective }],\n standalone: true,\n})\nexport class CellDefDirective extends CdkCellDef {}\n","import { CdkFooterCell } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'et-footer-cell, td[et-footer-cell]',\n host: {\n class: 'et-footer-cell et-data-table__cell',\n },\n standalone: true,\n})\nexport class FooterCellDirective extends CdkFooterCell {}\n","import { CdkFooterCellDef } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[etFooterCellDef]',\n providers: [{ provide: CdkFooterCellDef, useExisting: FooterCellDefDirective }],\n standalone: true,\n})\nexport class FooterCellDefDirective extends CdkFooterCellDef {}\n","import { CdkHeaderCell } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'et-header-cell, th[et-header-cell]',\n host: {\n class: 'et-header-cell et-data-table__header-cell',\n role: 'columnheader',\n },\n standalone: true,\n})\nexport class HeaderCellDirective extends CdkHeaderCell {}\n","import { CdkHeaderCellDef } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[etHeaderCellDef]',\n providers: [{ provide: CdkHeaderCellDef, useExisting: HeaderCellDefDirective }],\n standalone: true,\n})\nexport class HeaderCellDefDirective extends CdkHeaderCellDef {}\n","import { CdkTable, CdkTextColumn, TextColumnOptions, TEXT_COLUMN_OPTIONS } from '@angular/cdk/table';\nimport { ChangeDetectionStrategy, Component, Inject, Optional, ViewEncapsulation } from '@angular/core';\nimport { CellDirective } from '../cell';\nimport { CellDefDirective } from '../cell-def';\nimport { ColumnDefDirective } from '../column-def';\nimport { HeaderCellDirective } from '../header-cell';\nimport { HeaderCellDefDirective } from '../header-cell-def';\n\n@Component({\n selector: 'et-text-column',\n template: `\n <ng-container etColumnDef>\n <th *etHeaderCellDef [style.text-align]=\"justify\" et-header-cell>\n {{ headerText }}\n </th>\n <td *etCellDef=\"let data\" [style.text-align]=\"justify\" et-cell>\n <!-- eslint-disable-next-line @angular-eslint/template/no-call-expression -->\n {{ dataAccessor(data, name) }}\n </td>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [ColumnDefDirective, HeaderCellDefDirective, HeaderCellDirective, CellDefDirective, CellDirective],\n})\nexport class TextColumnComponent<T> extends CdkTextColumn<T> {\n constructor(\n @Optional() _table: CdkTable<T>,\n @Optional() @Inject(TEXT_COLUMN_OPTIONS) _options: TextColumnOptions<T>,\n ) {\n super(_table, _options);\n }\n}\n","import { CDK_ROW_TEMPLATE, CdkFooterRow, CdkTableModule } from '@angular/cdk/table';\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'et-footer-row, tr[et-footer-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n class: 'et-footer-row et-data-table__row',\n role: 'row',\n },\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'etFooterRow',\n providers: [{ provide: CdkFooterRow, useExisting: FooterRowComponent }],\n standalone: true,\n imports: [CdkTableModule],\n})\nexport class FooterRowComponent extends CdkFooterRow {}\n","import { CdkFooterRowDef, CDK_TABLE } from '@angular/cdk/table';\nimport { Directive, Inject, IterableDiffers, Optional, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[etFooterRowDef]',\n providers: [{ provide: CdkFooterRowDef, useExisting: FooterRowDefDirective }],\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['columns: etFooterRowDef', 'sticky: etFooterRowDefSticky'],\n standalone: true,\n})\nexport class FooterRowDefDirective extends CdkFooterRowDef {\n constructor(\n template: TemplateRef<unknown>,\n _differs: IterableDiffers,\n @Inject(CDK_TABLE) @Optional() _table?: unknown,\n ) {\n super(template, _differs, _table);\n }\n}\n","import { CdkHeaderRow, CdkTableModule, CDK_ROW_TEMPLATE } from '@angular/cdk/table';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'et-header-row, tr[et-header-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n class: 'et-header-row et-data-table__header-row',\n role: 'row',\n },\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'etHeaderRow',\n providers: [{ provide: CdkHeaderRow, useExisting: HeaderRowComponent }],\n standalone: true,\n imports: [CdkTableModule],\n})\nexport class HeaderRowComponent extends CdkHeaderRow {}\n","import { CdkHeaderRowDef, CDK_TABLE } from '@angular/cdk/table';\nimport { Directive, Inject, IterableDiffers, Optional, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[etHeaderRowDef]',\n providers: [{ provide: CdkHeaderRowDef, useExisting: HeaderRowDefDirective }],\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['columns: etHeaderRowDef', 'sticky: etHeaderRowDefSticky'],\n standalone: true,\n})\nexport class HeaderRowDefDirective extends CdkHeaderRowDef {\n constructor(\n template: TemplateRef<unknown>,\n _differs: IterableDiffers,\n @Inject(CDK_TABLE) @Optional() _table?: unknown,\n ) {\n super(template, _differs, _table);\n }\n}\n","import { CdkNoDataRow } from '@angular/cdk/table';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[etNoDataRow]',\n providers: [{ provide: CdkNoDataRow, useExisting: NoDataRowDirective }],\n standalone: true,\n})\nexport class NoDataRowDirective extends CdkNoDataRow {\n override _contentClassName = 'et-no-data-row';\n}\n","import { _RecycleViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY } from '@angular/cdk/collections';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'et-table[recycleRows], table[et-table][recycleRows]',\n providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }],\n standalone: true,\n})\nexport class RecycleRowsDirective {}\n","import { CdkRow, CdkTableModule, CDK_ROW_TEMPLATE } from '@angular/cdk/table';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'et-row, [et-row], [et-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n class: 'et-row et-data-table__row',\n role: 'row',\n },\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'etRow',\n providers: [{ provide: CdkRow, useExisting: RowComponent }],\n standalone: true,\n imports: [CdkTableModule],\n})\nexport class RowComponent extends CdkRow {}\n","import { CdkRowDef, CDK_TABLE } from '@angular/cdk/table';\nimport { Directive, Inject, IterableDiffers, Optional, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[etRowDef]',\n providers: [{ provide: CdkRowDef, useExisting: RowDefDirective }],\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['columns: etRowDefColumns', 'when: etRowDefWhen'],\n standalone: true,\n})\nexport class RowDefDirective<T> extends CdkRowDef<T> {\n constructor(\n template: TemplateRef<unknown>,\n _differs: IterableDiffers,\n @Inject(CDK_TABLE) @Optional() _table?: unknown,\n ) {\n super(template, _differs, _table);\n }\n}\n","import { TableComponent } from './components/table';\nimport { CellDirective } from './partials/cells/cell';\nimport { CellDefDirective } from './partials/cells/cell-def';\nimport { ColumnDefDirective } from './partials/cells/column-def';\nimport { FooterCellDirective } from './partials/cells/footer-cell';\nimport { FooterCellDefDirective } from './partials/cells/footer-cell-def';\nimport { HeaderCellDirective } from './partials/cells/header-cell';\nimport { HeaderCellDefDirective } from './partials/cells/header-cell-def';\nimport { TextColumnComponent } from './partials/cells/text-column';\nimport { FooterRowComponent } from './partials/rows/footer-row';\nimport { FooterRowDefDirective } from './partials/rows/footer-row-def';\nimport { HeaderRowComponent } from './partials/rows/header-row';\nimport { HeaderRowDefDirective } from './partials/rows/header-row-def';\nimport { NoDataRowDirective } from './partials/rows/no-data-row';\nimport { RecycleRowsDirective } from './partials/rows/recycle-rows';\nimport { RowComponent } from './partials/rows/row';\nimport { RowDefDirective } from './partials/rows/row-def';\nimport { TableBusyDirective } from './partials/table-busy';\n\nexport const TableImports = [\n TableComponent,\n RecycleRowsDirective,\n HeaderCellDefDirective,\n HeaderRowDefDirective,\n ColumnDefDirective,\n CellDefDirective,\n RowDefDirective,\n FooterCellDefDirective,\n FooterRowDefDirective,\n HeaderCellDirective,\n CellDirective,\n FooterCellDirective,\n HeaderRowComponent,\n RowComponent,\n FooterRowComponent,\n NoDataRowDirective,\n TextColumnComponent,\n TableBusyDirective,\n] as const;\n","import { _isNumberValue } from '@angular/cdk/coercion';\nimport { DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable, Subject, Subscription, combineLatest, map, merge, of } from 'rxjs';\nimport { Sort, SortDirective } from '../../sort/partials/sort';\nimport { MAX_SAFE_INTEGER } from '../constants';\nimport { TableDataSourcePageEvent, TableDataSourcePaginator } from '../types';\n\nexport class TableDataSource<T, P extends TableDataSourcePaginator = TableDataSourcePaginator> extends DataSource<T> {\n private readonly _data: BehaviorSubject<T[]>;\n private readonly _renderData = new BehaviorSubject<T[]>([]);\n private readonly _filter = new BehaviorSubject<string>('');\n private readonly _internalPageChanges = new Subject<void>();\n\n _renderChangesSubscription: Subscription | null = null;\n filteredData: T[] = [];\n\n get data() {\n return this._data.value;\n }\n set data(data: T[]) {\n data = Array.isArray(data) ? data : [];\n this._data.next(data);\n\n if (!this._renderChangesSubscription) {\n this._filterData(data);\n }\n }\n\n get filter(): string {\n return this._filter.value;\n }\n set filter(filter: string) {\n this._filter.next(filter);\n\n if (!this._renderChangesSubscription) {\n this._filterData(this.data);\n }\n }\n\n get sort(): SortDirective | null {\n return this._sort;\n }\n set sort(sort: SortDirective | null) {\n this._sort = sort;\n this._updateChangeSubscription();\n }\n private _sort: SortDirective | null = null;\n\n get paginator(): P | null {\n return this._paginator;\n }\n set paginator(paginator: P | null) {\n this._paginator = paginator;\n this._updateChangeSubscription();\n }\n private _paginator: P | null = null;\n\n sortingDataAccessor: (data: T, sortHeaderId: string) => string | number = (\n data: T,\n sortHeaderId: string,\n ): string | number => {\n const value = (data as unknown as Record<string, unknown>)[sortHeaderId];\n\n if (_isNumberValue(value)) {\n const numberValue = Number(value);\n\n return numberValue < MAX_SAFE_INTEGER ? numberValue : (value as number);\n }\n\n return value as string;\n };\n\n sortData: (data: T[], sort: SortDirective) => T[] = (data: T[], sort: SortDirective): T[] => {\n const active = sort.active;\n const direction = sort.direction;\n if (!active || direction == '') {\n return data;\n }\n\n return data.sort((a, b) => {\n let valueA = this.sortingDataAccessor(a, active);\n let valueB = this.sortingDataAccessor(b, active);\n\n const valueAType = typeof valueA;\n const valueBType = typeof valueB;\n\n if (valueAType !== valueBType) {\n if (valueAType === 'number') {\n valueA += '';\n }\n if (valueBType === 'number') {\n valueB += '';\n }\n }\n\n let comparatorResult = 0;\n if (valueA != null && valueB != null) {\n if (valueA > valueB) {\n comparatorResult = 1;\n } else if (valueA < valueB) {\n comparatorResult = -1;\n }\n } else if (valueA != null) {\n comparatorResult = 1;\n } else if (valueB != null) {\n comparatorResult = -1;\n }\n\n return comparatorResult * (direction == 'asc' ? 1 : -1);\n });\n };\n\n filterPredicate: (data: T, filter: string) => boolean = (data: T, filter: string): boolean => {\n const dataStr = Object.keys(data as unknown as Record<string, unknown>)\n .reduce((currentTerm: string, key: string) => {\n return currentTerm + (data as unknown as Record<string, unknown>)[key] + '◬';\n }, '')\n .toLowerCase();\n\n const transformedFilter = filter.trim().toLowerCase();\n\n return dataStr.indexOf(transformedFilter) != -1;\n };\n\n constructor(initialData: T[] = []) {\n super();\n this._data = new BehaviorSubject<T[]>(initialData);\n this._updateChangeSubscription();\n }\n\n _updateChangeSubscription() {\n const sortChange: Observable<Sort | null | void> = this._sort\n ? (merge(this._sort.sortChange, this._sort.initialized) as Observable<Sort | void>)\n : of(null);\n const pageChange: Observable<TableDataSourcePageEvent | null | void> = this._paginator\n ? (merge(\n this._paginator.page,\n this._internalPageChanges,\n this._paginator.initialized,\n ) as Observable<TableDataSourcePageEvent | void>)\n : of(null);\n const dataStream = this._data;\n\n const filteredData = combineLatest([dataStream, this._filter]).pipe(map(([data]) => this._filterData(data)));\n\n const orderedData = combineLatest([filteredData, sortChange]).pipe(map(([data]) => this._orderData(data)));\n\n const paginatedData = combineLatest([orderedData, pageChange]).pipe(map(([data]) => this._pageData(data)));\n\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = paginatedData.subscribe((data) => this._renderData.next(data));\n }\n\n _filterData(data: T[]) {\n this.filteredData =\n this.filter == null || this.filter === '' ? data : data.filter((obj) => this.filterPredicate(obj, this.filter));\n\n if (this.paginator) {\n this._updatePaginator(this.filteredData.length);\n }\n\n return this.filteredData;\n }\n\n _orderData(data: T[]): T[] {\n if (!this.sort) {\n return data;\n }\n\n return this.sortData(data.slice(), this.sort);\n }\n\n _pageData(data: T[]): T[] {\n if (!this.paginator) {\n return data;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.slice(startIndex, startIndex + this.paginator.pageSize);\n }\n\n _updatePaginator(filteredDataLength: number) {\n Promise.resolve().then(() => {\n const paginator = this.paginator;\n\n if (!paginator) {\n return;\n }\n\n paginator.length = filteredDataLength;\n\n if (paginator.pageIndex > 0) {\n const lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;\n const newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);\n\n if (newPageIndex !== paginator.pageIndex) {\n paginator.pageIndex = newPageIndex;\n\n this._internalPageChanges.next();\n }\n }\n });\n }\n\n connect() {\n if (!this._renderChangesSubscription) {\n this._updateChangeSubscription();\n }\n\n return this._renderData;\n }\n\n disconnect() {\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = null;\n }\n}\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nexport const tabAnimations: {\n readonly translateTab: AnimationTriggerMetadata;\n} = {\n translateTab: trigger('translateTab', [\n state('center, void, left-origin-center, right-origin-center', style({ transform: 'none' })),\n\n state(\n 'left',\n style({\n transform: 'translate3d(-100%, 0, 0)',\n minHeight: '1px',\n visibility: 'hidden',\n }),\n ),\n state(\n 'right',\n style({\n transform: 'translate3d(100%, 0, 0)',\n minHeight: '1px',\n visibility: 'hidden',\n }),\n ),\n\n transition(\n '* => left, * => right, left => center, right => center',\n animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),\n ),\n transition('void => left-origin-center', [\n style({ transform: 'translate3d(-100%, 0, 0)', visibility: 'hidden' }),\n animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),\n ]),\n transition('void => right-origin-center', [\n style({ transform: 'translate3d(100%, 0, 0)', visibility: 'hidden' }),\n animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),\n ]),\n ]),\n};\n","import { Directive, InjectionToken, TemplateRef, inject } from '@angular/core';\n\nexport const TAB_CONTENT = new InjectionToken<InlineTabContentDirective>('TabContent');\n\n@Directive({\n selector: '[etInlineTabContent]',\n providers: [{ provide: TAB_CONTENT, useExisting: InlineTabContentDirective }],\n standalone: true,\n host: {\n class: 'et-inline-tab-content',\n },\n})\nexport class InlineTabContentDirective {\n template = inject(TemplateRef);\n}\n","import { CdkPortal } from '@angular/cdk/portal';\nimport { Directive, Inject, InjectionToken, Optional, TemplateRef, ViewContainerRef } from '@angular/core';\n\nexport const TAB_LABEL = new InjectionToken<InlineTabLabelDirective>('TabLabel');\n\nexport const TAB = new InjectionToken<unknown>('TAB');\n\n@Directive({\n selector: '[et-inline-tab-label]',\n providers: [{ provide: TAB_LABEL, useExisting: InlineTabLabelDirective }],\n standalone: true,\n host: {\n class: 'et-inline-tab-label',\n },\n})\nexport class InlineTabLabelDirective extends CdkPortal {\n constructor(\n templateRef: TemplateRef<unknown>,\n viewContainerRef: ViewContainerRef,\n @Inject(TAB) @Optional() public _closestTab: unknown,\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { Subject } from 'rxjs';\nimport { TAB_CONTENT } from '../inline-tab-content';\nimport { InlineTabLabelDirective, TAB, TAB_LABEL } from '../inline-tab-label';\n\nexport const TAB_GROUP = new InjectionToken<unknown>('TAB_GROUP');\n\n@Component({\n selector: 'et-inline-tab',\n templateUrl: 'inline-tab.component.html',\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: TAB, useExisting: InlineTabComponent }],\n standalone: true,\n host: {\n class: 'et-inline-tab',\n },\n})\nexport class InlineTabComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(TAB_LABEL)\n get templateLabel(): InlineTabLabelDirective {\n return this._templateLabel;\n }\n set templateLabel(value: InlineTabLabelDirective) {\n this._setTemplateLabelInput(value);\n }\n protected _templateLabel!: InlineTabLabelDirective;\n\n @Input({ transform: booleanAttribute })\n fitUnderlineToContent = false;\n\n @ContentChild(TAB_CONTENT, { read: TemplateRef, static: true })\n _explicitContent!: TemplateRef<unknown>;\n\n @ViewChild(TemplateRef, { static: true })\n _implicitContent!: TemplateRef<unknown>;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('label')\n textLabel = '';\n\n @Input('aria-label')\n ariaLabel!: string;\n\n @Input('aria-labelledby')\n ariaLabelledby!: string;\n\n @Input()\n labelClass: NgClassType;\n\n @Input()\n bodyClass: NgClassType;\n\n @Input({ transform: booleanAttribute })\n disabled = false;\n\n private _contentPortal: TemplatePortal | null = null;\n\n get content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n readonly _stateChanges = new Subject<void>();\n\n position: number | null = null;\n\n origin: number | null = null;\n\n isActive = false;\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n @Inject(TAB_GROUP) @Optional() public _closestTabGroup: unknown,\n ) {}\n\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['textLabel'] || changes['disabled']) {\n this._stateChanges.next();\n }\n }\n\n ngOnDestroy(): void {\n this._stateChanges.complete();\n }\n\n protected _setTemplateLabelInput(value: InlineTabLabelDirective | undefined) {\n if (value && value._closestTab === this) {\n this._templateLabel = value;\n }\n }\n}\n","<ng-template><ng-content /></ng-template>\n","import { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ComponentFactoryResolver, Directive, Inject, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[etInlineTabBodyHost]',\n standalone: true,\n host: {\n class: 'et-inline-tab-body-host',\n },\n})\nexport class InlineTabBodyHostDirective extends CdkPortalOutlet implements OnInit, OnDestroy {\n constructor(\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) _document: Document,\n ) {\n super(componentFactoryResolver, viewContainerRef, _document);\n }\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { Subject, Subscription, distinctUntilChanged, startWith } from 'rxjs';\nimport { tabAnimations } from '../../../animations';\nimport { InlineTabBodyHostDirective } from '../inline-tab-body-host';\n\nexport type InlineTabBodyPositionState = 'left' | 'center' | 'right' | 'left-origin-center' | 'right-origin-center';\n\nexport type InlineTabBodyOriginState = 'left' | 'right';\n\n@Component({\n selector: 'et-inline-tab-body',\n templateUrl: 'inline-tab-body.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [tabAnimations.translateTab],\n standalone: true,\n imports: [CdkScrollableModule, InlineTabBodyHostDirective],\n host: {\n class: 'et-inline-tab-body',\n },\n})\nexport class InlineTabBodyComponent implements OnInit, OnDestroy {\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _dir = inject(Directionality);\n private _cdr = inject(ChangeDetectorRef);\n\n private _positionIndex!: number;\n private _centeringSub = Subscription.EMPTY;\n private _leavingSub = Subscription.EMPTY;\n private _dirChangeSubscription = Subscription.EMPTY;\n\n _position!: InlineTabBodyPositionState;\n\n readonly _translateTabComplete = new Subject<AnimationEvent>();\n\n @Output()\n readonly _onCentering = new EventEmitter<number>();\n\n @Output()\n readonly _beforeCentering = new EventEmitter<boolean>();\n\n @Output()\n readonly _afterLeavingCenter = new EventEmitter<void>();\n\n @Output()\n readonly _onCentered = new EventEmitter<void>(true);\n\n @ViewChild(InlineTabBodyHostDirective, { static: true })\n _portalHost!: InlineTabBodyHostDirective;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('content')\n _content!: TemplatePortal;\n\n @Input()\n origin!: number | null;\n\n @Input()\n animationDuration = '500ms';\n\n @Input()\n preserveContent = false;\n\n @Input()\n set position(position: number) {\n this._positionIndex = position;\n this._computePositionAnimationState();\n }\n\n constructor() {\n if (this._dir) {\n this._dirChangeSubscription = this._dir.change.subscribe((dir: Direction) => {\n this._computePositionAnimationState(dir);\n this._cdr.markForCheck();\n });\n }\n\n this._translateTabComplete\n .pipe(\n distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState;\n }),\n )\n .subscribe((event) => {\n if (this._isCenterPosition(event.toState) && this._isCenterPosition(this._position)) {\n this._onCentered.emit();\n }\n\n if (this._isCenterPosition(event.fromState) && !this._isCenterPosition(this._position)) {\n this._afterLeavingCenter.emit();\n }\n });\n }\n\n ngOnInit() {\n if (this._position == 'center' && this.origin != null) {\n this._position = this._computePositionFromOrigin(this.origin);\n }\n\n this._centeringSub = this._beforeCentering\n .pipe(startWith(this._isCenterPosition(this._position)))\n .subscribe((isCentering: boolean) => {\n if (isCentering && !this._portalHost.hasAttached()) {\n this._portalHost.attach(this._content);\n }\n });\n\n this._leavingSub = this._afterLeavingCenter.subscribe(() => {\n if (!this.preserveContent) {\n this._portalHost.detach();\n }\n });\n }\n\n ngOnDestroy() {\n this._dirChangeSubscription.unsubscribe();\n this._translateTabComplete.complete();\n this._centeringSub.unsubscribe();\n this._leavingSub.unsubscribe();\n }\n\n _onTranslateTabStarted(event: AnimationEvent): void {\n const isCentering = this._isCenterPosition(event.toState);\n this._beforeCentering.emit(isCentering);\n if (isCentering) {\n this._onCentering.emit(this._elementRef.nativeElement.clientHeight);\n }\n }\n\n _getLayoutDirection(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n _isCenterPosition(position: InlineTabBodyPositionState | string): boolean {\n return position == 'center' || position == 'left-origin-center' || position == 'right-origin-center';\n }\n\n private _computePositionAnimationState(dir: Direction = this._getLayoutDirection()) {\n if (this._positionIndex < 0) {\n this._position = dir == 'ltr' ? 'left' : 'right';\n } else if (this._positionIndex > 0) {\n this._position = dir == 'ltr' ? 'right' : 'left';\n } else {\n this._position = 'center';\n }\n }\n\n private _computePositionFromOrigin(origin: number): InlineTabBodyPositionState {\n const dir = this._getLayoutDirection();\n\n if ((dir == 'ltr' && origin <= 0) || (dir == 'rtl' && origin > 0)) {\n return 'left-origin-center';\n }\n\n return 'right-origin-center';\n }\n}\n","<div\n #content\n [@translateTab]=\"{\n value: _position,\n params: { animationDuration: '0ms' }\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable\n>\n <ng-template etInlineTabBodyHost />\n</div>\n","import {\n Directive,\n ElementRef,\n InjectionToken,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { TypedQueryList } from '@ethlete/core';\n\nexport interface ActiveTabUnderlineItem extends OnInit, OnDestroy {\n elementRef: ElementRef<HTMLElement>;\n activateUnderline(previousIndicatorClientRect?: DOMRect): void;\n deactivateUnderline(): void;\n fitUnderlineToContent: boolean;\n}\n\nconst ACTIVE_CLASS = 'et-active-tab-underline--active';\n\nconst NO_TRANSITION_CLASS = 'et-active-tab-underline--no-transition';\n\nexport class ActiveTabUnderlineBarManager {\n private _currentItem: ActiveTabUnderlineItem | undefined;\n\n constructor(private _items: TypedQueryList<ActiveTabUnderlineItem>) {}\n\n hide() {\n this._items.forEach((item) => item?.deactivateUnderline());\n }\n\n alignToElement(element: HTMLElement) {\n const correspondingItem = this._items.find((item) => item?.elementRef.nativeElement === element);\n const currentItem = this._currentItem;\n\n currentItem?.deactivateUnderline();\n\n if (correspondingItem) {\n const clientRect = currentItem?.elementRef.nativeElement.getBoundingClientRect?.();\n\n correspondingItem.activateUnderline(clientRect);\n this._currentItem = correspondingItem;\n }\n }\n}\n\n@Directive({ standalone: true })\nexport class ActiveTabUnderlineDirective implements OnInit, OnDestroy {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private _underlineElement: HTMLElement | null = null;\n private _underlineContentElement: HTMLElement | null = null;\n\n @Input()\n get fitUnderlineToContent(): boolean {\n return this._fitToContent;\n }\n set fitUnderlineToContent(v: unknown) {\n const newValue = booleanAttribute(v);\n\n if (this._fitToContent !== newValue) {\n this._fitToContent = newValue;\n\n if (this._underlineElement) {\n this._appendUnderlineElement();\n }\n }\n }\n private _fitToContent = false;\n\n activateUnderline(previousIndicatorClientRect?: DOMRect) {\n const element = this.elementRef.nativeElement;\n\n if (!previousIndicatorClientRect || !element.getBoundingClientRect || !this._underlineContentElement) {\n element.classList.add(ACTIVE_CLASS);\n return;\n }\n\n const currentClientRect = element.getBoundingClientRect();\n const widthDelta = previousIndicatorClientRect.width / currentClientRect.width;\n const xPosition = previousIndicatorClientRect.left - currentClientRect.left;\n element.classList.add(NO_TRANSITION_CLASS);\n this._underlineContentElement.style.setProperty('transform', `translateX(${xPosition}px) scaleX(${widthDelta})`);\n\n element.getBoundingClientRect();\n\n element.classList.remove(NO_TRANSITION_CLASS);\n element.classList.add(ACTIVE_CLASS);\n this._underlineContentElement.style.setProperty('transform', '');\n }\n\n deactivateUnderline() {\n this.elementRef.nativeElement.classList.remove(ACTIVE_CLASS);\n }\n\n ngOnInit() {\n this._createUnderlineElement();\n }\n\n ngOnDestroy() {\n this._underlineElement?.remove();\n this._underlineElement = this._underlineContentElement = null;\n }\n\n private _createUnderlineElement() {\n const documentNode = this.elementRef.nativeElement.ownerDocument || document;\n this._underlineElement = documentNode.createElement('span');\n this._underlineContentElement = documentNode.createElement('span');\n\n this._underlineElement.className = 'et-active-tab-underline';\n this._underlineContentElement.className =\n 'et-active-tab-underline__content et-active-tab-underline__content--underline';\n\n this._underlineElement.appendChild(this._underlineContentElement);\n this._appendUnderlineElement();\n }\n\n private _appendUnderlineElement() {\n if (!this._underlineElement) {\n return;\n }\n\n const parentElement = this._fitToContent\n ? this.elementRef.nativeElement.querySelector('.et-tab-content')\n : this.elementRef.nativeElement;\n\n if (!parentElement) {\n return;\n }\n\n parentElement.appendChild(this._underlineElement);\n }\n}\n\nexport interface _ActiveTabUnderlinePositioner {\n (element: HTMLElement): { left: string; width: string };\n}\n\nexport function _MAT_INK_BAR_POSITIONER_FACTORY(): _ActiveTabUnderlinePositioner {\n const method = (element: HTMLElement) => ({\n left: element ? (element.offsetLeft || 0) + 'px' : '0',\n width: element ? (element.offsetWidth || 0) + 'px' : '0',\n });\n\n return method;\n}\n\nexport const _MAT_INK_BAR_POSITIONER = new InjectionToken<_ActiveTabUnderlinePositioner>(\n 'ET_ACTIVE_TAB_UNDERLINE_POSITIONER',\n {\n providedIn: 'root',\n factory: _MAT_INK_BAR_POSITIONER_FACTORY,\n },\n);\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { ENTER, hasModifierKey, SPACE } from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n AfterContentChecked,\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgZone,\n numberAttribute,\n OnDestroy,\n Output,\n QueryList,\n} from '@angular/core';\nimport { createDestroy, NgClassType, TypedQueryList } from '@ethlete/core';\nimport { fromEvent, merge, of as observableOf, Subject, timer } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { ScrollableComponent } from '../../scrollable/components/scrollable';\n\nexport type TabPaginationScrollDirection = 'after' | 'before';\n\nconst EXAGGERATED_OVERSCROLL = 60;\nconst HEADER_SCROLL_DELAY = 650;\nconst HEADER_SCROLL_INTERVAL = 100;\n\nexport type PaginatedTabHeaderItem = FocusableOption & { elementRef: ElementRef };\n\n@Directive()\nexport abstract class PaginatedTabHeaderDirective implements AfterContentChecked, AfterContentInit, OnDestroy {\n protected _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n protected _cdr = inject(ChangeDetectorRef);\n private _viewportRuler = inject(ViewportRuler);\n private _dir = inject(Directionality, { optional: true });\n private _ngZone = inject(NgZone);\n\n abstract _items: TypedQueryList<PaginatedTabHeaderItem>;\n abstract _scrollable: ScrollableComponent;\n\n abstract _activeTabUnderlineManager?: { hide: () => void; alignToElement: (element: HTMLElement) => void };\n\n private _scrollDistance = 0;\n\n private _selectedIndexChanged = false;\n\n protected readonly _destroy$ = createDestroy();\n\n _tabLabelCount!: number;\n\n private _scrollDistanceChanged!: boolean;\n\n private _keyManager!: FocusKeyManager<PaginatedTabHeaderItem>;\n\n private _currentTextContent!: string;\n\n private _stopScrolling = new Subject<void>();\n\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n set selectedIndex(val: unknown) {\n const value = numberAttribute(val);\n\n if (this._selectedIndex != value) {\n this._selectedIndexChanged = true;\n this._selectedIndex = value;\n\n if (this._keyManager) {\n this._keyManager.updateActiveItem(value);\n }\n }\n }\n private _selectedIndex = 0;\n\n @Input()\n itemSize: 'auto' | 'same' = 'auto';\n\n @Input()\n scrollableClass?: NgClassType;\n\n @Input({ transform: booleanAttribute })\n renderMasks = true;\n\n @Input({ transform: booleanAttribute })\n renderButtons = true;\n\n @Input({ transform: booleanAttribute })\n renderScrollbars = false;\n\n @Output()\n readonly selectFocusedIndex: EventEmitter<number> = new EventEmitter<number>();\n\n @Output()\n readonly indexFocused: EventEmitter<number> = new EventEmitter<number>();\n\n constructor() {\n this._ngZone.runOutsideAngular(() => {\n fromEvent(this._elementRef.nativeElement, 'mouseleave')\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this._stopInterval();\n });\n });\n }\n\n protected abstract _itemSelected(event: KeyboardEvent): void;\n\n ngAfterContentInit() {\n const dirChange = this._dir ? this._dir.change : observableOf('ltr');\n const resize = this._viewportRuler.change(150);\n const realign = () => {\n this.updatePagination();\n this._alignInkBarToSelectedTab();\n };\n\n this._keyManager = new FocusKeyManager<PaginatedTabHeaderItem>(this._items as QueryList<PaginatedTabHeaderItem>)\n .withHorizontalOrientation(this._getLayoutDirection())\n .withHomeAndEnd()\n .withWrap();\n\n this._keyManager.updateActiveItem(this._selectedIndex);\n\n this._ngZone.onStable.pipe(take(1)).subscribe(realign);\n\n merge(dirChange, resize, this._items.changes)\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this._ngZone.run(() => {\n Promise.resolve().then(() => {\n this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), this._scrollDistance));\n realign();\n });\n });\n this._keyManager.withHorizontalOrientation(this._getLayoutDirection());\n });\n\n this._keyManager.change.pipe(takeUntil(this._destroy$)).subscribe((newFocusIndex) => {\n this.indexFocused.emit(newFocusIndex);\n this._setTabFocus(newFocusIndex);\n });\n }\n\n ngAfterContentChecked(): void {\n if (this._tabLabelCount !== this._items.length) {\n this.updatePagination();\n this._tabLabelCount = this._items.length;\n this._cdr.markForCheck();\n }\n\n if (this._selectedIndexChanged) {\n this._scrollToLabel(this._selectedIndex);\n this._alignInkBarToSelectedTab();\n this._selectedIndexChanged = false;\n this._cdr.markForCheck();\n }\n\n if (this._scrollDistanceChanged) {\n this._updateTabScrollPosition();\n this._scrollDistanceChanged = false;\n this._cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this._stopScrolling.complete();\n }\n\n _handleKeydown(event: KeyboardEvent) {\n if (hasModifierKey(event)) {\n return;\n }\n\n switch (event.keyCode) {\n case ENTER:\n case SPACE:\n if (this.focusIndex !== this.selectedIndex) {\n this.selectFocusedIndex.emit(this.focusIndex);\n this._itemSelected(event);\n }\n break;\n default:\n this._keyManager.onKeydown(event);\n }\n }\n\n _onContentChanges() {\n const textContent = this._elementRef.nativeElement.textContent;\n\n if (textContent !== this._currentTextContent) {\n this._currentTextContent = textContent || '';\n\n this._ngZone.run(() => {\n this.updatePagination();\n this._alignInkBarToSelectedTab();\n this._cdr.markForCheck();\n });\n }\n }\n\n updatePagination() {\n this._updateTabScrollPosition();\n }\n\n get focusIndex(): number {\n return this._keyManager.activeItemIndex ?? 0;\n }\n\n set focusIndex(value: number) {\n if (!this._isValidIndex(value) || this.focusIndex === value || !this._keyManager) {\n return;\n }\n\n this._keyManager.setActiveItem(value);\n }\n\n _isValidIndex(index: number): boolean {\n if (!this._items) {\n return true;\n }\n\n const tab = this._items ? this._items.toArray()[index] : null;\n return !!tab && !tab.disabled;\n }\n\n _setTabFocus(tabIndex: number) {\n this._scrollToLabel(tabIndex);\n\n if (this._items && this._items.length) {\n this._items.toArray()[tabIndex]?.focus();\n }\n }\n\n _getLayoutDirection(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n _updateTabScrollPosition() {\n this._scrollable?.scrollable()?.nativeElement.scrollTo({ left: this.scrollDistance, behavior: 'smooth' });\n }\n\n get scrollDistance(): number {\n return this._scrollDistance;\n }\n set scrollDistance(value: number) {\n this._scrollTo(value);\n }\n\n _scrollHeader(direction: TabPaginationScrollDirection) {\n const viewLength = this._scrollable?.scrollable()?.nativeElement.offsetWidth;\n\n if (!viewLength) return;\n\n const scrollAmount = ((direction == 'before' ? -1 : 1) * viewLength) / 3;\n\n return this._scrollTo(this._scrollDistance + scrollAmount);\n }\n\n _handlePaginatorClick(direction: TabPaginationScrollDirection) {\n this._stopInterval();\n this._scrollHeader(direction);\n }\n\n _scrollToLabel(labelIndex: number) {\n const selectedLabel = this._items ? this._items.toArray()[labelIndex] : null;\n const scrollable = this._scrollable.scrollable()?.nativeElement;\n\n if (!selectedLabel || !scrollable) {\n return;\n }\n\n const viewLength = scrollable.offsetWidth;\n const { offsetLeft, offsetWidth } = selectedLabel.elementRef.nativeElement;\n\n let labelBeforePos: number, labelAfterPos: number;\n if (this._getLayoutDirection() == 'ltr') {\n labelBeforePos = offsetLeft;\n labelAfterPos = labelBeforePos + offsetWidth;\n } else {\n labelAfterPos = scrollable.offsetWidth - offsetLeft;\n labelBeforePos = labelAfterPos - offsetWidth;\n }\n\n const beforeVisiblePos = this.scrollDistance;\n const afterVisiblePos = this.scrollDistance + viewLength;\n\n if (labelBeforePos < beforeVisiblePos) {\n this.scrollDistance -= beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\n } else if (labelAfterPos > afterVisiblePos) {\n this.scrollDistance += labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\n }\n }\n\n _getMaxScrollDistance(): number {\n const lengthOfTabList = this._scrollable.scrollable()?.nativeElement.scrollWidth;\n const viewLength = this._scrollable.scrollable()?.nativeElement.offsetWidth;\n\n if (!lengthOfTabList || !viewLength) return 0;\n\n return lengthOfTabList - viewLength || 0;\n }\n\n _alignInkBarToSelectedTab(): void {\n const selectedItem = this._items && this._items.length ? this._items.toArray()[this.selectedIndex] : null;\n const selectedLabelWrapper = selectedItem ? selectedItem.elementRef.nativeElement : null;\n\n if (selectedLabelWrapper) {\n this._activeTabUnderlineManager?.alignToElement(selectedLabelWrapper);\n } else {\n this._activeTabUnderlineManager?.hide();\n }\n }\n\n _stopInterval() {\n this._stopScrolling.next();\n }\n\n _handlePaginatorPress(direction: TabPaginationScrollDirection, mouseEvent?: MouseEvent) {\n if (mouseEvent && mouseEvent.button != null && mouseEvent.button !== 0) {\n return;\n }\n\n this._stopInterval();\n\n timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL)\n .pipe(takeUntil(merge(this._stopScrolling, this._destroy$)))\n .subscribe(() => {\n const data = this._scrollHeader(direction);\n\n if (!data) {\n return;\n }\n\n if (data.distance === 0 || data.distance >= data.maxScrollDistance) {\n this._stopInterval();\n }\n });\n }\n\n private _scrollTo(position: number) {\n const maxScrollDistance = this._getMaxScrollDistance();\n this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));\n\n this._scrollDistanceChanged = true;\n\n return { maxScrollDistance, distance: this._scrollDistance };\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, booleanAttribute, inject } from '@angular/core';\nimport { ActiveTabUnderlineDirective } from '../../../utils';\n\n@Directive({\n selector: '[etInlineTabLabelWrapper]',\n standalone: true,\n host: {\n class: 'et-inline-tab-label-wrapper',\n },\n hostDirectives: [{ directive: ActiveTabUnderlineDirective, inputs: ['fitUnderlineToContent'] }],\n})\nexport class InlineTabLabelWrapperDirective {\n public elementRef = inject(ElementRef);\n\n @Input({ transform: booleanAttribute })\n disabled = false;\n\n @HostBinding('attr.aria-disabled')\n get attrAriaDisabled() {\n return this.disabled ? 'true' : null;\n }\n\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n getOffsetLeft(): number {\n return this.elementRef.nativeElement.offsetLeft;\n }\n\n getOffsetWidth(): number {\n return this.elementRef.nativeElement.offsetWidth;\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n forwardRef,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ObserveContentDirective, ScrollObserverIgnoreTargetDirective, TypedQueryList } from '@ethlete/core';\nimport { ScrollableComponent } from '../../../../scrollable/components/scrollable';\nimport { ActiveTabUnderlineBarManager, ActiveTabUnderlineDirective, PaginatedTabHeaderDirective } from '../../../utils';\nimport { InlineTabLabelWrapperDirective } from '../inline-tab-label-wrapper';\n\n@Component({\n selector: 'et-inline-tab-header',\n templateUrl: 'inline-tab-header.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ScrollableComponent, NgClass, ObserveContentDirective, ScrollObserverIgnoreTargetDirective],\n host: {\n class: 'et-inline-tab-header',\n },\n})\nexport class InlineTabHeaderComponent\n extends PaginatedTabHeaderDirective\n implements AfterContentChecked, AfterContentInit, OnDestroy\n{\n @ContentChildren(InlineTabLabelWrapperDirective, { descendants: false })\n _items!: TypedQueryList<InlineTabLabelWrapperDirective>;\n\n @ViewChild(ScrollableComponent, { static: true })\n _scrollable!: ScrollableComponent;\n\n @ContentChildren(forwardRef(() => ActiveTabUnderlineDirective), { descendants: true })\n _inkBars!: TypedQueryList<ActiveTabUnderlineDirective>;\n\n _activeTabUnderlineManager?: ActiveTabUnderlineBarManager;\n\n override ngAfterContentInit() {\n this._activeTabUnderlineManager = new ActiveTabUnderlineBarManager(this._inkBars);\n super.ngAfterContentInit();\n }\n\n protected _itemSelected(event: KeyboardEvent) {\n event.preventDefault();\n }\n}\n","<et-scrollable\n [itemSize]=\"itemSize\"\n [renderButtons]=\"renderButtons\"\n [scrollableClass]=\"scrollableClass\"\n [renderMasks]=\"renderMasks\"\n [renderScrollbars]=\"renderScrollbars\"\n (keydown)=\"_handleKeydown($event)\"\n (contentChanged)=\"_onContentChanges()\"\n>\n <ng-content />\n</et-scrollable>\n","import { A11yModule, FocusOrigin } from '@angular/cdk/a11y';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgClass } from '@angular/common';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n TrackByFunction,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { NgClassType, TypedQueryList } from '@ethlete/core';\nimport { Subscription, merge, startWith } from 'rxjs';\nimport { InlineTabComponent, TAB_GROUP } from '../../partials/inline-tabs/inline-tab';\nimport { InlineTabBodyComponent } from '../../partials/inline-tabs/inline-tab-body';\nimport { InlineTabHeaderComponent } from '../../partials/inline-tabs/inline-tab-header';\nimport { InlineTabLabelWrapperDirective } from '../../partials/inline-tabs/inline-tab-label-wrapper';\n\nlet nextId = 0;\n\nexport class InlineTabChangeEvent {\n index!: number;\n tab!: InlineTabComponent;\n}\n\ninterface InlineTabsBaseHeader {\n _alignInkBarToSelectedTab(): void;\n updatePagination(): void;\n focusIndex: number;\n}\n\n@Component({\n selector: 'et-inline-tabs',\n templateUrl: 'inline-tabs.component.html',\n styleUrls: ['inline-tabs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n {\n provide: TAB_GROUP,\n useExisting: InlineTabsComponent,\n },\n ],\n standalone: true,\n imports: [\n InlineTabHeaderComponent,\n NgClass,\n InlineTabLabelWrapperDirective,\n A11yModule,\n InlineTabBodyComponent,\n PortalModule,\n ],\n host: {\n class: 'et-inline-tabs',\n },\n})\nexport class InlineTabsComponent implements AfterContentInit, AfterContentChecked, OnDestroy {\n private _cdr = inject(ChangeDetectorRef);\n\n @Input({ transform: numberAttribute })\n selectedIndex: number | null = null;\n\n @Input({ transform: numberAttribute })\n contentTabIndex: number | null = null;\n\n @Input({ transform: booleanAttribute })\n preserveContent = false;\n\n @Input()\n tabHeaderClasses: NgClassType;\n\n @Input()\n itemSize: 'auto' | 'same' = 'auto';\n\n @Input()\n scrollableClass?: NgClassType;\n\n @Input({ transform: booleanAttribute })\n renderMasks = true;\n\n @Input({ transform: booleanAttribute })\n renderButtons = true;\n\n @Input({ transform: booleanAttribute })\n renderScrollbars = false;\n\n @Output()\n readonly selectedIndexChange = new EventEmitter<number>();\n\n @Output()\n readonly focusChange = new EventEmitter<InlineTabChangeEvent>();\n\n @Output()\n readonly selectedTabChange = new EventEmitter<InlineTabChangeEvent>(true);\n\n @ContentChildren(InlineTabComponent, { descendants: true })\n _allTabs!: TypedQueryList<InlineTabComponent>;\n\n @ViewChild('tabBodyWrapper')\n _tabBodyWrapper: ElementRef<HTMLElement> | null = null;\n\n @ViewChild('tabHeader')\n _tabHeader!: InlineTabsBaseHeader;\n\n _tabs: TypedQueryList<InlineTabComponent> = new TypedQueryList<InlineTabComponent>();\n\n private _groupId = nextId++;\n private _lastFocusedTabIndex: number | null = null;\n private _tabsSubscription = Subscription.EMPTY;\n private _tabLabelSubscription = Subscription.EMPTY;\n\n ngAfterContentInit() {\n this._subscribeToAllTabChanges();\n this._subscribeToTabLabels();\n\n this._tabsSubscription = this._tabs.changes.subscribe(() => {\n const indexToSelect = this._clampTabIndex(this.selectedIndex);\n\n if (indexToSelect === this.selectedIndex) {\n const tabs = this._tabs.toArray();\n let selectedTab: InlineTabComponent | undefined;\n\n for (let i = 0; i < tabs.length; i++) {\n if (tabs[i]?.isActive) {\n this.selectedIndex = i;\n this._lastFocusedTabIndex = null;\n selectedTab = tabs[i];\n break;\n }\n }\n\n if (!selectedTab && tabs[indexToSelect]) {\n Promise.resolve().then(() => {\n const t = tabs[indexToSelect];\n\n if (!t) return;\n\n t.isActive = true;\n this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n this.selectedIndexChange.emit(indexToSelect);\n });\n }\n }\n\n this._cdr.markForCheck();\n });\n }\n\n ngAfterContentChecked() {\n const indexToSelect = (this.selectedIndex = this._clampTabIndex(this.selectedIndex));\n\n if (this.selectedIndex != indexToSelect && this._tabBodyWrapper) {\n const isFirstRun = this.selectedIndex == null;\n\n if (!isFirstRun) {\n this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n\n const wrapper = this._tabBodyWrapper?.nativeElement;\n wrapper.style.minHeight = wrapper.clientHeight + 'px';\n }\n\n Promise.resolve().then(() => {\n this._tabs\n .filter((t): t is InlineTabComponent => !!t)\n .forEach((tab, index) => (tab.isActive = index === indexToSelect));\n\n if (!isFirstRun) {\n this.selectedIndexChange.emit(indexToSelect);\n\n if (this._tabBodyWrapper) {\n this._tabBodyWrapper.nativeElement.style.minHeight = '';\n }\n }\n });\n }\n\n this._tabs.forEach((tab, index) => {\n if (!tab) return;\n\n tab.position = index - indexToSelect;\n\n if (this.selectedIndex != null && tab.position == 0 && !tab.origin) {\n tab.origin = indexToSelect - this.selectedIndex;\n }\n });\n\n if (this.selectedIndex !== indexToSelect) {\n this.selectedIndex = indexToSelect;\n this._lastFocusedTabIndex = null;\n this._cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this._tabs.destroy();\n this._tabsSubscription.unsubscribe();\n this._tabLabelSubscription.unsubscribe();\n }\n\n trackByTabFn: TrackByFunction<InlineTabComponent> = (index) => index;\n\n realignInkBar() {\n if (this._tabHeader) {\n this._tabHeader._alignInkBarToSelectedTab();\n }\n }\n\n updatePagination() {\n if (this._tabHeader) {\n this._tabHeader.updatePagination();\n }\n }\n\n focusTab(index: number) {\n const header = this._tabHeader;\n\n if (header) {\n header.focusIndex = index;\n }\n }\n\n _focusChanged(index: number) {\n this._lastFocusedTabIndex = index;\n this.focusChange.emit(this._createChangeEvent(index));\n }\n\n _getTabLabelId(i: number): string {\n return `et-inline-tab-label-${this._groupId}-${i}`;\n }\n\n _getTabContentId(i: number): string {\n return `et-inline-tab-content-${this._groupId}-${i}`;\n }\n\n _handleClick(tab: InlineTabComponent, tabHeader: InlineTabsBaseHeader, index: number) {\n if (!tab.disabled && this.selectedIndex !== index) {\n this.selectedIndex = tabHeader.focusIndex = index;\n this.selectedIndexChange.emit(index);\n this.selectedTabChange.emit(this._createChangeEvent(index));\n }\n }\n\n _handleEnter(index: number) {\n const tab = this._tabs.toArray()[index];\n if (!tab || tab.disabled || this.selectedIndex === index) return;\n\n this.selectedIndex = index;\n this.selectedIndexChange.emit(index);\n this.selectedTabChange.emit(this._createChangeEvent(index));\n }\n\n _getTabIndex(tab: InlineTabComponent, index: number): number | null {\n if (tab.disabled) {\n return null;\n }\n const targetIndex = this._lastFocusedTabIndex ?? this.selectedIndex;\n return index === targetIndex ? 0 : -1;\n }\n\n _tabFocusChanged(focusOrigin: FocusOrigin, index: number) {\n if (focusOrigin && focusOrigin !== 'mouse' && focusOrigin !== 'touch') {\n this._tabHeader.focusIndex = index;\n }\n }\n\n private _subscribeToAllTabChanges() {\n this._allTabs.changes.pipe(startWith(this._allTabs)).subscribe((tabs) => {\n this._tabs.reset(\n tabs\n .filter((t): t is InlineTabComponent => !!t)\n .filter((tab) => {\n return tab._closestTabGroup === this || !tab._closestTabGroup;\n }),\n );\n this._tabs.notifyOnChanges();\n });\n }\n\n private _clampTabIndex(index: number | null): number {\n return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));\n }\n\n private _subscribeToTabLabels() {\n if (this._tabLabelSubscription) {\n this._tabLabelSubscription.unsubscribe();\n }\n\n this._tabLabelSubscription = merge(\n ...this._tabs.filter((t): t is InlineTabComponent => !!t).map((tab) => tab._stateChanges),\n ).subscribe(() => this._cdr.markForCheck());\n }\n\n private _createChangeEvent(index: number): InlineTabChangeEvent {\n const event = new InlineTabChangeEvent();\n event.index = index;\n if (this._tabs && this._tabs.length) {\n const tab = this._tabs.toArray()[index];\n\n if (tab) {\n event.tab = tab;\n }\n }\n return event;\n }\n}\n","<et-inline-tab-header\n #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [ngClass]=\"tabHeaderClasses\"\n [itemSize]=\"itemSize\"\n [renderButtons]=\"renderButtons\"\n [scrollableClass]=\"scrollableClass\"\n [renderMasks]=\"renderMasks\"\n [renderScrollbars]=\"renderScrollbars\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"_handleEnter($event)\"\n>\n @for (tab of _tabs; track trackByTabFn(i, tab); let i = $index) {\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events -->\n <div\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"!tab.ariaLabel && tab.ariaLabelledby ? tab.ariaLabelledby : null\"\n [disabled]=\"tab.disabled\"\n [class.et-inline-tab-label--active]=\"selectedIndex === i\"\n [class.et-inline-tab-label--is-text]=\"!!tab.textLabel\"\n [fitUnderlineToContent]=\"tab.fitUnderlineToContent\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\"\n role=\"tab\"\n etInlineTabLabelWrapper\n cdkMonitorElementFocus\n >\n <span class=\"et-tab-content\">\n @if (tab.templateLabel) {\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\" />\n } @else {\n {{ tab.textLabel }}\n }\n </span>\n </div>\n }\n</et-inline-tab-header>\n\n<div #tabBodyWrapper class=\"et-inline-tabs-body-wrapper\">\n @for (tab of _tabs; track trackByTabFn(i, tab); let i = $index) {\n <et-inline-tab-body\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"contentTabIndex !== null && selectedIndex === i ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.cdk-visually-hidden]=\"selectedIndex !== i\"\n [ngClass]=\"tab.bodyClass\"\n [class.sr-only]=\"selectedIndex !== i\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [preserveContent]=\"preserveContent\"\n role=\"tabpanel\"\n animationDuration=\"0ms\"\n />\n }\n</div>\n","import { FocusableOption, FocusMonitor } from '@angular/cdk/a11y';\nimport { SPACE } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n Attribute,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n Input,\n NgZone,\n numberAttribute,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { IsActiveMatchOptions, Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { NavTabsComponent } from '../../../components/nav-tabs/nav-tabs.component';\nimport { ActiveTabUnderlineDirective } from '../../../utils';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: '[et-nav-tab-link]',\n template: `\n <span class=\"et-tab-content\">\n <ng-content />\n </span>\n `,\n standalone: true,\n host: {\n class: 'et-nav-tab-link',\n },\n hostDirectives: [{ directive: ActiveTabUnderlineDirective, inputs: ['fitUnderlineToContent'] }],\n})\nexport class NavTabLinkComponent implements OnInit, AfterViewInit, OnDestroy, FocusableOption {\n private _tabNavBar = inject(NavTabsComponent);\n public elementRef = inject(ElementRef);\n private _focusMonitor = inject(FocusMonitor);\n private _router = inject(Router);\n private _cdr = inject(ChangeDetectorRef);\n private _ngZone = inject(NgZone);\n public _link = inject(RouterLink, { optional: true });\n public _linkWithHref = inject(RouterLink, { optional: true });\n public _linkConfig = inject(RouterLinkActive, { optional: true });\n\n get active(): boolean {\n const link = this._link || this._linkWithHref;\n\n if (!link) {\n return false;\n }\n\n const options: boolean | IsActiveMatchOptions = this._linkConfig\n ? isActiveMatchOptions(this._linkConfig?.routerLinkActiveOptions)\n ? this._linkConfig?.routerLinkActiveOptions\n : this._linkConfig?.routerLinkActiveOptions.exact\n : false;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // Stolen from https://github.com/angular/angular/blob/main/packages/router/src/directives/router_link_active.ts#L217\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isActive = link.urlTree ? this._router.isActive(link.urlTree, options as any) : false;\n\n return isActive;\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input({ transform: (v: unknown) => numberAttribute(v, 0) })\n tabIndex = 0;\n\n @Input({ transform: booleanAttribute })\n disabled = false;\n\n @Input()\n @HostBinding('attr.id')\n id = `et-nav-tab-link-${nextUniqueId++}`;\n\n @HostBinding('attr.aria-controls')\n get _attrAriaControls() {\n return this._getAriaControls();\n }\n\n @HostBinding('attr.aria-current')\n get _attrAriaCurrent() {\n return this._getAriaCurrent();\n }\n\n @HostBinding('attr.aria-disabled')\n get _attrAriaDisabled() {\n return this.disabled;\n }\n\n @HostBinding('attr.aria-selected')\n get _attrAriaSelected() {\n return this._getAriaSelected();\n }\n\n @HostBinding('attr.tabIndex')\n get _attrTabIndex() {\n return this._getTabIndex();\n }\n\n @HostBinding('attr.role')\n get _attrRole() {\n return this._getRole();\n }\n\n constructor(@Attribute('tabindex') tabIndex: string) {\n this.tabIndex = parseInt(tabIndex) || 0;\n }\n\n ngOnInit(): void {\n this._ngZone.runOutsideAngular(() => {\n this.elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n });\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this.elementRef);\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this.elementRef);\n this.elementRef.nativeElement.removeEventListener('click', this._haltDisabledEvents);\n }\n\n focus() {\n this.elementRef.nativeElement.focus();\n }\n\n @HostListener('focus')\n _handleFocus() {\n this._tabNavBar.focusIndex = this._tabNavBar._items.toArray().indexOf(this);\n }\n\n @HostListener('keydown', ['$event'])\n _handleKeydown(event: KeyboardEvent) {\n if (this._tabNavBar.tabOutlet && event.keyCode === SPACE) {\n this.elementRef.nativeElement.click();\n }\n }\n\n _getAriaControls(): string | null {\n return this._tabNavBar.tabOutlet\n ? this._tabNavBar.tabOutlet?.id\n : this.elementRef.nativeElement.getAttribute('aria-controls');\n }\n\n _getAriaSelected(): string | null {\n if (this._tabNavBar.tabOutlet) {\n return this.active ? 'true' : 'false';\n } else {\n return this.elementRef.nativeElement.getAttribute('aria-selected');\n }\n }\n\n _getAriaCurrent(): string | null {\n return this.active && !this._tabNavBar.tabOutlet ? 'page' : null;\n }\n\n _getRole(): string | null {\n return this._tabNavBar.tabOutlet ? 'tab' : this.elementRef.nativeElement.getAttribute('role');\n }\n\n _getTabIndex(): number {\n if (this._tabNavBar.tabOutlet) {\n return this.active && !this.disabled ? 0 : -1;\n } else {\n return this.tabIndex;\n }\n }\n\n _markForCheck() {\n this._cdr.markForCheck();\n }\n\n private _haltDisabledEvents = (event: Event) => {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n}\n\nfunction isActiveMatchOptions(options: { exact: boolean } | IsActiveMatchOptions): options is IsActiveMatchOptions {\n return !!(options as IsActiveMatchOptions).paths;\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'et-nav-tabs-outlet',\n template: '<ng-content />',\n styleUrls: ['nav-tabs-outlet.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'et-nav-tabs-outlet',\n },\n})\nexport class NavTabsOutletComponent {\n @Input()\n id = `et-nav-tabs-outlet-${nextUniqueId++}`;\n\n @HostBinding('attr.aria-labelledby')\n get _attrAriaLabelledBy() {\n return this._activeTabId;\n }\n\n @HostBinding('attr.role')\n get _attrRole() {\n return 'tabpanel';\n }\n\n @HostBinding('attr.id')\n get _attrId() {\n return this.id;\n }\n\n _activeTabId?: string;\n}\n","import { NgClass } from '@angular/common';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n forwardRef,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { ScrollObserverIgnoreTargetDirective, TypedQueryList } from '@ethlete/core';\nimport { filter, startWith, takeUntil, tap } from 'rxjs';\nimport { ScrollableComponent } from '../../../scrollable/components/scrollable';\nimport { NavTabLinkComponent } from '../../partials/nav-tabs/nav-tab-link';\nimport { NavTabsOutletComponent } from '../../partials/nav-tabs/nav-tabs-outlet';\nimport { ActiveTabUnderlineBarManager, ActiveTabUnderlineDirective, PaginatedTabHeaderDirective } from '../../utils';\n\n@Component({\n selector: '[et-nav-tabs]',\n templateUrl: 'nav-tabs.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [ScrollableComponent, NgClass, ScrollObserverIgnoreTargetDirective],\n host: {\n class: 'et-nav-tabs',\n },\n})\nexport class NavTabsComponent\n extends PaginatedTabHeaderDirective\n implements OnInit, AfterContentChecked, AfterContentInit, OnDestroy\n{\n private _router = inject(Router);\n\n @Input()\n tabOutlet?: NavTabsOutletComponent;\n\n @ContentChildren(forwardRef(() => NavTabLinkComponent), { descendants: true })\n _items!: TypedQueryList<NavTabLinkComponent>;\n\n @ContentChildren(forwardRef(() => ActiveTabUnderlineDirective), { descendants: true })\n _inkBars!: TypedQueryList<ActiveTabUnderlineDirective>;\n\n @ViewChild(ScrollableComponent, { static: true })\n _scrollable!: ScrollableComponent;\n\n _activeTabUnderlineManager?: ActiveTabUnderlineBarManager;\n\n @HostBinding('attr.role')\n get _attrRole() {\n return this._getRole();\n }\n\n ngOnInit(): void {\n this._router.events\n .pipe(\n filter((e): e is NavigationEnd => e instanceof NavigationEnd),\n tap(() => this.updateActiveLink()),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n protected _itemSelected() {\n // noop\n }\n\n override ngAfterContentInit() {\n this._activeTabUnderlineManager = new ActiveTabUnderlineBarManager(this._inkBars);\n this._items.changes\n .pipe(\n startWith(this._items.toArray()),\n tap(() => this.updateActiveLink()),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n super.ngAfterContentInit();\n }\n\n updateActiveLink() {\n if (!this._items) {\n return;\n }\n\n const items = this._items.toArray();\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n\n if (!item) {\n continue;\n }\n\n if (item?.active) {\n this.selectedIndex = i;\n this._cdr.markForCheck();\n\n if (this.tabOutlet) {\n this.tabOutlet._activeTabId = item.id;\n }\n\n return;\n }\n }\n\n this.selectedIndex = -1;\n this._activeTabUnderlineManager?.hide();\n }\n\n _getRole(): string | null {\n return this.tabOutlet ? 'tablist' : this._elementRef.nativeElement.getAttribute('role');\n }\n}\n","<et-scrollable\n [itemSize]=\"itemSize\"\n [renderButtons]=\"renderButtons\"\n [scrollableClass]=\"scrollableClass\"\n [renderMasks]=\"renderMasks\"\n [renderScrollbars]=\"renderScrollbars\"\n (keydown)=\"_handleKeydown($event)\"\n (contentChanged)=\"_onContentChanges()\"\n>\n <ng-content />\n</et-scrollable>\n","import { InlineTabsComponent } from './components/inline-tabs';\nimport { NavTabsComponent } from './components/nav-tabs';\nimport { InlineTabComponent } from './partials/inline-tabs/inline-tab';\nimport { InlineTabBodyComponent } from './partials/inline-tabs/inline-tab-body';\nimport { InlineTabBodyHostDirective } from './partials/inline-tabs/inline-tab-body-host';\nimport { InlineTabContentDirective } from './partials/inline-tabs/inline-tab-content';\nimport { InlineTabHeaderComponent } from './partials/inline-tabs/inline-tab-header';\nimport { InlineTabLabelDirective } from './partials/inline-tabs/inline-tab-label';\nimport { InlineTabLabelWrapperDirective } from './partials/inline-tabs/inline-tab-label-wrapper';\nimport { NavTabLinkComponent } from './partials/nav-tabs/nav-tab-link';\nimport { NavTabsOutletComponent } from './partials/nav-tabs/nav-tabs-outlet';\n\nexport const TabImports = [\n InlineTabsComponent,\n InlineTabBodyComponent,\n InlineTabBodyHostDirective,\n InlineTabComponent,\n InlineTabContentDirective,\n InlineTabHeaderComponent,\n InlineTabLabelDirective,\n InlineTabLabelWrapperDirective,\n NavTabsOutletComponent,\n NavTabLinkComponent,\n NavTabsComponent,\n] as const;\n","import { InjectionToken } from '@angular/core';\n\nexport interface TabConfig {\n disablePagination?: boolean;\n fitInkBarToContent?: boolean;\n contentTabIndex?: number;\n preserveContent?: boolean;\n}\n\nexport const TABS_CONFIG = new InjectionToken<TabConfig>('TABS_CONFIG');\n","import { Placement } from '@floating-ui/dom';\n\nexport const FLOATING_UI_PLACEMENTS: Placement[] = [\n 'top',\n 'left',\n 'bottom',\n 'right',\n 'top-start',\n 'top-end',\n 'right-start',\n 'right-end',\n 'bottom-start',\n 'bottom-end',\n 'left-start',\n 'left-end',\n];\n","/* eslint-disable no-restricted-imports */\nexport * from './lib/components/accordion/public-api';\nexport * from './lib/components/bracket/public-api';\nexport * from './lib/components/button/public-api';\nexport * from './lib/components/carousel/public-api';\nexport * from './lib/components/filter/public-api';\nexport * from './lib/components/forms/public-api';\nexport * from './lib/components/icons/public-api';\nexport * from './lib/components/masonry/public-api';\nexport * from './lib/components/overlay/public-api';\nexport * from './lib/components/pagination/public-api';\nexport * from './lib/components/picture/public-api';\nexport * from './lib/components/progress-spinner';\nexport * from './lib/components/query-error/public-api';\nexport * from './lib/components/scrollable/public-api';\nexport * from './lib/components/skeleton/public-api';\nexport * from './lib/components/sort/public-api';\nexport * from './lib/components/table/public-api';\nexport * from './lib/components/tabs/public-api';\nexport * from './lib/services';\nexport * from './lib/types';\nexport * from './lib/utils';\n\n// Burst cache\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BracketMatchDirective","i1.BracketRoundDirective","i1.CarouselDirective","i1.CarouselItemNavDirective","i1","i1.RichFilterTopDirective","nextUniqueId","i1.StaticFormFieldDirective","i2.WriteableInputDirective","i3.DynamicFormFieldDirective","i4.CheckboxFieldDirective","i1.DateInputDirective","i2.InputDirective","i1.DateTimeInputDirective","i1.EmailInputDirective","i1.NumberInputDirective","i1.PasswordInputDirective","i1.SearchInputDirective","i1.TextInputDirective","i1.TimeInputDirective","i2.RadioFieldDirective","i1.StaticFormGroupDirective","i3.DynamicFormGroupDirective","i4.RadioGroupDirective","i1.SegmentedButtonDirective","i2.SegmentedButtonFieldDirective","i4.SegmentedButtonGroupDirective","i1.SelectFieldDirective","i2.StaticFormFieldDirective","i3.WriteableInputDirective","i4.DynamicFormFieldDirective","uniqueId","TAB","i2.OverlayCloseBlockerDirective","i3.InputDirective","i4.ComboboxDirective","i1.SelectBodyDirective","i1.InputDirective","i2.SelectDirective","i1.SelectionListOptionDirective","i1.SlideToggleDirective","isTouchEvent","i2","i3","i4","CdkDialog","CdkDialogConfig","DIALOG_SCROLL_STRATEGY_PROVIDER","CDK_DIALOG_SCROLL_STRATEGY_PROVIDER","i1.NativeInputRefDirective","i4.MenuItemDirective","i5.DynamicFormFieldDirective","i6.CheckboxDirective","i7.InputDirective","i3.MenuItemDirective","i4.RadioDirective","i5.InputDirective","i1.MenuGroupDirective","i2.CheckboxGroupDirective","i2.StaticFormGroupDirective","i4.DynamicFormGroupDirective","i5.RadioGroupDirective","nextId","startWith","debounceTime","distinctUntilChanged","takeUntil","skip","filter","switchMap","CdkOverlayRef","i1.OverlayMainDirective","i1.QueryErrorDirective","ViewportRuler","observableOf","take","i1.ActiveTabUnderlineDirective"],"mappings":"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"}
|