@ethlete/cdk 2.9.2 → 2.10.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/CHANGELOG.md +6 -0
- package/esm2022/lib/components/pagination/types/pagination.types.mjs +1 -1
- package/esm2022/lib/components/pagination/utils/pagination.util.mjs +48 -39
- package/fesm2022/ethlete-cdk.mjs +47 -38
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/pagination/types/pagination.types.d.ts +12 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
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/icons/icon.imports.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/partials/accordion-hint/accordion-hint.directive.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/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/accordion.imports.ts","../../../../libs/cdk/src/lib/components/bracket/directives/bracket-match/bracket-match.directive.ts","../../../../libs/cdk/src/lib/components/bracket/directives/bracket-round/bracket-round.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/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/directives/query-button/query-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/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/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/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/directives/dynamic-form-field/dynamic-form-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/input/input.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/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/directives/native-input-ref/native-input-ref.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/static-form-field/static-form-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/static-form-group/static-form-group.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/writeable-input/writeable-input.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/directives/checkbox/checkbox.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/directives/checkbox-group-control/checkbox-group-control.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.ts","../../../../libs/cdk/src/lib/components/forms/utils/decorated-form-field.base.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/components/checkbox/checkbox.component.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.html","../../../../libs/cdk/src/lib/components/forms/components/checkbox/checkbox.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/email-input/email-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/number-input/number-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/password-input/password-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/search-input/search-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/text-input/text-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/textarea-input/textarea-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/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/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/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/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/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/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/radio/directives/radio/radio.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/radio/directives/radio-field/radio-field.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-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/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/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-field/segmented-button-field.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/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/forms/components/select/components/combobox/utils/option.utils.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/directives/combobox/combobox.directive.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/partials/select-option/select-option.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/select.imports.ts","../../../../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/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/slide-toggle.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/slider/components/slider-field/slider-field.component.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/slider.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/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/components/bottom-sheet-container/bottom-sheet-container.component.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/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-container-base/dialog-container-base.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/dialog.imports.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-stack.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-trigger-base.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/context-menu-trigger.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-errors.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-aim.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-group.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-interface.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-trigger.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-item.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/pointer-focus-tracker.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-base.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-bar.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-item-selectable.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-item-checkbox.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-item-radio.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-module.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/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/services/dynamic-overlay.service.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/picture-data.directive.ts","../../../../libs/cdk/src/lib/components/picture/picture.component.ts","../../../../libs/cdk/src/lib/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/scrollable/components/scrollable/scrollable.component.ts","../../../../libs/cdk/src/lib/components/scrollable/components/scrollable/scrollable.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/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/column-def/column-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/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/table.imports.ts","../../../../libs/cdk/src/lib/components/table/utils/table-data-source.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/tabs/animations/tabs.animations.ts","../../../../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/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.ts","../../../../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/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/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/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.ts","../../../../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/tab.imports.ts","../../../../libs/cdk/src/lib/components/tabs/types/tab-config.types.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 },\n})\nexport class ChevronIconComponent {}\n","import { ChevronIconComponent } from './chevron-icon';\n\nexport const IconImports = [ChevronIconComponent] as const;\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 { 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 { 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 { 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, NgIf, 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';\nimport {\n ACCORDION_HINT_WRAPPER_DIRECTIVE,\n ACCORDION_LABEL_WRAPPER_DIRECTIVE,\n AccordionHintWrapperDirective,\n AccordionLabelDirective,\n AccordionLabelWrapperDirective,\n} from '../../partials';\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 NgIf,\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 <ng-template [ngIf]=\"templateLabel\" [ngIfElse]=\"textLabelTpl\">\n <ng-template [cdkPortalOutlet]=\"templateLabel\" />\n </ng-template>\n\n <ng-template #textLabelTpl\n ><span et-accordion-label>{{ label }} </span>\n </ng-template>\n </div>\n\n <ng-container *ngIf=\"templateHint\">\n <ng-template [cdkPortalOutlet]=\"templateHint\" />\n </ng-container>\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 { AccordionComponent, AccordionGroupComponent } from './components';\nimport {\n AccordionHintDirective,\n AccordionHintWrapperDirective,\n AccordionLabelDirective,\n AccordionLabelWrapperDirective,\n} from './partials';\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 { 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, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BracketMatchDirective } from '../../directives';\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, NgIf],\n hostDirectives: [BracketMatchDirective],\n})\nexport class BracketMatchComponent {\n matchData = inject(BracketMatchDirective);\n}\n","<ng-container *ngIf=\"matchData.match$ | async as match\">\n {{ match.data.id }}\n</ng-container>\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BracketRoundDirective } from '../../directives';\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, NgIf],\n hostDirectives: [BracketRoundDirective],\n})\nexport class BracketRoundHeaderComponent {\n roundData = inject(BracketRoundDirective);\n}\n","<ng-container *ngIf=\"roundData.round$ | async as round\">\n {{ round.name }}\n</ng-container>\n","import { InjectionToken } from '@angular/core';\nimport { BracketComponent } from '../components';\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];\n }\n\n get firstLoserRound() {\n return (this.loserRounds[0] ?? null) as RoundStageStructureWithMatchesView | 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.matches.length * 2;\n }\n\n get bracketType() {\n return !this.loserRoundCount ? 'single' : 'double';\n }\n\n get winnerBracketRowCount() {\n return this.firstWinnerRound.matches.length;\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 // Transition from last round of looser bracket to semi final round of winner bracket\n logicalNextRound = this._roundsWithMatches[currentRoundIndex - this.looserRowAdditionalRoundCount + 1];\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 if (this.loserRounds.length === currentRoundIndex + this.looserRowAdditionalRoundCount) {\n previousMatchB = this.loserRounds[currentRoundIndex + this.looserRowAdditionalRoundCount - 1].matches[0].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, NgForOf, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n inject,\n Injector,\n Input,\n TrackByFunction,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n LetDirective,\n Memo,\n ScrollObserverFirstElementDirective,\n ScrollObserverLastElementDirective,\n} 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: [\n NgClass,\n NgForOf,\n LetDirective,\n NgIf,\n PortalModule,\n AsyncPipe,\n ScrollObserverFirstElementDirective,\n ScrollObserverLastElementDirective,\n ],\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 ?? false;\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","<ng-container *ngIf=\"_bracket$ | async as bracket\">\n <ng-container *ngFor=\"let round of bracket.bracketRounds; trackBy: trackByRound; let roundIndex = index\">\n <div\n *ngIf=\"_config.roundHeaderComponent\"\n [etScrollObserverFirstElement]=\"roundIndex === 0\"\n [etScrollObserverLastElement]=\"roundIndex === bracket.winnerRoundCount - 1\"\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' ? round.row.start + 1 : round.row.start\n \"\n [attr.special-align-end]=\"\n round.data.type === 'third_place' &&\n bracket.bracketType === 'single' &&\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 <ng-container *etLet=\"bracket.bracketRounds[roundIndex - 1] as lastRound\">\n <ng-container *etLet=\"bracket.bracketRounds[roundIndex + 1] as nextRound\">\n <ng-container *ngFor=\"let match of round.matches; trackBy: trackByMatch; let matchIndex = index\">\n <div\n *ngIf=\"getConnectedMatches(match, bracket) as connectedMatches\"\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 </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n","import { BracketComponent } from './components';\nimport { BracketMatchComponent, BracketRoundHeaderComponent } from './partials';\n\nexport const BracketImports = [BracketComponent, BracketMatchComponent, BracketRoundHeaderComponent] as const;\n","import { Directive, ElementRef, Input, booleanAttribute, inject } from '@angular/core';\nimport { createReactiveBindings } 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 _bindings = createReactiveBindings(\n {\n attribute: ['disabled', 'aria-disabled'],\n observable: this.disabled$.pipe(\n map((disabled) => ({\n render: disabled,\n value: true,\n })),\n ),\n },\n {\n attribute: ['tabindex'],\n observable: this.disabled$.pipe(\n map((disabled) => ({\n render: disabled && this.isAnchor,\n value: -1,\n })),\n ),\n },\n {\n attribute: ['type'],\n observable: this.type$.pipe(\n map((type) => ({\n render: this.isButton,\n value: type,\n })),\n ),\n },\n {\n attribute: ['aria-pressed'],\n observable: this._pressed$,\n },\n );\n\n _removeDisabledBindings() {\n this._bindings.remove('disabled', 'aria-disabled');\n }\n\n _removeTabIndexBindings() {\n this._bindings.remove('tabindex');\n }\n}\n","import { Directive, ElementRef, inject, Input } from '@angular/core';\nimport { createDestroy, createReactiveBindings } 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()\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 this._bindings.reset();\n\n const query = extractQuery(this._query$.value);\n\n if (!query) {\n return;\n }\n\n query.state$.pipe(takeUntil(this._destroy$), takeUntil(this._query$.pipe(skip(1)))).subscribe((state) => {\n if (isQueryStateLoading(state)) {\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)) {\n this.showSuccess$.next(true);\n classList.add(CLASSES.success);\n } else if (isQueryStateFailure(state)) {\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 }, 3000);\n }\n });\n }\n get query$() {\n return this._query$.asObservable();\n }\n private readonly _query$ = new BehaviorSubject<AnyQuery | AnyQueryCollection | null>(null);\n\n private readonly _bindings = createReactiveBindings(\n {\n attribute: ['disabled', 'aria-disabled'],\n observable: combineLatest([this._button.disabled$, this.showFailure$, this.showSuccess$, this.isLoading$]).pipe(\n map(([disabled, showFailure, showSuccess, isLoading]) => ({\n render: disabled || showFailure || showSuccess || isLoading,\n value: true,\n })),\n ),\n },\n {\n attribute: ['aria-live'],\n observable: 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 {\n render: true,\n value,\n };\n }),\n ),\n },\n );\n\n constructor() {\n this._button._removeDisabledBindings();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { ButtonDirective } from '../../directives';\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></ng-content>\n </span>\n</span>\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { LetDirective } from '@ethlete/core';\nimport { QueryDirective } from '@ethlete/query';\nimport { ButtonDirective, QueryButtonDirective } from '../../directives';\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'] },\n { directive: ButtonDirective, inputs: ['disabled', 'type', 'pressed'] },\n ],\n imports: [QueryDirective, AsyncPipe, NgIf, 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 || showSuccess || showFailure ? 'true' : undefined\"\n class=\"et-button-text et-query-button-text et-query-button-text--default\"\n >\n <ng-content></ng-content>\n </span>\n\n <span *ngIf=\"loading\" class=\"et-query-button-loading\"> </span>\n <span *ngIf=\"loading\" class=\"et-button-text et-query-button-text et-query-button-text--loading\">Loading</span>\n\n <span *ngIf=\"showSuccess\" class=\"et-button-text et-query-button-text et-query-button-text--success\">Success</span>\n <span *ngIf=\"showFailure\" class=\"et-button-text et-query-button-text et-query-button-text--failure\">Failure</span>\n </span>\n </ng-container>\n</ng-container>\n","import { ButtonComponent, QueryButtonComponent } from './components';\n\nexport const ButtonImports = [ButtonComponent, QueryButtonComponent] as const;\n","import { Injectable, InjectionToken, isDevMode } from '@angular/core';\nimport { 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 {\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 { BehaviorSubject, combineLatest, map } from 'rxjs';\n\n@Injectable()\nexport class FormFieldStateService {\n readonly labelId$ = new BehaviorSubject<string | null>(null);\n readonly inputId$ = new BehaviorSubject<string | null>(null);\n readonly isFocusedVia$ = new BehaviorSubject<FocusOrigin | null>(null);\n readonly errorId$ = new BehaviorSubject<string | null>(null);\n\n readonly hasPrefix$ = new BehaviorSubject(false);\n readonly hasSuffix$ = new BehaviorSubject(false);\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 { 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 { BehaviorSubject, combineLatest, map, Subject } from 'rxjs';\nimport { NativeInputRefDirective } from '../directives';\nimport { ValidatorErrors } from '../types';\n\nexport type InputValueChangeFn<T = unknown> = (value: T) => void;\nexport type InputTouchedFn = () => void;\n\n@Injectable()\nexport class InputStateService<\n T = unknown,\n J extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement = HTMLInputElement,\n> {\n readonly value$ = new BehaviorSubject<T | null>(null);\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n readonly required$ = new BehaviorSubject<boolean>(false);\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 nativeInputRef$ = new BehaviorSubject<NativeInputRefDirective<J> | null>(null);\n\n readonly autofilled$ = new BehaviorSubject<boolean>(false);\n\n readonly valueIsTruthy$ = this.value$.pipe(map((value) => !!value));\n readonly valueIsFalsy$ = this.value$.pipe(map((value) => !value));\n\n readonly valueIsEmpty$ = combineLatest([this.value$, this.autofilled$]).pipe(\n map(\n ([value, autofilled]) =>\n (value === null || value === undefined || value === '' || (Array.isArray(value) && !value.length)) &&\n !autofilled,\n ),\n );\n\n readonly errors$ = new BehaviorSubject<ValidatorErrors | null>(null);\n readonly shouldDisplayError$ = new BehaviorSubject<boolean>(false);\n\n readonly isFocusedVia$ = new BehaviorSubject<FocusOrigin | null>(null);\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 { 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';\nimport { LabelSuffixDirective } from './directives';\n\nexport const LabelImports = [LabelComponent, LabelSuffixDirective] as const;\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 { 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 { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\nimport { Directive, ElementRef, InjectionToken, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { FormControl, NgControl, Validators } from '@angular/forms';\nimport { createDestroy, equal } from '@ethlete/core';\nimport { combineLatest, debounceTime, filter, map, pairwise, startWith, takeUntil, tap } from 'rxjs';\nimport { FormFieldStateService, InputStateService } from '../../services';\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<\n T = unknown,\n J extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement = HTMLInputElement,\n> implements OnInit, OnDestroy\n{\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 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$.getValue();\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$.getValue();\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$.getValue();\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$.getValue();\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$.getValue();\n }\n\n get nativeInputRef$() {\n return this._inputStateService.nativeInputRef$.asObservable();\n }\n\n get nativeInputRef() {\n return this._inputStateService.nativeInputRef$.getValue();\n }\n\n get autofilled$() {\n return this._inputStateService.autofilled$.asObservable();\n }\n\n get autofilled() {\n return this._inputStateService.autofilled$.getValue();\n }\n\n get errors$() {\n return this._inputStateService.errors$.asObservable();\n }\n\n get errors() {\n return this._inputStateService.errors$.getValue();\n }\n\n get shouldDisplayError$() {\n return this._inputStateService.shouldDisplayError$.asObservable();\n }\n\n get shouldDisplayError() {\n return this._inputStateService.shouldDisplayError$.getValue();\n }\n\n get isFocusedVia$() {\n return this._inputStateService.isFocusedVia$.asObservable();\n }\n\n get isFocusedVia() {\n return this._inputStateService.isFocusedVia$.getValue();\n }\n\n get errorId$() {\n return this._formFieldStateService.errorId$.asObservable();\n }\n\n get errorId() {\n return this._formFieldStateService.errorId$.getValue();\n }\n\n readonly describedBy$ = this._formFieldStateService.describedBy$;\n\n constructor() {\n this._inputStateService.usesImplicitControl$.next(!this._ngControl);\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?.pipe(takeUntil(this._destroy$)).subscribe((value) => this._updateValue(value));\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\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\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 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, 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 { 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, 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<\n T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement = HTMLInputElement,\n> {\n readonly element = inject<ElementRef<T>>(ElementRef);\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';\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, 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, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { InputStateService, InputTouchedFn, InputValueChangeFn } from '../../services';\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\n InputStateService,\n { provide: WRITEABLE_INPUT_TOKEN, useExisting: WriteableInputDirective },\n ],\n})\nexport class WriteableInputDirective implements ControlValueAccessor {\n readonly _inputStateService = inject(InputStateService);\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'class.et-required',\n observable: this._inputStateService.required$,\n },\n {\n attribute: 'class.et-disabled',\n observable: this._inputStateService.disabled$,\n },\n {\n attribute: 'class.et-value-is-truthy',\n observable: this._inputStateService.valueIsTruthy$,\n },\n {\n attribute: 'class.et-value-is-falsy',\n observable: this._inputStateService.valueIsFalsy$,\n },\n {\n attribute: 'class.et-empty',\n observable: this._inputStateService.valueIsEmpty$,\n },\n {\n attribute: 'class.et-should-display-error',\n observable: this._inputStateService.shouldDisplayError$,\n },\n {\n attribute: 'class.et-autofilled',\n observable: this._inputStateService.autofilled$,\n },\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 { AsyncPipe, JsonPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, Observable, map, of } from 'rxjs';\nimport { DYNAMIC_FORM_FIELD_TOKEN, DYNAMIC_FORM_GROUP_TOKEN } from '../../../../directives';\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, NgIf, AsyncPipe],\n hostDirectives: [],\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 _bindings = createReactiveBindings(\n {\n attribute: 'class.et-error--has-errors',\n observable: this.errorText$.pipe(map((v) => !!v)),\n },\n {\n attribute: 'class.cdk-visually-hidden',\n observable: this._dynamicFormGroupOrField.hideErrorMessage$,\n },\n );\n}\n","<ng-container *ngIf=\"errorText$ | async | async as text\">\n <span [id]=\"id\" aria-atomic=\"true\" aria-live=\"polite\"> {{ text }} </span>\n</ng-container>\n","import { AfterContentInit, ContentChildren, Directive, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { createReactiveBindings, TypedQueryList } from '@ethlete/core';\nimport { combineLatest, map, startWith, switchMap } from 'rxjs';\nimport { InputStateService } from '../../../../services';\nimport { CHECKBOX_TOKEN, CheckboxDirective } from '../public-api';\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: 'etCheckboxGroup',\n})\nexport class CheckboxFieldDirective implements AfterContentInit {\n readonly inputState = inject<InputStateService<boolean>>(InputStateService);\n\n readonly _bindings = createReactiveBindings();\n\n @ContentChildren(forwardRef(() => CHECKBOX_TOKEN), { descendants: true })\n private _checkbox?: TypedQueryList<CheckboxDirective>;\n\n ngAfterContentInit(): void {\n if (!this._checkbox) {\n return;\n }\n\n this._bindings.push({\n attribute: 'class.et-checkbox-field--indeterminate',\n observable: this._checkbox.changes.pipe(startWith(this._checkbox)).pipe(\n switchMap((checkboxes) =>\n combineLatest(\n checkboxes.filter((cb): cb is CheckboxDirective => !!cb).map((checkbox) => checkbox.indeterminate$),\n ),\n ),\n map((checked) => checked.some((value) => value)),\n ),\n });\n }\n}\n","import { Directive, inject, InjectionToken } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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 _bindings = createReactiveBindings(\n {\n attribute: ['class.et-checkbox--checked'],\n observable: this.checked$,\n },\n {\n attribute: ['class.et-checkbox--disabled'],\n observable: this.input.disabled$,\n },\n {\n attribute: ['class.et-checkbox--indeterminate'],\n observable: 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 { 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 { AfterContentInit, Directive, inject, InjectionToken } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { map, of } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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 implements AfterContentInit {\n readonly checkbox = inject(CHECKBOX_TOKEN);\n readonly input = inject<InputDirective<boolean>>(INPUT_TOKEN);\n readonly group = inject(CHECKBOX_GROUP_TOKEN);\n\n readonly _bindings = createReactiveBindings();\n\n ngAfterContentInit(): void {\n this._bindings.push({\n attribute: ['aria-controls'],\n elementRef: this.input.nativeInputRef?.element,\n observable:\n this.group.checkboxesWithoutGroupCtrl$.pipe(\n map((checkboxes) => ({\n render: true,\n value: checkboxes.map((checkbox) => checkbox.input.id).join(' '),\n })),\n ) ?? of(false),\n });\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error';\nimport { CheckboxFieldDirective } from '../../directives';\n\n@Component({\n selector: 'et-checkbox-field',\n template: `\n <div class=\"et-checkbox-field-container\">\n <ng-content select=\"et-checkbox\" />\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-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 { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { StaticFormGroupDirective } from '../../../../directives';\nimport { CheckboxGroupDirective } from '../../directives';\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 { Directive, inject } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { FormFieldStateService } from '../services';\n\n@Directive()\nexport class DecoratedFormFieldBase {\n private readonly _formFieldStateService = inject(FormFieldStateService);\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'class.et-form-field--has-prefix',\n observable: this._formFieldStateService.hasPrefix$,\n },\n {\n attribute: 'class.et-form-field--has-suffix',\n observable: this._formFieldStateService.hasSuffix$,\n },\n );\n}\n","import { Directive, inject, ViewChild } from '@angular/core';\nimport { INPUT_TOKEN, NATIVE_INPUT_REF_TOKEN, NativeInputRefDirective } from '../directives';\n\n@Directive()\nexport class InputBase {\n protected readonly input = inject(INPUT_TOKEN);\n\n @ViewChild(NATIVE_INPUT_REF_TOKEN)\n set nativeInputRef(value: NativeInputRefDirective) {\n this.input._setNativeInputRef(value);\n }\n}\n","import { AfterContentInit, ContentChildren, Directive, inject } from '@angular/core';\nimport { TypedQueryList, createDestroy, createReactiveBindings } from '@ethlete/core';\nimport { map, startWith, takeUntil } from 'rxjs';\nimport { INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN, InputPrefixDirective, InputSuffixDirective } from '../directives';\nimport { FormFieldStateService } from '../services';\nimport { InputBase } from './input.base';\n\n@Directive()\nexport class DecoratedInputBase extends InputBase implements AfterContentInit {\n private readonly _formFieldStateService = inject(FormFieldStateService);\n readonly _destroy$ = createDestroy();\n\n @ContentChildren(INPUT_PREFIX_TOKEN)\n protected readonly inputPrefix?: TypedQueryList<InputPrefixDirective>;\n\n @ContentChildren(INPUT_SUFFIX_TOKEN)\n protected readonly inputSuffix?: TypedQueryList<InputSuffixDirective>;\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'class.et-input--has-prefix',\n observable: this._formFieldStateService.hasPrefix$,\n },\n {\n attribute: 'class.et-input--has-suffix',\n observable: this._formFieldStateService.hasSuffix$,\n },\n );\n\n ngAfterContentInit(): void {\n if (!this.inputPrefix || !this.inputSuffix) {\n return;\n }\n\n this.inputPrefix.changes\n .pipe(\n takeUntil(this._destroy$),\n startWith(this.inputPrefix),\n map((list) => list.length > 0),\n )\n .subscribe(this._formFieldStateService.hasPrefix$);\n\n this.inputSuffix.changes\n .pipe(\n takeUntil(this._destroy$),\n startWith(this.inputSuffix),\n map((list) => list.length > 0),\n )\n .subscribe(this._formFieldStateService.hasSuffix$);\n }\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { InputBase } from '../../../../utils';\nimport { CheckboxDirective, CHECKBOX_TOKEN } from '../../directives';\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 { LabelComponent } from '../label';\nimport { CheckboxComponent, CheckboxFieldComponent, CheckboxGroupComponent } from './components';\nimport { CheckboxGroupControlDirective } from './directives';\n\nexport const CheckboxImports = [\n CheckboxComponent,\n CheckboxFieldComponent,\n CheckboxGroupComponent,\n CheckboxGroupControlDirective,\n LabelComponent,\n] as const;\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';\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 { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n if (value !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.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 { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n const val = value !== null ? `${value}` : '';\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 _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 { 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';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n if (value !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.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 { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n if (value !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.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() {\n this.input._updateValue(null);\n this._controlTouched();\n }\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';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n if (value !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.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 { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n if (value !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.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, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { EMAIL_INPUT_TOKEN, EmailInputDirective } from '../../directives';\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, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { DecoratedFormFieldBase } from '../../../../utils';\nimport { ErrorComponent } from '../../../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, NgIf, AsyncPipe],\n})\nexport class InputFieldComponent extends DecoratedFormFieldBase {\n protected readonly inputState = inject(InputStateService);\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { NUMBER_INPUT_TOKEN, NumberInputDirective } from '../../directives';\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 { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { PASSWORD_INPUT_TOKEN, PasswordInputDirective } from '../../directives';\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 { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { SEARCH_INPUT_TOKEN, SearchInputDirective } from '../../directives';\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 (keyup.escape)=\"searchInput._clear()\"\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 { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { TEXT_INPUT_TOKEN, TextInputDirective } from '../../directives';\n\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 { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\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","<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","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { INPUT_TOKEN } from '../../../../directives';\nimport { PASSWORD_INPUT_TOKEN } from '../../directives';\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';\nimport { SEARCH_INPUT_TOKEN } from '../../directives';\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 {\n IfInputEmptyDirective,\n IfInputFilledDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n} from '../../directives';\nimport { LabelComponent } from '../label';\nimport {\n EmailInputComponent,\n InputFieldComponent,\n NumberInputComponent,\n PasswordInputComponent,\n SearchInputComponent,\n TextInputComponent,\n TextareaInputComponent,\n} from './components';\nimport { PasswordInputToggleComponent, SearchInputClearComponent } from './partials';\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 IfInputEmptyDirective,\n SearchInputClearComponent,\n EmailInputComponent,\n LabelComponent,\n] as const;\n","import { Directive, InjectionToken, Input, booleanAttribute, inject } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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 _bindings = createReactiveBindings(\n {\n attribute: ['class.et-radio--checked'],\n observable: this.checked$,\n },\n {\n attribute: ['class.et-radio--disabled'],\n observable: this.disabled$,\n },\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 { createReactiveBindings, TypedQueryList } from '@ethlete/core';\nimport { combineLatest, map, startWith, 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 implements AfterContentInit {\n readonly inputState = inject<InputStateService<RadioValue>>(InputStateService);\n\n readonly _bindings = createReactiveBindings();\n\n @ContentChildren(forwardRef(() => RADIO_TOKEN), { descendants: true })\n private _radio?: TypedQueryList<RadioDirective>;\n\n ngAfterContentInit(): void {\n if (!this._radio) {\n return;\n }\n\n this._bindings.push({\n attribute: 'class.et-radio-field--checked',\n observable: this._radio.changes.pipe(startWith(this._radio)).pipe(\n switchMap((radios) =>\n combineLatest(radios.filter((radio): radio is RadioDirective => !!radio).map((radio) => radio.checked$)),\n ),\n map((checked) => checked.some((value) => value)),\n ),\n });\n\n this._bindings.push({\n attribute: 'class.et-radio-field--disabled',\n observable: this._radio.changes.pipe(startWith(this._radio)).pipe(\n switchMap((radios) =>\n combineLatest(radios.filter((radio): radio is RadioDirective => !!radio).map((radio) => radio.disabled$)),\n ),\n map((disabled) => disabled.some((value) => value)),\n ),\n });\n }\n}\n","import { Directive, inject, InjectionToken } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { map } from 'rxjs';\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 _bindings = createReactiveBindings({\n attribute: 'aria-labelledby',\n observable: this._formGroupStateService.describedBy$.pipe(\n map((describedBy) => {\n return {\n render: !!describedBy,\n value: `${describedBy}`,\n };\n }),\n ),\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { StaticFormFieldDirective } from '../../../../directives';\nimport { RadioFieldDirective } from '../../directives';\n\n@Component({\n selector: 'et-radio-field',\n template: `\n <div class=\"et-radio-field-container\">\n <ng-content select=\"et-radio\" />\n <ng-content select=\"et-label\" />\n </div>\n `,\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, StaticFormGroupDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error';\nimport { RadioGroupDirective } from '../../directives';\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 { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { InputBase } from '../../../../utils';\nimport { RadioDirective, RADIO_GROUP_TOKEN, RADIO_TOKEN } from '../../directives';\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 { LabelComponent } from '../label';\nimport { RadioComponent, RadioFieldComponent, RadioGroupComponent } from './components';\n\nexport const RadioImports = [RadioComponent, RadioFieldComponent, RadioGroupComponent, LabelComponent] as const;\n","import { Directive, InjectionToken, Input, booleanAttribute, inject } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\nimport { SegmentedButtonValue } from '../../types';\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<SegmentedButtonValue>>(INPUT_TOKEN);\n\n @Input()\n get value() {\n return this._value$.getValue();\n }\n set value(value: SegmentedButtonValue) {\n this._value$.next(value);\n }\n private _value$ = new BehaviorSubject<SegmentedButtonValue>(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 _bindings = createReactiveBindings(\n {\n attribute: ['class.et-segmented-button--checked'],\n observable: this.checked$,\n },\n {\n attribute: ['class.et-segmented-button--disabled'],\n observable: this.disabled$,\n },\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 { createReactiveBindings, TypedQueryList } from '@ethlete/core';\nimport { combineLatest, map, startWith, switchMap } from 'rxjs';\nimport { InputStateService } from '../../../../services';\nimport { SegmentedButtonValue } from '../../types';\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 implements AfterContentInit {\n readonly inputState = inject<InputStateService<SegmentedButtonValue>>(InputStateService);\n\n readonly _bindings = createReactiveBindings();\n\n @ContentChildren(forwardRef(() => SEGMENTED_BUTTON_TOKEN), { descendants: true })\n private _segmentedButton?: TypedQueryList<SegmentedButtonDirective>;\n\n ngAfterContentInit(): void {\n if (!this._segmentedButton) {\n return;\n }\n\n this._bindings.push({\n attribute: 'class.et-segmented-button-field--checked',\n observable: this._segmentedButton.changes.pipe(startWith(this._segmentedButton)).pipe(\n switchMap((buttons) =>\n combineLatest(\n buttons.filter((radio): radio is SegmentedButtonDirective => !!radio).map((button) => button.checked$),\n ),\n ),\n map((checked) => checked.some((value) => value)),\n ),\n });\n\n this._bindings.push({\n attribute: 'class.et-segmented-button-field--disabled',\n observable: this._segmentedButton.changes.pipe(startWith(this._segmentedButton)).pipe(\n switchMap((buttons) =>\n combineLatest(\n buttons.filter((radio): radio is SegmentedButtonDirective => !!radio).map((button) => button.disabled$),\n ),\n ),\n map((disabled) => disabled.some((value) => value)),\n ),\n });\n }\n}\n","import { AfterContentInit, ContentChildren, Directive, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { createDestroy, createFlipAnimation, createReactiveBindings, TypedQueryList } from '@ethlete/core';\nimport { combineLatest, map, pairwise, startWith, takeUntil, tap } from 'rxjs';\nimport { FormGroupStateService, InputStateService } from '../../../../services';\nimport { SegmentedButtonValue } from '../../types';\nimport { SEGMENTED_BUTTON_TOKEN, SegmentedButtonDirective } from '../public-api';\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 =\n inject<InputStateService<SegmentedButtonValue, HTMLButtonElement>>(InputStateService);\n private readonly _destroy$ = createDestroy();\n\n readonly name = `et-segmented-button-group-${++nextUniqueId}`;\n\n readonly _bindings = createReactiveBindings({\n attribute: 'aria-labelledby',\n observable: this._formGroupStateService.describedBy$.pipe(\n map((describedBy) => {\n return {\n render: !!describedBy,\n value: `${describedBy}`,\n };\n }),\n ),\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, NativeInputRefDirective } from '../../../../directives';\nimport { InputBase } from '../../../../utils';\nimport { SEGMENTED_BUTTON_GROUP_TOKEN, SEGMENTED_BUTTON_TOKEN, SegmentedButtonDirective } from '../../directives';\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 { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { StaticFormFieldDirective } from '../../../../directives';\nimport { SegmentedButtonFieldDirective } from '../../directives';\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 imports: [],\n hostDirectives: [StaticFormFieldDirective, SegmentedButtonFieldDirective],\n})\nexport class SegmentedButtonFieldComponent {}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormGroupDirective, StaticFormGroupDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error';\nimport { SegmentedButtonGroupDirective } from '../../directives';\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","import { SegmentedButtonComponent, SegmentedButtonFieldComponent, SegmentedButtonGroupComponent } from './components';\n\nexport const SegmentedButtonImports = [\n SegmentedButtonComponent,\n SegmentedButtonFieldComponent,\n SegmentedButtonGroupComponent,\n] as const;\n","import { Directive, InjectionToken } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/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 _bindings = createReactiveBindings();\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { DecoratedFormFieldBase } from '../../../../utils';\nimport { ErrorComponent } from '../../../error';\nimport { SelectFieldDirective } from '../../directives';\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, NgIf, AsyncPipe],\n})\nexport class SelectFieldComponent extends DecoratedFormFieldBase {\n protected readonly inputState = inject(InputStateService);\n}\n","export const isOptionDisabled = (opt: unknown) => {\n if (typeof opt === 'object' && opt !== null && 'disabled' in opt) {\n return !!opt.disabled;\n }\n\n return false;\n};\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, InjectionToken, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, map, switchMap } from 'rxjs';\nimport { COMBOBOX_TOKEN } from '../../components';\nimport { isOptionDisabled } from '../../utils';\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 '(click)': 'selectOption()',\n },\n imports: [AsyncPipe],\n hostDirectives: [],\n providers: [\n {\n provide: COMBOBOX_OPTION_TOKEN,\n useExisting: ComboboxOptionComponent,\n },\n ],\n})\nexport class ComboboxOptionComponent {\n protected readonly combobox = inject(COMBOBOX_TOKEN);\n\n @Input({ required: true })\n get option() {\n return this._option$.value;\n }\n set option(value: unknown) {\n this._option$.next(value);\n }\n private _option$ = new BehaviorSubject<unknown>(null);\n\n protected readonly disabled$ = this._option$.pipe(map((opt) => isOptionDisabled(opt)));\n\n protected readonly selected$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionSelected(opt)));\n\n protected readonly active$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionActive(opt)));\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'class.et-combobox-option--selected',\n observable: this.selected$,\n },\n {\n attribute: 'class.et-combobox-option--disabled',\n observable: this.disabled$,\n },\n {\n attribute: 'class.et-combobox-option--active',\n observable: this.active$,\n },\n );\n\n protected selectOption() {\n if (isOptionDisabled(this.option)) {\n return;\n }\n\n this.combobox.writeValueFromOption(this.option);\n }\n}\n","{{ combobox.getOptionLabel(option) | async }}\n","import { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n InjectionToken,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport {\n ANIMATED_LIFECYCLE_TOKEN,\n AnimatedLifecycleDirective,\n ClickOutsideDirective,\n LetDirective,\n createDestroy,\n createReactiveBindings,\n} from '@ethlete/core';\nimport { takeUntil, tap } from 'rxjs';\nimport { COMBOBOX_TOKEN } from '../../components';\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 },\n imports: [\n NgTemplateOutlet,\n NgFor,\n ComboboxOptionComponent,\n LetDirective,\n AsyncPipe,\n AnimatedLifecycleDirective,\n NgIf,\n ],\n hostDirectives: [ClickOutsideDirective],\n providers: [\n {\n provide: COMBOBOX_BODY_TOKEN,\n useExisting: ComboboxBodyComponent,\n },\n ],\n})\nexport class ComboboxBodyComponent implements OnInit {\n private readonly _destroy$ = createDestroy();\n private readonly _clickOutside = inject(ClickOutsideDirective);\n protected readonly combobox = inject(COMBOBOX_TOKEN);\n\n @ViewChild(ANIMATED_LIFECYCLE_TOKEN, { static: true })\n readonly _animatedLifecycle?: AnimatedLifecycleDirective;\n\n readonly _bindings = createReactiveBindings({\n attribute: 'class.et-combobox-body--loading',\n observable: this.combobox.loading$,\n });\n\n _bodyTemplate: TemplateRef<unknown> | null = null;\n\n ngOnInit(): void {\n this._clickOutside.etClickOutside\n .pipe(\n takeUntil(this._destroy$),\n tap(() => this.combobox.close()),\n )\n .subscribe();\n }\n}\n","<!-- eslint-disable @angular-eslint/template/use-track-by-function -->\n<div class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <p *ngIf=\"!options?.length\" class=\"et-combobox-body--empty\">{{ combobox.emptyText }}</p>\n\n <et-combobox-option *ngFor=\"let option of options\" [option]=\"option\" />\n </ng-container>\n</div>\n","import { A, ENTER, ESCAPE, TAB } from '@angular/cdk/keycodes';\nimport { AsyncPipe, NgFor, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n InjectionToken,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n isDevMode,\n} from '@angular/core';\nimport {\n ActiveSelectionModel,\n AnimatedOverlayDirective,\n LetDirective,\n RuntimeError,\n SelectionModel,\n} from '@ethlete/core';\nimport {\n BehaviorSubject,\n catchError,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n map,\n skip,\n skipWhile,\n takeUntil,\n tap,\n throwError,\n} from 'rxjs';\nimport { ChevronIconComponent } from '../../../../../../../icons';\nimport { INPUT_TOKEN, InputDirective, NativeInputRefDirective } from '../../../../../../directives';\nimport { DecoratedInputBase } from '../../../../../../utils';\nimport { SELECT_FIELD_TOKEN } from '../../../../directives';\nimport { ComboboxBodyComponent } from '../../partials';\nimport { isOptionDisabled } from '../../utils';\n\nconst COMBOBOX_ERRORS = {\n 1: 'Expected options to be an array of objects. This is due to \"bindLabel\" and \"bindValue\" being set.',\n 2: '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} as const;\n\nconst comboboxError = (code: keyof typeof COMBOBOX_ERRORS, data: unknown) => {\n const message = `<et-combobox>: ${COMBOBOX_ERRORS[code]}`;\n\n throw new RuntimeError(code, message, data);\n};\n\nconst isPrimitiveArray = (value: unknown): value is Array<string | number | boolean> => {\n if (!Array.isArray(value)) return false;\n\n const first = value[0];\n const last = value[value.length - 1];\n\n if (!first || !last) return false;\n\n return typeof first !== 'object' && typeof last !== 'object';\n};\n\nconst isObjectArray = (value: unknown): value is Array<Record<string, unknown>> => {\n if (!Array.isArray(value)) return false;\n\n const first = value[0];\n const last = value[value.length - 1];\n\n if (!first || !last) return false;\n\n return typeof first === 'object' && typeof last === 'object';\n};\n\nconst isEmptyArray = (value: unknown): value is [] => {\n return Array.isArray(value) && value.length === 0;\n};\n\nconst ComboboxOptionType = {\n Primitive: 'primitive',\n Object: 'object',\n} as const;\n\nexport const COMBOBOX_TOKEN = new InjectionToken<ComboboxComponent>('ET_COMBOBOX_TOKEN');\n\ninterface KeyHandlerResult {\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\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)': 'selectInputAndOpen()',\n },\n imports: [NgIf, NativeInputRefDirective, AsyncPipe, ChevronIconComponent, LetDirective, NgFor],\n hostDirectives: [{ directive: InputDirective }, AnimatedOverlayDirective],\n providers: [\n {\n provide: COMBOBOX_TOKEN,\n useExisting: ComboboxComponent,\n },\n ],\n})\nexport class ComboboxComponent extends DecoratedInputBase implements OnInit {\n //#region Injects\n\n private readonly _input = inject(INPUT_TOKEN);\n private readonly _animatedOverlay = inject<AnimatedOverlayDirective<ComboboxBodyComponent>>(AnimatedOverlayDirective);\n private readonly _selectField = inject(SELECT_FIELD_TOKEN);\n\n //#endregion\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 }\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(true);\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\n @Input()\n emptyText = 'No results found';\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: string | null) {\n this._selectionModel.setLabelBinding(value);\n }\n\n @Input()\n set bindValue(value: string | null) {\n this._selectionModel.setValueBinding(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 //#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 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 private readonly _isOpen$ = this._animatedOverlay.isMounted$;\n\n private readonly _selectionModel = new SelectionModel();\n private readonly _activeSelectionModel = new ActiveSelectionModel();\n\n readonly selectedOptions$ = this._selectionModel.selection$;\n readonly multiple$ = this._selectionModel.allowMultiple$;\n readonly options$ = this._selectionModel.filteredOptions$;\n readonly rawOptions$ = this._selectionModel.options$;\n\n //#endregion\n\n //#region Computes\n\n //#endregion\n\n //#region Lifecycle\n\n constructor() {\n super();\n\n this._activeSelectionModel.setSelectionModel(this._selectionModel);\n\n this._animatedOverlay.placement = 'bottom';\n this._animatedOverlay.allowedAutoPlacements = ['bottom', 'top'];\n\n this._bindings.push({\n attribute: 'class.et-combobox--loading',\n observable: this._loading$,\n });\n\n this._bindings.push({\n attribute: 'class.et-combobox--error',\n observable: this._error$.pipe(map((v) => !!v)),\n });\n\n this._bindings.push({\n attribute: 'class.et-combobox--open',\n observable: this._isOpen$,\n });\n\n this._selectField._bindings.push({\n attribute: 'class.et-select-field--multiple',\n observable: this.multiple$,\n });\n\n this._selectField._bindings.push({\n attribute: 'class.et-select-field--open',\n observable: this._isOpen$,\n });\n }\n\n ngOnInit(): void {\n this._initDispatchFilterChanges();\n this._initRepositionOnValueChanges();\n\n if (isDevMode()) {\n this._debugValidateComboboxConfig();\n }\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\n //#endregion\n\n //#region Public Methods\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 removeSelectedOption(option: unknown) {\n this._selectionModel.removeSelectedOption(option);\n\n this.input._markAsTouched();\n }\n\n open() {\n // if (!this._selectBodyConfig) return;\n\n if (this._isOpen || this.input.disabled || this._animatedOverlay.isMounting) return;\n\n // this._setSelectedOptionActive();\n\n const instance = this._animatedOverlay.mount({\n component: ComboboxBodyComponent,\n mirrorWidth: true,\n // data: { _bodyTemplate: this._selectBodyConfig.template },\n });\n\n if (!instance) return;\n\n // this._selectBodyId$.next(instance.selectBody.id);\n }\n\n close() {\n if (!this._isOpen || this._animatedOverlay.isUnmounting) return;\n\n this._animatedOverlay.unmount();\n\n // this._selectBodyId$.next(null);\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.activeOption$.pipe(map((activeOption) => activeOption === option));\n }\n\n //#endregion\n\n //#region Protected Methods\n\n protected 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\n const result: KeyHandlerResult = {};\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 } else if (!isMultiple) {\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 (!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 protected processInputEvent(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n\n this._updateFilter(value);\n }\n\n protected handleBlurEvent() {\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 //#endregion\n\n //#region Private Methods\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 _initRepositionOnValueChanges() {\n this.input.valueChange$\n .pipe(\n takeUntil(this._destroy$),\n debounceTime(0),\n tap(() => this._animatedOverlay._reposition()),\n )\n .subscribe();\n }\n\n private _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 private _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 private _interpretKeyHandlerResult(result: KeyHandlerResult) {\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 (isOptionDisabled(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 //#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(1, options);\n }\n } else if (expectedOptionType === ComboboxOptionType.Primitive) {\n if (!isPrimitiveArray(options)) {\n throw comboboxError(2, options);\n }\n }\n }),\n catchError((e) => {\n this._debugValidateComboboxConfig(true);\n return throwError(() => e);\n }),\n )\n .subscribe();\n }\n\n //#endregion\n}\n","<!-- eslint-disable @angular-eslint/template/click-events-have-key-events -->\n<!-- eslint-disable @angular-eslint/template/use-track-by-function -->\n<ng-content select=\"[etInputPrefix]\" />\n\n<div class=\"et-combobox-wrapper\">\n <ul *ngIf=\"multiple$ | async\" class=\"et-combobox-selected-options\">\n <li *ngFor=\"let item of selectedOptions$ | async\" class=\"et-combobox-selected-option\">\n {{ getOptionLabel(item) | async }}\n <span\n (click)=\"removeSelectedOption(item); $event.stopPropagation()\"\n class=\"et-combobox-selected-option-remove\"\n tabindex=\"-1\"\n >\n x\n </span>\n </li>\n </ul>\n\n <input\n (keydown)=\"processKeydownEvent($event)\"\n (click)=\"open()\"\n (blur)=\"handleBlurEvent()\"\n (input)=\"processInputEvent($event)\"\n type=\"text\"\n etNativeInputRef\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, InputSuffixDirective } from '../../../../directives';\nimport { LabelComponent } from '../../../label';\nimport { SelectFieldComponent } from '../select-field';\nimport { ComboboxComponent } from './components';\n\nexport const ComboboxImports = [\n ComboboxComponent,\n SelectFieldComponent,\n InputPrefixDirective,\n InputSuffixDirective,\n LabelComponent,\n] as const;\n","import { Directive, InjectionToken } from '@angular/core';\n\nexport const COMBOBOX_DIR_TOKEN = new InjectionToken<ComboboxDirective>('ET_COMBOBOX_INPUT_TOKEN');\n\n@Directive({\n standalone: true,\n providers: [\n {\n provide: COMBOBOX_DIR_TOKEN,\n useExisting: ComboboxDirective,\n },\n ],\n})\nexport class ComboboxDirective {}\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 { NativeSelectOptionValue } from '../../..';\nimport { INPUT_TOKEN, InputDirective } from '../../../../../../directives';\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, NgForOf, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../../../directives';\nimport { DecoratedInputBase } from '../../../../../../utils';\nimport { NATIVE_SELECT_INPUT_TOKEN, NativeSelectInputDirective } from '../../directives';\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, NgForOf, 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 <option\n *ngFor=\"let option of select.options; trackBy: select._trackByFn\"\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</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';\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, InputSuffixDirective } from '../../../../directives';\nimport { LabelComponent } from '../../../label';\nimport { SelectFieldComponent } from '../select-field';\nimport { NativeSelectInputComponent } from './components';\nimport { NativeSelectInputDirective, NativeSelectOptionDirective } from './directives';\nimport { NativeSelectOptionComponent } from './partials';\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 {\n AfterContentInit,\n Directive,\n ElementRef,\n InjectionToken,\n Input,\n booleanAttribute,\n inject,\n isDevMode,\n} from '@angular/core';\nimport { ObserveContentDirective, createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, firstValueFrom, map } 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)': 'setSelectValue()',\n '(etObserveContent)': '_updateViewValue()',\n role: 'option',\n },\n hostDirectives: [ObserveContentDirective],\n})\nexport class SelectOptionDirective implements AfterContentInit {\n private readonly _select = inject(SELECT_TOKEN);\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _viewValue$ = new BehaviorSubject<string>(this._elementRef.nativeElement.textContent?.trim() ?? '');\n private readonly _isActive$ = new BehaviorSubject(false);\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\n readonly isSelected$ = combineLatest([this._select.input.value$, this._value$]).pipe(\n map(([selectValue, optionValue]) => {\n if (Array.isArray(selectValue)) {\n return selectValue.includes(optionValue);\n }\n\n return selectValue === optionValue;\n }),\n );\n\n readonly viewValue$ = this._viewValue$.asObservable();\n readonly disabled$ = this._disabled$.asObservable();\n readonly isActive$ = this._isActive$.asObservable();\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'class.et-select-option--selected',\n observable: this.isSelected$,\n },\n {\n attribute: 'class.et-select-option--active',\n observable: this._isActive$,\n },\n {\n attribute: 'aria-selected',\n observable: this.isSelected$.pipe(\n map((selected) => ({\n render: true,\n value: selected,\n })),\n ),\n },\n );\n\n ngAfterContentInit(): void {\n this._updateViewValue();\n }\n\n async setSelectValue() {\n if (this.disabled) return;\n\n if (this._select.multiple) {\n if (!Array.isArray(this._select.input.value)) {\n if (isDevMode()) {\n console.warn('Select multiple is enabled but the value is not an array');\n }\n\n return;\n }\n\n const isSelected = await firstValueFrom(this.isSelected$);\n\n if (isSelected) {\n this._select.setValue(this._select.input.value.filter((value) => value !== this.value));\n } else {\n this._select.setValue([...this._select.input.value, this.value]);\n }\n } else {\n this._select.setValue(this.value);\n this._select.unmountSelectBody();\n }\n }\n\n _updateViewValue() {\n this._viewValue$.next(this._elementRef.nativeElement.textContent?.trim() ?? '');\n }\n\n _setActive(isActive: boolean) {\n this._isActive$.next(isActive);\n }\n}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport {\n A,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n HOME,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n UP_ARROW,\n hasModifierKey,\n} from '@angular/cdk/keycodes';\nimport { ComponentType } from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n ContentChildren,\n Directive,\n InjectionToken,\n Input,\n OnInit,\n TemplateRef,\n TrackByFunction,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {\n AnimatedOverlayComponentBase,\n AnimatedOverlayDirective,\n TypedQueryList,\n createDestroy,\n createReactiveBindings,\n} from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, firstValueFrom, map, of, startWith, switchMap, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN } from '../../../../../../directives';\nimport { SELECT_FIELD_TOKEN } from '../../../../directives';\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 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],\n providers: [\n {\n provide: SELECT_TOKEN,\n useExisting: SelectDirective,\n },\n ],\n})\nexport class SelectDirective<T extends SelectDirectiveBodyComponentBase> implements OnInit, AfterContentInit {\n private _selectBodyConfig: SelectBodyConfig<T> | null = null;\n\n private readonly _animatedOverlay = inject<AnimatedOverlayDirective<T>>(AnimatedOverlayDirective);\n private readonly _destroy$ = createDestroy();\n private readonly _liveAnnouncer = inject(LiveAnnouncer);\n private readonly _selectField = inject(SELECT_FIELD_TOKEN);\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 @Input()\n get multiple(): boolean {\n return this._multiple$.value;\n }\n set multiple(value: unknown) {\n this._multiple$.next(booleanAttribute(value));\n\n this._migrateSelectValue();\n }\n private _multiple$ = new BehaviorSubject(false);\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 selectOptions$ = this._selectOptionsQueryList$.pipe(\n switchMap((queryList) => queryList?.changes.pipe(startWith(queryList)) ?? of(null)),\n switchMap((queryList) => {\n if (!queryList) return of(null);\n\n const items = queryList\n .filter((i): i is SelectOptionDirective => !!i)\n .map((opt) =>\n combineLatest([opt.isSelected$, opt.isActive$]).pipe(\n map(([selected, active]) => ({ opt, selected, active })),\n ),\n );\n\n return combineLatest(items ?? of(null));\n }),\n );\n\n readonly activeOption$ = this.selectOptions$.pipe(\n map((options) => {\n if (!options) return null;\n\n return options.find((option) => option.active) ?? null;\n }),\n );\n\n readonly selectedOptions$ = this.selectOptions$.pipe(\n map((options) => {\n if (!options) return null;\n\n const selectedOptions = options.filter((option) => option.selected);\n\n if (!selectedOptions.length) return null;\n\n const inputValue = this.input.value;\n\n if (this.multiple && Array.isArray(inputValue)) {\n // sort selected options by the order of the input value\n const selectedOptionsMap = new Map(selectedOptions.map((option) => [option.opt.value, option]));\n return inputValue\n .map((value) => selectedOptionsMap.get(value))\n .filter(\n (\n option,\n ): option is {\n opt: SelectOptionDirective;\n selected: boolean;\n active: boolean;\n } => !!option,\n );\n }\n\n return selectedOptions;\n }),\n );\n\n readonly selectedOption$ = this.selectedOptions$.pipe(map((options) => options?.[0] ?? null));\n\n readonly selectBodyId$ = this._selectBodyId$.asObservable();\n readonly isOpen$ = this._isOpen$.asObservable();\n readonly multiple$ = this._multiple$.asObservable();\n\n readonly selectCurrentValueId = `et-select-current-value-${uniqueId++}`;\n\n readonly ariaViewValue$ = this.selectedOptions$.pipe(\n switchMap((options) => {\n if (!options?.length) return of(null);\n\n const viewValues = options.map((option) => option.opt.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 activeDescendant$ = combineLatest([this.isOpen$, this.activeOption$]).pipe(\n map(([isOpen, activeOption]) => {\n if (!isOpen || !activeOption) return null;\n\n return activeOption.opt.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 _bindings = createReactiveBindings(\n {\n attribute: 'class.et-select--is-open',\n observable: this.isOpen$,\n },\n {\n attribute: 'class.et-select--disabled',\n observable: this.input.disabled$,\n },\n );\n\n constructor() {\n this._animatedOverlay.placement = 'bottom';\n this._animatedOverlay.allowedAutoPlacements = ['bottom', 'top'];\n\n this._selectField._bindings.push({\n attribute: 'class.et-select-field--open',\n observable: this._isOpen$,\n });\n\n this._selectField._bindings.push({\n attribute: 'class.et-select-field--multiple',\n observable: this.multiple$,\n });\n }\n\n ngOnInit(): void {\n this._unmountSelectBodyOnDisable();\n this._migrateSelectValue();\n }\n\n ngAfterContentInit(): void {\n this._setSelectedOptionActive();\n }\n\n trackByFn: TrackByFunction<SelectOptionDirective> = (_, item) => item.id;\n\n mountSelectBody() {\n if (!this._selectBodyConfig) return;\n\n if (this._animatedOverlay.isMounted || this.input.disabled) return;\n\n this._setSelectedOptionActive();\n\n const instance = this._animatedOverlay.mount({\n component: this._selectBodyConfig.component,\n mirrorWidth: true,\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\n unmountSelectBody() {\n if (!this._animatedOverlay.isMounted) return;\n\n this._animatedOverlay.unmount();\n\n this._selectBodyId$.next(null);\n this._isOpen$.next(false);\n }\n\n setValue(value: unknown) {\n this.input._updateValue(value);\n\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this._isOpen$.value) {\n this._handleKeyDownInOpenState(event);\n } else {\n this._handleKeyDownInClosedState(event);\n }\n }\n\n setSelectBody(config: SelectBodyConfig<T>) {\n this._selectBodyConfig = config;\n }\n\n removeOptionFromSelection(option: SelectOptionDirective) {\n if (!this.multiple || !Array.isArray(this.input.value)) return;\n\n const value = this.input.value.filter((v) => v !== option.value);\n\n this.setValue(value);\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n private _unmountSelectBodyOnDisable() {\n this.input.disabled$\n .pipe(\n tap((disabled) => {\n if (!disabled) return;\n\n this.unmountSelectBody();\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n private _handleKeyDownInClosedState(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n const isArrowKey =\n keyCode === DOWN_ARROW || keyCode === UP_ARROW || keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW;\n\n const isOpenKey = keyCode === ENTER || keyCode === SPACE;\n\n if ((isOpenKey && !hasModifierKey(event)) || ((this.multiple || event.altKey) && isArrowKey)) {\n event.preventDefault();\n this.mountSelectBody();\n } else if (!this.multiple) {\n switch (keyCode) {\n case DOWN_ARROW:\n this._selectOptionByOffset(1, true);\n break;\n case UP_ARROW:\n this._selectOptionByOffset(-1, true);\n break;\n case HOME:\n this._selectFirstOption(true);\n break;\n case END:\n this._selectLastOption(true);\n break;\n case PAGE_UP:\n this._selectOptionByOffset(-10, true);\n break;\n case PAGE_DOWN:\n this._selectOptionByOffset(10, true);\n break;\n }\n } else if (this.multiple && isArrowKey) {\n event.preventDefault();\n this.mountSelectBody();\n }\n }\n\n private async _handleKeyDownInOpenState(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;\n\n if (isArrowKey && event.altKey) {\n event.preventDefault();\n this.unmountSelectBody();\n } else if (keyCode === ESCAPE && !hasModifierKey(event)) {\n event.preventDefault();\n this.unmountSelectBody();\n } else if (keyCode === ENTER || keyCode === SPACE) {\n if (this.multiple) {\n this._toggleActiveOptionSelection();\n } else {\n this._setActiveOptionSelected();\n }\n\n event.preventDefault();\n } else if (this.multiple && keyCode === A && event.ctrlKey) {\n event.preventDefault();\n this._toggleSelectionOfAllOptions();\n } else {\n switch (keyCode) {\n case DOWN_ARROW:\n this._activateOptionByOffset(1);\n break;\n case UP_ARROW:\n this._activateOptionByOffset(-1);\n break;\n case HOME:\n this._activateFirstOption();\n break;\n case END:\n this._activateLastOption();\n break;\n case PAGE_UP:\n this._activateOptionByOffset(-10);\n break;\n case PAGE_DOWN:\n this._activateOptionByOffset(10);\n break;\n }\n }\n }\n\n private async _setActiveOption(option: SelectOptionDirective | null) {\n const currentActiveOption = await firstValueFrom(this.activeOption$);\n\n if (currentActiveOption?.opt === option) return false;\n\n currentActiveOption?.opt._setActive(false);\n\n if (option) {\n option._setActive(true);\n }\n\n return true;\n }\n\n private async _addActiveOptionToSelection() {\n const activeOption = await firstValueFrom(this.activeOption$);\n\n if (!activeOption || activeOption.opt.disabled || activeOption.selected) return;\n\n if (!Array.isArray(this.input.value)) {\n this.setValue([activeOption.opt.value]);\n return;\n }\n\n this.setValue([...this.input.value, activeOption.opt.value]);\n }\n\n private async _removeActiveOptionFromSelection() {\n const activeOption = await firstValueFrom(this.activeOption$);\n\n if (!activeOption || activeOption.opt.disabled || !activeOption.selected) return;\n\n if (!Array.isArray(this.input.value)) {\n this.setValue([]);\n return;\n }\n\n this.setValue(this.input.value.filter((value) => value !== activeOption.opt.value));\n }\n\n private async _toggleSelectionOfAllOptions() {\n const allOptions = await firstValueFrom(this.selectOptions$);\n\n const hasDeselectedOption = allOptions?.some((opt) => !opt.opt.disabled && !opt.selected);\n\n if (hasDeselectedOption) {\n this._selectAllOptions();\n } else {\n this._deselectAllOptions();\n }\n }\n\n private async _selectAllOptions() {\n const allOptions = await firstValueFrom(this.selectOptions$);\n\n if (!allOptions) return;\n\n const selectedOptions = allOptions.filter((opt) => !opt.opt.disabled).map((opt) => opt.opt.value);\n\n this.setValue(selectedOptions);\n }\n\n private async _deselectAllOptions() {\n this.setValue([]);\n }\n\n private async _toggleActiveOptionSelection() {\n const activeOption = await firstValueFrom(this.activeOption$);\n\n if (!activeOption) return;\n\n if (activeOption.selected) {\n this._removeActiveOptionFromSelection();\n } else {\n this._addActiveOptionToSelection();\n }\n }\n\n private async _setActiveOptionSelected() {\n const activeOption = await firstValueFrom(this.activeOption$);\n\n if (!activeOption || activeOption.opt.disabled) return;\n\n this._setSelectedOption(activeOption.opt);\n\n this.unmountSelectBody();\n }\n\n private async _setSelectedOptionActive() {\n const selectedOption = await firstValueFrom(this.selectedOption$);\n\n if (!selectedOption) return;\n\n this._setActiveOption(selectedOption.opt);\n }\n\n private async _setSelectedOption(option: SelectOptionDirective | null) {\n const selectedOption = await firstValueFrom(this.selectedOption$);\n\n if (selectedOption === option) return false;\n\n this._setActiveOption(option);\n\n this.setValue(option?.value ?? null);\n\n return true;\n }\n\n private async _selectFirstOption(announce: boolean) {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const firstOption = options[0]?.opt;\n\n if (!firstOption) return;\n\n if (!this._setSelectedOption(firstOption)) return;\n\n if (announce) {\n const text = await firstValueFrom(firstOption.viewValue$);\n this._liveAnnouncer.announce(text, 10000);\n }\n }\n\n private async _selectLastOption(announce: boolean) {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const lastOption = options[options.length - 1]?.opt;\n\n if (!lastOption) return;\n\n if (!this._setSelectedOption(lastOption)) return;\n\n if (announce) {\n const text = await firstValueFrom(lastOption.viewValue$);\n this._liveAnnouncer.announce(text, 10000);\n }\n }\n\n private async _selectOptionByOffset(offset: number, announce: boolean): Promise<void> {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const selectedOption = await firstValueFrom(this.selectedOption$);\n const selectedOptionIndex = options.findIndex((o) => o.opt === selectedOption?.opt);\n const nextOptionIndex = selectedOptionIndex + offset;\n const nextOption = options[nextOptionIndex];\n\n if (!nextOption) return;\n\n if (nextOption.opt.disabled) {\n return this._selectOptionByOffset(offset + (offset < 0 ? -1 : 1), announce);\n }\n\n if (!this._setSelectedOption(nextOption.opt)) return;\n\n if (announce) {\n const text = await firstValueFrom(nextOption.opt.viewValue$);\n this._liveAnnouncer.announce(text, 10000);\n }\n }\n\n private async _activateFirstOption() {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const firstOption = options[0]?.opt;\n\n if (!firstOption) return;\n\n await this._setActiveOption(firstOption);\n }\n\n private async _activateLastOption() {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const lastOption = options[options.length - 1]?.opt;\n\n if (!lastOption) return;\n\n await this._setActiveOption(lastOption);\n }\n\n private async _activateOptionByOffset(offset: number) {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const activatedOption = await firstValueFrom(this.activeOption$);\n const activatedOptionIndex = options.findIndex((o) => o.opt === activatedOption?.opt);\n const nextOptionIndex = activatedOptionIndex + offset;\n const nextOption = options[nextOptionIndex];\n\n if (!nextOption) return;\n\n await this._setActiveOption(nextOption.opt);\n }\n\n private async _migrateSelectValue() {\n if (this.multiple && !Array.isArray(this.input.value)) {\n this.setValue([]);\n } else if (!this.multiple && Array.isArray(this.input.value)) {\n this.setValue(null);\n }\n\n this._setActiveOption(null);\n }\n}\n","import { Directive, InjectionToken, OnInit, inject } from '@angular/core';\nimport { ClickOutsideDirective, createDestroy, createReactiveBindings } from '@ethlete/core';\nimport { map, 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\n private readonly _select = inject(SELECT_TOKEN);\n private readonly _clickOutside = inject(ClickOutsideDirective);\n\n readonly id = `et-select-body-${uniqueId++}`;\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'aria-multiselectable',\n observable: this._select.multiple$.pipe(\n map((multiple) => ({\n render: true,\n value: multiple,\n })),\n ),\n },\n {\n attribute: 'aria-labelledby',\n observable: this._select.input.labelId$.pipe(\n map((labelId) => ({\n render: !!labelId,\n value: labelId as string,\n })),\n ),\n },\n );\n\n ngOnInit(): void {\n this._clickOutside.etClickOutside\n .pipe(\n takeUntil(this._destroy$),\n tap(() => this._select.unmountSelectBody()),\n )\n .subscribe();\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective } from '@ethlete/core';\nimport { SELECT_BODY_TOKEN, SelectBodyDirective } from '../../directives';\n\n@Component({\n selector: 'et-select-body',\n template: `\n <div 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],\n})\nexport class SelectBodyComponent {\n readonly selectBody = inject(SELECT_BODY_TOKEN);\n\n @ViewChild(ANIMATED_LIFECYCLE_TOKEN, { static: true })\n readonly _animatedLifecycle?: AnimatedLifecycleDirective;\n\n _bodyTemplate: TemplateRef<unknown> | null = null;\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { SELECT_OPTION_TOKEN, SelectOptionDirective } from '../../directives';\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 { AsyncPipe, NgFor, NgIf } 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';\nimport { InputDirective, NativeInputRefDirective } from '../../../../../../directives';\nimport { DecoratedInputBase } from '../../../../../../utils';\nimport { SELECT_TOKEN, SelectDirective } from '../../directives';\nimport { SelectBodyComponent } from '../../partials';\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: [NgIf, NativeInputRefDirective, AsyncPipe, ChevronIconComponent, LetDirective, NgFor],\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.mountSelectBody()\"\n (keydown)=\"select.handleKeyDown($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 *etLet=\"select.ariaViewValue$ | async as ariaViewValue\"\n [attr.id]=\"select.selectCurrentValueId\"\n [class.cdk-visually-hidden]=\"select.multiple && ariaViewValue\"\n class=\"et-select-current-value\"\n >\n <ng-container *ngIf=\"select.ariaViewValue$ | async as ariaViewValue; else emptyTpl\">\n {{ ariaViewValue }}\n </ng-container>\n <ng-template #emptyTpl> {{ select.emptyText }} </ng-template>\n </span>\n\n <ng-container *ngIf=\"select.multiple\">\n <ng-container *ngIf=\"select.selectedOptions$ | async as selectedOptions\">\n <ul *ngIf=\"selectedOptions.length\" class=\"et-select-selected-options\" aria-hidden=\"true\">\n <li *ngFor=\"let opt of selectedOptions; trackBy: select.trackByFn\" class=\"et-select-selected-option\">\n {{ opt.opt.viewValue$ | async }}\n <button\n (click)=\"\n $event.stopImmediatePropagation(); inputElement.focus(); select.removeOptionFromSelection(opt.opt)\n \"\n class=\"et-select-selected-option-remove\"\n tabindex=\"-1\"\n type=\"button\"\n ></button>\n </li>\n </ul>\n </ng-container>\n </ng-container>\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 { InputPrefixDirective, InputSuffixDirective } from '../../../../directives';\nimport { LabelComponent } from '../../../label';\nimport { SelectFieldComponent } from '../select-field';\nimport { SelectComponent } from './components';\nimport { SelectOptionComponent } from './partials';\n\nexport const SelectImports = [\n SelectComponent,\n SelectOptionComponent,\n SelectFieldComponent,\n InputPrefixDirective,\n InputSuffixDirective,\n LabelComponent,\n] as const;\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../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 { Directive, inject, InjectionToken } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { map } from 'rxjs';\nimport { InputDirective, INPUT_TOKEN } from '../../../../directives';\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 _bindings = createReactiveBindings(\n {\n attribute: ['class.et-slide-toggle--checked'],\n observable: this.checked$,\n },\n {\n attribute: ['class.et-slide-toggle--disabled'],\n observable: this.input.disabled$,\n },\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, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { InputBase } from '../../../../utils';\nimport { SlideToggleDirective, SLIDE_TOGGLE_TOKEN } from '../../directives';\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 { LabelComponent } from '../label';\nimport { SlideToggleComponent, SlideToggleFieldComponent } from './components';\n\nexport const SlideToggleImports = [SlideToggleComponent, SlideToggleFieldComponent, LabelComponent] as const;\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../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, NgIf, AsyncPipe],\n})\nexport class SliderFieldComponent {\n protected readonly inputState = inject(InputStateService);\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { AsyncPipe, DOCUMENT, NgIf } 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 { LetDirective, clamp, createDestroy, createReactiveBindings } 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';\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);\n } else {\n point = event.touches[0] || event.changedTouches[0];\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, NgIf],\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 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(map((step) => Math.round(Math.log10(step)) * -1));\n private readonly _valueText$ = combineLatest([this._value$, this._roundToDecimal$]).pipe(\n map(([value, roundToDecimal]) => value.toFixed(roundToDecimal)),\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 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 _bindings = createReactiveBindings(\n {\n attribute: 'aria-orientation',\n observable: this._vertical$.pipe(\n map((vertical) => ({\n render: true,\n value: vertical ? 'vertical' : 'horizontal',\n })),\n ),\n },\n {\n attribute: 'aria-disabled',\n observable: this._input.disabled$,\n },\n {\n attribute: 'aria-valuenow',\n observable: this._value$.pipe(map((value) => ({ render: true, value }))),\n },\n {\n attribute: 'aria-valuemin',\n observable: this._min$.pipe(map((value) => ({ render: true, value }))),\n },\n {\n attribute: 'aria-valuemax',\n observable: this._max$.pipe(map((value) => ({ render: true, value }))),\n },\n {\n attribute: 'aria-valuetext',\n observable: this._valueText$.pipe(map((value) => ({ render: true, value }))),\n },\n {\n attribute: 'tabindex',\n observable: this._input.disabled$.pipe(map((disabled) => ({ render: true, value: disabled ? -1 : 0 }))),\n },\n {\n attribute: 'class.et-slider--is-sliding',\n observable: this.isSlidingVia$.pipe(map((isSlidingVia) => !!isSlidingVia)),\n },\n {\n attribute: 'class.et-slider--inverted',\n observable: this._inverted$,\n },\n {\n attribute: 'class.et-slider--disable-animations',\n observable: this.disableAnimations$,\n },\n {\n attribute: 'aria-labeledby',\n observable: this._formFieldStateService.labelId$.pipe(\n map((labelId) => ({ render: !!labelId, value: labelId ?? '' })),\n ),\n },\n {\n attribute: 'aria-describedby',\n observable: this._formFieldStateService.describedBy$.pipe(\n map((describedBy) => ({ render: !!describedBy, value: describedBy ?? '' })),\n ),\n },\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 <div\n *ngIf=\"trackBackgroundStyles$ | async as trackBackgroundStyles\"\n [style.transform]=\"trackBackgroundStyles.transform\"\n class=\"et-slider-track-background\"\n ></div>\n <div\n *ngIf=\"trackFillStyles$ | async as trackFillStyles\"\n [style.transform]=\"trackFillStyles.transform\"\n [style.display]=\"trackFillStyles.display\"\n class=\"et-slider-track-fill\"\n ></div>\n</div>\n\n<div\n *ngIf=\"thumbContainerStyles$ | async as thumbContainerStyles\"\n [style.transform]=\"thumbContainerStyles.transform\"\n class=\"et-slider-thumb-container\"\n>\n <div class=\"et-slider-thumb\"></div>\n</div>\n","import { LabelComponent } from '../label';\nimport { SliderComponent, SliderFieldComponent } from './components';\n\nexport const SliderImports = [SliderComponent, SliderFieldComponent, LabelComponent] 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 {\n createDestroy,\n createReactiveBindings,\n DELAYABLE_TOKEN,\n ObserveResizeDirective,\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';\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 _bindings = createReactiveBindings(\n {\n attribute: 'class.et-masonry--initialized',\n observable: this._didInitialize$,\n },\n {\n attribute: 'class.et-masonry--hide-overflow',\n observable: this._hideOverflow$,\n },\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 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 state.gridRowElHeights[lowestColumnIndex].push(updatedDimensions.height);\n state.gridRowElHeights[lowestColumnIndex][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];\n let lowestColumnIndex = 0;\n\n for (let i = 0; i < columnHeights.length; i++) {\n const columnHeight = columnHeights[i][0];\n\n if (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];\n let highestColumnIndex = 0;\n\n for (let i = 0; i < columnHeights.length; i++) {\n const columnHeight = columnHeights[i][0];\n\n if (columnHeight >= highestColumnHeight) {\n highestColumnHeight = columnHeight;\n highestColumnIndex = i;\n }\n }\n\n return { highestColumnHeight, highestColumnIndex };\n };\n}\n","import { MasonryComponent } from './components';\nimport { MasonryItemComponent } from './partials';\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\nexport const BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH = 150;\nexport const BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE = 150;\n\nexport const BOTTOM_SHEET_DATA = new InjectionToken<unknown>('BottomSheetData');\n\nexport const BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken<BottomSheetConfig>('BottomSheetDefaultOptions');\nexport const BOTTOM_SHEET_CONFIG = new InjectionToken<BottomSheetConfig>('BottomSheetConfig');\nexport const BOTTOM_SHEET_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('BottomSheetScrollStrategy');\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\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\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, Inject, NgZone, Optional } from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN } from '@ethlete/core';\nimport { BOTTOM_SHEET_CONFIG } from '../../constants';\nimport { BottomSheetConfig } from '../../types';\n\n@Component({ 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 { BOTTOM_SHEET_DEFAULT_CONFIG } from '../constants';\nimport { BottomSheetConfig } from '../types';\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 { filter, merge, Observable, skipUntil, Subject, take } from 'rxjs';\nimport { BottomSheetContainerComponent } from '../components';\nimport { BottomSheetConfig, BottomSheetState } from '../types';\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 */\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\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 { defer, Observable, startWith, Subject } from 'rxjs';\nimport { BOTTOM_SHEET_CONFIG } from '../constants';\nimport { BottomSheetContainerBaseComponent } from '../partials';\nimport { BottomSheetConfig } from '../types';\nimport { BottomSheetRef, createBottomSheetConfig } from '../utils';\n\nlet uniqueId = 0;\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 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 { SwipeEnd, SwipeHandler } from '../types';\n\nlet nextUniqueId = 0;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SwipeHandlerService {\n private _handlerMap: Record<number, SwipeHandler> = {};\n\n startSwipe(event: TouchEvent) {\n const handlerId = nextUniqueId++;\n\n const originClientX = event.targetTouches[0].clientX;\n const originClientY = event.targetTouches[0].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) {\n const handler = this._getSwipeHandler(handlerId);\n const { originClientX, originClientY, isSwiping, isScrolling } = handler;\n\n const currentClientX = event.targetTouches[0].clientX;\n const currentClientY = event.targetTouches[0].clientY;\n\n const movementX = (originClientX - currentClientX) * -1;\n const movementY = (originClientY - currentClientY) * -1;\n\n const positiveMovementX = movementX < 0 ? movementX * -1 : movementX;\n const positiveMovementY = movementY < 0 ? movementY * -1 : 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 { movementX, movementY, timestamp, originClientX, originClientY, positiveMovementX, positiveMovementY } =\n this._getSwipeHandler(handlerId);\n\n const timestampStart = timestamp;\n const timestampEnd = Date.now();\n\n const swipeTime = timestampEnd - timestampStart;\n\n const pixelPerMillisecondX = positiveMovementX / swipeTime;\n const pixelPerSecondX = pixelPerMillisecondX * 1000;\n\n const pixelPerMillisecondY = positiveMovementY / swipeTime;\n const pixelPerSecondY = pixelPerMillisecondY * 1000;\n\n delete this._handlerMap[handlerId];\n\n const swipeEnd: SwipeEnd = {\n pixelPerSecondX,\n pixelPerSecondY,\n movementX,\n movementY,\n originClientX,\n originClientY,\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 throw new Error(`The swipe handler with id ${handlerId} was not found`);\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@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 { movementY } = this._swipeHandlerService.updateSwipe(handlerId, event);\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 { movementY, pixelPerSecondY } = this._swipeHandlerService.endSwipe(handlerId);\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';\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@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@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(() => this._onTouchEnd()),\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 this._swipeHandlerId = this._bottomSheetSwipeHandlerService.startSwipe(\n event,\n this._bottomSheetRef._containerInstance.elementRef.nativeElement,\n );\n }\n\n _onTouchMove(event: TouchEvent) {\n if (!this._swipeHandlerId) {\n return;\n }\n\n const didSwipe = this._bottomSheetSwipeHandlerService.updateSwipe(this._swipeHandlerId, event);\n\n if (!didSwipe) {\n this._swipeHandlerId = null;\n }\n }\n\n _onTouchEnd() {\n if (!this._swipeHandlerId) {\n return;\n }\n\n const shouldClose = this._bottomSheetSwipeHandlerService.endSwipe(this._swipeHandlerId);\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@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 if (this._bottomSheetRef) {\n Promise.resolve().then(() => {\n if (!this._bottomSheetRef) {\n return;\n }\n\n const container = this._bottomSheetRef._containerInstance;\n\n if (container && !container._ariaLabelledBy) {\n container._ariaLabelledBy = this.id;\n }\n });\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';\nimport { BottomSheetConfig } from '../../types';\n\n@Component({\n selector: 'et-bottom-sheet-container',\n styleUrls: ['./bottom-sheet-container.component.scss'],\n template: `<ng-template cdkPortalOutlet></ng-template>`,\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 { Dialog, DIALOG_SCROLL_STRATEGY_PROVIDER } from '@angular/cdk/dialog';\nimport { BottomSheetContainerComponent } from './components';\nimport { BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER } from './constants';\nimport { BottomSheetDragHandleComponent, BottomSheetTitleDirective } from './partials';\nimport { BottomSheetService } from './services';\n\nexport const BottomSheetImports = [\n BottomSheetContainerComponent,\n BottomSheetTitleDirective,\n BottomSheetDragHandleComponent,\n] as const;\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\nexport const DIALOG_DATA = new InjectionToken('DialogData');\nexport const DIALOG_DEFAULT_OPTIONS = new InjectionToken<DialogConfig>('DialogDefaultOptions');\nexport const DIALOG_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('DialogScrollStrategy');\nexport const DIALOG_CONFIG = new InjectionToken<DialogConfig>('DialogConfig');\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\nexport const DIALOG_SCROLL_STRATEGY_PROVIDER = {\n provide: DIALOG_SCROLL_STRATEGY,\n deps: [ViewportRuler, RouterStateService],\n useFactory: DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\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 { DIALOG_DEFAULT_CONFIG } from '../constants';\nimport { DialogConfig } from '../types';\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';\nimport { DialogConfig, DialogPosition, DialogState } from '../types';\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 */\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\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 { defer, Observable, startWith, Subject } from 'rxjs';\nimport { DIALOG_CONFIG } from '../constants';\nimport { DialogContainerBaseComponent } from '../partials';\nimport { DialogConfig } from '../types';\nimport { createDialogConfig, DialogRef } from '../utils';\n\nlet uniqueId = 0;\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';\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@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 OnInit,\n OnChanges,\n Input,\n HostBinding,\n ElementRef,\n SimpleChanges,\n HostListener,\n inject,\n} from '@angular/core';\nimport { DialogService } from '../../services';\nimport { DialogRef, getClosestDialog } from '../../utils';\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 { 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, Inject, NgZone, Optional } from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN } from '@ethlete/core';\nimport { DIALOG_CONFIG } from '../../constants';\nimport { DialogConfig } from '../../types';\n\n@Component({ 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 { Directive, ElementRef, HostBinding, inject, Input, OnInit } from '@angular/core';\nimport { DialogService } from '../../services';\nimport { DialogRef, getClosestDialog } from '../../utils';\n\nlet dialogElementUid = 0;\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 if (this._dialogRef) {\n Promise.resolve().then(() => {\n if (!this._dialogRef) {\n return;\n }\n\n const container = this._dialogRef._containerInstance;\n\n if (container && !container._ariaLabelledBy) {\n container._ariaLabelledBy = this.id;\n }\n });\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';\nimport { DialogConfig } from '../../types';\n\n@Component({\n selector: 'et-dialog-container',\n styleUrls: ['./dialog-container.component.scss'],\n template: `<ng-template cdkPortalOutlet></ng-template>`,\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, DIALOG_SCROLL_STRATEGY_PROVIDER as CDK_DIALOG_SCROLL_STRATEGY_PROVIDER } from '@angular/cdk/dialog';\nimport { DialogContainerComponent } from './components';\nimport { DIALOG_SCROLL_STRATEGY_PROVIDER } from './constants';\nimport { DialogCloseDirective, DialogTitleDirective } from './partials';\nimport { DialogService } from './services';\n\nexport const DialogImports = [DialogContainerComponent, DialogCloseDirective, DialogTitleDirective] as const;\n\nexport const provideDialog = () => {\n return [DialogService, DIALOG_SCROLL_STRATEGY_PROVIDER, Dialog, CDK_DIALOG_SCROLL_STRATEGY_PROVIDER];\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 { 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@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@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@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@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","/* 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@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@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 _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\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@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 _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@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@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@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 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@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@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\nconst MENU_DIRECTIVES = [\n CdkMenuBar,\n CdkMenu,\n CdkMenuItem,\n CdkMenuItemRadio,\n CdkMenuItemCheckbox,\n CdkMenuTrigger,\n CdkMenuGroup,\n CdkContextMenuTrigger,\n CdkTargetMenuAim,\n];\n\n@NgModule({\n imports: [OverlayModule, ...MENU_DIRECTIVES],\n exports: MENU_DIRECTIVES,\n})\nexport class CdkMenuModule {}\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: 'auto',\n offset: [0, 8],\n arrowPadding: 4,\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 { Subscription, filter, fromEvent, takeUntil, tap } from 'rxjs';\nimport { ToggletipComponent } from '../../components';\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'] }],\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\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.arrowPadding = this._defaultConfig.arrowPadding;\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 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 { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n inject,\n InjectionToken,\n Injector,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AnimatedLifecycleDirective, ANIMATED_LIFECYCLE_TOKEN } from '@ethlete/core';\nimport { TOGGLETIP_CONFIG, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT } from '../../constants';\nimport { TOGGLETIP_DIRECTIVE } from '../../directives';\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: [NgIf, NgTemplateOutlet, AnimatedLifecycleDirective],\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 protected readonly injector = inject(Injector);\n private readonly _cdr = inject(ChangeDetectorRef);\n readonly _trigger = inject(TOGGLETIP_DIRECTIVE);\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","<div class=\"et-toggletip-container\" etAnimatedLifecycle>\n <ng-container *ngIf=\"toggletipText\">\n {{ toggletipText }}\n </ng-container>\n\n <ng-container *ngIf=\"toggletipTemplate\">\n <ng-container *ngTemplateOutlet=\"toggletipTemplate; injector: injector\" />\n </ng-container>\n\n <div class=\"toggletip-arrow\" data-popper-arrow></div>\n</div>\n","import { ToggletipDirective } from './directives';\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: 'auto',\n offset: [0, 8],\n arrowPadding: 4,\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 { Subscription, debounceTime, filter, fromEvent, tap } from 'rxjs';\nimport { TooltipComponent } from '../../components';\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'] }],\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\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 }\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 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 { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n inject,\n InjectionToken,\n Injector,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AnimatedLifecycleDirective, ANIMATED_LIFECYCLE_TOKEN } from '@ethlete/core';\nimport { TOOLTIP_CONFIG, TOOLTIP_TEMPLATE, TOOLTIP_TEXT } from '../../constants';\nimport { TOOLTIP_DIRECTIVE } from '../../directives';\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: [NgIf, NgTemplateOutlet, AnimatedLifecycleDirective],\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 protected readonly injector = inject(Injector);\n private readonly _cdr = inject(ChangeDetectorRef);\n readonly _trigger = inject(TOOLTIP_DIRECTIVE);\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","<div class=\"et-tooltip-container\" etAnimatedLifecycle>\n <ng-container *ngIf=\"tooltipText\">\n {{ tooltipText }}\n </ng-container>\n\n <ng-container *ngIf=\"tooltipTemplate\">\n <ng-container *ngTemplateOutlet=\"tooltipTemplate; injector: injector\" />\n </ng-container>\n\n <div class=\"tooltip-arrow\" data-popper-arrow></div>\n</div>\n","import { TooltipDirective } from './directives';\n\nexport const TooltipImports = [TooltipDirective] as const;\n","import { ComponentType } from '@angular/cdk/overlay';\nimport { Injectable, TemplateRef, inject } from '@angular/core';\nimport { ViewportService } from '@ethlete/core';\nimport { BottomSheetService, DialogService } from '../components';\nimport { DynamicOverlayConfig, DynamicOverlayRed } from '../types';\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 { 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 { inject, Injectable, OnDestroy } from '@angular/core';\nimport { Meta, 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 _metaService = inject(Meta);\n private _titleService = inject(Title);\n private _router = inject(Router);\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 this._metaService.removeTag('name=\"canonical\"');\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 this._metaService.updateTag({\n name: 'canonical',\n content: canonicalUrl,\n });\n }\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 pages: PaginationItem[] = [];\n const activePage = clamp(value.currentPage, 1, 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 pages.push({\n page: 1,\n current: false,\n ariaLabel: 'First page',\n disabled: activePage === 1,\n type: 'hotLink',\n explicitType: 'first',\n url: createUrl(1),\n });\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 // add 2 pages before and after active page\n for (let i = activePage - 2; i <= activePage + 2; i++) {\n if (i > 0 && 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 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 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 return pages;\n};\n","import { AsyncPipe, NgForOf, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\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';\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: [NgForOf, AsyncPipe, NgIf, 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 | null = null;\n\n protected pages$ = new BehaviorSubject<PaginationItem[] | null>(null);\n\n protected trackByPage: TrackByFunction<PaginationItem> = (_, item) => item.page;\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 this.pageChangeScrollAnchor.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","<nav *ngIf=\"pages$ | async as pages\" [attr.aria-label]=\"ariaLabel\" class=\"et-pagination-nav\">\n <ul class=\"et-pagination-list\">\n <li\n *ngFor=\"let page of pages; trackBy: trackByPage\"\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 <ng-container *ngIf=\"page.type === 'page'\">\n {{ page.page }}\n </ng-container>\n </a>\n </li>\n </ul>\n</nav>\n","import { PaginationComponent } from './components';\n\nexport const PaginationImports = [PaginationComponent] as const;\n","import { Directive, Input, booleanAttribute } from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { PictureSource } from './picture.component.types';\n\n@Directive({\n standalone: true,\n})\nexport class PictureDataDirective {\n @Input({ transform: booleanAttribute })\n hasPriority = false;\n\n @Input()\n imgClass: NgClassType = null;\n\n @Input()\n figureClass: NgClassType = null;\n\n @Input()\n figcaptionClass: NgClassType = null;\n\n @Input()\n pictureClass: NgClassType = null;\n\n @Input()\n defaultSrc: PictureSource | null = null;\n\n @Input()\n alt: string | null = null;\n\n @Input()\n figcaption: string | null = null;\n\n @Input()\n width: number | null = null;\n\n @Input()\n height: number | null = null;\n\n @Input()\n sizes: string | null = null;\n}\n","import { NgClass, NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, TrackByFunction, ViewEncapsulation } from '@angular/core';\nimport { PictureDataDirective } from './picture-data.directive';\nimport { PictureSource } from './picture.component.types';\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: [NgForOf, NgClass, NgIf],\n host: {\n class: 'et-picture',\n },\n hostDirectives: [\n {\n directive: PictureDataDirective,\n inputs: [\n 'imgClass',\n 'hasPriority',\n 'figureClass',\n 'pictureClass',\n 'figcaptionClass',\n 'defaultSrc',\n 'alt',\n 'figcaption',\n 'width',\n 'height',\n 'sizes',\n ],\n },\n ],\n})\nexport class PictureComponent {\n protected readonly pictureData = inject(PictureDataDirective);\n\n @Input()\n sources: PictureSource[] = [];\n\n protected trackBySrc: TrackByFunction<PictureSource> = (_, item) => item.srcset;\n}\n","<figure [ngClass]=\"pictureData.figureClass\" class=\"et-picture-figure\">\n <picture [ngClass]=\"pictureData.pictureClass\" class=\"et-picture-picture\">\n <source\n *ngFor=\"let source of sources; trackBy: trackBySrc\"\n [type]=\"source.type\"\n [attr.srcset]=\"source.srcset\"\n [attr.sizes]=\"pictureData.sizes\"\n />\n\n <img\n *ngIf=\"pictureData.defaultSrc\"\n [attr.loading]=\"pictureData.hasPriority ? 'eager' : 'lazy'\"\n [attr.fetchpriority]=\"pictureData.hasPriority ? 'high' : 'auto'\"\n [ngClass]=\"pictureData.imgClass\"\n [src]=\"pictureData.defaultSrc.srcset\"\n [attr.type]=\"pictureData.defaultSrc.type\"\n [attr.alt]=\"pictureData.alt\"\n [attr.width]=\"pictureData.width\"\n [attr.height]=\"pictureData.height\"\n [attr.sizes]=\"pictureData.sizes\"\n class=\"et-picture-img\"\n />\n </picture>\n\n <figcaption *ngIf=\"pictureData.figcaption\" [ngClass]=\"pictureData.figcaptionClass\" class=\"et-picture-figcaption\">\n {{ pictureData.figcaption }}\n </figcaption>\n</figure>\n","import { NgIf, 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, NgIf],\n hostDirectives: [],\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 { NgClass, NgIf } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n isDevMode,\n numberAttribute,\n} from '@angular/core';\nimport {\n CursorDragScrollDirective,\n IS_ACTIVE_ELEMENT,\n IS_ELEMENT,\n IsActiveElementDirective,\n IsElementDirective,\n LetDirective,\n NgClassType,\n ObserveScrollStateDirective,\n ScrollObserverScrollState,\n ScrollToElementOptions,\n TypedQueryList,\n createDestroy,\n equal,\n getElementVisibleStates,\n scrollToElement,\n} from '@ethlete/core';\nimport { BehaviorSubject, debounceTime, fromEvent, merge, of, startWith, takeUntil, tap } from 'rxjs';\nimport { ChevronIconComponent } from '../../../icons';\nimport { ScrollableIntersectionChange, ScrollableScrollMode } from '../../types';\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: [CursorDragScrollDirective, ObserveScrollStateDirective, NgClass, NgIf, LetDirective, ChevronIconComponent],\n host: {\n class: 'et-scrollable',\n },\n})\nexport class ScrollableComponent implements OnInit, AfterContentInit {\n private readonly _destroy$ = createDestroy();\n private readonly _renderer = inject(Renderer2);\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private readonly _isCursorDragging$ = new BehaviorSubject<boolean>(false);\n private readonly _latestVisibilityStates$ = new BehaviorSubject<ScrollableIntersectionChange[]>([]);\n\n @Input()\n @HostBinding('attr.item-size')\n itemSize: 'auto' | 'same' | 'full' = 'auto';\n\n @Input()\n @HostBinding('attr.direction')\n direction: 'horizontal' | 'vertical' = 'horizontal';\n\n @Input()\n scrollableRole?: string;\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 @HostBinding('attr.render-scrollbars')\n renderScrollbars = false;\n\n @Input({ transform: booleanAttribute })\n @HostBinding('attr.sticky-buttons')\n stickyButtons = false;\n\n @Input({ transform: booleanAttribute })\n cursorDragScroll = true;\n\n @Input({ transform: booleanAttribute })\n disableActiveElementScrolling = false;\n\n @Input()\n scrollMode: ScrollableScrollMode = 'container';\n\n @Input({ transform: booleanAttribute })\n snap = false;\n\n @Input({ transform: numberAttribute })\n scrollMargin = 0;\n\n @Output()\n readonly scrollStateChange = new EventEmitter<ScrollObserverScrollState>();\n\n @Output()\n readonly intersectionChange = new EventEmitter<ScrollableIntersectionChange[]>();\n\n @ViewChild('scrollable', { static: true })\n scrollable!: ElementRef<HTMLElement>;\n\n @ContentChildren(IS_ACTIVE_ELEMENT, { descendants: true })\n activeElements: TypedQueryList<IsActiveElementDirective> | null = null;\n\n @ContentChildren(IS_ELEMENT, { descendants: true })\n elements: TypedQueryList<IsElementDirective> | null = null;\n\n get highestVisibleIntersection() {\n const elements = this._latestVisibilityStates$.value;\n\n if (!elements.length) {\n return null;\n }\n\n return elements.reduce((prev, curr) => {\n if (!prev) {\n return curr;\n }\n\n return curr.intersectionRatio > prev.intersectionRatio ? curr : prev;\n });\n }\n\n get nextPartialIntersection() {\n const elements = this._latestVisibilityStates$.value;\n\n if (!elements.length) {\n return null;\n }\n\n const highestVisibleIntersection = this.highestVisibleIntersection;\n\n if (!highestVisibleIntersection) {\n return null;\n }\n\n const nextIndex = elements.slice(highestVisibleIntersection.index).findIndex((e) => !e.isIntersecting);\n\n if (nextIndex === -1) {\n return null;\n }\n\n const nextElement = elements[highestVisibleIntersection.index + nextIndex];\n\n return nextElement || null;\n }\n\n get previousPartialIntersection() {\n const elements = this._latestVisibilityStates$.value;\n\n if (!elements.length) {\n return null;\n }\n\n const highestVisibleIntersection = this.highestVisibleIntersection;\n\n if (!highestVisibleIntersection) {\n return null;\n }\n\n const previousIndex = elements\n .slice(0, highestVisibleIntersection.index)\n .reverse()\n .findIndex((e) => !e.isIntersecting);\n\n if (previousIndex === -1) {\n return null;\n }\n\n const previousElement = elements[highestVisibleIntersection.index - previousIndex - 1];\n\n return previousElement || null;\n }\n\n protected readonly scrollState$ = new BehaviorSubject<ScrollObserverScrollState | null>(null);\n\n ngOnInit(): void {\n this.scrollState$\n .pipe(\n tap((state) => {\n if (!state) {\n return;\n }\n\n const element = this._elementRef.nativeElement;\n\n this._renderer.setAttribute(element, 'at-start', state.isAtStart.toString());\n this._renderer.setAttribute(element, 'at-end', state.isAtEnd.toString());\n this._renderer.setAttribute(element, 'can-scroll', state.canScroll.toString());\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n ngAfterContentInit(): void {\n if (!this.activeElements || !this.elements) {\n return;\n }\n\n this.activeElements.changes\n .pipe(\n startWith(this.activeElements),\n tap((activeElements) => {\n if (this.disableActiveElementScrolling) {\n return;\n }\n\n const firstActive = activeElements\n .filter((a): a is IsActiveElementDirective => !!a)\n .find((a) => a.isActiveElement);\n\n if (!firstActive) {\n return;\n }\n\n scrollToElement({\n behavior: 'auto',\n container: this.scrollable.nativeElement,\n element: firstActive.elementRef.nativeElement,\n scrollInlineMargin: this.direction === 'horizontal' ? this.scrollMargin : 0,\n scrollBlockMargin: this.direction === 'horizontal' ? 0 : this.scrollMargin,\n });\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n this._setupScrollListening();\n }\n\n scrollOneContainerSize(direction: 'start' | 'end') {\n const scrollElement = this.scrollable.nativeElement;\n const parent = this._elementRef.nativeElement;\n\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 scrollOneItemSize(direction: 'start' | 'end') {\n const elements = this._latestVisibilityStates$.value;\n\n if (!elements.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 el = direction === 'start' ? this.previousPartialIntersection : this.nextPartialIntersection;\n\n if (!el) {\n return;\n }\n\n this.scrollToElement({\n element: el?.element,\n direction: this.direction === 'horizontal' ? 'inline' : 'block',\n origin: direction,\n ...(this.direction === 'horizontal'\n ? { scrollInlineMargin: this.scrollMargin }\n : { scrollBlockMargin: this.scrollMargin }),\n });\n }\n\n scrollToElement(options: Omit<ScrollToElementOptions, 'container'>) {\n const scrollElement = this.scrollable.nativeElement;\n\n scrollToElement({\n container: scrollElement,\n ...(this.direction === 'horizontal'\n ? { scrollInlineMargin: this.scrollMargin }\n : { scrollBlockMargin: this.scrollMargin }),\n ...options,\n });\n }\n\n scrollToElementByIndex(options: Omit<ScrollToElementOptions, 'container'> & { index: number }) {\n const elements = this.elements?.toArray() ?? [];\n\n if (!elements.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 scrollElement = this.scrollable.nativeElement;\n const element = elements[options.index]?.elementRef.nativeElement;\n\n scrollToElement({\n container: scrollElement,\n element,\n ...(this.direction === 'horizontal'\n ? { scrollInlineMargin: this.scrollMargin }\n : { scrollBlockMargin: this.scrollMargin }),\n ...options,\n });\n }\n\n protected setIsCursorDragging(isDragging: boolean) {\n this._isCursorDragging$.next(isDragging);\n }\n\n protected _scrollStateChanged(scrollState: ScrollObserverScrollState) {\n if (equal(this.scrollState$.value, scrollState)) {\n return;\n }\n\n this.scrollState$.next(scrollState);\n this.scrollStateChange.emit(scrollState);\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 scrollToStartEnd() {\n if (this.scrollMode === 'container') {\n this.scrollOneContainerSize('end');\n } else {\n this.scrollOneItemSize('end');\n }\n }\n\n private _setupScrollListening() {\n const scrollElement = this.scrollable.nativeElement;\n let isSnapping = false;\n let snapTimeout = 0;\n\n merge(fromEvent<WheelEvent>(scrollElement, 'wheel'), fromEvent<TouchEvent>(scrollElement, 'touchstart'))\n .pipe(\n takeUntil(this._destroy$),\n tap(() => {\n isSnapping = false;\n }),\n )\n .subscribe();\n\n merge(\n fromEvent(scrollElement, 'scroll'),\n this._isCursorDragging$,\n this.elements?.changes.pipe(startWith(this.elements)) ?? of(null),\n )\n .pipe(\n debounceTime(300),\n takeUntil(this._destroy$),\n tap(() => {\n const elements =\n this.elements\n ?.toArray()\n .map((e) => e?.elementRef.nativeElement)\n .filter((e): e is HTMLElement => !!e) ?? [];\n\n if (!elements.length) {\n this._latestVisibilityStates$.next([]);\n\n return;\n }\n\n const states = getElementVisibleStates({\n elements,\n container: scrollElement,\n });\n\n const prop = this.direction === 'horizontal' ? 'inlineIntersection' : 'blockIntersection';\n const stateClass = `et-element--is-intersecting`;\n\n for (const state of states) {\n if (state[prop] === 100) {\n state.element.classList.add(stateClass);\n } else {\n state.element.classList.remove(stateClass);\n }\n }\n\n const intersectionChanges = states.map((s, i) => {\n const state: ScrollableIntersectionChange = {\n element: s.element,\n intersectionRatio: s[prop] / 100,\n isIntersecting: s[prop] === 100,\n index: i,\n };\n\n return state;\n });\n\n this.intersectionChange.emit(intersectionChanges);\n\n this._latestVisibilityStates$.next(intersectionChanges);\n\n if (isSnapping || this._isCursorDragging$.value || !this.snap) return;\n\n const prev = this.previousPartialIntersection;\n const next = this.nextPartialIntersection;\n const skipSnap =\n !prev ||\n !next ||\n prev.intersectionRatio === 0 ||\n next.intersectionRatio === 0 ||\n prev.intersectionRatio === next.intersectionRatio;\n\n if (skipSnap) return;\n\n const highestIntersecting = prev.intersectionRatio > next.intersectionRatio ? prev : next;\n const fullIntersectionIndex = this.highestVisibleIntersection?.index;\n\n if (fullIntersectionIndex === undefined) return;\n\n const highestIntersectingIndex = highestIntersecting.index;\n const origin = highestIntersectingIndex > fullIntersectionIndex ? 'end' : 'start';\n\n scrollToElement({\n container: scrollElement,\n element: highestIntersecting.element,\n direction: this.direction === 'horizontal' ? 'inline' : 'block',\n origin,\n scrollBlockMargin: this.direction === 'horizontal' ? 0 : this.scrollMargin,\n scrollInlineMargin: this.direction === 'horizontal' ? this.scrollMargin : 0,\n });\n\n isSnapping = true;\n\n window.clearTimeout(snapTimeout);\n\n snapTimeout = window.setTimeout(() => {\n isSnapping = false;\n }, 1000);\n }),\n )\n .subscribe();\n }\n}\n","<div\n #scrollable\n [attr.role]=\"scrollableRole ?? undefined\"\n [etCursorDragScroll]=\"cursorDragScroll\"\n [allowedDirection]=\"direction\"\n (etObserveScrollState)=\"_scrollStateChanged($event)\"\n (cursorDragStart)=\"setIsCursorDragging(true)\"\n (cursorDragEnd)=\"setIsCursorDragging(false)\"\n class=\"et-scrollable-container-outer\"\n>\n <div class=\"et-scroll-observer-first-element\"></div>\n <div [ngClass]=\"scrollableClass\" class=\"et-scrollable-container\">\n <ng-content />\n </div>\n <div class=\"et-scroll-observer-last-element\"></div>\n</div>\n\n<div *ngIf=\"renderMasks\" 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<div *ngIf=\"renderButtons\" class=\"et-scrollable-buttons\">\n <button\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 <button\n (click)=\"scrollToStartEnd()\"\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</div>\n","import {\n IsActiveElementDirective,\n IsElementDirective,\n ScrollObserverFirstElementDirective,\n ScrollObserverIgnoreTargetDirective,\n ScrollObserverLastElementDirective,\n} from '@ethlete/core';\nimport { ScrollableComponent } from './components';\n\nexport const ScrollableImports = [\n ScrollableComponent,\n IsElementDirective,\n IsActiveElementDirective,\n ScrollObserverFirstElementDirective,\n ScrollObserverLastElementDirective,\n ScrollObserverIgnoreTargetDirective,\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';\nimport { SkeletonItemComponent } from './partials';\n\nexport const SkeletonImports = [SkeletonComponent, SkeletonItemComponent] as const;\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 { 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 { 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 { 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 { Directionality } from '@angular/cdk/bidi';\nimport { _DisposeViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY, _ViewRepeater } from '@angular/cdk/collections';\nimport { Platform } from '@angular/cdk/platform';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n CDK_TABLE,\n CdkTable,\n CdkTableModule,\n RenderRow,\n RowContext,\n STICKY_POSITIONING_LISTENER,\n StickyPositioningListener,\n _COALESCED_STYLE_SCHEDULER,\n _CoalescedStyleScheduler,\n} from '@angular/cdk/table';\nimport { DOCUMENT } from '@angular/common';\nimport {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n IterableDiffers,\n NgZone,\n OnInit,\n Optional,\n SkipSelf,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { TableBusyDirective, TableBusyOutletDirective } from '../../partials';\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 <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 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: [CdkTableModule, TableBusyOutletDirective],\n})\nexport class TableComponent<T> extends CdkTable<T> implements OnInit {\n private _cdr = inject(ChangeDetectorRef);\n\n protected override stickyCssClass = 'et-table-sticky';\n protected override needsPositionStickyOnElement = false;\n\n @ViewChild(TableBusyOutletDirective, { static: true })\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 constructor(\n _differs: IterableDiffers,\n _changeDetectorRef: ChangeDetectorRef,\n _elementRef: ElementRef,\n @Attribute('role') role: string,\n @Optional() _dir: Directionality,\n @Inject(DOCUMENT) _document: Document,\n _platform: Platform,\n @Inject(_VIEW_REPEATER_STRATEGY)\n _viewRepeater: _ViewRepeater<T, RenderRow<T>, RowContext<T>>,\n @Inject(_COALESCED_STYLE_SCHEDULER)\n _coalescedStyleScheduler: _CoalescedStyleScheduler,\n _viewportRuler: ViewportRuler,\n @Optional()\n @SkipSelf()\n @Inject(STICKY_POSITIONING_LISTENER)\n _stickyPositioningListener: StickyPositioningListener,\n _ngZone: NgZone,\n ) {\n super(\n _differs,\n _changeDetectorRef,\n _elementRef,\n role,\n _dir,\n _document,\n _platform,\n _viewRepeater,\n _coalescedStyleScheduler,\n _viewportRuler,\n _stickyPositioningListener,\n _ngZone,\n );\n }\n\n override ngOnInit() {\n super.ngOnInit();\n\n if (this._isNativeHtmlTable) {\n const tbody = this._elementRef.nativeElement.querySelector('tbody');\n tbody.classList.add('et-data-table__content');\n }\n }\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 { TableComponent } from './components';\nimport {\n CellDefDirective,\n CellDirective,\n ColumnDefDirective,\n FooterCellDefDirective,\n FooterCellDirective,\n FooterRowComponent,\n FooterRowDefDirective,\n HeaderCellDefDirective,\n HeaderCellDirective,\n HeaderRowComponent,\n HeaderRowDefDirective,\n NoDataRowDirective,\n RecycleRowsDirective,\n RowComponent,\n RowDefDirective,\n TableBusyDirective,\n TextColumnComponent,\n} from './partials';\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 { BehaviorSubject, combineLatest, merge, Observable, of, Subject, Subscription, map } from 'rxjs';\nimport { DataSource } from '@angular/cdk/collections';\nimport { SortDirective, Sort } from '../../sort';\nimport { _isNumberValue } from '@angular/cdk/coercion';\nimport { TableDataSourcePageEvent, TableDataSourcePaginator } from '../types';\nimport { MAX_SAFE_INTEGER } from '../constants';\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 {\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];\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 { NgIf } from '@angular/common';\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';\nimport { SORT_HEADER_COLUMN_DEF } from '../../../table';\nimport { SORT_DEFAULT_OPTIONS, SortDirective, SortHeaderArrowPosition, Sortable } from '../../partials';\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: [NgIf, 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 <div *ngIf=\"_renderArrow\" class=\"et-sort-header-arrow {{ _getArrowDirectionState }} {{ _getArrowViewState }}\">\n <et-chevron-icon />\n </div>\n</div>\n","import { SortHeaderComponent } from './components';\nimport { SortDirective } from './partials';\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 { 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 { 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 { 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 {\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';\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 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\n if (!selectedLabel) {\n return;\n }\n\n const viewLength = this._scrollable.scrollable.nativeElement.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 = this._scrollable.scrollable.nativeElement.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 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 { maxScrollDistance, distance } = this._scrollHeader(direction);\n\n if (distance === 0 || distance >= 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';\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 { 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 { 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';\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 { 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 { A11yModule, FocusOrigin } from '@angular/cdk/a11y';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgClass, NgForOf, NgIf } 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 {\n InlineTabBodyComponent,\n InlineTabComponent,\n InlineTabHeaderComponent,\n InlineTabLabelWrapperDirective,\n TAB_GROUP,\n} from '../../partials';\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 NgForOf,\n NgIf,\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 });\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) {\n this.selectedIndex = tabHeader.focusIndex = index;\n }\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)=\"selectedIndex = $event\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events -->\n <div\n *ngFor=\"let tab of _tabs; let i = index; trackBy: trackByTabFn\"\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 <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\" />\n </ng-template>\n\n <ng-template #tabTextLabel>{{ tab.textLabel }}</ng-template>\n </span>\n </div>\n</et-inline-tab-header>\n\n<div #tabBodyWrapper>\n <et-inline-tab-body\n *ngFor=\"let tab of _tabs; let i = index; trackBy: trackByTabFn\"\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</div>\n","import { InlineTabsComponent, NavTabsComponent } from './components';\nimport {\n InlineTabBodyComponent,\n InlineTabBodyHostDirective,\n InlineTabComponent,\n InlineTabContentDirective,\n InlineTabHeaderComponent,\n InlineTabLabelDirective,\n InlineTabLabelWrapperDirective,\n NavTabLinkComponent,\n NavTabsOutletComponent,\n} from './partials';\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BracketMatchDirective","i1.BracketRoundDirective","i1.QueryButtonDirective","i2.ButtonDirective","nextUniqueId","i1.StaticFormFieldDirective","i2.WriteableInputDirective","i3.DynamicFormFieldDirective","i4.CheckboxFieldDirective","i1.EmailInputDirective","i2.InputDirective","i1.NumberInputDirective","i1.PasswordInputDirective","i1.SearchInputDirective","i1.TextInputDirective","i2.RadioFieldDirective","i1.StaticFormGroupDirective","i3.DynamicFormGroupDirective","i4.RadioGroupDirective","i1.SegmentedButtonDirective","i2.SegmentedButtonFieldDirective","i4.SegmentedButtonGroupDirective","i1.SelectFieldDirective","i2.StaticFormFieldDirective","i3.WriteableInputDirective","i4.DynamicFormFieldDirective","i1","TAB","i1.InputDirective","i2","i1.NativeSelectInputDirective","uniqueId","i1.SelectBodyDirective","i2.SelectDirective","i1.SlideToggleDirective","CdkDialog","CdkDialogConfig","i3","i4","DIALOG_SCROLL_STRATEGY_PROVIDER","CDK_DIALOG_SCROLL_STRATEGY_PROVIDER","nextId","startWith","debounceTime","distinctUntilChanged","takeUntil","skip","filter","switchMap","ViewportRuler","observableOf","take","i1.ActiveTabUnderlineDirective"],"mappings":"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"}
|
|
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/icons/icon.imports.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/partials/accordion-hint/accordion-hint.directive.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/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/accordion.imports.ts","../../../../libs/cdk/src/lib/components/bracket/directives/bracket-match/bracket-match.directive.ts","../../../../libs/cdk/src/lib/components/bracket/directives/bracket-round/bracket-round.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/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/directives/query-button/query-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/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/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/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/directives/dynamic-form-field/dynamic-form-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/input/input.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/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/directives/native-input-ref/native-input-ref.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/static-form-field/static-form-field.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/static-form-group/static-form-group.directive.ts","../../../../libs/cdk/src/lib/components/forms/directives/writeable-input/writeable-input.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/directives/checkbox/checkbox.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/directives/checkbox-group-control/checkbox-group-control.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.ts","../../../../libs/cdk/src/lib/components/forms/utils/decorated-form-field.base.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/components/checkbox/checkbox.component.ts","../../../../libs/cdk/src/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.html","../../../../libs/cdk/src/lib/components/forms/components/checkbox/checkbox.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/email-input/email-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/number-input/number-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/password-input/password-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/search-input/search-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/text-input/text-input.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/input/directives/textarea-input/textarea-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/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/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/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/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/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/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/radio/directives/radio/radio.directive.ts","../../../../libs/cdk/src/lib/components/forms/components/radio/directives/radio-field/radio-field.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-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/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/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-field/segmented-button-field.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/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/forms/components/select/components/combobox/utils/option.utils.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/directives/combobox/combobox.directive.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/partials/select-option/select-option.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/select.imports.ts","../../../../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/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/slide-toggle.imports.ts","../../../../libs/cdk/src/lib/components/forms/components/slider/components/slider-field/slider-field.component.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/slider.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/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/components/bottom-sheet-container/bottom-sheet-container.component.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/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-container-base/dialog-container-base.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.ts","../../../../libs/cdk/src/lib/components/overlay/components/dialog/dialog.imports.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-stack.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-trigger-base.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/context-menu-trigger.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-errors.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-aim.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-group.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-interface.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-trigger.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-item.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/pointer-focus-tracker.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-base.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-bar.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-item-selectable.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-item-checkbox.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-item-radio.ts","../../../../libs/cdk/src/lib/components/overlay/components/menu/menu-module.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/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/services/dynamic-overlay.service.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/picture-data.directive.ts","../../../../libs/cdk/src/lib/components/picture/picture.component.ts","../../../../libs/cdk/src/lib/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/scrollable/components/scrollable/scrollable.component.ts","../../../../libs/cdk/src/lib/components/scrollable/components/scrollable/scrollable.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/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/column-def/column-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/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/table.imports.ts","../../../../libs/cdk/src/lib/components/table/utils/table-data-source.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/tabs/animations/tabs.animations.ts","../../../../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/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.ts","../../../../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/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/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/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.ts","../../../../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/tab.imports.ts","../../../../libs/cdk/src/lib/components/tabs/types/tab-config.types.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 },\n})\nexport class ChevronIconComponent {}\n","import { ChevronIconComponent } from './chevron-icon';\n\nexport const IconImports = [ChevronIconComponent] as const;\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 { 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 { 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 { 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, NgIf, 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';\nimport {\n ACCORDION_HINT_WRAPPER_DIRECTIVE,\n ACCORDION_LABEL_WRAPPER_DIRECTIVE,\n AccordionHintWrapperDirective,\n AccordionLabelDirective,\n AccordionLabelWrapperDirective,\n} from '../../partials';\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 NgIf,\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 <ng-template [ngIf]=\"templateLabel\" [ngIfElse]=\"textLabelTpl\">\n <ng-template [cdkPortalOutlet]=\"templateLabel\" />\n </ng-template>\n\n <ng-template #textLabelTpl\n ><span et-accordion-label>{{ label }} </span>\n </ng-template>\n </div>\n\n <ng-container *ngIf=\"templateHint\">\n <ng-template [cdkPortalOutlet]=\"templateHint\" />\n </ng-container>\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 { AccordionComponent, AccordionGroupComponent } from './components';\nimport {\n AccordionHintDirective,\n AccordionHintWrapperDirective,\n AccordionLabelDirective,\n AccordionLabelWrapperDirective,\n} from './partials';\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 { 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, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BracketMatchDirective } from '../../directives';\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, NgIf],\n hostDirectives: [BracketMatchDirective],\n})\nexport class BracketMatchComponent {\n matchData = inject(BracketMatchDirective);\n}\n","<ng-container *ngIf=\"matchData.match$ | async as match\">\n {{ match.data.id }}\n</ng-container>\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BracketRoundDirective } from '../../directives';\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, NgIf],\n hostDirectives: [BracketRoundDirective],\n})\nexport class BracketRoundHeaderComponent {\n roundData = inject(BracketRoundDirective);\n}\n","<ng-container *ngIf=\"roundData.round$ | async as round\">\n {{ round.name }}\n</ng-container>\n","import { InjectionToken } from '@angular/core';\nimport { BracketComponent } from '../components';\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];\n }\n\n get firstLoserRound() {\n return (this.loserRounds[0] ?? null) as RoundStageStructureWithMatchesView | 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.matches.length * 2;\n }\n\n get bracketType() {\n return !this.loserRoundCount ? 'single' : 'double';\n }\n\n get winnerBracketRowCount() {\n return this.firstWinnerRound.matches.length;\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 // Transition from last round of looser bracket to semi final round of winner bracket\n logicalNextRound = this._roundsWithMatches[currentRoundIndex - this.looserRowAdditionalRoundCount + 1];\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 if (this.loserRounds.length === currentRoundIndex + this.looserRowAdditionalRoundCount) {\n previousMatchB = this.loserRounds[currentRoundIndex + this.looserRowAdditionalRoundCount - 1].matches[0].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, NgForOf, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n inject,\n Injector,\n Input,\n TrackByFunction,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n LetDirective,\n Memo,\n ScrollObserverFirstElementDirective,\n ScrollObserverLastElementDirective,\n} 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: [\n NgClass,\n NgForOf,\n LetDirective,\n NgIf,\n PortalModule,\n AsyncPipe,\n ScrollObserverFirstElementDirective,\n ScrollObserverLastElementDirective,\n ],\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 ?? false;\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","<ng-container *ngIf=\"_bracket$ | async as bracket\">\n <ng-container *ngFor=\"let round of bracket.bracketRounds; trackBy: trackByRound; let roundIndex = index\">\n <div\n *ngIf=\"_config.roundHeaderComponent\"\n [etScrollObserverFirstElement]=\"roundIndex === 0\"\n [etScrollObserverLastElement]=\"roundIndex === bracket.winnerRoundCount - 1\"\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' ? round.row.start + 1 : round.row.start\n \"\n [attr.special-align-end]=\"\n round.data.type === 'third_place' &&\n bracket.bracketType === 'single' &&\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 <ng-container *etLet=\"bracket.bracketRounds[roundIndex - 1] as lastRound\">\n <ng-container *etLet=\"bracket.bracketRounds[roundIndex + 1] as nextRound\">\n <ng-container *ngFor=\"let match of round.matches; trackBy: trackByMatch; let matchIndex = index\">\n <div\n *ngIf=\"getConnectedMatches(match, bracket) as connectedMatches\"\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 </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n","import { BracketComponent } from './components';\nimport { BracketMatchComponent, BracketRoundHeaderComponent } from './partials';\n\nexport const BracketImports = [BracketComponent, BracketMatchComponent, BracketRoundHeaderComponent] as const;\n","import { Directive, ElementRef, Input, booleanAttribute, inject } from '@angular/core';\nimport { createReactiveBindings } 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 _bindings = createReactiveBindings(\n {\n attribute: ['disabled', 'aria-disabled'],\n observable: this.disabled$.pipe(\n map((disabled) => ({\n render: disabled,\n value: true,\n })),\n ),\n },\n {\n attribute: ['tabindex'],\n observable: this.disabled$.pipe(\n map((disabled) => ({\n render: disabled && this.isAnchor,\n value: -1,\n })),\n ),\n },\n {\n attribute: ['type'],\n observable: this.type$.pipe(\n map((type) => ({\n render: this.isButton,\n value: type,\n })),\n ),\n },\n {\n attribute: ['aria-pressed'],\n observable: this._pressed$,\n },\n );\n\n _removeDisabledBindings() {\n this._bindings.remove('disabled', 'aria-disabled');\n }\n\n _removeTabIndexBindings() {\n this._bindings.remove('tabindex');\n }\n}\n","import { Directive, ElementRef, inject, Input } from '@angular/core';\nimport { createDestroy, createReactiveBindings } 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()\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 this._bindings.reset();\n\n const query = extractQuery(this._query$.value);\n\n if (!query) {\n return;\n }\n\n query.state$.pipe(takeUntil(this._destroy$), takeUntil(this._query$.pipe(skip(1)))).subscribe((state) => {\n if (isQueryStateLoading(state)) {\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)) {\n this.showSuccess$.next(true);\n classList.add(CLASSES.success);\n } else if (isQueryStateFailure(state)) {\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 }, 3000);\n }\n });\n }\n get query$() {\n return this._query$.asObservable();\n }\n private readonly _query$ = new BehaviorSubject<AnyQuery | AnyQueryCollection | null>(null);\n\n private readonly _bindings = createReactiveBindings(\n {\n attribute: ['disabled', 'aria-disabled'],\n observable: combineLatest([this._button.disabled$, this.showFailure$, this.showSuccess$, this.isLoading$]).pipe(\n map(([disabled, showFailure, showSuccess, isLoading]) => ({\n render: disabled || showFailure || showSuccess || isLoading,\n value: true,\n })),\n ),\n },\n {\n attribute: ['aria-live'],\n observable: 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 {\n render: true,\n value,\n };\n }),\n ),\n },\n );\n\n constructor() {\n this._button._removeDisabledBindings();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { ButtonDirective } from '../../directives';\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></ng-content>\n </span>\n</span>\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { LetDirective } from '@ethlete/core';\nimport { QueryDirective } from '@ethlete/query';\nimport { ButtonDirective, QueryButtonDirective } from '../../directives';\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'] },\n { directive: ButtonDirective, inputs: ['disabled', 'type', 'pressed'] },\n ],\n imports: [QueryDirective, AsyncPipe, NgIf, 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 || showSuccess || showFailure ? 'true' : undefined\"\n class=\"et-button-text et-query-button-text et-query-button-text--default\"\n >\n <ng-content></ng-content>\n </span>\n\n <span *ngIf=\"loading\" class=\"et-query-button-loading\"> </span>\n <span *ngIf=\"loading\" class=\"et-button-text et-query-button-text et-query-button-text--loading\">Loading</span>\n\n <span *ngIf=\"showSuccess\" class=\"et-button-text et-query-button-text et-query-button-text--success\">Success</span>\n <span *ngIf=\"showFailure\" class=\"et-button-text et-query-button-text et-query-button-text--failure\">Failure</span>\n </span>\n </ng-container>\n</ng-container>\n","import { ButtonComponent, QueryButtonComponent } from './components';\n\nexport const ButtonImports = [ButtonComponent, QueryButtonComponent] as const;\n","import { Injectable, InjectionToken, isDevMode } from '@angular/core';\nimport { 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 {\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 { BehaviorSubject, combineLatest, map } from 'rxjs';\n\n@Injectable()\nexport class FormFieldStateService {\n readonly labelId$ = new BehaviorSubject<string | null>(null);\n readonly inputId$ = new BehaviorSubject<string | null>(null);\n readonly isFocusedVia$ = new BehaviorSubject<FocusOrigin | null>(null);\n readonly errorId$ = new BehaviorSubject<string | null>(null);\n\n readonly hasPrefix$ = new BehaviorSubject(false);\n readonly hasSuffix$ = new BehaviorSubject(false);\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 { 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 { BehaviorSubject, combineLatest, map, Subject } from 'rxjs';\nimport { NativeInputRefDirective } from '../directives';\nimport { ValidatorErrors } from '../types';\n\nexport type InputValueChangeFn<T = unknown> = (value: T) => void;\nexport type InputTouchedFn = () => void;\n\n@Injectable()\nexport class InputStateService<\n T = unknown,\n J extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement = HTMLInputElement,\n> {\n readonly value$ = new BehaviorSubject<T | null>(null);\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n readonly required$ = new BehaviorSubject<boolean>(false);\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 nativeInputRef$ = new BehaviorSubject<NativeInputRefDirective<J> | null>(null);\n\n readonly autofilled$ = new BehaviorSubject<boolean>(false);\n\n readonly valueIsTruthy$ = this.value$.pipe(map((value) => !!value));\n readonly valueIsFalsy$ = this.value$.pipe(map((value) => !value));\n\n readonly valueIsEmpty$ = combineLatest([this.value$, this.autofilled$]).pipe(\n map(\n ([value, autofilled]) =>\n (value === null || value === undefined || value === '' || (Array.isArray(value) && !value.length)) &&\n !autofilled,\n ),\n );\n\n readonly errors$ = new BehaviorSubject<ValidatorErrors | null>(null);\n readonly shouldDisplayError$ = new BehaviorSubject<boolean>(false);\n\n readonly isFocusedVia$ = new BehaviorSubject<FocusOrigin | null>(null);\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 { 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';\nimport { LabelSuffixDirective } from './directives';\n\nexport const LabelImports = [LabelComponent, LabelSuffixDirective] as const;\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 { 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 { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\nimport { Directive, ElementRef, InjectionToken, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { FormControl, NgControl, Validators } from '@angular/forms';\nimport { createDestroy, equal } from '@ethlete/core';\nimport { combineLatest, debounceTime, filter, map, pairwise, startWith, takeUntil, tap } from 'rxjs';\nimport { FormFieldStateService, InputStateService } from '../../services';\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<\n T = unknown,\n J extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement = HTMLInputElement,\n> implements OnInit, OnDestroy\n{\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 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$.getValue();\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$.getValue();\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$.getValue();\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$.getValue();\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$.getValue();\n }\n\n get nativeInputRef$() {\n return this._inputStateService.nativeInputRef$.asObservable();\n }\n\n get nativeInputRef() {\n return this._inputStateService.nativeInputRef$.getValue();\n }\n\n get autofilled$() {\n return this._inputStateService.autofilled$.asObservable();\n }\n\n get autofilled() {\n return this._inputStateService.autofilled$.getValue();\n }\n\n get errors$() {\n return this._inputStateService.errors$.asObservable();\n }\n\n get errors() {\n return this._inputStateService.errors$.getValue();\n }\n\n get shouldDisplayError$() {\n return this._inputStateService.shouldDisplayError$.asObservable();\n }\n\n get shouldDisplayError() {\n return this._inputStateService.shouldDisplayError$.getValue();\n }\n\n get isFocusedVia$() {\n return this._inputStateService.isFocusedVia$.asObservable();\n }\n\n get isFocusedVia() {\n return this._inputStateService.isFocusedVia$.getValue();\n }\n\n get errorId$() {\n return this._formFieldStateService.errorId$.asObservable();\n }\n\n get errorId() {\n return this._formFieldStateService.errorId$.getValue();\n }\n\n readonly describedBy$ = this._formFieldStateService.describedBy$;\n\n constructor() {\n this._inputStateService.usesImplicitControl$.next(!this._ngControl);\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?.pipe(takeUntil(this._destroy$)).subscribe((value) => this._updateValue(value));\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\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\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 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, 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 { 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, 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<\n T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement = HTMLInputElement,\n> {\n readonly element = inject<ElementRef<T>>(ElementRef);\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';\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, 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, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { InputStateService, InputTouchedFn, InputValueChangeFn } from '../../services';\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\n InputStateService,\n { provide: WRITEABLE_INPUT_TOKEN, useExisting: WriteableInputDirective },\n ],\n})\nexport class WriteableInputDirective implements ControlValueAccessor {\n readonly _inputStateService = inject(InputStateService);\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'class.et-required',\n observable: this._inputStateService.required$,\n },\n {\n attribute: 'class.et-disabled',\n observable: this._inputStateService.disabled$,\n },\n {\n attribute: 'class.et-value-is-truthy',\n observable: this._inputStateService.valueIsTruthy$,\n },\n {\n attribute: 'class.et-value-is-falsy',\n observable: this._inputStateService.valueIsFalsy$,\n },\n {\n attribute: 'class.et-empty',\n observable: this._inputStateService.valueIsEmpty$,\n },\n {\n attribute: 'class.et-should-display-error',\n observable: this._inputStateService.shouldDisplayError$,\n },\n {\n attribute: 'class.et-autofilled',\n observable: this._inputStateService.autofilled$,\n },\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 { AsyncPipe, JsonPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, Observable, map, of } from 'rxjs';\nimport { DYNAMIC_FORM_FIELD_TOKEN, DYNAMIC_FORM_GROUP_TOKEN } from '../../../../directives';\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, NgIf, AsyncPipe],\n hostDirectives: [],\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 _bindings = createReactiveBindings(\n {\n attribute: 'class.et-error--has-errors',\n observable: this.errorText$.pipe(map((v) => !!v)),\n },\n {\n attribute: 'class.cdk-visually-hidden',\n observable: this._dynamicFormGroupOrField.hideErrorMessage$,\n },\n );\n}\n","<ng-container *ngIf=\"errorText$ | async | async as text\">\n <span [id]=\"id\" aria-atomic=\"true\" aria-live=\"polite\"> {{ text }} </span>\n</ng-container>\n","import { AfterContentInit, ContentChildren, Directive, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { createReactiveBindings, TypedQueryList } from '@ethlete/core';\nimport { combineLatest, map, startWith, switchMap } from 'rxjs';\nimport { InputStateService } from '../../../../services';\nimport { CHECKBOX_TOKEN, CheckboxDirective } from '../public-api';\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: 'etCheckboxGroup',\n})\nexport class CheckboxFieldDirective implements AfterContentInit {\n readonly inputState = inject<InputStateService<boolean>>(InputStateService);\n\n readonly _bindings = createReactiveBindings();\n\n @ContentChildren(forwardRef(() => CHECKBOX_TOKEN), { descendants: true })\n private _checkbox?: TypedQueryList<CheckboxDirective>;\n\n ngAfterContentInit(): void {\n if (!this._checkbox) {\n return;\n }\n\n this._bindings.push({\n attribute: 'class.et-checkbox-field--indeterminate',\n observable: this._checkbox.changes.pipe(startWith(this._checkbox)).pipe(\n switchMap((checkboxes) =>\n combineLatest(\n checkboxes.filter((cb): cb is CheckboxDirective => !!cb).map((checkbox) => checkbox.indeterminate$),\n ),\n ),\n map((checked) => checked.some((value) => value)),\n ),\n });\n }\n}\n","import { Directive, inject, InjectionToken } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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 _bindings = createReactiveBindings(\n {\n attribute: ['class.et-checkbox--checked'],\n observable: this.checked$,\n },\n {\n attribute: ['class.et-checkbox--disabled'],\n observable: this.input.disabled$,\n },\n {\n attribute: ['class.et-checkbox--indeterminate'],\n observable: 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 { 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 { AfterContentInit, Directive, inject, InjectionToken } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { map, of } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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 implements AfterContentInit {\n readonly checkbox = inject(CHECKBOX_TOKEN);\n readonly input = inject<InputDirective<boolean>>(INPUT_TOKEN);\n readonly group = inject(CHECKBOX_GROUP_TOKEN);\n\n readonly _bindings = createReactiveBindings();\n\n ngAfterContentInit(): void {\n this._bindings.push({\n attribute: ['aria-controls'],\n elementRef: this.input.nativeInputRef?.element,\n observable:\n this.group.checkboxesWithoutGroupCtrl$.pipe(\n map((checkboxes) => ({\n render: true,\n value: checkboxes.map((checkbox) => checkbox.input.id).join(' '),\n })),\n ) ?? of(false),\n });\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error';\nimport { CheckboxFieldDirective } from '../../directives';\n\n@Component({\n selector: 'et-checkbox-field',\n template: `\n <div class=\"et-checkbox-field-container\">\n <ng-content select=\"et-checkbox\" />\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-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 { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { StaticFormGroupDirective } from '../../../../directives';\nimport { CheckboxGroupDirective } from '../../directives';\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 { Directive, inject } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { FormFieldStateService } from '../services';\n\n@Directive()\nexport class DecoratedFormFieldBase {\n private readonly _formFieldStateService = inject(FormFieldStateService);\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'class.et-form-field--has-prefix',\n observable: this._formFieldStateService.hasPrefix$,\n },\n {\n attribute: 'class.et-form-field--has-suffix',\n observable: this._formFieldStateService.hasSuffix$,\n },\n );\n}\n","import { Directive, inject, ViewChild } from '@angular/core';\nimport { INPUT_TOKEN, NATIVE_INPUT_REF_TOKEN, NativeInputRefDirective } from '../directives';\n\n@Directive()\nexport class InputBase {\n protected readonly input = inject(INPUT_TOKEN);\n\n @ViewChild(NATIVE_INPUT_REF_TOKEN)\n set nativeInputRef(value: NativeInputRefDirective) {\n this.input._setNativeInputRef(value);\n }\n}\n","import { AfterContentInit, ContentChildren, Directive, inject } from '@angular/core';\nimport { TypedQueryList, createDestroy, createReactiveBindings } from '@ethlete/core';\nimport { map, startWith, takeUntil } from 'rxjs';\nimport { INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN, InputPrefixDirective, InputSuffixDirective } from '../directives';\nimport { FormFieldStateService } from '../services';\nimport { InputBase } from './input.base';\n\n@Directive()\nexport class DecoratedInputBase extends InputBase implements AfterContentInit {\n private readonly _formFieldStateService = inject(FormFieldStateService);\n readonly _destroy$ = createDestroy();\n\n @ContentChildren(INPUT_PREFIX_TOKEN)\n protected readonly inputPrefix?: TypedQueryList<InputPrefixDirective>;\n\n @ContentChildren(INPUT_SUFFIX_TOKEN)\n protected readonly inputSuffix?: TypedQueryList<InputSuffixDirective>;\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'class.et-input--has-prefix',\n observable: this._formFieldStateService.hasPrefix$,\n },\n {\n attribute: 'class.et-input--has-suffix',\n observable: this._formFieldStateService.hasSuffix$,\n },\n );\n\n ngAfterContentInit(): void {\n if (!this.inputPrefix || !this.inputSuffix) {\n return;\n }\n\n this.inputPrefix.changes\n .pipe(\n takeUntil(this._destroy$),\n startWith(this.inputPrefix),\n map((list) => list.length > 0),\n )\n .subscribe(this._formFieldStateService.hasPrefix$);\n\n this.inputSuffix.changes\n .pipe(\n takeUntil(this._destroy$),\n startWith(this.inputSuffix),\n map((list) => list.length > 0),\n )\n .subscribe(this._formFieldStateService.hasSuffix$);\n }\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { InputBase } from '../../../../utils';\nimport { CheckboxDirective, CHECKBOX_TOKEN } from '../../directives';\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 { LabelComponent } from '../label';\nimport { CheckboxComponent, CheckboxFieldComponent, CheckboxGroupComponent } from './components';\nimport { CheckboxGroupControlDirective } from './directives';\n\nexport const CheckboxImports = [\n CheckboxComponent,\n CheckboxFieldComponent,\n CheckboxGroupComponent,\n CheckboxGroupControlDirective,\n LabelComponent,\n] as const;\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';\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 { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n if (value !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.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 { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n const val = value !== null ? `${value}` : '';\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 _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 { 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';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n if (value !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.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 { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n if (value !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.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() {\n this.input._updateValue(null);\n this._controlTouched();\n }\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';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n if (value !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.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 { Directive, inject, InjectionToken, OnInit } from '@angular/core';\nimport { createDestroy } from '@ethlete/core';\nimport { combineLatest, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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.nativeInputRef$])\n .pipe(\n tap(([value, nativeInputRef]) => {\n if (!nativeInputRef) return;\n\n if (value !== nativeInputRef.element.nativeElement.value) {\n nativeInputRef.element.nativeElement.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, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { EMAIL_INPUT_TOKEN, EmailInputDirective } from '../../directives';\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, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { DecoratedFormFieldBase } from '../../../../utils';\nimport { ErrorComponent } from '../../../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, NgIf, AsyncPipe],\n})\nexport class InputFieldComponent extends DecoratedFormFieldBase {\n protected readonly inputState = inject(InputStateService);\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { NUMBER_INPUT_TOKEN, NumberInputDirective } from '../../directives';\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 { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { PASSWORD_INPUT_TOKEN, PasswordInputDirective } from '../../directives';\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 { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { SEARCH_INPUT_TOKEN, SearchInputDirective } from '../../directives';\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 (keyup.escape)=\"searchInput._clear()\"\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 { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { DecoratedInputBase } from '../../../../utils';\nimport { TEXT_INPUT_TOKEN, TextInputDirective } from '../../directives';\n\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 { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\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","<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","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { INPUT_TOKEN } from '../../../../directives';\nimport { PASSWORD_INPUT_TOKEN } from '../../directives';\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';\nimport { SEARCH_INPUT_TOKEN } from '../../directives';\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 {\n IfInputEmptyDirective,\n IfInputFilledDirective,\n InputPrefixDirective,\n InputSuffixDirective,\n} from '../../directives';\nimport { LabelComponent } from '../label';\nimport {\n EmailInputComponent,\n InputFieldComponent,\n NumberInputComponent,\n PasswordInputComponent,\n SearchInputComponent,\n TextInputComponent,\n TextareaInputComponent,\n} from './components';\nimport { PasswordInputToggleComponent, SearchInputClearComponent } from './partials';\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 IfInputEmptyDirective,\n SearchInputClearComponent,\n EmailInputComponent,\n LabelComponent,\n] as const;\n","import { Directive, InjectionToken, Input, booleanAttribute, inject } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\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 _bindings = createReactiveBindings(\n {\n attribute: ['class.et-radio--checked'],\n observable: this.checked$,\n },\n {\n attribute: ['class.et-radio--disabled'],\n observable: this.disabled$,\n },\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 { createReactiveBindings, TypedQueryList } from '@ethlete/core';\nimport { combineLatest, map, startWith, 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 implements AfterContentInit {\n readonly inputState = inject<InputStateService<RadioValue>>(InputStateService);\n\n readonly _bindings = createReactiveBindings();\n\n @ContentChildren(forwardRef(() => RADIO_TOKEN), { descendants: true })\n private _radio?: TypedQueryList<RadioDirective>;\n\n ngAfterContentInit(): void {\n if (!this._radio) {\n return;\n }\n\n this._bindings.push({\n attribute: 'class.et-radio-field--checked',\n observable: this._radio.changes.pipe(startWith(this._radio)).pipe(\n switchMap((radios) =>\n combineLatest(radios.filter((radio): radio is RadioDirective => !!radio).map((radio) => radio.checked$)),\n ),\n map((checked) => checked.some((value) => value)),\n ),\n });\n\n this._bindings.push({\n attribute: 'class.et-radio-field--disabled',\n observable: this._radio.changes.pipe(startWith(this._radio)).pipe(\n switchMap((radios) =>\n combineLatest(radios.filter((radio): radio is RadioDirective => !!radio).map((radio) => radio.disabled$)),\n ),\n map((disabled) => disabled.some((value) => value)),\n ),\n });\n }\n}\n","import { Directive, inject, InjectionToken } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { map } from 'rxjs';\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 _bindings = createReactiveBindings({\n attribute: 'aria-labelledby',\n observable: this._formGroupStateService.describedBy$.pipe(\n map((describedBy) => {\n return {\n render: !!describedBy,\n value: `${describedBy}`,\n };\n }),\n ),\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { StaticFormFieldDirective } from '../../../../directives';\nimport { RadioFieldDirective } from '../../directives';\n\n@Component({\n selector: 'et-radio-field',\n template: `\n <div class=\"et-radio-field-container\">\n <ng-content select=\"et-radio\" />\n <ng-content select=\"et-label\" />\n </div>\n `,\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, StaticFormGroupDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error';\nimport { RadioGroupDirective } from '../../directives';\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 { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { InputBase } from '../../../../utils';\nimport { RadioDirective, RADIO_GROUP_TOKEN, RADIO_TOKEN } from '../../directives';\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 { LabelComponent } from '../label';\nimport { RadioComponent, RadioFieldComponent, RadioGroupComponent } from './components';\n\nexport const RadioImports = [RadioComponent, RadioFieldComponent, RadioGroupComponent, LabelComponent] as const;\n","import { Directive, InjectionToken, Input, booleanAttribute, inject } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\nimport { INPUT_TOKEN, InputDirective } from '../../../../directives';\nimport { SegmentedButtonValue } from '../../types';\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<SegmentedButtonValue>>(INPUT_TOKEN);\n\n @Input()\n get value() {\n return this._value$.getValue();\n }\n set value(value: SegmentedButtonValue) {\n this._value$.next(value);\n }\n private _value$ = new BehaviorSubject<SegmentedButtonValue>(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 _bindings = createReactiveBindings(\n {\n attribute: ['class.et-segmented-button--checked'],\n observable: this.checked$,\n },\n {\n attribute: ['class.et-segmented-button--disabled'],\n observable: this.disabled$,\n },\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 { createReactiveBindings, TypedQueryList } from '@ethlete/core';\nimport { combineLatest, map, startWith, switchMap } from 'rxjs';\nimport { InputStateService } from '../../../../services';\nimport { SegmentedButtonValue } from '../../types';\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 implements AfterContentInit {\n readonly inputState = inject<InputStateService<SegmentedButtonValue>>(InputStateService);\n\n readonly _bindings = createReactiveBindings();\n\n @ContentChildren(forwardRef(() => SEGMENTED_BUTTON_TOKEN), { descendants: true })\n private _segmentedButton?: TypedQueryList<SegmentedButtonDirective>;\n\n ngAfterContentInit(): void {\n if (!this._segmentedButton) {\n return;\n }\n\n this._bindings.push({\n attribute: 'class.et-segmented-button-field--checked',\n observable: this._segmentedButton.changes.pipe(startWith(this._segmentedButton)).pipe(\n switchMap((buttons) =>\n combineLatest(\n buttons.filter((radio): radio is SegmentedButtonDirective => !!radio).map((button) => button.checked$),\n ),\n ),\n map((checked) => checked.some((value) => value)),\n ),\n });\n\n this._bindings.push({\n attribute: 'class.et-segmented-button-field--disabled',\n observable: this._segmentedButton.changes.pipe(startWith(this._segmentedButton)).pipe(\n switchMap((buttons) =>\n combineLatest(\n buttons.filter((radio): radio is SegmentedButtonDirective => !!radio).map((button) => button.disabled$),\n ),\n ),\n map((disabled) => disabled.some((value) => value)),\n ),\n });\n }\n}\n","import { AfterContentInit, ContentChildren, Directive, forwardRef, inject, InjectionToken } from '@angular/core';\nimport { createDestroy, createFlipAnimation, createReactiveBindings, TypedQueryList } from '@ethlete/core';\nimport { combineLatest, map, pairwise, startWith, takeUntil, tap } from 'rxjs';\nimport { FormGroupStateService, InputStateService } from '../../../../services';\nimport { SegmentedButtonValue } from '../../types';\nimport { SEGMENTED_BUTTON_TOKEN, SegmentedButtonDirective } from '../public-api';\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 =\n inject<InputStateService<SegmentedButtonValue, HTMLButtonElement>>(InputStateService);\n private readonly _destroy$ = createDestroy();\n\n readonly name = `et-segmented-button-group-${++nextUniqueId}`;\n\n readonly _bindings = createReactiveBindings({\n attribute: 'aria-labelledby',\n observable: this._formGroupStateService.describedBy$.pipe(\n map((describedBy) => {\n return {\n render: !!describedBy,\n value: `${describedBy}`,\n };\n }),\n ),\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, NativeInputRefDirective } from '../../../../directives';\nimport { InputBase } from '../../../../utils';\nimport { SEGMENTED_BUTTON_GROUP_TOKEN, SEGMENTED_BUTTON_TOKEN, SegmentedButtonDirective } from '../../directives';\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 { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { StaticFormFieldDirective } from '../../../../directives';\nimport { SegmentedButtonFieldDirective } from '../../directives';\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 imports: [],\n hostDirectives: [StaticFormFieldDirective, SegmentedButtonFieldDirective],\n})\nexport class SegmentedButtonFieldComponent {}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormGroupDirective, StaticFormGroupDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../error';\nimport { SegmentedButtonGroupDirective } from '../../directives';\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","import { SegmentedButtonComponent, SegmentedButtonFieldComponent, SegmentedButtonGroupComponent } from './components';\n\nexport const SegmentedButtonImports = [\n SegmentedButtonComponent,\n SegmentedButtonFieldComponent,\n SegmentedButtonGroupComponent,\n] as const;\n","import { Directive, InjectionToken } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/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 _bindings = createReactiveBindings();\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { DecoratedFormFieldBase } from '../../../../utils';\nimport { ErrorComponent } from '../../../error';\nimport { SelectFieldDirective } from '../../directives';\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, NgIf, AsyncPipe],\n})\nexport class SelectFieldComponent extends DecoratedFormFieldBase {\n protected readonly inputState = inject(InputStateService);\n}\n","export const isOptionDisabled = (opt: unknown) => {\n if (typeof opt === 'object' && opt !== null && 'disabled' in opt) {\n return !!opt.disabled;\n }\n\n return false;\n};\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, InjectionToken, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, map, switchMap } from 'rxjs';\nimport { COMBOBOX_TOKEN } from '../../components';\nimport { isOptionDisabled } from '../../utils';\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 '(click)': 'selectOption()',\n },\n imports: [AsyncPipe],\n hostDirectives: [],\n providers: [\n {\n provide: COMBOBOX_OPTION_TOKEN,\n useExisting: ComboboxOptionComponent,\n },\n ],\n})\nexport class ComboboxOptionComponent {\n protected readonly combobox = inject(COMBOBOX_TOKEN);\n\n @Input({ required: true })\n get option() {\n return this._option$.value;\n }\n set option(value: unknown) {\n this._option$.next(value);\n }\n private _option$ = new BehaviorSubject<unknown>(null);\n\n protected readonly disabled$ = this._option$.pipe(map((opt) => isOptionDisabled(opt)));\n\n protected readonly selected$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionSelected(opt)));\n\n protected readonly active$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionActive(opt)));\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'class.et-combobox-option--selected',\n observable: this.selected$,\n },\n {\n attribute: 'class.et-combobox-option--disabled',\n observable: this.disabled$,\n },\n {\n attribute: 'class.et-combobox-option--active',\n observable: this.active$,\n },\n );\n\n protected selectOption() {\n if (isOptionDisabled(this.option)) {\n return;\n }\n\n this.combobox.writeValueFromOption(this.option);\n }\n}\n","{{ combobox.getOptionLabel(option) | async }}\n","import { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n InjectionToken,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport {\n ANIMATED_LIFECYCLE_TOKEN,\n AnimatedLifecycleDirective,\n ClickOutsideDirective,\n LetDirective,\n createDestroy,\n createReactiveBindings,\n} from '@ethlete/core';\nimport { takeUntil, tap } from 'rxjs';\nimport { COMBOBOX_TOKEN } from '../../components';\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 },\n imports: [\n NgTemplateOutlet,\n NgFor,\n ComboboxOptionComponent,\n LetDirective,\n AsyncPipe,\n AnimatedLifecycleDirective,\n NgIf,\n ],\n hostDirectives: [ClickOutsideDirective],\n providers: [\n {\n provide: COMBOBOX_BODY_TOKEN,\n useExisting: ComboboxBodyComponent,\n },\n ],\n})\nexport class ComboboxBodyComponent implements OnInit {\n private readonly _destroy$ = createDestroy();\n private readonly _clickOutside = inject(ClickOutsideDirective);\n protected readonly combobox = inject(COMBOBOX_TOKEN);\n\n @ViewChild(ANIMATED_LIFECYCLE_TOKEN, { static: true })\n readonly _animatedLifecycle?: AnimatedLifecycleDirective;\n\n readonly _bindings = createReactiveBindings({\n attribute: 'class.et-combobox-body--loading',\n observable: this.combobox.loading$,\n });\n\n _bodyTemplate: TemplateRef<unknown> | null = null;\n\n ngOnInit(): void {\n this._clickOutside.etClickOutside\n .pipe(\n takeUntil(this._destroy$),\n tap(() => this.combobox.close()),\n )\n .subscribe();\n }\n}\n","<!-- eslint-disable @angular-eslint/template/use-track-by-function -->\n<div class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <p *ngIf=\"!options?.length\" class=\"et-combobox-body--empty\">{{ combobox.emptyText }}</p>\n\n <et-combobox-option *ngFor=\"let option of options\" [option]=\"option\" />\n </ng-container>\n</div>\n","import { A, ENTER, ESCAPE, TAB } from '@angular/cdk/keycodes';\nimport { AsyncPipe, NgFor, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n InjectionToken,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n isDevMode,\n} from '@angular/core';\nimport {\n ActiveSelectionModel,\n AnimatedOverlayDirective,\n LetDirective,\n RuntimeError,\n SelectionModel,\n} from '@ethlete/core';\nimport {\n BehaviorSubject,\n catchError,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n map,\n skip,\n skipWhile,\n takeUntil,\n tap,\n throwError,\n} from 'rxjs';\nimport { ChevronIconComponent } from '../../../../../../../icons';\nimport { INPUT_TOKEN, InputDirective, NativeInputRefDirective } from '../../../../../../directives';\nimport { DecoratedInputBase } from '../../../../../../utils';\nimport { SELECT_FIELD_TOKEN } from '../../../../directives';\nimport { ComboboxBodyComponent } from '../../partials';\nimport { isOptionDisabled } from '../../utils';\n\nconst COMBOBOX_ERRORS = {\n 1: 'Expected options to be an array of objects. This is due to \"bindLabel\" and \"bindValue\" being set.',\n 2: '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} as const;\n\nconst comboboxError = (code: keyof typeof COMBOBOX_ERRORS, data: unknown) => {\n const message = `<et-combobox>: ${COMBOBOX_ERRORS[code]}`;\n\n throw new RuntimeError(code, message, data);\n};\n\nconst isPrimitiveArray = (value: unknown): value is Array<string | number | boolean> => {\n if (!Array.isArray(value)) return false;\n\n const first = value[0];\n const last = value[value.length - 1];\n\n if (!first || !last) return false;\n\n return typeof first !== 'object' && typeof last !== 'object';\n};\n\nconst isObjectArray = (value: unknown): value is Array<Record<string, unknown>> => {\n if (!Array.isArray(value)) return false;\n\n const first = value[0];\n const last = value[value.length - 1];\n\n if (!first || !last) return false;\n\n return typeof first === 'object' && typeof last === 'object';\n};\n\nconst isEmptyArray = (value: unknown): value is [] => {\n return Array.isArray(value) && value.length === 0;\n};\n\nconst ComboboxOptionType = {\n Primitive: 'primitive',\n Object: 'object',\n} as const;\n\nexport const COMBOBOX_TOKEN = new InjectionToken<ComboboxComponent>('ET_COMBOBOX_TOKEN');\n\ninterface KeyHandlerResult {\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\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)': 'selectInputAndOpen()',\n },\n imports: [NgIf, NativeInputRefDirective, AsyncPipe, ChevronIconComponent, LetDirective, NgFor],\n hostDirectives: [{ directive: InputDirective }, AnimatedOverlayDirective],\n providers: [\n {\n provide: COMBOBOX_TOKEN,\n useExisting: ComboboxComponent,\n },\n ],\n})\nexport class ComboboxComponent extends DecoratedInputBase implements OnInit {\n //#region Injects\n\n private readonly _input = inject(INPUT_TOKEN);\n private readonly _animatedOverlay = inject<AnimatedOverlayDirective<ComboboxBodyComponent>>(AnimatedOverlayDirective);\n private readonly _selectField = inject(SELECT_FIELD_TOKEN);\n\n //#endregion\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 }\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(true);\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\n @Input()\n emptyText = 'No results found';\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: string | null) {\n this._selectionModel.setLabelBinding(value);\n }\n\n @Input()\n set bindValue(value: string | null) {\n this._selectionModel.setValueBinding(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 //#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 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 private readonly _isOpen$ = this._animatedOverlay.isMounted$;\n\n private readonly _selectionModel = new SelectionModel();\n private readonly _activeSelectionModel = new ActiveSelectionModel();\n\n readonly selectedOptions$ = this._selectionModel.selection$;\n readonly multiple$ = this._selectionModel.allowMultiple$;\n readonly options$ = this._selectionModel.filteredOptions$;\n readonly rawOptions$ = this._selectionModel.options$;\n\n //#endregion\n\n //#region Computes\n\n //#endregion\n\n //#region Lifecycle\n\n constructor() {\n super();\n\n this._activeSelectionModel.setSelectionModel(this._selectionModel);\n\n this._animatedOverlay.placement = 'bottom';\n this._animatedOverlay.allowedAutoPlacements = ['bottom', 'top'];\n\n this._bindings.push({\n attribute: 'class.et-combobox--loading',\n observable: this._loading$,\n });\n\n this._bindings.push({\n attribute: 'class.et-combobox--error',\n observable: this._error$.pipe(map((v) => !!v)),\n });\n\n this._bindings.push({\n attribute: 'class.et-combobox--open',\n observable: this._isOpen$,\n });\n\n this._selectField._bindings.push({\n attribute: 'class.et-select-field--multiple',\n observable: this.multiple$,\n });\n\n this._selectField._bindings.push({\n attribute: 'class.et-select-field--open',\n observable: this._isOpen$,\n });\n }\n\n ngOnInit(): void {\n this._initDispatchFilterChanges();\n this._initRepositionOnValueChanges();\n\n if (isDevMode()) {\n this._debugValidateComboboxConfig();\n }\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\n //#endregion\n\n //#region Public Methods\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 removeSelectedOption(option: unknown) {\n this._selectionModel.removeSelectedOption(option);\n\n this.input._markAsTouched();\n }\n\n open() {\n // if (!this._selectBodyConfig) return;\n\n if (this._isOpen || this.input.disabled || this._animatedOverlay.isMounting) return;\n\n // this._setSelectedOptionActive();\n\n const instance = this._animatedOverlay.mount({\n component: ComboboxBodyComponent,\n mirrorWidth: true,\n // data: { _bodyTemplate: this._selectBodyConfig.template },\n });\n\n if (!instance) return;\n\n // this._selectBodyId$.next(instance.selectBody.id);\n }\n\n close() {\n if (!this._isOpen || this._animatedOverlay.isUnmounting) return;\n\n this._animatedOverlay.unmount();\n\n // this._selectBodyId$.next(null);\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.activeOption$.pipe(map((activeOption) => activeOption === option));\n }\n\n //#endregion\n\n //#region Protected Methods\n\n protected 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\n const result: KeyHandlerResult = {};\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 } else if (!isMultiple) {\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 (!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 protected processInputEvent(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n\n this._updateFilter(value);\n }\n\n protected handleBlurEvent() {\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 //#endregion\n\n //#region Private Methods\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 _initRepositionOnValueChanges() {\n this.input.valueChange$\n .pipe(\n takeUntil(this._destroy$),\n debounceTime(0),\n tap(() => this._animatedOverlay._reposition()),\n )\n .subscribe();\n }\n\n private _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 private _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 private _interpretKeyHandlerResult(result: KeyHandlerResult) {\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 (isOptionDisabled(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 //#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(1, options);\n }\n } else if (expectedOptionType === ComboboxOptionType.Primitive) {\n if (!isPrimitiveArray(options)) {\n throw comboboxError(2, options);\n }\n }\n }),\n catchError((e) => {\n this._debugValidateComboboxConfig(true);\n return throwError(() => e);\n }),\n )\n .subscribe();\n }\n\n //#endregion\n}\n","<!-- eslint-disable @angular-eslint/template/click-events-have-key-events -->\n<!-- eslint-disable @angular-eslint/template/use-track-by-function -->\n<ng-content select=\"[etInputPrefix]\" />\n\n<div class=\"et-combobox-wrapper\">\n <ul *ngIf=\"multiple$ | async\" class=\"et-combobox-selected-options\">\n <li *ngFor=\"let item of selectedOptions$ | async\" class=\"et-combobox-selected-option\">\n {{ getOptionLabel(item) | async }}\n <span\n (click)=\"removeSelectedOption(item); $event.stopPropagation()\"\n class=\"et-combobox-selected-option-remove\"\n tabindex=\"-1\"\n >\n x\n </span>\n </li>\n </ul>\n\n <input\n (keydown)=\"processKeydownEvent($event)\"\n (click)=\"open()\"\n (blur)=\"handleBlurEvent()\"\n (input)=\"processInputEvent($event)\"\n type=\"text\"\n etNativeInputRef\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, InputSuffixDirective } from '../../../../directives';\nimport { LabelComponent } from '../../../label';\nimport { SelectFieldComponent } from '../select-field';\nimport { ComboboxComponent } from './components';\n\nexport const ComboboxImports = [\n ComboboxComponent,\n SelectFieldComponent,\n InputPrefixDirective,\n InputSuffixDirective,\n LabelComponent,\n] as const;\n","import { Directive, InjectionToken } from '@angular/core';\n\nexport const COMBOBOX_DIR_TOKEN = new InjectionToken<ComboboxDirective>('ET_COMBOBOX_INPUT_TOKEN');\n\n@Directive({\n standalone: true,\n providers: [\n {\n provide: COMBOBOX_DIR_TOKEN,\n useExisting: ComboboxDirective,\n },\n ],\n})\nexport class ComboboxDirective {}\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 { NativeSelectOptionValue } from '../../..';\nimport { INPUT_TOKEN, InputDirective } from '../../../../../../directives';\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, NgForOf, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../../../directives';\nimport { DecoratedInputBase } from '../../../../../../utils';\nimport { NATIVE_SELECT_INPUT_TOKEN, NativeSelectInputDirective } from '../../directives';\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, NgForOf, 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 <option\n *ngFor=\"let option of select.options; trackBy: select._trackByFn\"\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</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';\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, InputSuffixDirective } from '../../../../directives';\nimport { LabelComponent } from '../../../label';\nimport { SelectFieldComponent } from '../select-field';\nimport { NativeSelectInputComponent } from './components';\nimport { NativeSelectInputDirective, NativeSelectOptionDirective } from './directives';\nimport { NativeSelectOptionComponent } from './partials';\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 {\n AfterContentInit,\n Directive,\n ElementRef,\n InjectionToken,\n Input,\n booleanAttribute,\n inject,\n isDevMode,\n} from '@angular/core';\nimport { ObserveContentDirective, createReactiveBindings } from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, firstValueFrom, map } 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)': 'setSelectValue()',\n '(etObserveContent)': '_updateViewValue()',\n role: 'option',\n },\n hostDirectives: [ObserveContentDirective],\n})\nexport class SelectOptionDirective implements AfterContentInit {\n private readonly _select = inject(SELECT_TOKEN);\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _viewValue$ = new BehaviorSubject<string>(this._elementRef.nativeElement.textContent?.trim() ?? '');\n private readonly _isActive$ = new BehaviorSubject(false);\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\n readonly isSelected$ = combineLatest([this._select.input.value$, this._value$]).pipe(\n map(([selectValue, optionValue]) => {\n if (Array.isArray(selectValue)) {\n return selectValue.includes(optionValue);\n }\n\n return selectValue === optionValue;\n }),\n );\n\n readonly viewValue$ = this._viewValue$.asObservable();\n readonly disabled$ = this._disabled$.asObservable();\n readonly isActive$ = this._isActive$.asObservable();\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'class.et-select-option--selected',\n observable: this.isSelected$,\n },\n {\n attribute: 'class.et-select-option--active',\n observable: this._isActive$,\n },\n {\n attribute: 'aria-selected',\n observable: this.isSelected$.pipe(\n map((selected) => ({\n render: true,\n value: selected,\n })),\n ),\n },\n );\n\n ngAfterContentInit(): void {\n this._updateViewValue();\n }\n\n async setSelectValue() {\n if (this.disabled) return;\n\n if (this._select.multiple) {\n if (!Array.isArray(this._select.input.value)) {\n if (isDevMode()) {\n console.warn('Select multiple is enabled but the value is not an array');\n }\n\n return;\n }\n\n const isSelected = await firstValueFrom(this.isSelected$);\n\n if (isSelected) {\n this._select.setValue(this._select.input.value.filter((value) => value !== this.value));\n } else {\n this._select.setValue([...this._select.input.value, this.value]);\n }\n } else {\n this._select.setValue(this.value);\n this._select.unmountSelectBody();\n }\n }\n\n _updateViewValue() {\n this._viewValue$.next(this._elementRef.nativeElement.textContent?.trim() ?? '');\n }\n\n _setActive(isActive: boolean) {\n this._isActive$.next(isActive);\n }\n}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport {\n A,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n HOME,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n UP_ARROW,\n hasModifierKey,\n} from '@angular/cdk/keycodes';\nimport { ComponentType } from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n ContentChildren,\n Directive,\n InjectionToken,\n Input,\n OnInit,\n TemplateRef,\n TrackByFunction,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {\n AnimatedOverlayComponentBase,\n AnimatedOverlayDirective,\n TypedQueryList,\n createDestroy,\n createReactiveBindings,\n} from '@ethlete/core';\nimport { BehaviorSubject, combineLatest, firstValueFrom, map, of, startWith, switchMap, takeUntil, tap } from 'rxjs';\nimport { INPUT_TOKEN } from '../../../../../../directives';\nimport { SELECT_FIELD_TOKEN } from '../../../../directives';\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 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],\n providers: [\n {\n provide: SELECT_TOKEN,\n useExisting: SelectDirective,\n },\n ],\n})\nexport class SelectDirective<T extends SelectDirectiveBodyComponentBase> implements OnInit, AfterContentInit {\n private _selectBodyConfig: SelectBodyConfig<T> | null = null;\n\n private readonly _animatedOverlay = inject<AnimatedOverlayDirective<T>>(AnimatedOverlayDirective);\n private readonly _destroy$ = createDestroy();\n private readonly _liveAnnouncer = inject(LiveAnnouncer);\n private readonly _selectField = inject(SELECT_FIELD_TOKEN);\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 @Input()\n get multiple(): boolean {\n return this._multiple$.value;\n }\n set multiple(value: unknown) {\n this._multiple$.next(booleanAttribute(value));\n\n this._migrateSelectValue();\n }\n private _multiple$ = new BehaviorSubject(false);\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 selectOptions$ = this._selectOptionsQueryList$.pipe(\n switchMap((queryList) => queryList?.changes.pipe(startWith(queryList)) ?? of(null)),\n switchMap((queryList) => {\n if (!queryList) return of(null);\n\n const items = queryList\n .filter((i): i is SelectOptionDirective => !!i)\n .map((opt) =>\n combineLatest([opt.isSelected$, opt.isActive$]).pipe(\n map(([selected, active]) => ({ opt, selected, active })),\n ),\n );\n\n return combineLatest(items ?? of(null));\n }),\n );\n\n readonly activeOption$ = this.selectOptions$.pipe(\n map((options) => {\n if (!options) return null;\n\n return options.find((option) => option.active) ?? null;\n }),\n );\n\n readonly selectedOptions$ = this.selectOptions$.pipe(\n map((options) => {\n if (!options) return null;\n\n const selectedOptions = options.filter((option) => option.selected);\n\n if (!selectedOptions.length) return null;\n\n const inputValue = this.input.value;\n\n if (this.multiple && Array.isArray(inputValue)) {\n // sort selected options by the order of the input value\n const selectedOptionsMap = new Map(selectedOptions.map((option) => [option.opt.value, option]));\n return inputValue\n .map((value) => selectedOptionsMap.get(value))\n .filter(\n (\n option,\n ): option is {\n opt: SelectOptionDirective;\n selected: boolean;\n active: boolean;\n } => !!option,\n );\n }\n\n return selectedOptions;\n }),\n );\n\n readonly selectedOption$ = this.selectedOptions$.pipe(map((options) => options?.[0] ?? null));\n\n readonly selectBodyId$ = this._selectBodyId$.asObservable();\n readonly isOpen$ = this._isOpen$.asObservable();\n readonly multiple$ = this._multiple$.asObservable();\n\n readonly selectCurrentValueId = `et-select-current-value-${uniqueId++}`;\n\n readonly ariaViewValue$ = this.selectedOptions$.pipe(\n switchMap((options) => {\n if (!options?.length) return of(null);\n\n const viewValues = options.map((option) => option.opt.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 activeDescendant$ = combineLatest([this.isOpen$, this.activeOption$]).pipe(\n map(([isOpen, activeOption]) => {\n if (!isOpen || !activeOption) return null;\n\n return activeOption.opt.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 _bindings = createReactiveBindings(\n {\n attribute: 'class.et-select--is-open',\n observable: this.isOpen$,\n },\n {\n attribute: 'class.et-select--disabled',\n observable: this.input.disabled$,\n },\n );\n\n constructor() {\n this._animatedOverlay.placement = 'bottom';\n this._animatedOverlay.allowedAutoPlacements = ['bottom', 'top'];\n\n this._selectField._bindings.push({\n attribute: 'class.et-select-field--open',\n observable: this._isOpen$,\n });\n\n this._selectField._bindings.push({\n attribute: 'class.et-select-field--multiple',\n observable: this.multiple$,\n });\n }\n\n ngOnInit(): void {\n this._unmountSelectBodyOnDisable();\n this._migrateSelectValue();\n }\n\n ngAfterContentInit(): void {\n this._setSelectedOptionActive();\n }\n\n trackByFn: TrackByFunction<SelectOptionDirective> = (_, item) => item.id;\n\n mountSelectBody() {\n if (!this._selectBodyConfig) return;\n\n if (this._animatedOverlay.isMounted || this.input.disabled) return;\n\n this._setSelectedOptionActive();\n\n const instance = this._animatedOverlay.mount({\n component: this._selectBodyConfig.component,\n mirrorWidth: true,\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\n unmountSelectBody() {\n if (!this._animatedOverlay.isMounted) return;\n\n this._animatedOverlay.unmount();\n\n this._selectBodyId$.next(null);\n this._isOpen$.next(false);\n }\n\n setValue(value: unknown) {\n this.input._updateValue(value);\n\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this._isOpen$.value) {\n this._handleKeyDownInOpenState(event);\n } else {\n this._handleKeyDownInClosedState(event);\n }\n }\n\n setSelectBody(config: SelectBodyConfig<T>) {\n this._selectBodyConfig = config;\n }\n\n removeOptionFromSelection(option: SelectOptionDirective) {\n if (!this.multiple || !Array.isArray(this.input.value)) return;\n\n const value = this.input.value.filter((v) => v !== option.value);\n\n this.setValue(value);\n }\n\n _controlTouched() {\n this.input._markAsTouched();\n this.input._setShouldDisplayError(true);\n }\n\n private _unmountSelectBodyOnDisable() {\n this.input.disabled$\n .pipe(\n tap((disabled) => {\n if (!disabled) return;\n\n this.unmountSelectBody();\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n private _handleKeyDownInClosedState(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n const isArrowKey =\n keyCode === DOWN_ARROW || keyCode === UP_ARROW || keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW;\n\n const isOpenKey = keyCode === ENTER || keyCode === SPACE;\n\n if ((isOpenKey && !hasModifierKey(event)) || ((this.multiple || event.altKey) && isArrowKey)) {\n event.preventDefault();\n this.mountSelectBody();\n } else if (!this.multiple) {\n switch (keyCode) {\n case DOWN_ARROW:\n this._selectOptionByOffset(1, true);\n break;\n case UP_ARROW:\n this._selectOptionByOffset(-1, true);\n break;\n case HOME:\n this._selectFirstOption(true);\n break;\n case END:\n this._selectLastOption(true);\n break;\n case PAGE_UP:\n this._selectOptionByOffset(-10, true);\n break;\n case PAGE_DOWN:\n this._selectOptionByOffset(10, true);\n break;\n }\n } else if (this.multiple && isArrowKey) {\n event.preventDefault();\n this.mountSelectBody();\n }\n }\n\n private async _handleKeyDownInOpenState(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;\n\n if (isArrowKey && event.altKey) {\n event.preventDefault();\n this.unmountSelectBody();\n } else if (keyCode === ESCAPE && !hasModifierKey(event)) {\n event.preventDefault();\n this.unmountSelectBody();\n } else if (keyCode === ENTER || keyCode === SPACE) {\n if (this.multiple) {\n this._toggleActiveOptionSelection();\n } else {\n this._setActiveOptionSelected();\n }\n\n event.preventDefault();\n } else if (this.multiple && keyCode === A && event.ctrlKey) {\n event.preventDefault();\n this._toggleSelectionOfAllOptions();\n } else {\n switch (keyCode) {\n case DOWN_ARROW:\n this._activateOptionByOffset(1);\n break;\n case UP_ARROW:\n this._activateOptionByOffset(-1);\n break;\n case HOME:\n this._activateFirstOption();\n break;\n case END:\n this._activateLastOption();\n break;\n case PAGE_UP:\n this._activateOptionByOffset(-10);\n break;\n case PAGE_DOWN:\n this._activateOptionByOffset(10);\n break;\n }\n }\n }\n\n private async _setActiveOption(option: SelectOptionDirective | null) {\n const currentActiveOption = await firstValueFrom(this.activeOption$);\n\n if (currentActiveOption?.opt === option) return false;\n\n currentActiveOption?.opt._setActive(false);\n\n if (option) {\n option._setActive(true);\n }\n\n return true;\n }\n\n private async _addActiveOptionToSelection() {\n const activeOption = await firstValueFrom(this.activeOption$);\n\n if (!activeOption || activeOption.opt.disabled || activeOption.selected) return;\n\n if (!Array.isArray(this.input.value)) {\n this.setValue([activeOption.opt.value]);\n return;\n }\n\n this.setValue([...this.input.value, activeOption.opt.value]);\n }\n\n private async _removeActiveOptionFromSelection() {\n const activeOption = await firstValueFrom(this.activeOption$);\n\n if (!activeOption || activeOption.opt.disabled || !activeOption.selected) return;\n\n if (!Array.isArray(this.input.value)) {\n this.setValue([]);\n return;\n }\n\n this.setValue(this.input.value.filter((value) => value !== activeOption.opt.value));\n }\n\n private async _toggleSelectionOfAllOptions() {\n const allOptions = await firstValueFrom(this.selectOptions$);\n\n const hasDeselectedOption = allOptions?.some((opt) => !opt.opt.disabled && !opt.selected);\n\n if (hasDeselectedOption) {\n this._selectAllOptions();\n } else {\n this._deselectAllOptions();\n }\n }\n\n private async _selectAllOptions() {\n const allOptions = await firstValueFrom(this.selectOptions$);\n\n if (!allOptions) return;\n\n const selectedOptions = allOptions.filter((opt) => !opt.opt.disabled).map((opt) => opt.opt.value);\n\n this.setValue(selectedOptions);\n }\n\n private async _deselectAllOptions() {\n this.setValue([]);\n }\n\n private async _toggleActiveOptionSelection() {\n const activeOption = await firstValueFrom(this.activeOption$);\n\n if (!activeOption) return;\n\n if (activeOption.selected) {\n this._removeActiveOptionFromSelection();\n } else {\n this._addActiveOptionToSelection();\n }\n }\n\n private async _setActiveOptionSelected() {\n const activeOption = await firstValueFrom(this.activeOption$);\n\n if (!activeOption || activeOption.opt.disabled) return;\n\n this._setSelectedOption(activeOption.opt);\n\n this.unmountSelectBody();\n }\n\n private async _setSelectedOptionActive() {\n const selectedOption = await firstValueFrom(this.selectedOption$);\n\n if (!selectedOption) return;\n\n this._setActiveOption(selectedOption.opt);\n }\n\n private async _setSelectedOption(option: SelectOptionDirective | null) {\n const selectedOption = await firstValueFrom(this.selectedOption$);\n\n if (selectedOption === option) return false;\n\n this._setActiveOption(option);\n\n this.setValue(option?.value ?? null);\n\n return true;\n }\n\n private async _selectFirstOption(announce: boolean) {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const firstOption = options[0]?.opt;\n\n if (!firstOption) return;\n\n if (!this._setSelectedOption(firstOption)) return;\n\n if (announce) {\n const text = await firstValueFrom(firstOption.viewValue$);\n this._liveAnnouncer.announce(text, 10000);\n }\n }\n\n private async _selectLastOption(announce: boolean) {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const lastOption = options[options.length - 1]?.opt;\n\n if (!lastOption) return;\n\n if (!this._setSelectedOption(lastOption)) return;\n\n if (announce) {\n const text = await firstValueFrom(lastOption.viewValue$);\n this._liveAnnouncer.announce(text, 10000);\n }\n }\n\n private async _selectOptionByOffset(offset: number, announce: boolean): Promise<void> {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const selectedOption = await firstValueFrom(this.selectedOption$);\n const selectedOptionIndex = options.findIndex((o) => o.opt === selectedOption?.opt);\n const nextOptionIndex = selectedOptionIndex + offset;\n const nextOption = options[nextOptionIndex];\n\n if (!nextOption) return;\n\n if (nextOption.opt.disabled) {\n return this._selectOptionByOffset(offset + (offset < 0 ? -1 : 1), announce);\n }\n\n if (!this._setSelectedOption(nextOption.opt)) return;\n\n if (announce) {\n const text = await firstValueFrom(nextOption.opt.viewValue$);\n this._liveAnnouncer.announce(text, 10000);\n }\n }\n\n private async _activateFirstOption() {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const firstOption = options[0]?.opt;\n\n if (!firstOption) return;\n\n await this._setActiveOption(firstOption);\n }\n\n private async _activateLastOption() {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const lastOption = options[options.length - 1]?.opt;\n\n if (!lastOption) return;\n\n await this._setActiveOption(lastOption);\n }\n\n private async _activateOptionByOffset(offset: number) {\n const options = await firstValueFrom(this.selectOptions$);\n\n if (!options) return;\n\n const activatedOption = await firstValueFrom(this.activeOption$);\n const activatedOptionIndex = options.findIndex((o) => o.opt === activatedOption?.opt);\n const nextOptionIndex = activatedOptionIndex + offset;\n const nextOption = options[nextOptionIndex];\n\n if (!nextOption) return;\n\n await this._setActiveOption(nextOption.opt);\n }\n\n private async _migrateSelectValue() {\n if (this.multiple && !Array.isArray(this.input.value)) {\n this.setValue([]);\n } else if (!this.multiple && Array.isArray(this.input.value)) {\n this.setValue(null);\n }\n\n this._setActiveOption(null);\n }\n}\n","import { Directive, InjectionToken, OnInit, inject } from '@angular/core';\nimport { ClickOutsideDirective, createDestroy, createReactiveBindings } from '@ethlete/core';\nimport { map, 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\n private readonly _select = inject(SELECT_TOKEN);\n private readonly _clickOutside = inject(ClickOutsideDirective);\n\n readonly id = `et-select-body-${uniqueId++}`;\n\n readonly _bindings = createReactiveBindings(\n {\n attribute: 'aria-multiselectable',\n observable: this._select.multiple$.pipe(\n map((multiple) => ({\n render: true,\n value: multiple,\n })),\n ),\n },\n {\n attribute: 'aria-labelledby',\n observable: this._select.input.labelId$.pipe(\n map((labelId) => ({\n render: !!labelId,\n value: labelId as string,\n })),\n ),\n },\n );\n\n ngOnInit(): void {\n this._clickOutside.etClickOutside\n .pipe(\n takeUntil(this._destroy$),\n tap(() => this._select.unmountSelectBody()),\n )\n .subscribe();\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective } from '@ethlete/core';\nimport { SELECT_BODY_TOKEN, SelectBodyDirective } from '../../directives';\n\n@Component({\n selector: 'et-select-body',\n template: `\n <div 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],\n})\nexport class SelectBodyComponent {\n readonly selectBody = inject(SELECT_BODY_TOKEN);\n\n @ViewChild(ANIMATED_LIFECYCLE_TOKEN, { static: true })\n readonly _animatedLifecycle?: AnimatedLifecycleDirective;\n\n _bodyTemplate: TemplateRef<unknown> | null = null;\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { SELECT_OPTION_TOKEN, SelectOptionDirective } from '../../directives';\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 { AsyncPipe, NgFor, NgIf } 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';\nimport { InputDirective, NativeInputRefDirective } from '../../../../../../directives';\nimport { DecoratedInputBase } from '../../../../../../utils';\nimport { SELECT_TOKEN, SelectDirective } from '../../directives';\nimport { SelectBodyComponent } from '../../partials';\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: [NgIf, NativeInputRefDirective, AsyncPipe, ChevronIconComponent, LetDirective, NgFor],\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.mountSelectBody()\"\n (keydown)=\"select.handleKeyDown($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 *etLet=\"select.ariaViewValue$ | async as ariaViewValue\"\n [attr.id]=\"select.selectCurrentValueId\"\n [class.cdk-visually-hidden]=\"select.multiple && ariaViewValue\"\n class=\"et-select-current-value\"\n >\n <ng-container *ngIf=\"select.ariaViewValue$ | async as ariaViewValue; else emptyTpl\">\n {{ ariaViewValue }}\n </ng-container>\n <ng-template #emptyTpl> {{ select.emptyText }} </ng-template>\n </span>\n\n <ng-container *ngIf=\"select.multiple\">\n <ng-container *ngIf=\"select.selectedOptions$ | async as selectedOptions\">\n <ul *ngIf=\"selectedOptions.length\" class=\"et-select-selected-options\" aria-hidden=\"true\">\n <li *ngFor=\"let opt of selectedOptions; trackBy: select.trackByFn\" class=\"et-select-selected-option\">\n {{ opt.opt.viewValue$ | async }}\n <button\n (click)=\"\n $event.stopImmediatePropagation(); inputElement.focus(); select.removeOptionFromSelection(opt.opt)\n \"\n class=\"et-select-selected-option-remove\"\n tabindex=\"-1\"\n type=\"button\"\n ></button>\n </li>\n </ul>\n </ng-container>\n </ng-container>\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 { InputPrefixDirective, InputSuffixDirective } from '../../../../directives';\nimport { LabelComponent } from '../../../label';\nimport { SelectFieldComponent } from '../select-field';\nimport { SelectComponent } from './components';\nimport { SelectOptionComponent } from './partials';\n\nexport const SelectImports = [\n SelectComponent,\n SelectOptionComponent,\n SelectFieldComponent,\n InputPrefixDirective,\n InputSuffixDirective,\n LabelComponent,\n] as const;\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../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 { Directive, inject, InjectionToken } from '@angular/core';\nimport { createReactiveBindings } from '@ethlete/core';\nimport { map } from 'rxjs';\nimport { InputDirective, INPUT_TOKEN } from '../../../../directives';\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 _bindings = createReactiveBindings(\n {\n attribute: ['class.et-slide-toggle--checked'],\n observable: this.checked$,\n },\n {\n attribute: ['class.et-slide-toggle--disabled'],\n observable: this.input.disabled$,\n },\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, inject, ViewEncapsulation } from '@angular/core';\nimport { InputDirective, NativeInputRefDirective } from '../../../../directives';\nimport { InputBase } from '../../../../utils';\nimport { SlideToggleDirective, SLIDE_TOGGLE_TOKEN } from '../../directives';\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 { LabelComponent } from '../label';\nimport { SlideToggleComponent, SlideToggleFieldComponent } from './components';\n\nexport const SlideToggleImports = [SlideToggleComponent, SlideToggleFieldComponent, LabelComponent] as const;\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Type, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { DynamicFormFieldDirective, StaticFormFieldDirective, WriteableInputDirective } from '../../../../directives';\nimport { InputStateService } from '../../../../services';\nimport { ErrorComponent } from '../../../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, NgIf, AsyncPipe],\n})\nexport class SliderFieldComponent {\n protected readonly inputState = inject(InputStateService);\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { AsyncPipe, DOCUMENT, NgIf } 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 { LetDirective, clamp, createDestroy, createReactiveBindings } 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';\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);\n } else {\n point = event.touches[0] || event.changedTouches[0];\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, NgIf],\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 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(map((step) => Math.round(Math.log10(step)) * -1));\n private readonly _valueText$ = combineLatest([this._value$, this._roundToDecimal$]).pipe(\n map(([value, roundToDecimal]) => value.toFixed(roundToDecimal)),\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 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 _bindings = createReactiveBindings(\n {\n attribute: 'aria-orientation',\n observable: this._vertical$.pipe(\n map((vertical) => ({\n render: true,\n value: vertical ? 'vertical' : 'horizontal',\n })),\n ),\n },\n {\n attribute: 'aria-disabled',\n observable: this._input.disabled$,\n },\n {\n attribute: 'aria-valuenow',\n observable: this._value$.pipe(map((value) => ({ render: true, value }))),\n },\n {\n attribute: 'aria-valuemin',\n observable: this._min$.pipe(map((value) => ({ render: true, value }))),\n },\n {\n attribute: 'aria-valuemax',\n observable: this._max$.pipe(map((value) => ({ render: true, value }))),\n },\n {\n attribute: 'aria-valuetext',\n observable: this._valueText$.pipe(map((value) => ({ render: true, value }))),\n },\n {\n attribute: 'tabindex',\n observable: this._input.disabled$.pipe(map((disabled) => ({ render: true, value: disabled ? -1 : 0 }))),\n },\n {\n attribute: 'class.et-slider--is-sliding',\n observable: this.isSlidingVia$.pipe(map((isSlidingVia) => !!isSlidingVia)),\n },\n {\n attribute: 'class.et-slider--inverted',\n observable: this._inverted$,\n },\n {\n attribute: 'class.et-slider--disable-animations',\n observable: this.disableAnimations$,\n },\n {\n attribute: 'aria-labeledby',\n observable: this._formFieldStateService.labelId$.pipe(\n map((labelId) => ({ render: !!labelId, value: labelId ?? '' })),\n ),\n },\n {\n attribute: 'aria-describedby',\n observable: this._formFieldStateService.describedBy$.pipe(\n map((describedBy) => ({ render: !!describedBy, value: describedBy ?? '' })),\n ),\n },\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 <div\n *ngIf=\"trackBackgroundStyles$ | async as trackBackgroundStyles\"\n [style.transform]=\"trackBackgroundStyles.transform\"\n class=\"et-slider-track-background\"\n ></div>\n <div\n *ngIf=\"trackFillStyles$ | async as trackFillStyles\"\n [style.transform]=\"trackFillStyles.transform\"\n [style.display]=\"trackFillStyles.display\"\n class=\"et-slider-track-fill\"\n ></div>\n</div>\n\n<div\n *ngIf=\"thumbContainerStyles$ | async as thumbContainerStyles\"\n [style.transform]=\"thumbContainerStyles.transform\"\n class=\"et-slider-thumb-container\"\n>\n <div class=\"et-slider-thumb\"></div>\n</div>\n","import { LabelComponent } from '../label';\nimport { SliderComponent, SliderFieldComponent } from './components';\n\nexport const SliderImports = [SliderComponent, SliderFieldComponent, LabelComponent] 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 {\n createDestroy,\n createReactiveBindings,\n DELAYABLE_TOKEN,\n ObserveResizeDirective,\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';\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 _bindings = createReactiveBindings(\n {\n attribute: 'class.et-masonry--initialized',\n observable: this._didInitialize$,\n },\n {\n attribute: 'class.et-masonry--hide-overflow',\n observable: this._hideOverflow$,\n },\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 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 state.gridRowElHeights[lowestColumnIndex].push(updatedDimensions.height);\n state.gridRowElHeights[lowestColumnIndex][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];\n let lowestColumnIndex = 0;\n\n for (let i = 0; i < columnHeights.length; i++) {\n const columnHeight = columnHeights[i][0];\n\n if (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];\n let highestColumnIndex = 0;\n\n for (let i = 0; i < columnHeights.length; i++) {\n const columnHeight = columnHeights[i][0];\n\n if (columnHeight >= highestColumnHeight) {\n highestColumnHeight = columnHeight;\n highestColumnIndex = i;\n }\n }\n\n return { highestColumnHeight, highestColumnIndex };\n };\n}\n","import { MasonryComponent } from './components';\nimport { MasonryItemComponent } from './partials';\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\nexport const BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH = 150;\nexport const BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE = 150;\n\nexport const BOTTOM_SHEET_DATA = new InjectionToken<unknown>('BottomSheetData');\n\nexport const BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken<BottomSheetConfig>('BottomSheetDefaultOptions');\nexport const BOTTOM_SHEET_CONFIG = new InjectionToken<BottomSheetConfig>('BottomSheetConfig');\nexport const BOTTOM_SHEET_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('BottomSheetScrollStrategy');\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\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\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, Inject, NgZone, Optional } from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN } from '@ethlete/core';\nimport { BOTTOM_SHEET_CONFIG } from '../../constants';\nimport { BottomSheetConfig } from '../../types';\n\n@Component({ 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 { BOTTOM_SHEET_DEFAULT_CONFIG } from '../constants';\nimport { BottomSheetConfig } from '../types';\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 { filter, merge, Observable, skipUntil, Subject, take } from 'rxjs';\nimport { BottomSheetContainerComponent } from '../components';\nimport { BottomSheetConfig, BottomSheetState } from '../types';\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 */\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\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 { defer, Observable, startWith, Subject } from 'rxjs';\nimport { BOTTOM_SHEET_CONFIG } from '../constants';\nimport { BottomSheetContainerBaseComponent } from '../partials';\nimport { BottomSheetConfig } from '../types';\nimport { BottomSheetRef, createBottomSheetConfig } from '../utils';\n\nlet uniqueId = 0;\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 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 { SwipeEnd, SwipeHandler } from '../types';\n\nlet nextUniqueId = 0;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SwipeHandlerService {\n private _handlerMap: Record<number, SwipeHandler> = {};\n\n startSwipe(event: TouchEvent) {\n const handlerId = nextUniqueId++;\n\n const originClientX = event.targetTouches[0].clientX;\n const originClientY = event.targetTouches[0].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) {\n const handler = this._getSwipeHandler(handlerId);\n const { originClientX, originClientY, isSwiping, isScrolling } = handler;\n\n const currentClientX = event.targetTouches[0].clientX;\n const currentClientY = event.targetTouches[0].clientY;\n\n const movementX = (originClientX - currentClientX) * -1;\n const movementY = (originClientY - currentClientY) * -1;\n\n const positiveMovementX = movementX < 0 ? movementX * -1 : movementX;\n const positiveMovementY = movementY < 0 ? movementY * -1 : 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 { movementX, movementY, timestamp, originClientX, originClientY, positiveMovementX, positiveMovementY } =\n this._getSwipeHandler(handlerId);\n\n const timestampStart = timestamp;\n const timestampEnd = Date.now();\n\n const swipeTime = timestampEnd - timestampStart;\n\n const pixelPerMillisecondX = positiveMovementX / swipeTime;\n const pixelPerSecondX = pixelPerMillisecondX * 1000;\n\n const pixelPerMillisecondY = positiveMovementY / swipeTime;\n const pixelPerSecondY = pixelPerMillisecondY * 1000;\n\n delete this._handlerMap[handlerId];\n\n const swipeEnd: SwipeEnd = {\n pixelPerSecondX,\n pixelPerSecondY,\n movementX,\n movementY,\n originClientX,\n originClientY,\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 throw new Error(`The swipe handler with id ${handlerId} was not found`);\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@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 { movementY } = this._swipeHandlerService.updateSwipe(handlerId, event);\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 { movementY, pixelPerSecondY } = this._swipeHandlerService.endSwipe(handlerId);\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';\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@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@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(() => this._onTouchEnd()),\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 this._swipeHandlerId = this._bottomSheetSwipeHandlerService.startSwipe(\n event,\n this._bottomSheetRef._containerInstance.elementRef.nativeElement,\n );\n }\n\n _onTouchMove(event: TouchEvent) {\n if (!this._swipeHandlerId) {\n return;\n }\n\n const didSwipe = this._bottomSheetSwipeHandlerService.updateSwipe(this._swipeHandlerId, event);\n\n if (!didSwipe) {\n this._swipeHandlerId = null;\n }\n }\n\n _onTouchEnd() {\n if (!this._swipeHandlerId) {\n return;\n }\n\n const shouldClose = this._bottomSheetSwipeHandlerService.endSwipe(this._swipeHandlerId);\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@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 if (this._bottomSheetRef) {\n Promise.resolve().then(() => {\n if (!this._bottomSheetRef) {\n return;\n }\n\n const container = this._bottomSheetRef._containerInstance;\n\n if (container && !container._ariaLabelledBy) {\n container._ariaLabelledBy = this.id;\n }\n });\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';\nimport { BottomSheetConfig } from '../../types';\n\n@Component({\n selector: 'et-bottom-sheet-container',\n styleUrls: ['./bottom-sheet-container.component.scss'],\n template: `<ng-template cdkPortalOutlet></ng-template>`,\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 { Dialog, DIALOG_SCROLL_STRATEGY_PROVIDER } from '@angular/cdk/dialog';\nimport { BottomSheetContainerComponent } from './components';\nimport { BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER } from './constants';\nimport { BottomSheetDragHandleComponent, BottomSheetTitleDirective } from './partials';\nimport { BottomSheetService } from './services';\n\nexport const BottomSheetImports = [\n BottomSheetContainerComponent,\n BottomSheetTitleDirective,\n BottomSheetDragHandleComponent,\n] as const;\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\nexport const DIALOG_DATA = new InjectionToken('DialogData');\nexport const DIALOG_DEFAULT_OPTIONS = new InjectionToken<DialogConfig>('DialogDefaultOptions');\nexport const DIALOG_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('DialogScrollStrategy');\nexport const DIALOG_CONFIG = new InjectionToken<DialogConfig>('DialogConfig');\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\nexport const DIALOG_SCROLL_STRATEGY_PROVIDER = {\n provide: DIALOG_SCROLL_STRATEGY,\n deps: [ViewportRuler, RouterStateService],\n useFactory: DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\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 { DIALOG_DEFAULT_CONFIG } from '../constants';\nimport { DialogConfig } from '../types';\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';\nimport { DialogConfig, DialogPosition, DialogState } from '../types';\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 */\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\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 { defer, Observable, startWith, Subject } from 'rxjs';\nimport { DIALOG_CONFIG } from '../constants';\nimport { DialogContainerBaseComponent } from '../partials';\nimport { DialogConfig } from '../types';\nimport { createDialogConfig, DialogRef } from '../utils';\n\nlet uniqueId = 0;\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';\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@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 OnInit,\n OnChanges,\n Input,\n HostBinding,\n ElementRef,\n SimpleChanges,\n HostListener,\n inject,\n} from '@angular/core';\nimport { DialogService } from '../../services';\nimport { DialogRef, getClosestDialog } from '../../utils';\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 { 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, Inject, NgZone, Optional } from '@angular/core';\nimport { ANIMATED_LIFECYCLE_TOKEN } from '@ethlete/core';\nimport { DIALOG_CONFIG } from '../../constants';\nimport { DialogConfig } from '../../types';\n\n@Component({ 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 { Directive, ElementRef, HostBinding, inject, Input, OnInit } from '@angular/core';\nimport { DialogService } from '../../services';\nimport { DialogRef, getClosestDialog } from '../../utils';\n\nlet dialogElementUid = 0;\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 if (this._dialogRef) {\n Promise.resolve().then(() => {\n if (!this._dialogRef) {\n return;\n }\n\n const container = this._dialogRef._containerInstance;\n\n if (container && !container._ariaLabelledBy) {\n container._ariaLabelledBy = this.id;\n }\n });\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';\nimport { DialogConfig } from '../../types';\n\n@Component({\n selector: 'et-dialog-container',\n styleUrls: ['./dialog-container.component.scss'],\n template: `<ng-template cdkPortalOutlet></ng-template>`,\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, DIALOG_SCROLL_STRATEGY_PROVIDER as CDK_DIALOG_SCROLL_STRATEGY_PROVIDER } from '@angular/cdk/dialog';\nimport { DialogContainerComponent } from './components';\nimport { DIALOG_SCROLL_STRATEGY_PROVIDER } from './constants';\nimport { DialogCloseDirective, DialogTitleDirective } from './partials';\nimport { DialogService } from './services';\n\nexport const DialogImports = [DialogContainerComponent, DialogCloseDirective, DialogTitleDirective] as const;\n\nexport const provideDialog = () => {\n return [DialogService, DIALOG_SCROLL_STRATEGY_PROVIDER, Dialog, CDK_DIALOG_SCROLL_STRATEGY_PROVIDER];\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 { 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@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@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@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@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","/* 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@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@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 _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\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@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 _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@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@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@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 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@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@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\nconst MENU_DIRECTIVES = [\n CdkMenuBar,\n CdkMenu,\n CdkMenuItem,\n CdkMenuItemRadio,\n CdkMenuItemCheckbox,\n CdkMenuTrigger,\n CdkMenuGroup,\n CdkContextMenuTrigger,\n CdkTargetMenuAim,\n];\n\n@NgModule({\n imports: [OverlayModule, ...MENU_DIRECTIVES],\n exports: MENU_DIRECTIVES,\n})\nexport class CdkMenuModule {}\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: 'auto',\n offset: [0, 8],\n arrowPadding: 4,\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 { Subscription, filter, fromEvent, takeUntil, tap } from 'rxjs';\nimport { ToggletipComponent } from '../../components';\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'] }],\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\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.arrowPadding = this._defaultConfig.arrowPadding;\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 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 { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n inject,\n InjectionToken,\n Injector,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AnimatedLifecycleDirective, ANIMATED_LIFECYCLE_TOKEN } from '@ethlete/core';\nimport { TOGGLETIP_CONFIG, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT } from '../../constants';\nimport { TOGGLETIP_DIRECTIVE } from '../../directives';\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: [NgIf, NgTemplateOutlet, AnimatedLifecycleDirective],\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 protected readonly injector = inject(Injector);\n private readonly _cdr = inject(ChangeDetectorRef);\n readonly _trigger = inject(TOGGLETIP_DIRECTIVE);\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","<div class=\"et-toggletip-container\" etAnimatedLifecycle>\n <ng-container *ngIf=\"toggletipText\">\n {{ toggletipText }}\n </ng-container>\n\n <ng-container *ngIf=\"toggletipTemplate\">\n <ng-container *ngTemplateOutlet=\"toggletipTemplate; injector: injector\" />\n </ng-container>\n\n <div class=\"toggletip-arrow\" data-popper-arrow></div>\n</div>\n","import { ToggletipDirective } from './directives';\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: 'auto',\n offset: [0, 8],\n arrowPadding: 4,\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 { Subscription, debounceTime, filter, fromEvent, tap } from 'rxjs';\nimport { TooltipComponent } from '../../components';\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'] }],\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\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 }\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 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 { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n inject,\n InjectionToken,\n Injector,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AnimatedLifecycleDirective, ANIMATED_LIFECYCLE_TOKEN } from '@ethlete/core';\nimport { TOOLTIP_CONFIG, TOOLTIP_TEMPLATE, TOOLTIP_TEXT } from '../../constants';\nimport { TOOLTIP_DIRECTIVE } from '../../directives';\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: [NgIf, NgTemplateOutlet, AnimatedLifecycleDirective],\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 protected readonly injector = inject(Injector);\n private readonly _cdr = inject(ChangeDetectorRef);\n readonly _trigger = inject(TOOLTIP_DIRECTIVE);\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","<div class=\"et-tooltip-container\" etAnimatedLifecycle>\n <ng-container *ngIf=\"tooltipText\">\n {{ tooltipText }}\n </ng-container>\n\n <ng-container *ngIf=\"tooltipTemplate\">\n <ng-container *ngTemplateOutlet=\"tooltipTemplate; injector: injector\" />\n </ng-container>\n\n <div class=\"tooltip-arrow\" data-popper-arrow></div>\n</div>\n","import { TooltipDirective } from './directives';\n\nexport const TooltipImports = [TooltipDirective] as const;\n","import { ComponentType } from '@angular/cdk/overlay';\nimport { Injectable, TemplateRef, inject } from '@angular/core';\nimport { ViewportService } from '@ethlete/core';\nimport { BottomSheetService, DialogService } from '../components';\nimport { DynamicOverlayConfig, DynamicOverlayRed } from '../types';\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 { 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 { inject, Injectable, OnDestroy } from '@angular/core';\nimport { Meta, 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 _metaService = inject(Meta);\n private _titleService = inject(Title);\n private _router = inject(Router);\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 this._metaService.removeTag('name=\"canonical\"');\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 this._metaService.updateTag({\n name: 'canonical',\n content: canonicalUrl,\n });\n }\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 } = value;\n\n const pages: PaginationItem[] = [];\n const activePage = clamp(value.currentPage, 1, 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: 1,\n current: false,\n ariaLabel: 'First page',\n disabled: activePage === 1,\n type: 'hotLink',\n explicitType: 'first',\n url: createUrl(1),\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 // add N pages before and after active page\n for (let i = activePage - pagesBeforeAfter; i <= activePage + pagesBeforeAfter; i++) {\n if (i > 0 && 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 { AsyncPipe, NgForOf, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\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';\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: [NgForOf, AsyncPipe, NgIf, 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 | null = null;\n\n protected pages$ = new BehaviorSubject<PaginationItem[] | null>(null);\n\n protected trackByPage: TrackByFunction<PaginationItem> = (_, item) => item.page;\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 this.pageChangeScrollAnchor.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","<nav *ngIf=\"pages$ | async as pages\" [attr.aria-label]=\"ariaLabel\" class=\"et-pagination-nav\">\n <ul class=\"et-pagination-list\">\n <li\n *ngFor=\"let page of pages; trackBy: trackByPage\"\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 <ng-container *ngIf=\"page.type === 'page'\">\n {{ page.page }}\n </ng-container>\n </a>\n </li>\n </ul>\n</nav>\n","import { PaginationComponent } from './components';\n\nexport const PaginationImports = [PaginationComponent] as const;\n","import { Directive, Input, booleanAttribute } from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { PictureSource } from './picture.component.types';\n\n@Directive({\n standalone: true,\n})\nexport class PictureDataDirective {\n @Input({ transform: booleanAttribute })\n hasPriority = false;\n\n @Input()\n imgClass: NgClassType = null;\n\n @Input()\n figureClass: NgClassType = null;\n\n @Input()\n figcaptionClass: NgClassType = null;\n\n @Input()\n pictureClass: NgClassType = null;\n\n @Input()\n defaultSrc: PictureSource | null = null;\n\n @Input()\n alt: string | null = null;\n\n @Input()\n figcaption: string | null = null;\n\n @Input()\n width: number | null = null;\n\n @Input()\n height: number | null = null;\n\n @Input()\n sizes: string | null = null;\n}\n","import { NgClass, NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, TrackByFunction, ViewEncapsulation } from '@angular/core';\nimport { PictureDataDirective } from './picture-data.directive';\nimport { PictureSource } from './picture.component.types';\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: [NgForOf, NgClass, NgIf],\n host: {\n class: 'et-picture',\n },\n hostDirectives: [\n {\n directive: PictureDataDirective,\n inputs: [\n 'imgClass',\n 'hasPriority',\n 'figureClass',\n 'pictureClass',\n 'figcaptionClass',\n 'defaultSrc',\n 'alt',\n 'figcaption',\n 'width',\n 'height',\n 'sizes',\n ],\n },\n ],\n})\nexport class PictureComponent {\n protected readonly pictureData = inject(PictureDataDirective);\n\n @Input()\n sources: PictureSource[] = [];\n\n protected trackBySrc: TrackByFunction<PictureSource> = (_, item) => item.srcset;\n}\n","<figure [ngClass]=\"pictureData.figureClass\" class=\"et-picture-figure\">\n <picture [ngClass]=\"pictureData.pictureClass\" class=\"et-picture-picture\">\n <source\n *ngFor=\"let source of sources; trackBy: trackBySrc\"\n [type]=\"source.type\"\n [attr.srcset]=\"source.srcset\"\n [attr.sizes]=\"pictureData.sizes\"\n />\n\n <img\n *ngIf=\"pictureData.defaultSrc\"\n [attr.loading]=\"pictureData.hasPriority ? 'eager' : 'lazy'\"\n [attr.fetchpriority]=\"pictureData.hasPriority ? 'high' : 'auto'\"\n [ngClass]=\"pictureData.imgClass\"\n [src]=\"pictureData.defaultSrc.srcset\"\n [attr.type]=\"pictureData.defaultSrc.type\"\n [attr.alt]=\"pictureData.alt\"\n [attr.width]=\"pictureData.width\"\n [attr.height]=\"pictureData.height\"\n [attr.sizes]=\"pictureData.sizes\"\n class=\"et-picture-img\"\n />\n </picture>\n\n <figcaption *ngIf=\"pictureData.figcaption\" [ngClass]=\"pictureData.figcaptionClass\" class=\"et-picture-figcaption\">\n {{ pictureData.figcaption }}\n </figcaption>\n</figure>\n","import { NgIf, 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, NgIf],\n hostDirectives: [],\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 { NgClass, NgIf } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n isDevMode,\n numberAttribute,\n} from '@angular/core';\nimport {\n CursorDragScrollDirective,\n IS_ACTIVE_ELEMENT,\n IS_ELEMENT,\n IsActiveElementDirective,\n IsElementDirective,\n LetDirective,\n NgClassType,\n ObserveScrollStateDirective,\n ScrollObserverScrollState,\n ScrollToElementOptions,\n TypedQueryList,\n createDestroy,\n equal,\n getElementVisibleStates,\n scrollToElement,\n} from '@ethlete/core';\nimport { BehaviorSubject, debounceTime, fromEvent, merge, of, startWith, takeUntil, tap } from 'rxjs';\nimport { ChevronIconComponent } from '../../../icons';\nimport { ScrollableIntersectionChange, ScrollableScrollMode } from '../../types';\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: [CursorDragScrollDirective, ObserveScrollStateDirective, NgClass, NgIf, LetDirective, ChevronIconComponent],\n host: {\n class: 'et-scrollable',\n },\n})\nexport class ScrollableComponent implements OnInit, AfterContentInit {\n private readonly _destroy$ = createDestroy();\n private readonly _renderer = inject(Renderer2);\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private readonly _isCursorDragging$ = new BehaviorSubject<boolean>(false);\n private readonly _latestVisibilityStates$ = new BehaviorSubject<ScrollableIntersectionChange[]>([]);\n\n @Input()\n @HostBinding('attr.item-size')\n itemSize: 'auto' | 'same' | 'full' = 'auto';\n\n @Input()\n @HostBinding('attr.direction')\n direction: 'horizontal' | 'vertical' = 'horizontal';\n\n @Input()\n scrollableRole?: string;\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 @HostBinding('attr.render-scrollbars')\n renderScrollbars = false;\n\n @Input({ transform: booleanAttribute })\n @HostBinding('attr.sticky-buttons')\n stickyButtons = false;\n\n @Input({ transform: booleanAttribute })\n cursorDragScroll = true;\n\n @Input({ transform: booleanAttribute })\n disableActiveElementScrolling = false;\n\n @Input()\n scrollMode: ScrollableScrollMode = 'container';\n\n @Input({ transform: booleanAttribute })\n snap = false;\n\n @Input({ transform: numberAttribute })\n scrollMargin = 0;\n\n @Output()\n readonly scrollStateChange = new EventEmitter<ScrollObserverScrollState>();\n\n @Output()\n readonly intersectionChange = new EventEmitter<ScrollableIntersectionChange[]>();\n\n @ViewChild('scrollable', { static: true })\n scrollable!: ElementRef<HTMLElement>;\n\n @ContentChildren(IS_ACTIVE_ELEMENT, { descendants: true })\n activeElements: TypedQueryList<IsActiveElementDirective> | null = null;\n\n @ContentChildren(IS_ELEMENT, { descendants: true })\n elements: TypedQueryList<IsElementDirective> | null = null;\n\n get highestVisibleIntersection() {\n const elements = this._latestVisibilityStates$.value;\n\n if (!elements.length) {\n return null;\n }\n\n return elements.reduce((prev, curr) => {\n if (!prev) {\n return curr;\n }\n\n return curr.intersectionRatio > prev.intersectionRatio ? curr : prev;\n });\n }\n\n get nextPartialIntersection() {\n const elements = this._latestVisibilityStates$.value;\n\n if (!elements.length) {\n return null;\n }\n\n const highestVisibleIntersection = this.highestVisibleIntersection;\n\n if (!highestVisibleIntersection) {\n return null;\n }\n\n const nextIndex = elements.slice(highestVisibleIntersection.index).findIndex((e) => !e.isIntersecting);\n\n if (nextIndex === -1) {\n return null;\n }\n\n const nextElement = elements[highestVisibleIntersection.index + nextIndex];\n\n return nextElement || null;\n }\n\n get previousPartialIntersection() {\n const elements = this._latestVisibilityStates$.value;\n\n if (!elements.length) {\n return null;\n }\n\n const highestVisibleIntersection = this.highestVisibleIntersection;\n\n if (!highestVisibleIntersection) {\n return null;\n }\n\n const previousIndex = elements\n .slice(0, highestVisibleIntersection.index)\n .reverse()\n .findIndex((e) => !e.isIntersecting);\n\n if (previousIndex === -1) {\n return null;\n }\n\n const previousElement = elements[highestVisibleIntersection.index - previousIndex - 1];\n\n return previousElement || null;\n }\n\n protected readonly scrollState$ = new BehaviorSubject<ScrollObserverScrollState | null>(null);\n\n ngOnInit(): void {\n this.scrollState$\n .pipe(\n tap((state) => {\n if (!state) {\n return;\n }\n\n const element = this._elementRef.nativeElement;\n\n this._renderer.setAttribute(element, 'at-start', state.isAtStart.toString());\n this._renderer.setAttribute(element, 'at-end', state.isAtEnd.toString());\n this._renderer.setAttribute(element, 'can-scroll', state.canScroll.toString());\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n ngAfterContentInit(): void {\n if (!this.activeElements || !this.elements) {\n return;\n }\n\n this.activeElements.changes\n .pipe(\n startWith(this.activeElements),\n tap((activeElements) => {\n if (this.disableActiveElementScrolling) {\n return;\n }\n\n const firstActive = activeElements\n .filter((a): a is IsActiveElementDirective => !!a)\n .find((a) => a.isActiveElement);\n\n if (!firstActive) {\n return;\n }\n\n scrollToElement({\n behavior: 'auto',\n container: this.scrollable.nativeElement,\n element: firstActive.elementRef.nativeElement,\n scrollInlineMargin: this.direction === 'horizontal' ? this.scrollMargin : 0,\n scrollBlockMargin: this.direction === 'horizontal' ? 0 : this.scrollMargin,\n });\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n this._setupScrollListening();\n }\n\n scrollOneContainerSize(direction: 'start' | 'end') {\n const scrollElement = this.scrollable.nativeElement;\n const parent = this._elementRef.nativeElement;\n\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 scrollOneItemSize(direction: 'start' | 'end') {\n const elements = this._latestVisibilityStates$.value;\n\n if (!elements.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 el = direction === 'start' ? this.previousPartialIntersection : this.nextPartialIntersection;\n\n if (!el) {\n return;\n }\n\n this.scrollToElement({\n element: el?.element,\n direction: this.direction === 'horizontal' ? 'inline' : 'block',\n origin: direction,\n ...(this.direction === 'horizontal'\n ? { scrollInlineMargin: this.scrollMargin }\n : { scrollBlockMargin: this.scrollMargin }),\n });\n }\n\n scrollToElement(options: Omit<ScrollToElementOptions, 'container'>) {\n const scrollElement = this.scrollable.nativeElement;\n\n scrollToElement({\n container: scrollElement,\n ...(this.direction === 'horizontal'\n ? { scrollInlineMargin: this.scrollMargin }\n : { scrollBlockMargin: this.scrollMargin }),\n ...options,\n });\n }\n\n scrollToElementByIndex(options: Omit<ScrollToElementOptions, 'container'> & { index: number }) {\n const elements = this.elements?.toArray() ?? [];\n\n if (!elements.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 scrollElement = this.scrollable.nativeElement;\n const element = elements[options.index]?.elementRef.nativeElement;\n\n scrollToElement({\n container: scrollElement,\n element,\n ...(this.direction === 'horizontal'\n ? { scrollInlineMargin: this.scrollMargin }\n : { scrollBlockMargin: this.scrollMargin }),\n ...options,\n });\n }\n\n protected setIsCursorDragging(isDragging: boolean) {\n this._isCursorDragging$.next(isDragging);\n }\n\n protected _scrollStateChanged(scrollState: ScrollObserverScrollState) {\n if (equal(this.scrollState$.value, scrollState)) {\n return;\n }\n\n this.scrollState$.next(scrollState);\n this.scrollStateChange.emit(scrollState);\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 scrollToStartEnd() {\n if (this.scrollMode === 'container') {\n this.scrollOneContainerSize('end');\n } else {\n this.scrollOneItemSize('end');\n }\n }\n\n private _setupScrollListening() {\n const scrollElement = this.scrollable.nativeElement;\n let isSnapping = false;\n let snapTimeout = 0;\n\n merge(fromEvent<WheelEvent>(scrollElement, 'wheel'), fromEvent<TouchEvent>(scrollElement, 'touchstart'))\n .pipe(\n takeUntil(this._destroy$),\n tap(() => {\n isSnapping = false;\n }),\n )\n .subscribe();\n\n merge(\n fromEvent(scrollElement, 'scroll'),\n this._isCursorDragging$,\n this.elements?.changes.pipe(startWith(this.elements)) ?? of(null),\n )\n .pipe(\n debounceTime(300),\n takeUntil(this._destroy$),\n tap(() => {\n const elements =\n this.elements\n ?.toArray()\n .map((e) => e?.elementRef.nativeElement)\n .filter((e): e is HTMLElement => !!e) ?? [];\n\n if (!elements.length) {\n this._latestVisibilityStates$.next([]);\n\n return;\n }\n\n const states = getElementVisibleStates({\n elements,\n container: scrollElement,\n });\n\n const prop = this.direction === 'horizontal' ? 'inlineIntersection' : 'blockIntersection';\n const stateClass = `et-element--is-intersecting`;\n\n for (const state of states) {\n if (state[prop] === 100) {\n state.element.classList.add(stateClass);\n } else {\n state.element.classList.remove(stateClass);\n }\n }\n\n const intersectionChanges = states.map((s, i) => {\n const state: ScrollableIntersectionChange = {\n element: s.element,\n intersectionRatio: s[prop] / 100,\n isIntersecting: s[prop] === 100,\n index: i,\n };\n\n return state;\n });\n\n this.intersectionChange.emit(intersectionChanges);\n\n this._latestVisibilityStates$.next(intersectionChanges);\n\n if (isSnapping || this._isCursorDragging$.value || !this.snap) return;\n\n const prev = this.previousPartialIntersection;\n const next = this.nextPartialIntersection;\n const skipSnap =\n !prev ||\n !next ||\n prev.intersectionRatio === 0 ||\n next.intersectionRatio === 0 ||\n prev.intersectionRatio === next.intersectionRatio;\n\n if (skipSnap) return;\n\n const highestIntersecting = prev.intersectionRatio > next.intersectionRatio ? prev : next;\n const fullIntersectionIndex = this.highestVisibleIntersection?.index;\n\n if (fullIntersectionIndex === undefined) return;\n\n const highestIntersectingIndex = highestIntersecting.index;\n const origin = highestIntersectingIndex > fullIntersectionIndex ? 'end' : 'start';\n\n scrollToElement({\n container: scrollElement,\n element: highestIntersecting.element,\n direction: this.direction === 'horizontal' ? 'inline' : 'block',\n origin,\n scrollBlockMargin: this.direction === 'horizontal' ? 0 : this.scrollMargin,\n scrollInlineMargin: this.direction === 'horizontal' ? this.scrollMargin : 0,\n });\n\n isSnapping = true;\n\n window.clearTimeout(snapTimeout);\n\n snapTimeout = window.setTimeout(() => {\n isSnapping = false;\n }, 1000);\n }),\n )\n .subscribe();\n }\n}\n","<div\n #scrollable\n [attr.role]=\"scrollableRole ?? undefined\"\n [etCursorDragScroll]=\"cursorDragScroll\"\n [allowedDirection]=\"direction\"\n (etObserveScrollState)=\"_scrollStateChanged($event)\"\n (cursorDragStart)=\"setIsCursorDragging(true)\"\n (cursorDragEnd)=\"setIsCursorDragging(false)\"\n class=\"et-scrollable-container-outer\"\n>\n <div class=\"et-scroll-observer-first-element\"></div>\n <div [ngClass]=\"scrollableClass\" class=\"et-scrollable-container\">\n <ng-content />\n </div>\n <div class=\"et-scroll-observer-last-element\"></div>\n</div>\n\n<div *ngIf=\"renderMasks\" 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<div *ngIf=\"renderButtons\" class=\"et-scrollable-buttons\">\n <button\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 <button\n (click)=\"scrollToStartEnd()\"\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</div>\n","import {\n IsActiveElementDirective,\n IsElementDirective,\n ScrollObserverFirstElementDirective,\n ScrollObserverIgnoreTargetDirective,\n ScrollObserverLastElementDirective,\n} from '@ethlete/core';\nimport { ScrollableComponent } from './components';\n\nexport const ScrollableImports = [\n ScrollableComponent,\n IsElementDirective,\n IsActiveElementDirective,\n ScrollObserverFirstElementDirective,\n ScrollObserverLastElementDirective,\n ScrollObserverIgnoreTargetDirective,\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';\nimport { SkeletonItemComponent } from './partials';\n\nexport const SkeletonImports = [SkeletonComponent, SkeletonItemComponent] as const;\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 { 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 { 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 { 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 { Directionality } from '@angular/cdk/bidi';\nimport { _DisposeViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY, _ViewRepeater } from '@angular/cdk/collections';\nimport { Platform } from '@angular/cdk/platform';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n CDK_TABLE,\n CdkTable,\n CdkTableModule,\n RenderRow,\n RowContext,\n STICKY_POSITIONING_LISTENER,\n StickyPositioningListener,\n _COALESCED_STYLE_SCHEDULER,\n _CoalescedStyleScheduler,\n} from '@angular/cdk/table';\nimport { DOCUMENT } from '@angular/common';\nimport {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n IterableDiffers,\n NgZone,\n OnInit,\n Optional,\n SkipSelf,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { TableBusyDirective, TableBusyOutletDirective } from '../../partials';\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 <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 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: [CdkTableModule, TableBusyOutletDirective],\n})\nexport class TableComponent<T> extends CdkTable<T> implements OnInit {\n private _cdr = inject(ChangeDetectorRef);\n\n protected override stickyCssClass = 'et-table-sticky';\n protected override needsPositionStickyOnElement = false;\n\n @ViewChild(TableBusyOutletDirective, { static: true })\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 constructor(\n _differs: IterableDiffers,\n _changeDetectorRef: ChangeDetectorRef,\n _elementRef: ElementRef,\n @Attribute('role') role: string,\n @Optional() _dir: Directionality,\n @Inject(DOCUMENT) _document: Document,\n _platform: Platform,\n @Inject(_VIEW_REPEATER_STRATEGY)\n _viewRepeater: _ViewRepeater<T, RenderRow<T>, RowContext<T>>,\n @Inject(_COALESCED_STYLE_SCHEDULER)\n _coalescedStyleScheduler: _CoalescedStyleScheduler,\n _viewportRuler: ViewportRuler,\n @Optional()\n @SkipSelf()\n @Inject(STICKY_POSITIONING_LISTENER)\n _stickyPositioningListener: StickyPositioningListener,\n _ngZone: NgZone,\n ) {\n super(\n _differs,\n _changeDetectorRef,\n _elementRef,\n role,\n _dir,\n _document,\n _platform,\n _viewRepeater,\n _coalescedStyleScheduler,\n _viewportRuler,\n _stickyPositioningListener,\n _ngZone,\n );\n }\n\n override ngOnInit() {\n super.ngOnInit();\n\n if (this._isNativeHtmlTable) {\n const tbody = this._elementRef.nativeElement.querySelector('tbody');\n tbody.classList.add('et-data-table__content');\n }\n }\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 { TableComponent } from './components';\nimport {\n CellDefDirective,\n CellDirective,\n ColumnDefDirective,\n FooterCellDefDirective,\n FooterCellDirective,\n FooterRowComponent,\n FooterRowDefDirective,\n HeaderCellDefDirective,\n HeaderCellDirective,\n HeaderRowComponent,\n HeaderRowDefDirective,\n NoDataRowDirective,\n RecycleRowsDirective,\n RowComponent,\n RowDefDirective,\n TableBusyDirective,\n TextColumnComponent,\n} from './partials';\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 { BehaviorSubject, combineLatest, merge, Observable, of, Subject, Subscription, map } from 'rxjs';\nimport { DataSource } from '@angular/cdk/collections';\nimport { SortDirective, Sort } from '../../sort';\nimport { _isNumberValue } from '@angular/cdk/coercion';\nimport { TableDataSourcePageEvent, TableDataSourcePaginator } from '../types';\nimport { MAX_SAFE_INTEGER } from '../constants';\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 {\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];\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 { NgIf } from '@angular/common';\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';\nimport { SORT_HEADER_COLUMN_DEF } from '../../../table';\nimport { SORT_DEFAULT_OPTIONS, SortDirective, SortHeaderArrowPosition, Sortable } from '../../partials';\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: [NgIf, 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 <div *ngIf=\"_renderArrow\" class=\"et-sort-header-arrow {{ _getArrowDirectionState }} {{ _getArrowViewState }}\">\n <et-chevron-icon />\n </div>\n</div>\n","import { SortHeaderComponent } from './components';\nimport { SortDirective } from './partials';\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 { 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 { 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 { 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 {\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';\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 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\n if (!selectedLabel) {\n return;\n }\n\n const viewLength = this._scrollable.scrollable.nativeElement.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 = this._scrollable.scrollable.nativeElement.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 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 { maxScrollDistance, distance } = this._scrollHeader(direction);\n\n if (distance === 0 || distance >= 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';\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 { 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 { 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';\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 { 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 { A11yModule, FocusOrigin } from '@angular/cdk/a11y';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgClass, NgForOf, NgIf } 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 {\n InlineTabBodyComponent,\n InlineTabComponent,\n InlineTabHeaderComponent,\n InlineTabLabelWrapperDirective,\n TAB_GROUP,\n} from '../../partials';\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 NgForOf,\n NgIf,\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 });\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) {\n this.selectedIndex = tabHeader.focusIndex = index;\n }\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)=\"selectedIndex = $event\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events -->\n <div\n *ngFor=\"let tab of _tabs; let i = index; trackBy: trackByTabFn\"\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 <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\" />\n </ng-template>\n\n <ng-template #tabTextLabel>{{ tab.textLabel }}</ng-template>\n </span>\n </div>\n</et-inline-tab-header>\n\n<div #tabBodyWrapper>\n <et-inline-tab-body\n *ngFor=\"let tab of _tabs; let i = index; trackBy: trackByTabFn\"\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</div>\n","import { InlineTabsComponent, NavTabsComponent } from './components';\nimport {\n InlineTabBodyComponent,\n InlineTabBodyHostDirective,\n InlineTabComponent,\n InlineTabContentDirective,\n InlineTabHeaderComponent,\n InlineTabLabelDirective,\n InlineTabLabelWrapperDirective,\n NavTabLinkComponent,\n NavTabsOutletComponent,\n} from './partials';\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BracketMatchDirective","i1.BracketRoundDirective","i1.QueryButtonDirective","i2.ButtonDirective","nextUniqueId","i1.StaticFormFieldDirective","i2.WriteableInputDirective","i3.DynamicFormFieldDirective","i4.CheckboxFieldDirective","i1.EmailInputDirective","i2.InputDirective","i1.NumberInputDirective","i1.PasswordInputDirective","i1.SearchInputDirective","i1.TextInputDirective","i2.RadioFieldDirective","i1.StaticFormGroupDirective","i3.DynamicFormGroupDirective","i4.RadioGroupDirective","i1.SegmentedButtonDirective","i2.SegmentedButtonFieldDirective","i4.SegmentedButtonGroupDirective","i1.SelectFieldDirective","i2.StaticFormFieldDirective","i3.WriteableInputDirective","i4.DynamicFormFieldDirective","i1","TAB","i1.InputDirective","i2","i1.NativeSelectInputDirective","uniqueId","i1.SelectBodyDirective","i2.SelectDirective","i1.SlideToggleDirective","CdkDialog","CdkDialogConfig","i3","i4","DIALOG_SCROLL_STRATEGY_PROVIDER","CDK_DIALOG_SCROLL_STRATEGY_PROVIDER","nextId","startWith","debounceTime","distinctUntilChanged","takeUntil","skip","filter","switchMap","ViewportRuler","observableOf","take","i1.ActiveTabUnderlineDirective"],"mappings":"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"}
|