@tedi-design-system/angular 3.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -0
- package/community/components/cards/accordion/accordion/accordion.component.d.ts +22 -0
- package/community/components/cards/accordion/accordion/accordion.component.d.ts.map +1 -0
- package/community/components/cards/accordion/accordion-icon/accordion-icon.component.d.ts +7 -0
- package/community/components/cards/accordion/accordion-icon/accordion-icon.component.d.ts.map +1 -0
- package/community/components/cards/accordion/accordion-item/accordion-item.component.d.ts +20 -0
- package/community/components/cards/accordion/accordion-item/accordion-item.component.d.ts.map +1 -0
- package/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.d.ts +12 -0
- package/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.d.ts.map +1 -0
- package/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.d.ts +42 -0
- package/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.d.ts.map +1 -0
- package/community/components/cards/accordion/index.d.ts +6 -0
- package/community/components/cards/accordion/index.d.ts.map +1 -0
- package/community/components/cards/card/card-colors.directive.d.ts +13 -0
- package/community/components/cards/card/card-colors.directive.d.ts.map +1 -0
- package/community/components/cards/card/card-content/card-content.component.d.ts +25 -0
- package/community/components/cards/card/card-content/card-content.component.d.ts.map +1 -0
- package/community/components/cards/card/card-header/card-header.component.d.ts +14 -0
- package/community/components/cards/card/card-header/card-header.component.d.ts.map +1 -0
- package/community/components/cards/card/card-padding.directive.d.ts +21 -0
- package/community/components/cards/card/card-padding.directive.d.ts.map +1 -0
- package/community/components/cards/card/card-row/card-row.component.d.ts +11 -0
- package/community/components/cards/card/card-row/card-row.component.d.ts.map +1 -0
- package/community/components/cards/card/card.component.d.ts +30 -0
- package/community/components/cards/card/card.component.d.ts.map +1 -0
- package/community/components/cards/card/index.d.ts +7 -0
- package/community/components/cards/card/index.d.ts.map +1 -0
- package/community/components/cards/index.d.ts +3 -0
- package/community/components/cards/index.d.ts.map +1 -0
- package/community/components/form/checkbox/checkbox/checkbox.component.d.ts +38 -0
- package/community/components/form/checkbox/checkbox/checkbox.component.d.ts.map +1 -0
- package/community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.d.ts +22 -0
- package/community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.d.ts.map +1 -0
- package/community/components/form/checkbox/checkbox-group/checkbox-group.component.d.ts +23 -0
- package/community/components/form/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -0
- package/community/components/form/checkbox/index.d.ts +4 -0
- package/community/components/form/checkbox/index.d.ts.map +1 -0
- package/community/components/form/choicegroup/choicegroup.directive.d.ts +11 -0
- package/community/components/form/choicegroup/choicegroup.directive.d.ts.map +1 -0
- package/community/components/form/file-dropzone/constants.d.ts +13 -0
- package/community/components/form/file-dropzone/constants.d.ts.map +1 -0
- package/community/components/form/file-dropzone/file-dropzone.component.d.ts +133 -0
- package/community/components/form/file-dropzone/file-dropzone.component.d.ts.map +1 -0
- package/community/components/form/file-dropzone/file.service.d.ts +25 -0
- package/community/components/form/file-dropzone/file.service.d.ts.map +1 -0
- package/community/components/form/file-dropzone/index.d.ts +2 -0
- package/community/components/form/file-dropzone/index.d.ts.map +1 -0
- package/community/components/form/file-dropzone/types.d.ts +23 -0
- package/community/components/form/file-dropzone/types.d.ts.map +1 -0
- package/community/components/form/file-dropzone/utils.d.ts +7 -0
- package/community/components/form/file-dropzone/utils.d.ts.map +1 -0
- package/community/components/form/form-field/form-field.component.d.ts +6 -0
- package/community/components/form/form-field/form-field.component.d.ts.map +1 -0
- package/community/components/form/index.d.ts +11 -0
- package/community/components/form/index.d.ts.map +1 -0
- package/community/components/form/input/input.component.d.ts +19 -0
- package/community/components/form/input/input.component.d.ts.map +1 -0
- package/community/components/form/input-group/input-group.component.d.ts +38 -0
- package/community/components/form/input-group/input-group.component.d.ts.map +1 -0
- package/community/components/form/radio/index.d.ts +4 -0
- package/community/components/form/radio/index.d.ts.map +1 -0
- package/community/components/form/radio/radio/radio.component.d.ts +27 -0
- package/community/components/form/radio/radio/radio.component.d.ts.map +1 -0
- package/community/components/form/radio/radio-card-group/radio-card-group.component.d.ts +9 -0
- package/community/components/form/radio/radio-card-group/radio-card-group.component.d.ts.map +1 -0
- package/community/components/form/radio/radio-group/radio-group.component.d.ts +37 -0
- package/community/components/form/radio/radio-group/radio-group.component.d.ts.map +1 -0
- package/community/components/form/search/search.component.d.ts +115 -0
- package/community/components/form/search/search.component.d.ts.map +1 -0
- package/community/components/form/select/index.d.ts +4 -0
- package/community/components/form/select/index.d.ts.map +1 -0
- package/community/components/form/select/multiselect.component.d.ts +108 -0
- package/community/components/form/select/multiselect.component.d.ts.map +1 -0
- package/community/components/form/select/select-option.component.d.ts +26 -0
- package/community/components/form/select/select-option.component.d.ts.map +1 -0
- package/community/components/form/select/select.component.d.ts +77 -0
- package/community/components/form/select/select.component.d.ts.map +1 -0
- package/community/components/form/textarea/textarea.component.d.ts +17 -0
- package/community/components/form/textarea/textarea.component.d.ts.map +1 -0
- package/community/components/navigation/breadcrumbs/breadcrumbs.component.d.ts +48 -0
- package/community/components/navigation/breadcrumbs/breadcrumbs.component.d.ts.map +1 -0
- package/community/components/navigation/index.d.ts +4 -0
- package/community/components/navigation/index.d.ts.map +1 -0
- package/community/components/navigation/pagination/pagination-page/pagination-page.component.d.ts +10 -0
- package/community/components/navigation/pagination/pagination-page/pagination-page.component.d.ts.map +1 -0
- package/community/components/navigation/pagination/pagination.component.d.ts +20 -0
- package/community/components/navigation/pagination/pagination.component.d.ts.map +1 -0
- package/community/components/navigation/pagination/pagination.utils.d.ts +2 -0
- package/community/components/navigation/pagination/pagination.utils.d.ts.map +1 -0
- package/community/components/navigation/tabs/index.d.ts +4 -0
- package/community/components/navigation/tabs/index.d.ts.map +1 -0
- package/community/components/navigation/tabs/tab/tab.component.d.ts +21 -0
- package/community/components/navigation/tabs/tab/tab.component.d.ts.map +1 -0
- package/community/components/navigation/tabs/tab-content/tab-content.component.d.ts +9 -0
- package/community/components/navigation/tabs/tab-content/tab-content.component.d.ts.map +1 -0
- package/community/components/navigation/tabs/tabs.component.d.ts +19 -0
- package/community/components/navigation/tabs/tabs.component.d.ts.map +1 -0
- package/community/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.d.ts +20 -0
- package/community/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.d.ts.map +1 -0
- package/community/components/overlay/dropdown/dropdown.component.d.ts +20 -0
- package/community/components/overlay/dropdown/dropdown.component.d.ts.map +1 -0
- package/community/components/overlay/dropdown-item/dropdown-item.component.d.ts +35 -0
- package/community/components/overlay/dropdown-item/dropdown-item.component.d.ts.map +1 -0
- package/community/components/overlay/index.d.ts +5 -0
- package/community/components/overlay/index.d.ts.map +1 -0
- package/community/components/overlay/modal/footer/modal-footer.component.d.ts +23 -0
- package/community/components/overlay/modal/footer/modal-footer.component.d.ts.map +1 -0
- package/community/components/overlay/modal/header/modal-header.component.d.ts +15 -0
- package/community/components/overlay/modal/header/modal-header.component.d.ts.map +1 -0
- package/community/components/overlay/modal/index.d.ts +4 -0
- package/community/components/overlay/modal/index.d.ts.map +1 -0
- package/community/components/overlay/modal/modal.component.d.ts +23 -0
- package/community/components/overlay/modal/modal.component.d.ts.map +1 -0
- package/community/components/table/index.d.ts +2 -0
- package/community/components/table/index.d.ts.map +1 -0
- package/community/components/table/table-styles/table-styles.component.d.ts +11 -0
- package/community/components/table/table-styles/table-styles.component.d.ts.map +1 -0
- package/community/components/tags/index.d.ts +3 -0
- package/community/components/tags/index.d.ts.map +1 -0
- package/community/components/tags/status-badge/status-badge.component.d.ts +54 -0
- package/community/components/tags/status-badge/status-badge.component.d.ts.map +1 -0
- package/community/components/tags/tag/tag.component.d.ts +32 -0
- package/community/components/tags/tag/tag.component.d.ts.map +1 -0
- package/community/index.d.ts +7 -0
- package/community/index.d.ts.map +1 -0
- package/community/tedi-design-system-angular-community.d.ts.map +1 -0
- package/fesm2022/tedi-design-system-angular-community.mjs +2906 -0
- package/fesm2022/tedi-design-system-angular-community.mjs.map +1 -0
- package/fesm2022/tedi-design-system-angular-tedi.mjs +3135 -0
- package/fesm2022/tedi-design-system-angular-tedi.mjs.map +1 -0
- package/fesm2022/tedi-design-system-angular.mjs +6 -0
- package/fesm2022/tedi-design-system-angular.mjs.map +1 -0
- package/fonts/README.md +34 -0
- package/fonts/material-symbols-outlined.woff2 +0 -0
- package/fonts/material-symbols-rounded.woff2 +0 -0
- package/fonts/material-symbols-sharp.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-300-italic.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-300.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-400-italic.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-400.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-700-italic.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-700.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-ext-300-italic.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-ext-300.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-ext-400-italic.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-ext-400.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-ext-700-italic.woff2 +0 -0
- package/fonts/roboto-v30-cyrillic-ext-700.woff2 +0 -0
- package/fonts/roboto-v30-latin-300-italic.woff2 +0 -0
- package/fonts/roboto-v30-latin-300.woff2 +0 -0
- package/fonts/roboto-v30-latin-400-italic.woff2 +0 -0
- package/fonts/roboto-v30-latin-400.woff2 +0 -0
- package/fonts/roboto-v30-latin-700-italic.woff2 +0 -0
- package/fonts/roboto-v30-latin-700.woff2 +0 -0
- package/fonts/roboto-v30-latin-ext-300-italic.woff2 +0 -0
- package/fonts/roboto-v30-latin-ext-300.woff2 +0 -0
- package/fonts/roboto-v30-latin-ext-400-italic.woff2 +0 -0
- package/fonts/roboto-v30-latin-ext-400.woff2 +0 -0
- package/fonts/roboto-v30-latin-ext-700-italic.woff2 +0 -0
- package/fonts/roboto-v30-latin-ext-700.woff2 +0 -0
- package/index.css +1 -0
- package/index.d.ts +6 -0
- package/package.json +76 -0
- package/public-api.d.ts +3 -0
- package/public-api.d.ts.map +1 -0
- package/tedi/components/base/icon/icon.component.d.ts +47 -0
- package/tedi/components/base/icon/icon.component.d.ts.map +1 -0
- package/tedi/components/base/index.d.ts +3 -0
- package/tedi/components/base/index.d.ts.map +1 -0
- package/tedi/components/base/text/text.component.d.ts +20 -0
- package/tedi/components/base/text/text.component.d.ts.map +1 -0
- package/tedi/components/buttons/button/button.component.d.ts +25 -0
- package/tedi/components/buttons/button/button.component.d.ts.map +1 -0
- package/tedi/components/buttons/closing-button/closing-button.component.d.ts +24 -0
- package/tedi/components/buttons/closing-button/closing-button.component.d.ts.map +1 -0
- package/tedi/components/buttons/collapse/collapse.component.d.ts +37 -0
- package/tedi/components/buttons/collapse/collapse.component.d.ts.map +1 -0
- package/tedi/components/buttons/index.d.ts +5 -0
- package/tedi/components/buttons/index.d.ts.map +1 -0
- package/tedi/components/buttons/info-button/info-button.component.d.ts +6 -0
- package/tedi/components/buttons/info-button/info-button.component.d.ts.map +1 -0
- package/tedi/components/content/index.d.ts +3 -0
- package/tedi/components/content/index.d.ts.map +1 -0
- package/tedi/components/content/list/list.component.d.ts +18 -0
- package/tedi/components/content/list/list.component.d.ts.map +1 -0
- package/tedi/components/content/text-group/index.d.ts +4 -0
- package/tedi/components/content/text-group/index.d.ts.map +1 -0
- package/tedi/components/content/text-group/text-group-label.component.d.ts +6 -0
- package/tedi/components/content/text-group/text-group-label.component.d.ts.map +1 -0
- package/tedi/components/content/text-group/text-group-value.component.d.ts +6 -0
- package/tedi/components/content/text-group/text-group-value.component.d.ts.map +1 -0
- package/tedi/components/content/text-group/text-group.component.d.ts +30 -0
- package/tedi/components/content/text-group/text-group.component.d.ts.map +1 -0
- package/tedi/components/form/feedback-text/feedback-text.component.d.ts +25 -0
- package/tedi/components/form/feedback-text/feedback-text.component.d.ts.map +1 -0
- package/tedi/components/form/index.d.ts +5 -0
- package/tedi/components/form/index.d.ts.map +1 -0
- package/tedi/components/form/label/label.component.d.ts +18 -0
- package/tedi/components/form/label/label.component.d.ts.map +1 -0
- package/tedi/components/form/number-field/number-field.component.d.ts +86 -0
- package/tedi/components/form/number-field/number-field.component.d.ts.map +1 -0
- package/tedi/components/form/toggle/toggle.component.d.ts +61 -0
- package/tedi/components/form/toggle/toggle.component.d.ts.map +1 -0
- package/tedi/components/helpers/grid/col/col.component.d.ts +37 -0
- package/tedi/components/helpers/grid/col/col.component.d.ts.map +1 -0
- package/tedi/components/helpers/grid/index.d.ts +3 -0
- package/tedi/components/helpers/grid/index.d.ts.map +1 -0
- package/tedi/components/helpers/grid/row/row.component.d.ts +60 -0
- package/tedi/components/helpers/grid/row/row.component.d.ts.map +1 -0
- package/tedi/components/helpers/index.d.ts +4 -0
- package/tedi/components/helpers/index.d.ts.map +1 -0
- package/tedi/components/helpers/separator/separator.component.d.ts +57 -0
- package/tedi/components/helpers/separator/separator.component.d.ts.map +1 -0
- package/tedi/components/helpers/timeline/index.d.ts +5 -0
- package/tedi/components/helpers/timeline/index.d.ts.map +1 -0
- package/tedi/components/helpers/timeline/timeline-description/timeline-description.component.d.ts +6 -0
- package/tedi/components/helpers/timeline/timeline-description/timeline-description.component.d.ts.map +1 -0
- package/tedi/components/helpers/timeline/timeline-item/timeline-item.component.d.ts +19 -0
- package/tedi/components/helpers/timeline/timeline-item/timeline-item.component.d.ts.map +1 -0
- package/tedi/components/helpers/timeline/timeline-title/timeline-title.component.d.ts +6 -0
- package/tedi/components/helpers/timeline/timeline-title/timeline-title.component.d.ts.map +1 -0
- package/tedi/components/helpers/timeline/timeline.component.d.ts +12 -0
- package/tedi/components/helpers/timeline/timeline.component.d.ts.map +1 -0
- package/tedi/components/index.d.ts +11 -0
- package/tedi/components/index.d.ts.map +1 -0
- package/tedi/components/layout/footer/footer-body/footer-body.component.d.ts +9 -0
- package/tedi/components/layout/footer/footer-body/footer-body.component.d.ts.map +1 -0
- package/tedi/components/layout/footer/footer-bottom/footer-bottom.component.d.ts +19 -0
- package/tedi/components/layout/footer/footer-bottom/footer-bottom.component.d.ts.map +1 -0
- package/tedi/components/layout/footer/footer-section/footer-section.component.d.ts +26 -0
- package/tedi/components/layout/footer/footer-section/footer-section.component.d.ts.map +1 -0
- package/tedi/components/layout/footer/footer-side/footer-side.component.d.ts +21 -0
- package/tedi/components/layout/footer/footer-side/footer-side.component.d.ts.map +1 -0
- package/tedi/components/layout/footer/footer.component.d.ts +9 -0
- package/tedi/components/layout/footer/footer.component.d.ts.map +1 -0
- package/tedi/components/layout/footer/index.d.ts +6 -0
- package/tedi/components/layout/footer/index.d.ts.map +1 -0
- package/tedi/components/layout/header/header-actions/header-actions.component.d.ts +6 -0
- package/tedi/components/layout/header/header-actions/header-actions.component.d.ts.map +1 -0
- package/tedi/components/layout/header/header-content/header-content.component.d.ts +6 -0
- package/tedi/components/layout/header/header-content/header-content.component.d.ts.map +1 -0
- package/tedi/components/layout/header/header-language/header-language.component.d.ts +25 -0
- package/tedi/components/layout/header/header-language/header-language.component.d.ts.map +1 -0
- package/tedi/components/layout/header/header-login/header-login.component.d.ts +14 -0
- package/tedi/components/layout/header/header-login/header-login.component.d.ts.map +1 -0
- package/tedi/components/layout/header/header-logout/header-logout.component.d.ts +10 -0
- package/tedi/components/layout/header/header-logout/header-logout.component.d.ts.map +1 -0
- package/tedi/components/layout/header/header-profile/header-profile.component.d.ts +20 -0
- package/tedi/components/layout/header/header-profile/header-profile.component.d.ts.map +1 -0
- package/tedi/components/layout/header/header-role/header-role.component.d.ts +40 -0
- package/tedi/components/layout/header/header-role/header-role.component.d.ts.map +1 -0
- package/tedi/components/layout/header/header.component.d.ts +6 -0
- package/tedi/components/layout/header/header.component.d.ts.map +1 -0
- package/tedi/components/layout/header/index.d.ts +9 -0
- package/tedi/components/layout/header/index.d.ts.map +1 -0
- package/tedi/components/layout/index.d.ts +4 -0
- package/tedi/components/layout/index.d.ts.map +1 -0
- package/tedi/components/layout/sidenav/index.d.ts +9 -0
- package/tedi/components/layout/sidenav/index.d.ts.map +1 -0
- package/tedi/components/layout/sidenav/sidenav-dropdown/sidenav-dropdown.component.d.ts +15 -0
- package/tedi/components/layout/sidenav/sidenav-dropdown/sidenav-dropdown.component.d.ts.map +1 -0
- package/tedi/components/layout/sidenav/sidenav-dropdown-group/sidenav-dropdown-group.component.d.ts +6 -0
- package/tedi/components/layout/sidenav/sidenav-dropdown-group/sidenav-dropdown-group.component.d.ts.map +1 -0
- package/tedi/components/layout/sidenav/sidenav-dropdown-item/sidenav-dropdown-item.component.d.ts +20 -0
- package/tedi/components/layout/sidenav/sidenav-dropdown-item/sidenav-dropdown-item.component.d.ts.map +1 -0
- package/tedi/components/layout/sidenav/sidenav-group-title/sidenav-group-title.component.d.ts +6 -0
- package/tedi/components/layout/sidenav/sidenav-group-title/sidenav-group-title.component.d.ts.map +1 -0
- package/tedi/components/layout/sidenav/sidenav-item/sidenav-item.component.d.ts +37 -0
- package/tedi/components/layout/sidenav/sidenav-item/sidenav-item.component.d.ts.map +1 -0
- package/tedi/components/layout/sidenav/sidenav-overlay/sidenav-overlay.component.d.ts +10 -0
- package/tedi/components/layout/sidenav/sidenav-overlay/sidenav-overlay.component.d.ts.map +1 -0
- package/tedi/components/layout/sidenav/sidenav-toggle/sidenav-toggle.component.d.ts +13 -0
- package/tedi/components/layout/sidenav/sidenav-toggle/sidenav-toggle.component.d.ts.map +1 -0
- package/tedi/components/layout/sidenav/sidenav.component.d.ts +30 -0
- package/tedi/components/layout/sidenav/sidenav.component.d.ts.map +1 -0
- package/tedi/components/loader/index.d.ts +2 -0
- package/tedi/components/loader/index.d.ts.map +1 -0
- package/tedi/components/loader/spinner/spinner.component.d.ts +24 -0
- package/tedi/components/loader/spinner/spinner.component.d.ts.map +1 -0
- package/tedi/components/navigation/index.d.ts +2 -0
- package/tedi/components/navigation/index.d.ts.map +1 -0
- package/tedi/components/navigation/link/link.component.d.ts +42 -0
- package/tedi/components/navigation/link/link.component.d.ts.map +1 -0
- package/tedi/components/notifications/alert/alert.component.d.ts +64 -0
- package/tedi/components/notifications/alert/alert.component.d.ts.map +1 -0
- package/tedi/components/notifications/index.d.ts +2 -0
- package/tedi/components/notifications/index.d.ts.map +1 -0
- package/tedi/components/overlay/index.d.ts +3 -0
- package/tedi/components/overlay/index.d.ts.map +1 -0
- package/tedi/components/overlay/popover/index.d.ts +4 -0
- package/tedi/components/overlay/popover/index.d.ts.map +1 -0
- package/tedi/components/overlay/popover/popover-content/popover-content.component.d.ts +25 -0
- package/tedi/components/overlay/popover/popover-content/popover-content.component.d.ts.map +1 -0
- package/tedi/components/overlay/popover/popover-trigger/popover-trigger.component.d.ts +10 -0
- package/tedi/components/overlay/popover/popover-trigger/popover-trigger.component.d.ts.map +1 -0
- package/tedi/components/overlay/popover/popover.component.d.ts +44 -0
- package/tedi/components/overlay/popover/popover.component.d.ts.map +1 -0
- package/tedi/components/overlay/tooltip/index.d.ts +4 -0
- package/tedi/components/overlay/tooltip/index.d.ts.map +1 -0
- package/tedi/components/overlay/tooltip/tooltip-content.component.d.ts +21 -0
- package/tedi/components/overlay/tooltip/tooltip-content.component.d.ts.map +1 -0
- package/tedi/components/overlay/tooltip/tooltip-trigger.component.d.ts +11 -0
- package/tedi/components/overlay/tooltip/tooltip-trigger.component.d.ts.map +1 -0
- package/tedi/components/overlay/tooltip/tooltip.component.d.ts +48 -0
- package/tedi/components/overlay/tooltip/tooltip.component.d.ts.map +1 -0
- package/tedi/directives/hide-at/hide-at.directive.d.ts +11 -0
- package/tedi/directives/hide-at/hide-at.directive.d.ts.map +1 -0
- package/tedi/directives/index.d.ts +4 -0
- package/tedi/directives/index.d.ts.map +1 -0
- package/tedi/directives/show-at/show-at.directive.d.ts +11 -0
- package/tedi/directives/show-at/show-at.directive.d.ts.map +1 -0
- package/tedi/directives/vertical-spacing/index.d.ts +3 -0
- package/tedi/directives/vertical-spacing/index.d.ts.map +1 -0
- package/tedi/directives/vertical-spacing/vertical-spacing-item.directive.d.ts +13 -0
- package/tedi/directives/vertical-spacing/vertical-spacing-item.directive.d.ts.map +1 -0
- package/tedi/directives/vertical-spacing/vertical-spacing.directive.d.ts +13 -0
- package/tedi/directives/vertical-spacing/vertical-spacing.directive.d.ts.map +1 -0
- package/tedi/helpers/generate-uuid.d.ts +8 -0
- package/tedi/helpers/generate-uuid.d.ts.map +1 -0
- package/tedi/helpers/index.d.ts +2 -0
- package/tedi/helpers/index.d.ts.map +1 -0
- package/tedi/index.d.ts +6 -0
- package/tedi/index.d.ts.map +1 -0
- package/tedi/services/breakpoint/breakpoint.service.d.ts +28 -0
- package/tedi/services/breakpoint/breakpoint.service.d.ts.map +1 -0
- package/tedi/services/index.d.ts +4 -0
- package/tedi/services/index.d.ts.map +1 -0
- package/tedi/services/sidenav/sidenav.service.d.ts +20 -0
- package/tedi/services/sidenav/sidenav.service.d.ts.map +1 -0
- package/tedi/services/translation/translation.pipe.d.ts +10 -0
- package/tedi/services/translation/translation.pipe.d.ts.map +1 -0
- package/tedi/services/translation/translation.service.d.ts +16 -0
- package/tedi/services/translation/translation.service.d.ts.map +1 -0
- package/tedi/services/translation/translations.d.ts +538 -0
- package/tedi/services/translation/translations.d.ts.map +1 -0
- package/tedi/tedi-design-system-angular-tedi.d.ts.map +1 -0
- package/tedi/types/index.d.ts +2 -0
- package/tedi/types/index.d.ts.map +1 -0
- package/tedi/types/inputs.type.d.ts +5 -0
- package/tedi/types/inputs.type.d.ts.map +1 -0
- package/tedi-design-system-angular.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tedi-design-system-angular-tedi.mjs","sources":["../../tedi/components/base/icon/icon.component.ts","../../tedi/components/base/icon/icon.component.html","../../tedi/components/base/text/text.component.ts","../../tedi/components/base/text/text.component.html","../../tedi/components/buttons/button/button.component.ts","../../tedi/components/buttons/info-button/info-button.component.ts","../../tedi/services/translation/translations.ts","../../tedi/services/translation/translation.service.ts","../../tedi/services/translation/translation.pipe.ts","../../tedi/helpers/generate-uuid.ts","../../tedi/components/buttons/collapse/collapse.component.ts","../../tedi/components/buttons/collapse/collapse.component.html","../../tedi/components/buttons/closing-button/closing-button.component.ts","../../tedi/components/buttons/closing-button/closing-button.component.html","../../tedi/components/content/list/list.component.ts","../../tedi/components/content/list/list.component.html","../../tedi/services/breakpoint/breakpoint.service.ts","../../tedi/components/content/text-group/text-group.component.ts","../../tedi/components/content/text-group/text-group.component.html","../../tedi/components/content/text-group/text-group-label.component.ts","../../tedi/components/content/text-group/text-group-value.component.ts","../../tedi/components/form/feedback-text/feedback-text.component.ts","../../tedi/components/form/feedback-text/feedback-text.component.html","../../tedi/components/form/label/label.component.ts","../../tedi/components/form/number-field/number-field.component.ts","../../tedi/components/form/number-field/number-field.component.html","../../tedi/components/form/toggle/toggle.component.ts","../../tedi/components/form/toggle/toggle.component.html","../../tedi/components/helpers/grid/col/col.component.ts","../../tedi/components/helpers/grid/col/col.component.html","../../tedi/components/helpers/grid/row/row.component.ts","../../tedi/components/helpers/grid/row/row.component.html","../../tedi/components/helpers/separator/separator.component.ts","../../tedi/components/helpers/timeline/timeline.component.ts","../../tedi/components/helpers/timeline/timeline-item/timeline-item.component.ts","../../tedi/components/helpers/timeline/timeline-item/timeline-item.component.html","../../tedi/components/helpers/timeline/timeline-description/timeline-description.component.ts","../../tedi/components/helpers/timeline/timeline-title/timeline-title.component.ts","../../tedi/components/layout/footer/footer.component.ts","../../tedi/components/layout/footer/footer.component.html","../../tedi/components/layout/footer/footer-body/footer-body.component.ts","../../tedi/components/layout/footer/footer-section/footer-section.component.ts","../../tedi/components/layout/footer/footer-section/footer-section.component.html","../../tedi/components/layout/footer/footer-side/footer-side.component.ts","../../tedi/components/navigation/link/link.component.ts","../../tedi/components/navigation/link/link.component.html","../../tedi/components/layout/footer/footer-bottom/footer-bottom.component.ts","../../tedi/components/layout/footer/footer-bottom/footer-bottom.component.html","../../tedi/components/layout/header/header.component.ts","../../tedi/components/layout/header/header.component.html","../../tedi/components/layout/header/header-actions/header-actions.component.ts","../../tedi/components/layout/header/header-content/header-content.component.ts","../../tedi/components/overlay/popover/popover.component.ts","../../tedi/components/overlay/popover/popover.component.html","../../tedi/components/overlay/popover/popover-trigger/popover-trigger.component.ts","../../tedi/components/overlay/popover/popover-content/popover-content.component.ts","../../tedi/components/overlay/popover/popover-content/popover-content.component.html","../../tedi/components/layout/header/header-language/header-language.component.ts","../../tedi/components/layout/header/header-language/header-language.component.html","../../tedi/components/layout/header/header-login/header-login.component.ts","../../tedi/components/layout/header/header-login/header-login.component.html","../../tedi/components/layout/header/header-logout/header-logout.component.ts","../../tedi/components/layout/header/header-logout/header-logout.component.html","../../tedi/directives/show-at/show-at.directive.ts","../../tedi/directives/hide-at/hide-at.directive.ts","../../tedi/components/layout/header/header-profile/header-profile.component.ts","../../tedi/components/layout/header/header-profile/header-profile.component.html","../../tedi/components/layout/header/header-role/header-role.component.ts","../../tedi/components/layout/header/header-role/header-role.component.html","../../tedi/services/sidenav/sidenav.service.ts","../../tedi/components/layout/sidenav/sidenav.component.ts","../../tedi/components/layout/sidenav/sidenav.component.html","../../tedi/components/layout/sidenav/sidenav-dropdown-item/sidenav-dropdown-item.component.ts","../../tedi/components/layout/sidenav/sidenav-dropdown-item/sidenav-dropdown-item.component.html","../../tedi/components/layout/sidenav/sidenav-group-title/sidenav-group-title.component.ts","../../tedi/components/layout/sidenav/sidenav-group-title/sidenav-group-title.component.html","../../tedi/components/overlay/tooltip/tooltip-trigger.component.ts","../../tedi/components/overlay/tooltip/tooltip-content.component.ts","../../tedi/components/overlay/tooltip/tooltip.component.ts","../../tedi/components/overlay/tooltip/tooltip.component.html","../../tedi/components/layout/sidenav/sidenav-item/sidenav-item.component.ts","../../tedi/components/layout/sidenav/sidenav-item/sidenav-item.component.html","../../tedi/components/layout/sidenav/sidenav-dropdown/sidenav-dropdown.component.ts","../../tedi/components/layout/sidenav/sidenav-dropdown/sidenav-dropdown.component.html","../../tedi/components/layout/sidenav/sidenav-dropdown-group/sidenav-dropdown-group.component.ts","../../tedi/components/layout/sidenav/sidenav-overlay/sidenav-overlay.component.ts","../../tedi/components/layout/sidenav/sidenav-toggle/sidenav-toggle.component.ts","../../tedi/components/layout/sidenav/sidenav-toggle/sidenav-toggle.component.html","../../tedi/components/loader/spinner/spinner.component.ts","../../tedi/components/loader/spinner/spinner.component.html","../../tedi/components/notifications/alert/alert.component.ts","../../tedi/components/notifications/alert/alert.component.html","../../tedi/directives/vertical-spacing/vertical-spacing-item.directive.ts","../../tedi/directives/vertical-spacing/vertical-spacing.directive.ts","../../tedi/tedi-design-system-angular-tedi.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\n\nconst ICON_WITH_BACKGROUND = [16, 24];\n\nexport type IconSize = 8 | 12 | 16 | 18 | 24 | 36 | 48 | \"inherit\";\nexport type IconVariant = \"filled\" | \"outlined\";\nexport type IconType = \"outlined\" | \"sharp\" | \"rounded\";\nexport type IconColor =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"brand\"\n | \"brand-dark\"\n | \"success\"\n | \"warning\"\n | \"warning-dark\"\n | \"danger\"\n | \"white\";\nexport type IconBackgroundColor =\n | \"primary\"\n | \"secondary\"\n | \"brand-primary\"\n | \"brand-secondary\";\n\n@Component({\n selector: \"tedi-icon\",\n standalone: true,\n templateUrl: \"./icon.component.html\",\n styleUrl: \"./icon.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"classes()\",\n \"role\": \"img\",\n \"[attr.aria-label]\": \"label()\",\n \"[attr.aria-hidden]\": \"!label()\"\n }\n})\nexport class IconComponent {\n /**\n * Name of the Material Icon\n * https://fonts.google.com/icons\n */\n name = input.required<string>();\n /**\n * Size of the icon in pixels.\n * @default 24\n */\n size = input<IconSize>(24);\n /**\n * Color of the icon.\n * @default primary\n */\n color = input<IconColor>(\"primary\");\n /**\n * Background color for the icon (adds a circular background).\n */\n background = input<IconBackgroundColor>();\n /**\n * Whether the icon should be filled or outlined.\n * @default outlined\n */\n variant = input<IconVariant>(\"outlined\");\n /**\n * Type of Material Symbols icon style.\n * It is recommended to only use one type throughout your app.\n * @default outlined\n */\n type = input<IconType>(\"outlined\");\n /**\n * Accessible label for screen readers.\n * If omitted then the icon is hidden for screen-readers.\n */\n label = input<string>();\n\n classes = computed(() => {\n let size = this.size();\n\n if (this.background()) {\n if (size === \"inherit\") {\n size = 24;\n } else {\n size = ICON_WITH_BACKGROUND.includes(size) ? size : 24;\n }\n }\n\n const classes: string[] = [\n \"notranslate\",\n \"material-symbols\",\n `material-symbols--${this.type()}`,\n \"tedi-icon\",\n `tedi-icon--color-${this.color()}`,\n `tedi-icon--size-${size}`,\n ];\n\n if (this.background()) {\n classes.push(\"tedi-icon--bg\", `tedi-icon--bg-${this.background()}`);\n }\n\n if (this.variant() === \"filled\") {\n classes.push(\"tedi-icon--filled\");\n }\n\n return classes.join(\" \");\n });\n}\n","{{ name() }}","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from \"@angular/core\";\n\nexport type TextModifiers =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"normal\"\n | \"small\"\n | \"bold\"\n | \"thin\"\n | \"italic\"\n | \"center\"\n | \"left\"\n | \"right\"\n | \"nowrap\"\n | \"break-all\"\n | \"break-word\"\n | \"break-spaces\"\n | \"uppercase\"\n | \"lowercase\"\n | \"capitalize\"\n | \"capitalize-first\"\n | \"inline-block\"\n | \"inline\"\n | \"line-normal\"\n | \"line-condensed\"\n | \"subtitle\";\n\nexport type TextColor =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"white\"\n | \"disabled\"\n | \"brand\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"info\"\n | \"neutral\";\n\n@Component({\n selector: \"[tedi-text]\",\n standalone: true,\n templateUrl: \"./text.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class]\": \"classes()\"\n },\n})\nexport class TextComponent {\n /**\n * Single or multiple modifiers to change the text behavior\n */\n modifiers = input<TextModifiers[] | TextModifiers>();\n /**\n * Color of the text\n * Use 'success', 'important' or 'warning' with caution, usually they should not be in application UI\n * @default primary\n */\n color = input<TextColor>(\"primary\");\n\n private isHeadingModifier(modifier: string) {\n return /^h[1-6]$/.test(modifier);\n }\n\n classes = computed(() => {\n const classList = [`tedi-text--${this.color()}`];\n\n const modifiersValue = this.modifiers();\n const modifierClasses = Array.isArray(modifiersValue)\n ? modifiersValue\n : modifiersValue\n ? [modifiersValue]\n : [];\n \n\n modifierClasses.forEach((modifier) => {\n if (this.isHeadingModifier(modifier)) {\n classList.push(`tedi-text--${modifier}`);\n } else {\n classList.push(`text-${modifier}`);\n }\n });\n\n return classList.join(\" \");\n });\n}\n","<ng-content></ng-content>","import {\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n AfterContentChecked,\n} from \"@angular/core\";\n\nexport type ButtonVariant =\n | \"primary\"\n | \"secondary\"\n | \"neutral\"\n | \"success\"\n | \"danger\"\n | \"danger-neutral\"\n | \"primary-inverted\"\n | \"secondary-inverted\"\n | \"neutral-inverted\";\n\nexport type ButtonSize = \"default\" | \"small\";\n\n@Component({\n selector: \"[tedi-button]\",\n standalone: true,\n template: \"<ng-content />\",\n styleUrl: \"./button.component.scss\",\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"classes()\",\n },\n})\nexport class ButtonComponent implements AfterContentChecked {\n /**\n * Specifies the color theme of the button. The color should meet accessibility standards for color contrast.\n * @default primary\n */\n variant = input<ButtonVariant>(\"primary\");\n /**\n * Defines the size of the button.\n * @default default\n */\n size = input<ButtonSize>(\"default\");\n\n private host = inject(ElementRef);\n iconOnly = signal(false);\n iconFirst = signal(false);\n iconLast = signal(false);\n\n ngAfterContentChecked(): void {\n const hostElement = this.host.nativeElement as HTMLElement;\n const nodes = Array.from(hostElement.childNodes).filter(node => node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()));\n const nodeCount = nodes.length;\n const iconIndexes = nodes\n .map((node, index) => ({ node, index }))\n .filter(x => x.node.nodeType === Node.ELEMENT_NODE && x.node.nodeName === \"TEDI-ICON\")\n .map(x => x.index);\n \n const iconCount = iconIndexes.length;\n this.iconOnly.set(nodeCount === 1 && iconCount === 1);\n this.iconFirst.set(iconIndexes.includes(0));\n this.iconLast.set(iconIndexes.includes(nodes.length - 1));\n }\n\n classes = computed(() => {\n const classList = [\n \"tedi-button\",\n `tedi-button--${this.variant()}`,\n `tedi-button--${this.size()}`,\n ];\n\n if (this.iconOnly()) {\n classList.push(\"tedi-button--icon-only\");\n }\n\n if (!this.iconFirst()) {\n classList.push(\"tedi-button--pl\");\n }\n\n if (!this.iconLast()) {\n classList.push(\"tedi-button--pr\");\n }\n\n return classList.join(\" \");\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from \"@angular/core\";\nimport { IconComponent } from \"../../base/icon/icon.component\";\n\n@Component({\n standalone: true,\n selector: \"button[tedi-info-button]\",\n imports: [IconComponent],\n template: `<tedi-icon name=\"info\" [size]=\"18\" />`,\n styleUrl: \"./info-button.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"class\": \"tedi-info-button\",\n }\n})\nexport class InfoButtonComponent {}\n","import { Language } from \"./translation.service\";\n\nexport const translationsMap = {\n close: {\n description: \"Used for closing\",\n components: [\n \"CloseButton\",\n \"Collapse\",\n \"Notification\",\n \"FileUpload\",\n \"Dropdown\",\n \"Tooltip\",\n \"HeaderRole\",\n ],\n et: \"Sulge\",\n en: \"Close\",\n ru: \"Закрыть\",\n },\n open: {\n description: \"Used for opening\",\n components: [\"Collapse\"],\n et: \"Ava\",\n en: \"Open\",\n ru: \"Открыть\",\n },\n remove: {\n description: \"Used for removing\",\n components: [\"FileUpload\", \"Tag\"],\n et: \"Eemalda\",\n en: \"Remove\",\n ru: \"Удалить\",\n },\n cancel: {\n description: \"For canceling an action\",\n components: [\"TableFilter\"],\n et: \"Tühista\",\n en: \"Cancel\",\n ru: \"Отмена\",\n },\n clear: {\n description: \"For clearing a value\",\n components: [\"TableFilter\", \"TextField\"],\n et: \"Tühjenda\",\n en: \"Clear\",\n ru: \"Очистить\",\n },\n search: {\n description: \"For searching\",\n components: [\"TableFilter\"],\n et: \"Otsi\",\n en: \"Search\",\n ru: \"Поиск\",\n },\n required: {\n description: \"Required field\",\n components: [\"TableFilter\"],\n et: \"Kohustuslik väli\",\n en: \"Required field\",\n ru: \"Обязательное поле\",\n },\n breadcrumbs: {\n description: \"Breadcrumbs navigation label\",\n components: [\"Breadcrumbs\"],\n et: \"Jäljerida\",\n en: \"Breadcrumbs\",\n ru: \"Навигационная цепочка\",\n },\n more: {\n components: [\"Tabs\"],\n et: \"Veel\",\n en: \"More\",\n ru: \"Более\",\n },\n \"anchor.new-tab\": {\n description: \"Label for when anchor opens in new tab\",\n components: [\"Anchor\"],\n et: \"Avaneb uuel vahelehel\",\n en: \"Opens in new tab\",\n ru: \"Открывается в новой вкладке\",\n },\n \"header.toggle\": {\n description: \"Label for header toggle on mobile\",\n components: [\"Header\"],\n et: (isOpen: boolean) => (isOpen ? \"Sulge menüü\" : \"Ava menüü\"),\n en: (isOpen: boolean) => (isOpen ? \"Close menu\" : \"Open menu\"),\n ru: (isOpen: boolean) => (isOpen ? \"Закрыть меню\" : \"Открыть меню\"),\n },\n \"header.settings\": {\n description: \"Label for HeaderSettings Button\",\n components: [\"HeaderSettings\"],\n et: \"Seaded\",\n en: \"Settings\",\n ru: \"Настройки\",\n },\n \"header.select-lang\": {\n description: \"Label for HeaderLanguage label and Modal Heading\",\n components: [\"HeaderLanguage\"],\n et: \"Keel:\",\n en: \"Language:\",\n ru: \"Язык:\",\n },\n \"header.role-label\": {\n description: \"Label for Role selection\",\n components: [\"HeaderRole\"],\n et: \"Mina esindan:\",\n en: \"I represent:\",\n ru: \"я представляю:\",\n },\n \"header.role-switch\": {\n description: \"Label for role switch button\",\n components: [\"HeaderRole\"],\n et: \"Vaheta rolli\",\n en: \"Switch role\",\n ru: \"Сменить роль\",\n },\n \"header.role-search\": {\n description: \"Label for role search input\",\n components: [\"HeaderRole\"],\n et: \"Otsi esindatavat\",\n en: \"Search representative\",\n ru: \"Найти представителя\",\n },\n \"header.role-no-representatives\": {\n description: \"Label for empty representatives search result\",\n components: [\"HeaderRole\"],\n et: \"Esindatavaid ei leitud!\",\n en: \"No representatives found!\",\n ru: \"Представители не найдены!\",\n },\n \"header.login\": {\n description: \"Label for login button\",\n components: [\"HeaderLogin\"],\n et: \"Sisene portaali\",\n en: \"Log in\",\n ru: \"авторизоваться\",\n },\n \"header.login-mobile\": {\n description: \"Label for login button in mobile view\",\n components: [\"HeaderLogin\"],\n et: \"Sisene\",\n en: \"Log in\",\n ru: \"авторизоваться\",\n },\n \"header.logout\": {\n description: \"Label for logout button\",\n components: [\"HeaderLogout\"],\n et: \"Logi välja\",\n en: \"Log out\",\n ru: \"Выйти\",\n },\n \"header.logo\": {\n description: \"Alt Label for logo\",\n components: [\"Header\"],\n et: \"Logo\",\n en: \"Logo\",\n ru: \"Логотип\",\n },\n \"header.profile\": {\n description: \"Label for profile button\",\n components: [\"HeaderProfile\"],\n et: \"Profiil\",\n en: \"Profile\",\n ru: \"Профиль\",\n },\n \"file-upload.add\": {\n description: \"Label for add file button\",\n components: [\"FileUpload\"],\n et: \"Lisa manus\",\n en: \"Add attachment\",\n ru: \"Загрузить файл\",\n },\n \"file-upload.accept\": {\n description: \"Default label for file extensions\",\n components: [\"FileUpload\"],\n et: \"Lubatud faililaiendid:\",\n en: \"Allowed file extensions:\",\n ru: \"Разрешенные расширения файлов:\",\n },\n \"file-upload.max-size\": {\n description: \"Default label for file size restriction\",\n components: [\"FileUpload\"],\n et: \"Maksimaalne suurus:\",\n en: \"Maximum size:\",\n ru: \"Максимальный размер:\",\n },\n \"file-upload.size-rejected\": {\n description: \"Error label for rejected size\",\n components: [\"FileUpload\"],\n et: (files: string) => `Fail(id) ${files} on liiga suured`,\n en: (files: string) => `File(s) ${files} are too large`,\n ru: (files: string) => `Файл(ы) ${files} слишком велики`,\n },\n \"file-upload.size-rejected-extended\": {\n description: \"Error label for rejected size\",\n components: [\"FileUpload\"],\n et: (files: string, maxSize: string) =>\n `Fail ${files} on liiga suur. Maksimaalne suurus: ${maxSize}`,\n en: (files: string, maxSize: string) =>\n `File ${files} is too large. Maximum size: ${maxSize}`,\n ru: (files: string, maxSize: string) =>\n `Файл ${files} слишком велик. Максимальный размер: ${maxSize}`,\n },\n \"file-upload.drag-and-drop\": {\n description: \"Text shown when dragging files over the dropzone\",\n components: [\"FileUpload\"],\n et: \"Fail(id) tuvastatud, lohista üleslaadimiseks\",\n en: \"File detected, drop to upload\",\n ru: \"Файл обнаружен, отпустите для загрузки\",\n },\n \"file-upload.extension-rejected\": {\n description: \"Error label for rejected extension\",\n components: [\"FileUpload\"],\n et: (files: string) => `Fail(id) ${files} on vale laiendiga`,\n en: (files: string) => `File(s) ${files} have the wrong extension`,\n ru: (files: string) => `Файл(ы) ${files} имеют неправильное расширение`,\n },\n \"file-upload.extension-rejected-extended\": {\n description: \"Error label for rejected extension\",\n components: [\"FileUpload\"],\n et: (files: string, validTypes: string) =>\n `Fail(id) ${files} on vale laiendiga. Lubatud laiendid: ${validTypes}`,\n en: (files: string, validTypes: string) =>\n `File(s) ${files} have the wrong extension. Allowed extensions: ${validTypes}`,\n ru: (files: string, validTypes: string) =>\n `Файл(ы) ${files} имеют неправильное расширение. Разрешенные расширения: ${validTypes}`,\n },\n \"file-dropzone.label\": {\n description: \"Default label for dropzone\",\n components: [\"FileDropzone\"],\n et: \"Lohista failid siia või klõpsa, et sirvida\",\n en: \"Drop files here, or click to browse\",\n ru: \"Перетащите файлы сюда или нажмите, чтобы выбрать\",\n },\n \"file-dropzone.error\": {\n description: \"Error label for dropzone\",\n components: [\"FileDropzone\"],\n et: \"Faili üleslaadimisel tekkis viga\",\n en: \"An error occurred while uploading the file\",\n ru: \"Произошла ошибка при загрузке файла\",\n },\n \"modal.close\": {\n description: \"Label for modals close button\",\n components: [\"Modal\"],\n et: \"Sulge modaal\",\n en: \"Close modal\",\n ru: \"Закрыть модальное окно\",\n },\n \"select.loading\": {\n description: \"Text when select options are loading\",\n components: [\"select\"],\n et: \"Laadimine...\",\n en: \"Loading...\",\n ru: \"Загрузка...\",\n },\n \"select.no-options\": {\n description: \"Text when select has no options\",\n components: [\"select\"],\n et: \"Valikud puuduvad\",\n en: \"No options\",\n ru: \"Нет вариантов\",\n },\n \"select.select-all\": {\n description: \"Text when select has 'select all' option\",\n components: [\"select\"],\n et: \"Vali kõik\",\n en: \"Select all\",\n ru: \"Выбрать все\",\n },\n \"stepper.completed\": {\n description:\n \"Label for screen-reader that this step is completed (visually hidden)\",\n components: [\"StepperNav\"],\n et: \"Lõpetatud\",\n en: \"Completed\",\n ru: \"Завершено\",\n },\n \"stepper.not-completed\": {\n description:\n \"Label for screen-reader that this step is not completed (visually hidden)\",\n components: [\"StepperNav\"],\n et: \"Lõpetamata\",\n en: \"Not completed\",\n ru: \"Не завершено\",\n },\n \"skeleton.loading\": {\n description: \"Announced by screen-readers when skeleton is loading\",\n components: [\"Skeleton\"],\n et: \"Laadimine\",\n en: \"Loading\",\n ru: \"Загрузка\",\n },\n \"skeleton.loading-completed\": {\n description:\n \"Announced by screen-readers when skeleton has completed loading\",\n components: [\"Skeleton\"],\n et: \"Laadimine lõpetatud\",\n en: \"Loading completed\",\n ru: \"Загрузка завершена\",\n },\n \"spinner.loading\": {\n description: \"Announced by screen-readers when spinner is loading\",\n components: [\"Spinner\"],\n et: \"Laadimine\",\n en: \"Loading\",\n ru: \"Загрузка\",\n },\n \"table.loading\": {\n description: \"Shown when table is loading\",\n components: [\"Table\"],\n et: \"Tabel laeb\",\n en: \"Table is loading\",\n ru: \"Таблица загружается\",\n },\n \"table.empty\": {\n description: \"Shown when table is empty\",\n components: [\"Table\"],\n et: \"Tulemused puuduvad\",\n en: \"No results\",\n ru: \"Нет результатов\",\n },\n \"table.error\": {\n description: \"Shown when table is in error state\",\n components: [\"Table\"],\n et: \"Tabeli andmete pärimisel tekkis viga\",\n en: \"An error occurred while retrieving table data\",\n ru: \"Произошла ошибка при получении данных таблицы\",\n },\n \"table.filter\": {\n description: \"Label for filter toggle\",\n components: [\"Table\", \"TableFilter\"],\n et: \"Filtreeri\",\n en: \"Filter\",\n ru: \"Фильтровать\",\n },\n \"table.filter.select-all\": {\n description: \"Label for selecting all\",\n components: [\"Table\", \"TableFilter\"],\n et: \"Vali kõik\",\n en: \"Select all\",\n ru: \"Выбрать все\",\n },\n \"table.filter.remove-all\": {\n description: \"Label for removing all\",\n components: [\"Table\", \"TableFilter\"],\n et: \"Eemalda kõik\",\n en: \"Remove all\",\n ru: \"Удалить все\",\n },\n \"table.filter.no-options\": {\n description: \"When select filter has no options\",\n components: [\"Table\", \"TableFilter\"],\n et: \"Valikud puuduvad\",\n en: \"No options\",\n ru: \"Нет вариантов\",\n },\n \"table.filter.validation.no-spaces\": {\n description: \"Filter validation error - Text can not start with spaces\",\n components: [\"Table\", \"TableFilter\"],\n et: \"Tekst ei tohi alata tühikutega\",\n en: \"Filter text cant start with spaces\",\n ru: \"Текст фильтра не может начинаться с пробелов\",\n },\n \"table.filter.validation.min-length\": {\n description: \"Filter validation error - Text is too short\",\n components: [\"Table\", \"TableFilter\"],\n et: (count: number) =>\n count === 1\n ? `Sisesta vähemalt ${count} tähemärk`\n : `Sisesta vähemalt ${count} tähemärki`,\n en: (count: number) =>\n count === 1\n ? `Min length is ${count} char`\n : `Min length is ${count} chars`,\n ru: (count: number) =>\n count === 1\n ? `Минимальная длина ${count} знак`\n : `Минимальная длина ${count} знаков`,\n },\n \"table.filter.validation.to-before-from\": {\n description: \"Filter validation error - End date is before start date\",\n components: [\"Table\", \"TableFilter\"],\n et: \"Lõppkuupäev on enne alguskuupäeva\",\n en: \"End date must be after start date\",\n ru: \"Дата окончания предшествует дате начала\",\n },\n \"table.filter.from\": {\n description: \"Label for date filter from\",\n components: [\"Table\", \"TableFilter\"],\n et: \"Kuupäev alates\",\n en: \"Date from\",\n ru: \"Дата с\",\n },\n \"table.filter.to\": {\n description: \"Label for date filter until\",\n components: [\"Table\", \"TableFilter\"],\n et: \"Kuupäev kuni\",\n en: \"Date until\",\n ru: \"Дата до\",\n },\n \"table.toggle-sub-row\": {\n description: \"Toggle sub row button (Visually hidden)\",\n components: [\"Table\"],\n et: (isExpaned: boolean) => (isExpaned ? \"Sulge alamrida\" : \"Ava alamrida\"),\n en: (isExpaned: boolean) => (isExpaned ? \"Close subrow\" : \"Open subrow\"),\n ru: (isExpaned: boolean) =>\n isExpaned ? \"Закрыть подстроку\" : \"Открыть подстроку\",\n },\n \"table.select-all\": {\n description: \"Row selection - Label for check in table header\",\n components: [\"Table\"],\n et: (isSelected: boolean) => (isSelected ? \"Eemalda kõik\" : \"Vali kõik\"),\n en: (isSelected: boolean) => (isSelected ? \"Deselect all\" : \"Select all\"),\n ru: (isSelected: boolean) =>\n isSelected ? \"Убрать выделение со всего\" : \"Выбрать все\",\n },\n \"table.select-row\": {\n description: \"Row selection - Label for check in table row\",\n components: [\"Table\"],\n et: (isSelected: boolean) => (isSelected ? \"Eemalda rida\" : \"Vali rida\"),\n en: (isSelected: boolean) => (isSelected ? \"Deselect row\" : \"Select row\"),\n ru: (isSelected: boolean) =>\n isSelected ? \"Отменить выбор строки\" : \"Выбрать ряд\",\n },\n \"table.sort\": {\n description: \"Label for sort button\",\n components: [\"Table\"],\n et: (direction: \"asc\" | \"desc\" | false) =>\n direction === \"asc\"\n ? \"Sorteeri kahanevalt\"\n : direction === \"desc\"\n ? \"Eemalda sorteerimine\"\n : \"Sorteeri kasvavalt\",\n en: (direction: \"asc\" | \"desc\" | false) =>\n direction === \"asc\"\n ? \"Sort decending\"\n : direction === \"desc\"\n ? \"Remove sorting\"\n : \"Sort ascending\",\n ru: (direction: \"asc\" | \"desc\" | false) =>\n direction === \"asc\"\n ? \"Сортировать по убыванию\"\n : direction === \"desc\"\n ? \"Отменить сортировку\"\n : \"Сортировать по возрастанию\",\n },\n \"tooltip.icon-trigger\": {\n description: \"Label we use for icons that are tooltip triggers\",\n components: [\"TooltipTrigger\"],\n et: \"Kuva tööriistavihje\",\n en: \"Show tooltip\",\n ru: \"Показать подсказку\",\n },\n \"pagination.title\": {\n description: \"Label of the pagination\",\n components: [\"Table\", \"Pagination\"],\n et: \"Pagineerimine\",\n en: \"Pagination\",\n ru: \"Страницы\",\n },\n \"pagination.page\": {\n description: \"Label of individual page numbers\",\n components: [\"Table\", \"Pagination\"],\n et: (page: number, isCurrent?: boolean) =>\n isCurrent ? `Aktiivne leht, leht ${page}` : `Mine lehele ${page}`,\n en: (page: number, isCurrent?: boolean) =>\n isCurrent ? `Current page, page ${page}` : `Go to page ${page}`,\n ru: (page: number, isCurrent?: boolean) =>\n isCurrent\n ? `Текущая страница, страница ${page}`\n : `Перейти на страницу ${page}`,\n },\n \"pagination.prev-page\": {\n description: \"Previous page button label\",\n components: [\"Table\", \"Pagination\"],\n et: \"Eelmine leht\",\n en: \"Previous page\",\n ru: \"Предыдущая страница\",\n },\n \"pagination.next-page\": {\n description: \"Next page button label\",\n components: [\"Table\", \"Pagination\"],\n et: \"Järgmine leht\",\n en: \"Next page\",\n ru: \"Следущая страница\",\n },\n \"pagination.results\": {\n description: \"Total results text\",\n components: [\"Table\", \"Pagination\"],\n et: (count?: number) => (count === 1 ? \"tulemus\" : \"tulemust\"),\n en: (count?: number) => (count === 1 ? \"result\" : \"results\"),\n ru: (count?: number) => (count === 1 ? \"результат\" : \"результа\"),\n },\n \"pagination.page-size\": {\n description: \"Label of page size select\",\n components: [\"Table\", \"Pagination\"],\n et: \"Lehe suurus\",\n en: \"Page size\",\n ru: \"Размер страницы\",\n },\n \"table-of-contents.title\": {\n description: \"Title of the table of contents\",\n components: [\"TableOfContents\"],\n et: \"Sisukord\",\n en: \"Table of contents\",\n ru: \"Содержание\",\n },\n \"table-of-contents.valid\": {\n description: \"Number of valid steps\",\n components: [\"TableOfContents\"],\n et: (count: string | number) => `${count} valiidsed`,\n en: (count: string | number) => `${count} valid`,\n ru: (count: string | number) => `${count} действительны`,\n },\n \"table-of-contents.invalid\": {\n description: \"Number of invalid steps\",\n components: [\"TableOfContents\"],\n et: (count: string | number) => `${count} mitte valiidne`,\n en: (count: string | number) => `${count} invalid`,\n ru: (count: string | number) => `${count} неверный`,\n },\n \"truncate.see-more\": {\n description: \"See more button label\",\n components: [\"Truncate\"],\n et: \"Näita rohkem\",\n en: \"Show more\",\n ru: \"Показать больше\",\n },\n \"truncate.see-less\": {\n description: \"See less button label\",\n components: [\"Truncate\"],\n et: \"Näita vähem\",\n en: \"Show less\",\n ru: \"Скрыть\",\n },\n \"vertical-progress.edit\": {\n description: \"Edit button label\",\n components: [\"VerticalProgressItem\"],\n et: \"Muuda\",\n en: \"Edit\",\n ru: \"редактировать\",\n },\n \"numberField.decrement\": {\n description: \"Label for screen-reader for number field decrease button\",\n components: [\"NumberField\"],\n et: (count: string | number) => `Vähenda ${count} võrra`,\n en: (count: string | number) => `Decrease by ${count}`,\n ru: (count: string | number) => `Уменьшить на ${count}`,\n },\n \"numberField.increment\": {\n description: \"Label for screen-reader for number field increase button\",\n components: [\"NumberField\"],\n et: (count: string | number) => `Suurenda ${count} võrra`,\n en: (count: string | number) => `Increase by ${count}`,\n ru: (count: string | number) => `Увеличить на ${count}`,\n },\n \"numberField.quantityUpdated\": {\n description:\n \"Label for screen-reader when quantity get updated by button click\",\n components: [\"NumberField\"],\n et: (count: string | number) => `Uuendatud. Uus väärtus ${count}`,\n en: (count: string | number) => `Updated. New value ${count}`,\n ru: (count: string | number) => `Ууэндатуд. Уус вяэртус ${count}`,\n },\n \"sidenav.backToMainMenu\": {\n description: \"Side navigation label\",\n components: [\"Sidenav\"],\n et: \"Tagasi peamenüüsse\",\n en: \"Back to main menu\",\n ru: \"Назад в главное меню\",\n },\n \"sidenav.toggle\": {\n description: \"Label for sidenav toggle on mobile\",\n components: [\"Sidenav\"],\n et: (isOpen: boolean) => (isOpen ? \"Sulge menüü\" : \"Ava menüü\"),\n en: (isOpen: boolean) => (isOpen ? \"Close menu\" : \"Open menu\"),\n ru: (isOpen: boolean) => (isOpen ? \"Закрыть меню\" : \"Открыть меню\"),\n },\n};\n\nexport type TediTranslationsMap<L extends Language> = {\n [K in keyof typeof translationsMap]: (typeof translationsMap)[K][L];\n};\n\nexport type TranslationEntry = {\n description?: string;\n components?: string[];\n} & {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [L in Language]: string | ((...args: any[]) => string);\n};\n\nexport type TranslationMap = Record<string, TranslationEntry>;\n","import { computed, Injectable, isSignal, signal, Signal } from \"@angular/core\";\nimport { translationsMap, TranslationMap, TediTranslationsMap } from \"./translations\";\n\nexport type Language = \"en\" | \"et\" | \"ru\";\n\n@Injectable({ providedIn: \"root\" })\nexport class TediTranslationService {\n private currentLang = signal<Language>(\"et\");\n private translations = signal<TranslationMap>(translationsMap);\n\n getLanguage = this.currentLang.asReadonly();\n \n setLanguage(lang: Language) {\n this.currentLang.set(lang);\n }\n\n translate<\n TLang extends Language, \n TKey extends keyof TediTranslationsMap<TLang> | (string & {}),\n TArgs extends TKey extends keyof TediTranslationsMap<TLang>\n ? TediTranslationsMap<TLang>[TKey] extends (...args: infer P) => string \n ? P \n : []\n : unknown[]\n >(\n key: TKey,\n ...args: TArgs\n ): string {\n const lang = this.currentLang();\n const entry = this.translations()[key];\n\n if (!entry || !(lang in entry)) {\n return key;\n }\n \n const value = entry[lang];\n\n if (typeof value === \"function\") {\n return value(...args);\n }\n\n return value;\n }\n\n track<\n TLang extends Language, \n TKey extends keyof TediTranslationsMap<TLang> | (string & {}),\n TArgs extends TKey extends keyof TediTranslationsMap<TLang>\n ? TediTranslationsMap<TLang>[TKey] extends (...args: infer P) => string \n ? P \n : []\n : unknown[]\n >(\n key: TKey,\n ...args: Signal<TArgs[number]>[]\n ) {\n return computed(() => {\n const resolvedArgs = args.map(arg =>\n isSignal(arg) ? arg() : arg\n ) as TArgs;\n\n return this.translate(key, ...resolvedArgs);\n });\n }\n\n addTranslations(newTranslations: TranslationMap) {\n this.translations.update(prev => ({ ...prev, ...newTranslations }));\n }\n}","import { inject, Pipe, PipeTransform } from \"@angular/core\";\nimport { TediTranslationService } from \"./translation.service\";\n\n@Pipe({\n name: \"tediTranslate\",\n standalone: true,\n pure: false\n})\nexport class TediTranslationPipe implements PipeTransform {\n translationService = inject(TediTranslationService);\n\n transform(key: string, ...args: unknown[]): string {\n return this.translationService.translate(key, ...args);\n }\n}","/**\n * Generates a random UUID (Universally Unique Identifier).\n * This function uses the `crypto` API if available, otherwise falls back to a custom implementation.\n *\n * @returns {string} A randomly generated UUID.\n */\nexport function generateUUID(): string {\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto.randomUUID === \"function\"\n ) {\n return crypto.randomUUID();\n }\n\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (char) => {\n const r = (Math.random() * 16) | 0;\n const v = char === \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n","import {\n Component,\n input,\n signal,\n AfterViewInit,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n inject,\n Renderer2,\n} from \"@angular/core\";\nimport { TediTranslationPipe } from \"../../../services/translation/translation.pipe\";\nimport { IconComponent } from \"../../base/icon/icon.component\";\nimport { TextComponent } from \"../../base/text/text.component\";\nimport { generateUUID } from \"../../../helpers/generate-uuid\";\n\nexport type ArrowType = \"default\" | \"secondary\";\n\n@Component({\n standalone: true,\n selector: \"tedi-collapse\",\n imports: [IconComponent, TextComponent, TediTranslationPipe],\n templateUrl: \"./collapse.component.html\",\n styleUrls: [\"./collapse.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CollapseComponent implements AfterViewInit {\n /**\n * The title/header element for the collapsible section.\n * Rendered inside the toggle button.\n */\n openText = input<string>();\n /**\n * Text shown on the toggle button when the content is expanded.\n */\n closeText = input<string>();\n /**\n * Whether the collapse should be initially open.\n * @default false\n */\n defaultOpen = input<boolean>(false);\n /**\n * To show or hide the openText and closeText.\n * @default \"false\"\n */\n hideCollapseText = input<boolean>(false);\n /**\n * Option for toggling different arrow styles.\n * @default \"default\"\n */\n arrowType = input<ArrowType>(\"default\");\n\n renderer = inject(Renderer2);\n collapseContentId: string = `collapse-content-${generateUUID()}`;\n isOpen = signal<boolean>(false);\n\n toggleCollapse() {\n this.isOpen.update((prev) => !prev);\n }\n\n ngAfterViewInit() {\n if (this.defaultOpen()) {\n this.isOpen.set(true);\n }\n }\n}\n","<div class=\"collapse\" [class.collapse--open]=\"isOpen() === true\">\n <button\n class=\"collapse__button\"\n (click)=\"toggleCollapse()\"\n [attr.aria-expanded]=\"isOpen() ? true : false\"\n [attr.aria-controls]=\"collapseContentId\"\n >\n @if (hideCollapseText() === false) {\n <p tedi-text color=\"brand\" class=\"collapse__button--text\">\n {{\n isOpen()\n ? (closeText() ?? (\"close\" | tediTranslate))\n : (openText() ?? (\"open\" | tediTranslate))\n }}\n </p>\n }\n @if (arrowType() === \"default\") {\n <tedi-icon class=\"collapse__icon\" name=\"expand_more\" color=\"brand\" />\n } @else if (arrowType() === \"secondary\") {\n <div class=\"collapse__icon--wrapper\">\n <tedi-icon class=\"collapse__icon\" name=\"expand_more\" color=\"brand\" />\n </div>\n }\n </button>\n <div class=\"collapse__content\" [id]=\"collapseContentId\">\n <div class=\"collapse__extender\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { IconComponent } from \"../../base/icon/icon.component\";\nimport { TediTranslationService } from \"../../../services/translation/translation.service\";\n\nexport type ClosingButtonSize = \"default\" | \"small\";\nexport type ClosingButtonIconSize = 18 | 24;\n@Component({\n selector: \"button[tedi-closing-button]\",\n imports: [IconComponent],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: \"./closing-button.component.html\",\n styleUrl: \"./closing-button.component.scss\",\n host: {\n \"[title]\": \"title()\",\n \"[attr.aria-label]\": \"title()\",\n \"[class.tedi-closing-button]\": \"true\",\n \"[class.tedi-closing-button--small]\": \"size() === 'small'\",\n },\n})\nexport class ClosingButtonComponent {\n /**\n * Overall button size.\n * - `default` - The default size, typically larger.\n * - `small` - A smaller version of the button, often used in compact layouts.\n * @default default\n */\n size = input<ClosingButtonSize>(\"default\");\n /**\n * The size of the icon inside the button in pixels.\n * - `24` - A standard icon size, commonly used in most interfaces.\n * - `18` - A smaller icon size, suitable for compact designs.\n * @default 24\n */\n iconSize = input<ClosingButtonIconSize>(24);\n\n private translationService = inject(TediTranslationService);\n title = this.translationService.track(\"close\");\n}\n","<tedi-icon name=\"close\" [size]=\"iconSize()\" aria-hidden=\"true\" />\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\n\nexport type BulletColor =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"brand\"\n | \"brand-dark\"\n | \"success\"\n | \"warning\"\n | \"warning-dark\"\n | \"danger\"\n | \"white\";\n\n@Component({\n selector: \"ul[tedi-list], ol[tedi-list]\",\n standalone: true,\n templateUrl: \"./list.component.html\",\n styleUrl: \"./list.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"classes()\",\n },\n})\nexport class ListComponent {\n /**\n * Is list styled?\n * @default true\n */\n styled = input<boolean>(true);\n /**\n * Color of the list bullet.\n * @default brand\n */\n color = input<BulletColor>(\"brand\");\n\n classes = computed(() => {\n const classList = [\"tedi-list\", `tedi-list--bullet-color-${this.color()}`];\n\n if (!this.styled()) {\n classList.push(\"tedi-list--unstyled\");\n }\n\n return classList.join(\" \");\n });\n}\n","<ng-content></ng-content>","import { computed, Injectable, InputSignal, Signal, signal } from \"@angular/core\";\nimport { BreakpointObserver } from \"@angular/cdk/layout\";\n\nexport const BREAKPOINTS = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400,\n} as const;\n\nconst breakpointsOrder: Breakpoint[] = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"xxl\"];\n\nexport type Breakpoint = keyof typeof BREAKPOINTS;\n\nexport type BreakpointInputs<TInputs> = {\n [K in keyof TInputs]: InputSignal<TInputs[K]>;\n} & Partial<Record<Breakpoint, InputSignal<TInputs | undefined>>>;\n\nexport type BreakpointInputsWithoutSignals<TInputs> = TInputs &\n Partial<Record<Breakpoint, TInputs>>;\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BreakpointService {\n private readonly _currentBreakpoint = signal<Breakpoint | undefined>(\n undefined,\n );\n constructor(private breakpointObserver: BreakpointObserver) {\n this.breakpointObserver\n .observe(\n Object.values(BREAKPOINTS).map((value) => `(min-width: ${value}px)`),\n )\n .subscribe((state) => {\n if (state.breakpoints[`(min-width: ${BREAKPOINTS.xxl}px)`]) {\n this._currentBreakpoint.set(\"xxl\");\n } else if (state.breakpoints[`(min-width: ${BREAKPOINTS.xl}px)`]) {\n this._currentBreakpoint.set(\"xl\");\n } else if (state.breakpoints[`(min-width: ${BREAKPOINTS.lg}px)`]) {\n this._currentBreakpoint.set(\"lg\");\n } else if (state.breakpoints[`(min-width: ${BREAKPOINTS.md}px)`]) {\n this._currentBreakpoint.set(\"md\");\n } else if (state.breakpoints[`(min-width: ${BREAKPOINTS.sm}px)`]) {\n this._currentBreakpoint.set(\"sm\");\n } else if (state.breakpoints[`(min-width: ${BREAKPOINTS.xs}px)`]) {\n this._currentBreakpoint.set(\"xs\");\n } else {\n this._currentBreakpoint.set(undefined);\n }\n });\n }\n\n currentBreakpoint() {\n return computed(() => {\n return this._currentBreakpoint();\n });\n }\n\n getBreakpointInputs<TInputs>(\n inputs: BreakpointInputsWithoutSignals<TInputs>,\n ): TInputs {\n let resolvedInputs: Partial<TInputs> = {};\n\n Object.keys(inputs).forEach((key) => {\n if (!breakpointsOrder.includes(key as Breakpoint)) {\n const baseInput = inputs[key as keyof TInputs];\n resolvedInputs[key as keyof TInputs] = baseInput;\n }\n });\n\n const currentBreakpoint = this._currentBreakpoint();\n\n if (!currentBreakpoint) {\n return resolvedInputs as TInputs;\n }\n\n for (let i = 0; i <= breakpointsOrder.indexOf(currentBreakpoint); i++) {\n const breakpoint = breakpointsOrder[i];\n const breakpointInputs = inputs[breakpoint];\n\n if (breakpointInputs) {\n resolvedInputs = { ...resolvedInputs, ...breakpointInputs };\n }\n }\n\n return resolvedInputs as TInputs;\n }\n\n isBelowBreakpoint(breakpoint: Breakpoint | Signal<Breakpoint>) {\n return computed(() => {\n const current = this._currentBreakpoint();\n\n if (!current) return false;\n\n const bp = typeof breakpoint === \"function\" ? breakpoint() : breakpoint;\n\n const currentIndex = breakpointsOrder.indexOf(current);\n const targetIndex = breakpointsOrder.indexOf(bp);\n\n return currentIndex < targetIndex;\n });\n }\n\n isAboveBreakpoint(breakpoint: Breakpoint | Signal<Breakpoint>) {\n return computed(() => {\n const current = this._currentBreakpoint();\n\n if (!current) return false;\n\n const bp = typeof breakpoint === \"function\" ? breakpoint() : breakpoint;\n\n const currentIndex = breakpointsOrder.indexOf(current);\n const targetIndex = breakpointsOrder.indexOf(bp);\n\n return currentIndex >= targetIndex;\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n BreakpointInputs,\n BreakpointService,\n} from \"../../../services/breakpoint/breakpoint.service\";\n\nexport type TextGroupType = \"vertical\" | \"horizontal\";\n\nexport type TextGroupInputs = {\n /**\n * Type of text group layout\n * @default horizontal\n */\n type: TextGroupType;\n /**\n * Width for the label (e.g., '200px', '30%', etc.)\n */\n labelWidth: string | undefined;\n};\n@Component({\n standalone: true,\n selector: \"tedi-text-group\",\n templateUrl: \"./text-group.component.html\",\n styleUrl: \"./text-group.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextGroupComponent implements BreakpointInputs<TextGroupInputs> {\n type = input<TextGroupType>(\"horizontal\");\n labelWidth = input<string>();\n breakpointService = inject(BreakpointService);\n\n xs = input<TextGroupInputs>();\n sm = input<TextGroupInputs>();\n md = input<TextGroupInputs>();\n lg = input<TextGroupInputs>();\n xl = input<TextGroupInputs>();\n xxl = input<TextGroupInputs>();\n\n breakpointInputs = computed(() => {\n return this.breakpointService.getBreakpointInputs<TextGroupInputs>({\n type: this.type(),\n labelWidth: this.labelWidth(),\n\n xs: this.xs(),\n sm: this.sm(),\n md: this.md(),\n lg: this.lg(),\n xl: this.xl(),\n xxl: this.xxl(),\n });\n });\n\n classes = computed(() => {\n const classList = [`tedi-text-group--${this.breakpointInputs().type}`];\n return classList.join(\" \");\n });\n}\n","<dl [class]=\"classes()\" [style.--_label-width]=\"labelWidth()\" role=\"group\">\n <dt>\n <label>\n <ng-content select=\"tedi-text-group-label\"></ng-content>\n </label>\n </dt>\n <dd>\n <ng-content select=\"tedi-text-group-value\"></ng-content>\n </dd>\n</dl>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n selector: \"tedi-text-group-label\",\n template: `<ng-content />`,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextGroupLabelComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n selector: \"tedi-text-group-value\",\n template: `<ng-content />`,\n styleUrl: \"./text-group.component.scss\",\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextGroupValueComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\n\nexport type FeedbackTextType = \"hint\" | \"valid\" | \"error\";\nexport type FeedbackTextPosition = \"left\" | \"right\";\n\n@Component({\n selector: \"tedi-feedback-text\",\n standalone: true,\n templateUrl: \"./feedback-text.component.html\",\n styleUrl: \"./feedback-text.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"classes()\",\n \"[attr.role]\": \"role()\",\n \"[attr.aria-live]\": \"ariaLive()\",\n },\n})\nexport class FeedbackTextComponent {\n /**\n * Helper text\n */\n text = input.required<string>();\n /**\n * Type of form-helper.\n * @default hint\n */\n type = input<FeedbackTextType>(\"hint\");\n /**\n * Position of the helper.\n * @default left\n */\n position = input<FeedbackTextPosition>(\"left\");\n\n role = computed(() => {\n if (this.type() === \"valid\" || this.type() === \"error\") {\n return \"alert\";\n }\n\n return undefined;\n });\n\n ariaLive = computed(() => {\n if (this.type() === \"error\" || this.type() === \"valid\") {\n return \"assertive\";\n }\n\n return \"polite\";\n });\n\n classes = computed(() => {\n return `tedi-feedback-text tedi-feedback-text--${this.type()} tedi-feedback-text--${this.position()}`;\n });\n}\n","{{ text() }}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\n\nexport type LabelSize = \"small\" | \"default\";\n\n@Component({\n selector: \"label[tedi-label]\",\n template: \"<ng-content />\",\n styleUrl: \"./label.component.scss\",\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class]\": \"classes()\",\n },\n})\nexport class LabelComponent {\n /**\n * Size of the label.\n * @default default\n */\n size = input<LabelSize>(\"default\");\n /**\n * Whether label is required.\n * @default false\n */\n required = input<boolean>(false);\n\n classes = computed(() => {\n const classList = [\"tedi-label\"];\n\n if (this.size() === \"small\") {\n classList.push(\"tedi-label--small\");\n }\n\n if (this.required()) {\n classList.push(\"tedi-label--required\");\n }\n\n return classList.join(\" \");\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n ViewEncapsulation,\n forwardRef,\n ElementRef,\n signal,\n ViewChild,\n} from \"@angular/core\";\nimport { ButtonComponent } from \"../../buttons/button/button.component\";\nimport { TediTranslationPipe } from \"../../../services/translation/translation.pipe\";\nimport { ComponentInputs } from \"../../../types/inputs.type\";\nimport { IconComponent } from \"../../base/icon/icon.component\";\nimport { TextComponent } from \"../../base/text/text.component\";\nimport { LabelComponent } from \"../label/label.component\";\nimport { FeedbackTextComponent } from \"../feedback-text/feedback-text.component\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nexport type NumberFieldSize = \"default\" | \"small\";\n\n@Component({\n selector: \"tedi-number-field\",\n standalone: true,\n templateUrl: \"./number-field.component.html\",\n styleUrl: \"./number-field.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n LabelComponent,\n ButtonComponent,\n IconComponent,\n TextComponent,\n FeedbackTextComponent,\n TediTranslationPipe,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberFieldComponent),\n multi: true,\n },\n ],\n})\nexport class NumberFieldComponent implements ControlValueAccessor {\n /**\n * The unique identifier for the input element that this label is associated with. This ID should match the input element's id attribute to ensure accessibility.\n */\n id = input.required<string>();\n /**\n * The text content of the label that describes the input field.\n */\n label = input<string>();\n /**\n * Value of the input field. Supports two-way binding, use with form controls.\n */\n value = model<number>(0);\n /**\n * Is input disabled?\n * @default false\n */\n disabled = input<boolean>(false);\n /**\n * Indicates whether the input field is required. If set to true, the required indicator will be displayed next to the label.\n * @default false\n */\n required = input<boolean>(false);\n /**\n * Minimum allowed value. Disables decrementing below this value and restricts manual input.\n */\n min = input<number>();\n /**\n * Maximum allowed value. Disables incrementing above this value and restricts manual input.\n */\n max = input<number>();\n /**\n * Step size for incrementing or decrementing the value.\n * @default 1\n */\n step = input<number>(1);\n /**\n * Size of the number field.\n * @default default\n */\n size = input<NumberFieldSize>(\"default\");\n /**\n * Marks the field as invalid for validation purposes.\n * @default false\n */\n invalid = input<boolean>(false);\n /**\n * Text displayed after the input value, typically a unit.\n */\n suffix = input<string>();\n /**\n * FeedbackText component inputs.\n */\n feedbackText = input<ComponentInputs<FeedbackTextComponent>>();\n /**\n * Is input full width?\n * @default false\n */\n fullWidth = input(false);\n\n @ViewChild(\"inputElement\") inputRef!: ElementRef<HTMLInputElement>;\n\n private formDisabled = signal(false);\n private onChange: (value: number) => void = () => {};\n private onTouched: () => void = () => {};\n\n readonly isInvalid = computed(() => {\n const min = this.min();\n const max = this.max();\n\n return (\n this.invalid() ||\n Boolean(min !== undefined && this.value() < min) ||\n Boolean(max !== undefined && this.value() > max)\n );\n });\n\n readonly isDisabled = computed(() => this.disabled() || this.formDisabled());\n\n readonly decrementDisabled = computed(() => {\n const min = this.min();\n\n return this.isDisabled() || (min !== undefined && this.value() <= min);\n });\n\n readonly incrementDisabled = computed(() => {\n const max = this.max();\n\n return this.isDisabled() || (max !== undefined && this.value() >= max);\n });\n\n writeValue(value?: number): void {\n this.value.set(value ? (isNaN(value) ? 0 : value) : 0);\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.formDisabled.set(disabled);\n }\n\n focus(): void {\n this.inputRef.nativeElement.focus();\n }\n\n blur(): void {\n this.inputRef.nativeElement.blur();\n this.onTouched();\n }\n\n handleButtonClick(action: \"decrement\" | \"increment\") {\n const delta = action === \"decrement\" ? -1 : 1;\n const nextValue = this.value() + this.step() * delta;\n this.value.set(nextValue);\n this.onChange(nextValue);\n this.onTouched();\n }\n\n handleInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n const value = isNaN(input.valueAsNumber) ? 0 : input.valueAsNumber;\n this.value.set(value);\n this.onChange(value);\n }\n\n handleBlur() {\n this.onTouched();\n }\n}\n","@if (label()) {\n <label tedi-label [for]=\"id()\" [required]=\"required()\" [size]=\"size()\">\n {{ label() }}\n </label>\n}\n<div\n [class]=\"{\n 'tedi-number-field': true,\n 'tedi-number-field--invalid': isInvalid(),\n 'tedi-number-field--disabled': isDisabled(),\n }\"\n>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--decrement': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"decrementDisabled()\"\n (click)=\"handleButtonClick('decrement')\"\n >\n <tedi-icon\n name=\"remove\"\n [size]=\"18\"\n [label]=\"'numberField.decrement' | tediTranslate: step()\"\n />\n </button>\n <div\n [class]=\"{\n 'tedi-number-field__input-wrapper': true,\n 'tedi-number-field__input-wrapper--small': size() === 'small',\n 'tedi-number-field__input-wrapper--disabled': isDisabled(),\n 'tedi-number-field__input-wrapper--with-suffix': suffix(),\n 'tedi-number-field__input-wrapper--full-width': fullWidth(),\n }\"\n (click)=\"focus()\"\n >\n <input\n #inputElement\n [id]=\"id()\"\n type=\"number\"\n inputmode=\"numeric\"\n class=\"tedi-number-field__input\"\n [value]=\"value()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.aria-invalid]=\"isInvalid()\"\n (input)=\"handleInputChange($event)\"\n (blur)=\"handleBlur()\"\n />\n @if (suffix()) {\n <small tedi-text color=\"tertiary\" class=\"tedi-number-field__suffix\">\n {{ suffix() }}\n </small>\n }\n </div>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--increment': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"incrementDisabled()\"\n (click)=\"handleButtonClick('increment')\"\n >\n <tedi-icon\n name=\"add\"\n [size]=\"18\"\n [label]=\"'numberField.increment' | tediTranslate: step()\"\n />\n </button>\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n input,\n model,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { IconColor, IconComponent } from \"../../base/icon/icon.component\";\n\nexport type ToggleVariant = \"primary\" | \"colored\";\nexport type ToggleType = \"filled\" | \"outlined\";\nexport type ToggleSize = \"default\" | \"large\";\n\n@Component({\n selector: \"tedi-toggle\",\n standalone: true,\n templateUrl: \"./toggle.component.html\",\n styleUrl: \"./toggle.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true\n }\n ],\n host: {\n \"[class]\": \"classes()\"\n }\n})\nexport class ToggleComponent implements ControlValueAccessor {\n /**\n * The unique identifier for the input element that is associated with label.\n */\n id = input.required<string>();\n /**\n * Is toggle checked? Supports two-way binding, use with form controls.\n */\n checked = model<boolean>(false);\n /**\n * Is input disabled?\n * @default false\n */\n disabled = input<boolean>(false);\n /**\n * Indicates whether the input field is required.\n * @default false\n */\n required = input<boolean>(false);\n /**\n * Color variant of the toggle\n * @default primary\n */\n variant = input<ToggleVariant>(\"primary\");\n /**\n * Type of the toggle\n * @default filled\n */\n type = input<ToggleType>(\"filled\");\n /**\n * Size of the toggle\n * @default default\n */\n size = input<ToggleSize>(\"default\");\n /**\n * Should the toggle show lock icon. Works only with large toggle.\n * @default false\n */\n icon = input<boolean>(false);\n\n @ViewChild('inputElement') inputRef!: ElementRef<HTMLInputElement>;\n private onChange: (checked: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(checked: boolean): void {\n this.checked.set(checked);\n }\n\n registerOnChange(fn: (checked: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n focus(): void {\n this.inputRef.nativeElement.focus();\n }\n\n blur(): void {\n this.inputRef.nativeElement.blur();\n this.onTouched();\n }\n\n handleChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n this.checked.set(target.checked);\n this.onChange(target.checked);\n }\n\n classes = computed(() => {\n return [\n \"tedi-toggle\",\n `tedi-toggle--${this.variant()}-${this.type()}`,\n `tedi-toggle--size-${this.size()}`,\n ].join(\" \");\n });\n\n iconColor = computed<IconColor>(() => {\n if (this.type() === \"outlined\") {\n return 'white';\n }\n\n switch (this.variant()) {\n case \"primary\":\n return this.checked() ? \"brand\": \"tertiary\";\n case \"colored\":\n return this.checked() ? \"success\" : \"danger\";\n }\n });\n}\n","<input\n #inputElement\n [id]=\"id()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-checked]=\"checked()\"\n type=\"checkbox\"\n class=\"tedi-toggle__input\"\n role=\"switch\"\n (change)=\"handleChange($event)\"\n/>\n<span class=\"tedi-toggle__slider\" aria-hidden=\"true\">\n @if (icon() && size() === 'large') {\n <tedi-icon \n [name]=\"checked() ? 'lock_open_right' : 'lock'\" \n [color]=\"iconColor()\" \n [size]=\"16\"\n class=\"tedi-toggle__icon\"\n />\n }\n</span>","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n BreakpointService,\n BreakpointInputs,\n} from \"../../../../services/breakpoint/breakpoint.service\";\n\nexport type ColWidth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\nexport type JustifySelf = \"start\" | \"end\" | \"center\" | \"stretch\";\nexport type AlignSelf = \"start\" | \"end\" | \"center\" | \"stretch\";\nexport type ColInputs = {\n /**\n * Number of column width.\n * @default 1\n */\n width: ColWidth;\n /**\n * Aligns an item horizontally inside its own grid cell.\n */\n justifySelf?: JustifySelf;\n /**\n * Aligns an item vertically inside its own grid cell.\n */\n alignSelf?: AlignSelf;\n};\n\n@Component({\n selector: \"tedi-col\",\n standalone: true,\n templateUrl: \"./col.component.html\",\n styleUrl: \"./col.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"classes()\",\n \"role\": \"presentation\",\n }\n})\nexport class ColComponent implements BreakpointInputs<ColInputs> {\n width = input<ColWidth>(1);\n justifySelf = input<JustifySelf>();\n alignSelf = input<AlignSelf>();\n\n xs = input<ColInputs>();\n sm = input<ColInputs>();\n md = input<ColInputs>();\n lg = input<ColInputs>();\n xl = input<ColInputs>();\n xxl = input<ColInputs>();\n\n breakpointService = inject(BreakpointService);\n breakpointInputs = computed(() => {\n return this.breakpointService.getBreakpointInputs<ColInputs>({\n width: this.width(),\n justifySelf: this.justifySelf(),\n alignSelf: this.alignSelf(),\n xs: this.xs(),\n sm: this.sm(),\n md: this.md(),\n lg: this.lg(),\n xl: this.xl(),\n xxl: this.xxl(),\n });\n });\n\n classes = computed(() => {\n const classList = [\"col\", `col--width-${this.breakpointInputs().width}`];\n\n if (this.breakpointInputs().justifySelf) {\n classList.push(\n `col--justify-self-${this.breakpointInputs().justifySelf}`,\n );\n }\n\n if (this.breakpointInputs().alignSelf) {\n classList.push(`col--align-self-${this.breakpointInputs().alignSelf}`);\n }\n\n return classList.join(\" \");\n });\n}\n","<ng-content></ng-content>","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n BreakpointService,\n BreakpointInputs,\n} from \"../../../../services/breakpoint/breakpoint.service\";\n\nconst GAP_MAP: Record<number, string> = {\n 0: \"0rem\",\n 1: \"0.25rem\",\n 2: \"0.5rem\",\n 3: \"1rem\",\n 4: \"1.5rem\",\n 5: \"3rem\",\n};\n\nexport type Cols = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | \"auto\";\nexport type Gap = 0 | 1 | 2 | 3 | 4 | 5;\nexport type JustifyItems = \"start\" | \"end\" | \"center\" | \"stretch\";\nexport type AlignItems = \"start\" | \"end\" | \"center\" | \"stretch\";\nexport type RowInputs = {\n /**\n * The number of columns that will fit next to each other.\n * @default auto\n */\n cols: Cols;\n /**\n * Applies minimum width (px) to the column when using auto layout.\n * @default 200px\n */\n minColWidth: number;\n /**\n * Aligns items horizontally inside their grid cell.\n */\n justifyItems?: JustifyItems;\n /**\n * Aligns items vertically inside their grid cell.\n */\n alignItems?: AlignItems;\n /**\n * Add gap between items.\n */\n gap?: Gap;\n /**\n * Add horizontal gap between items.\n */\n gapX?: Gap;\n /**\n * Add vertical gap between items.\n */\n gapY?: Gap;\n};\n\n@Component({\n selector: \"tedi-row\",\n standalone: true,\n templateUrl: \"./row.component.html\",\n styleUrl: \"./row.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"classes()\",\n \"[style.--_grid-gap]\": \"breakpointInputs().cols === 'auto' ? gridGap() : null\",\n \"[style.--_grid-col-width]\": \"breakpointInputs().cols === 'auto' ? breakpointInputs().minColWidth + 'px' : null\",\n \"role\": \"presentation\"\n }\n})\nexport class RowComponent implements BreakpointInputs<RowInputs> {\n cols = input<Cols>(\"auto\");\n minColWidth = input<number>(200);\n justifyItems = input<JustifyItems>();\n alignItems = input<AlignItems>();\n gap = input<Gap>();\n gapX = input<Gap>();\n gapY = input<Gap>();\n\n xs = input<RowInputs>();\n sm = input<RowInputs>();\n md = input<RowInputs>();\n lg = input<RowInputs>();\n xl = input<RowInputs>();\n xxl = input<RowInputs>();\n\n breakpointService = inject(BreakpointService);\n breakpointInputs = computed(() => {\n return this.breakpointService.getBreakpointInputs<RowInputs>({\n cols: this.cols(),\n minColWidth: this.minColWidth(),\n justifyItems: this.justifyItems(),\n alignItems: this.alignItems(),\n gap: this.gap(),\n gapX: this.gapX(),\n gapY: this.gapY(),\n xs: this.xs(),\n sm: this.sm(),\n md: this.md(),\n lg: this.lg(),\n xl: this.xl(),\n xxl: this.xxl(),\n });\n });\n\n gridGap = computed(() => {\n const gap = this.breakpointInputs().gap;\n const gapX = this.breakpointInputs().gapX;\n const gapValue = gap ?? gapX;\n return GAP_MAP[gapValue ?? 0];\n });\n\n classes = computed(() => {\n const classList = [\"row\", `row--cols-${this.breakpointInputs().cols}`];\n\n if (this.breakpointInputs().justifyItems) {\n classList.push(\n `row--justify-items-${this.breakpointInputs().justifyItems}`,\n );\n }\n\n if (this.breakpointInputs().alignItems) {\n classList.push(`row--align-items-${this.breakpointInputs().alignItems}`);\n }\n\n if (this.breakpointInputs().gap !== undefined) {\n classList.push(`g-${this.breakpointInputs().gap}`);\n }\n\n if (this.breakpointInputs().gapX !== undefined) {\n classList.push(`gx-${this.breakpointInputs().gapX}`);\n }\n\n if (this.breakpointInputs().gapY !== undefined) {\n classList.push(`gy-${this.breakpointInputs().gapY}`);\n }\n\n return classList.join(\" \");\n });\n}\n","<ng-content></ng-content>","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\n\nexport type SeparatorAxis = \"horizontal\" | \"vertical\";\nexport type SeparatorColor = \"primary\" | \"secondary\" | \"accent\";\nexport type SeparatorVariant = \"dotted\" | \"dotted-small\" | \"dot-only\";\nexport type SeparatorDotSize = \"large\" | \"medium\" | \"small\" | \"extra-small\";\nexport type SeparatorThickness = 1 | 2;\nexport type SeparatorSpacingValue =\n | 0\n | 0.25\n | 0.5\n | 0.75\n | 1\n | 1.25\n | 1.5\n | 1.75\n | 2\n | 2.5\n | 5;\nexport type SeparatorSpacing = {\n top?: SeparatorSpacingValue;\n bottom?: SeparatorSpacingValue;\n left?: SeparatorSpacingValue;\n right?: SeparatorSpacingValue;\n};\n\n@Component({\n selector: \"tedi-separator\",\n template: \"\",\n styleUrl: \"./separator.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class]\": \"classes()\",\n \"[style.width]\":\n \"variant() === 'dot-only' ? null : axis() === 'horizontal' ? size() : '0px'\",\n \"[style.height]\":\n \"variant() === 'dot-only' ? null : axis() === 'vertical' ? size() : '0px'\",\n },\n})\nexport class SeparatorComponent {\n /**\n * Axis of separator.\n */\n axis = input<SeparatorAxis>(\"horizontal\");\n /**\n * Color of separator\n */\n color = input<SeparatorColor>(\"primary\");\n /**\n * Separator style variant.\n */\n variant = input<SeparatorVariant>();\n /**\n * Dot size. Only used when variant is \"dot-only\".\n */\n dotSize = input<SeparatorDotSize>();\n /**\n * Is dot filled? Only used when variant is \"dot-only\".\n */\n dotFilled = input(true);\n /**\n * Thickness in pixels (ignored if variant is used).\n * @default 1\n */\n thickness = input<SeparatorThickness>(1);\n /**\n * Spacing applied based on the axis:\n * - For horizontal axis, spacing is applied to top and bottom of the separator.\n * - For vertical axis, spacing is applied to left and right of the separator.\n */\n spacing = input<SeparatorSpacingValue | SeparatorSpacing>();\n /**\n * Size of separator based on the axis:\n * - For horizontal axis, size defines width.\n * - For vertical axis, size defines height (when using percentages, then parent container must have height set).\n * @default 100%\n */\n size = input(\"100%\");\n\n // eslint-disable-next-line complexity\n classes = computed(() => {\n const classList = [\n \"tedi-separator\",\n `tedi-separator--${this.color()}`,\n `tedi-separator--${this.axis()}`,\n ];\n\n if (this.variant()) {\n classList.push(`tedi-separator--${this.variant()}`);\n }\n\n if (this.variant() && this.dotSize()) {\n classList.push(`tedi-separator--${this.variant()}-${this.dotSize()}`);\n }\n\n if (this.variant() === \"dot-only\" && this.dotFilled()) {\n classList.push(`tedi-separator--${this.variant()}-filled`);\n } else {\n classList.push(`tedi-separator--${this.variant()}-outlined`);\n }\n\n if (this.thickness()) {\n classList.push(`tedi-separator--thickness-${this.thickness()}`);\n }\n\n const spacing = this.spacing();\n\n if (spacing && typeof spacing === \"number\") {\n classList.push(`tedi-separator--spacing-${spacing}`.replace(\".\", \"-\"));\n } else if (spacing) {\n if (this.axis() === \"horizontal\") {\n if (spacing.top) {\n classList.push(\n `tedi-separator--top-${spacing.top}`.replace(\".\", \"-\"),\n );\n }\n\n if (spacing.bottom) {\n classList.push(\n `tedi-separator--bottom-${spacing.bottom}`.replace(\".\", \"-\"),\n );\n }\n } else {\n if (spacing.left) {\n classList.push(\n `tedi-separator--left-${spacing.left}`.replace(\".\", \"-\"),\n );\n }\n\n if (spacing.right) {\n classList.push(\n `tedi-separator--right-${spacing.right}`.replace(\".\", \"-\"),\n );\n }\n }\n }\n\n return classList.join(\" \");\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n signal,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { TimelineItemComponent } from \"./timeline-item/timeline-item.component\";\n\n@Component({\n standalone: true,\n selector: \"tedi-timeline\",\n template: \"<ng-content />\",\n styleUrl: \"./timeline.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimelineComponent {\n /** Index of active item */\n activeIndex = input<number>();\n\n items = signal<TimelineItemComponent[]>([]);\n\n registerItem(item: TimelineItemComponent) {\n this.items.update((list) => [...list, item]);\n }\n\n unregisterItem(item: TimelineItemComponent) {\n this.items.update((list) => list.filter((i) => i !== item));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n SeparatorComponent,\n SeparatorColor,\n} from \"../../separator/separator.component\";\nimport { TextComponent } from \"../../../base/text/text.component\";\nimport { TimelineComponent } from \"../timeline.component\";\nimport { NgClass } from \"@angular/common\";\n\ntype TimelineItemState = \"current\" | \"past\" | \"future\";\n\n@Component({\n standalone: true,\n selector: \"tedi-timeline-item\",\n imports: [SeparatorComponent, TextComponent, NgClass],\n templateUrl: \"./timeline-item.component.html\",\n styleUrl: \"./timeline-item.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimelineItemComponent implements OnInit, OnDestroy {\n /** Item timings */\n timings = input<string[]>([]);\n\n timeline = inject(TimelineComponent, { optional: true });\n\n ngOnInit() {\n if (!this.timeline) {\n return;\n }\n\n this.timeline.registerItem(this);\n }\n\n ngOnDestroy() {\n if (!this.timeline) {\n return;\n }\n\n this.timeline.unregisterItem(this);\n }\n\n isLast = computed(() => {\n const timeline = this.timeline;\n\n if (!timeline) {\n return false;\n }\n\n const currentIndex = timeline.items().findIndex((t) => t === this);\n\n if (currentIndex === timeline.items().length - 1) {\n return true;\n } else {\n return false;\n }\n });\n\n state = computed<TimelineItemState>(() => {\n const timeline = this.timeline;\n const activeItemIndex = timeline?.activeIndex();\n\n if (!timeline || activeItemIndex === undefined) {\n return \"future\";\n }\n\n const currentIndex = timeline.items().findIndex((t) => t === this);\n\n if (activeItemIndex === currentIndex) {\n return \"current\";\n } else if (activeItemIndex > currentIndex) {\n return \"past\";\n } else {\n return \"future\";\n }\n });\n\n color = computed<SeparatorColor>(() => {\n if (this.state() === \"current\" || this.state() === \"past\") {\n return \"accent\";\n }\n\n return \"secondary\";\n });\n}\n","<div class=\"tedi-timeline__timings\">\n @for (timing of timings(); track timing; let index = $index) {\n <div tedi-text color=\"tertiary\" class=\"tedi-timeline__time\">\n {{ timing }}\n </div>\n }\n</div>\n<div\n class=\"tedi-timeline__marker\"\n [ngClass]=\"{ 'tedi-timeline__marker--large': state() === 'current' }\"\n>\n <tedi-separator\n [color]=\"color()\"\n variant=\"dot-only\"\n [dotSize]=\"state() === 'current' ? 'large' : 'medium'\"\n [dotFilled]=\"state() !== 'future'\"\n />\n @if (!isLast()) {\n <tedi-separator\n axis=\"vertical\"\n [color]=\"state() === 'past' ? 'accent' : 'secondary'\"\n />\n }\n</div>\n<div class=\"tedi-timeline__info\">\n <div>\n <ng-content select=\"tedi-timeline-title\" />\n <ng-content select=\"tedi-timeline-description\" />\n </div>\n <div class=\"tedi-timeline__content\">\n <ng-content />\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"tedi-timeline-description\",\n template: \"<ng-content />\",\n styleUrl: \"./timeline-description.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimelineDescriptionComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n standalone: true,\n selector: \"tedi-timeline-title\",\n template: \"<ng-content />\",\n styleUrl: \"./timeline-title.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimelineTitleComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { BreakpointService } from \"../../../services/breakpoint/breakpoint.service\";\n\n@Component({\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: \"tedi-footer\",\n templateUrl: \"./footer.component.html\",\n styleUrl: \"./footer.component.scss\",\n})\nexport class FooterComponent {\n breakpointService = inject(BreakpointService);\n\n mobileLayout = this.breakpointService.isBelowBreakpoint(\"sm\");\n}\n","<footer class=\"tedi-footer\">\n <div\n class=\"tedi-footer__container\"\n [class.tedi-footer--mobile]=\"mobileLayout()\"\n >\n <ng-content select=\"[tedi-footer-start]\" />\n <div class=\"tedi-footer__center\">\n <ng-content select=\"tedi-footer-body\" />\n </div>\n <ng-content select=\"[tedi-footer-end]\" />\n </div>\n <ng-content select=\"tedi-footer-bottom\" />\n</footer>\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { BreakpointService } from \"../../../../services/breakpoint/breakpoint.service\";\n\n@Component({\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: \"tedi-footer-body\",\n template: \"<ng-content />\",\n styleUrl: \"./footer-body.component.scss\",\n host: {\n class: \"tedi-footer-body\",\n \"[class.tedi-footer-body--mobile]\": \"this.mobileLayout()\",\n },\n})\nexport class FooterBodyComponent {\n breakpointService = inject(BreakpointService);\n\n mobileLayout = this.breakpointService.isBelowBreakpoint(\"sm\");\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from \"@angular/animations\";\n\nimport { TextComponent } from \"../../../base/text/text.component\";\nimport { IconComponent } from \"../../../base/icon/icon.component\";\nimport { BreakpointService } from \"../../../../services/breakpoint/breakpoint.service\";\n\n@Component({\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: \"tedi-footer-section\",\n imports: [IconComponent, TextComponent],\n templateUrl: \"./footer-section.component.html\",\n styleUrl: \"./footer-section.component.scss\",\n host: {\n class: \"tedi-footer-section\",\n \"[class.tedi-footer-section--collapse]\": \"applyCollapse()\",\n },\n animations: [\n trigger(\"collapseContent\", [\n state(\n \"collapsed\",\n style({\n height: \"0\",\n opacity: 0,\n visibility: \"hidden\",\n }),\n ),\n state(\n \"expanded\",\n style({\n height: \"*\",\n opacity: 1,\n visibility: \"visible\",\n }),\n ),\n transition(\"collapsed <=> expanded\", [animate(\"300ms ease\")]),\n ]),\n ],\n})\nexport class FooterSectionComponent {\n /**\n * Specifies the icon to be displayed in the footer links.\n */\n icon = input<string>();\n /**\n * Specifies the heading text for the footer links.\n */\n heading = input<string>();\n /**\n * Enables the collapse functionality for the footer links.\n * When set to true, the footer links will be collapsible on mobile devices.\n * @default \"false\"\n */\n collapse = input<boolean>(false);\n collapseOpen = signal<boolean>(false);\n private breakpointService = inject(BreakpointService);\n\n applyCollapse = computed(() => {\n return this.collapse() && this.mobileLayout();\n });\n\n hideIcon = this.breakpointService.isBelowBreakpoint(\"lg\");\n\n mobileLayout = this.breakpointService.isBelowBreakpoint(\"sm\");\n\n toggleCollapse() {\n if (this.collapse()) {\n this.collapseOpen.update((value) => !value);\n }\n }\n}\n","@if (icon() && !hideIcon()) {\n <tedi-icon class=\"tedi-footer-section__icon\" [name]=\"icon()!\" color=\"white\" />\n}\n\n<div\n class=\"tedi-footer-section__container\"\n [class.tedi-footer-section__container--mobile]=\"mobileLayout()\"\n>\n @if (applyCollapse()) {\n <button class=\"tedi-footer-section__button\" (click)=\"toggleCollapse()\">\n {{ heading() }}\n <tedi-icon\n class=\"collapse__icon\"\n color=\"white\"\n [name]=\"collapseOpen() ? 'expand_less' : 'expand_more'\"\n />\n </button>\n } @else {\n <strong tedi-text class=\"tedi-footer-section__heading\" color=\"white\">\n {{ heading() }}\n </strong>\n }\n <div\n [class.tedi-footer-section__content-hidden]=\"\n applyCollapse() && !collapseOpen()\n \"\n [@collapseContent]=\"\n applyCollapse() ? (collapseOpen() ? 'expanded' : 'collapsed') : 'expanded'\n \"\n class=\"tedi-footer-section__content\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n","import {\n Attribute,\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n signal,\n ViewEncapsulation,\n HostBinding,\n} from \"@angular/core\";\nimport { BreakpointService } from \"../../../../services/breakpoint/breakpoint.service\";\n\nexport type FooterSidePlacement = \"start\" | \"end\";\nexport type FooterSidePosition = \"start\" | \"center\" | \"end\";\n\n@Component({\n standalone: true,\n selector: \"tedi-footer-side\",\n template: `<ng-content />`,\n styleUrl: \"./footer-side.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class FooterSideComponent {\n /**\n * Specifies the position of the footer internal content.\n * @default center\n */\n position = input<FooterSidePosition>(\"center\");\n placement = signal<FooterSidePlacement | null>(null);\n breakpointService = inject(BreakpointService);\n\n mobileLayout = this.breakpointService.isBelowBreakpoint(\"sm\");\n\n constructor(\n @Attribute(\"tedi-footer-start\") public isStart: string,\n @Attribute(\"tedi-footer-end\") public isEnd: string,\n ) {\n const side =\n this.isStart !== null ? \"start\" : this.isEnd !== null ? \"end\" : null;\n if (side) this.placement.set(side as FooterSidePlacement);\n else\n console.warn(\n '[TediFooterSide] No placement detected. Use \"tedi-footer-start\" or \"tedi-footer-end\" attribute to define where this component should be rendered.',\n );\n }\n\n @HostBinding(\"class\")\n get hostClasses(): string {\n const classes = [\"tedi-footer-side\"];\n\n if (this.mobileLayout()) classes.push(\"tedi-footer-side--mobile\");\n\n classes.push(`tedi-footer-side--${this.placement()}`);\n classes.push(`tedi-footer-side--vertical-${this.position()}`);\n\n return classes.join(\" \");\n }\n}\n","import {\n AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n Renderer2,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n BreakpointInputs,\n BreakpointService,\n} from \"../../../services/breakpoint/breakpoint.service\";\n\nexport type LinkVariant = \"default\" | \"inverted\";\nexport type LinkSize = \"default\" | \"small\";\nexport type LinkInputs = {\n /**\n * Variant of the link.\n * @default default\n */\n variant: LinkVariant;\n /**\n * Size of the link.\n * @default default\n */\n size: LinkSize;\n /**\n * Does link have underline?\n * @default true\n */\n underline: boolean;\n};\n\n@Component({\n selector: \"[tedi-link]\",\n standalone: true,\n templateUrl: \"./link.component.html\",\n styleUrl: \"./link.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"classes()\",\n \"[attr.tabIndex]\": \"0\",\n },\n})\nexport class LinkComponent\n implements BreakpointInputs<LinkInputs>, AfterContentChecked\n{\n variant = input<LinkVariant>(\"default\");\n size = input<LinkSize>(\"default\");\n underline = input<boolean>(true);\n\n xs = input<LinkInputs>();\n sm = input<LinkInputs>();\n md = input<LinkInputs>();\n lg = input<LinkInputs>();\n xl = input<LinkInputs>();\n xxl = input<LinkInputs>();\n\n private host = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n ngAfterContentChecked(): void {\n const childNodes: ChildNode[] = Array.from(\n this.host.nativeElement.childNodes,\n );\n\n for (const node of childNodes) {\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()) {\n if (node.parentNode !== this.host.nativeElement) {\n continue;\n }\n\n const span = this.renderer.createElement(\"span\") as HTMLSpanElement;\n this.renderer.insertBefore(this.host.nativeElement, span, node);\n this.renderer.appendChild(span, node);\n }\n }\n }\n\n breakpointService = inject(BreakpointService);\n breakpointInputs = computed(() => {\n return this.breakpointService.getBreakpointInputs<LinkInputs>({\n variant: this.variant(),\n size: this.size(),\n underline: this.underline(),\n\n xs: this.xs(),\n sm: this.sm(),\n md: this.md(),\n lg: this.lg(),\n xl: this.xl(),\n xxl: this.xxl(),\n });\n });\n\n classes = computed(() => {\n const classList = [\"tedi-link\"];\n\n if (this.breakpointInputs().variant === \"inverted\") {\n classList.push(\"tedi-link--inverted\");\n }\n\n if (this.breakpointInputs().size === \"small\") {\n classList.push(\"tedi-link--small\");\n }\n\n if (!this.breakpointInputs().underline) {\n classList.push(\"tedi-link--no-underline\");\n }\n\n return classList.join(\" \");\n });\n}\n","<ng-content></ng-content>","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n inject,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n AfterContentInit,\n effect,\n Injector,\n runInInjectionContext,\n ViewContainerRef,\n EmbeddedViewRef,\n} from \"@angular/core\";\nimport { LinkComponent } from \"../../../navigation/link/link.component\";\nimport { BreakpointService } from \"../../../../services/breakpoint/breakpoint.service\";\n\n@Component({\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: \"tedi-footer-bottom\",\n templateUrl: \"./footer-bottom.component.html\",\n styleUrl: \"./footer-bottom.component.scss\",\n host: {\n class: \"tedi-footer-bottom\",\n \"[class.tedi-footer-bottom--mobile]\": \"mobileLayout()\",\n },\n})\nexport class FooterBottomComponent implements AfterContentInit {\n private injector = inject(Injector);\n private renderer = inject(Renderer2);\n private breakpointService = inject(BreakpointService);\n private hostRef = inject(ElementRef<HTMLElement>);\n private viewContainerRef = inject(ViewContainerRef);\n private ellipsisViews: Array<EmbeddedViewRef<void>> = [];\n\n @ViewChild(\"ellipsis\", { static: true }) ellipsis!: TemplateRef<void>;\n @ContentChildren(LinkComponent, { descendants: true, read: ElementRef })\n links!: QueryList<ElementRef>;\n\n mobileLayout = this.breakpointService.isBelowBreakpoint(\"sm\");\n\n ngAfterContentInit(): void {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n if (this.mobileLayout()) {\n this.addEllipsisElements();\n } else {\n this.removeEllipsisElements();\n }\n });\n });\n }\n\n private addEllipsisElements() {\n if (!this.links || this.links.length === 0) return;\n const linksArray = this.links.toArray();\n this.removeEllipsisElements();\n\n linksArray.forEach((link, index) => {\n const nativeElement = link.nativeElement;\n\n if (index < linksArray.length - 1) {\n const parent = nativeElement.parentNode;\n if (!parent) return;\n\n const embeddedView = this.viewContainerRef.createEmbeddedView(\n this.ellipsis,\n );\n embeddedView.detectChanges();\n this.ellipsisViews.push(embeddedView);\n const ellipsisElement = embeddedView.rootNodes[0];\n this.renderer.addClass(ellipsisElement, \"tedi-footer-bottom__ellipsis\");\n\n this.renderer.insertBefore(\n parent,\n ellipsisElement,\n nativeElement.nextSibling,\n );\n }\n });\n }\n\n private removeEllipsisElements(): void {\n const ellipsisEls = this.hostRef.nativeElement.querySelectorAll(\n \".tedi-footer-bottom__ellipsis\",\n );\n\n ellipsisEls.forEach((el: HTMLElement) => {\n const parent = el.parentNode;\n if (parent) {\n this.renderer.removeChild(parent, el);\n }\n });\n this.ellipsisViews.forEach((view) => view.destroy());\n this.ellipsisViews = [];\n }\n}\n","<ng-template #ellipsis>\n <svg\n class=\"tedi-footer-bottom__ellipsis\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"4\"\n height=\"5\"\n viewBox=\"0 0 4 5\"\n fill=\"none\"\n >\n <circle cx=\"2\" cy=\"2.41309\" r=\"2\" fill=\"#9293A4\" />\n </svg>\n</ng-template>\n\n<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n selector: \"header[tedi-header]\",\n standalone: true,\n templateUrl: \"./header.component.html\",\n styleUrl: \"./header.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"class\": \"tedi-header\"\n }\n})\nexport class HeaderComponent {}","<ng-content select=\"button[tedi-sidenav-toggle]\"></ng-content>\n<div class=\"tedi-header__main\">\n <ng-content></ng-content>\n</div>","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n selector: \"tedi-header-actions\",\n standalone: true,\n template: \"<ng-content />\",\n styleUrl: \"./header-actions.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"class\": \"tedi-header-actions\"\n }\n})\nexport class HeaderActionsComponent {}","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'tedi-header-content',\n standalone: true,\n template: \"<ng-content />\",\n styleUrl: './header-content.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HeaderContentComponent {}\n","import { DOCUMENT } from \"@angular/common\";\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n input,\n ViewChild,\n inject,\n Renderer2,\n} from \"@angular/core\";\nimport { NgxFloatUiContentComponent, NgxFloatUiModule, NgxFloatUiPlacements, NgxFloatUiTriggers } from \"ngx-float-ui\";\n\nexport type PopoverOpenWith = `${NgxFloatUiTriggers}`;\nexport type PopoverPosition = `${NgxFloatUiPlacements}`;\n\n@Component({\n standalone: true,\n selector: \"tedi-popover\",\n imports: [NgxFloatUiModule],\n templateUrl: \"./popover.component.html\",\n styleUrl: \"./popover.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PopoverComponent {\n /**\n * * The trigger event that opens the popover.\n * * @default click\n * */\n openWith = input<PopoverOpenWith>(\"click\");\n /**\n * The position of the popover relative to the trigger element.\n * @default top\n */\n position = input<PopoverPosition>(\"top\");\n /**\n * Is dismissible by clicking outside of content?\n * @default true\n */\n dismissible = input(true);\n /**\n * Does popover content hide on scroll?\n * @default false\n */\n hideOnScroll = input(false);\n /**\n * Does popover have illustrative border on the arrow side?\n * @default false\n */\n withBorder = input(false);\n /**\n * Lock scrolling on rest of the page?\n * @default false\n */\n lockScroll = input(false);\n \n @ViewChild('floatUiComponent') floatUiComponent!: NgxFloatUiContentComponent;\n private readonly document = inject(DOCUMENT);\n private readonly renderer = inject(Renderer2);\n\n onHide() {\n if (this.lockScroll()) {\n this.renderer.removeStyle(this.document.body, 'overflow');\n }\n }\n\n onOpen() {\n if (this.lockScroll()) {\n this.renderer.setStyle(this.document.body, 'overflow', 'hidden');\n }\n }\n}","<div\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [looseTrigger]=\"openWith()\"\n [hideOnClickOutside]=\"dismissible()\"\n [hideOnScroll]=\"hideOnScroll()\"\n [applyClass]=\"withBorder() ? 'float-ui-container--border' : ''\"\n [disableAnimation]=\"true\"\n appendTo=\"body\"\n aria-haspopup=\"dialog\"\n style=\"display: inline-flex;\"\n (onHidden)=\"onHide()\"\n (onShown)=\"onOpen()\"\n>\n <ng-content select=\"tedi-popover-trigger\" />\n</div>\n<float-ui-content #floatUiComponent>\n <ng-content select=\"tedi-popover-content\" />\n</float-ui-content>","import {\n AfterContentChecked,\n Component,\n ElementRef,\n inject,\n Renderer2,\n} from \"@angular/core\";\n\n@Component({\n selector: \"tedi-popover-trigger\",\n standalone: true,\n template: \"<ng-content />\",\n styleUrl: \"../popover.component.scss\",\n})\nexport class PopoverTriggerComponent implements AfterContentChecked {\n private host = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n ngAfterContentChecked(): void {\n const childNodes: ChildNode[] = Array.from(\n this.host.nativeElement.childNodes,\n );\n\n for (const node of childNodes) {\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()) {\n if (node.parentNode !== this.host.nativeElement) {\n continue;\n }\n\n const span = this.renderer.createElement(\"span\") as HTMLSpanElement;\n this.renderer.addClass(span, \"tedi-popover-trigger__text\");\n this.renderer.insertBefore(this.host.nativeElement, span, node);\n this.renderer.appendChild(span, node);\n }\n }\n }\n}\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from \"@angular/core\";\nimport { ClosingButtonComponent } from \"../../../buttons/closing-button/closing-button.component\";\nimport { PopoverComponent } from \"../popover.component\";\n \nexport type PopoverWidth = \"none\" | \"small\" | \"medium\" | \"large\";\n\nlet popoverTitleId = 0;\n\n@Component({\n standalone: true,\n selector: \"tedi-popover-content\",\n templateUrl: \"./popover-content.component.html\",\n styleUrl: \"../popover.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, ClosingButtonComponent],\n host: {\n \"[class]\": \"classes()\",\n \"role\": \"dialog\",\n \"[attr.aria-labelledby]\": \"title() ? titleId : null\",\n },\n})\nexport class PopoverContentComponent {\n /**\n * The width of the popover. Can be 'none', 'small', 'medium', or 'large'.\n * @default small\n */\n maxWidth = input<PopoverWidth>(\"small\");\n /**\n * Heading title of the content\n */\n title = input(\"\");\n /**\n * Should content show close button?\n * @default false\n */\n showClose = input(false);\n\n private popover = inject(PopoverComponent, { optional: true });\n titleId = `popover-title-${popoverTitleId++}`;\n\n classes = computed(() => {\n const classList = [\"tedi-popover-content\", `tedi-popover-content--${this.maxWidth()}`];\n return classList.join(\" \");\n })\n\n handleClose() {\n this.popover?.floatUiComponent.hide();\n }\n}","@if (title() && showClose()) {\n <div class=\"tedi-popover-content__head\">\n <h4 class=\"tedi-popover-content__title\" [id]=\"titleId\">{{ title() }}</h4>\n <button tedi-closing-button (click)=\"handleClose()\"></button>\n </div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else if (showClose()) {\n <div class=\"tedi-popover-content__head\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <button tedi-closing-button size=\"small\" (click)=\"handleClose()\"></button>\n </div>\n} @else if (title()) {\n <h4 [id]=\"titleId\">{{ title() }}</h4>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { NgFor } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input, output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../../../base/icon/icon.component';\nimport { TextComponent } from '../../../base/text/text.component';\nimport { PopoverComponent } from '../../../overlay/popover/popover.component';\nimport { PopoverTriggerComponent } from '../../../overlay/popover/popover-trigger/popover-trigger.component';\nimport { PopoverContentComponent } from '../../../overlay/popover/popover-content/popover-content.component';\nimport { TediTranslationService, Language } from '../../../../services/translation/translation.service';\nimport { TediTranslationPipe } from '../../../../services/translation/translation.pipe';\n\nexport type HeaderLanguage = {\n [L in Language]?: string;\n}\n\n@Component({\n selector: 'tedi-header-language',\n standalone: true,\n imports: [NgFor, IconComponent, TextComponent, PopoverComponent, PopoverTriggerComponent, PopoverContentComponent, TediTranslationPipe],\n templateUrl: './header-language.component.html',\n styleUrl: './header-language.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: \"tedi-header-language\"\n }\n})\nexport class HeaderLanguageComponent {\n /** \n * Languages object.\n * Key is value in 'Language' type.\n * Value should be text shown in the UI.\n */\n languages = input.required<HeaderLanguage>();\n /**\n * This is event emitter for changing language\n */\n languageChange = output<Language>();\n\n @ViewChild(forwardRef(() => PopoverComponent)) popover?: PopoverComponent;\n\n translationService = inject(TediTranslationService);\n\n languageKeys = computed(() => Object.keys(this.languages()) as Language[]);\n\n handleChangeLang(lang: Language) {\n this.languageChange.emit(lang);\n this.translationService.setLanguage(lang);\n this.popover?.floatUiComponent.hide();\n }\n}\n","<span tedi-text color=\"secondary\" modifiers=\"small\" class=\"tedi-header-language__label\">{{ \"header.select-lang\" | tediTranslate }}</span>\n<tedi-popover [withBorder]=\"true\" position=\"bottom\">\n <tedi-popover-trigger>\n <button class=\"tedi-link tedi-header__link-button\">\n <span>{{ languages()[translationService.getLanguage()] }}</span>\n <tedi-icon name=\"expand_more\" />\n </button>\n </tedi-popover-trigger>\n <tedi-popover-content maxWidth=\"none\">\n <button \n *ngFor=\"let language of languageKeys();\" \n class=\"tedi-link tedi-header__link-button\"\n (click)=\"handleChangeLang(language)\"\n >\n <span>{{ languages()[language] }}</span>\n </button>\n </tedi-popover-content>\n</tedi-popover>","import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../../../base/icon/icon.component';\nimport { ButtonComponent } from '../../../buttons/button/button.component';\nimport { BreakpointService } from \"../../../../services/breakpoint/breakpoint.service\";\nimport { TediTranslationService } from '../../../../services/translation/translation.service';\n\n@Component({\n selector: 'tedi-header-login',\n standalone: true,\n imports: [ButtonComponent, IconComponent],\n templateUrl: './header-login.component.html',\n styleUrl: './header-login.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderLoginComponent {\n breakpointService = inject(BreakpointService);\n translationService = inject(TediTranslationService);\n\n isMobile = this.breakpointService.isBelowBreakpoint(\"sm\");\n textDesktop = this.translationService.track(\"header.login\");\n textMobile = this.translationService.track(\"header.login-mobile\");\n\n text = computed(() => this.isMobile() ? this.textMobile() : this.textDesktop());\n}\n","<button \n tedi-button \n [variant]=\"isMobile() ? 'neutral' : 'primary'\" \n [class]=\"{ 'tedi-header-login__button': true, 'tedi-header-login__button--mobile': isMobile() }\"\n>\n @if (isMobile()) {\n <tedi-icon name=\"login\" />\n }\n {{ text() }}\n</button>","import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../../../base/icon/icon.component';\nimport { BreakpointService } from \"../../../../services/breakpoint/breakpoint.service\";\n\n@Component({\n selector: 'button[tedi-header-logout]',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './header-logout.component.html',\n styleUrl: './header-logout.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class]\": \"classes()\"\n }\n})\nexport class HeaderLogoutComponent {\n breakpointService = inject(BreakpointService);\n isMobile = this.breakpointService.isBelowBreakpoint(\"sm\");\n\n classes = computed(() => {\n const classList = [\"tedi-header-logout\", \"tedi-link\"];\n\n if (this.isMobile()) {\n classList.push(\"tedi-header-logout--mobile\");\n }\n\n return classList.join(\" \");\n })\n}\n","<tedi-icon name=\"logout\" />\n<span>\n <ng-content></ng-content>\n</span>","import { Directive, input, inject, TemplateRef, ViewContainerRef, effect } from '@angular/core';\nimport { Breakpoint, BreakpointService } from '../../services/breakpoint/breakpoint.service';\n\n@Directive({\n selector: '[showAt]',\n standalone: true,\n})\nexport class ShowAtDirective {\n showAt = input.required<Breakpoint>();\n\n private templateRef = inject(TemplateRef);\n private viewContainerRef = inject(ViewContainerRef);\n private breakpointService = inject(BreakpointService);\n\n constructor() {\n effect(() => {\n if (this.breakpointService.isAboveBreakpoint(this.showAt())()) {\n this.viewContainerRef.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainerRef.clear();\n }\n })\n }\n}\n","import { Directive, input, inject, TemplateRef, ViewContainerRef, effect } from '@angular/core';\nimport { Breakpoint, BreakpointService } from '../../services/breakpoint/breakpoint.service';\n\n@Directive({\n selector: '[hideAt]',\n standalone: true,\n})\nexport class HideAtDirective {\n hideAt = input.required<Breakpoint>();\n\n private templateRef = inject(TemplateRef);\n private viewContainerRef = inject(ViewContainerRef);\n private breakpointService = inject(BreakpointService);\n\n constructor() {\n effect(() => {\n if (this.breakpointService.isBelowBreakpoint(this.hideAt())()) {\n this.viewContainerRef.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainerRef.clear();\n }\n })\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { DOCUMENT, NgTemplateOutlet } from \"@angular/common\";\nimport { IconComponent } from \"../../../base/icon/icon.component\";\nimport { ShowAtDirective } from \"../../../../directives/show-at/show-at.directive\";\nimport { HideAtDirective } from \"../../../../directives/hide-at/hide-at.directive\";\nimport { ButtonComponent } from \"../../../buttons/button/button.component\";\nimport { PopoverComponent } from \"../../../overlay/popover/popover.component\";\nimport { PopoverTriggerComponent } from \"../../../overlay/popover/popover-trigger/popover-trigger.component\";\nimport { PopoverContentComponent } from \"../../../overlay/popover/popover-content/popover-content.component\";\nimport {\n Breakpoint,\n BreakpointService,\n} from \"../../../../services/breakpoint/breakpoint.service\";\nimport { TediTranslationPipe } from \"../../../../services/translation/translation.pipe\";\n\n@Component({\n selector: \"tedi-header-profile\",\n standalone: true,\n imports: [\n PopoverComponent,\n PopoverTriggerComponent,\n PopoverContentComponent,\n IconComponent,\n ButtonComponent,\n ShowAtDirective,\n HideAtDirective,\n NgTemplateOutlet,\n TediTranslationPipe,\n ],\n templateUrl: \"./header-profile.component.html\",\n styleUrl: \"./header-profile.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderProfileComponent implements AfterContentInit {\n /** Name of representative */\n name = input(\"\");\n /** Breakpoint at which we show dropdown instead of modal */\n showDropdown = input<Breakpoint>();\n\n private breakpointService = inject(BreakpointService);\n private readonly document = inject(DOCUMENT);\n private readonly host = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly eventListeners: (() => void)[] = [];\n\n constructor() {\n effect(() => {\n if (this.modalOpen()) {\n this.renderer.setStyle(this.document.body, \"overflow\", \"hidden\");\n } else {\n this.renderer.removeStyle(this.document.body, \"overflow\");\n }\n });\n }\n\n modalOpen = signal(false);\n\n ngAfterContentInit(): void {\n const element = this.host.nativeElement as HTMLElement;\n\n this.eventListeners.push(\n this.renderer.listen(\"document\", \"click\", (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const clickedInside = element.contains(target);\n\n if (this.modalOpen() && !clickedInside) {\n this.modalOpen.set(false);\n }\n }),\n );\n }\n\n handleModalOpen() {\n const dropdownBreakpoint = this.showDropdown();\n\n if (\n !(\n dropdownBreakpoint &&\n this.breakpointService.isAboveBreakpoint(dropdownBreakpoint)()\n )\n ) {\n this.modalOpen.update((prev) => !prev);\n }\n }\n}\n","@if (showDropdown(); as dropdown) {\n <ng-container *hideAt=\"dropdown\">\n <ng-container *ngTemplateOutlet=\"button\"></ng-container>\n <ng-container *ngTemplateOutlet=\"modal\"></ng-container>\n </ng-container>\n\n <ng-container *showAt=\"dropdown\">\n <tedi-popover [withBorder]=\"true\" position=\"bottom\">\n <tedi-popover-trigger>\n <ng-container *ngTemplateOutlet=\"button\"></ng-container>\n </tedi-popover-trigger>\n <tedi-popover-content maxWidth=\"small\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </tedi-popover-content>\n </tedi-popover>\n </ng-container>\n} @else {\n <ng-container *ngTemplateOutlet=\"button\"></ng-container>\n <ng-container *ngTemplateOutlet=\"modal\"></ng-container>\n}\n\n<ng-template #button>\n <ng-container *hideAt=\"'sm'\">\n <button\n tedi-button\n variant=\"neutral\"\n class=\"tedi-header-profile--mobile\"\n [attr.data-open]=\"modalOpen()\"\n (click)=\"handleModalOpen()\"\n >\n <tedi-icon\n [name]=\"modalOpen() ? 'close' : 'account_circle'\"\n color=\"brand\"\n />\n {{ \"header.profile\" | tediTranslate }}\n </button>\n </ng-container>\n\n <ng-container *showAt=\"'sm'\">\n <button\n tedi-button\n [variant]=\"name() ? 'secondary' : 'neutral'\"\n (click)=\"handleModalOpen()\"\n >\n <tedi-icon\n name=\"account_circle\"\n color=\"brand\"\n [style]=\"{ 'font-size': name() ? '18px' : '36px' }\"\n />\n {{ name() }}\n @if (name()) {\n <tedi-icon name=\"expand_more\" style=\"font-size: 18px\" />\n }\n </button>\n </ng-container>\n</ng-template>\n\n<ng-template #modal>\n @if (modalOpen()) {\n <div class=\"tedi-header-profile__overlay\" (click)=\"handleModalOpen()\"></div>\n <div class=\"tedi-header-profile__modal\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n }\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, model, signal, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../../../base/icon/icon.component';\nimport { TextComponent } from '../../../base/text/text.component';\nimport { ShowAtDirective } from '../../../../directives/show-at/show-at.directive';\nimport { HideAtDirective } from '../../../../directives/hide-at/hide-at.directive';\nimport { ButtonComponent } from '../../../buttons/button/button.component';\nimport { TediTranslationService } from '../../../../services/translation/translation.service';\nimport { PopoverComponent } from '../../../overlay/popover/popover.component';\nimport { PopoverTriggerComponent } from '../../../overlay/popover/popover-trigger/popover-trigger.component';\nimport { PopoverContentComponent } from '../../../overlay/popover/popover-content/popover-content.component';\n\nexport type Representative = {\n name: string;\n icon?: string;\n description?: string;\n}\n\n@Component({\n selector: 'tedi-header-role',\n standalone: true,\n imports: [\n NgFor, \n NgIf, \n NgTemplateOutlet, \n PopoverComponent, \n PopoverTriggerComponent, \n PopoverContentComponent, \n IconComponent, \n ButtonComponent, \n TextComponent, \n ShowAtDirective, \n HideAtDirective\n ],\n templateUrl: './header-role.component.html',\n styleUrl: './header-role.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: \"tedi-header-role\"\n },\n})\nexport class HeaderRoleComponent {\n /**\n * Role text\n */\n role = input(\"\");\n /**\n * Description text\n */\n description = input(\"\");\n /** Should show input in representative list?\n * @default false\n */\n showInput = input(false);\n /** List of representatives */\n representatives = input.required<Representative[]>();\n /** Current representative */\n currentRepresentative = model.required<Representative>();\n\n mobileOpen = signal(false);\n inputValue = signal(\"\");\n\n translationService = inject(TediTranslationService);\n switchRoleText = this.translationService.track(\"header.role-switch\");\n closeText = this.translationService.track(\"close\");\n searchText = this.translationService.track(\"header.role-search\");\n noResultsText = this.translationService.track(\"header.role-no-representatives\");\n collapseText = computed(() => this.mobileOpen() ? this.closeText() : this.switchRoleText());\n\n filteredRepresentatives = computed(() => {\n return this.representatives().filter(r => {\n if (!this.inputValue()) {\n return true;\n }\n\n const nameMatches = r.name.toLowerCase().includes(this.inputValue().toLowerCase());\n const descriptionMatches = r.description?.toLowerCase().includes(this.inputValue().toLowerCase()) ?? false;\n\n return nameMatches || descriptionMatches;\n })\n })\n\n handleMobileOpen() {\n this.mobileOpen.update(prev => !prev);\n }\n\n handleSelectRepresentative(r: Representative) {\n this.currentRepresentative.set(r);\n }\n\n handleInputChange(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.inputValue.set(value);\n }\n}\n","<ng-container *hideAt=\"'lg'\">\n <div class=\"tedi-header-role__head\">\n <div tedi-text color=\"secondary\" class=\"tedi-header-role__info\" [attr.data-multiple]=\"representatives().length > 1\">\n <b>{{ role() }} {{ currentRepresentative().name }}</b>\n @if (description()) {\n <span class=\"tedi-header-role__description\">{{ description() }}</span>\n }\n </div>\n @if (representatives().length > 1) {\n <button tedi-button variant=\"neutral\" (click)=\"handleMobileOpen()\">\n {{ collapseText() }}\n <tedi-icon name=\"expand_more\" [attr.data-open]=\"mobileOpen()\" />\n </button>\n }\n </div>\n @if (representatives().length > 1) {\n <div class=\"tedi-header-role__collapse\" [attr.data-open]=\"mobileOpen()\">\n <div class=\"tedi-header-role__collapse__items\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n }\n</ng-container>\n\n<ng-container *showAt=\"'lg'\">\n @if (role() || description()) {\n <div tedi-text color=\"secondary\" modifiers=\"small\" class=\"tedi-header-role__head\">\n @if (role()) {\n <b>{{ role() }}</b>\n }\n\n @if (description()) {\n <span class=\"tedi-header-role__description\">{{ description() }}</span>\n }\n </div>\n }\n\n <ng-container *ngIf=\"representatives().length > 1; else normalText\">\n <tedi-popover [withBorder]=\"true\" position=\"bottom\">\n <tedi-popover-trigger>\n <button class=\"tedi-link tedi-header__link-button\">\n <span>{{ currentRepresentative().name }}</span>\n <tedi-icon name=\"expand_more\" />\n </button>\n </tedi-popover-trigger>\n <tedi-popover-content maxWidth=\"small\" class=\"tedi-header-role__dropdown\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </tedi-popover-content>\n </tedi-popover>\n </ng-container>\n</ng-container>\n\n<ng-template #content>\n @if (showInput()) {\n <div>\n <label for=\"representative-input\">{{ searchText() }}</label>\n <input id=\"representative-input\" class=\"tedi-header-role__input\" [value]=\"inputValue()\" (input)=\"handleInputChange($event)\" />\n </div>\n }\n @if (filteredRepresentatives().length === 0) {\n <span class=\"tedi-header-role__no-results\">{{ noResultsText() }}</span>\n }\n <button \n *ngFor=\"let r of filteredRepresentatives();\"\n class=\"tedi-header-role__representative\"\n [attr.data-selected]=\"r.name === currentRepresentative().name && r.description === currentRepresentative().description\"\n (click)=\"handleSelectRepresentative(r)\"\n >\n @if (r.icon) {\n <tedi-icon [name]=\"r.icon\" />\n }\n <div>\n <div>{{ r.name }}</div>\n @if (r.description) {\n <div>\n {{ r.description }}\n </div>\n }\n </div>\n </button>\n</ng-template>\n\n<ng-template #normalText>\n <div>{{ currentRepresentative().name }}</div>\n</ng-template>","import { computed, effect, inject, Injectable, signal } from \"@angular/core\";\nimport { Breakpoint, BreakpointService } from \"../breakpoint/breakpoint.service\";\nimport { SideNavItemComponent } from \"../../components/layout/sidenav/sidenav-item/sidenav-item.component\";\n\n@Injectable({ providedIn: \"root\" })\nexport class SideNavService {\n private readonly breakpointService = inject(BreakpointService);\n\n items = signal<SideNavItemComponent[]>([]);\n desktopBreakpoint = signal<Breakpoint>(\"lg\");\n isMobile = this.breakpointService.isBelowBreakpoint(this.desktopBreakpoint);\n isMobileOpen = signal(false);\n isCollapsed = signal(false);\n\n constructor() {\n effect(() => {\n if (this.isMobile() && this.isCollapsed()) {\n this.isCollapsed.set(false);\n }\n });\n }\n\n registerItem(item: SideNavItemComponent) {\n this.items.update((list) => [...list, item]);\n }\n\n unregisterItem(item: SideNavItemComponent) {\n this.items.update((list) => list.filter((i) => i !== item));\n }\n\n handleGoToMainMenu() {\n this.items().forEach((item) => item.dropdown?.open.set(false));\n }\n\n handleCollapse() {\n this.isCollapsed.update((prev) => !prev);\n }\n\n isMobileItemOpen = computed(() => {\n return (\n this.isMobile() && this.items().some((item) => item.dropdown?.open())\n );\n });\n\n tooltipEnabled = computed(() => {\n return this.isCollapsed() && !this.items().some(item => item.dropdown?.open());\n })\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\n\nimport { IconComponent } from \"../../base/icon/icon.component\";\nimport { TediTranslationPipe } from \"../../../services/translation/translation.pipe\";\nimport { SideNavService } from \"../../../services/sidenav/sidenav.service\";\nimport { Breakpoint } from \"../../../services/breakpoint/breakpoint.service\";\n\nexport type SideNavItemSize = \"small\" | \"medium\" | \"large\";\n\n@Component({\n selector: \"nav[tedi-sidenav]\",\n standalone: true,\n templateUrl: \"./sidenav.component.html\",\n styleUrl: \"./sidenav.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [IconComponent, TediTranslationPipe],\n host: {\n \"[class]\": \"classes()\",\n },\n})\nexport class SideNavComponent {\n /**\n * Show dividers between items\n * @default true\n */\n dividers = input<boolean>(true);\n /**\n * Size of navigation item\n * @default large\n */\n size = input<SideNavItemSize>(\"large\");\n /**\n * Is navigation collapsible in desktop?\n * @default false\n */\n collapsible = input<boolean>(false);\n /** Breakpoint when to show desktop navigation\n * @default lg\n */\n desktopBreakpoint = input<Breakpoint>(\"lg\");\n\n constructor(public sidenavService: SideNavService) {\n effect(() => {\n this.sidenavService.desktopBreakpoint.set(this.desktopBreakpoint())\n })\n }\n\n classes = computed(() => {\n const classList = [\"tedi-sidenav\", `tedi-sidenav--${this.size()}`];\n\n if (this.dividers()) {\n classList.push(\"tedi-sidenav--dividers\");\n }\n\n if (this.sidenavService.isCollapsed()) {\n classList.push(\"tedi-sidenav--collapsed\");\n }\n\n if (this.sidenavService.isMobile()) {\n classList.push(\"tedi-sidenav--mobile\");\n }\n\n if (this.sidenavService.isMobileItemOpen()) {\n classList.push(\"tedi-sidenav--mobile-item-open\");\n }\n\n if (this.sidenavService.isMobile() && !this.sidenavService.isMobileOpen()) {\n classList.push(\"tedi-sidenav--hidden\");\n }\n\n return classList.join(\" \");\n });\n}\n","@if (!sidenavService.isMobile() && collapsible()) {\n <button\n class=\"tedi-sidenav__collapse\"\n (click)=\"sidenavService.handleCollapse()\"\n [attr.aria-label]=\"'toggle' | tediTranslate: !sidenavService.isCollapsed()\"\n >\n <tedi-icon\n [name]=\"\n sidenavService.isCollapsed() ? 'left_panel_open' : 'right_panel_open'\n \"\n color=\"brand\"\n />\n </button>\n}\n@if (sidenavService.isMobileItemOpen()) {\n <button\n class=\"tedi-sidenav-back\"\n (click)=\"sidenavService.handleGoToMainMenu()\"\n >\n <tedi-icon name=\"arrow_back\" color=\"white\" />\n {{ \"sidenav.backToMainMenu\" | tediTranslate }}\n </button>\n}\n<ng-content></ng-content>\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { RouterLink } from \"@angular/router\";\n\n@Component({\n selector: \"tedi-sidenav-dropdown-item\",\n standalone: true,\n templateUrl: \"./sidenav-dropdown-item.component.html\",\n styleUrl: \"./sidenav-dropdown-item.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [RouterLink, NgTemplateOutlet],\n host: {\n \"[class]\": \"classes()\",\n },\n})\nexport class SideNavDropdownItemComponent {\n /**\n * Is navigation item selected\n * @default false\n */\n selected = input<boolean>(false);\n /**\n * External link\n */\n href = input<string>();\n /**\n * Router link\n */\n routerLink = input<string>();\n\n classes = computed(() => {\n const classList = [\"tedi-sidenav-dropdown-item\"];\n\n if (this.selected()) {\n classList.push(\"tedi-sidenav-dropdown-item--selected\");\n }\n\n return classList.join(\" \");\n });\n}\n","@if (href()) {\n <a [href]=\"href()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n} @else if (routerLink()) {\n <a [routerLink]=\"routerLink()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n selector: \"tedi-sidenav-group-title\",\n standalone: true,\n templateUrl: \"./sidenav-group-title.component.html\",\n styleUrl: \"./sidenav-group-title.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"class\": \"tedi-sidenav-group-title\",\n },\n})\nexport class SideNavGroupTitleComponent {}\n","<div class=\"tedi-sidenav-group-title__text\">\n <ng-content></ng-content>\n</div>\n","import { AfterContentInit, Component, ElementRef, inject, Renderer2, signal } from '@angular/core';\n\n@Component({\n selector: \"tedi-tooltip-trigger\",\n standalone: true,\n template: \"<ng-content />\",\n})\nexport class TooltipTriggerComponent implements AfterContentInit {\n private readonly host = inject(ElementRef);\n private renderer = inject(Renderer2);\n element = signal<HTMLElement | null>(null);\n\n ngAfterContentInit(): void {\n const element = this.host.nativeElement as HTMLElement;\n const firstChild = element.firstChild;\n\n if (!firstChild) {\n return;\n }\n \n if (firstChild.nodeType === Node.TEXT_NODE && firstChild.textContent?.trim()) {\n const span = this.renderer.createElement('span') as HTMLSpanElement;\n const textNode = this.renderer.createText(firstChild.textContent.trim());\n\n this.renderer.appendChild(span, textNode);\n this.renderer.addClass(span, \"tedi-tooltip-trigger__text\");\n this.renderer.setAttribute(span, \"tabindex\", \"0\");\n this.renderer.insertBefore(this.host.nativeElement, span, firstChild);\n this.renderer.removeChild(this.host.nativeElement, firstChild);\n this.element.set(span);\n } else {\n const element = firstChild as HTMLElement;\n this.renderer.setAttribute(element, \"tabindex\", element.getAttribute(\"tabindex\") ?? \"0\");\n this.element.set(element);\n }\n }\n}","import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from \"@angular/core\";\n \nexport type TooltipPosition = \"top\" | \"bottom\" | \"left\" | \"right\";\nexport type TooltipWidth = \"none\" | \"small\" | \"medium\" | \"large\";\n \n@Component({\n standalone: true,\n selector: \"tedi-tooltip-content\",\n template: \"<ng-content />\",\n styleUrl: \"./tooltip.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class]\": \"classes()\",\n \"role\": \"tooltip\",\n }\n})\nexport class TooltipContentComponent {\n /**\n * The position of the tooltip relative to the trigger element. If tooltip can't\n * be positioned in the specified direction, the CDK will try to position the tooltip\n * in the next direction in positions list.\n * @default top\n */\n position = input<TooltipPosition>(\"top\");\n /**\n * The width of the tooltip. Can be 'none', 'small', 'medium', or 'large'.\n * @default medium\n */\n maxWidth = input<TooltipWidth>(\"medium\");\n\n classes = computed(() => {\n return [\"tedi-tooltip-content\", `tedi-tooltip-content--${this.maxWidth()}`].join(\" \");\n })\n}","import {\n Component,\n inject,\n input,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n OnDestroy,\n signal,\n AfterContentInit,\n ContentChild,\n ChangeDetectionStrategy,\n} from \"@angular/core\";\nimport {\n ConnectedPosition,\n OverlayConfig,\n OverlayModule,\n OverlayRef,\n Overlay\n} from \"@angular/cdk/overlay\";\nimport { CdkPortal, PortalModule } from \"@angular/cdk/portal\";\nimport { TooltipTriggerComponent } from \"./tooltip-trigger.component\";\nimport { TooltipContentComponent } from \"./tooltip-content.component\";\n\nexport const TOOLTIP_ARROW_OFFSET = 15;\nexport const TOOLTIP_TIMEOUT_MS = 150;\n\nconst positionTop: ConnectedPosition = {\n originX: \"center\",\n originY: \"top\",\n overlayX: \"center\",\n overlayY: \"bottom\",\n panelClass: \"tedi-tooltip-content__arrow--top\",\n offsetY: -TOOLTIP_ARROW_OFFSET,\n};\n\nconst positionBottom: ConnectedPosition = {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: \"center\",\n overlayY: \"top\",\n panelClass: \"tedi-tooltip-content__arrow--bottom\",\n offsetY: TOOLTIP_ARROW_OFFSET,\n};\n\nconst positionRight: ConnectedPosition = {\n originX: \"end\",\n originY: \"center\",\n overlayX: \"start\",\n overlayY: \"center\",\n panelClass: \"tedi-tooltip-content__arrow--left\",\n offsetX: TOOLTIP_ARROW_OFFSET,\n};\n\nconst positionLeft: ConnectedPosition = {\n originX: \"start\",\n originY: \"center\",\n overlayX: \"end\",\n overlayY: \"center\",\n panelClass: \"tedi-tooltip-content__arrow--right\",\n offsetX: -TOOLTIP_ARROW_OFFSET,\n};\n\nexport type TooltipOpenWith = \"click\" | \"hover\";\n\n/**\n * TooltipComponent is a component that displays a Tooltip when the user hovers over or clicks on an element.\n * It uses the Angular CDK Overlay module to create a flexible connected overlay that can be positioned relative to the trigger element.\n * The Tooltip can be configured to open on hover or click, and can be positioned at the top, bottom, left, or right of the trigger element.\n *\n * Angular CDK Overlay: How positioning works:\n * https://www.youtube.com/watch?v=IpRQBtBN3iU&ab_channel=BrianTreese\n *\n * Angular CDK Overlay: Adding accessibility features\n * https://www.youtube.com/watch?v=_0JGZATel-8&ab_channel=BrianTreese\n */\n\n@Component({\n standalone: true,\n selector: \"tedi-tooltip\",\n imports: [OverlayModule, PortalModule],\n templateUrl: \"./tooltip.component.html\",\n styleUrl: \"./tooltip.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipComponent implements AfterContentInit, OnDestroy {\n /**\n * The trigger event that opens the tooltip. Can be 'click' or 'hover'.\n * @default hover\n */\n openWith = input<TooltipOpenWith>(\"hover\");\n\n @ContentChild(TooltipTriggerComponent) trigger?: TooltipTriggerComponent;\n @ContentChild(TooltipContentComponent) content?: TooltipContentComponent;\n @ViewChild(CdkPortal, { static: true }) portal!: CdkPortal;\n\n private overlayRef?: OverlayRef;\n private readonly overlay = inject(Overlay);\n private readonly renderer = inject(Renderer2);\n private readonly eventListeners: (() => void)[] = [];\n\n closeTimeout = signal<ReturnType<typeof setTimeout> | null>(null);\n private isTriggerHovered = signal(false);\n private isTooltipHovered = signal(false);\n\n ngAfterContentInit(): void {\n const trigger = this.trigger?.element();\n\n if (!trigger) {\n return;\n }\n\n this.eventListeners.push(\n this.renderer.listen(trigger, \"focus\", () => {\n if (!this.isTriggerHovered()) {\n this.openTooltip()\n }\n }),\n this.renderer.listen(trigger, \"blur\", () => {\n if (!this.isTooltipHovered()) {\n this.closeTooltip();\n }\n }),\n this.renderer.listen(trigger, \"mouseenter\", () => {\n this.isTriggerHovered.set(true);\n\n if (this.openWith() === \"hover\") {\n this.openTooltip();\n }\n }),\n this.renderer.listen(trigger, \"mouseleave\", () => {\n this.isTriggerHovered.set(false);\n\n if (this.openWith() === \"hover\") {\n this.scheduleClose();\n }\n }),\n this.renderer.listen(trigger, \"click\", () => {\n if (this.openWith() === \"click\") {\n this.toggleTooltip()\n }\n }),\n this.renderer.listen(\"document\", \"click\", (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const clickedInsideTrigger = trigger.contains(target);\n const tooltip = this.overlayRef?.overlayElement;\n const clickedInsideTooltip = tooltip?.contains(target);\n \n if (!clickedInsideTrigger && !clickedInsideTooltip) {\n this.closeTooltip();\n }\n }),\n this.renderer.listen(\"document\", \"keydown\", (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n this.closeTooltip();\n }\n })\n );\n }\n\n ngOnDestroy(): void {\n this.eventListeners.forEach(off => off());\n this.eventListeners.length = 0;\n this.closeTooltip();\n }\n\n openTooltip(): void {\n this.clearCloseTimeout();\n\n if (!this.overlayRef || !this.overlayRef.hasAttached()) {\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n this.overlayRef.attach(this.portal);\n this.addTooltipListeners();\n }\n }\n\n closeTooltip(): void {\n this.overlayRef?.detach();\n }\n\n toggleTooltip(): void {\n if (this.overlayRef?.hasAttached()) {\n this.closeTooltip();\n } else {\n this.openTooltip();\n }\n }\n\n private addTooltipListeners(): void {\n const tooltip = this.overlayRef?.overlayElement.querySelector(\".tedi-tooltip-content\");\n\n if (!tooltip) {\n return;\n }\n\n const enterListener = this.renderer.listen(tooltip, \"mouseenter\", () => {\n this.isTooltipHovered.set(true);\n this.clearCloseTimeout();\n });\n\n const leaveListener = this.renderer.listen(tooltip, \"mouseleave\", () => {\n this.isTooltipHovered.set(false);\n\n if (this.openWith() === \"hover\") {\n this.scheduleClose();\n }\n });\n\n this.eventListeners.push(enterListener, leaveListener);\n }\n\n private scheduleClose(): void {\n this.clearCloseTimeout();\n this.closeTimeout.set(\n setTimeout(() => this.closeTooltip(), TOOLTIP_TIMEOUT_MS)\n );\n }\n\n private clearCloseTimeout(): void {\n const timeout = this.closeTimeout();\n\n if (timeout) {\n clearTimeout(timeout);\n }\n \n this.closeTimeout.set(null);\n }\n\n private getOverlayConfig(): OverlayConfig {\n const positionMap = {\n top: [positionTop, positionBottom, positionLeft, positionRight],\n bottom: [positionBottom, positionTop, positionLeft, positionRight],\n left: [positionLeft, positionRight, positionTop, positionBottom],\n right: [positionRight, positionLeft, positionTop, positionBottom],\n };\n\n const position = this.content?.position() ?? 'top';\n const strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.trigger!.element()!)\n .withPositions(positionMap[position]);\n\n return {\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.close(),\n positionStrategy: strategy,\n };\n }\n}\n","<ng-content select=\"tedi-tooltip-trigger\" />\n<ng-template cdkPortal>\n <ng-content select=\"tedi-tooltip-content\" />\n</ng-template>","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n ElementRef,\n forwardRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { IconComponent } from \"../../../base/icon/icon.component\";\nimport { RouterLink } from \"@angular/router\";\nimport { NgIf, NgTemplateOutlet } from \"@angular/common\";\nimport { SideNavDropdownComponent } from \"../sidenav-dropdown/sidenav-dropdown.component\";\nimport { SideNavGroupTitleComponent } from \"../sidenav-group-title/sidenav-group-title.component\";\nimport { SideNavService } from \"../../../../services/sidenav/sidenav.service\";\nimport { TooltipComponent } from \"../../../overlay/tooltip/tooltip.component\";\nimport { TooltipContentComponent } from \"../../../overlay/tooltip/tooltip-content.component\";\nimport { TooltipTriggerComponent } from \"../../../overlay/tooltip/tooltip-trigger.component\";\n\n@Component({\n selector: \"tedi-sidenav-item\",\n standalone: true,\n templateUrl: \"./sidenav-item.component.html\",\n styleUrl: \"./sidenav-item.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n IconComponent,\n RouterLink,\n NgTemplateOutlet,\n NgIf,\n SideNavGroupTitleComponent,\n TooltipComponent,\n TooltipTriggerComponent,\n TooltipContentComponent,\n ],\n host: {\n \"[class]\": \"classes()\",\n },\n})\nexport class SideNavItemComponent implements AfterViewInit, OnInit, OnDestroy {\n /**\n * Is navigation item selected\n * @default false\n */\n selected = input<boolean>(false);\n /**\n * Name of the item icon\n */\n icon = input<string>();\n /**\n * External link\n */\n href = input<string>();\n /**\n * Router link\n */\n routerLink = input<string>();\n\n @ContentChild(forwardRef(() => SideNavDropdownComponent)) dropdown?: SideNavDropdownComponent;\n\n textContent = signal(\"\");\n\n sidenavService = inject(SideNavService);\n private readonly host = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly eventListeners: (() => void)[] = [];\n\n ngOnInit() {\n this.sidenavService.registerItem(this);\n }\n\n ngOnDestroy() {\n this.sidenavService.unregisterItem(this);\n }\n\n ngAfterViewInit(): void {\n const dropdown = this.dropdown;\n\n if (this.host.nativeElement) {\n const hostEl = this.host.nativeElement as Element;\n const titleElement = hostEl.querySelector(\".tedi-sidenav-item__text\");\n\n if (titleElement?.textContent) {\n this.textContent.set(titleElement.textContent);\n }\n }\n\n if (!dropdown) {\n return;\n }\n\n this.eventListeners.push(\n this.renderer.listen(\"document\", \"click\", (event: MouseEvent) => {\n if (this.sidenavService.isCollapsed()) {\n const target = event.target as HTMLElement;\n const clickedInsideDropdown = dropdown.element()?.contains(target);\n const clickedInsideTrigger = this.host.nativeElement.contains(target);\n\n if (!clickedInsideTrigger && !clickedInsideDropdown) {\n dropdown.open.set(false);\n }\n }\n }),\n );\n }\n\n classes = computed(() => {\n const classList = [\"tedi-sidenav-item\"];\n\n if (this.selected()) {\n classList.push(\"tedi-sidenav-item--selected\");\n }\n\n if (this.sidenavService.isMobileItemOpen() && !this.dropdown?.open()) {\n classList.push(\"tedi-sidenav-item--hidden\");\n }\n\n return classList.join(\" \");\n });\n\n toggleDropdown() {\n if (!this.dropdown) {\n return;\n }\n\n this.dropdown.open.update((prev) => !prev);\n }\n}\n","@if (sidenavService.isMobile()) {\n @if (sidenavService.isMobileItemOpen() && dropdown?.open()) {\n <ng-container *ngIf=\"!href() && !routerLink(); else mobileLink\">\n <tedi-sidenav-group-title>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </tedi-sidenav-group-title>\n </ng-container>\n <ng-template #mobileLink>\n <ng-container *ngIf=\"routerLink(); else mobileHref\">\n <a\n class=\"tedi-sidenav-item__link\"\n [routerLink]=\"routerLink()\"\n tabindex=\"0\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n </ng-container>\n <ng-template #mobileHref>\n <a class=\"tedi-sidenav-item__link\" [href]=\"href()\" tabindex=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n </ng-template>\n </ng-template>\n } @else {\n <div class=\"tedi-sidenav-item__trigger\">\n <ng-container *ngTemplateOutlet=\"buttonOrLink\"></ng-container>\n </div>\n }\n} @else {\n <tedi-tooltip>\n <tedi-tooltip-trigger>\n <div class=\"tedi-sidenav-item__trigger\">\n <ng-container *ngTemplateOutlet=\"buttonOrLink\"></ng-container>\n </div>\n </tedi-tooltip-trigger>\n <tedi-tooltip-content position=\"right\" [style]=\"{ 'display': sidenavService.tooltipEnabled() ? 'block' : 'none' }\">\n {{ textContent() }}\n </tedi-tooltip-content>\n </tedi-tooltip>\n}\n\n<ng-template #buttonOrLink>\n <ng-container *ngIf=\"!href() && !routerLink(); else hasLink\">\n <button\n class=\"tedi-sidenav-item__title\"\n (click)=\"toggleDropdown()\"\n tabindex=\"0\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n @if (dropdown) {\n <tedi-icon\n name=\"expand_more\"\n class=\"tedi-sidenav-item__caret\"\n color=\"white\"\n [attr.data-open]=\"dropdown.open() ? 'true' : 'false'\"\n />\n }\n </button>\n </ng-container>\n <ng-template #hasLink>\n <ng-container\n *ngIf=\"\n (dropdown && sidenavService.isCollapsed()) ||\n (dropdown && sidenavService.isMobile());\n else plainLink\n \"\n >\n <button\n class=\"tedi-sidenav-item__title\"\n (click)=\"toggleDropdown()\"\n tabindex=\"0\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <tedi-icon\n name=\"expand_more\"\n class=\"tedi-sidenav-item__caret\"\n color=\"white\"\n [attr.data-open]=\"dropdown.open() ? 'true' : 'false'\"\n />\n </button>\n </ng-container>\n <ng-template #plainLink>\n <ng-container *ngIf=\"routerLink(); else normalHref\">\n <a\n class=\"tedi-sidenav-item__title\"\n [routerLink]=\"routerLink()\"\n tabindex=\"0\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n </ng-container>\n <ng-template #normalHref>\n <a class=\"tedi-sidenav-item__title\" [href]=\"href()\" tabindex=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n </ng-template>\n @if (dropdown) {\n <button\n class=\"tedi-sidenav-item__caret-button\"\n (click)=\"toggleDropdown()\"\n tabindex=\"0\"\n >\n <div class=\"tedi-sidenav-item__caret-container\">\n <tedi-icon\n name=\"expand_more\"\n class=\"tedi-sidenav-item__caret\"\n color=\"white\"\n [attr.data-open]=\"dropdown.open() ? 'true' : 'false'\"\n />\n </div>\n </button>\n }\n </ng-template>\n </ng-template>\n</ng-template>\n\n<ng-template #content>\n @if (icon(); as icon) {\n @if (!(sidenavService.isMobileItemOpen() && dropdown?.open())) {\n <tedi-icon [name]=\"icon\" color=\"white\" class=\"tedi-sidenav-item__icon\" />\n }\n }\n <span class=\"tedi-sidenav-item__text\">\n <ng-content></ng-content>\n </span>\n</ng-template>\n\n<ng-content select=\"tedi-sidenav-dropdown\"></ng-content>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n signal,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { SideNavDropdownItemComponent } from \"../sidenav-dropdown-item/sidenav-dropdown-item.component\";\nimport { SideNavItemComponent } from \"../sidenav-item/sidenav-item.component\";\nimport { SideNavService } from \"../../../../services/sidenav/sidenav.service\";\n\n@Component({\n selector: \"tedi-sidenav-dropdown\",\n standalone: true,\n templateUrl: \"./sidenav-dropdown.component.html\",\n styleUrl: \"./sidenav-dropdown.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SideNavDropdownItemComponent],\n host: {\n \"[class]\": \"classes()\",\n },\n})\nexport class SideNavDropdownComponent implements AfterViewInit {\n private readonly host = inject(ElementRef);\n\n open = signal(false);\n element = signal<HTMLElement | null>(null);\n sidenavService = inject(SideNavService);\n sidenavItem = inject(\n forwardRef(() => SideNavItemComponent),\n { host: true, optional: true }\n );\n\n ngAfterViewInit(): void {\n if (this.host.nativeElement) {\n this.element.set(this.host.nativeElement);\n }\n }\n\n classes = computed(() => {\n const classList = [\"tedi-sidenav-dropdown\"];\n\n if (this.open()) {\n classList.push(\"tedi-sidenav-dropdown--open\");\n }\n\n return classList.join(\" \");\n });\n}\n","<div class=\"tedi-sidenav-dropdown__items\">\n @if (sidenavService.isCollapsed() && !!sidenavItem.href()) {\n <tedi-sidenav-dropdown-item\n class=\"tedi-sidenav-dropdown-item--parent\"\n [href]=\"sidenavItem.href()\"\n >\n {{ sidenavItem.textContent() }}\n </tedi-sidenav-dropdown-item>\n } @else if (sidenavService.isCollapsed() && !!sidenavItem.routerLink()) {\n <tedi-sidenav-dropdown-item\n class=\"tedi-sidenav-dropdown-item--parent\"\n [routerLink]=\"sidenavItem.routerLink()\"\n >\n {{ sidenavItem.textContent() }}\n </tedi-sidenav-dropdown-item>\n }\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n selector: \"tedi-sidenav-dropdown-group\",\n standalone: true,\n template: \"<ng-content />\",\n styleUrl: \"./sidenav-dropdown-group.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"class\": \"tedi-sidenav-dropdown-group\",\n },\n})\nexport class SideNavDropdownGroupComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n inject,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { SideNavService } from \"../../../../services/sidenav/sidenav.service\";\n\n@Component({\n selector: \"tedi-sidenav-overlay\",\n standalone: true,\n styleUrl: \"./sidenav-overlay.component.scss\",\n template: \"<ng-content />\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"classes()\",\n },\n})\nexport class SideNavOverlayComponent {\n sidenavService = inject(SideNavService);\n\n @HostListener(\"click\")\n onClick() {\n this.sidenavService.isMobileOpen.set(false);\n this.sidenavService.handleGoToMainMenu();\n }\n\n classes = computed(() => {\n const classList = [\"tedi-sidenav-overlay\"];\n\n if (this.sidenavService.isMobile() && this.sidenavService.isMobileOpen()) {\n classList.push(\"tedi-sidenav-overlay--visible\");\n }\n\n return classList.join(\" \");\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n inject,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { IconComponent } from \"../../../base/icon/icon.component\";\nimport { SideNavService } from \"../../../../services/sidenav/sidenav.service\";\nimport { TediTranslationService } from \"../../../../services/translation/translation.service\";\n\n@Component({\n selector: \"button[tedi-sidenav-toggle]\",\n standalone: true,\n templateUrl: \"./sidenav-toggle.component.html\",\n styleUrl: \"./sidenav-toggle.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [IconComponent],\n host: {\n \"[class]\": \"classes()\",\n \"[attr.aria-label]\": \"ariaLabel()\",\n },\n})\nexport class SideNavToggleComponent {\n sidenavService = inject(SideNavService);\n translationService = inject(TediTranslationService);\n\n @HostListener(\"click\")\n onClick() {\n this.sidenavService.isMobileOpen.update((prev) => !prev);\n this.sidenavService.handleGoToMainMenu();\n }\n\n ariaLabel = this.translationService.track(\"sidenav.toggle\");\n\n classes = computed(() => {\n const classList = [\"tedi-sidenav-toggle\"];\n\n if (!this.sidenavService.isMobile()) {\n classList.push(\"tedi-sidenav-toggle--hidden\");\n }\n\n return classList.join(\" \");\n })\n}\n","<tedi-icon\n [name]=\"sidenavService.isMobileOpen() ? 'close' : 'menu'\"\n color=\"white\"\n/>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\n\nexport type SpinnerSize = 10 | 16 | 48;\nexport type SpinnerColor = \"primary\" | \"secondary\";\n\n@Component({\n selector: \"tedi-spinner\",\n standalone: true,\n templateUrl: \"./spinner.component.html\",\n styleUrl: \"./spinner.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"classes()\",\n \"role\": \"status\",\n \"aria-live\": \"polite\",\n \"[attr.aria-label]\": \"label() ? label() : null\",\n \"[attr.aria-hidden]\": \"!label()\"\n }\n})\nexport class SpinnerComponent {\n /**\n * Size of the spinner in px.\n * @default 16\n */\n size = input<SpinnerSize>(16);\n /**\n * Specifies the color theme of the spinner.\n * The color should meet accessibility standards for color contrast.\n * @default primary\n */\n color = input<SpinnerColor>(\"primary\");\n /**\n * Provides a text label for screen readers to announce the spinner's purpose or status.\n */\n label = input<string>();\n\n classes = computed(() => {\n const classList = [\n \"tedi-spinner\",\n `tedi-spinner--size-${this.size()}`,\n `tedi-spinner--color-${this.color()}`,\n ];\n\n return classList.join(\" \");\n });\n}\n","<svg viewBox=\"22 22 44 44\" aria-hidden=\"true\">\n <circle\n class=\"tedi-spinner--inner\"\n cx=\"44\"\n cy=\"44\"\n r=\"20\"\n fill=\"none\"\n ></circle>\n</svg>","import {\n Component,\n computed,\n input,\n model,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { IconComponent } from \"../../base/icon/icon.component\";\nimport { ClosingButtonComponent } from \"../../buttons/closing-button/closing-button.component\";\nimport { NgTemplateOutlet } from \"@angular/common\";\n\nexport type AlertRole = \"alert\" | \"status\" | \"none\";\nexport type AlertType = \"info\" | \"success\" | \"warning\" | \"danger\";\nexport type AlertTitleType = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"div\";\nexport type AlertVariant = \"default\" | \"global\" | \"noSideBorders\";\n\n@Component({\n standalone: true,\n selector: \"tedi-alert\",\n imports: [IconComponent, ClosingButtonComponent, NgTemplateOutlet],\n templateUrl: \"./alert.component.html\",\n styleUrls: [\"./alert.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[style.display]\": \"open() ? 'flex' : 'none'\",\n \"[attr.aria-live]\": \"getAriaLive()\",\n \"[attr.aria-label]\": \"getAriaLabel()\",\n \"[class]\": \"classes()\",\n \"[attr.role]\": \"role() === 'none' ? null : role()\",\n },\n})\nexport class AlertComponent {\n /**\n * An optional title for the alert, typically used to summarize the message's purpose.\n * If provided, it appears prominently at the top of the alert.\n */\n title = input<string>();\n /**\n * Defines the visual and contextual type of the alert. This determines the icon, color, and\n * overall style, making it clear whether the alert is informational, a success message,\n * a warning, or an error.\n * @default info\n */\n type = input<AlertType>(\"info\");\n /**\n * Specifies an optional icon to display in the alert, providing quick visual context.\n */\n icon = input<string>(\"\");\n /**\n * If true, a close button will be displayed.\n * @default false\n */\n showClose = input<boolean>(false);\n /**\n * The ARIA role of the alert, informing screen readers about the alert's purpose.\n * Options:\n * - 'alert': For high-priority messages that demand immediate attention.\n * - 'status': For less urgent messages providing feedback or updates.\n * - 'none': Used when no ARIA role is needed.\n * @default alert\n */\n role = input<AlertRole>(\"alert\");\n /**\n * Variant for the alert, which can be used to apply specific styles.\n * For example, 'global' for full-width alerts or 'noSideBorders' for alerts without side borders.\n */\n variant = input<AlertVariant>(\"default\");\n /**\n * The HTML tag to be used for the alert title.\n * @default h2\n */\n titleElement = input<AlertTitleType>(\"h2\");\n /**\n * Is alert open?\n * @default true\n */\n open = model(true);\n\n getAriaLive = computed(() => {\n switch (this.role()) {\n case \"alert\":\n return \"assertive\";\n case \"status\":\n return \"polite\";\n case \"none\":\n return \"off\";\n }\n });\n\n getAriaLabel = computed(() => {\n if (this.title()) {\n return `${this.type()} alert: ${this.title()}`;\n }\n return `${this.type()} alert`;\n });\n\n classes = computed(() => {\n return {\n \"tedi-alert\": true,\n [`tedi-alert--${this.type()}`]: !!this.type(),\n \"tedi-alert--global\": this.variant() === \"global\",\n \"tedi-alert--no-side-borders\": this.variant() === \"noSideBorders\",\n };\n });\n\n handleClose() {\n this.open.set(false);\n }\n}\n","@if (title()) {\n <div class=\"tedi-alert__head\">\n @if (icon()) {\n <tedi-icon [name]=\"icon()\" [size]=\"18\" />\n }\n <ng-container *ngTemplateOutlet=\"heading\"></ng-container>\n @if (showClose()) {\n <button\n tedi-closing-button\n class=\"tedi-alert__close\"\n size=\"small\"\n [iconSize]=\"18\"\n (click)=\"handleClose()\"\n ></button>\n }\n </div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <div class=\"tedi-alert__content\">\n @if (icon()) {\n <tedi-icon [name]=\"icon()\" [size]=\"18\" class=\"tedi-alert__content-icon\" />\n }\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n @if (showClose()) {\n <button\n tedi-closing-button\n class=\"tedi-alert__close\"\n size=\"small\"\n [iconSize]=\"18\"\n (click)=\"handleClose()\"\n ></button>\n }\n </div>\n}\n\n<ng-template #heading>\n @if (titleElement() === \"h1\") {\n <h1 class=\"tedi-alert__title\">{{ title() }}</h1>\n } @else if (titleElement() === \"h2\") {\n <h2 class=\"tedi-alert__title\">{{ title() }}</h2>\n } @else if (titleElement() === \"h3\") {\n <h3 class=\"tedi-alert__title\">{{ title() }}</h3>\n } @else if (titleElement() === \"h4\") {\n <h4 class=\"tedi-alert__title\">{{ title() }}</h4>\n } @else if (titleElement() === \"h5\") {\n <h5 class=\"tedi-alert__title\">{{ title() }}</h5>\n } @else if (titleElement() === \"h6\") {\n <h6 class=\"tedi-alert__title\">{{ title() }}</h6>\n } @else {\n <div class=\"tedi-alert__title\">{{ title() }}</div>\n }\n</ng-template>\n\n<ng-template #content>\n <div>\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n input,\n Renderer2,\n} from \"@angular/core\";\nimport type { VerticalSpacingSize } from \"./vertical-spacing.directive\";\n\n@Directive({\n selector: \"[tediVerticalSpacingItem]\",\n standalone: true,\n})\nexport class VerticalSpacingItemDirective implements AfterViewInit {\n tediVerticalSpacingItem = input<VerticalSpacingSize>(0);\n\n constructor(\n private readonly el: ElementRef,\n private readonly renderer: Renderer2,\n ) {}\n\n ngAfterViewInit(): void {\n this.renderer.addClass(\n this.el.nativeElement,\n \"tedi-vertical-spacing__item\",\n );\n\n const spacingValue = `${this.tediVerticalSpacingItem()}em`;\n\n this.renderer.setAttribute(\n this.el.nativeElement,\n \"style\",\n `--vertical-spacing-internal: ${spacingValue}`,\n );\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n input,\n Renderer2,\n} from \"@angular/core\";\n\nexport type VerticalSpacingSize =\n | 0\n | 0.25\n | 0.5\n | 0.75\n | 1\n | 1.25\n | 1.5\n | 1.75\n | 2\n | 2.5\n | 3\n | 4\n | 5;\n\n@Directive({\n selector: \"[tediVerticalSpacing]\",\n standalone: true,\n})\nexport class VerticalSpacingDirective implements AfterViewInit {\n tediVerticalSpacing = input<VerticalSpacingSize>(0);\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n ) {}\n\n ngAfterViewInit(): void {\n this.renderer.addClass(this.el.nativeElement, \"tedi-vertical-spacing\");\n const spacingValue = `${this.tediVerticalSpacing()}em`;\n this.renderer.setAttribute(\n this.el.nativeElement,\n \"style\",\n `--vertical-spacing-internal: ${spacingValue}`,\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.SideNavService"],"mappings":"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"}
|