@ascentgl/ads-ui 21.0.1 → 21.1.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/fesm2022/ascentgl-ads-ui-src-lib-components-avatar.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-avatar.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-buttons-button-container.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-buttons-button-container.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-drag-and-drop-list.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-drag-and-drop-list.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-error-page-error-page-code.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-error-page-error-page-code.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-footer-container.mjs +8 -8
- package/fesm2022/ascentgl-ads-ui-src-lib-components-footer-container.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-footer.mjs +8 -8
- package/fesm2022/ascentgl-ads-ui-src-lib-components-footer.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-header-container.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-header-container.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-header.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-header.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-logo-primary-logo.mjs +10 -10
- package/fesm2022/ascentgl-ads-ui-src-lib-components-logo-primary-logo.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-progress-indicators-progress-bar.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-progress-indicators-progress-bar.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-progress-indicators-progress-indicator-spinner.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-progress-indicators-progress-indicator-spinner.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-progress-indicators-progress-spinner.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-progress-indicators-progress-spinner.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-shell-layout.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-shell-layout.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-splash-page.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-splash-page.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui-src-lib-components-tags-tag-container.mjs +7 -7
- package/fesm2022/ascentgl-ads-ui-src-lib-components-tags-tag-container.mjs.map +1 -1
- package/fesm2022/ascentgl-ads-ui.mjs +613 -613
- package/fesm2022/ascentgl-ads-ui.mjs.map +1 -1
- package/package.json +33 -33
- /package/{types/ascentgl-ads-ui.d.ts → index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-avatar.d.ts → src/lib/components/avatar/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-buttons-button-container.d.ts → src/lib/components/buttons/button-container/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-drag-and-drop-list.d.ts → src/lib/components/drag-and-drop-list/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-error-page-error-page-code.d.ts → src/lib/components/error-page/error-page-code/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-footer-container.d.ts → src/lib/components/footer/container/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-footer.d.ts → src/lib/components/footer/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-header-container.d.ts → src/lib/components/header/container/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-header.d.ts → src/lib/components/header/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-logo-primary-logo.d.ts → src/lib/components/logo/primary-logo/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-progress-indicators-progress-bar.d.ts → src/lib/components/progress-indicators/progress-bar/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-progress-indicators-progress-indicator-spinner.d.ts → src/lib/components/progress-indicators/progress-indicator-spinner/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-progress-indicators-progress-spinner.d.ts → src/lib/components/progress-indicators/progress-spinner/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-shell-layout.d.ts → src/lib/components/shell-layout/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-splash-page.d.ts → src/lib/components/splash-page/index.d.ts} +0 -0
- /package/{types/ascentgl-ads-ui-src-lib-components-tags-tag-container.d.ts → src/lib/components/tags/tag-container/index.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ascentgl-ads-ui.mjs","sources":["../../../../libs/ads-ui/src/lib/components/avatar/avatar.component.ts","../../../../libs/ads-ui/src/lib/components/avatar/avatar.component.html","../../../../libs/ads-ui/src/lib/components/avatar/avatar.module.ts","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.component.ts","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.component.html","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.module.ts","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.component.ts","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.component.html","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.module.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.component.html","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.module.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/button/button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/button/button.component.html","../../../../libs/ads-ui/src/lib/components/buttons/button/button.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.component.html","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.module.ts","../../../../libs/ads-ui/src/lib/components/general/color-palette/colors.enums.ts","../../../../libs/ads-ui/src/lib/components/card/card.component.ts","../../../../libs/ads-ui/src/lib/components/card/card.component.html","../../../../libs/ads-ui/src/lib/components/card/ascent-card.component.ts","../../../../libs/ads-ui/src/lib/components/card/card.module.ts","../../../../libs/ads-ui/src/lib/components/card/ascent-card.module.ts","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.component.ts","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.component.html","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.component.ts","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.component.html","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.component.ts","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.component.html","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.module.ts","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.module.ts","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.module.ts","../../../../libs/ads-ui/src/lib/components/divider/divider.component.ts","../../../../libs/ads-ui/src/lib/components/divider/divider.component.html","../../../../libs/ads-ui/src/lib/components/divider/divider.module.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/dom.element.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/dragged.placeholder.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.component.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.component.html","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.module.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.types.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.component.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.component.html","../../../../libs/ads-ui/src/lib/components/error-page/error-page-code/error-page-code.component.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page-code/error-page-code.module.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.module.ts","../../../../libs/ads-ui/src/lib/components/footer/footer.component.ts","../../../../libs/ads-ui/src/lib/components/footer/footer.component.html","../../../../libs/ads-ui/src/lib/components/footer/footer.module.ts","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.component.ts","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.component.html","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.module.ts","../../../../libs/ads-ui/src/lib/components/header/header.component.ts","../../../../libs/ads-ui/src/lib/components/header/header.component.html","../../../../libs/ads-ui/src/lib/components/header/header.module.ts","../../../../libs/ads-ui/src/lib/components/header/container/header-container.component.ts","../../../../libs/ads-ui/src/lib/components/header/container/header-container.component.html","../../../../libs/ads-ui/src/lib/components/header/container/header-container.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.component.html","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.module.ts","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/abstract-logo-component.ts","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/scms-logo/abstract-application-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/scms-logo/scms-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/scms-logo/scms-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/scms-logo/scms-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/generic-logo/generic-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/generic-logo/generic-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/generic-logo/generic-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-marketplace-logo/peak-marketplace-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-marketplace-logo/peak-marketplace-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/peak-marketplace-logo/peak-marketplace-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-essentials-logo/peak-essentials-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-essentials-logo/peak-essentials-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-order-management-logo/peak-order-management-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-order-management-logo/peak-order-management-logo.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.types.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.module.ts","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.component.ts","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.component.html","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.base.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/input.tooltip.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/error/error.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/error/error.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/common/hint/hint.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/success/success.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/success/success.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/multi-select-dropdown/multi-select-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/multi-select-dropdown/multi-select-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/phone-field/phone-field.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/phone-field/phone-field.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/phone-field/phone-field.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown-highlighter.pipe.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/custom-datetime-format.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetime-template.formatter.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetime-picker-format-directive.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/custom-datetime.adapter.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/date-picker/datepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/date-picker/datepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/time-picker/timepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/time-picker/timepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.module.ts","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.component.ts","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.component.html","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.module.ts","../../../../libs/ads-ui/src/lib/services/viewport/viewport.service.ts","../../../../libs/ads-ui/src/lib/services/window/window.service.ts","../../../../libs/ads-ui/src/lib/services/window/abstract-window-resize.component.ts","../../../../libs/ads-ui/src/lib/components/modal/modal.component.ts","../../../../libs/ads-ui/src/lib/components/modal/modal.component.html","../../../../libs/ads-ui/src/lib/components/modal/modal.module.ts","../../../../libs/ads-ui/src/lib/components/chip/chip.component.ts","../../../../libs/ads-ui/src/lib/components/chip/chip.component.html","../../../../libs/ads-ui/src/lib/components/chip/chip.module.ts","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.component.ts","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.component.html","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.module.ts","../../../../libs/ads-ui/src/lib/components/table/components/table-button/table-button.component.ts","../../../../libs/ads-ui/src/lib/components/table/components/table-button/table-button.component.html","../../../../libs/ads-ui/src/lib/components/table/table.component.ts","../../../../libs/ads-ui/src/lib/components/table/table.component.html","../../../../libs/ads-ui/src/lib/components/table/components/table-button/table-button.module.ts","../../../../libs/ads-ui/src/lib/components/table/table.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/abstract-side-nav-bar.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/nav-item.types.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/scms-side-nav-bar/scms-side-nav-bar.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/scms-side-nav-bar/scms-side-nav-bar.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/scms-side-nav-bar/scms-side-nav-bar.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu.service.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu-items/main-menu-items.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu-items/main-menu-items.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu-items/main-menu-items.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/profile-display/profile-display.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/profile-display/profile-display.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/profile-display/profile-display.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu-bottom-sheet/main-menu-bottom-sheet.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu-bottom-sheet/main-menu-bottom-sheet.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/components/numeric-step.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/components/numeric-step.component.html","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/wizard-stepper/wizard-stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/wizard-stepper/wizard-stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/wizard-stepper/wizard-stepper.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/stepper/stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/stepper/stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/stepper/stepper.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/horizontal-nav-bar/horizontal-nav-bar.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/horizontal-nav-bar/horizontal-nav-bar.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/horizontal-nav-bar/horizontal-nav-bar.module.ts","../../../../libs/ads-ui/src/lib/components/brand-artifacts/bubble/bubble.component.ts","../../../../libs/ads-ui/src/lib/components/brand-artifacts/bubble/bubble.component.html","../../../../libs/ads-ui/src/lib/components/brand-artifacts/bubble/bubble.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/time-field/time-field.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/time-field/time-field.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/time-field/time-field.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/navigation.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/navigation.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/navigation.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-header/navigation-header.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-header/navigation-header.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-header/navigation-header.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-collapse-handle/navigation-collapse-handle.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-collapse-handle/navigation-collapse-handle.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-collapse-handle/navigation-collapse-handle.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-items-container/navigation-items-container.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-items-container/navigation-items-container.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-item/navigation-item.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-item/navigation-item.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-item/navigation-item.module.ts","../../../../libs/ads-ui/src/lib/components/header/org-display-text/org-display-text.component.ts","../../../../libs/ads-ui/src/lib/components/header/org-display-text/org-display-text.component.html","../../../../libs/ads-ui/src/lib/components/header/org-display-text/org-display-text.module.ts","../../../../libs/ads-ui/src/lib/components/tabs/tabs.component.ts","../../../../libs/ads-ui/src/lib/components/tabs/tabs.component.html","../../../../libs/ads-ui/src/lib/components/tabs/tabs.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/international-phone-field/canadian-area-codes.ts","../../../../libs/ads-ui/src/lib/components/form-fields/international-phone-field/international-phone-field.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/international-phone-field/international-phone-field.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/international-phone-field/international-phone-field.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/progress-stepper/progress-stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/progress-stepper/progress-stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/progress-stepper/progress-stepper.module.ts","../../../../libs/ads-ui/src/ascentgl-ads-ui.ts"],"sourcesContent":["import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconUserCircle } from '@ascentgl/ads-icons/icons';\r\nimport { Size } from './avatar.types';\r\n\r\n@Component({\r\n selector: 'ads-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsAvatarComponent implements OnChanges {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register(adsIconUserCircle);\r\n }\r\n\r\n /**\r\n * The alt text for the avatar\r\n */\r\n @Input() alt?: string = 'Avatar for user';\r\n\r\n /**\r\n * The id attribute for the avatar icon\r\n */\r\n @Input() id = 'ads-avatar';\r\n\r\n /**\r\n * The size of the avatar\r\n */\r\n @Input() size: Size = 'md';\r\n\r\n /**\r\n * The path to the image to display\r\n */\r\n @Input() src?: string;\r\n\r\n /**\r\n * @ignore\r\n */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes?.size?.currentValue) {\r\n this.size = changes.size.currentValue;\r\n }\r\n\r\n if (changes?.image?.currentValue) {\r\n this.src = changes.image.currentValue;\r\n }\r\n }\r\n}\r\n","<div class=\"avatar\" [ngClass]=\"size\">\r\n @if(src) {\r\n <img [src]=\"src\" [alt]=\"alt\" />\r\n } @else {\r\n <ads-icon\r\n [id]=\"id\"\r\n name=\"user_circle\"\r\n [size]=\"size\"\r\n theme=\"iconPrimary\"\r\n stroke=\"iconPrimary\"\r\n color=\"--color-medium\"\r\n />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsAvatarComponent } from './avatar.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n declarations: [AdsAvatarComponent],\r\n imports: [CommonModule, AdsIconModule],\r\n exports: [AdsAvatarComponent],\r\n})\r\nexport class AdsAvatarModule {}\r\n","import { Component, input, output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-icon-hover',\r\n styleUrls: ['icon-hover.component.scss'],\r\n templateUrl: 'icon-hover.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsIconHoverComponent {\r\n /**\r\n * The aria-label for the button\r\n */\r\n ariaLabel = input<string>('');\r\n /**\r\n * Whether the icon button is disabled.\r\n */\r\n disabled = input<boolean>(false);\r\n\r\n /**\r\n * The unique ID for the icon button.\r\n */\r\n id = input<string>('');\r\n\r\n /**\r\n * Event emitted when the icon button is clicked.\r\n */\r\n clicked = output();\r\n\r\n /** @ignore */\r\n public onClick(): void {\r\n this.clicked.emit();\r\n }\r\n}\r\n","<button\r\n class=\"icon-hover\"\r\n type=\"button\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [attr.id]=\"id()\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onClick()\"\r\n>\r\n <ng-content></ng-content>\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsIconHoverComponent } from './icon-hover.component';\r\n\r\n@NgModule({\r\n exports: [AdsIconHoverComponent],\r\n declarations: [AdsIconHoverComponent],\r\n})\r\nexport class AdsIconHoverModule {}\r\n","import { Component, computed, input } from '@angular/core';\r\nimport { AdsIconHoverComponent } from '../icon-hover';\r\nimport { adsIcon, adsIconBell } from '@ascentgl/ads-icons/icons';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\n\r\nexport enum BadgeColor {\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n alert = 'alert',\r\n}\r\n\r\n@Component({\r\n selector: 'ads-numeric-badge',\r\n templateUrl: './numeric-badge.component.html',\r\n styleUrls: ['../icon-hover/icon-hover.component.scss', './numeric-badge.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsNumericBadgeComponent extends AdsIconHoverComponent {\r\n /** @ignore **/\r\n constructor(private registry: AdsIconRegistry) {\r\n super();\r\n this.registry.register(adsIconBell);\r\n }\r\n\r\n /** choose badge color mode \"primary\" or \"alert\" **/\r\n color = input<BadgeColor>(BadgeColor.secondary);\r\n\r\n /** provide icon name. NOTE: the icon must be registered in icon registry **/\r\n name = input<adsIcon>('bell');\r\n\r\n /** choose ads icon theme **/\r\n theme = input<'iconPrimary' | 'primary' | 'success' | 'warn' | 'white'>('iconPrimary');\r\n\r\n /** set badge value as number **/\r\n value = input<number>(0);\r\n\r\n /** @ignore **/\r\n calculatedValue = computed<string>(() => {\r\n if(!this.value()) {\r\n return '';\r\n }\r\n return this.value().toString().length > 2 ? '99..' : this.value().toString();\r\n });\r\n}\r\n","<button\r\n class=\"icon-hover color-{{ color() }}\"\r\n type=\"button\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [attr.id]=\"id()\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onClick()\"\r\n [matBadgeSize]=\"'small'\"\r\n [matBadge]=\"calculatedValue()\"\r\n [matBadgeHidden]=\"calculatedValue() === '0'\"\r\n>\r\n <ads-icon\r\n [name]=\"name()\"\r\n [size]=\"'sm'\"\r\n [theme]=\"theme()\"\r\n ></ads-icon>\r\n</button>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatBadge } from '@angular/material/badge';\r\nimport { AdsNumericBadgeComponent } from './numeric-badge.component';\r\n\r\n@NgModule({\r\n declarations: [AdsNumericBadgeComponent],\r\n exports: [AdsNumericBadgeComponent],\r\n imports: [AdsIconModule, MatBadge],\r\n})\r\nexport class AdsNumericBadgeModule {}\r\n","import {\r\n Component,\r\n input,\r\n} from '@angular/core';\r\nimport { Breadcrumb } from './breadcrumb.type';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconChevronRight } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsBreadcrumbComponent {\r\n /** provide an array of breadcrumbs of Breadcrumb<T> type */\r\n breadcrumbs = input.required<Breadcrumb[]>();\r\n\r\n /** @ignore */\r\n constructor(\r\n private registry: AdsIconRegistry,\r\n ) {\r\n this.registry.register([adsIconChevronRight]);\r\n }\r\n}\r\n","<div class=\"ads-breadcrumbs-container\">\r\n <div class=\"ads-breadcrumb-list\">\r\n @for (breadcrumb of breadcrumbs(); track $index) {\r\n @if (!$last) {\r\n <a class=\"ads-breadcrumb\" [routerLink]=\"breadcrumb.url\">\r\n <span>{{ breadcrumb.label }}</span>\r\n </a>\r\n } @else {\r\n <div class=\"ads-breadcrumb active\">\r\n <span>{{ breadcrumb.label }}</span>\r\n </div>\r\n }\r\n @if (!$last) {\r\n <ads-icon class=\"separator\" [name]=\"'chevron_right'\" [size]=\"'xxxxs'\" />\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n","import { Component, input } from '@angular/core';\r\n\r\nexport type IconButtonSize = 'xl-5' | 'xl' | 'sm';\r\n\r\n@Component({\r\n selector: 'ads-icon-button',\r\n templateUrl: './icon-button.component.html',\r\n styleUrls: ['./icon-button.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsIconButtonComponent {\r\n /** Whether the button is a smaller version */\r\n size = input<IconButtonSize>('xl-5');\r\n /**\r\n * aria-label for the button\r\n */\r\n ariaLabel = input<string>('');\r\n\r\n /**\r\n * The unique ID for the icon button\r\n */\r\n id = input<string | null>();\r\n\r\n /**\r\n * Whether the button is disabled\r\n */\r\n disabled = input<boolean>(false);\r\n}\r\n","<button\r\n type=\"button\"\r\n class=\"ads-icon-btn\"\r\n [disabled]=\"disabled()\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [id]=\"id()\"\r\n [ngClass]=\"[size()]\"\r\n>\r\n <span class=\"icon-wrapper\">\r\n <ng-content></ng-content>\r\n </span>\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsIconButtonComponent } from './icon-button.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [AdsIconButtonComponent],\r\n exports: [AdsIconButtonComponent],\r\n imports: [CommonModule, MatButtonModule, AdsIconModule],\r\n})\r\nexport class AdsIconButtonModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsBreadcrumbComponent } from './breadcrumb.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsIconButtonModule } from '../buttons/icon-button';\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, AdsIconModule, AdsIconButtonModule],\r\n declarations: [AdsBreadcrumbComponent],\r\n exports: [AdsBreadcrumbComponent],\r\n})\r\nexport class AdsBreadcrumbModule {}\r\n","import { Component, input } from '@angular/core';\r\n\r\nexport type Variant = 'primary' | 'error' | 'secondary' | 'tertiary';\r\nexport type Size = 'base' | 'sm' | 'xs';\r\n\r\n@Component({\r\n selector: 'ads-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsButtonComponent {\r\n /** The unique ID for the button */\r\n id = input<string>('');\r\n\r\n /** The button appearance style */\r\n variant = input<Variant>('primary');\r\n\r\n /** Whether the button is disabled */\r\n disabled = input<boolean>(false);\r\n\r\n /** Whether the button is a smaller version */\r\n size = input<Size>('base');\r\n\r\n /** Sets the \"type\" attribute on the button */\r\n type = input<'button' | 'submit' | 'reset'>('button');\r\n\r\n /** Makes the button take 100% width of its container */\r\n fullWidth = input<boolean>(false);\r\n}\r\n","<button mat-flat-button [class.full-width]=\"fullWidth()\" [id]=\"id()\" [ngClass]=\"[variant(), size()]\" [disabled]=\"disabled()\" [disableRipple]=\"true\">\r\n <ng-content></ng-content>\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { AdsButtonComponent } from './button.component';\r\n\r\n@NgModule({\r\n declarations: [AdsButtonComponent],\r\n exports: [AdsButtonComponent],\r\n imports: [CommonModule, MatButtonModule],\r\n})\r\nexport class AdsButtonModule {}\r\n","import { Component, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-button-container',\r\n templateUrl: './button-container.component.html',\r\n styleUrls: ['./button-container.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsButtonContainerComponent {\r\n /** How buttons in the container should be placed */\r\n justify = input<'flex-start' | 'flex-end' | 'center'>('flex-start');\r\n\r\n /** The gap between elements */\r\n gap = input<number>(16);\r\n}\r\n","<div class=\"button-container\" [style.justify-content]=\"justify()\" [style.gap]=\"gap() + 'px'\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsButtonContainerComponent } from './button-container.component';\r\n\r\n@NgModule({\r\n declarations: [AdsButtonContainerComponent],\r\n imports: [CommonModule],\r\n exports: [AdsButtonContainerComponent],\r\n})\r\nexport class AdsButtonContainerModule {}\r\n","export enum Colors {\r\n White = 'white',\r\n Muted30 = 'muted-30',\r\n Muted50 = 'muted-50',\r\n Muted = 'muted',\r\n Light30 = 'light-30',\r\n Light80 = 'light-80',\r\n Light = 'light',\r\n LightOpacity50 = 'light-opacity-50',\r\n Medium30 = 'medium-30',\r\n Medium50 = 'medium-50',\r\n Medium = 'medium',\r\n MediumOpacity50 = 'medium-opacity-50',\r\n Dark10 = 'dark-10',\r\n Dark30 = 'dark-30',\r\n Dark50 = 'dark-50',\r\n Dark80 = 'dark-80',\r\n Dark90 = 'dark-90',\r\n Dark = 'dark',\r\n Black = 'black',\r\n Primary = 'primary',\r\n PrimaryHover = 'primary-hover',\r\n PrimaryPressed = 'primary-pressed',\r\n Secondary = 'secondary',\r\n SecondaryHover = 'secondary-hover',\r\n SecondaryPressed = 'secondary-pressed',\r\n Secondary10 = 'secondary-10',\r\n Link = 'link',\r\n LinkHover = 'link-hover',\r\n LinkPressed = 'link-pressed',\r\n Error = 'error',\r\n ErrorHover = 'error-hover',\r\n ErrorPressed = 'error-pressed',\r\n Success = 'success',\r\n SuccessHover = 'success-hover',\r\n SuccessPressed = 'success-pressed',\r\n Logo = 'logo',\r\n Alert = 'alert',\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { Colors } from '../general/color-palette/colors.enums';\r\n\r\n@Component({\r\n selector: 'ads-card',\r\n styleUrls: ['card.component.scss'],\r\n templateUrl: 'card.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsCardComponent {\r\n /**\r\n * Card border color\r\n */\r\n @Input() borderColor: Colors = Colors.Light;\r\n\r\n /**\r\n * Card border width\r\n */\r\n @Input() borderWidth = 1;\r\n\r\n /**\r\n * Card border radius\r\n */\r\n @Input() borderRadius = 10;\r\n\r\n /** @ignore */\r\n getBorderColor(color: string): string {\r\n return `var(--color-${color})`;\r\n }\r\n}\r\n","<div\r\n class=\"ascent-card\"\r\n [ngStyle]=\"{\r\n borderWidth: borderWidth + 'px',\r\n borderColor: getBorderColor(borderColor),\r\n borderRadius: borderRadius + 'px',\r\n }\"\r\n>\r\n <ng-content />\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Colors } from '../general/color-palette/colors.enums';\r\n\r\n@Component({\r\n selector: 'ascent-card',\r\n styleUrls: ['card.component.scss'],\r\n templateUrl: 'card.component.html',\r\n standalone: false,\r\n})\r\nexport class AscentCardComponent {\r\n /**\r\n * Card border color\r\n */\r\n @Input() borderColor: Colors = Colors.Light;\r\n\r\n /**\r\n * Card border width\r\n */\r\n @Input() borderWidth = 1;\r\n\r\n /**\r\n * Card border radius\r\n */\r\n @Input() borderRadius = 10;\r\n\r\n /** @ignore */\r\n getBorderColor(color: string): string {\r\n return `var(--color-${color})`;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AdsCardComponent } from './card.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AdsCardComponent],\r\n declarations: [AdsCardComponent],\r\n})\r\nexport class AdsCardModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AscentCardComponent } from './ascent-card.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AscentCardComponent],\r\n declarations: [AscentCardComponent],\r\n})\r\nexport class AscentCardModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-tag-container',\r\n templateUrl: './tag-container.component.html',\r\n styleUrls: ['./tag-container.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsTagContainerComponent {}\r\n","<div class=\"tag-container\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { Component, ChangeDetectionStrategy, input, output } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconCross } from '@ascentgl/ads-icons/icons';\r\nimport { Colors } from '../../general/color-palette/colors.enums';\r\nimport { Tag } from './tag.types';\r\n\r\n@Component({\r\n selector: 'ads-tag',\r\n templateUrl: './tag.component.html',\r\n styleUrls: ['./tag.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class AdsTagComponent {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register(adsIconCross);\r\n }\r\n\r\n /** The color of the tag */\r\n color = input.required<Colors | string>();\r\n\r\n /** The border color of the tag */\r\n borderColor = input<Colors>();\r\n\r\n /** The border width of the tag */\r\n borderWidth = input<number>(0);\r\n\r\n /** Width of the tag */\r\n width = input<string>('auto');\r\n\r\n /** The unique id of the tag */\r\n id = input.required<string>();\r\n\r\n /** Whether the tag is removeable */\r\n removable = input<boolean>(true);\r\n\r\n /** The text of the tag */\r\n tag = input.required<string>();\r\n\r\n /** Event emitted when the remove icon is clicked */\r\n remove = output<string>();\r\n\r\n /** Event emitted when a tag is selected */\r\n selected = output<Tag>();\r\n\r\n /** @ignore */\r\n onRemove() {\r\n this.remove.emit(this.id());\r\n }\r\n\r\n /** @ignore */\r\n onSelected() {\r\n this.selected.emit({\r\n id: this.id(),\r\n color: this.color(),\r\n tag: this.tag(),\r\n });\r\n }\r\n\r\n /** @ignore */\r\n private darkTitleColorList = [\r\n Colors.Muted,\r\n Colors.Light30,\r\n Colors.Light80,\r\n Colors.Light,\r\n Colors.Medium30,\r\n Colors.Medium50,\r\n ];\r\n\r\n /** @ignore */\r\n\r\n isDarkTitle(): boolean {\r\n if (this.isColor(this.color())) {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-expect-error\r\n return this.darkTitleColorList.includes(this.color());\r\n }\r\n return false;\r\n }\r\n\r\n /** @ignore */\r\n getBackgroundColor(): string {\r\n if (this.isColor(this.color())) {\r\n return `var(--color-${this.color()})`;\r\n }\r\n\r\n return this.color();\r\n }\r\n\r\n /** @ignore */\r\n getTextColor(): string {\r\n if (this.isDarkTitle()) {\r\n return `var(--color-${Colors.Dark})`;\r\n }\r\n return `var(--color-${Colors.White})`;\r\n }\r\n\r\n /** @ignore */\r\n getBorderColor(): string {\r\n return `var(--color-${this.borderColor()})`;\r\n }\r\n\r\n /** @ignore */\r\n isColor(value: unknown): value is Colors {\r\n return Object.values(Colors).includes(value as Colors);\r\n }\r\n}\r\n","<div\r\n class=\"tag\"\r\n [ngStyle]=\"{\r\n 'background-color': getBackgroundColor(),\r\n color: getTextColor(),\r\n 'border-width': borderWidth() + 'px',\r\n 'border-style': borderWidth() > 0 ? 'solid' : 'none',\r\n 'border-color': getBorderColor(),\r\n width: width(),\r\n }\"\r\n>\r\n <ng-content></ng-content>\r\n <span class=\"tag-text\" (click)=\"onSelected()\">{{ tag() }}</span>\r\n\r\n @if (removable()) {\r\n <ads-icon\r\n [id]=\"'ads-tag-' + id()\"\r\n name=\"cross\"\r\n size=\"xxxxs\"\r\n (click)=\"onRemove()\"\r\n [stroke]=\"isDarkTitle() ? 'dark' : 'white'\"\r\n />\r\n }\r\n</div>\r\n","import {\r\n Component,\r\n effect,\r\n ElementRef, EventEmitter,\r\n Input,\r\n input,\r\n OnChanges,\r\n OnDestroy, Output,\r\n signal,\r\n SimpleChange,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconPlus } from '@ascentgl/ads-icons/icons';\r\nimport { Subscription } from 'rxjs';\r\nimport { ConnectedPosition } from '@angular/cdk/overlay';\r\nimport { Colors } from '../../general/color-palette/colors.enums';\r\nimport { Tag } from '../tag';\r\n\r\n@Component({\r\n selector: 'ads-create-tag',\r\n templateUrl: './create-tag.component.html',\r\n styleUrls: ['./create-tag.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsCreateTagComponent implements OnChanges, OnDestroy {\r\n constructor(\r\n private fb: FormBuilder,\r\n private registry: AdsIconRegistry,\r\n ) {\r\n this.registry.register(adsIconPlus);\r\n this.createForm();\r\n\r\n effect(() => {\r\n if (this.selectedTag()) {\r\n this.form.patchValue(this.selectedTag()!);\r\n this.selectedColor = this.selectedTag()!.color;\r\n setTimeout(() => {\r\n if (this.editInput) {\r\n this.editInput.nativeElement.focus();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n /** The total number of tags that can be created */\r\n limit = input<number>(10);\r\n\r\n /** Holds all the tags you create or tags you previously created. Required for proper unique tag validation\r\n * and total number of existing tags calculation */\r\n @Input() tags: Tag[] = [];\r\n @Output() tagsChange = new EventEmitter<Tag[]>();\r\n @Output() tagCreate = new EventEmitter<Tag>();\r\n @Output() tagRemove = new EventEmitter<string>();\r\n\r\n /** The color palette for the tag background */\r\n palette = input<Colors[]>([\r\n Colors.Primary,\r\n Colors.PrimaryPressed,\r\n Colors.Secondary,\r\n Colors.SecondaryPressed,\r\n Colors.Light30,\r\n Colors.Light,\r\n Colors.Medium,\r\n Colors.Dark10,\r\n ]);\r\n\r\n /** Reference to a tag which can be used for editing existing tags */\r\n /** @ignore */\r\n selectedTag = signal<Tag | null>(null);\r\n\r\n /** If true - all the letters will be transformed to lowercase */\r\n lowercase = input<boolean>(false);\r\n\r\n /** Total number of characters that can be in input field */\r\n maxlength = input<number>(30);\r\n\r\n /** If true - only alphanumeric characters are allowed */\r\n alphanumeric = input<boolean>(true);\r\n\r\n /** @ignore */\r\n form!: FormGroup;\r\n\r\n /** @ignore */\r\n selectedColor = '';\r\n\r\n /** @ignore */\r\n showInput = false;\r\n\r\n /** @ignore\r\n * preset positions are required to properly control how overlay is positioned relative to the button\r\n * NOTE: default positioning is not optimal\r\n * NOTE: if none of the positions fits - overlay will be positioned automatically\r\n */\r\n positions: ConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n },\r\n ];\r\n\r\n /** @ignore */\r\n @ViewChild('addInput') addInput?: ElementRef;\r\n\r\n /** @ignore */\r\n @ViewChild('editInput') editInput?: ElementRef;\r\n\r\n /** @ignore */\r\n private tagControlSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { tag?: SimpleChange; palette?: SimpleChange; suggestions?: SimpleChange }): void {\r\n if (changes.tag && changes.tag.currentValue && this.form) {\r\n // this.form.patchValue(changes.tag.currentValue);\r\n // this.selectedColor = changes.tag.currentValue.color;\r\n // this.showInput = true;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.tagControlSubscription?.unsubscribe();\r\n }\r\n\r\n /** @ignore */\r\n addTag(): void {\r\n if (!this.isValueInvalid()) {\r\n this.onTagCreated(this.getModifiedTag());\r\n this.reset();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n updateTag(): void {\r\n if (!this.isValueInvalid()) {\r\n this.onTagUpdated(this.getModifiedTag());\r\n this.reset();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onColorChange(color: string): void {\r\n this.selectedColor = color === this.selectedColor ? '' : color;\r\n this.form.patchValue({ color: this.selectedColor });\r\n }\r\n\r\n /** @ignore */\r\n reset(): void {\r\n this.resetForm();\r\n this.selectedColor = '';\r\n this.showInput = false;\r\n this.selectedTag.set(null);\r\n }\r\n\r\n /** @ignore */\r\n hide(): void {\r\n /**\r\n * reset form if we are closing after editing an existing tag\r\n * to avoid existing tag being loaded when we create a new one\r\n */\r\n if (this.form.value.id) {\r\n this.reset();\r\n } else {\r\n this.showInput = false;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n displayInput(): void {\r\n this.setDefaultSelectedColor();\r\n this.showInput = true;\r\n\r\n setTimeout(() => {\r\n if (this.addInput) {\r\n this.addInput.nativeElement.focus();\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n isValueInvalid(): boolean {\r\n /**\r\n * value is invalid if form us invalid\r\n * OR palette is enabled, but we have no color selected\r\n * OR tag is not unique\r\n * tag is not unique if already exists a tag with such name\r\n * AND color\r\n * AND current tag's id is different from existing tag's id\r\n */\r\n return (\r\n !this.form.valid ||\r\n !this.selectedColor ||\r\n this.tags.filter((tag) => {\r\n return (\r\n this.trimTagName(tag.tag) === this.trimTagName(this.form.value.tag) &&\r\n tag.color === this.form.value.color &&\r\n tag.id !== this.form.value.id\r\n );\r\n }).length > 0\r\n );\r\n }\r\n\r\n /** @ignore */\r\n private createForm(): void {\r\n this.form = this.fb.group({\r\n tag: new FormControl('', [Validators.required, Validators.maxLength(this.maxlength())]),\r\n color: new FormControl(''),\r\n id: new FormControl(''),\r\n });\r\n\r\n this.form.controls.tag.valueChanges.subscribe((value) => {\r\n const modifiedValue = this.formatTagName(value);\r\n\r\n /** update form value only if it got modified*/\r\n if (modifiedValue !== value) {\r\n this.form.controls.tag.setValue(modifiedValue, { emitEvent: false });\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n private resetForm(): void {\r\n this.form.reset({ tag: '', color: '', id: '' });\r\n }\r\n\r\n /** @ignore */\r\n private getModifiedTag(): Tag {\r\n return {\r\n id: this.form.value.id,\r\n tag: this.form.value.tag.trim(), //make sure tag value does not contain trailing slash\r\n color: this.form.value.color,\r\n };\r\n }\r\n\r\n /** @ignore */\r\n private setDefaultSelectedColor(): void {\r\n /**\r\n * set default color only if tag id is empty - meaning it is a new tag\r\n */\r\n if (!this.form.value.id && !this.form.value.color && this.palette.length) {\r\n this.onColorChange(this.palette()[0]);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private formatTagName(tagName: string): string {\r\n let formattedName = tagName;\r\n\r\n /** if \"alphanumeric\" is true - allow only alphanumerics and spaces */\r\n if (this.alphanumeric()) {\r\n formattedName = formattedName.replace(/[^a-z0-9\\s]/gi, '');\r\n }\r\n\r\n /** if \"lowercase\" is true - turn all letters to lowercase */\r\n if (this.lowercase()) {\r\n formattedName = formattedName.toLowerCase();\r\n }\r\n\r\n /** do not allow space at the beginning of the string*/\r\n if (formattedName.startsWith(' ')) {\r\n formattedName = formattedName.replace(/^\\s+/gm, '');\r\n }\r\n\r\n /** do not allow multi-space sequences*/\r\n if (formattedName.includes(' ')) {\r\n formattedName = formattedName.replace(/\\s\\s+/gm, ' ');\r\n }\r\n\r\n return formattedName;\r\n }\r\n\r\n /** @ignore */\r\n private trimTagName(tagName: string): string {\r\n return tagName.trim().toLowerCase();\r\n }\r\n\r\n /** @ignore */\r\n getBackgroundColor(color: string): string {\r\n return `var(--color-${color})`;\r\n }\r\n\r\n /** @ignore */\r\n onTagUpdated(tag: Tag): void {\r\n const existingTag = this.tags.find((existingTag) => existingTag.id === tag.id); // Find existing tag with the same id\r\n\r\n if (existingTag) {\r\n Object.assign(existingTag, tag); // Update existing tag properties\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onTagCreated(tag: Tag): void {\r\n tag.id = (this.tags[this.tags.length - 1].id + 1).toString(); // Generate a unique id for the tag - uuid is a 3rd party library\r\n this.tags.push(tag); // Add the tag to the list of tags\r\n this.tagsChange.emit([...this.tags]); // emit the updated array\r\n this.tagCreate.emit(tag);\r\n\r\n }\r\n\r\n /** @ignore */\r\n onTagSelect(tag: Tag): void {\r\n this.selectedTag.set(tag); // Set selectedTag value to open current tag in `ads-create-tag` component\r\n }\r\n\r\n /** @ignore */\r\n onTagRemove(id: string): void {\r\n this.tags = this.tags.filter((existingTag) => existingTag.id !== id); // Remove tag from the list of tags\r\n this.tagsChange.emit([...this.tags]);\r\n this.tagRemove.emit(id); // emit the updated array\r\n }\r\n}\r\n","<ads-tag-container>\r\n @for (tag of tags; track tag.id) {\r\n @if (selectedTag()?.id === tag.id) {\r\n <form [formGroup]=\"form\">\r\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #updateTrigger=\"cdkOverlayOrigin\"></div>\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"updateTrigger\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayPush]=\"true\"\r\n [cdkConnectedOverlayOpen]=\"true\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"hide()\"\r\n (detach)=\"hide()\"\r\n >\r\n <div class=\"tag-overlay\">\r\n <input #editInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\r\n <div class=\"tag-configuration\">\r\n <div class=\"color-picker\">\r\n @for (color of palette(); track color) {\r\n <div\r\n class=\"color\"\r\n [class.selected]=\"selectedColor === color\"\r\n [ngStyle]=\"{\r\n 'background-color': getBackgroundColor(color),\r\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\r\n }\"\r\n (click)=\"onColorChange(color)\"\r\n ></div>\r\n }\r\n </div>\r\n <div class=\"actions\">\r\n <ads-button [variant]=\"'secondary'\" size=\"xs\" (click)=\"reset()\">{{ 'Cancel' }}</ads-button>\r\n <ads-button size=\"xs\" [disabled]=\"isValueInvalid()\" (click)=\"updateTag()\">\r\n {{ 'Save' }}\r\n </ads-button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </form>\r\n } @else {\r\n <ads-tag\r\n [tag]=\"tag.tag\"\r\n [color]=\"tag.color\"\r\n [id]=\"tag.id\"\r\n (selected)=\"onTagSelect($event)\"\r\n (remove)=\"onTagRemove($event)\"\r\n />\r\n }\r\n }\r\n\r\n <div class=\"tag-container \">\r\n @if (showInput) {\r\n <form [formGroup]=\"form\">\r\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #addTrigger=\"cdkOverlayOrigin\"></div>\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"addTrigger\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayPush]=\"true\"\r\n [cdkConnectedOverlayOpen]=\"true\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"hide()\"\r\n (detach)=\"hide()\"\r\n >\r\n <div class=\"tag-overlay\">\r\n <input #addInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\r\n <div class=\"tag-configuration\">\r\n <div class=\"color-picker\">\r\n @for (color of palette(); track color) {\r\n <div\r\n class=\"color\"\r\n [class.selected]=\"selectedColor === color\"\r\n [ngStyle]=\"{\r\n 'background-color': getBackgroundColor(color),\r\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\r\n }\"\r\n (click)=\"onColorChange(color)\"\r\n ></div>\r\n }\r\n </div>\r\n <div class=\"actions\">\r\n <ads-button [variant]=\"'secondary'\" size=\"xs\" (click)=\"reset()\">{{ 'Cancel' }}</ads-button>\r\n <ads-button size=\"xs\" [disabled]=\"isValueInvalid()\" (click)=\"addTag()\">{{ 'Add' }} </ads-button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </form>\r\n }\r\n\r\n @if (this.tags.length < this.limit()) {\r\n <ads-button (click)=\"displayInput()\" size=\"xs\">\r\n {{ 'Add Tag' }}\r\n </ads-button>\r\n }\r\n </div>\r\n</ads-tag-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsTagContainerComponent } from './tag-container.component';\r\n\r\n@NgModule({\r\n declarations: [AdsTagContainerComponent],\r\n imports: [CommonModule],\r\n exports: [AdsTagContainerComponent],\r\n})\r\nexport class AdsTagContainerModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsTagComponent } from './tag.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n declarations: [AdsTagComponent],\r\n imports: [CommonModule, AdsIconModule],\r\n exports: [AdsTagComponent],\r\n})\r\nexport class AdsTagModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsCreateTagComponent } from './create-tag.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsButtonModule } from '../../buttons/button';\r\nimport { AdsTagContainerModule } from '../tag-container';\r\nimport { AdsTagModule } from '../tag';\r\n\r\n@NgModule({\r\n declarations: [AdsCreateTagComponent],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n OverlayModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n AdsButtonModule,\r\n AdsTagContainerModule,\r\n AdsTagModule,\r\n ],\r\n exports: [AdsCreateTagComponent],\r\n})\r\nexport class AdsCreateTagModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Colors } from '../general/color-palette/colors.enums';\r\n\r\nexport type DividerStyle = {\r\n margin: string | number;\r\n 'background-color': string;\r\n};\r\n\r\n@Component({\r\n selector: 'ads-divider',\r\n templateUrl: './divider.component.html',\r\n styleUrls: ['./divider.component.scss'],\r\n standalone: false,\r\n})\r\nexport class DividerComponent implements OnInit {\r\n /**\r\n * The divider left and right margin\r\n */\r\n @Input() margin: string | number = 0;\r\n\r\n /**\r\n * The divider color\r\n */\r\n @Input() color: Colors = Colors.Light;\r\n\r\n /** @ignore */\r\n public style!: DividerStyle;\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.setDividerStyle();\r\n }\r\n\r\n /** @ignore */\r\n private setDividerStyle() {\r\n this.style = {\r\n margin: `${this.margin}px`,\r\n 'background-color': `var(--color-${this.color})`,\r\n };\r\n }\r\n}\r\n","<div [ngStyle]=\"style\" class=\"ads-divider\"></div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { DividerComponent } from './divider.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [DividerComponent],\r\n declarations: [DividerComponent],\r\n})\r\nexport class AdsDividerModule {}\r\n","import { dragAndDropListClass } from './drag-and-drop-list.enums';\r\n\r\nexport class DomElement {\r\n constructor(private domElement: HTMLElement) {}\r\n\r\n get dom(): HTMLElement {\r\n return this.domElement;\r\n }\r\n\r\n canDrop(): boolean {\r\n return !this.dom.classList.contains(dragAndDropListClass.NO_DROP);\r\n }\r\n\r\n canDrag(): boolean {\r\n return !this.dom.classList.contains(dragAndDropListClass.NO_DRAG);\r\n }\r\n\r\n isDropBlocked(): boolean {\r\n return this.dom.classList.contains(dragAndDropListClass.DROP_BLOCKED);\r\n }\r\n\r\n makeDraggable(): void {\r\n this.dom.setAttribute('draggable', 'true');\r\n }\r\n\r\n makeUnDraggable(): void {\r\n this.dom.removeAttribute('draggable');\r\n }\r\n\r\n unblockDrop(): void {\r\n this.dom.classList.remove(dragAndDropListClass.DROP_BLOCKED);\r\n }\r\n\r\n clone(): HTMLElement {\r\n const clone: HTMLElement = this.dom.cloneNode(true) as HTMLElement;\r\n\r\n clone.classList.add(dragAndDropListClass.DRAGGED_PLACEHOLDER);\r\n\r\n const targetRect: DOMRect = this.dom.getBoundingClientRect();\r\n\r\n /**\r\n * preserve target dimensions\r\n */\r\n clone.style.width = targetRect.width + 'px';\r\n clone.style.height = targetRect.height + 'px';\r\n\r\n /**\r\n * modify clone styles\r\n */\r\n Object.assign(clone.style, {\r\n position: 'fixed', //required to allow free dragging of the clone\r\n pointerEvents: 'none', // required to allow drag events for items under the clone\r\n zIndex: '1000', // required to make sure that draggable element is positioned over other elements\r\n });\r\n\r\n return clone;\r\n }\r\n\r\n blockDrop(): void {\r\n this.dom.classList.add(dragAndDropListClass.DROP_BLOCKED);\r\n }\r\n\r\n draggedOver(): void {\r\n this.dom.classList.add(dragAndDropListClass.DRAGGED_OVER);\r\n }\r\n\r\n draggedOut(): void {\r\n this.dom.classList.remove(dragAndDropListClass.DRAGGED_OVER);\r\n this.unblockDrop();\r\n }\r\n\r\n isDragged(): void {\r\n this.dom.classList.add(dragAndDropListClass.IS_DRAGGED);\r\n }\r\n\r\n isNotDragged(): void {\r\n this.dom.classList.remove(dragAndDropListClass.IS_DRAGGED);\r\n }\r\n}\r\n","import { DomElement } from './dom.element';\r\nimport { Renderer2 } from '@angular/core';\r\n\r\ntype COORDS = { x: number; y: number };\r\n\r\nexport class DraggedPlaceholder {\r\n readonly domElement: HTMLElement;\r\n private readonly positions: { x: number; y: number } = { x: 0, y: 0 };\r\n private readonly scrollUnsubscribeFunction?: () => void;\r\n private cursorPos: COORDS = { x: 0, y: 0 };\r\n\r\n constructor(\r\n element: DomElement,\r\n container: HTMLElement,\r\n event: DragEvent,\r\n private renderer: Renderer2,\r\n ) {\r\n this.domElement = element.clone();\r\n\r\n /**\r\n * get target element DOMRect data\r\n */\r\n const targetRect: DOMRect = element.dom.getBoundingClientRect();\r\n\r\n /**\r\n * save cursor position relative to target element\r\n * this will help calculate dragged item position relative to the cursor\r\n */\r\n this.positions = {\r\n x: event.clientX - targetRect.left,\r\n y: event.clientY - targetRect.top,\r\n };\r\n\r\n this.hideDefaultDragPlaceholder(event);\r\n\r\n /**\r\n * add clone to the list\r\n */\r\n container.append(this.domElement);\r\n\r\n this.scrollUnsubscribeFunction = this.renderer.listen('document', 'scroll', (): void => {\r\n this.setDomPosition();\r\n });\r\n\r\n /**\r\n * make initial placeholder positioning\r\n */\r\n this.reposition(event);\r\n }\r\n\r\n remove(): void {\r\n this.domElement.remove();\r\n\r\n if (this.scrollUnsubscribeFunction) {\r\n this.scrollUnsubscribeFunction();\r\n }\r\n }\r\n\r\n reposition(event: MouseEvent): void {\r\n this.cursorPos = { x: event.clientX, y: event.clientY };\r\n this.setDomPosition();\r\n }\r\n\r\n private setDomPosition(): void {\r\n /**\r\n * position placeholder relative to the cursor\r\n */\r\n this.domElement.style.left = this.cursorPos.x - this.positions.x + 'px';\r\n this.domElement.style.top = this.cursorPos.y - this.positions.y + 'px';\r\n }\r\n\r\n private hideDefaultDragPlaceholder(event: DragEvent): void {\r\n const placeholder: HTMLImageElement = document.createElement('img');\r\n placeholder.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';\r\n\r\n Object.assign(placeholder.style, {\r\n display: 'block',\r\n width: '0',\r\n height: '0',\r\n });\r\n\r\n /**\r\n * replace default browser drag placeholder with transparent image\r\n */\r\n event.dataTransfer?.setDragImage(placeholder, 0, 0);\r\n }\r\n}\r\n","import { AfterContentInit, Component, ElementRef, Input, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DomElement } from './dom.element';\r\nimport { DraggedPlaceholder } from './dragged.placeholder';\r\nimport { dragAndDropListClass } from './drag-and-drop-list.enums';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\n\r\nexport type DROP_CALLBACK_INDEXES = { before: number; after: number };\r\nexport type UNSUBSCRIBE_FUNCTIONS_COLLECTION = GENERIC_COLLECTION<() => void>;\r\n\r\n@Component({\r\n selector: 'ads-drag-and-drop-list',\r\n styleUrls: ['drag-and-drop-list.component.scss'],\r\n templateUrl: 'drag-and-drop-list.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsDragAndDropListComponent implements OnInit, AfterContentInit, OnDestroy {\r\n /** @ignore */\r\n @ViewChild('draggableList', { read: ElementRef, static: true }) draggableList?: ElementRef;\r\n /** @ignore */\r\n @ViewChild('dynamicContent', { read: ElementRef, static: true }) dynamicContent?: ElementRef;\r\n\r\n /** This external method will be called after the item is dropped into new position */\r\n @Input() dropCallback?: (sourceIndexes: DROP_CALLBACK_INDEXES, targetIndexes: DROP_CALLBACK_INDEXES) => void;\r\n\r\n /** Callback function that can be used to determine if item can be dropped on the selected target */\r\n @Input() canDropCallback?: (sourceIndex: number, targetIndex: number) => boolean;\r\n\r\n /** Callback function that can be used to determine if item can be dragged */\r\n @Input() canDragCallback?: (sourceIndex: number) => boolean;\r\n\r\n /** If total items count is less than this value, drag&drop will be disabled */\r\n @Input() minCountToDrag = 2;\r\n\r\n /** Provide subject element, which will allow to refresh the list. NOTE: refreshing is required every time the list is updated from the outside */\r\n @Input() refresh: Subject<void> = new Subject<void>();\r\n\r\n /** @ignore */\r\n private draggedElement: DomElement | null = null;\r\n /** @ignore */\r\n private draggedPlaceholder: DraggedPlaceholder | null = null;\r\n /** @ignore */\r\n private unsubscribeFromDocumentDragOver?: () => void;\r\n /** @ignore */\r\n private unsubscribeFunctions: Map<HTMLElement, UNSUBSCRIBE_FUNCTIONS_COLLECTION> = new Map();\r\n /** @ignore */\r\n private ngUnsubscribe: Subject<void> = new Subject();\r\n\r\n private draggedOverElement: DomElement | null = null;\r\n\r\n /** @ignore */\r\n constructor(private renderer: Renderer2) {}\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n /**\r\n * if refresh command was emitted - refresh elements\r\n * NOTE: we do it in timeout to allow DOM to redraw first\r\n */\r\n this.refresh.pipe(takeUntil(this.ngUnsubscribe)).subscribe((): void => {\r\n setTimeout(() => this.refreshElements());\r\n });\r\n }\r\n\r\n /** @ignore */\r\n ngAfterContentInit(): void {\r\n this.refreshElements();\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.unsubscribeFromEventListeners();\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n /** @ignore */\r\n onListDragLeave(event: DragEvent): void {\r\n /**\r\n * if we dragged out of the element - unselect it\r\n */\r\n if (\r\n event.relatedTarget instanceof HTMLElement &&\r\n this.draggedOverElement &&\r\n !this.draggedOverElement.dom.contains(event.relatedTarget)\r\n ) {\r\n this.unselectDraggedOverElement();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onDragStart = (event: DragEvent): void => {\r\n /**\r\n * NOTE: register dragover for document body to overcome Firefox issue where clientX and clientY are 0 in 'drag' event\r\n */\r\n this.unsubscribeFromDocumentDragOver = this.renderer.listen(document.body, 'dragover', this.onDragOverBody);\r\n\r\n /**\r\n * store currently dragged element\r\n */\r\n this.draggedElement = this.getElement(event);\r\n\r\n /**\r\n * replace default browser dragged element with the custom one\r\n */\r\n this.draggedPlaceholder = new DraggedPlaceholder(\r\n this.draggedElement,\r\n this.draggableList?.nativeElement,\r\n event,\r\n this.renderer,\r\n );\r\n\r\n /**\r\n * mark dragged element with special class\r\n */\r\n this.draggedElement.isDragged();\r\n\r\n /**\r\n * block drop into the dragged element\r\n */\r\n this.draggedElement.blockDrop();\r\n };\r\n\r\n /** @ignore */\r\n onDragEnd = (): void => {\r\n /**\r\n * remove special class from dragged element mark dragged element\r\n */\r\n this.draggedElement?.isNotDragged();\r\n\r\n this.draggedElement = null;\r\n\r\n /**\r\n * if we subscribed to document dragover - unsubscribe from it\r\n */\r\n if (this.unsubscribeFromDocumentDragOver) {\r\n this.unsubscribeFromDocumentDragOver();\r\n }\r\n\r\n /**\r\n * remove dragged placeholder from DOM\r\n */\r\n this.draggedPlaceholder?.remove();\r\n this.draggedPlaceholder = null;\r\n };\r\n\r\n /** @ignore\r\n * NOTE: we rely on onDragOver instead of DragEnter and DragLeave because those events also fire when we enter and leave\r\n * child elements - the behavior we don't need\r\n */\r\n onDragOver = (event: DragEvent): void => {\r\n /**\r\n * NOTE: this is required for \"drop\" event to work\r\n */\r\n event.preventDefault();\r\n\r\n /**\r\n * do nothing if we have no dragged element, or we are still over the same element\r\n */\r\n if (!this.draggedElement || this.draggedOverElement?.dom === event.currentTarget) {\r\n return;\r\n }\r\n\r\n /**\r\n * make sure previous dragged over element is marked as \"dragged out\"\r\n */\r\n this.unselectDraggedOverElement();\r\n\r\n this.draggedOverElement = this.getElement(event);\r\n\r\n /**\r\n * do nothing if dragged element and element, we are dragging over is the same\r\n */\r\n if (this.isDraggingOverSelf(this.draggedOverElement)) {\r\n return;\r\n }\r\n\r\n this.draggedOverElement.draggedOver();\r\n\r\n /**\r\n * if drop is blocked - add special class to the dragged element\r\n */\r\n if (this.canDrop()) {\r\n this.draggedOverElement.unblockDrop();\r\n } else {\r\n this.draggedOverElement.blockDrop();\r\n }\r\n };\r\n\r\n /** @ignore */\r\n onDrop = (event: DragEvent): void => {\r\n /**\r\n * if drop is blocked - do nothing\r\n */\r\n if (!this.canDrop()) return;\r\n\r\n this.unselectDraggedOverElement();\r\n\r\n const target: DomElement = this.getElement(event);\r\n\r\n /**\r\n * preserve drop blocked state before cleaning classes - it will be needed later\r\n */\r\n const isTargetBlocked: boolean = target.isDropBlocked();\r\n\r\n this.getElement(event).draggedOut();\r\n\r\n /**\r\n * if we have no dragged element, we are dropping on self or target is blocked - do nothing\r\n */\r\n if (!this.draggedElement || this.isDraggingOverSelf(target) || isTargetBlocked) {\r\n return;\r\n }\r\n\r\n const sourceIndex: number = this.getElementIndex(this.draggedElement);\r\n const targetIndex: number = this.getElementIndex(target);\r\n\r\n /**\r\n * if source index is less than target index - means we are dragging down;\r\n * otherwise we are dragging up\r\n * NOTE: we utilise \"before\" method for element insertion in both cases, because \"after\" can\r\n * break order of \"drag-static\" elements (if they are present)\r\n */\r\n if (sourceIndex < targetIndex) {\r\n const allElements: HTMLElement[] = this.getAllElements();\r\n\r\n /**\r\n * loop through all element beginning with next to the currently dragged element\r\n * and ending with drop target element and move all of them up;\r\n * this will result in target element being moved down to required position\r\n */\r\n for (let i: number = sourceIndex + 1; i <= targetIndex; i++) {\r\n const target: HTMLElement = allElements[i];\r\n\r\n if (target) {\r\n this.draggedElement.dom.before(target);\r\n }\r\n }\r\n } else {\r\n target.dom.before(this.draggedElement.dom);\r\n }\r\n\r\n /**\r\n * if possible emit indexes old and new indexes of the repositioned items\r\n */\r\n if (this.dropCallback) {\r\n this.dropCallback(\r\n {\r\n before: sourceIndex,\r\n after: this.getElementIndex(this.draggedElement),\r\n },\r\n {\r\n before: targetIndex,\r\n after: this.getElementIndex(target),\r\n },\r\n );\r\n }\r\n };\r\n\r\n /** @ignore */\r\n onMouseEnter = (event: MouseEvent): void => {\r\n this.setCanDrag(this.getElement(event));\r\n };\r\n\r\n /** @ignore */\r\n private unselectDraggedOverElement(): void {\r\n /**\r\n * make sure previous dragged over element is marked as \"dragged out\"\r\n */\r\n this.draggedOverElement?.draggedOut();\r\n this.draggedOverElement = null;\r\n }\r\n\r\n /** @ignore */\r\n private setCanDrag(element: DomElement): void {\r\n /**\r\n * if special class is set for the element - forbid dragging\r\n */\r\n if (!element.canDrag()) {\r\n element.makeUnDraggable();\r\n return;\r\n }\r\n\r\n /**\r\n * make sure dragging the item is not forbidden by external function\r\n */\r\n if (this.canDragCallback) {\r\n if (this.canDragCallback(this.getElementIndex(element))) {\r\n element.makeDraggable();\r\n } else {\r\n element.makeUnDraggable();\r\n }\r\n return;\r\n }\r\n element.makeDraggable();\r\n }\r\n\r\n /** @ignore */\r\n private onDragOverBody = (event: DragEvent): void => {\r\n this.draggedPlaceholder?.reposition(event);\r\n };\r\n\r\n /** @ignore */\r\n private canDrop(): boolean {\r\n if (!this.draggedElement || !this.draggedOverElement) return false;\r\n\r\n /**\r\n * if special class is set for the element - forbid dropping;\r\n * otherwise make sure dropping over the item is not forbidden by external function\r\n */\r\n if (!this.draggedOverElement.canDrop()) {\r\n return false;\r\n } else if (this.canDropCallback) {\r\n return this.canDropCallback(\r\n this.getElementIndex(this.draggedElement),\r\n this.getElementIndex(this.draggedOverElement),\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** @ignore */\r\n private refreshElements(): void {\r\n /**\r\n * unsubscribe from all event listeners\r\n */\r\n this.unsubscribeFromEventListeners();\r\n\r\n /**\r\n * make sure no placeholder are still visible\r\n */\r\n document.querySelectorAll('.' + dragAndDropListClass.DRAGGED_PLACEHOLDER).forEach((element) => {\r\n element.remove();\r\n });\r\n\r\n /**\r\n * get all elements that can participate in drag and drop\r\n */\r\n const elements: HTMLElement[] = this.getAllElements();\r\n\r\n /**\r\n * make sure we have enough elements to continue\r\n */\r\n if (elements.length < this.minCountToDrag) {\r\n return;\r\n }\r\n\r\n /**\r\n * add required callbacks to all elements,\r\n * preserving their unsubscribe functions\r\n */\r\n elements.forEach((element: HTMLElement): void => {\r\n const functions: UNSUBSCRIBE_FUNCTIONS_COLLECTION = {};\r\n\r\n functions['dragstart'] = this.renderer.listen(element, 'dragstart', this.onDragStart);\r\n functions['dragend'] = this.renderer.listen(element, 'dragend', this.onDragEnd);\r\n functions['dragover'] = this.renderer.listen(element, 'dragover', this.onDragOver);\r\n functions['drop'] = this.renderer.listen(element, 'drop', this.onDrop);\r\n functions['mouseenter'] = this.renderer.listen(element, 'mouseenter', this.onMouseEnter);\r\n\r\n this.unsubscribeFunctions.set(element, functions);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n private unsubscribeFromEventListeners(): void {\r\n this.unsubscribeFunctions.forEach((collection) => {\r\n Object.values(collection).forEach((func) => func());\r\n });\r\n\r\n this.unsubscribeFunctions = new Map();\r\n }\r\n\r\n /** @ignore */\r\n private getAllElements(): HTMLElement[] {\r\n const result: HTMLElement[] = [];\r\n\r\n if (this.draggableList) {\r\n /**\r\n * loop through immediate children of the list\r\n */\r\n (<HTMLElement[]>Array.from(this.draggableList.nativeElement.children)).forEach((element: HTMLElement): void => {\r\n /**\r\n * element is static if it has both \"no-drop\" and \"no-drag\" classes\r\n */\r\n const isStatic: boolean =\r\n element.classList.contains(dragAndDropListClass.NO_DROP) &&\r\n element.classList.contains(dragAndDropListClass.NO_DRAG);\r\n\r\n /**\r\n * ignore static elements and dragged placeholder element from the list\r\n */\r\n if (!isStatic && !element.classList.contains(dragAndDropListClass.DRAGGED_PLACEHOLDER)) {\r\n result.push(element);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /** @ignore */\r\n private getElement(event: DragEvent | MouseEvent): DomElement {\r\n return new DomElement(<HTMLElement>event.currentTarget);\r\n }\r\n\r\n /** @ignore */\r\n private getElementIndex(element: DomElement): number {\r\n return this.getAllElements().indexOf(element.dom);\r\n }\r\n\r\n /** @ignore */\r\n private isDraggingOverSelf(element: DomElement | null): boolean {\r\n return this.draggedElement?.dom === element?.dom;\r\n }\r\n}\r\n","<div class=\"draggable-list\" #draggableList (dragleave)=\"onListDragLeave($event)\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsDragAndDropListComponent } from './drag-and-drop-list.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AdsDragAndDropListComponent],\r\n declarations: [AdsDragAndDropListComponent],\r\n})\r\nexport class AdsDragAndDropListModule {}\r\n","import { adsIcon } from '@ascentgl/ads-icons/icons';\r\n\r\nexport type ErrorPageConfig = {\r\n code: number;\r\n icon?: adsIcon;\r\n message: string;\r\n summary?: string;\r\n infoColumns?: ErrorPageInfoColumn[];\r\n showBackButton?: boolean;\r\n backButtonLabel?: string;\r\n showHomeButton?: boolean;\r\n homeButtonLabel?: string;\r\n};\r\n\r\nexport type ErrorPageInfoColumn = {\r\n header?: string;\r\n body: string;\r\n alignment?: 'left' | 'right' | 'center' | 'justify';\r\n};\r\n\r\nexport enum ErrorPageDefault {\r\n backButtonLabel = 'Go Back',\r\n homeButtonLabel = 'Return Home',\r\n errorCode = 404,\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n SimpleChange,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ErrorPageConfig, ErrorPageDefault } from './error-page.types';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { Location } from '@angular/common';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { adsIconLock, adsIconPlusCircle, adsIconSearch, adsIconWarning } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-error-page',\r\n templateUrl: './error-page.component.html',\r\n styleUrls: ['./error-page.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsErrorPageComponent implements OnChanges, AfterViewInit {\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private registry: AdsIconRegistry,\r\n private location: Location,\r\n private sanitizer: DomSanitizer,\r\n ) {\r\n /** Register basic icons. NOTE: any existing icon can be used if registered before */\r\n this.registry.register([adsIconWarning, adsIconLock, adsIconPlusCircle, adsIconSearch]);\r\n }\r\n\r\n /** Path to logo image file */\r\n @Input() logoSrc = 'https://cdn.ascentgl.com/img/ascent-logo-white.svg';\r\n\r\n /** Alt text for logo image */\r\n @Input() logoAlt = 'Ascent Global Logistics';\r\n\r\n /** Error page configuration object */\r\n @Input() config: ErrorPageConfig = {\r\n code: 404,\r\n message: 'This Page Looks a Little Lost',\r\n };\r\n\r\n /** @ignore */\r\n iconAsSvg?: SafeHtml;\r\n\r\n /** @ignore */\r\n defaults: typeof ErrorPageDefault = ErrorPageDefault;\r\n\r\n /** @ignore */\r\n @ViewChild('errorRepresentation') errorRepresentation?: ElementRef;\r\n\r\n /** @ignore */\r\n @ViewChild('errorCode') errorCode?: ElementRef;\r\n\r\n /** @ignore */\r\n @ViewChild('codeImage') codeImage?: ElementRef;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { config: SimpleChange }): void {\r\n if (changes.config && changes.config.currentValue) {\r\n this.setIcon();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n /**this method is required to properly calculate error code size and scale when component is being loaded,\r\n * further recalculation will happen on window resize*/\r\n this.cdr.detectChanges();\r\n }\r\n\r\n /** @ignore */\r\n @HostListener('window:resize') resize(): void {\r\n /** this method is needed to activate on resize change detection in the component */\r\n }\r\n\r\n /** @ignore */\r\n back(): void {\r\n this.location.back();\r\n }\r\n\r\n /** @ignore */\r\n adjustStyles(): { fontSize?: string; lineHeight?: string; scale?: number } {\r\n if (!this.errorRepresentation || !this.errorCode) return {};\r\n\r\n /**\r\n * NOTE: error code font size is calculated based on error representation height,\r\n * so that error code fits vertically\r\n * NOTE: error code scale is calculated based on error representation width,\r\n * so that error code fits horizontally\r\n */\r\n return {\r\n fontSize: this.errorRepresentation.nativeElement.offsetHeight + 'px',\r\n lineHeight: this.errorRepresentation.nativeElement.offsetHeight + 'px',\r\n scale:\r\n this.errorRepresentation.nativeElement.offsetWidth < this.errorCode.nativeElement.offsetWidth\r\n ? this.errorRepresentation.nativeElement.offsetWidth / this.errorCode.nativeElement.offsetWidth\r\n : 1,\r\n };\r\n }\r\n\r\n /** @ignore */\r\n private setIcon(): void {\r\n if (this.config.icon) {\r\n let svg = this.registry.get(this.config.icon);\r\n\r\n if (!svg) {\r\n svg = this.registry.get('warning');\r\n console.warn(`Icon \"${this.config.icon}\" not found`);\r\n }\r\n\r\n this.iconAsSvg = this.sanitizer.bypassSecurityTrustHtml(<string>svg);\r\n } else {\r\n this.iconAsSvg = undefined;\r\n }\r\n }\r\n}\r\n","<div class=\"error-page-container\">\r\n <div class=\"body\">\r\n <div class=\"body-header\"><img [src]=\"logoSrc\" [alt]=\"logoAlt\" /></div>\r\n <div class=\"body-error-representation\" #errorRepresentation [ngClass]=\"{ svg: iconAsSvg }\">\r\n @if (iconAsSvg) {\r\n <div class=\"error-icon {{ config.icon }}\" [innerHTML]=\"iconAsSvg\"></div>\r\n } @else {\r\n <span class=\"error-code\" #errorCode [ngStyle]=\"adjustStyles()\">\r\n {{ config.code || defaults.errorCode }}\r\n </span>\r\n }\r\n </div>\r\n @if (config.message) {\r\n <div class=\"body-error-message\">{{ config.message }}</div>\r\n }\r\n @if (config.summary) {\r\n <div class=\"body-error-summary\">{{ config.summary }}</div>\r\n }\r\n </div>\r\n @if(config.infoColumns?.length || config.showHomeButton || config.showBackButton) {\r\n <div class=\"footer\">\r\n @if(config.infoColumns?.length) {\r\n <div class=\"footer-info-columns\">\r\n <!-- default alignment for single column is \"center\", otherwise - \"left\" -->\r\n @for (column of config.infoColumns; track $index) {\r\n <div\r\n class=\"footer-info-column\"\r\n [ngStyle]=\"{\r\n 'text-align': column.alignment ? column.alignment : (config.infoColumns?.length ?? 1) > 1 ? 'left' : 'center',\r\n }\"\r\n >\r\n @if(column.header) {\r\n <div class=\"footer-column-header\">{{ column.header }}</div>\r\n }\r\n <div class=\"footer-column-body\" [innerHTML]=\"column.body\"></div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if(config.showHomeButton || config.showBackButton) {\r\n <div class=\"footer-buttons\">\r\n @if(config.showBackButton) {\r\n <ads-button variant=\"secondary\" (click)=\"back()\">{{\r\n config.backButtonLabel || defaults.backButtonLabel\r\n }}\r\n </ads-button>\r\n }\r\n @if(config.showHomeButton) {\r\n <ads-button variant=\"primary\" routerLink=\"/\">{{\r\n config.homeButtonLabel || defaults.homeButtonLabel\r\n }}\r\n </ads-button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-error-page-code',\r\n template: ``,\r\n standalone: false,\r\n})\r\nexport class AdsErrorPageCodeComponent {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsErrorPageCodeComponent } from './error-page-code.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [AdsErrorPageCodeComponent],\r\n exports: [AdsErrorPageCodeComponent],\r\n})\r\nexport class AdsErrorPageCodeModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsErrorPageComponent } from './error-page.component';\r\nimport { AdsButtonModule } from '../buttons/button';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdsErrorPageCodeModule } from './error-page-code';\r\n\r\n/**\r\n * todo: remove AdsErrorPageCodeModule after POD is updated\r\n * NOTE: currently AdsErrorPageCodeModule is provided as legacy to avoid POD compilation errors\r\n */\r\n@NgModule({\r\n declarations: [AdsErrorPageComponent],\r\n imports: [CommonModule, AdsButtonModule, RouterModule, AdsErrorPageCodeModule],\r\n exports: [AdsErrorPageComponent],\r\n})\r\nexport class AdsErrorPageModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { Copyright, Link } from './footer.component.types';\r\n\r\n@Component({\r\n selector: 'ads-footer',\r\n styleUrls: ['footer.component.scss'],\r\n templateUrl: 'footer.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsFooterComponent {\r\n /**\r\n * Alt text for the footer logo\r\n */\r\n @Input() alt = 'Logo';\r\n\r\n /**\r\n * Copyright text to display\r\n */\r\n @Input() copyright: Copyright = {\r\n text: `© ${new Date().getFullYear()} Ads™ is an Ascent Global Logistics Technology`,\r\n };\r\n\r\n /**\r\n * Links to display in the footer\r\n */\r\n @Input() links: Link[] = [];\r\n\r\n /**\r\n * Path to the logo to display\r\n */\r\n @Input() logoSrc?: string;\r\n}\r\n","<div class=\"footer\">\r\n <div class=\"links\">\r\n @for (link of links; track $index) {\r\n <a class=\"tertiary-link text-xs\" [href]=\"link.href\" [target]=\"link.target || '_self'\">{{ link.text }}</a>\r\n }\r\n </div>\r\n <div class=\"footer-right\">\r\n <div class=\"copyright\">\r\n @if (copyright.href) {\r\n <a\r\n class=\"secondary-link text-xs\"\r\n [href]=\"copyright.href\"\r\n [target]=\"copyright.target || '_self'\"\r\n [innerHtml]=\"copyright.text\"\r\n ></a>\r\n } @else {\r\n <span [innerHtml]=\"copyright.text\"></span>\r\n }\r\n </div>\r\n @if (logoSrc) {\r\n <div class=\"logo\">\r\n <img [attr.src]=\"logoSrc\" alt=\"{{ alt }}\" />\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsFooterComponent } from './footer.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AdsFooterComponent],\r\n declarations: [AdsFooterComponent],\r\n})\r\nexport class AdsFooterModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-footer-container',\r\n styleUrls: ['footer-container.component.scss'],\r\n templateUrl: 'footer-container.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsFooterContainerComponent {}\r\n","<footer>\r\n <ng-content></ng-content>\r\n</footer>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsFooterContainerComponent } from './footer-container.component';\r\n\r\n@NgModule({\r\n exports: [AdsFooterContainerComponent],\r\n declarations: [AdsFooterContainerComponent],\r\n})\r\nexport class AdsFooterContainerModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-header',\r\n styleUrls: ['header.component.scss'],\r\n templateUrl: 'header.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsHeaderComponent {}\r\n","<div class=\"header\">\r\n <div class=\"addon-left\">\r\n <ng-content select=\"[left]\"></ng-content>\r\n </div>\r\n <ng-content select=\"[logo]\"></ng-content>\r\n <div class=\"addon-right\">\r\n <ng-content select=\"[right]\"></ng-content>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsHeaderComponent } from './header.component';\r\n\r\n@NgModule({\r\n exports: [AdsHeaderComponent],\r\n declarations: [AdsHeaderComponent],\r\n})\r\nexport class AdsHeaderModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-header-container',\r\n styleUrls: ['header-container.component.scss'],\r\n templateUrl: 'header-container.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsHeaderContainerComponent {\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n}\r\n","<header [class.mobile]=\"isMobile\">\r\n <ng-content></ng-content>\r\n</header>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { AdsHeaderContainerComponent } from './header-container.component';\r\n\r\n@NgModule({\r\n exports: [AdsHeaderContainerComponent],\r\n declarations: [AdsHeaderContainerComponent],\r\n})\r\nexport class AdsHeaderContainerModule {}\r\n","import { Component, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-link-button',\r\n templateUrl: './link-button.component.html',\r\n styleUrls: ['./link-button.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsLinkButtonComponent {\r\n /** The unique ID for the button */\r\n id = input<string>('');\r\n\r\n /** Whether the button is disabled */\r\n disabled = input<boolean>(false);\r\n}\r\n","<button mat-flat-button [id]=\"id()\" [disabled]=\"disabled()\" [disableRipple]=\"true\">\r\n <ng-content select=\"[icon]\"></ng-content>\r\n <ng-content></ng-content>\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { AdsLinkButtonComponent } from './link-button.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n declarations: [AdsLinkButtonComponent],\r\n exports: [AdsLinkButtonComponent],\r\n imports: [CommonModule, MatButtonModule, AdsIconModule],\r\n})\r\nexport class AdsLinkButtonModule {}\r\n","import { Directive, HostListener, input, OnInit } from '@angular/core';\r\n\r\n@Directive()\r\nexport abstract class AbstractLogoComponent implements OnInit {\r\n /** @ignore */\r\n isMobile = false;\r\n\r\n /**\r\n * Mobile width\r\n */\r\n mobileWidth = input<number>(768);\r\n\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n isCollapsed = input<boolean>(false);\r\n\r\n /** @ignore */\r\n @HostListener('window:resize')\r\n onResize() {\r\n this.checkScreenSize();\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.checkScreenSize();\r\n }\r\n\r\n /** @ignore */\r\n private checkScreenSize(): void {\r\n this.isMobile = window.innerWidth <= this.mobileWidth();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractLogoComponent } from './abstract-logo-component';\r\n\r\n@Component({\r\n selector: 'ads-primary-logo',\r\n styleUrls: ['primary-logo.component.scss'],\r\n templateUrl: 'primary-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsPrimaryLogoComponent extends AbstractLogoComponent {\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","<picture [ngClass]=\"{ full: !isCollapsed() }\">\r\n @if (isMobile || isCollapsed()) {\r\n <svg class=\"logo-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"32\" viewBox=\"0 0 24 32\">\r\n <path\r\n d=\"M20.5547 3.69959C18.4527 1.6106 15.6421 0.377465 12.6734 0.241829C9.70483 0.106194 6.79227 1.07784 4.50651 2.96635V0.663115H0V31.994L4.50218 27.517V21.1981C6.86303 23.1293 9.87957 24.0849 12.9287 23.8677C15.9778 23.6504 18.8265 22.2769 20.8864 20.0308C22.9463 17.7848 24.06 14.8377 23.9975 11.7985C23.935 8.75926 22.701 5.85999 20.5504 3.69959H20.5547ZM12.1446 19.6627C10.6356 19.6669 9.15923 19.2258 7.90244 18.3953C6.64565 17.5647 5.66496 16.3819 5.08451 14.9968C4.50406 13.6116 4.34996 12.0864 4.64172 10.6141C4.93348 9.14178 5.65798 7.78868 6.7235 6.72608C7.78901 5.66348 9.14763 4.93917 10.6273 4.64484C12.107 4.35051 13.6413 4.49941 15.0359 5.07268C16.4304 5.64595 17.6226 6.61781 18.4614 7.86521C19.3002 9.11262 19.748 10.5795 19.748 12.0801C19.7468 14.087 18.9461 16.0118 17.5211 17.4329C16.096 18.8541 14.1628 19.6558 12.1446 19.6627Z\"\r\n />\r\n </svg>\r\n } @else {\r\n <svg class=\"logo-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"80\" height=\"35\" viewBox=\"0 0 80 35\">\r\n <path\r\n d=\"M15.4308 12.8987C13.8528 11.3239 11.7428 10.3942 9.51421 10.292C7.28561 10.1897 5.09909 10.9222 3.38313 12.346V10.6096H0V34.2293L3.37987 30.8542V26.0905C5.15222 27.5464 7.41679 28.2668 9.70582 28.103C11.9948 27.9393 14.1334 26.9038 15.6799 25.2105C17.2263 23.5173 18.0623 21.2956 18.0154 19.0043C17.9685 16.7131 17.0421 14.5274 15.4276 12.8987H15.4308ZM9.11719 24.933C7.98435 24.9362 6.87602 24.6037 5.93252 23.9775C4.98903 23.3513 4.2528 22.4597 3.81704 21.4155C3.38128 20.3712 3.2656 19.2213 3.48463 18.1114C3.70366 17.0015 4.24756 15.9814 5.04746 15.1803C5.84737 14.3793 6.86731 13.8332 7.97815 13.6113C9.089 13.3894 10.2408 13.5017 11.2877 13.9339C12.3347 14.366 13.2296 15.0987 13.8593 16.0391C14.4891 16.9795 14.8252 18.0853 14.8252 19.2166C14.8244 20.7296 14.2232 22.1806 13.1534 23.252C12.0836 24.3234 10.6323 24.9278 9.11719 24.933Z\"\r\n />\r\n <path\r\n d=\"M38.2118 19.2167C38.2119 17.2546 37.565 15.3472 36.3711 13.7889C35.1772 12.2306 33.5028 11.1082 31.6064 10.5951C29.71 10.082 27.6972 10.2067 25.8788 10.9499C24.0605 11.6932 22.5378 13.0137 21.5459 14.7074C20.5541 16.4011 20.1483 18.3737 20.3912 20.3207C20.6341 22.2677 21.5122 24.0807 22.8899 25.4796C24.2676 26.8785 26.0682 27.7855 28.0136 28.0605C29.9589 28.3355 31.9409 27.9632 33.6532 27.0011C34.9526 26.2641 36.0481 25.216 36.841 23.951L34.1058 22.2439C33.5193 23.1737 32.677 23.9151 31.6797 24.3794C30.6823 24.8437 29.5722 25.0112 28.482 24.862C27.3917 24.7128 26.3677 24.2532 25.5322 23.538C24.6967 22.8229 24.0852 21.8825 23.7708 20.8295H38.2151L38.2118 19.2167ZM23.7708 17.6071C24.1208 16.4233 24.8449 15.3844 25.835 14.6454C26.825 13.9065 28.0279 13.5072 29.2639 13.5072C30.5 13.5072 31.7028 13.9065 32.6929 14.6454C33.6829 15.3844 34.407 16.4233 34.757 17.6071H23.7708Z\"\r\n />\r\n <path d=\"M66.3569 10.3986H63.0128V28.0972H66.3569V10.3986Z\" />\r\n <path d=\"M71.14 19.2495L80 28.0972H75.4837L66.6205 19.2495L75.4837 10.3986H80L71.14 19.2495Z\" />\r\n <path d=\"M56.5265 0H41.304V2.84191H56.5265V0Z\" />\r\n <path d=\"M40.5882 28.0971H37.0032L48.9174 5.35858L60.8316 28.0971H57.2466L48.9174 12.2L40.5882 28.0971Z\" />\r\n </svg>\r\n }\r\n</picture>\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsPrimaryLogoComponent } from './primary-logo.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, NgOptimizedImage],\r\n exports: [AdsPrimaryLogoComponent],\r\n declarations: [AdsPrimaryLogoComponent],\r\n})\r\nexport class AdsPrimaryLogoModule {}\r\n","import { AfterViewInit, Component, ElementRef, Input, input } from '@angular/core';\r\nimport { AbstractLogoComponent } from '../primary-logo/abstract-logo-component';\r\n\r\n@Component({\r\n selector: 'ads-ascent-logo',\r\n styleUrls: ['ascent-logo.component.scss'],\r\n templateUrl: 'ascent-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsAscentLogoComponent extends AbstractLogoComponent implements AfterViewInit {\r\n constructor(private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n /** @ignore */\r\n isDarkMode = false;\r\n\r\n /** @ignore */\r\n isStorybook = false;\r\n\r\n /**\r\n * Invert colors option\r\n */\r\n @Input() invertTheme = false;\r\n\r\n /** @ignore */\r\n pictureEl?: HTMLElement;\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n const root = document.documentElement;\r\n this.pictureEl = this.ref.nativeElement.querySelector('picture');\r\n if (this.invertTheme) {\r\n this.pictureEl?.classList.add('invert-theme');\r\n }\r\n\r\n if (root.classList.contains('dark-theme') || root.classList.contains('light-theme')) {\r\n // Running inside Storybook\r\n this.isStorybook = true;\r\n this.updateThemeFromClassList(root);\r\n\r\n // Observe class changes in Storybook\r\n new MutationObserver(() => this.updateThemeFromClassList(root)).observe(root, {\r\n attributes: true,\r\n attributeFilter: ['class'],\r\n });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private updateThemeFromClassList(root: HTMLElement): void {\r\n this.isDarkMode = root.classList.contains('dark-theme');\r\n }\r\n\r\n /**\r\n * Logo size\r\n */\r\n size = input<'large' | 'small'>('large');\r\n}\r\n","@if (isStorybook) {\r\n <picture class=\"ads-ascent-logo\">\r\n @if (!isDarkMode) {\r\n @if (isMobile || isCollapsed()) {\r\n <svg\r\n class=\"collapsed\"\r\n [ngClass]=\"size()\"\r\n width=\"42\"\r\n height=\"30\"\r\n viewBox=\"0 0 42 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"New logo Color\" clip-path=\"url(#clip0_2342_113)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.6973C13.1314 17.2304 13.4946 17.9096 13.6419 18.6492C13.7892 19.3888 13.7138 20.1554 13.4253 20.8521C13.1368 21.5488 12.6482 22.1443 12.0212 22.5633C11.3943 22.9823 10.6571 23.2059 9.90305 23.2059C9.14898 23.2059 8.41184 22.9823 7.78487 22.5633C7.15791 22.1443 6.66928 21.5488 6.3808 20.8521C6.09232 20.1554 6.01695 19.3888 6.16421 18.6492C6.31147 17.9096 6.67475 17.2304 7.20811 16.6973C7.56177 16.343 7.98185 16.0619 8.44428 15.8701C8.90671 15.6783 9.40242 15.5795 9.90305 15.5795C10.4037 15.5795 10.8994 15.6783 11.3618 15.8701C11.8243 16.0619 12.2443 16.343 12.598 16.6973ZM19.8477 9.45219C19.2638 8.87394 18.5218 8.4814 17.7152 8.32403C16.9086 8.16666 16.0735 8.25149 15.315 8.56784C14.5566 8.88418 13.9087 9.41789 13.4529 10.1018C12.9972 10.7856 12.754 11.589 12.754 12.4108C12.754 13.2326 12.9972 14.0361 13.4529 14.7199C13.9087 15.4038 14.5566 15.9375 15.315 16.2539C16.0735 16.5702 16.9086 16.655 17.7152 16.4977C18.5218 16.3403 19.2638 15.9477 19.8477 15.3695C20.2387 14.9823 20.5491 14.5215 20.7609 14.0137C20.9727 13.5058 21.0817 12.9611 21.0817 12.4108C21.0817 11.8606 20.9727 11.3158 20.7609 10.808C20.5491 10.3002 20.2387 9.83936 19.8477 9.45219ZM27.2502 8.78597C27.9143 8.12132 28.3664 7.27468 28.5494 6.3531C28.7324 5.43152 28.6381 4.47638 28.2784 3.6084C27.9186 2.74042 27.3096 1.99857 26.5284 1.47665C25.7471 0.954734 24.8286 0.676163 23.889 0.676163C22.9494 0.676163 22.0309 0.954734 21.2497 1.47665C20.4684 1.99857 19.8594 2.74042 19.4996 3.6084C19.1399 4.47638 19.0456 5.43152 19.2286 6.3531C19.4116 7.27468 19.8637 8.12132 20.5278 8.78597C21.4177 9.67337 22.6231 10.1717 23.8798 10.1717C25.1364 10.1717 26.3418 9.67337 27.2317 8.78597H27.2502ZM14.9436 24.4513C14.5635 24.8319 14.3047 25.3166 14.1999 25.8443C14.0952 26.3719 14.1492 26.9187 14.3552 27.4157C14.5612 27.9126 14.9099 28.3373 15.3572 28.636C15.8045 28.9348 16.3304 29.0943 16.8683 29.0943C17.4062 29.0943 17.932 28.9348 18.3793 28.636C18.8266 28.3373 19.1753 27.9126 19.3813 27.4157C19.5873 26.9187 19.6413 26.3719 19.5366 25.8443C19.4319 25.3166 19.1731 24.8319 18.7929 24.4513C18.2815 23.9428 17.5895 23.6573 16.8683 23.6573C16.147 23.6573 15.4551 23.9428 14.9436 24.4513ZM21.157 16.6973C20.6237 17.2304 20.2604 17.9096 20.1131 18.6492C19.9659 19.3888 20.0413 20.1554 20.3297 20.8521C20.6182 21.5488 21.1068 22.1443 21.7338 22.5633C22.3608 22.9823 23.0979 23.2059 23.852 23.2059C24.6061 23.2059 25.3432 22.9823 25.9702 22.5633C26.5971 22.1443 27.0858 21.5488 27.3743 20.8521C27.6627 20.1554 27.7381 19.3888 27.5908 18.6492C27.4436 17.9096 27.0803 17.2304 26.5469 16.6973C25.8322 15.9896 24.8671 15.5925 23.8612 15.5925C22.8554 15.5925 21.8903 15.9896 21.1756 16.6973H21.157ZM33.7967 9.45219C33.2128 8.87394 32.4708 8.4814 31.6642 8.32403C30.8576 8.16666 30.0225 8.25149 29.264 8.56784C28.5055 8.88418 27.8576 9.41789 27.4019 10.1018C26.9461 10.7856 26.703 11.589 26.703 12.4108C26.703 13.2326 26.9461 14.0361 27.4019 14.7199C27.8576 15.4038 28.5055 15.9375 29.264 16.2539C30.0225 16.5702 30.8576 16.655 31.6642 16.4977C32.4708 16.3403 33.2128 15.9477 33.7967 15.3695C34.1889 14.9836 34.5007 14.5237 34.7141 14.0165C34.9275 13.5094 35.0382 12.9649 35.0399 12.4147C35.0417 11.8645 34.9343 11.3194 34.7241 10.8109C34.5139 10.3024 34.205 9.84058 33.8152 9.45219H33.7967ZM0.795762 24.4513C0.415598 24.8319 0.156793 25.3166 0.0520611 25.8443C-0.0526711 26.3719 0.00137099 26.9187 0.207356 27.4157C0.413341 27.9126 0.762022 28.3373 1.20932 28.636C1.65663 28.9348 2.18247 29.0943 2.72039 29.0943C3.25831 29.0943 3.78416 28.9348 4.23146 28.636C4.67876 28.3373 5.02744 27.9126 5.23343 27.4157C5.43941 26.9187 5.49345 26.3719 5.38872 25.8443C5.28399 25.3166 5.02519 24.8319 4.64502 24.4513C4.39238 24.1984 4.09235 23.9978 3.76211 23.8609C3.43187 23.724 3.07788 23.6535 2.72039 23.6535C2.3629 23.6535 2.00892 23.724 1.67868 23.8609C1.34843 23.9978 1.04841 24.1984 0.795762 24.4513ZM40.5375 16.6973C40.0044 16.1639 39.3252 15.8007 38.5856 15.6534C37.8461 15.5061 37.0794 15.5815 36.3827 15.87C35.686 16.1585 35.0905 16.6471 34.6715 17.2741C34.2525 17.901 34.0289 18.6382 34.0289 19.3923C34.0289 20.1463 34.2525 20.8835 34.6715 21.5104C35.0905 22.1374 35.686 22.626 36.3827 22.9145C37.0794 23.203 37.8461 23.2784 38.5856 23.1311C39.3252 22.9838 40.0044 22.6206 40.5375 22.0872C41.2509 21.3717 41.6515 20.4026 41.6515 19.3923C41.6515 18.3819 41.2509 17.4128 40.5375 16.6973Z\"\r\n fill=\"url(#paint0_linear_2342_113)\"\r\n />\r\n </g>\r\n <defs>\r\n <linearGradient\r\n id=\"paint0_linear_2342_113\"\r\n x1=\"7.54585\"\r\n y1=\"35.0553\"\r\n x2=\"33.8846\"\r\n y2=\"8.71658\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n >\r\n <stop stop-color=\"#004987\" />\r\n <stop offset=\"0.25\" stop-color=\"#004C89\" />\r\n <stop offset=\"0.44\" stop-color=\"#00568F\" />\r\n <stop offset=\"0.62\" stop-color=\"#00669A\" />\r\n <stop offset=\"0.78\" stop-color=\"#007DAA\" />\r\n <stop offset=\"0.93\" stop-color=\"#009BBD\" />\r\n <stop offset=\"1\" stop-color=\"#00ABC8\" />\r\n </linearGradient>\r\n <clipPath id=\"clip0_2342_113\">\r\n <rect width=\"42\" height=\"29\" fill=\"white\" transform=\"translate(0 0.677048)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n } @else {\r\n <svg [ngClass]=\"size()\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 29\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_353_5425)\">\r\n <path\r\n d=\"M12.598 16.0262C13.1314 16.5593 13.4946 17.2386 13.6419 17.9781C13.7892 18.7177 13.7138 19.4843 13.4253 20.181C13.1368 20.8778 12.6482 21.4733 12.0212 21.8923C11.3943 22.3112 10.6571 22.5349 9.90305 22.5349C9.14897 22.5349 8.41183 22.3112 7.78487 21.8923C7.1579 21.4733 6.66928 20.8778 6.3808 20.181C6.09232 19.4843 6.01694 18.7177 6.16421 17.9781C6.31147 17.2386 6.67475 16.5593 7.20811 16.0262C7.56177 15.6719 7.98184 15.3908 8.44428 15.199C8.90671 15.0072 9.40242 14.9085 9.90305 14.9085C10.4037 14.9085 10.8994 15.0072 11.3618 15.199C11.8243 15.3908 12.2443 15.6719 12.598 16.0262ZM19.8477 8.78113C19.2638 8.20288 18.5218 7.81033 17.7152 7.65296C16.9086 7.49559 16.0735 7.58043 15.315 7.89677C14.5566 8.21311 13.9087 8.74683 13.4529 9.43069C12.9972 10.1145 12.754 10.918 12.754 11.7398C12.754 12.5616 12.9972 13.365 13.4529 14.0489C13.9087 14.7327 14.5566 15.2664 15.315 15.5828C16.0735 15.8991 16.9086 15.984 17.7152 15.8266C18.5218 15.6692 19.2638 15.2767 19.8477 14.6984C20.2387 14.3113 20.5491 13.8504 20.7609 13.3426C20.9727 12.8348 21.0817 12.29 21.0817 11.7398C21.0817 11.1895 20.9727 10.6448 20.7609 10.1369C20.5491 9.62912 20.2387 9.16829 19.8477 8.78113ZM27.2502 8.11491C27.9143 7.45025 28.3664 6.60361 28.5494 5.68204C28.7324 4.76046 28.6381 3.80531 28.2784 2.93733C27.9186 2.06935 27.3096 1.32751 26.5284 0.805587C25.7471 0.283668 24.8286 0.00509644 23.889 0.00509644C22.9494 0.00509644 22.0309 0.283668 21.2497 0.805587C20.4684 1.32751 19.8594 2.06935 19.4996 2.93733C19.1399 3.80531 19.0456 4.76046 19.2286 5.68204C19.4116 6.60361 19.8637 7.45025 20.5278 8.11491C21.4177 9.0023 22.6231 9.50063 23.8798 9.50063C25.1364 9.50063 26.3418 9.0023 27.2317 8.11491H27.2502ZM14.9436 23.7803C14.5635 24.1608 14.3047 24.6456 14.1999 25.1732C14.0952 25.7008 14.1492 26.2477 14.3552 26.7446C14.5612 27.2415 14.9099 27.6662 15.3572 27.965C15.8045 28.2638 16.3304 28.4233 16.8683 28.4233C17.4062 28.4233 17.932 28.2638 18.3793 27.965C18.8266 27.6662 19.1753 27.2415 19.3813 26.7446C19.5873 26.2477 19.6413 25.7008 19.5366 25.1732C19.4319 24.6456 19.1731 24.1608 18.7929 23.7803C18.2815 23.2717 17.5895 22.9863 16.8683 22.9863C16.147 22.9863 15.4551 23.2717 14.9436 23.7803ZM21.157 16.0262C20.6237 16.5593 20.2604 17.2386 20.1131 17.9781C19.9659 18.7177 20.0413 19.4843 20.3297 20.181C20.6182 20.8778 21.1068 21.4733 21.7338 21.8923C22.3608 22.3112 23.0979 22.5349 23.852 22.5349C24.6061 22.5349 25.3432 22.3112 25.9702 21.8923C26.5971 21.4733 27.0858 20.8778 27.3742 20.181C27.6627 19.4843 27.7381 18.7177 27.5908 17.9781C27.4436 17.2386 27.0803 16.5593 26.5469 16.0262C25.8322 15.3185 24.8671 14.9215 23.8612 14.9215C22.8554 14.9215 21.8903 15.3185 21.1756 16.0262H21.157ZM33.7967 8.78113C33.2128 8.20288 32.4708 7.81033 31.6642 7.65296C30.8576 7.49559 30.0225 7.58043 29.264 7.89677C28.5055 8.21311 27.8576 8.74683 27.4019 9.43069C26.9461 10.1145 26.703 10.918 26.703 11.7398C26.703 12.5616 26.9461 13.365 27.4019 14.0489C27.8576 14.7327 28.5055 15.2664 29.264 15.5828C30.0225 15.8991 30.8576 15.984 31.6642 15.8266C32.4708 15.6692 33.2128 15.2767 33.7967 14.6984C34.1889 14.3125 34.5007 13.8526 34.7141 13.3455C34.9275 12.8383 35.0382 12.2939 35.0399 11.7436C35.0417 11.1934 34.9343 10.6483 34.7241 10.1398C34.5139 9.6313 34.205 9.16951 33.8152 8.78113H33.7967ZM0.79576 23.7803C0.415596 24.1608 0.156791 24.6456 0.0520592 25.1732C-0.0526731 25.7008 0.00136908 26.2477 0.207354 26.7446C0.413339 27.2415 0.76202 27.6662 1.20932 27.965C1.65663 28.2638 2.18247 28.4233 2.72039 28.4233C3.25831 28.4233 3.78415 28.2638 4.23146 27.965C4.67876 27.6662 5.02744 27.2415 5.23343 26.7446C5.43941 26.2477 5.49345 25.7008 5.38872 25.1732C5.28399 24.6456 5.02519 24.1608 4.64502 23.7803C4.39237 23.5274 4.09235 23.3267 3.76211 23.1898C3.43187 23.0529 3.07788 22.9825 2.72039 22.9825C2.3629 22.9825 2.00892 23.0529 1.67867 23.1898C1.34843 23.3267 1.04841 23.5274 0.79576 23.7803ZM40.5375 16.0262C40.0044 15.4929 39.3252 15.1296 38.5856 14.9823C37.846 14.8351 37.0794 14.9104 36.3827 15.1989C35.686 15.4874 35.0905 15.976 34.6715 16.603C34.2525 17.23 34.0289 17.9671 34.0289 18.7212C34.0289 19.4753 34.2525 20.2124 34.6715 20.8394C35.0905 21.4663 35.686 21.9549 36.3827 22.2434C37.0794 22.5319 37.846 22.6073 38.5856 22.46C39.3252 22.3128 40.0044 21.9495 40.5375 21.4161C41.2509 20.7007 41.6515 19.7315 41.6515 18.7212C41.6515 17.7108 41.2509 16.7417 40.5375 16.0262Z\"\r\n fill=\"url(#paint0_linear_353_5425)\"\r\n />\r\n <path\r\n d=\"M71.0956 25.9224L73.2562 22.8272C74.352 23.552 75.5251 24.1525 76.7539 24.6177C77.7336 24.969 78.7665 25.1489 79.8074 25.1497C80.8503 25.1979 81.884 24.9354 82.7776 24.3956C83.1242 24.1955 83.412 23.9075 83.6118 23.5606C83.8116 23.2138 83.9164 22.8204 83.9157 22.4201C83.9268 22.1375 83.8719 21.8561 83.7555 21.5984C83.639 21.3406 83.4642 21.1135 83.2449 20.935C82.6082 20.4925 81.8757 20.2071 81.1074 20.1022L77.4849 19.4915C75.5325 19.1399 74.0612 18.4953 73.0712 17.5576C72.5741 17.0822 72.1845 16.506 71.9284 15.8676C71.6722 15.2293 71.5555 14.5435 71.586 13.8564C71.5595 12.9759 71.7429 12.1017 72.121 11.3061C72.4991 10.5105 73.0611 9.81625 73.7605 9.28077C75.2132 8.12723 77.1194 7.55046 79.4789 7.55046C80.8634 7.54789 82.2409 7.7458 83.5687 8.13804C84.9587 8.56661 86.2811 9.18965 87.4966 9.98864L85.3407 13.0005C84.3808 12.3679 83.3396 11.8683 82.2455 11.5154C81.2587 11.2068 80.2306 11.0508 79.1967 11.0527C78.3047 11.0099 77.4198 11.2303 76.6521 11.6866C76.3506 11.8703 76.1031 12.1306 75.9349 12.4411C75.7667 12.7515 75.6837 13.101 75.6944 13.4539C75.6752 13.7312 75.7227 14.0091 75.833 14.2643C75.9433 14.5194 76.1131 14.7445 76.3282 14.9205C77.0137 15.3433 77.7851 15.6074 78.586 15.6931L82.1669 16.3779C84.2025 16.7572 85.7108 17.4234 86.7055 18.3719C87.1989 18.85 87.5862 19.4267 87.8421 20.0644C88.098 20.7021 88.2167 21.3865 88.1906 22.0731C88.1981 22.9718 87.9886 23.859 87.5799 24.6593C87.1532 25.4812 86.5571 26.2034 85.8311 26.7783C85.0386 27.3946 84.1424 27.8647 83.1847 28.1662C82.1274 28.511 81.0213 28.6828 79.9092 28.6751C78.2476 28.6907 76.5935 28.4503 75.005 27.9626C73.5821 27.542 72.2544 26.8491 71.0956 25.9224ZM100.641 24.6177C101.587 24.624 102.523 24.4301 103.389 24.0486C104.235 23.6736 104.981 23.1027 105.563 22.3831L108.339 25.159C107.361 26.2662 106.153 27.1471 104.8 27.7406C103.407 28.3752 101.894 28.7019 100.363 28.6983C98.9721 28.7063 97.5944 28.4292 96.3148 27.884C95.0842 27.3641 93.9703 26.6027 93.0392 25.6448C92.1011 24.6715 91.3625 23.5242 90.8647 22.2674C90.3283 20.9453 90.0578 19.5303 90.069 18.1035C90.0587 16.6873 90.3292 15.2831 90.8647 13.9721C91.3577 12.7303 92.0937 11.5996 93.0296 10.6462C93.9655 9.69287 95.0824 8.93605 96.3148 8.42025C97.5937 7.8728 98.9719 7.59557 100.363 7.60597C101.907 7.59931 103.436 7.90296 104.86 8.49889C106.244 9.06665 107.488 9.92861 108.506 11.025L105.656 13.9952C105.001 13.2509 104.203 12.6453 103.31 12.214C102.442 11.8062 101.493 11.5976 100.534 11.6033C99.7439 11.5944 98.9613 11.7593 98.2418 12.0863C97.5222 12.4133 96.8833 12.8944 96.3703 13.4955C95.2698 14.7859 94.6653 16.4262 94.6653 18.1221C94.6653 19.8179 95.2698 21.4583 96.3703 22.7486C96.904 23.3511 97.5624 23.8302 98.2998 24.153C99.0371 24.4757 99.8358 24.6343 100.641 24.6177ZM127.581 25.6771C126.445 26.641 125.159 27.4116 123.773 27.958C122.398 28.4598 120.943 28.7075 119.48 28.689C118.083 28.6962 116.699 28.4191 115.413 27.8747C114.168 27.3589 113.041 26.5955 112.1 25.6309C110.161 23.6055 109.082 20.9077 109.089 18.1035C109.079 16.6807 109.334 15.2686 109.843 13.9397C110.313 12.7025 111.018 11.5682 111.92 10.5993C112.837 9.63566 113.942 8.87094 115.167 8.35279C116.392 7.83463 117.71 7.57412 119.04 7.58748C120.334 7.57286 121.616 7.82963 122.804 8.34124C123.992 8.85284 125.06 9.60791 125.938 10.5577C126.817 11.5232 127.5 12.6497 127.951 13.8749C128.45 15.2218 128.698 16.6488 128.682 18.085V19.2278H113.623C113.806 20.7608 114.535 22.1767 115.677 23.2159C116.77 24.2488 118.221 24.8176 119.725 24.8027C120.651 24.8061 121.57 24.6334 122.431 24.2938C123.236 23.9907 123.965 23.5172 124.569 22.9059L127.581 25.6771ZM118.994 11.3118C118.354 11.3 117.717 11.4167 117.123 11.6551C116.529 11.8935 115.988 12.2488 115.533 12.6998C114.536 13.7035 113.887 15.0009 113.683 16.401H124.324C124.107 15.0155 123.459 13.7335 122.473 12.7368C122.019 12.2766 121.477 11.9131 120.879 11.6682C120.281 11.4233 119.64 11.3021 118.994 11.3118ZM131.337 28.2819V7.89282H135.936V11.2332C136.622 10.1079 137.575 9.16999 138.712 8.50352C139.842 7.87248 141.119 7.55314 142.413 7.57822C143.355 7.54695 144.292 7.71364 145.164 8.0675C146.037 8.42135 146.826 8.95448 147.479 9.63239C148.138 10.33 148.651 11.1513 148.989 12.0487C149.327 12.9462 149.484 13.9019 149.45 14.8603V28.2772H144.852V16.1558C144.91 14.8643 144.475 13.5989 143.635 12.6165C143.225 12.17 142.723 11.8183 142.164 11.5857C141.605 11.3532 141.001 11.2455 140.396 11.2702C139.521 11.2585 138.658 11.4771 137.893 11.904C137.118 12.3507 136.457 12.9696 135.959 13.713V28.2819H131.337ZM154.785 22.9105V11.557H150.672V7.89282H154.785V4.7144L159.383 1.30003V7.89282H164.121V11.557H159.383V21.8927C159.383 22.8981 159.599 23.6106 160.031 24.0301C160.463 24.4496 161.195 24.6593 162.229 24.6593C162.658 24.6626 163.087 24.6286 163.51 24.5575C164.015 24.4635 164.513 24.3352 165 24.1735V28.0367C164.355 28.2361 163.694 28.38 163.024 28.4669C162.37 28.5549 161.71 28.6013 161.049 28.6057C159.019 28.6057 157.466 28.1246 156.39 27.1623C155.314 26.1999 154.778 24.7827 154.785 22.9105ZM66.6681 9.4936C65.1876 8.22285 63.1396 7.58748 60.5241 7.58748C59.1392 7.59187 57.7598 7.76273 56.4157 8.09638C55.5404 8.31315 54.6797 8.58512 53.8387 8.91066V12.9311C54.8259 12.4676 55.8504 12.0884 56.9015 11.7976C57.7899 11.5547 58.7056 11.4257 59.6265 11.4136C61.1687 11.4136 62.3361 11.7591 63.1288 12.45C63.5322 12.8343 63.8468 13.3022 64.0506 13.8208C64.2544 14.3395 64.3424 14.8964 64.3085 15.4526V17.3448C63.4366 16.9313 62.5231 16.6118 61.5835 16.3917C60.6725 16.1865 59.7414 16.0841 58.8076 16.0864C56.4203 16.0864 54.5281 16.6277 53.1309 17.7103C52.4478 18.2857 51.9039 19.0084 51.5401 19.8241C51.1763 20.6399 51.0021 21.5274 51.0304 22.4201C51.0086 23.2675 51.1788 24.1088 51.5281 24.8812C51.8774 25.6535 52.3969 26.3368 53.0476 26.88C54.3893 28.0336 56.1181 28.6088 58.2339 28.6057C59.3319 28.6185 60.4225 28.4255 61.4494 28.0367C62.5061 27.6024 63.4726 26.9748 64.2993 26.1861V28.2634H68.8564V14.9899C68.8626 12.6211 68.1331 10.7921 66.6681 9.50286V9.4936ZM64.3085 23.7155C63.6542 24.2698 62.9028 24.6981 62.0924 24.9786C61.2581 25.2536 60.3847 25.3911 59.5062 25.3857C58.4382 25.4388 57.3817 25.1451 56.4944 24.5483C56.1352 24.3028 55.843 23.9715 55.6443 23.5845C55.4456 23.1976 55.3466 22.7671 55.3562 22.3322C55.3445 21.8588 55.441 21.3889 55.6382 20.9584C55.8354 20.5279 56.1282 20.148 56.4944 19.8477C57.2531 19.3203 58.0813 19.0566 59.5895 19.0566C60.4213 19.0508 61.2518 19.1252 62.0693 19.2787C62.8449 19.4333 63.5974 19.6868 64.3085 20.0328V23.7155Z\"\r\n fill=\"#004987\"\r\n />\r\n </g>\r\n <defs>\r\n <linearGradient\r\n id=\"paint0_linear_353_5425\"\r\n x1=\"7.54584\"\r\n y1=\"34.3843\"\r\n x2=\"33.8846\"\r\n y2=\"8.04551\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n >\r\n <stop stop-color=\"#004987\" />\r\n <stop offset=\"0.25\" stop-color=\"#004C89\" />\r\n <stop offset=\"0.44\" stop-color=\"#00568F\" />\r\n <stop offset=\"0.62\" stop-color=\"#00669A\" />\r\n <stop offset=\"0.78\" stop-color=\"#007DAA\" />\r\n <stop offset=\"0.93\" stop-color=\"#009BBD\" />\r\n <stop offset=\"1\" stop-color=\"#00ABC8\" />\r\n </linearGradient>\r\n <clipPath id=\"clip0_353_5425\">\r\n <rect width=\"165\" height=\"28.689\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n }\r\n } @else {\r\n @if (isMobile || isCollapsed()) {\r\n <svg\r\n class=\"collapsed regular-logo\"\r\n [ngClass]=\"size()\"\r\n width=\"42\"\r\n height=\"30\"\r\n viewBox=\"0 0 42 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"New logo Color\" clip-path=\"url(#clip0_2349_6338)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.0906C13.1314 16.6237 13.4946 17.3029 13.6419 18.0425C13.7892 18.7821 13.7138 19.5487 13.4253 20.2454C13.1368 20.9421 12.6482 21.5376 12.0212 21.9566C11.3943 22.3756 10.6571 22.5992 9.90305 22.5992C9.14898 22.5992 8.41184 22.3756 7.78487 21.9566C7.15791 21.5376 6.66928 20.9421 6.3808 20.2454C6.09232 19.5487 6.01695 18.7821 6.16421 18.0425C6.31147 17.3029 6.67475 16.6237 7.20811 16.0906C7.56177 15.7363 7.98185 15.4552 8.44428 15.2634C8.90671 15.0716 9.40242 14.9728 9.90305 14.9728C10.4037 14.9728 10.8994 15.0716 11.3618 15.2634C11.8243 15.4552 12.2443 15.7363 12.598 16.0906ZM19.8477 8.84549C19.2638 8.26724 18.5218 7.87469 17.7152 7.71732C16.9086 7.55996 16.0735 7.64479 15.315 7.96113C14.5566 8.27748 13.9087 8.81119 13.4529 9.49505C12.9972 10.1789 12.754 10.9823 12.754 11.8041C12.754 12.6259 12.9972 13.4294 13.4529 14.1132C13.9087 14.7971 14.5566 15.3308 15.315 15.6471C16.0735 15.9635 16.9086 16.0483 17.7152 15.891C18.5218 15.7336 19.2638 15.341 19.8477 14.7628C20.2387 14.3756 20.5491 13.9148 20.7609 13.407C20.9727 12.8991 21.0817 12.3544 21.0817 11.8041C21.0817 11.2539 20.9727 10.7091 20.7609 10.2013C20.5491 9.69348 20.2387 9.23266 19.8477 8.84549ZM27.2502 8.17927C27.9143 7.51461 28.3664 6.66798 28.5494 5.7464C28.7324 4.82482 28.6381 3.86967 28.2784 3.00169C27.9186 2.13371 27.3096 1.39187 26.5284 0.869949C25.7471 0.348029 24.8286 0.069458 23.889 0.069458C22.9494 0.069458 22.0309 0.348029 21.2497 0.869949C20.4684 1.39187 19.8594 2.13371 19.4996 3.00169C19.1399 3.86967 19.0456 4.82482 19.2286 5.7464C19.4116 6.66798 19.8637 7.51461 20.5278 8.17927C21.4177 9.06667 22.6231 9.56499 23.8798 9.56499C25.1364 9.56499 26.3418 9.06667 27.2317 8.17927H27.2502ZM14.9436 23.8446C14.5635 24.2252 14.3047 24.7099 14.1999 25.2376C14.0952 25.7652 14.1492 26.312 14.3552 26.809C14.5612 27.3059 14.9099 27.7305 15.3572 28.0293C15.8045 28.3281 16.3304 28.4876 16.8683 28.4876C17.4062 28.4876 17.932 28.3281 18.3793 28.0293C18.8266 27.7305 19.1753 27.3059 19.3813 26.809C19.5873 26.312 19.6413 25.7652 19.5366 25.2376C19.4319 24.7099 19.1731 24.2252 18.7929 23.8446C18.2815 23.3361 17.5895 23.0506 16.8683 23.0506C16.147 23.0506 15.4551 23.3361 14.9436 23.8446ZM21.157 16.0906C20.6237 16.6237 20.2604 17.3029 20.1131 18.0425C19.9659 18.7821 20.0413 19.5487 20.3297 20.2454C20.6182 20.9421 21.1068 21.5376 21.7338 21.9566C22.3608 22.3756 23.0979 22.5992 23.852 22.5992C24.6061 22.5992 25.3432 22.3756 25.9702 21.9566C26.5971 21.5376 27.0858 20.9421 27.3743 20.2454C27.6627 19.5487 27.7381 18.7821 27.5908 18.0425C27.4436 17.3029 27.0803 16.6237 26.5469 16.0906C25.8322 15.3829 24.8671 14.9858 23.8612 14.9858C22.8554 14.9858 21.8903 15.3829 21.1756 16.0906H21.157ZM33.7967 8.84549C33.2128 8.26724 32.4708 7.87469 31.6642 7.71732C30.8576 7.55996 30.0225 7.64479 29.264 7.96113C28.5055 8.27748 27.8576 8.81119 27.4019 9.49505C26.9461 10.1789 26.703 10.9823 26.703 11.8041C26.703 12.6259 26.9461 13.4294 27.4019 14.1132C27.8576 14.7971 28.5055 15.3308 29.264 15.6471C30.0225 15.9635 30.8576 16.0483 31.6642 15.891C32.4708 15.7336 33.2128 15.341 33.7967 14.7628C34.1889 14.3768 34.5007 13.917 34.7141 13.4098C34.9275 12.9027 35.0382 12.3582 35.0399 11.808C35.0417 11.2578 34.9343 10.7127 34.7241 10.2042C34.5139 9.69567 34.205 9.23388 33.8152 8.84549H33.7967ZM0.795762 23.8446C0.415598 24.2252 0.156793 24.7099 0.0520611 25.2376C-0.0526711 25.7652 0.00137099 26.312 0.207356 26.809C0.413341 27.3059 0.762022 27.7305 1.20932 28.0293C1.65663 28.3281 2.18247 28.4876 2.72039 28.4876C3.25831 28.4876 3.78416 28.3281 4.23146 28.0293C4.67876 27.7305 5.02744 27.3059 5.23343 26.809C5.43941 26.312 5.49345 25.7652 5.38872 25.2376C5.28399 24.7099 5.02519 24.2252 4.64502 23.8446C4.39238 23.5917 4.09235 23.3911 3.76211 23.2542C3.43187 23.1173 3.07788 23.0468 2.72039 23.0468C2.3629 23.0468 2.00892 23.1173 1.67868 23.2542C1.34843 23.3911 1.04841 23.5917 0.795762 23.8446ZM40.5375 16.0906C40.0044 15.5572 39.3252 15.194 38.5856 15.0467C37.8461 14.8994 37.0794 14.9748 36.3827 15.2633C35.686 15.5518 35.0905 16.0404 34.6715 16.6674C34.2525 17.2943 34.0289 18.0315 34.0289 18.7855C34.0289 19.5396 34.2525 20.2768 34.6715 20.9037C35.0905 21.5307 35.686 22.0193 36.3827 22.3078C37.0794 22.5963 37.8461 22.6717 38.5856 22.5244C39.3252 22.3771 40.0044 22.0139 40.5375 21.4805C41.2509 20.765 41.6515 19.7959 41.6515 18.7855C41.6515 17.7752 41.2509 16.8061 40.5375 16.0906Z\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2349_6338\">\r\n <rect width=\"42\" height=\"29\" transform=\"translate(0 0.0703125)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n } @else {\r\n <svg\r\n [ngClass]=\"size()\"\r\n class=\"regular-logo\"\r\n width=\"165\"\r\n height=\"29\"\r\n viewBox=\"0 0 165 29\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"Ascent Logo\" clip-path=\"url(#clip0_2238_42055)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.0203C13.1314 16.5534 13.4946 17.2326 13.6419 17.9722C13.7892 18.7117 13.7138 19.4784 13.4253 20.1751C13.1368 20.8718 12.6482 21.4673 12.0212 21.8863C11.3943 22.3053 10.6571 22.5289 9.90305 22.5289C9.14898 22.5289 8.41184 22.3053 7.78487 21.8863C7.15791 21.4673 6.66928 20.8718 6.3808 20.1751C6.09232 19.4784 6.01695 18.7117 6.16421 17.9722C6.31147 17.2326 6.67475 16.5534 7.20811 16.0203C7.56177 15.6659 7.98185 15.3849 8.44428 15.1931C8.90671 15.0013 9.40242 14.9025 9.90305 14.9025C10.4037 14.9025 10.8994 15.0013 11.3618 15.1931C11.8243 15.3849 12.2443 15.6659 12.598 16.0203ZM19.8477 8.77518C19.2638 8.19692 18.5218 7.80438 17.7152 7.64701C16.9086 7.48964 16.0735 7.57447 15.315 7.89082C14.5566 8.20716 13.9087 8.74088 13.4529 9.42474C12.9972 10.1086 12.754 10.912 12.754 11.7338C12.754 12.5556 12.9972 13.3591 13.4529 14.0429C13.9087 14.7268 14.5566 15.2605 15.315 15.5768C16.0735 15.8932 16.9086 15.978 17.7152 15.8206C18.5218 15.6633 19.2638 15.2707 19.8477 14.6925C20.2387 14.3053 20.5491 13.8445 20.7609 13.3367C20.9727 12.8288 21.0817 12.284 21.0817 11.7338C21.0817 11.1836 20.9727 10.6388 20.7609 10.131C20.5491 9.62316 20.2387 9.16234 19.8477 8.77518ZM27.2502 8.10896C27.9143 7.4443 28.3664 6.59766 28.5494 5.67608C28.7324 4.75451 28.6381 3.79936 28.2784 2.93138C27.9186 2.0634 27.3096 1.32156 26.5284 0.799636C25.7471 0.277717 24.8286 -0.000854492 23.889 -0.000854492C22.9494 -0.000854492 22.0309 0.277717 21.2497 0.799636C20.4684 1.32156 19.8594 2.0634 19.4996 2.93138C19.1399 3.79936 19.0456 4.75451 19.2286 5.67608C19.4116 6.59766 19.8637 7.4443 20.5278 8.10896C21.4177 8.99635 22.6231 9.49468 23.8798 9.49468C25.1364 9.49468 26.3418 8.99635 27.2317 8.10896H27.2502ZM14.9436 23.7743C14.5635 24.1549 14.3047 24.6396 14.1999 25.1672C14.0952 25.6949 14.1492 26.2417 14.3552 26.7386C14.5612 27.2356 14.9099 27.6602 15.3572 27.959C15.8045 28.2578 16.3304 28.4173 16.8683 28.4173C17.4062 28.4173 17.932 28.2578 18.3793 27.959C18.8266 27.6602 19.1753 27.2356 19.3813 26.7386C19.5873 26.2417 19.6413 25.6949 19.5366 25.1672C19.4319 24.6396 19.1731 24.1549 18.7929 23.7743C18.2815 23.2658 17.5895 22.9803 16.8683 22.9803C16.147 22.9803 15.4551 23.2658 14.9436 23.7743ZM21.157 16.0203C20.6237 16.5534 20.2604 17.2326 20.1131 17.9722C19.9659 18.7117 20.0413 19.4784 20.3297 20.1751C20.6182 20.8718 21.1068 21.4673 21.7338 21.8863C22.3608 22.3053 23.0979 22.5289 23.852 22.5289C24.6061 22.5289 25.3432 22.3053 25.9702 21.8863C26.5971 21.4673 27.0858 20.8718 27.3743 20.1751C27.6627 19.4784 27.7381 18.7117 27.5908 17.9722C27.4436 17.2326 27.0803 16.5534 26.5469 16.0203C25.8322 15.3126 24.8671 14.9155 23.8612 14.9155C22.8554 14.9155 21.8903 15.3126 21.1756 16.0203H21.157ZM33.7967 8.77518C33.2128 8.19692 32.4708 7.80438 31.6642 7.64701C30.8576 7.48964 30.0225 7.57447 29.264 7.89082C28.5055 8.20716 27.8576 8.74088 27.4019 9.42474C26.9461 10.1086 26.703 10.912 26.703 11.7338C26.703 12.5556 26.9461 13.3591 27.4019 14.0429C27.8576 14.7268 28.5055 15.2605 29.264 15.5768C30.0225 15.8932 30.8576 15.978 31.6642 15.8206C32.4708 15.6633 33.2128 15.2707 33.7967 14.6925C34.1889 14.3065 34.5007 13.8467 34.7141 13.3395C34.9275 12.8323 35.0382 12.2879 35.0399 11.7377C35.0417 11.1874 34.9343 10.6423 34.7241 10.1338C34.5139 9.62535 34.205 9.16356 33.8152 8.77518H33.7967ZM0.795762 23.7743C0.415598 24.1549 0.156793 24.6396 0.0520611 25.1672C-0.0526711 25.6949 0.00137099 26.2417 0.207356 26.7386C0.413341 27.2356 0.762022 27.6602 1.20932 27.959C1.65663 28.2578 2.18247 28.4173 2.72039 28.4173C3.25831 28.4173 3.78416 28.2578 4.23146 27.959C4.67876 27.6602 5.02744 27.2356 5.23343 26.7386C5.43941 26.2417 5.49345 25.6949 5.38872 25.1672C5.28399 24.6396 5.02519 24.1549 4.64502 23.7743C4.39238 23.5214 4.09235 23.3208 3.76211 23.1839C3.43187 23.047 3.07788 22.9765 2.72039 22.9765C2.3629 22.9765 2.00892 23.047 1.67868 23.1839C1.34843 23.3208 1.04841 23.5214 0.795762 23.7743ZM40.5375 16.0203C40.0044 15.4869 39.3252 15.1236 38.5856 14.9764C37.8461 14.8291 37.0794 14.9045 36.3827 15.193C35.686 15.4814 35.0905 15.9701 34.6715 16.597C34.2525 17.224 34.0289 17.9612 34.0289 18.7152C34.0289 19.4693 34.2525 20.2065 34.6715 20.8334C35.0905 21.4604 35.686 21.949 36.3827 22.2375C37.0794 22.526 37.8461 22.6013 38.5856 22.4541C39.3252 22.3068 40.0044 21.9435 40.5375 21.4102C41.2509 20.6947 41.6515 19.7256 41.6515 18.7152C41.6515 17.7049 41.2509 16.7358 40.5375 16.0203Z\"\r\n />\r\n <path\r\n id=\"Vector_2\"\r\n d=\"M71.0956 25.9164L73.2562 22.8213C74.352 23.5461 75.5251 24.1466 76.7539 24.6117C77.7336 24.963 78.7665 25.143 79.8074 25.1438C80.8503 25.1919 81.884 24.9294 82.7776 24.3896C83.1242 24.1895 83.412 23.9015 83.6118 23.5546C83.8116 23.2078 83.9164 22.8144 83.9157 22.4141C83.9268 22.1315 83.8719 21.8502 83.7555 21.5924C83.639 21.3347 83.4642 21.1075 83.2449 20.929C82.6082 20.4865 81.8757 20.2011 81.1074 20.0962L77.4849 19.4855C75.5325 19.1339 74.0612 18.4893 73.0712 17.5516C72.5741 17.0762 72.1845 16.5 71.9284 15.8617C71.6722 15.2233 71.5555 14.5376 71.586 13.8504C71.5595 12.9699 71.7429 12.0958 72.121 11.3001C72.4991 10.5045 73.0611 9.81028 73.7605 9.2748C75.2132 8.12126 77.1194 7.54449 79.4789 7.54449C80.8634 7.54192 82.2409 7.73984 83.5687 8.13207C84.9587 8.56065 86.2811 9.18369 87.4966 9.98267L85.3407 12.9945C84.3808 12.3619 83.3396 11.8623 82.2455 11.5094C81.2587 11.2008 80.2306 11.0448 79.1967 11.0468C78.3047 11.0039 77.4198 11.2243 76.6521 11.6806C76.3506 11.8643 76.1031 12.1247 75.9349 12.4351C75.7667 12.7456 75.6837 13.095 75.6944 13.4479C75.6752 13.7252 75.7227 14.0031 75.833 14.2583C75.9433 14.5135 76.1131 14.7385 76.3282 14.9145C77.0137 15.3374 77.7851 15.6014 78.586 15.6872L82.1669 16.3719C84.2025 16.7513 85.7108 17.4175 86.7055 18.3659C87.1989 18.8441 87.5862 19.4207 87.8421 20.0584C88.098 20.6961 88.2167 21.3805 88.1906 22.0671C88.1981 22.9658 87.9886 23.853 87.5799 24.6534C87.1532 25.4753 86.5571 26.1974 85.8311 26.7723C85.0386 27.3887 84.1424 27.8587 83.1847 28.1602C82.1274 28.505 81.0213 28.6769 79.9092 28.6692C78.2476 28.6847 76.5935 28.4444 75.005 27.9567C73.5821 27.5361 72.2544 26.8432 71.0956 25.9164ZM100.641 24.6117C101.587 24.618 102.523 24.4241 103.389 24.0427C104.235 23.6676 104.981 23.0967 105.563 22.3771L108.339 25.153C107.361 26.2602 106.153 27.1412 104.8 27.7346C103.407 28.3692 101.894 28.6959 100.363 28.6923C98.9721 28.7003 97.5944 28.4232 96.3148 27.878C95.0842 27.3582 93.9703 26.5968 93.0392 25.6388C92.1011 24.6655 91.3625 23.5182 90.8647 22.2614C90.3283 20.9393 90.0578 19.5243 90.069 18.0976C90.0587 16.6814 90.3292 15.2772 90.8647 13.9661C91.3577 12.7244 92.0937 11.5937 93.0296 10.6403C93.9655 9.6869 95.0824 8.93009 96.3148 8.41428C97.5937 7.86683 98.9719 7.5896 100.363 7.60001C101.907 7.59334 103.436 7.89699 104.86 8.49292C106.244 9.06069 107.488 9.92264 108.506 11.019L105.656 13.9892C105.001 13.2449 104.203 12.6393 103.31 12.208C102.442 11.8003 101.493 11.5916 100.534 11.5973C99.7439 11.5885 98.9613 11.7534 98.2418 12.0803C97.5222 12.4073 96.8833 12.8884 96.3703 13.4896C95.2698 14.7799 94.6653 16.4202 94.6653 18.1161C94.6653 19.812 95.2698 21.4523 96.3703 22.7426C96.904 23.3451 97.5624 23.8243 98.2998 24.147C99.0371 24.4698 99.8358 24.6283 100.641 24.6117ZM127.581 25.6712C126.445 26.635 125.159 27.4056 123.773 27.9521C122.398 28.4538 120.943 28.7015 119.48 28.683C118.083 28.6902 116.699 28.4132 115.413 27.8688C114.168 27.3529 113.041 26.5895 112.1 25.6249C110.161 23.5996 109.082 20.9017 109.089 18.0976C109.079 16.6748 109.334 15.2626 109.843 13.9337C110.313 12.6966 111.018 11.5622 111.92 10.5934C112.837 9.62969 113.942 8.86497 115.167 8.34682C116.392 7.82866 117.71 7.56815 119.04 7.58151C120.334 7.56689 121.616 7.82366 122.804 8.33527C123.992 8.84688 125.06 9.60194 125.938 10.5517C126.817 11.5172 127.5 12.6437 127.951 13.869C128.45 15.2159 128.698 16.6428 128.682 18.0791V19.2218H113.623C113.806 20.7549 114.535 22.1707 115.677 23.2099C116.77 24.2428 118.221 24.8116 119.725 24.7968C120.651 24.8002 121.57 24.6274 122.431 24.2878C123.236 23.9848 123.965 23.5113 124.569 22.8999L127.581 25.6712ZM118.994 11.3059C118.354 11.294 117.717 11.4108 117.123 11.6492C116.529 11.8876 115.988 12.2428 115.533 12.6938C114.536 13.6975 113.887 14.9949 113.683 16.395H124.324C124.107 15.0096 123.459 13.7276 122.473 12.7308C122.019 12.2706 121.477 11.9072 120.879 11.6622C120.281 11.4173 119.64 11.2961 118.994 11.3059ZM131.337 28.2759V7.88685H135.936V11.2272C136.622 10.1019 137.575 9.16403 138.712 8.49755C139.842 7.86651 141.119 7.54718 142.413 7.57225C143.355 7.54099 144.292 7.70768 145.164 8.06153C146.037 8.41538 146.826 8.94851 147.479 9.62642C148.138 10.324 148.651 11.1453 148.989 12.0428C149.327 12.9402 149.484 13.8959 149.45 14.8544V28.2713H144.852V16.1498C144.91 14.8583 144.475 13.5929 143.635 12.6105C143.225 12.1641 142.723 11.8123 142.164 11.5798C141.605 11.3472 141.001 11.2396 140.396 11.2642C139.521 11.2526 138.658 11.4711 137.893 11.8981C137.118 12.3447 136.457 12.9637 135.959 13.707V28.2759H131.337ZM154.785 22.9045V11.5511H150.672V7.88685H154.785V4.70844L159.383 1.29407V7.88685H164.121V11.5511H159.383V21.8867C159.383 22.8922 159.599 23.6047 160.031 24.0241C160.463 24.4436 161.195 24.6534 162.229 24.6534C162.658 24.6567 163.087 24.6226 163.51 24.5516C164.015 24.4575 164.513 24.3292 165 24.1676V28.0307C164.355 28.2301 163.694 28.3741 163.024 28.461C162.37 28.549 161.71 28.5953 161.049 28.5998C159.019 28.5998 157.466 28.1186 156.39 27.1563C155.314 26.194 154.778 24.7767 154.785 22.9045ZM66.6681 9.48763C65.1876 8.21689 63.1396 7.58151 60.5241 7.58151C59.1392 7.58591 57.7598 7.75676 56.4157 8.09042C55.5404 8.30719 54.6797 8.57916 53.8387 8.90469V12.9251C54.8259 12.4616 55.8504 12.0824 56.9015 11.7916C57.7899 11.5487 58.7056 11.4197 59.6265 11.4076C61.1687 11.4076 62.3361 11.7531 63.1288 12.444C63.5322 12.8284 63.8468 13.2962 64.0506 13.8149C64.2544 14.3335 64.3424 14.8904 64.3085 15.4466V17.3388C63.4366 16.9253 62.5231 16.6058 61.5835 16.3858C60.6725 16.1806 59.7414 16.0781 58.8076 16.0804C56.4203 16.0804 54.5281 16.6217 53.1309 17.7043C52.4478 18.2797 51.9039 19.0025 51.5401 19.8182C51.1763 20.6339 51.0021 21.5214 51.0304 22.4141C51.0086 23.2615 51.1788 24.1029 51.5281 24.8752C51.8774 25.6475 52.3969 26.3309 53.0476 26.8741C54.3893 28.0276 56.1181 28.6028 58.2339 28.5998C59.3319 28.6126 60.4225 28.4196 61.4494 28.0307C62.5061 27.5964 63.4726 26.9688 64.2993 26.1801V28.2574H68.8564V14.9839C68.8626 12.6152 68.1331 10.7862 66.6681 9.4969V9.48763ZM64.3085 23.7095C63.6542 24.2639 62.9028 24.6921 62.0924 24.9726C61.2581 25.2476 60.3847 25.3851 59.5062 25.3797C58.4382 25.4329 57.3817 25.1391 56.4944 24.5423C56.1352 24.2968 55.843 23.9655 55.6443 23.5786C55.4456 23.1916 55.3466 22.7611 55.3562 22.3262C55.3445 21.8528 55.441 21.383 55.6382 20.9525C55.8354 20.5219 56.1282 20.1421 56.4944 19.8418C57.2531 19.3144 58.0813 19.0506 59.5895 19.0506C60.4213 19.0449 61.2518 19.1193 62.0693 19.2727C62.8449 19.4274 63.5974 19.6808 64.3085 20.0268V23.7095Z\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2238_42055\">\r\n <rect width=\"165\" height=\"28.689\" transform=\"translate(0 -0.00598145)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n }\r\n }\r\n </picture>\r\n} @else {\r\n <picture class=\"ads-ascent-logo\">\r\n @if (isMobile || isCollapsed()) {\r\n <svg\r\n class=\"collapsed teal-logo\"\r\n [ngClass]=\"size()\"\r\n width=\"42\"\r\n height=\"30\"\r\n viewBox=\"0 0 42 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"New logo Color\" clip-path=\"url(#clip0_2342_113)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.6973C13.1314 17.2304 13.4946 17.9096 13.6419 18.6492C13.7892 19.3888 13.7138 20.1554 13.4253 20.8521C13.1368 21.5488 12.6482 22.1443 12.0212 22.5633C11.3943 22.9823 10.6571 23.2059 9.90305 23.2059C9.14898 23.2059 8.41184 22.9823 7.78487 22.5633C7.15791 22.1443 6.66928 21.5488 6.3808 20.8521C6.09232 20.1554 6.01695 19.3888 6.16421 18.6492C6.31147 17.9096 6.67475 17.2304 7.20811 16.6973C7.56177 16.343 7.98185 16.0619 8.44428 15.8701C8.90671 15.6783 9.40242 15.5795 9.90305 15.5795C10.4037 15.5795 10.8994 15.6783 11.3618 15.8701C11.8243 16.0619 12.2443 16.343 12.598 16.6973ZM19.8477 9.45219C19.2638 8.87394 18.5218 8.4814 17.7152 8.32403C16.9086 8.16666 16.0735 8.25149 15.315 8.56784C14.5566 8.88418 13.9087 9.41789 13.4529 10.1018C12.9972 10.7856 12.754 11.589 12.754 12.4108C12.754 13.2326 12.9972 14.0361 13.4529 14.7199C13.9087 15.4038 14.5566 15.9375 15.315 16.2539C16.0735 16.5702 16.9086 16.655 17.7152 16.4977C18.5218 16.3403 19.2638 15.9477 19.8477 15.3695C20.2387 14.9823 20.5491 14.5215 20.7609 14.0137C20.9727 13.5058 21.0817 12.9611 21.0817 12.4108C21.0817 11.8606 20.9727 11.3158 20.7609 10.808C20.5491 10.3002 20.2387 9.83936 19.8477 9.45219ZM27.2502 8.78597C27.9143 8.12132 28.3664 7.27468 28.5494 6.3531C28.7324 5.43152 28.6381 4.47638 28.2784 3.6084C27.9186 2.74042 27.3096 1.99857 26.5284 1.47665C25.7471 0.954734 24.8286 0.676163 23.889 0.676163C22.9494 0.676163 22.0309 0.954734 21.2497 1.47665C20.4684 1.99857 19.8594 2.74042 19.4996 3.6084C19.1399 4.47638 19.0456 5.43152 19.2286 6.3531C19.4116 7.27468 19.8637 8.12132 20.5278 8.78597C21.4177 9.67337 22.6231 10.1717 23.8798 10.1717C25.1364 10.1717 26.3418 9.67337 27.2317 8.78597H27.2502ZM14.9436 24.4513C14.5635 24.8319 14.3047 25.3166 14.1999 25.8443C14.0952 26.3719 14.1492 26.9187 14.3552 27.4157C14.5612 27.9126 14.9099 28.3373 15.3572 28.636C15.8045 28.9348 16.3304 29.0943 16.8683 29.0943C17.4062 29.0943 17.932 28.9348 18.3793 28.636C18.8266 28.3373 19.1753 27.9126 19.3813 27.4157C19.5873 26.9187 19.6413 26.3719 19.5366 25.8443C19.4319 25.3166 19.1731 24.8319 18.7929 24.4513C18.2815 23.9428 17.5895 23.6573 16.8683 23.6573C16.147 23.6573 15.4551 23.9428 14.9436 24.4513ZM21.157 16.6973C20.6237 17.2304 20.2604 17.9096 20.1131 18.6492C19.9659 19.3888 20.0413 20.1554 20.3297 20.8521C20.6182 21.5488 21.1068 22.1443 21.7338 22.5633C22.3608 22.9823 23.0979 23.2059 23.852 23.2059C24.6061 23.2059 25.3432 22.9823 25.9702 22.5633C26.5971 22.1443 27.0858 21.5488 27.3743 20.8521C27.6627 20.1554 27.7381 19.3888 27.5908 18.6492C27.4436 17.9096 27.0803 17.2304 26.5469 16.6973C25.8322 15.9896 24.8671 15.5925 23.8612 15.5925C22.8554 15.5925 21.8903 15.9896 21.1756 16.6973H21.157ZM33.7967 9.45219C33.2128 8.87394 32.4708 8.4814 31.6642 8.32403C30.8576 8.16666 30.0225 8.25149 29.264 8.56784C28.5055 8.88418 27.8576 9.41789 27.4019 10.1018C26.9461 10.7856 26.703 11.589 26.703 12.4108C26.703 13.2326 26.9461 14.0361 27.4019 14.7199C27.8576 15.4038 28.5055 15.9375 29.264 16.2539C30.0225 16.5702 30.8576 16.655 31.6642 16.4977C32.4708 16.3403 33.2128 15.9477 33.7967 15.3695C34.1889 14.9836 34.5007 14.5237 34.7141 14.0165C34.9275 13.5094 35.0382 12.9649 35.0399 12.4147C35.0417 11.8645 34.9343 11.3194 34.7241 10.8109C34.5139 10.3024 34.205 9.84058 33.8152 9.45219H33.7967ZM0.795762 24.4513C0.415598 24.8319 0.156793 25.3166 0.0520611 25.8443C-0.0526711 26.3719 0.00137099 26.9187 0.207356 27.4157C0.413341 27.9126 0.762022 28.3373 1.20932 28.636C1.65663 28.9348 2.18247 29.0943 2.72039 29.0943C3.25831 29.0943 3.78416 28.9348 4.23146 28.636C4.67876 28.3373 5.02744 27.9126 5.23343 27.4157C5.43941 26.9187 5.49345 26.3719 5.38872 25.8443C5.28399 25.3166 5.02519 24.8319 4.64502 24.4513C4.39238 24.1984 4.09235 23.9978 3.76211 23.8609C3.43187 23.724 3.07788 23.6535 2.72039 23.6535C2.3629 23.6535 2.00892 23.724 1.67868 23.8609C1.34843 23.9978 1.04841 24.1984 0.795762 24.4513ZM40.5375 16.6973C40.0044 16.1639 39.3252 15.8007 38.5856 15.6534C37.8461 15.5061 37.0794 15.5815 36.3827 15.87C35.686 16.1585 35.0905 16.6471 34.6715 17.2741C34.2525 17.901 34.0289 18.6382 34.0289 19.3923C34.0289 20.1463 34.2525 20.8835 34.6715 21.5104C35.0905 22.1374 35.686 22.626 36.3827 22.9145C37.0794 23.203 37.8461 23.2784 38.5856 23.1311C39.3252 22.9838 40.0044 22.6206 40.5375 22.0872C41.2509 21.3717 41.6515 20.4026 41.6515 19.3923C41.6515 18.3819 41.2509 17.4128 40.5375 16.6973Z\"\r\n fill=\"url(#paint0_linear_2342_113)\"\r\n />\r\n </g>\r\n <defs>\r\n <linearGradient\r\n id=\"paint0_linear_2342_113\"\r\n x1=\"7.54585\"\r\n y1=\"35.0553\"\r\n x2=\"33.8846\"\r\n y2=\"8.71658\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n >\r\n <stop stop-color=\"#004987\" />\r\n <stop offset=\"0.25\" stop-color=\"#004C89\" />\r\n <stop offset=\"0.44\" stop-color=\"#00568F\" />\r\n <stop offset=\"0.62\" stop-color=\"#00669A\" />\r\n <stop offset=\"0.78\" stop-color=\"#007DAA\" />\r\n <stop offset=\"0.93\" stop-color=\"#009BBD\" />\r\n <stop offset=\"1\" stop-color=\"#00ABC8\" />\r\n </linearGradient>\r\n <clipPath id=\"clip0_2342_113\">\r\n <rect width=\"42\" height=\"29\" fill=\"white\" transform=\"translate(0 0.677048)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n } @else {\r\n <svg class=\"teal-logo\" [ngClass]=\"size()\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 29\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_353_5425)\">\r\n <path\r\n d=\"M12.598 16.0262C13.1314 16.5593 13.4946 17.2386 13.6419 17.9781C13.7892 18.7177 13.7138 19.4843 13.4253 20.181C13.1368 20.8778 12.6482 21.4733 12.0212 21.8923C11.3943 22.3112 10.6571 22.5349 9.90305 22.5349C9.14897 22.5349 8.41183 22.3112 7.78487 21.8923C7.1579 21.4733 6.66928 20.8778 6.3808 20.181C6.09232 19.4843 6.01694 18.7177 6.16421 17.9781C6.31147 17.2386 6.67475 16.5593 7.20811 16.0262C7.56177 15.6719 7.98184 15.3908 8.44428 15.199C8.90671 15.0072 9.40242 14.9085 9.90305 14.9085C10.4037 14.9085 10.8994 15.0072 11.3618 15.199C11.8243 15.3908 12.2443 15.6719 12.598 16.0262ZM19.8477 8.78113C19.2638 8.20288 18.5218 7.81033 17.7152 7.65296C16.9086 7.49559 16.0735 7.58043 15.315 7.89677C14.5566 8.21311 13.9087 8.74683 13.4529 9.43069C12.9972 10.1145 12.754 10.918 12.754 11.7398C12.754 12.5616 12.9972 13.365 13.4529 14.0489C13.9087 14.7327 14.5566 15.2664 15.315 15.5828C16.0735 15.8991 16.9086 15.984 17.7152 15.8266C18.5218 15.6692 19.2638 15.2767 19.8477 14.6984C20.2387 14.3113 20.5491 13.8504 20.7609 13.3426C20.9727 12.8348 21.0817 12.29 21.0817 11.7398C21.0817 11.1895 20.9727 10.6448 20.7609 10.1369C20.5491 9.62912 20.2387 9.16829 19.8477 8.78113ZM27.2502 8.11491C27.9143 7.45025 28.3664 6.60361 28.5494 5.68204C28.7324 4.76046 28.6381 3.80531 28.2784 2.93733C27.9186 2.06935 27.3096 1.32751 26.5284 0.805587C25.7471 0.283668 24.8286 0.00509644 23.889 0.00509644C22.9494 0.00509644 22.0309 0.283668 21.2497 0.805587C20.4684 1.32751 19.8594 2.06935 19.4996 2.93733C19.1399 3.80531 19.0456 4.76046 19.2286 5.68204C19.4116 6.60361 19.8637 7.45025 20.5278 8.11491C21.4177 9.0023 22.6231 9.50063 23.8798 9.50063C25.1364 9.50063 26.3418 9.0023 27.2317 8.11491H27.2502ZM14.9436 23.7803C14.5635 24.1608 14.3047 24.6456 14.1999 25.1732C14.0952 25.7008 14.1492 26.2477 14.3552 26.7446C14.5612 27.2415 14.9099 27.6662 15.3572 27.965C15.8045 28.2638 16.3304 28.4233 16.8683 28.4233C17.4062 28.4233 17.932 28.2638 18.3793 27.965C18.8266 27.6662 19.1753 27.2415 19.3813 26.7446C19.5873 26.2477 19.6413 25.7008 19.5366 25.1732C19.4319 24.6456 19.1731 24.1608 18.7929 23.7803C18.2815 23.2717 17.5895 22.9863 16.8683 22.9863C16.147 22.9863 15.4551 23.2717 14.9436 23.7803ZM21.157 16.0262C20.6237 16.5593 20.2604 17.2386 20.1131 17.9781C19.9659 18.7177 20.0413 19.4843 20.3297 20.181C20.6182 20.8778 21.1068 21.4733 21.7338 21.8923C22.3608 22.3112 23.0979 22.5349 23.852 22.5349C24.6061 22.5349 25.3432 22.3112 25.9702 21.8923C26.5971 21.4733 27.0858 20.8778 27.3742 20.181C27.6627 19.4843 27.7381 18.7177 27.5908 17.9781C27.4436 17.2386 27.0803 16.5593 26.5469 16.0262C25.8322 15.3185 24.8671 14.9215 23.8612 14.9215C22.8554 14.9215 21.8903 15.3185 21.1756 16.0262H21.157ZM33.7967 8.78113C33.2128 8.20288 32.4708 7.81033 31.6642 7.65296C30.8576 7.49559 30.0225 7.58043 29.264 7.89677C28.5055 8.21311 27.8576 8.74683 27.4019 9.43069C26.9461 10.1145 26.703 10.918 26.703 11.7398C26.703 12.5616 26.9461 13.365 27.4019 14.0489C27.8576 14.7327 28.5055 15.2664 29.264 15.5828C30.0225 15.8991 30.8576 15.984 31.6642 15.8266C32.4708 15.6692 33.2128 15.2767 33.7967 14.6984C34.1889 14.3125 34.5007 13.8526 34.7141 13.3455C34.9275 12.8383 35.0382 12.2939 35.0399 11.7436C35.0417 11.1934 34.9343 10.6483 34.7241 10.1398C34.5139 9.6313 34.205 9.16951 33.8152 8.78113H33.7967ZM0.79576 23.7803C0.415596 24.1608 0.156791 24.6456 0.0520592 25.1732C-0.0526731 25.7008 0.00136908 26.2477 0.207354 26.7446C0.413339 27.2415 0.76202 27.6662 1.20932 27.965C1.65663 28.2638 2.18247 28.4233 2.72039 28.4233C3.25831 28.4233 3.78415 28.2638 4.23146 27.965C4.67876 27.6662 5.02744 27.2415 5.23343 26.7446C5.43941 26.2477 5.49345 25.7008 5.38872 25.1732C5.28399 24.6456 5.02519 24.1608 4.64502 23.7803C4.39237 23.5274 4.09235 23.3267 3.76211 23.1898C3.43187 23.0529 3.07788 22.9825 2.72039 22.9825C2.3629 22.9825 2.00892 23.0529 1.67867 23.1898C1.34843 23.3267 1.04841 23.5274 0.79576 23.7803ZM40.5375 16.0262C40.0044 15.4929 39.3252 15.1296 38.5856 14.9823C37.846 14.8351 37.0794 14.9104 36.3827 15.1989C35.686 15.4874 35.0905 15.976 34.6715 16.603C34.2525 17.23 34.0289 17.9671 34.0289 18.7212C34.0289 19.4753 34.2525 20.2124 34.6715 20.8394C35.0905 21.4663 35.686 21.9549 36.3827 22.2434C37.0794 22.5319 37.846 22.6073 38.5856 22.46C39.3252 22.3128 40.0044 21.9495 40.5375 21.4161C41.2509 20.7007 41.6515 19.7315 41.6515 18.7212C41.6515 17.7108 41.2509 16.7417 40.5375 16.0262Z\"\r\n fill=\"url(#paint0_linear_353_5425)\"\r\n />\r\n <path\r\n d=\"M71.0956 25.9224L73.2562 22.8272C74.352 23.552 75.5251 24.1525 76.7539 24.6177C77.7336 24.969 78.7665 25.1489 79.8074 25.1497C80.8503 25.1979 81.884 24.9354 82.7776 24.3956C83.1242 24.1955 83.412 23.9075 83.6118 23.5606C83.8116 23.2138 83.9164 22.8204 83.9157 22.4201C83.9268 22.1375 83.8719 21.8561 83.7555 21.5984C83.639 21.3406 83.4642 21.1135 83.2449 20.935C82.6082 20.4925 81.8757 20.2071 81.1074 20.1022L77.4849 19.4915C75.5325 19.1399 74.0612 18.4953 73.0712 17.5576C72.5741 17.0822 72.1845 16.506 71.9284 15.8676C71.6722 15.2293 71.5555 14.5435 71.586 13.8564C71.5595 12.9759 71.7429 12.1017 72.121 11.3061C72.4991 10.5105 73.0611 9.81625 73.7605 9.28077C75.2132 8.12723 77.1194 7.55046 79.4789 7.55046C80.8634 7.54789 82.2409 7.7458 83.5687 8.13804C84.9587 8.56661 86.2811 9.18965 87.4966 9.98864L85.3407 13.0005C84.3808 12.3679 83.3396 11.8683 82.2455 11.5154C81.2587 11.2068 80.2306 11.0508 79.1967 11.0527C78.3047 11.0099 77.4198 11.2303 76.6521 11.6866C76.3506 11.8703 76.1031 12.1306 75.9349 12.4411C75.7667 12.7515 75.6837 13.101 75.6944 13.4539C75.6752 13.7312 75.7227 14.0091 75.833 14.2643C75.9433 14.5194 76.1131 14.7445 76.3282 14.9205C77.0137 15.3433 77.7851 15.6074 78.586 15.6931L82.1669 16.3779C84.2025 16.7572 85.7108 17.4234 86.7055 18.3719C87.1989 18.85 87.5862 19.4267 87.8421 20.0644C88.098 20.7021 88.2167 21.3865 88.1906 22.0731C88.1981 22.9718 87.9886 23.859 87.5799 24.6593C87.1532 25.4812 86.5571 26.2034 85.8311 26.7783C85.0386 27.3946 84.1424 27.8647 83.1847 28.1662C82.1274 28.511 81.0213 28.6828 79.9092 28.6751C78.2476 28.6907 76.5935 28.4503 75.005 27.9626C73.5821 27.542 72.2544 26.8491 71.0956 25.9224ZM100.641 24.6177C101.587 24.624 102.523 24.4301 103.389 24.0486C104.235 23.6736 104.981 23.1027 105.563 22.3831L108.339 25.159C107.361 26.2662 106.153 27.1471 104.8 27.7406C103.407 28.3752 101.894 28.7019 100.363 28.6983C98.9721 28.7063 97.5944 28.4292 96.3148 27.884C95.0842 27.3641 93.9703 26.6027 93.0392 25.6448C92.1011 24.6715 91.3625 23.5242 90.8647 22.2674C90.3283 20.9453 90.0578 19.5303 90.069 18.1035C90.0587 16.6873 90.3292 15.2831 90.8647 13.9721C91.3577 12.7303 92.0937 11.5996 93.0296 10.6462C93.9655 9.69287 95.0824 8.93605 96.3148 8.42025C97.5937 7.8728 98.9719 7.59557 100.363 7.60597C101.907 7.59931 103.436 7.90296 104.86 8.49889C106.244 9.06665 107.488 9.92861 108.506 11.025L105.656 13.9952C105.001 13.2509 104.203 12.6453 103.31 12.214C102.442 11.8062 101.493 11.5976 100.534 11.6033C99.7439 11.5944 98.9613 11.7593 98.2418 12.0863C97.5222 12.4133 96.8833 12.8944 96.3703 13.4955C95.2698 14.7859 94.6653 16.4262 94.6653 18.1221C94.6653 19.8179 95.2698 21.4583 96.3703 22.7486C96.904 23.3511 97.5624 23.8302 98.2998 24.153C99.0371 24.4757 99.8358 24.6343 100.641 24.6177ZM127.581 25.6771C126.445 26.641 125.159 27.4116 123.773 27.958C122.398 28.4598 120.943 28.7075 119.48 28.689C118.083 28.6962 116.699 28.4191 115.413 27.8747C114.168 27.3589 113.041 26.5955 112.1 25.6309C110.161 23.6055 109.082 20.9077 109.089 18.1035C109.079 16.6807 109.334 15.2686 109.843 13.9397C110.313 12.7025 111.018 11.5682 111.92 10.5993C112.837 9.63566 113.942 8.87094 115.167 8.35279C116.392 7.83463 117.71 7.57412 119.04 7.58748C120.334 7.57286 121.616 7.82963 122.804 8.34124C123.992 8.85284 125.06 9.60791 125.938 10.5577C126.817 11.5232 127.5 12.6497 127.951 13.8749C128.45 15.2218 128.698 16.6488 128.682 18.085V19.2278H113.623C113.806 20.7608 114.535 22.1767 115.677 23.2159C116.77 24.2488 118.221 24.8176 119.725 24.8027C120.651 24.8061 121.57 24.6334 122.431 24.2938C123.236 23.9907 123.965 23.5172 124.569 22.9059L127.581 25.6771ZM118.994 11.3118C118.354 11.3 117.717 11.4167 117.123 11.6551C116.529 11.8935 115.988 12.2488 115.533 12.6998C114.536 13.7035 113.887 15.0009 113.683 16.401H124.324C124.107 15.0155 123.459 13.7335 122.473 12.7368C122.019 12.2766 121.477 11.9131 120.879 11.6682C120.281 11.4233 119.64 11.3021 118.994 11.3118ZM131.337 28.2819V7.89282H135.936V11.2332C136.622 10.1079 137.575 9.16999 138.712 8.50352C139.842 7.87248 141.119 7.55314 142.413 7.57822C143.355 7.54695 144.292 7.71364 145.164 8.0675C146.037 8.42135 146.826 8.95448 147.479 9.63239C148.138 10.33 148.651 11.1513 148.989 12.0487C149.327 12.9462 149.484 13.9019 149.45 14.8603V28.2772H144.852V16.1558C144.91 14.8643 144.475 13.5989 143.635 12.6165C143.225 12.17 142.723 11.8183 142.164 11.5857C141.605 11.3532 141.001 11.2455 140.396 11.2702C139.521 11.2585 138.658 11.4771 137.893 11.904C137.118 12.3507 136.457 12.9696 135.959 13.713V28.2819H131.337ZM154.785 22.9105V11.557H150.672V7.89282H154.785V4.7144L159.383 1.30003V7.89282H164.121V11.557H159.383V21.8927C159.383 22.8981 159.599 23.6106 160.031 24.0301C160.463 24.4496 161.195 24.6593 162.229 24.6593C162.658 24.6626 163.087 24.6286 163.51 24.5575C164.015 24.4635 164.513 24.3352 165 24.1735V28.0367C164.355 28.2361 163.694 28.38 163.024 28.4669C162.37 28.5549 161.71 28.6013 161.049 28.6057C159.019 28.6057 157.466 28.1246 156.39 27.1623C155.314 26.1999 154.778 24.7827 154.785 22.9105ZM66.6681 9.4936C65.1876 8.22285 63.1396 7.58748 60.5241 7.58748C59.1392 7.59187 57.7598 7.76273 56.4157 8.09638C55.5404 8.31315 54.6797 8.58512 53.8387 8.91066V12.9311C54.8259 12.4676 55.8504 12.0884 56.9015 11.7976C57.7899 11.5547 58.7056 11.4257 59.6265 11.4136C61.1687 11.4136 62.3361 11.7591 63.1288 12.45C63.5322 12.8343 63.8468 13.3022 64.0506 13.8208C64.2544 14.3395 64.3424 14.8964 64.3085 15.4526V17.3448C63.4366 16.9313 62.5231 16.6118 61.5835 16.3917C60.6725 16.1865 59.7414 16.0841 58.8076 16.0864C56.4203 16.0864 54.5281 16.6277 53.1309 17.7103C52.4478 18.2857 51.9039 19.0084 51.5401 19.8241C51.1763 20.6399 51.0021 21.5274 51.0304 22.4201C51.0086 23.2675 51.1788 24.1088 51.5281 24.8812C51.8774 25.6535 52.3969 26.3368 53.0476 26.88C54.3893 28.0336 56.1181 28.6088 58.2339 28.6057C59.3319 28.6185 60.4225 28.4255 61.4494 28.0367C62.5061 27.6024 63.4726 26.9748 64.2993 26.1861V28.2634H68.8564V14.9899C68.8626 12.6211 68.1331 10.7921 66.6681 9.50286V9.4936ZM64.3085 23.7155C63.6542 24.2698 62.9028 24.6981 62.0924 24.9786C61.2581 25.2536 60.3847 25.3911 59.5062 25.3857C58.4382 25.4388 57.3817 25.1451 56.4944 24.5483C56.1352 24.3028 55.843 23.9715 55.6443 23.5845C55.4456 23.1976 55.3466 22.7671 55.3562 22.3322C55.3445 21.8588 55.441 21.3889 55.6382 20.9584C55.8354 20.5279 56.1282 20.148 56.4944 19.8477C57.2531 19.3203 58.0813 19.0566 59.5895 19.0566C60.4213 19.0508 61.2518 19.1252 62.0693 19.2787C62.8449 19.4333 63.5974 19.6868 64.3085 20.0328V23.7155Z\"\r\n fill=\"#004987\"\r\n />\r\n </g>\r\n <defs>\r\n <linearGradient\r\n id=\"paint0_linear_353_5425\"\r\n x1=\"7.54584\"\r\n y1=\"34.3843\"\r\n x2=\"33.8846\"\r\n y2=\"8.04551\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n >\r\n <stop stop-color=\"#004987\" />\r\n <stop offset=\"0.25\" stop-color=\"#004C89\" />\r\n <stop offset=\"0.44\" stop-color=\"#00568F\" />\r\n <stop offset=\"0.62\" stop-color=\"#00669A\" />\r\n <stop offset=\"0.78\" stop-color=\"#007DAA\" />\r\n <stop offset=\"0.93\" stop-color=\"#009BBD\" />\r\n <stop offset=\"1\" stop-color=\"#00ABC8\" />\r\n </linearGradient>\r\n <clipPath id=\"clip0_353_5425\">\r\n <rect width=\"165\" height=\"28.689\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n }\r\n @if (isMobile || isCollapsed()) {\r\n <svg\r\n class=\"collapsed regular-logo white-logo\"\r\n [ngClass]=\"size()\"\r\n width=\"42\"\r\n height=\"30\"\r\n viewBox=\"0 0 42 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"New logo Color\" clip-path=\"url(#clip0_2349_6338)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.0906C13.1314 16.6237 13.4946 17.3029 13.6419 18.0425C13.7892 18.7821 13.7138 19.5487 13.4253 20.2454C13.1368 20.9421 12.6482 21.5376 12.0212 21.9566C11.3943 22.3756 10.6571 22.5992 9.90305 22.5992C9.14898 22.5992 8.41184 22.3756 7.78487 21.9566C7.15791 21.5376 6.66928 20.9421 6.3808 20.2454C6.09232 19.5487 6.01695 18.7821 6.16421 18.0425C6.31147 17.3029 6.67475 16.6237 7.20811 16.0906C7.56177 15.7363 7.98185 15.4552 8.44428 15.2634C8.90671 15.0716 9.40242 14.9728 9.90305 14.9728C10.4037 14.9728 10.8994 15.0716 11.3618 15.2634C11.8243 15.4552 12.2443 15.7363 12.598 16.0906ZM19.8477 8.84549C19.2638 8.26724 18.5218 7.87469 17.7152 7.71732C16.9086 7.55996 16.0735 7.64479 15.315 7.96113C14.5566 8.27748 13.9087 8.81119 13.4529 9.49505C12.9972 10.1789 12.754 10.9823 12.754 11.8041C12.754 12.6259 12.9972 13.4294 13.4529 14.1132C13.9087 14.7971 14.5566 15.3308 15.315 15.6471C16.0735 15.9635 16.9086 16.0483 17.7152 15.891C18.5218 15.7336 19.2638 15.341 19.8477 14.7628C20.2387 14.3756 20.5491 13.9148 20.7609 13.407C20.9727 12.8991 21.0817 12.3544 21.0817 11.8041C21.0817 11.2539 20.9727 10.7091 20.7609 10.2013C20.5491 9.69348 20.2387 9.23266 19.8477 8.84549ZM27.2502 8.17927C27.9143 7.51461 28.3664 6.66798 28.5494 5.7464C28.7324 4.82482 28.6381 3.86967 28.2784 3.00169C27.9186 2.13371 27.3096 1.39187 26.5284 0.869949C25.7471 0.348029 24.8286 0.069458 23.889 0.069458C22.9494 0.069458 22.0309 0.348029 21.2497 0.869949C20.4684 1.39187 19.8594 2.13371 19.4996 3.00169C19.1399 3.86967 19.0456 4.82482 19.2286 5.7464C19.4116 6.66798 19.8637 7.51461 20.5278 8.17927C21.4177 9.06667 22.6231 9.56499 23.8798 9.56499C25.1364 9.56499 26.3418 9.06667 27.2317 8.17927H27.2502ZM14.9436 23.8446C14.5635 24.2252 14.3047 24.7099 14.1999 25.2376C14.0952 25.7652 14.1492 26.312 14.3552 26.809C14.5612 27.3059 14.9099 27.7305 15.3572 28.0293C15.8045 28.3281 16.3304 28.4876 16.8683 28.4876C17.4062 28.4876 17.932 28.3281 18.3793 28.0293C18.8266 27.7305 19.1753 27.3059 19.3813 26.809C19.5873 26.312 19.6413 25.7652 19.5366 25.2376C19.4319 24.7099 19.1731 24.2252 18.7929 23.8446C18.2815 23.3361 17.5895 23.0506 16.8683 23.0506C16.147 23.0506 15.4551 23.3361 14.9436 23.8446ZM21.157 16.0906C20.6237 16.6237 20.2604 17.3029 20.1131 18.0425C19.9659 18.7821 20.0413 19.5487 20.3297 20.2454C20.6182 20.9421 21.1068 21.5376 21.7338 21.9566C22.3608 22.3756 23.0979 22.5992 23.852 22.5992C24.6061 22.5992 25.3432 22.3756 25.9702 21.9566C26.5971 21.5376 27.0858 20.9421 27.3743 20.2454C27.6627 19.5487 27.7381 18.7821 27.5908 18.0425C27.4436 17.3029 27.0803 16.6237 26.5469 16.0906C25.8322 15.3829 24.8671 14.9858 23.8612 14.9858C22.8554 14.9858 21.8903 15.3829 21.1756 16.0906H21.157ZM33.7967 8.84549C33.2128 8.26724 32.4708 7.87469 31.6642 7.71732C30.8576 7.55996 30.0225 7.64479 29.264 7.96113C28.5055 8.27748 27.8576 8.81119 27.4019 9.49505C26.9461 10.1789 26.703 10.9823 26.703 11.8041C26.703 12.6259 26.9461 13.4294 27.4019 14.1132C27.8576 14.7971 28.5055 15.3308 29.264 15.6471C30.0225 15.9635 30.8576 16.0483 31.6642 15.891C32.4708 15.7336 33.2128 15.341 33.7967 14.7628C34.1889 14.3768 34.5007 13.917 34.7141 13.4098C34.9275 12.9027 35.0382 12.3582 35.0399 11.808C35.0417 11.2578 34.9343 10.7127 34.7241 10.2042C34.5139 9.69567 34.205 9.23388 33.8152 8.84549H33.7967ZM0.795762 23.8446C0.415598 24.2252 0.156793 24.7099 0.0520611 25.2376C-0.0526711 25.7652 0.00137099 26.312 0.207356 26.809C0.413341 27.3059 0.762022 27.7305 1.20932 28.0293C1.65663 28.3281 2.18247 28.4876 2.72039 28.4876C3.25831 28.4876 3.78416 28.3281 4.23146 28.0293C4.67876 27.7305 5.02744 27.3059 5.23343 26.809C5.43941 26.312 5.49345 25.7652 5.38872 25.2376C5.28399 24.7099 5.02519 24.2252 4.64502 23.8446C4.39238 23.5917 4.09235 23.3911 3.76211 23.2542C3.43187 23.1173 3.07788 23.0468 2.72039 23.0468C2.3629 23.0468 2.00892 23.1173 1.67868 23.2542C1.34843 23.3911 1.04841 23.5917 0.795762 23.8446ZM40.5375 16.0906C40.0044 15.5572 39.3252 15.194 38.5856 15.0467C37.8461 14.8994 37.0794 14.9748 36.3827 15.2633C35.686 15.5518 35.0905 16.0404 34.6715 16.6674C34.2525 17.2943 34.0289 18.0315 34.0289 18.7855C34.0289 19.5396 34.2525 20.2768 34.6715 20.9037C35.0905 21.5307 35.686 22.0193 36.3827 22.3078C37.0794 22.5963 37.8461 22.6717 38.5856 22.5244C39.3252 22.3771 40.0044 22.0139 40.5375 21.4805C41.2509 20.765 41.6515 19.7959 41.6515 18.7855C41.6515 17.7752 41.2509 16.8061 40.5375 16.0906Z\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2349_6338\">\r\n <rect width=\"42\" height=\"29\" fill=\"white\" transform=\"translate(0 0.0703125)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n } @else {\r\n <svg\r\n [ngClass]=\"size()\"\r\n class=\"regular-logo white-logo\"\r\n width=\"165\"\r\n height=\"29\"\r\n viewBox=\"0 0 165 29\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"Ascent Logo\" clip-path=\"url(#clip0_2238_42055)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.0203C13.1314 16.5534 13.4946 17.2326 13.6419 17.9722C13.7892 18.7117 13.7138 19.4784 13.4253 20.1751C13.1368 20.8718 12.6482 21.4673 12.0212 21.8863C11.3943 22.3053 10.6571 22.5289 9.90305 22.5289C9.14898 22.5289 8.41184 22.3053 7.78487 21.8863C7.15791 21.4673 6.66928 20.8718 6.3808 20.1751C6.09232 19.4784 6.01695 18.7117 6.16421 17.9722C6.31147 17.2326 6.67475 16.5534 7.20811 16.0203C7.56177 15.6659 7.98185 15.3849 8.44428 15.1931C8.90671 15.0013 9.40242 14.9025 9.90305 14.9025C10.4037 14.9025 10.8994 15.0013 11.3618 15.1931C11.8243 15.3849 12.2443 15.6659 12.598 16.0203ZM19.8477 8.77518C19.2638 8.19692 18.5218 7.80438 17.7152 7.64701C16.9086 7.48964 16.0735 7.57447 15.315 7.89082C14.5566 8.20716 13.9087 8.74088 13.4529 9.42474C12.9972 10.1086 12.754 10.912 12.754 11.7338C12.754 12.5556 12.9972 13.3591 13.4529 14.0429C13.9087 14.7268 14.5566 15.2605 15.315 15.5768C16.0735 15.8932 16.9086 15.978 17.7152 15.8206C18.5218 15.6633 19.2638 15.2707 19.8477 14.6925C20.2387 14.3053 20.5491 13.8445 20.7609 13.3367C20.9727 12.8288 21.0817 12.284 21.0817 11.7338C21.0817 11.1836 20.9727 10.6388 20.7609 10.131C20.5491 9.62316 20.2387 9.16234 19.8477 8.77518ZM27.2502 8.10896C27.9143 7.4443 28.3664 6.59766 28.5494 5.67608C28.7324 4.75451 28.6381 3.79936 28.2784 2.93138C27.9186 2.0634 27.3096 1.32156 26.5284 0.799636C25.7471 0.277717 24.8286 -0.000854492 23.889 -0.000854492C22.9494 -0.000854492 22.0309 0.277717 21.2497 0.799636C20.4684 1.32156 19.8594 2.0634 19.4996 2.93138C19.1399 3.79936 19.0456 4.75451 19.2286 5.67608C19.4116 6.59766 19.8637 7.4443 20.5278 8.10896C21.4177 8.99635 22.6231 9.49468 23.8798 9.49468C25.1364 9.49468 26.3418 8.99635 27.2317 8.10896H27.2502ZM14.9436 23.7743C14.5635 24.1549 14.3047 24.6396 14.1999 25.1672C14.0952 25.6949 14.1492 26.2417 14.3552 26.7386C14.5612 27.2356 14.9099 27.6602 15.3572 27.959C15.8045 28.2578 16.3304 28.4173 16.8683 28.4173C17.4062 28.4173 17.932 28.2578 18.3793 27.959C18.8266 27.6602 19.1753 27.2356 19.3813 26.7386C19.5873 26.2417 19.6413 25.6949 19.5366 25.1672C19.4319 24.6396 19.1731 24.1549 18.7929 23.7743C18.2815 23.2658 17.5895 22.9803 16.8683 22.9803C16.147 22.9803 15.4551 23.2658 14.9436 23.7743ZM21.157 16.0203C20.6237 16.5534 20.2604 17.2326 20.1131 17.9722C19.9659 18.7117 20.0413 19.4784 20.3297 20.1751C20.6182 20.8718 21.1068 21.4673 21.7338 21.8863C22.3608 22.3053 23.0979 22.5289 23.852 22.5289C24.6061 22.5289 25.3432 22.3053 25.9702 21.8863C26.5971 21.4673 27.0858 20.8718 27.3743 20.1751C27.6627 19.4784 27.7381 18.7117 27.5908 17.9722C27.4436 17.2326 27.0803 16.5534 26.5469 16.0203C25.8322 15.3126 24.8671 14.9155 23.8612 14.9155C22.8554 14.9155 21.8903 15.3126 21.1756 16.0203H21.157ZM33.7967 8.77518C33.2128 8.19692 32.4708 7.80438 31.6642 7.64701C30.8576 7.48964 30.0225 7.57447 29.264 7.89082C28.5055 8.20716 27.8576 8.74088 27.4019 9.42474C26.9461 10.1086 26.703 10.912 26.703 11.7338C26.703 12.5556 26.9461 13.3591 27.4019 14.0429C27.8576 14.7268 28.5055 15.2605 29.264 15.5768C30.0225 15.8932 30.8576 15.978 31.6642 15.8206C32.4708 15.6633 33.2128 15.2707 33.7967 14.6925C34.1889 14.3065 34.5007 13.8467 34.7141 13.3395C34.9275 12.8323 35.0382 12.2879 35.0399 11.7377C35.0417 11.1874 34.9343 10.6423 34.7241 10.1338C34.5139 9.62535 34.205 9.16356 33.8152 8.77518H33.7967ZM0.795762 23.7743C0.415598 24.1549 0.156793 24.6396 0.0520611 25.1672C-0.0526711 25.6949 0.00137099 26.2417 0.207356 26.7386C0.413341 27.2356 0.762022 27.6602 1.20932 27.959C1.65663 28.2578 2.18247 28.4173 2.72039 28.4173C3.25831 28.4173 3.78416 28.2578 4.23146 27.959C4.67876 27.6602 5.02744 27.2356 5.23343 26.7386C5.43941 26.2417 5.49345 25.6949 5.38872 25.1672C5.28399 24.6396 5.02519 24.1549 4.64502 23.7743C4.39238 23.5214 4.09235 23.3208 3.76211 23.1839C3.43187 23.047 3.07788 22.9765 2.72039 22.9765C2.3629 22.9765 2.00892 23.047 1.67868 23.1839C1.34843 23.3208 1.04841 23.5214 0.795762 23.7743ZM40.5375 16.0203C40.0044 15.4869 39.3252 15.1236 38.5856 14.9764C37.8461 14.8291 37.0794 14.9045 36.3827 15.193C35.686 15.4814 35.0905 15.9701 34.6715 16.597C34.2525 17.224 34.0289 17.9612 34.0289 18.7152C34.0289 19.4693 34.2525 20.2065 34.6715 20.8334C35.0905 21.4604 35.686 21.949 36.3827 22.2375C37.0794 22.526 37.8461 22.6013 38.5856 22.4541C39.3252 22.3068 40.0044 21.9435 40.5375 21.4102C41.2509 20.6947 41.6515 19.7256 41.6515 18.7152C41.6515 17.7049 41.2509 16.7358 40.5375 16.0203Z\"\r\n fill=\"white\"\r\n />\r\n <path\r\n id=\"Vector_2\"\r\n d=\"M71.0956 25.9164L73.2562 22.8213C74.352 23.5461 75.5251 24.1466 76.7539 24.6117C77.7336 24.963 78.7665 25.143 79.8074 25.1438C80.8503 25.1919 81.884 24.9294 82.7776 24.3896C83.1242 24.1895 83.412 23.9015 83.6118 23.5546C83.8116 23.2078 83.9164 22.8144 83.9157 22.4141C83.9268 22.1315 83.8719 21.8502 83.7555 21.5924C83.639 21.3347 83.4642 21.1075 83.2449 20.929C82.6082 20.4865 81.8757 20.2011 81.1074 20.0962L77.4849 19.4855C75.5325 19.1339 74.0612 18.4893 73.0712 17.5516C72.5741 17.0762 72.1845 16.5 71.9284 15.8617C71.6722 15.2233 71.5555 14.5376 71.586 13.8504C71.5595 12.9699 71.7429 12.0958 72.121 11.3001C72.4991 10.5045 73.0611 9.81028 73.7605 9.2748C75.2132 8.12126 77.1194 7.54449 79.4789 7.54449C80.8634 7.54192 82.2409 7.73984 83.5687 8.13207C84.9587 8.56065 86.2811 9.18369 87.4966 9.98267L85.3407 12.9945C84.3808 12.3619 83.3396 11.8623 82.2455 11.5094C81.2587 11.2008 80.2306 11.0448 79.1967 11.0468C78.3047 11.0039 77.4198 11.2243 76.6521 11.6806C76.3506 11.8643 76.1031 12.1247 75.9349 12.4351C75.7667 12.7456 75.6837 13.095 75.6944 13.4479C75.6752 13.7252 75.7227 14.0031 75.833 14.2583C75.9433 14.5135 76.1131 14.7385 76.3282 14.9145C77.0137 15.3374 77.7851 15.6014 78.586 15.6872L82.1669 16.3719C84.2025 16.7513 85.7108 17.4175 86.7055 18.3659C87.1989 18.8441 87.5862 19.4207 87.8421 20.0584C88.098 20.6961 88.2167 21.3805 88.1906 22.0671C88.1981 22.9658 87.9886 23.853 87.5799 24.6534C87.1532 25.4753 86.5571 26.1974 85.8311 26.7723C85.0386 27.3887 84.1424 27.8587 83.1847 28.1602C82.1274 28.505 81.0213 28.6769 79.9092 28.6692C78.2476 28.6847 76.5935 28.4444 75.005 27.9567C73.5821 27.5361 72.2544 26.8432 71.0956 25.9164ZM100.641 24.6117C101.587 24.618 102.523 24.4241 103.389 24.0427C104.235 23.6676 104.981 23.0967 105.563 22.3771L108.339 25.153C107.361 26.2602 106.153 27.1412 104.8 27.7346C103.407 28.3692 101.894 28.6959 100.363 28.6923C98.9721 28.7003 97.5944 28.4232 96.3148 27.878C95.0842 27.3582 93.9703 26.5968 93.0392 25.6388C92.1011 24.6655 91.3625 23.5182 90.8647 22.2614C90.3283 20.9393 90.0578 19.5243 90.069 18.0976C90.0587 16.6814 90.3292 15.2772 90.8647 13.9661C91.3577 12.7244 92.0937 11.5937 93.0296 10.6403C93.9655 9.6869 95.0824 8.93009 96.3148 8.41428C97.5937 7.86683 98.9719 7.5896 100.363 7.60001C101.907 7.59334 103.436 7.89699 104.86 8.49292C106.244 9.06069 107.488 9.92264 108.506 11.019L105.656 13.9892C105.001 13.2449 104.203 12.6393 103.31 12.208C102.442 11.8003 101.493 11.5916 100.534 11.5973C99.7439 11.5885 98.9613 11.7534 98.2418 12.0803C97.5222 12.4073 96.8833 12.8884 96.3703 13.4896C95.2698 14.7799 94.6653 16.4202 94.6653 18.1161C94.6653 19.812 95.2698 21.4523 96.3703 22.7426C96.904 23.3451 97.5624 23.8243 98.2998 24.147C99.0371 24.4698 99.8358 24.6283 100.641 24.6117ZM127.581 25.6712C126.445 26.635 125.159 27.4056 123.773 27.9521C122.398 28.4538 120.943 28.7015 119.48 28.683C118.083 28.6902 116.699 28.4132 115.413 27.8688C114.168 27.3529 113.041 26.5895 112.1 25.6249C110.161 23.5996 109.082 20.9017 109.089 18.0976C109.079 16.6748 109.334 15.2626 109.843 13.9337C110.313 12.6966 111.018 11.5622 111.92 10.5934C112.837 9.62969 113.942 8.86497 115.167 8.34682C116.392 7.82866 117.71 7.56815 119.04 7.58151C120.334 7.56689 121.616 7.82366 122.804 8.33527C123.992 8.84688 125.06 9.60194 125.938 10.5517C126.817 11.5172 127.5 12.6437 127.951 13.869C128.45 15.2159 128.698 16.6428 128.682 18.0791V19.2218H113.623C113.806 20.7549 114.535 22.1707 115.677 23.2099C116.77 24.2428 118.221 24.8116 119.725 24.7968C120.651 24.8002 121.57 24.6274 122.431 24.2878C123.236 23.9848 123.965 23.5113 124.569 22.8999L127.581 25.6712ZM118.994 11.3059C118.354 11.294 117.717 11.4108 117.123 11.6492C116.529 11.8876 115.988 12.2428 115.533 12.6938C114.536 13.6975 113.887 14.9949 113.683 16.395H124.324C124.107 15.0096 123.459 13.7276 122.473 12.7308C122.019 12.2706 121.477 11.9072 120.879 11.6622C120.281 11.4173 119.64 11.2961 118.994 11.3059ZM131.337 28.2759V7.88685H135.936V11.2272C136.622 10.1019 137.575 9.16403 138.712 8.49755C139.842 7.86651 141.119 7.54718 142.413 7.57225C143.355 7.54099 144.292 7.70768 145.164 8.06153C146.037 8.41538 146.826 8.94851 147.479 9.62642C148.138 10.324 148.651 11.1453 148.989 12.0428C149.327 12.9402 149.484 13.8959 149.45 14.8544V28.2713H144.852V16.1498C144.91 14.8583 144.475 13.5929 143.635 12.6105C143.225 12.1641 142.723 11.8123 142.164 11.5798C141.605 11.3472 141.001 11.2396 140.396 11.2642C139.521 11.2526 138.658 11.4711 137.893 11.8981C137.118 12.3447 136.457 12.9637 135.959 13.707V28.2759H131.337ZM154.785 22.9045V11.5511H150.672V7.88685H154.785V4.70844L159.383 1.29407V7.88685H164.121V11.5511H159.383V21.8867C159.383 22.8922 159.599 23.6047 160.031 24.0241C160.463 24.4436 161.195 24.6534 162.229 24.6534C162.658 24.6567 163.087 24.6226 163.51 24.5516C164.015 24.4575 164.513 24.3292 165 24.1676V28.0307C164.355 28.2301 163.694 28.3741 163.024 28.461C162.37 28.549 161.71 28.5953 161.049 28.5998C159.019 28.5998 157.466 28.1186 156.39 27.1563C155.314 26.194 154.778 24.7767 154.785 22.9045ZM66.6681 9.48763C65.1876 8.21689 63.1396 7.58151 60.5241 7.58151C59.1392 7.58591 57.7598 7.75676 56.4157 8.09042C55.5404 8.30719 54.6797 8.57916 53.8387 8.90469V12.9251C54.8259 12.4616 55.8504 12.0824 56.9015 11.7916C57.7899 11.5487 58.7056 11.4197 59.6265 11.4076C61.1687 11.4076 62.3361 11.7531 63.1288 12.444C63.5322 12.8284 63.8468 13.2962 64.0506 13.8149C64.2544 14.3335 64.3424 14.8904 64.3085 15.4466V17.3388C63.4366 16.9253 62.5231 16.6058 61.5835 16.3858C60.6725 16.1806 59.7414 16.0781 58.8076 16.0804C56.4203 16.0804 54.5281 16.6217 53.1309 17.7043C52.4478 18.2797 51.9039 19.0025 51.5401 19.8182C51.1763 20.6339 51.0021 21.5214 51.0304 22.4141C51.0086 23.2615 51.1788 24.1029 51.5281 24.8752C51.8774 25.6475 52.3969 26.3309 53.0476 26.8741C54.3893 28.0276 56.1181 28.6028 58.2339 28.5998C59.3319 28.6126 60.4225 28.4196 61.4494 28.0307C62.5061 27.5964 63.4726 26.9688 64.2993 26.1801V28.2574H68.8564V14.9839C68.8626 12.6152 68.1331 10.7862 66.6681 9.4969V9.48763ZM64.3085 23.7095C63.6542 24.2639 62.9028 24.6921 62.0924 24.9726C61.2581 25.2476 60.3847 25.3851 59.5062 25.3797C58.4382 25.4329 57.3817 25.1391 56.4944 24.5423C56.1352 24.2968 55.843 23.9655 55.6443 23.5786C55.4456 23.1916 55.3466 22.7611 55.3562 22.3262C55.3445 21.8528 55.441 21.383 55.6382 20.9525C55.8354 20.5219 56.1282 20.1421 56.4944 19.8418C57.2531 19.3144 58.0813 19.0506 59.5895 19.0506C60.4213 19.0449 61.2518 19.1193 62.0693 19.2727C62.8449 19.4274 63.5974 19.6808 64.3085 20.0268V23.7095Z\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2238_42055\">\r\n <rect width=\"165\" height=\"28.689\" fill=\"white\" transform=\"translate(0 -0.00598145)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n }\r\n </picture>\r\n}\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsAscentLogoComponent } from './ascent-logo.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, NgOptimizedImage],\r\n exports: [AdsAscentLogoComponent],\r\n declarations: [AdsAscentLogoComponent],\r\n})\r\nexport class AdsAscentLogoModule {}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive()\r\nexport abstract class AbstractApplicationLogoComponent {\r\n /** @ignore */\r\n abstract readonly label: string;\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractApplicationLogoComponent } from './abstract-application-logo.component';\r\n\r\n@Component({\r\n selector: 'ads-scms-logo',\r\n styleUrls: ['application-logo.component.scss', 'scms-logo.component.scss'],\r\n templateUrl: 'scms-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsScmsLogoComponent extends AbstractApplicationLogoComponent {\r\n label = 'SCMS';\r\n}\r\n","<div class=\"logo-container\">\r\n <ads-ascent-logo [isCollapsed]=\"true\" />\r\n <ads-ascent-logo class=\"inverted\" [isCollapsed]=\"true\" [invertTheme]=\"true\" />\r\n <span class=\"title text-4xl-semibold\">{{ label }}</span>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsScmsLogoComponent } from './scms-logo.component';\r\nimport { AdsAscentLogoModule } from '../ascent-logo';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsAscentLogoModule],\r\n exports: [AdsScmsLogoComponent],\r\n declarations: [AdsScmsLogoComponent],\r\n})\r\nexport class AdsScmsLogoModule {}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractApplicationLogoComponent } from '../scms-logo/abstract-application-logo.component';\r\n\r\n@Component({\r\n selector: 'ads-generic-logo',\r\n styleUrls: ['../scms-logo/application-logo.component.scss', '../scms-logo/scms-logo.component.scss'],\r\n templateUrl: 'generic-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsGenericLogoComponent extends AbstractApplicationLogoComponent {\r\n label = 'GENERIC';\r\n}\r\n","<div class=\"logo-container\">\r\n <ads-ascent-logo [isCollapsed]=\"true\" />\r\n <ads-ascent-logo class=\"inverted\" [isCollapsed]=\"true\" [invertTheme]=\"true\" />\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsGenericLogoComponent } from './generic-logo.component';\r\nimport { AdsAscentLogoModule } from '../ascent-logo';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsAscentLogoModule],\r\n exports: [AdsGenericLogoComponent],\r\n declarations: [AdsGenericLogoComponent],\r\n})\r\nexport class AdsGenericLogoModule {}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractApplicationLogoComponent } from '../scms-logo/abstract-application-logo.component';\r\n\r\n@Component({\r\n selector: 'ads-peak-marketplace-logo',\r\n styleUrls: ['../scms-logo/application-logo.component.scss', 'peak-marketplace-logo.component.scss'],\r\n templateUrl: 'peak-marketplace-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsPeakMarketplaceLogoComponent extends AbstractApplicationLogoComponent {\r\n label = 'marketplace';\r\n}\r\n","<div class=\"logo-container\">\r\n <div class=\"logo-sub-container\">\r\n <ads-primary-logo [isCollapsed]=\"false\" [mobileWidth]=\"0\" />\r\n <span class=\"title\">{{ label }}</span>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsPeakMarketplaceLogoComponent } from './peak-marketplace-logo.component';\r\nimport { AdsPrimaryLogoModule } from '../primary-logo';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsPrimaryLogoModule],\r\n exports: [AdsPeakMarketplaceLogoComponent],\r\n declarations: [AdsPeakMarketplaceLogoComponent],\r\n})\r\nexport class AdsPeakMarketplaceLogoModule {}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractApplicationLogoComponent } from '../scms-logo/abstract-application-logo.component';\r\n\r\n@Component({\r\n selector: 'ads-peak-essentials-logo',\r\n styleUrls: [\r\n '../scms-logo/application-logo.component.scss',\r\n '../peak-marketplace-logo/peak-marketplace-logo.component.scss',\r\n ],\r\n templateUrl: '../peak-marketplace-logo/peak-marketplace-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsPeakEssentialsLogoComponent extends AbstractApplicationLogoComponent {\r\n label = 'essentials';\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsPeakEssentialsLogoComponent } from './peak-essentials-logo.component';\r\nimport { AdsPrimaryLogoModule } from '../primary-logo';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsPrimaryLogoModule],\r\n exports: [AdsPeakEssentialsLogoComponent],\r\n declarations: [AdsPeakEssentialsLogoComponent],\r\n})\r\nexport class AdsPeakEssentialsLogoModule {}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractApplicationLogoComponent } from '../scms-logo/abstract-application-logo.component';\r\n\r\n@Component({\r\n selector: 'ads-peak-order-management-logo',\r\n styleUrls: [\r\n '../scms-logo/application-logo.component.scss',\r\n '../peak-marketplace-logo/peak-marketplace-logo.component.scss',\r\n 'peak-order-management-logo.component.scss',\r\n ],\r\n templateUrl: '../peak-marketplace-logo/peak-marketplace-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsPeakOrderManagementLogoComponent extends AbstractApplicationLogoComponent {\r\n label = 'order management';\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsPeakOrderManagementLogoComponent } from './peak-order-management-logo.component';\r\nimport { AdsPrimaryLogoModule } from '../primary-logo';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsPrimaryLogoModule],\r\n exports: [AdsPeakOrderManagementLogoComponent],\r\n declarations: [AdsPeakOrderManagementLogoComponent],\r\n})\r\nexport class AdsPeakOrderManagementLogoModule {}\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconSortDescending } from '@ascentgl/ads-icons/icons';\r\n\r\ntype Theme = 'primary' | 'success' | 'medium';\r\n\r\n@Component({\r\n selector: 'ads-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsProgressBarComponent implements OnChanges {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register(adsIconSortDescending);\r\n }\r\n\r\n /**\r\n * The unique ID for the progress bar\r\n */\r\n @Input() id!: string;\r\n\r\n /**\r\n * Whether or not the progress bar is disabled\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Aria label for the progress element\r\n */\r\n @Input() ariaLabel!: string;\r\n\r\n /**\r\n * The max value of the progress bar\r\n */\r\n @Input() max = 100;\r\n\r\n /**\r\n * The value of the progress bar\r\n */\r\n @Input() value = 0;\r\n\r\n /**\r\n * @ignore\r\n * Only show the marker if the bar has progress and is not completed\r\n */\r\n get showMarker(): boolean {\r\n return this.value > 0 && this.value < this.max;\r\n }\r\n\r\n /** @ignore */\r\n public color: Theme = 'primary';\r\n\r\n /** @ignore */\r\n public markerPosition!: string;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.value > this.max) {\r\n console.warn(\r\n `The current value (${this.value}) of the progress bar is greater than the max (${this.max}). Did you forget to add the 'max' attribute?`,\r\n );\r\n }\r\n\r\n if (changes.value || changes.max) {\r\n this.color = this.getColor(this.value, this.max, this.disabled);\r\n this.markerPosition = this.getMarkerPosition(this.value, this.max);\r\n }\r\n\r\n if (changes.disabled) {\r\n this.color = this.getColor(this.value, this.max, this.disabled);\r\n }\r\n\r\n if (changes.ariaLabel) {\r\n this.ariaLabel = this.getLabel(this.max);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private getColor(value: number, max: number, disabled: boolean): Theme {\r\n return disabled ? 'medium' : value >= max ? 'success' : 'primary';\r\n }\r\n\r\n /** @ignore */\r\n private getLabel(max: number): string {\r\n return this.ariaLabel ?? `A bounded progress bar from 0 to ${max}`;\r\n }\r\n\r\n /** @ignore */\r\n private getMarkerPosition(value: number, max: number): string {\r\n return `calc(${(value / max) * 100}% + 5.5px)`;\r\n }\r\n}\r\n","<div class=\"progress-container\" [ngClass]=\"color\" [class.completed]=\"value >= max\">\r\n <div class=\"progress-marker\" [ngStyle]=\"{ width: markerPosition }\">\r\n @if(showMarker) {\r\n <ads-icon name=\"sort_descending\" size=\"xxxs\"/>\r\n }\r\n </div>\r\n <progress\r\n role=\"progressbar\"\r\n aria-valuemin=\"0\"\r\n [attr.aria-valuemax]=\"max\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [value]=\"value\"\r\n [max]=\"max\"\r\n [id]=\"id\"\r\n ></progress>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsProgressBarComponent } from './progress-bar.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsIconModule],\r\n declarations: [AdsProgressBarComponent],\r\n exports: [AdsProgressBarComponent],\r\n})\r\nexport class AdsProgressBarModule {}\r\n","import { ChangeDetectorRef, Component, ElementRef, HostListener, Input, OnInit } from '@angular/core';\r\nimport { DomHelper, GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\n\r\nexport enum SpinnerSize {\r\n xSmall = 'x-small',\r\n small = 'small',\r\n normal = 'normal',\r\n}\r\n\r\n@Component({\r\n selector: 'ads-progress-spinner',\r\n templateUrl: './progress-spinner.component.html',\r\n styleUrls: ['./progress-spinner.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsProgressSpinnerComponent implements OnInit {\r\n /** set spinner z-index */\r\n @Input() zIndex = 1;\r\n\r\n /** set spinner scrollContainer. This is useful when the spinner is inside dialog window **/\r\n @Input() scrollContainer: HTMLElement | 'auto' | 'none' = 'none';\r\n\r\n /** set spinner size */\r\n @Input() size: SpinnerSize = SpinnerSize.normal;\r\n\r\n /** set spinner diameter (overrides \"size\") */\r\n @Input() diameter?: number;\r\n\r\n computedDiameter = 100;\r\n isSticky = false;\r\n computedStyles?: CSSStyleDeclaration;\r\n\r\n private readonly sizes = {\r\n [SpinnerSize.xSmall]: 50,\r\n [SpinnerSize.small]: 70,\r\n [SpinnerSize.normal]: 100,\r\n };\r\n\r\n constructor(\r\n protected ref: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n ) {}\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n let scrollContainer: HTMLElement | Window | 'auto' | 'none' = this.scrollContainer;\r\n\r\n if (this.scrollContainer == 'auto') {\r\n scrollContainer = DomHelper.getScrollableParent(this.ref.nativeElement);\r\n }\r\n\r\n /**\r\n * if scroll container is HTMLElement, make spinner stick to it's dimensions\r\n */\r\n if (scrollContainer instanceof HTMLElement) {\r\n this.scrollContainer = scrollContainer;\r\n this.isSticky = true;\r\n this.computedStyles = getComputedStyle(scrollContainer);\r\n }\r\n\r\n if (this.diameter) {\r\n this.computedDiameter = this.diameter;\r\n } else {\r\n this.computedDiameter = this.sizes[this.size];\r\n }\r\n }\r\n\r\n /** @ignore */\r\n getOverlayStyles(): GENERIC_COLLECTION {\r\n const container = <HTMLElement>this.scrollContainer;\r\n\r\n const computedStyles: GENERIC_COLLECTION = this.computedStyles ?? {};\r\n\r\n /**\r\n * subtract .5px from width to avoid \"accidental\" appearance of scrollbars on resize\r\n */\r\n return {\r\n zIndex: this.zIndex,\r\n height: container.clientHeight + 'px',\r\n width: container.clientWidth - 0.5 + 'px',\r\n top: computedStyles.paddingTop ? '-' + computedStyles.paddingTop : 0,\r\n left: computedStyles.paddingLeft ? '-' + computedStyles.paddingLeft : 0,\r\n };\r\n }\r\n\r\n /**\r\n * @ignore\r\n * required for proper change detection\r\n * NOTE: REALLY REQUIRED\r\n */\r\n @HostListener('window:resize') resize(): void {\r\n /**\r\n * additional change detection allows to avoid overlay sizing issues when window is being resized\r\n */\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","@if (isSticky) {\r\n <div class=\"spinner-container\" [ngStyle]=\"{ zIndex }\">\r\n <div class=\"spinner-overlay\" [ngStyle]=\"getOverlayStyles()\">\r\n <mat-spinner [diameter]=\"computedDiameter\" aria-label=\"progress spinner\"></mat-spinner>\r\n </div>\r\n </div>\r\n} @else {\r\n <div class=\"spinner-overlay window\" [ngStyle]=\"{ zIndex }\">\r\n <mat-spinner [diameter]=\"computedDiameter\" aria-label=\"progress spinner\"></mat-spinner>\r\n </div>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsGestureModule } from '@ascentgl/ads-utils';\r\nimport { AdsProgressSpinnerComponent } from './progress-spinner.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [AdsProgressSpinnerComponent],\r\n imports: [CommonModule, AdsIconModule, AdsGestureModule, MatProgressSpinnerModule],\r\n exports: [AdsProgressSpinnerComponent],\r\n providers: [{ provide: Window, useValue: window }],\r\n})\r\nexport class AdsProgressSpinnerModule {}\r\n","export enum ProgressIndicatorSpinnerDefault {\r\n diameter = 52,\r\n padding = 11,\r\n fontSize = 20,\r\n max = 10,\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChange } from '@angular/core';\r\nimport { ProgressIndicatorSpinnerDefault } from './progress-indicator-spinner.types';\r\n\r\n@Component({\r\n selector: 'ads-progress-indicator-spinner',\r\n templateUrl: './progress-indicator-spinner.component.html',\r\n styleUrls: ['./progress-indicator-spinner.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsProgressIndicatorSpinnerComponent implements OnChanges {\r\n /** Spinner diameter in pixels. Default is 52. Cannot be less than 20 */\r\n @Input() diameter: number = ProgressIndicatorSpinnerDefault.diameter;\r\n\r\n /** Max progress value. Default is 10. Cannot be less than 0 */\r\n @Input() max: number = ProgressIndicatorSpinnerDefault.max;\r\n\r\n /** Current progress value. Cannot be less than 0 or more than \"max\"*/\r\n @Input() value = 0;\r\n\r\n /** Event emitted percentage is updated after value changes */\r\n @Output() percentageUpdated = new EventEmitter<number>();\r\n\r\n /** @ignore */\r\n percentage = 0;\r\n\r\n /** @ignore */\r\n readonly defaults: typeof ProgressIndicatorSpinnerDefault = ProgressIndicatorSpinnerDefault;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { value: SimpleChange; max: SimpleChange; diameter: SimpleChange }): void {\r\n if (changes.max) {\r\n this.calculateMax();\r\n }\r\n\r\n if (changes.value) {\r\n this.calculateValue();\r\n }\r\n\r\n if (changes.diameter) {\r\n this.calculateDiameter();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private calculateMax(): void {\r\n if (this.max < 1) {\r\n this.max = 1;\r\n }\r\n\r\n this.calculateValue();\r\n }\r\n\r\n /** @ignore */\r\n private calculateValue(): void {\r\n if (this.value < 0) {\r\n this.value = 0;\r\n }\r\n\r\n if (this.value > this.max) {\r\n this.value = this.max;\r\n }\r\n\r\n this.calculatePercentage();\r\n }\r\n\r\n /** @ignore */\r\n private calculatePercentage(): void {\r\n const newPercentage = Math.round((this.value * 100) / this.max);\r\n\r\n if (newPercentage != this.percentage) {\r\n this.percentage = newPercentage;\r\n this.percentageUpdated.emit(this.percentage);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private calculateDiameter(): void {\r\n if (this.diameter < 20) {\r\n this.diameter = 20;\r\n }\r\n }\r\n}\r\n","<!-- real padding will be calculated based on default padding and font size -->\r\n<div\r\n class=\"progress-indicator-wrapper\"\r\n [ngStyle]=\"{ padding: (diameter * defaults.padding) / defaults.diameter + 'px' }\"\r\n>\r\n <mat-spinner [mode]=\"'determinate'\" [diameter]=\"diameter\" [value]=\"percentage\"></mat-spinner>\r\n <!-- real font size is calculated based on default diameter and font size -->\r\n <div\r\n class=\"progress-value\"\r\n [ngStyle]=\"{\r\n fontSize: (diameter * defaults.fontSize) / defaults.diameter + 'px',\r\n width: diameter + 'px',\r\n height: diameter + 'px',\r\n }\"\r\n >\r\n <!-- hidden value is used to calculate visible value scale -->\r\n <span class=\"hidden-value\" #hiddenValue>{{ value }}</span>\r\n <!-- scale value only if it has more than 3 characters -->\r\n <!-- the text should not be wider than 70% of diameter -->\r\n <span\r\n class=\"visible-value\"\r\n [ngStyle]=\"{\r\n scale: hiddenValue.textContent!.length > 3 ? (this.diameter * 0.7) / hiddenValue.clientWidth : 1,\r\n }\"\r\n >{{ value }}</span\r\n >\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsProgressIndicatorSpinnerComponent } from './progress-indicator-spinner.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [AdsProgressIndicatorSpinnerComponent],\r\n imports: [CommonModule, MatProgressSpinnerModule],\r\n exports: [AdsProgressIndicatorSpinnerComponent],\r\n})\r\nexport class AdsProgressIndicatorSpinnerModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-shell-layout',\r\n templateUrl: './shell-layout.component.html',\r\n styleUrls: ['./shell-layout.component.scss'],\r\n standalone: false,\r\n})\r\nexport class ShellLayoutComponent {\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed = false;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n}\r\n","<!-- <div class=\"shell\" [class.mobile]=\"isMobile\" [class.collapsed]=\"isCollapsed\">\r\n <div class=\"shell-container\">\r\n <ng-content select=\"[navigation]\"></ng-content>\r\n <div class=\"shell-header\">\r\n <ng-content select=\"[header]\"></ng-content> \r\n <main class=\"main-content\">\r\n <ng-content></ng-content>\r\n </main>\r\n <ng-content select=\"[widgetbar]\"></ng-content>\r\n </div>\r\n </div>\r\n <ng-content select=\"[footer]\"></ng-content>\r\n</div> -->\r\n\r\n<div class=\"shell\" [class.mobile]=\"isMobile\" [class.collapsed]=\"isCollapsed\">\r\n <div class=\"container\">\r\n <ng-content select=\"[header]\"></ng-content>\r\n <main class=\"main-content\">\r\n <ng-content></ng-content>\r\n </main>\r\n <ng-content select=\"[widgetbar]\"></ng-content>\r\n </div>\r\n <ng-content select=\"[footer]\"></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ShellLayoutComponent } from './shell-layout.component';\r\n\r\n@NgModule({\r\n declarations: [ShellLayoutComponent],\r\n exports: [ShellLayoutComponent],\r\n imports: [CommonModule],\r\n})\r\nexport class AdsShellLayoutModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-splash-page',\r\n templateUrl: './splash-page.component.html',\r\n styleUrls: ['./splash-page.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsSplashPageComponent {\r\n /**\r\n * Alt text for the logo\r\n */\r\n @Input() alt!: string;\r\n\r\n /**\r\n * Logo to display\r\n */\r\n @Input() imageSrc!: string;\r\n @Input() text = 'Coming Soon';\r\n}\r\n","<div class=\"splash-page-container\">\r\n <img [src]=\"imageSrc\" [alt]=\"alt\" />\r\n <h1>{{ text }}</h1>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsSplashPageComponent } from './splash-page.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [AdsSplashPageComponent],\r\n exports: [AdsSplashPageComponent],\r\n})\r\nexport class AdsSplashPageModule {}\r\n","import { AfterViewInit, DestroyRef, Directive, inject, Input, OnChanges, SimpleChange } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport {\r\n adsIconCheckCircleFilled,\r\n adsIconWarning,\r\n adsIconVisibilityEye,\r\n adsIconVisibilityEyeNone,\r\n adsIconStatusProcessing,\r\n adsIconSearch,\r\n} from '@ascentgl/ads-icons/icons';\r\nimport { AbstractControl, FormControl, TouchedChangeEvent, Validators } from '@angular/forms';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { asapScheduler } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Directive()\r\nexport abstract class AbstractBaseComponent implements OnChanges, AfterViewInit {\r\n /** Form control, associated with input field */\r\n @Input() set control(control: AbstractControl | null) {\r\n /**\r\n * NOTE: we use setter and internal \"valueControl\" here\r\n * to allow pass children of FormGroup (which are all typed as AbstractControl instances)\r\n *\r\n */\r\n if (control instanceof FormControl) {\r\n this.valueControl = control;\r\n\r\n const subscription = this.valueControl.events\r\n .pipe(filter((event) => event instanceof TouchedChangeEvent))\r\n .subscribe((event) => {\r\n if (event.touched) {\r\n this.syncState();\r\n this.displayControl.updateValueAndValidity({ emitEvent: false });\r\n }\r\n });\r\n\r\n this.destroyRef.onDestroy(() => subscription.unsubscribe());\r\n } else {\r\n throw Error('Control must be a \"FormControl\" instance');\r\n }\r\n }\r\n\r\n /** @ignore */\r\n displayControl: FormControl = new FormControl();\r\n\r\n /** If true, invalid field will immediately become dirty to display the error */\r\n @Input() immediateValidation = false;\r\n\r\n /** Object, containing key=>value pairs for errors and their translated messages */\r\n @Input() errorMessages: GENERIC_COLLECTION<string> = {};\r\n\r\n /** Hint message, displayed under the control */\r\n @Input() hint?: string;\r\n\r\n /** Success message, displayed under the control */\r\n @Input() successMessage?: string;\r\n\r\n /** Optional \"id\" attribute for input field */\r\n @Input() id = '';\r\n\r\n /** Optional control field label */\r\n @Input() label?: string;\r\n\r\n /** @ignore */\r\n @Input() showFooter = true;\r\n\r\n /** @ignore */\r\n protected registry: AdsIconRegistry = inject(AdsIconRegistry);\r\n\r\n private destroyRef = inject(DestroyRef);\r\n\r\n /** @ignore */\r\n get required() {\r\n return this.valueControl.hasValidator(Validators.required);\r\n }\r\n\r\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\r\n @Input() width = '100%';\r\n\r\n /** @ignore */\r\n valueControl: FormControl = new FormControl();\r\n\r\n /** @ignore */\r\n protected readonly genericError: string = 'Something went wrong';\r\n\r\n /** @ignore */\r\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {};\r\n\r\n /** @ignore */\r\n protected readonly requiredErrorMessage: string = 'Field is <strong>required</strong>';\r\n\r\n constructor() {\r\n this.registry.register([\r\n adsIconWarning,\r\n adsIconWarning,\r\n adsIconCheckCircleFilled,\r\n adsIconVisibilityEye,\r\n adsIconVisibilityEyeNone,\r\n adsIconStatusProcessing,\r\n adsIconSearch,\r\n ]);\r\n }\r\n\r\n ngOnChanges(changes: { immediateValidation: SimpleChange }): void {\r\n if (changes.immediateValidation && !changes.immediateValidation.isFirstChange()) {\r\n this.ngAfterViewInit();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n this.touchInvalid(this.valueControl);\r\n }\r\n\r\n /** @ignore */\r\n displayFirstError(control: FormControl = this.valueControl): string {\r\n if (!control.errors) return this.genericError;\r\n\r\n /**\r\n * NOTE: we are showing only the first error in a row\r\n */\r\n const firstErrorKey: string = Object.keys(control.errors)[0];\r\n\r\n /**\r\n * merge defaultErrorMessages, required error messages (which is always available)\r\n * and configured errorMessages\r\n */\r\n const errorMessages: GENERIC_COLLECTION<string> = {\r\n ...this.defaultErrorMessages,\r\n ...{ required: this.requiredErrorMessage },\r\n ...this.errorMessages,\r\n };\r\n\r\n if (typeof errorMessages[firstErrorKey] === 'string') {\r\n return errorMessages[firstErrorKey];\r\n } else {\r\n console.warn(`No translation for error ${firstErrorKey}`);\r\n return `${this.genericError} (${firstErrorKey})`;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected touchInvalid(control: FormControl): void {\r\n if (this.immediateValidation) {\r\n asapScheduler.schedule(() => control.markAsTouched({ onlySelf: true }));\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected syncState(): void {\r\n if (this.displayControl.disabled !== this.valueControl.disabled) {\r\n if (this.valueControl.disabled) {\r\n this.displayControl.disable();\r\n } else {\r\n this.displayControl.enable();\r\n }\r\n }\r\n\r\n if (this.valueControl.pristine) {\r\n this.displayControl.markAsPristine();\r\n }\r\n\r\n if (this.valueControl.untouched) {\r\n /**\r\n * if displayControl is touched and contains invalid value - clear it up before marking it as untouched\r\n * NOTE: this is required to properly reset displayControl when valueControl is reset\r\n */\r\n if (this.displayControl.touched && this.displayControl.invalid) {\r\n this.displayControl.setValue(null, { emitEvent: false });\r\n }\r\n this.displayControl.markAsUntouched();\r\n } else if (this.displayControl.untouched) {\r\n this.displayControl.markAsTouched();\r\n }\r\n\r\n if (this.valueControl.valid !== this.displayControl.valid) {\r\n this.displayControl.setErrors(this.valueControl.errors);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n canShowError(): boolean {\r\n return !!this.valueControl.errors && (this.valueControl.touched || this.immediateValidation);\r\n }\r\n\r\n /** @ignore */\r\n canShowSuccess(): boolean {\r\n return !this.valueControl.errors && this.valueControl.touched && !!this.successMessage;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { AbstractBaseComponent } from './abstract.base.component';\r\n\r\nexport type FieldSize = 'base' | 'xs';\r\n\r\n@Directive()\r\nexport abstract class AbstractInputComponent extends AbstractBaseComponent {\r\n @Input() showExclamationOnError = false;\r\n\r\n /** If true, clear button will appear in the input if it is not empty */\r\n @Input() showClearButton = false;\r\n\r\n /** Tooltip message, displayed over tooltip icon */\r\n @Input() tooltip?: string;\r\n\r\n /** Empty input field placeholder */\r\n @Input() placeholder = '';\r\n\r\n /** Whether the Input is a smaller version */\r\n @Input() size: FieldSize = 'base';\r\n\r\n /** Href for the Tooltip */\r\n @Input() tooltipHref?: string;\r\n\r\n /** @ignore */\r\n get showExclamation() {\r\n return this.showExclamationOnError && this.valueControl.invalid && this.valueControl.touched;\r\n }\r\n\r\n /** @ignore */\r\n get canClear() {\r\n return this.showClearButton && !!this.valueControl.value;\r\n }\r\n\r\n /** @ignore */\r\n clear(event: MouseEvent): void {\r\n this.valueControl.setValue(null);\r\n\r\n this.valueControl.markAsTouched();\r\n\r\n /**\r\n * stop even propagation so that calendar won't open on \"clear\" button click\r\n */\r\n event.stopPropagation();\r\n }\r\n\r\n /** @ignore */\r\n get smallSize(): boolean {\r\n return this.size === 'xs';\r\n }\r\n}\r\n","import { Directive, Input, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractInputComponent } from './abstract.input.component';\r\nimport { GENERIC_COLLECTION, ObjectHelper } from '@ascentgl/ads-utils';\r\n\r\nexport type DropdownComponentOption = string | number | GENERIC_COLLECTION | null | boolean;\r\n\r\nexport type DropdownComponentOptions =\r\n | DropdownComponentOption[]\r\n | GENERIC_COLLECTION<DropdownComponentOption>\r\n | Map<DropdownComponentOption, DropdownComponentOption>;\r\n\r\nexport type DropdownComponentDisplayedOptions = Map<DropdownComponentOption, string>;\r\n\r\n@Directive()\r\nexport abstract class AbstractDropdownComponent extends AbstractInputComponent implements OnDestroy {\r\n /** If options contain objects, provide object property name that will be used as display value in dropdown */\r\n @Input() displayValueKey?: string;\r\n\r\n /** Enable/disable options sorting */\r\n @Input() sortOptions = true;\r\n\r\n /** Set to true if you want dropdown items to fit content rather than dropdown width */\r\n @Input() fitContent = false;\r\n\r\n /** Set to true if you want to enable option tooltip */\r\n @Input() showTooltip?: boolean;\r\n\r\n /** Set to true to wrap option text to new line when there's not enough space */\r\n @Input() wrapOptionText = false;\r\n\r\n /** @ignore */\r\n public displayedOptions: DropdownComponentDisplayedOptions = new Map();\r\n\r\n /** @ignore */\r\n protected controlSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n protected readonly genericDisplayedValue: string = '-UNSET-';\r\n\r\n /** @ignore */\r\n protected readonly noDisplayedValueWarning: string = 'No display value is set for select box option';\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.unsubscribeFromControl();\r\n }\r\n\r\n /** @ignore */\r\n applySorting = (\r\n a: { key: DropdownComponentOption; value: string },\r\n b: {\r\n key: DropdownComponentOption;\r\n value: string;\r\n },\r\n ): number => (this.sortOptions ? a.value.localeCompare(b.value) : 0);\r\n\r\n /** @ignore */\r\n protected processOptions(options?: DropdownComponentOptions): void {\r\n this.displayedOptions = new Map();\r\n\r\n if (!options) {\r\n return;\r\n }\r\n\r\n /**\r\n * if options is an array - use option as key and extract displayed value from option;\r\n * if options is a map - use key as key and extract displayed value from option;\r\n * if options is an object - use object keys as keys and extract displayed value from value\r\n */\r\n if (options instanceof Array) {\r\n options.forEach((option) => this.displayedOptions.set(option, this.getDisplayedValue(option)));\r\n } else if (options instanceof Map) {\r\n options.forEach((option, key) => this.displayedOptions.set(key, this.getDisplayedValue(option)));\r\n } else {\r\n for (const key in options) {\r\n this.displayedOptions.set(key, this.getDisplayedValue(options[key]));\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected unsubscribeFromControl() {\r\n this.controlSubscription?.unsubscribe();\r\n }\r\n\r\n /** @ignore */\r\n protected getDisplayedValue(\r\n option: DropdownComponentOption,\r\n displayValueKey: string | undefined = this.displayValueKey,\r\n originalOption?: DropdownComponentOption,\r\n ): string {\r\n if (!originalOption) {\r\n originalOption = option;\r\n }\r\n\r\n if (option === null || option === undefined) {\r\n return '';\r\n } else if (typeof option == 'string') {\r\n return option;\r\n } else if (typeof option == 'number' || typeof option == 'boolean') {\r\n return option.toString();\r\n } else if (displayValueKey) {\r\n /**\r\n * break displayValueKey into parts to be able to drill down the option properties and sub properties\r\n */\r\n const parts = displayValueKey.split('.');\r\n\r\n /**\r\n * extract first part of displayValueKey\r\n */\r\n const firstPart = parts.shift() ?? '';\r\n\r\n /**\r\n * if we still have parts and option property is not an object - display generic value\r\n * (we won't be able to drill down anymore)\r\n */\r\n if (parts.length && !ObjectHelper.isObject(option[firstPart])) {\r\n return this.getGenericDisplayedValue(originalOption);\r\n }\r\n\r\n /**\r\n * extract displayedValue from the next level of option, if possible\r\n */\r\n return this.getDisplayedValue(option[firstPart], parts.join('.'), originalOption);\r\n } else {\r\n return this.getGenericDisplayedValue(originalOption);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected getGenericDisplayedValue(option: DropdownComponentOption): string {\r\n console.warn(this.noDisplayedValueWarning, option);\r\n return this.genericDisplayedValue;\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { AdsIconModule, AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconInformation } from '@ascentgl/ads-icons/icons';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Component({\r\n selector: 'ads-input-tooltip',\r\n template: `\r\n @if (href()) {\r\n <a [href]=\"href()\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n <ads-icon\r\n [matTooltip]=\"tooltip()\"\r\n [matTooltipPosition]=\"'above'\"\r\n [name]=\"'information'\"\r\n [size]=\"smallSize() ? 'xxs' : 'sm'\"\r\n [theme]=\"'secondary'\"\r\n [style.top]=\"iconPosition\"\r\n class=\"clickable\"\r\n />\r\n </a>\r\n } @else {\r\n <ads-icon\r\n [matTooltip]=\"tooltip()\"\r\n [matTooltipPosition]=\"'above'\"\r\n [name]=\"'information'\"\r\n [size]=\"smallSize() ? 'xxs' : 'sm'\"\r\n [theme]=\"'secondary'\"\r\n [style.top]=\"iconPosition\"\r\n />\r\n }\r\n `,\r\n styles: `\r\n ads-icon {\r\n position: relative;\r\n top: 12px;\r\n }\r\n .clickable {\r\n cursor: pointer;\r\n }\r\n a {\r\n text-decoration: none;\r\n }\r\n `,\r\n imports: [AdsIconModule, MatTooltip],\r\n})\r\nexport class AdsInputTooltipComponent {\r\n tooltip = input.required<string>();\r\n\r\n smallSize = input<boolean>(false);\r\n\r\n href = input<string>();\r\n\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register([adsIconInformation]);\r\n }\r\n\r\n get iconPosition(): string {\r\n return this.smallSize() ? '3px' : '12px';\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { MatError } from '@angular/material/form-field';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@Component({\r\n selector: 'ads-error',\r\n templateUrl: './error.component.html',\r\n styleUrls: ['./error.component.scss'],\r\n imports: [MatError, AdsIconModule],\r\n animations: [\r\n trigger('fadeInOut', [\r\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => *', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms ease-in')]),\r\n ]),\r\n ],\r\n})\r\nexport class AdsErrorComponent {\r\n /** Set text to show error */\r\n error = input.required<string>();\r\n}\r\n","<mat-error class=\"mat-error\" [@fadeInOut]>\r\n <div class=\"error\">\r\n <ads-icon [name]=\"'warning'\" [size]=\"'xxs'\" [theme]=\"'warn'\" [stroke]=\"'warn'\" />\r\n <span [innerHTML]=\"error()\"></span>\r\n </div>\r\n</mat-error>\r\n","import { Component, input, OnInit } from '@angular/core';\r\nimport { MatHint } from '@angular/material/form-field';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ads-hint',\r\n template: `<mat-hint [@fadeInOut]=\"state\" [innerHTML]=\"hint()\" />`,\r\n styleUrls: ['./hint.component.scss'],\r\n imports: [MatHint],\r\n animations: [\r\n trigger('fadeInOut', [\r\n state('off', style({ opacity: 1, transform: 'translateX(0)' })),\r\n state('on', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => on', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms linear')]),\r\n ]),\r\n ],\r\n})\r\nexport class AdsHintComponent implements OnInit {\r\n control = input.required<FormControl>();\r\n hint = input.required<string>();\r\n\r\n state = 'off';\r\n\r\n ngOnInit(): void {\r\n if (this.control().touched) {\r\n this.state = 'on';\r\n }\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@Component({\r\n selector: 'ads-success',\r\n templateUrl: './success.component.html',\r\n styleUrls: ['./success.component.scss'],\r\n imports: [AdsIconModule],\r\n animations: [\r\n trigger('fadeInOut', [\r\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => *', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms ease-in')]),\r\n ]),\r\n ],\r\n})\r\nexport class AdsSuccessComponent {\r\n /** Set text to show success */\r\n success = input.required<string>();\r\n}\r\n","<div [@fadeInOut] class=\"container\">\r\n <div class=\"success\">\r\n <ads-icon name=\"check_circle_filled\" size=\"xxs\" color=\"--color-success\" stroke=\"white\" />\r\n <span [innerHTML]=\"success()\"></span>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnChanges, OnInit, SimpleChange } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { AbstractBaseComponent } from '../../abstracts/abstract.base.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ads-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss', '../../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsCheckboxComponent extends AbstractBaseComponent implements OnInit, OnChanges {\r\n /** Set to \"true\" to make the checkbox indeterminate */\r\n @Input() indeterminate = false;\r\n\r\n @Input() width = 'fit-content';\r\n\r\n /** @ignore */\r\n private valueChangeSub?: Subscription;\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.valueChangeSub = this.valueControl.valueChanges.subscribe(() => {\r\n if (!this.valueControl.dirty) {\r\n this.valueControl.markAsDirty();\r\n }\r\n\r\n if (!this.valueControl.touched) {\r\n this.valueControl.markAsTouched();\r\n }\r\n\r\n // Only want this to happen once\r\n this.valueChangeSub?.unsubscribe();\r\n });\r\n }\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { required: SimpleChange; immediateValidation: SimpleChange }): void {\r\n if (changes.required) {\r\n if (this.required) {\r\n this.valueControl.addValidators(Validators.required);\r\n } else {\r\n this.valueControl.removeValidators(Validators.required);\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n toggleCheck(): void {\r\n if (this.valueControl.disabled) return;\r\n\r\n if (this.indeterminate) {\r\n this.indeterminate = false;\r\n }\r\n this.valueControl.setValue(!this.valueControl.value);\r\n }\r\n}\r\n"," <div [ngStyle]=\"{ width: width }\">\r\n <div class=\"ads-checkbox\" (click)=\"toggleCheck()\" [ngClass]=\"{ disabled: valueControl.disabled }\">\r\n <div class=\"checkbox-ripple\">\r\n <div class=\"checkbox-container\">\r\n @if (valueControl.value && !indeterminate) {\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"14\"\r\n height=\"12\"\r\n viewBox=\"0 0 14 12\"\r\n fill=\"none\"\r\n class=\"check-icon\"\r\n >\r\n <path d=\"M2 6L5.75 10.5L12 1.5\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n }\r\n\r\n @if (indeterminate) {\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"12\"\r\n height=\"4\"\r\n viewBox=\"0 0 12 4\"\r\n fill=\"none\"\r\n class=\"indeterminate-icon\"\r\n >\r\n <path\r\n d=\"M11.5385 0.5H0.461538C0.206638 0.5 0 0.723858 0 1V3C0 3.27614 0.206638 3.5 0.461538 3.5H11.5385C11.7934 3.5 12 3.27614 12 3V1C12 0.723858 11.7934 0.5 11.5385 0.5Z\"\r\n />\r\n </svg>\r\n }\r\n </div>\r\n </div>\r\n @if (label) {\r\n <span class=\"checkbox-label\">{{ label }}</span>\r\n }\r\n </div>\r\n\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component, Input, OnChanges, SimpleChange, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { GENERIC_COLLECTION, ObjectHelper } from '@ascentgl/ads-utils';\r\nimport {\r\n AbstractDropdownComponent,\r\n DropdownComponentOption,\r\n DropdownComponentOptions,\r\n} from '../../abstracts/abstract.dropdown.component';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { adsIconChevronDown, adsIconCross, adsIconWarning } from '@ascentgl/ads-icons/icons';\r\nimport { Colors } from '../../../general/color-palette/colors.enums';\r\n\r\n@Component({\r\n selector: 'ads-dropdown',\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n './dropdown.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsDropdownComponent extends AbstractDropdownComponent implements OnChanges {\r\n /** Provide function that will allow to calculate option display value */\r\n @Input() displayValueFormatter?: ((option: DropdownComponentOption) => string) | undefined;\r\n\r\n /** Set dropdown mode \"normal\" or \"pill\" */\r\n @Input() mode: 'normal' | 'pill' = 'normal';\r\n\r\n /** Set to true to add empty value to the dropdown */\r\n @Input() hasEmptyValue = false;\r\n\r\n /** Set to true if you want to show a checkmark near selected option */\r\n @Input() checkSelected = true;\r\n\r\n /** Contains dropdown options */\r\n @Input() options?: DropdownComponentOptions;\r\n\r\n /** Custom Option Template */\r\n @Input() optionTemplate?: TemplateRef<unknown>;\r\n\r\n /** Custom Trigger Template */\r\n @Input() triggerTemplate?: TemplateRef<unknown>;\r\n\r\n /** Custom Panel Class */\r\n @Input() panelClass?: string;\r\n\r\n /** @ignore */\r\n @ViewChild('panel') panel?: MatSelect;\r\n\r\n /** @ignore */\r\n readonly isMultiselect: boolean = false;\r\n\r\n /** @ignore */\r\n readonly showChips: boolean = false;\r\n\r\n /** @ignore */\r\n displayedOptionsArray: DropdownComponentOption[] = [];\r\n\r\n /** @ignore */\r\n protected readonly Colors = Colors;\r\n\r\n /** @ignore */\r\n protected readonly FormControl = FormControl;\r\n\r\n constructor() {\r\n super();\r\n this.registry.register([adsIconCross, adsIconChevronDown, adsIconWarning]);\r\n }\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\r\n if (changes.options) {\r\n this.processOptions();\r\n this.mapControlValue();\r\n }\r\n }\r\n\r\n onOptionRemoved(option: DropdownComponentOption) {\r\n const copy = [...this.valueControl.value];\r\n const index = copy.indexOf(option);\r\n\r\n if (index > -1) {\r\n copy.splice(index, 1);\r\n this.valueControl.setValue(copy);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onOpened() {\r\n const selected = this.panel?.selected;\r\n\r\n if (selected instanceof MatOption) {\r\n (<GENERIC_COLLECTION>selected)._element.nativeElement?.scrollIntoView({ block: 'center' });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected processOptions(): void {\r\n this.displayedOptionsArray = [];\r\n /**\r\n * turn DropdownComponentOptions into DropdownComponentDisplayedOptions\r\n */\r\n super.processOptions(this.options);\r\n\r\n this.displayedOptionsArray = Array.from(this.displayedOptions.keys()).sort(this.applyArraySorting);\r\n\r\n this.setControlValueSubscription();\r\n }\r\n\r\n /** @ignore */\r\n protected setControlValueSubscription(): void {\r\n /**\r\n * if the first option key is an object - subscribe to control\r\n * to make sure it's value is always a valid object\r\n */\r\n if (ObjectHelper.isObject(this.displayedOptions.keys().next().value)) {\r\n this.subscribeToControl();\r\n } else {\r\n this.unsubscribeFromControl();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n /**\r\n * NOTE: this method is needed because if control value is an object, it MUST reference the same\r\n * object as corresponding dropdown option, thus here we replace dropdown option with control value if needed\r\n */\r\n protected mapControlValue(control: FormControl = this.valueControl): void {\r\n this.replaceDisplayedOptionWithControlValue(control.value);\r\n }\r\n\r\n /** @ignore */\r\n protected subscribeToControl(control: FormControl = this.valueControl): void {\r\n this.unsubscribeFromControl();\r\n\r\n this.controlSubscription = control?.valueChanges.subscribe(() => {\r\n this.mapControlValue(control);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n protected replaceDisplayedOptionWithControlValue(controlValue: DropdownComponentOption): void {\r\n /**\r\n * if control value is not an object - we don't need to continue\r\n */\r\n if (!ObjectHelper.isObject(controlValue)) return;\r\n\r\n /**\r\n * if displayed options already contain control value - we don't need to continue\r\n */\r\n if (this.displayedOptions.get(controlValue)) return;\r\n\r\n /**\r\n * loop through displayed options\r\n */\r\n for (const [key, value] of this.displayedOptions) {\r\n /**\r\n * if displayed option key is an object, and it is equal to control value - we need to replace\r\n * displayed option key with control value to ensure that objects can be matched\r\n * NOTE in order to object1 === object2 it must be THE SAME object\r\n */\r\n if (\r\n ObjectHelper.isObject(key) &&\r\n ObjectHelper.deepEqual(<GENERIC_COLLECTION>controlValue, <GENERIC_COLLECTION>key)\r\n ) {\r\n /**\r\n * delete existing entry from displayedOptions\r\n */\r\n this.displayedOptions.delete(key);\r\n\r\n /**\r\n * add new entry to map\r\n */\r\n this.displayedOptions.set(controlValue, value);\r\n\r\n return;\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected getGenericDisplayedValue(option: DropdownComponentOption): string {\r\n if (!this.displayValueFormatter && !this.triggerTemplate) {\r\n console.warn(this.noDisplayedValueWarning, option);\r\n }\r\n\r\n return this.genericDisplayedValue;\r\n }\r\n\r\n /** @ignore */\r\n private applyArraySorting = (a: DropdownComponentOption, b: DropdownComponentOption): number => {\r\n if (this.sortOptions) {\r\n const val1 = this.displayedOptions.get(a);\r\n const val2 = this.displayedOptions.get(b);\r\n\r\n if (val1 && val2) {\r\n return val1.localeCompare(val2);\r\n }\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n /** @ignore */\r\n chipName(option: MatOption): string {\r\n return (this.displayValueFormatter ? this.displayValueFormatter(option) : this.displayedOptions.get(option)) || '';\r\n }\r\n\r\n /** @ignore */\r\n toggleOption(option: DropdownComponentOption) {\r\n const currentValue = this.valueControl.value || [];\r\n const index = currentValue.indexOf(option);\r\n\r\n if (index === -1) {\r\n currentValue.push(option);\r\n } else {\r\n currentValue.splice(index, 1);\r\n }\r\n\r\n this.valueControl.setValue([...currentValue]); // Ensure the form control is updated\r\n }\r\n\r\n /** @ignore */\r\n isOptionSelected(option: DropdownComponentOption): boolean {\r\n if (!this.isMultiselect) {\r\n return this.valueControl.value === option;\r\n }\r\n const currentValue = this.valueControl.value || [];\r\n return currentValue.indexOf(option) !== -1;\r\n }\r\n\r\n /** @ignore */\r\n createCheckboxControl(option: DropdownComponentOption): FormControl {\r\n return new FormControl(this.isOptionSelected(option));\r\n }\r\n\r\n /** @ignore */\r\n onCheckboxChange(option: DropdownComponentOption) {\r\n this.toggleOption(option); // Update the option on checkbox change\r\n }\r\n\r\n /** @ignore */\r\n get panelClassList(): string {\r\n return [\r\n 'ads-dropdown-panel',\r\n this.fitContent ? 'fit-content' : '',\r\n this.panelClass || ''\r\n ].join(' ');\r\n }\r\n\r\n /** @ignore */\r\n isDropdownOptionObject(option: any): option is { disableDropdownOption?: boolean } {\r\n return option && typeof option === 'object' && 'disableDropdownOption' in option && option.disableDropdownOption === true;\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n (click)=\"onOpened()\"\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'no-left-padding': !showExclamation,\r\n pill: mode === 'pill',\r\n chips: showChips && isMultiselect,\r\n 'success-label': canShowSuccess(),\r\n 'error-label': canShowError(),\r\n 'x-small': smallSize,\r\n 'wrap-trigger-text': wrapOptionText,\r\n 'has-label': !!label\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if ((!showChips || valueControl.value.length === 0) && (label || required) && !smallSize) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <!-- is required in placeholder for smoother animation -->\r\n <mat-select\r\n #panel\r\n [disableRipple]=\"true\"\r\n [id]=\"id\"\r\n [placeholder]=\"placeholder || ' '\"\r\n [panelClass]=\"panelClassList\"\r\n [disableOptionCentering]=\"true\"\r\n [required]=\"required\"\r\n [formControl]=\"valueControl\"\r\n [multiple]=\"isMultiselect\"\r\n >\r\n @if (showChips && isMultiselect) {\r\n <mat-select-trigger>\r\n <div class=\"tag-container\">\r\n @for (option of valueControl.value; track $index) {\r\n <ads-tag\r\n [tag]=\"chipName(option)\"\r\n [color]=\"Colors.Medium\"\r\n [id]=\"'' + $index\"\r\n (remove)=\"onOptionRemoved(option)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n }\r\n </div>\r\n </mat-select-trigger>\r\n } @else if (triggerTemplate) {\r\n <mat-select-trigger>\r\n <ng-container *ngTemplateOutlet=\"triggerTemplate; context: { option: valueControl.value }\" />\r\n </mat-select-trigger>\r\n }\r\n\r\n @if (hasEmptyValue) {\r\n <mat-option [value]=\"undefined\"></mat-option>\r\n }\r\n\r\n @for (option of displayedOptionsArray; track $index) {\r\n <mat-option\r\n [id]=\"id + '-option-' + ($index + 1)\"\r\n [value]=\"option\"\r\n [ngClass]=\"{\r\n checkbox: isMultiselect && checkSelected,\r\n 'wrap-text': wrapOptionText,\r\n }\"\r\n [matTooltip]=\"displayValueFormatter ? displayValueFormatter(option) : displayedOptions.get(option)\"\r\n [matTooltipDisabled]=\"!showTooltip\"\r\n [disabled]=\"isDropdownOptionObject(option)\"\r\n >\r\n @if (optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { option }\" />\r\n } @else if (isMultiselect && checkSelected) {\r\n <ads-checkbox\r\n [showFooter]=\"false\"\r\n width=\"100%\"\r\n [control]=\"createCheckboxControl(option)\"\r\n (change)=\"onCheckboxChange(option)\"\r\n [label]=\"displayValueFormatter ? displayValueFormatter(option) : displayedOptions.get(option)\"\r\n />\r\n } @else {\r\n <span\r\n [ngClass]=\"{ 'wrap-text': wrapOptionText }\"\r\n [innerHTML]=\"displayValueFormatter ? displayValueFormatter(option) : displayedOptions.get(option)\"\r\n ></span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-select>\r\n\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\r\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\r\n </button>\r\n }\r\n <button matTextSuffix type=\"button\" mat-icon-button class=\"action-icon\">\r\n <ads-icon\r\n matTextSuffix\r\n name=\"chevron_down\"\r\n [size]=\"smallSize ? 'xxs' : 'xs'\"\r\n [theme]=\"'iconPrimary'\"\r\n class=\"chevron-down\"\r\n />\r\n </button>\r\n </mat-form-field>\r\n\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsCheckboxComponent } from './checkbox.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n AdsHintComponent,\r\n AdsErrorComponent,\r\n AdsInputTooltipComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsCheckboxComponent],\r\n exports: [AdsCheckboxComponent],\r\n})\r\nexport class AdsCheckboxModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { AdsDropdownComponent } from './dropdown.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { AdsTagModule } from '../../../tags/tag';\r\nimport { AdsCheckboxModule } from '../../selection-fields/checkbox';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n AdsIconModule,\r\n MatInputModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n MatIcon,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n AdsTagModule,\r\n AdsCheckboxModule,\r\n MatTooltipModule,\r\n ],\r\n declarations: [AdsDropdownComponent],\r\n exports: [AdsDropdownComponent],\r\n})\r\nexport class AdsDropdownModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsDropdownComponent } from '../dropdown';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DropdownComponentOption } from '../../abstracts/abstract.dropdown.component';\r\n\r\n@Component({\r\n selector: 'ads-multi-select-dropdown',\r\n templateUrl: '../dropdown/dropdown.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n '../dropdown/dropdown.component.scss',\r\n './multi-select-dropdown.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsMultiSelectDropdownComponent extends AdsDropdownComponent {\r\n /** @ignore */\r\n public hasEmptyValue = false;\r\n\r\n /** @ignore */\r\n declare public displayValueFormatter?: ((option: DropdownComponentOption) => string) | undefined;\r\n\r\n /** @ignore */\r\n public readonly isMultiselect: boolean = true;\r\n\r\n /** if set to true selected values will be shown as chips */\r\n @Input() showChips = true;\r\n\r\n /** @ignore */\r\n protected setControlValueSubscription(): void {\r\n /**\r\n * We always subscribe to form control value to make sure it is an array\r\n */\r\n this.subscribeToControl();\r\n }\r\n\r\n /** @ignore */\r\n get canClear() {\r\n return this.showClearButton && this.valueControl.value.length;\r\n }\r\n\r\n /** @ignore */\r\n /**\r\n * NOTE: this method is needed because if control value is an object, it MUST reference the same\r\n * object as corresponding dropdown option, thus here we replace dropdown option with control value if needed\r\n */\r\n protected mapControlValue(control: FormControl = this.valueControl): void {\r\n /**\r\n * make sure control value is array\r\n */\r\n if (!(control.value instanceof Array)) {\r\n control.setValue([]);\r\n\r\n return;\r\n }\r\n\r\n /**\r\n * loop through control values and make sure they exist in options\r\n */\r\n control.value.forEach((value) => {\r\n this.replaceDisplayedOptionWithControlValue(value);\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsMultiSelectDropdownComponent } from './multi-select-dropdown.component';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsTagModule } from '../../../tags/tag';\r\nimport { AdsCheckboxModule } from '../../selection-fields/checkbox';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n AdsIconModule,\r\n MatInputModule,\r\n AdsInputTooltipComponent,\r\n MatIconButton,\r\n MatIcon,\r\n AdsSuccessComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsTagModule,\r\n AdsCheckboxModule,\r\n MatTooltipModule,\r\n ],\r\n declarations: [AdsMultiSelectDropdownComponent],\r\n exports: [AdsMultiSelectDropdownComponent],\r\n})\r\nexport class AdsMultiSelectDropdownModule {}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\n\r\n@Component({\r\n selector: 'ads-input',\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss', '../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsInputComponent extends AbstractInputComponent implements OnInit {\r\n /** Maximum amount of characters in the input field */\r\n @Input() maxlength = 255;\r\n\r\n /** Possible input type (as per HTML documentation). NOTE: not all types are allowed */\r\n @Input() type: 'text' | 'number' | 'email' | 'password' | 'url' | 'pattern' | 'tel' = 'text';\r\n\r\n /** Provide regular expression pattern if input type is set to \"pattern\" */\r\n @Input() pattern: string | RegExp | null = null;\r\n\r\n /** Provide \"default\" value that will be used when control value is cleared */\r\n @Input() defaultValue?: unknown;\r\n\r\n /** mark input field as readonly */\r\n @Input() isPasswordField = false;\r\n\r\n /** @ignore */\r\n @Input() showClockIcon = false;\r\n\r\n /** Add mask to the Input */\r\n @Input() mask = '';\r\n\r\n /** Add suffix to the Input */\r\n @Input() suffix = '';\r\n\r\n /** Add prefix to the Input */\r\n @Input() prefix = '';\r\n\r\n /** If true Special Characters not be included in the actual value */\r\n @Input() dropSpecialCharacters = false;\r\n\r\n /** Add thousand Separator */\r\n @Input() thousandSeparator = '';\r\n\r\n /** Add decimal marker */\r\n @Input() decimalMarker: '.' | ',' | ['.', ','] = '.';\r\n\r\n /** Add mat Autocomplete trigger name */\r\n @Input() matAutocomplete?: MatAutocomplete;\r\n\r\n /** Show search icon */\r\n @Input() showSearchIcon = false;\r\n\r\n /** Custom function to execute on focus event */\r\n @Input() onFocus: (event: FocusEvent) => void = () => ({});\r\n\r\n /** Custom function to execute on blur event */\r\n @Input() onBlur: (event: FocusEvent) => void = () => ({});\r\n\r\n /** @ignore */\r\n @ViewChild('input') input?: ElementRef;\r\n\r\n /** @ignore */\r\n hidePassword = true;\r\n\r\n /** @ignore */\r\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\r\n pattern: 'Provided value does not match pattern',\r\n };\r\n\r\n /** Show a non-interactive hint in the right corner of the input */\r\n @Input() rightHint: string | null = null;\r\n\r\n ngOnInit(): void {\r\n /**\r\n * if default value is provided - emit it when input is cleared\r\n */\r\n if (this.defaultValue !== undefined) {\r\n this.valueControl?.valueChanges.subscribe((value) => {\r\n if (!value && value !== this.defaultValue) {\r\n this.valueControl.setValue(this.defaultValue);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n showHidePassword(): void {\r\n this.hidePassword = !this.hidePassword;\r\n }\r\n\r\n /** @ignore */\r\n restrictInput(event: KeyboardEvent): void {\r\n if (this.type === 'number') {\r\n const invalidChars = ['e', 'E', '+', '-'];\r\n if (invalidChars.includes(event.key)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n [floatLabel]=\"valueControl.value ? 'always' : 'auto'\"\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'no-left-padding': canClear,\r\n 'success-label': canShowSuccess(),\r\n 'error-label': canShowError(),\r\n 'x-small': smallSize,\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if ((label || required) && !smallSize) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <input\r\n #input\r\n matInput\r\n [suffix]=\"suffix\"\r\n [prefix]=\"prefix\"\r\n [mask]=\"mask\"\r\n [maxlength]=\"maxlength\"\r\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\r\n [thousandSeparator]=\"thousandSeparator\"\r\n [decimalMarker]=\"decimalMarker\"\r\n [id]=\"id\"\r\n [type]=\"isPasswordField ? (hidePassword ? 'password' : 'text') : type\"\r\n [formControl]=\"valueControl\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n (keydown)=\"restrictInput($event)\"\r\n [attr.matAutocomplete]=\"matAutocomplete ? matAutocomplete : null\"\r\n [attr.pattern]=\"pattern\"\r\n />\r\n @if (rightHint) {\r\n <span class=\"ads-input-right-hint\">{{ rightHint }}</span>\r\n }\r\n\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\r\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\r\n </button>\r\n }\r\n\r\n @if (isPasswordField) {\r\n <button type=\"button\" mat-icon-button matTextSuffix (click)=\"showHidePassword()\" class=\"action-icon\">\r\n <ads-icon\r\n class=\"visibility-eye\"\r\n [name]=\"hidePassword ? 'visibility_eye_none' : 'visibility_eye'\"\r\n [size]=\"smallSize ? 'xxs' : 'xs'\"\r\n stroke=\"iconPrimary\"\r\n color=\"--color-medium\"\r\n />\r\n </button>\r\n }\r\n\r\n @if (showClockIcon) {\r\n <button\r\n type=\"button\"\r\n [disableRipple]=\"true\"\r\n mat-icon-button\r\n matTextSuffix\r\n (click)=\"showHidePassword()\"\r\n class=\"action-icon time-picker-button\"\r\n >\r\n <ads-icon\r\n class=\"status_processing\"\r\n name=\"status_processing\"\r\n [size]=\"smallSize ? 'xxs' : 'xs'\"\r\n stroke=\"iconPrimary\"\r\n />\r\n </button>\r\n }\r\n\r\n @if (showSearchIcon) {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n [disableRipple]=\"true\"\r\n [disabled]=\"true\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon name=\"search\" size=\"xs\" [theme]=\"'iconPrimary'\" class=\"search-icon\" />\r\n </button>\r\n }\r\n\r\n </mat-form-field>\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsInputComponent } from './input.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsInputTooltipComponent } from '../common/input.tooltip.component';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsSuccessComponent } from '../common/success/success.component';\r\nimport { AdsErrorComponent } from '../common/error/error.component';\r\nimport { AdsHintComponent } from '../common/hint/hint.component';\r\nimport { provideNgxMask, NgxMaskDirective } from 'ngx-mask';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n AdsInputTooltipComponent,\r\n MatIconButton,\r\n AdsSuccessComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n NgxMaskDirective,\r\n MatAutocompleteTrigger,\r\n ],\r\n declarations: [AdsInputComponent],\r\n exports: [AdsInputComponent],\r\n providers: [provideNgxMask()],\r\n})\r\nexport class AdsInputModule {}\r\n","import { Component, signal, OnDestroy, OnInit } from '@angular/core';\r\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ads-phone-field',\r\n templateUrl: './phone-field.component.html',\r\n styleUrls: ['../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsPhoneFieldComponent extends AbstractInputComponent implements OnInit, OnDestroy {\r\n /** @ignore */\r\n phoneMask = signal<string>('');\r\n\r\n /** @ignore */\r\n private valueChangesSubscription!: Subscription;\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.setInitialPhoneNumber();\r\n this.updatePhoneMask();\r\n\r\n this.valueChangesSubscription = this.valueControl?.valueChanges.subscribe(() => {\r\n this.updatePhoneMask();\r\n });\r\n }\r\n\r\n /** @ignore */\r\n onBlur = () => {\r\n this.addPlusSignIfMissing();\r\n this.validatePhoneNumber();\r\n };\r\n /** @ignore */\r\n protected addPlusSignIfMissing = () => {\r\n const value = this.valueControl.value;\r\n if (value && !value.startsWith('+') && /^\\d+$/.test(value)) {\r\n this.valueControl.setValue(`+${value}`);\r\n }\r\n };\r\n\r\n /** @ignore */\r\n protected validatePhoneNumber = () => {\r\n const value = this.valueControl.value || '';\r\n const digitCount = value.replace(/\\D/g, '').length; // Count actual digits\r\n\r\n const expectedDigits = this.phoneMask().replace(/[^0]/g, '').length; // Count expected digits\r\n\r\n if (digitCount !== expectedDigits) {\r\n this.valueControl.setErrors({ mask: true });\r\n } else {\r\n this.valueControl.setErrors(null);\r\n }\r\n };\r\n\r\n /** @ignore */\r\n private updatePhoneMask(): void {\r\n const value = this.valueControl.value || '';\r\n // Check if value contain '+1' country code\r\n if (value.match(/^\\+?(1+)/)) {\r\n this.phoneMask.set('+0 (000) 000-0000'); // Short mask\r\n } else {\r\n this.phoneMask.set('+00 (000) 000-0000'); // Long mask\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private setInitialPhoneNumber(): void {\r\n if (!this.valueControl.value) {\r\n this.valueControl.setValue('+1');\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.valueChangesSubscription?.unsubscribe();\r\n }\r\n}\r\n","<ads-input\r\n [control]=\"valueControl\"\r\n [mask]=\"phoneMask()\"\r\n [onBlur]=\"onBlur\"\r\n [id]=\"id\"\r\n [placeholder]=\"placeholder\"\r\n [label]=\"label\"\r\n [errorMessages]=\"errorMessages\"\r\n [width]=\"width\"\r\n [showClearButton]=\"showClearButton\"\r\n/>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsPhoneFieldComponent } from './phone-field.component';\r\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\r\nimport { AdsInputModule } from '../input';\r\n\r\n@NgModule({\r\n imports: [CommonModule, NgxMaskDirective, AdsInputModule],\r\n declarations: [AdsPhoneFieldComponent],\r\n exports: [AdsPhoneFieldComponent],\r\n providers: [provideNgxMask()],\r\n})\r\nexport class AdsPhoneFieldModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\r\n\r\n@Component({\r\n selector: 'ads-textarea',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['../input/input.component.scss', './textarea.component.scss', '../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsTextareaComponent extends AbstractInputComponent {\r\n /** Maximum amount of characters in the input field */\r\n @Input() maxlength = 2000;\r\n\r\n /** Maximum number of rows */\r\n @Input() rows = 5;\r\n\r\n /** Set to false to disallow resize */\r\n @Input() canResize = true;\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'no-left-padding': canClear && !showExclamation,\r\n 'success-label': canShowSuccess(),\r\n 'error-label': canShowError(),\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if(label || required) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <textarea\r\n matInput\r\n [rows]=\"rows\"\r\n [maxlength]=\"maxlength\"\r\n [id]=\"id\"\r\n [formControl]=\"valueControl\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n [ngStyle]=\"{ resize: canResize ? null : 'none' }\"\r\n >\r\n </textarea>\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\">\r\n <ads-icon name=\"cross\" size=\"xxs\" [theme]=\"'iconPrimary'\" />\r\n </button>\r\n }\r\n </mat-form-field>\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n </div>\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsInputTooltipComponent } from '../common/input.tooltip.component';\r\nimport { AdsSuccessComponent } from '../common/success/success.component';\r\nimport { AdsErrorComponent } from '../common/error/error.component';\r\nimport { AdsHintComponent } from '../common/hint/hint.component';\r\nimport { AdsTextareaComponent } from './textarea.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n AdsSuccessComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n ],\r\n declarations: [AdsTextareaComponent],\r\n exports: [AdsTextareaComponent],\r\n})\r\nexport class AdsTextareaModule {}\r\n","import { Component, Input, OnChanges, SimpleChange, ViewChild } from '@angular/core';\r\nimport { AdsDropdownComponent } from '../dropdown';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DropdownComponentOptions } from '../../abstracts/abstract.dropdown.component';\r\nimport { AbstractInputComponent } from '../../abstracts/abstract.input.component';\r\nimport { asapScheduler } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ads-input-dropdown',\r\n templateUrl: './input-dropdown.component.html',\r\n styleUrls: ['./input-dropdown.component.scss', '../../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsInputDropdownComponent extends AbstractInputComponent implements OnChanges {\r\n /** Maximum amount of characters in the input field */\r\n @Input() maxlength = 255;\r\n\r\n /** Possible input type (as per HTML documentation). NOTE: not all types are allowed */\r\n @Input() type: 'text' | 'number' | 'email' | 'password' | 'url' | 'pattern' = 'text';\r\n\r\n /** Provide regular expression pattern if input type is set to \"pattern\" */\r\n @Input() pattern: string | RegExp = '';\r\n\r\n /** Dropdown control, associated with input field */\r\n @Input() dropdownControl: FormControl = new FormControl();\r\n\r\n /** Optional \"id\" attribute for dropdown field */\r\n @Input() dropdownId = '';\r\n\r\n /** Optional dropdown control field label */\r\n @Input() dropdownLabel?: string;\r\n\r\n /** Empty dropdown field placeholder */\r\n @Input() dropdownPlaceholder = '';\r\n\r\n /** Input field width. Must include units of measure: px, %, em, rem, etc. */\r\n @Input() inputWidth = '70%';\r\n\r\n /** Input field width. Must include units of measure: px, %, em, rem, etc. */\r\n @Input() dropdownWidth = '30%';\r\n\r\n /** Is set and dropdown contains only one option - it will be selected automatically. */\r\n @Input() autoSelectSingleDropdownOption = false;\r\n\r\n /** Contains dropdown options */\r\n @Input() options?: DropdownComponentOptions;\r\n\r\n /** If options contain objects, provide object property name that will be used as display value in dropdown */\r\n @Input() displayValueKey?: string;\r\n\r\n /** Set to true to add empty value to the dropdown */\r\n @Input() hasEmptyValue = true;\r\n\r\n /** Set to true if you want dropdown items to fit content rather than dropdown width */\r\n @Input() fitContent = true;\r\n\r\n /** Add mask to the Input */\r\n @Input() mask = '';\r\n\r\n /** Add suffix to the Input */\r\n @Input() suffix = '';\r\n\r\n /** Add prefix to the Input */\r\n @Input() prefix = '';\r\n\r\n /** If true Special Characters not be included in the actual value */\r\n @Input() dropSpecialCharacters = false;\r\n\r\n /** Add thousand Separator */\r\n @Input() thousandSeparator = '';\r\n\r\n /** Add decimal marker */\r\n @Input() decimalMarker: \".\" | \",\" | [\".\", \",\"] = '.';\r\n\r\n /** Set to true if you want to enable option tooltip */\r\n @Input() showTooltip?: boolean;\r\n\r\n /** @ignore */\r\n @ViewChild(AdsDropdownComponent) dropdownComponent?: AdsDropdownComponent;\r\n\r\n /** @ignore */\r\n isSingleOptionSelected = false;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\r\n if (changes.options && this.autoSelectSingleDropdownOption) {\r\n asapScheduler.schedule(() => {\r\n if (this.dropdownComponent?.displayedOptions.size === 1) {\r\n /**\r\n * get first displayed option\r\n */\r\n const first = this.dropdownComponent.displayedOptions.keys().next().value;\r\n\r\n /**\r\n * if control value does not equal the first option already - select the first option\r\n */\r\n if (this.dropdownControl.value !== first) {\r\n this.dropdownControl.setValue(first);\r\n }\r\n\r\n this.isSingleOptionSelected = true;\r\n } else {\r\n this.isSingleOptionSelected = false;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"form-field-wrapper\" [ngStyle]=\"{ width: width }\">\r\n <div class=\"form-controls-wrapper\">\r\n <div\r\n class=\"text-box\"\r\n [ngClass]=\"{\r\n invalid: dropdownControl.invalid && dropdownControl.touched,\r\n 'success-label': canShowSuccess(),\r\n 'x-small': smallSize,\r\n }\"\r\n [ngStyle]=\"{ width: inputWidth }\"\r\n >\r\n <ads-input\r\n [control]=\"valueControl\"\r\n [maxlength]=\"maxlength\"\r\n [id]=\"id\"\r\n [pattern]=\"pattern\"\r\n [label]=\"label\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [errorMessages]=\"errorMessages\"\r\n [showExclamationOnError]=\"showExclamationOnError\"\r\n [showClearButton]=\"showClearButton\"\r\n [immediateValidation]=\"immediateValidation\"\r\n [showFooter]=\"false\"\r\n [size]=\"size\"\r\n [successMessage]=\"successMessage\"\r\n [mask]=\"mask\"\r\n [suffix]=\"suffix\"\r\n [prefix]=\"prefix\"\r\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\r\n [thousandSeparator]=\"thousandSeparator\"\r\n [decimalMarker]=\"decimalMarker\"\r\n />\r\n </div>\r\n <div\r\n class=\"select-box\"\r\n [ngClass]=\"{ invalid: valueControl.invalid && valueControl.touched }\"\r\n [ngStyle]=\"{ width: dropdownWidth }\"\r\n >\r\n @if (isSingleOptionSelected) {\r\n <ads-input\r\n [control]=\"dropdownControl\"\r\n [id]=\"id\"\r\n [label]=\"dropdownLabel\"\r\n [placeholder]=\"dropdownPlaceholder\"\r\n [immediateValidation]=\"immediateValidation\"\r\n [showFooter]=\"false\"\r\n [size]=\"size\"\r\n [successMessage]=\"successMessage\"\r\n [mask]=\"mask\"\r\n />\r\n } @else {\r\n <ads-dropdown\r\n [hasEmptyValue]=\"hasEmptyValue\"\r\n [control]=\"dropdownControl\"\r\n [id]=\"dropdownId\"\r\n [options]=\"options\"\r\n [label]=\"dropdownLabel\"\r\n [placeholder]=\"dropdownPlaceholder\"\r\n [immediateValidation]=\"immediateValidation\"\r\n [displayValueKey]=\"displayValueKey\"\r\n [fitContent]=\"fitContent\"\r\n [showFooter]=\"false\"\r\n [checkSelected]=\"false\"\r\n [size]=\"size\"\r\n [successMessage]=\"successMessage\"\r\n [showTooltip]=\"showTooltip\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n</div>\r\n@if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsInputDropdownComponent } from './input-dropdown.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { AdsInputModule } from '../../input';\r\nimport { AdsDropdownModule } from '../dropdown';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { NgxMaskDirective } from 'ngx-mask';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDividerModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n AdsInputModule,\r\n AdsDropdownModule,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n NgxMaskDirective,\r\n ],\r\n declarations: [AdsInputDropdownComponent],\r\n exports: [AdsInputDropdownComponent],\r\n})\r\nexport class AdsInputDropdownModule {}\r\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport { SearchDropdownDisplayControlValue } from './search-dropdown.component.types';\r\n\r\n@Pipe({\r\n name: 'adsSearchDropdownHighlighter',\r\n standalone: false,\r\n})\r\nexport class AdsSearchDropdownHighlighterPipe implements PipeTransform {\r\n transform(optionValue: string, filter: SearchDropdownDisplayControlValue): string {\r\n if (filter) {\r\n const value = typeof filter == 'string' ? filter : filter.value;\r\n\r\n const re = new RegExp((value ?? '').replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'igm');\r\n\r\n return optionValue.replace(re, '<span class=\"highlighted-text\">$&</span>');\r\n }\r\n\r\n return optionValue;\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [AdsSearchDropdownHighlighterPipe],\r\n exports: [AdsSearchDropdownHighlighterPipe],\r\n})\r\nexport class AdsSearchDropdownHighlighterPipeModule {}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n contentChild,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n signal,\r\n input,\r\n output,\r\n SimpleChange,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { debounce, map, tap } from 'rxjs/operators';\r\nimport { AbstractControl, FormControl, Validators } from '@angular/forms';\r\nimport { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport {\r\n AbstractDropdownComponent,\r\n DropdownComponentDisplayedOptions,\r\n DropdownComponentOption,\r\n DropdownComponentOptions,\r\n} from '../../abstracts/abstract.dropdown.component';\r\nimport { Observable, of, Subscription, timer } from 'rxjs';\r\nimport { adsIcon, adsIconChevronDown, adsIconLoading, adsIconSearch } from '@ascentgl/ads-icons/icons';\r\nimport { DomHelper, GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport {\r\n SearchDropdownComponentOptions,\r\n SearchDropdownDisplayControlValue,\r\n SearchDropdownStaticOption,\r\n} from './search-dropdown.component.types';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { TEMPLATE_TYPE } from '../../common/dropdown-option-template.directive';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\n\r\ntype CustomMatOption = (MatOption & { modified?: boolean }) | undefined | null;\r\n\r\n@Component({\r\n selector: 'ads-search-dropdown',\r\n templateUrl: './search-dropdown.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n '../../dropdowns/dropdown/dropdown.component.scss',\r\n './search-dropdown.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsSearchDropdownComponent\r\n extends AbstractDropdownComponent\r\n implements OnChanges, OnInit, AfterViewInit, OnDestroy\r\n{\r\n /** @ignore */\r\n optionRef = contentChild.required<TemplateRef<TEMPLATE_TYPE>>(TemplateRef<TEMPLATE_TYPE>);\r\n\r\n externalButton = input<adsIcon | null>(null);\r\n externalButtonClick = output();\r\n\r\n /** Maximum amount of characters in the input field */\r\n @Input() maxlength = 255;\r\n\r\n /** Set to additional paneClass if required*/\r\n @Input() panelClass = '';\r\n\r\n /** Contains dropdown options */\r\n @Input() options?: Observable<SearchDropdownComponentOptions>;\r\n\r\n /** If \"true\", component will not try to load additional options */\r\n @Input() staticOptions = false;\r\n\r\n /** If \"true\" and \"staticOptions\" is also true additional filter will be applied to remove options that do not match input value */\r\n @Input() filterOptions = true;\r\n\r\n /** If \"true\", emitSearchValueInput will emit empty values too */\r\n @Input() emitEmptyValues = false;\r\n\r\n /** If \"true\", first time focusing on input will start loading suggestions if input has a value */\r\n @Input() loadSuggestionOnInit = false;\r\n\r\n /** Provide configuration for default option that can be displayed if no results were found */\r\n @Input() noDataOption: SearchDropdownStaticOption | undefined;\r\n\r\n /** Provide configuration for default option that can be displayed if no intended results were found */\r\n @Input() moreDataOption: SearchDropdownStaticOption | undefined;\r\n\r\n /** Provide configuration for default option that can be displayed if needed */\r\n @Input() staticDataOption: SearchDropdownStaticOption | undefined;\r\n\r\n /** Provide event that is fired when enter key is down while input value is being set */\r\n @Input() onEnterKeyDown: ((currentInputValue: string) => void) | undefined;\r\n\r\n /** Provide callback that will vbe executed when user clicks on magnifying glass icon */\r\n @Input() searchIconClickCallback: ((currentInputValue: string) => void) | undefined;\r\n\r\n /** Provide callback that will vbe executed when user clicks on magnifying glass icon */\r\n @Input() displayValueFormatter: ((value: string, option: DropdownComponentOption) => string | SafeHtml) | undefined;\r\n\r\n /** If \"true\", will read option template provided via \"ng-template dropdown-option\" selector */\r\n @Input() useOptionTemplate = false;\r\n\r\n /** set minimum amount of characters to start search */\r\n @Input() minValueLength = 1;\r\n\r\n /** Set to \"true\" to prevent click even propagation */\r\n @Input() preventClick = false;\r\n\r\n /** @ignore */\r\n @Input() closePanelEnabled = true;\r\n\r\n /** @ignore */\r\n @Input() trimValue = true;\r\n\r\n /**\r\n * NOTE: INPUT PARAMS BELOW ARE OVERRIDDEN BECAUSE FOR SOME UNKNOWN REASON STORYBOOK WON'T SHOW THEM FROM PARENT CLASS\r\n */\r\n\r\n /** Form control, associated with input field */\r\n @Input() set control(control: AbstractControl | null) {\r\n super.control = control;\r\n }\r\n\r\n /** Object, containing key=>value pairs for errors and their translated messages */\r\n @Input() errorMessages: GENERIC_COLLECTION<string> = {};\r\n\r\n /** Hint message, displayed under the control */\r\n @Input() declare hint?: string;\r\n\r\n /** Optional \"id\" attribute for input field */\r\n @Input() id = '';\r\n\r\n /** Optional control field label */\r\n @Input() declare label?: string;\r\n\r\n /** Empty input field placeholder */\r\n @Input() placeholder = '';\r\n\r\n @Output() focusInput = new EventEmitter<void>();\r\n\r\n @Output() blurInput = new EventEmitter<void>();\r\n\r\n /**\r\n * END OF OVERRIDDEN PARAMETERS\r\n */\r\n\r\n /** Emits currently input search value. Use it to react and generate fresh options list, based on the value */\r\n @Output() emitSearchValueInput: EventEmitter<string> = new EventEmitter();\r\n\r\n /** @ignore */\r\n @ViewChild(MatAutocompleteTrigger) trigger?: MatAutocompleteTrigger;\r\n\r\n /** @ignore */\r\n @ViewChild('input') input?: ElementRef;\r\n\r\n /** @ignore */\r\n @ViewChild('moreDataMatOption') moreDataMatOption?: MatOption;\r\n\r\n /** @ignore */\r\n @ViewChild('noDataMatOption') noDataMatOption?: MatOption;\r\n\r\n /** @ignore */\r\n @ViewChild('staticDataMatOption') staticDataMatOption?: MatOption;\r\n\r\n /** @ignore */\r\n @ViewChild('auto') auto?: MatAutocomplete;\r\n\r\n /** @ignore */\r\n loading = signal<boolean>(false);\r\n\r\n /** @ignore */\r\n private isInternalValueSet = false;\r\n\r\n /** @ignore */\r\n private displayedControlSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n private valueControlSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n private optionsSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n private valueControlStatusSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n private ignoreOnBlur = false;\r\n\r\n /** @ignore */\r\n private initialSuggestionsChecked = false;\r\n\r\n /** @ignore */\r\n private unsubscribeFromScroll?: () => void;\r\n\r\n /** @ignore */\r\n private previousControlValue?: string;\r\n\r\n /** @ignore */\r\n private allOptions: DropdownComponentDisplayedOptions = new Map();\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private renderer: Renderer2,\r\n private ref: ElementRef,\r\n ) {\r\n super();\r\n this.registry.register([adsIconSearch, adsIconChevronDown, adsIconLoading]);\r\n }\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\r\n if (changes.options) {\r\n this.processOptions();\r\n }\r\n super.ngOnChanges(changes);\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.setValidators();\r\n this.setupSubscriptions();\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n this.overrideKeydownHandler();\r\n\r\n // Setup auto-resize for textarea when wrapOptionText is enabled\r\n if (this.wrapOptionText && this.input?.nativeElement) {\r\n setTimeout(() => {\r\n this.setupTextareaAutoResize();\r\n }, 0);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy() {\r\n if (this.unsubscribeFromScroll) this.unsubscribeFromScroll();\r\n this.unsubscribeFromOptions();\r\n this.unsubscribeFromDisplayedControl();\r\n this.valueControlSubscription?.unsubscribe();\r\n this.valueControlStatusSubscription?.unsubscribe();\r\n }\r\n\r\n /** @ignore */\r\n get canSearch(): boolean {\r\n return !this.loading() && !this.displayControl.disabled && !!this.searchIconClickCallback;\r\n }\r\n\r\n /** @ignore */\r\n get canUseMoreDataOption(): boolean {\r\n return !!this.moreDataOption && !!this.displayedOptions.size && !this.loading();\r\n }\r\n\r\n /** @ignore */\r\n get canUseNoDataOption(): boolean {\r\n return (\r\n !!this.noDataOption &&\r\n !this.displayedOptions.size &&\r\n !this.loading() &&\r\n !!this.displayControl.value &&\r\n this.displayControl.dirty\r\n );\r\n }\r\n\r\n /** @ignore */\r\n get canUseStaticOption(): boolean {\r\n return !!this.staticDataOption && !this.loading();\r\n }\r\n\r\n /** @ignore */\r\n get showDropdownIcon(): boolean {\r\n return this.staticOptions && (!!this.displayedOptions.size || !!this.allOptions.size);\r\n }\r\n\r\n /** @ignore */\r\n onExternalButtonClick(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.externalButtonClick.emit();\r\n }\r\n\r\n /** @ignore */\r\n onSearchIconClick(event: MouseEvent): void {\r\n event.stopPropagation();\r\n\r\n if (this.searchIconClickCallback) {\r\n this.searchIconClickCallback(this.input?.nativeElement.value);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onKeyDown(eventTarget: EventTarget | null): void {\r\n if (this.preventClick) {\r\n return;\r\n }\r\n\r\n if (!(eventTarget instanceof HTMLInputElement || eventTarget instanceof HTMLTextAreaElement)) return;\r\n\r\n /**\r\n * if one of static options was selected when \"Enter\"\r\n * key was clicked - execute return displayedValue back\r\n * and execute static option onClick events\r\n */\r\n if (this.moreDataMatOption?.selected) {\r\n eventTarget.value = this.getDisplayedValueAsString();\r\n this.activateStaticOption(this.moreDataOption);\r\n } else if (this.noDataMatOption?.selected) {\r\n eventTarget.value = this.getDisplayedValueAsString();\r\n this.activateStaticOption(this.noDataOption);\r\n } else if (this.staticDataMatOption?.selected) {\r\n eventTarget.value = this.getDisplayedValueAsString();\r\n this.activateStaticOption(this.staticDataOption);\r\n } else {\r\n /**\r\n * otherwise if displayed value is different from input value - sync them\r\n * NOTE: this happens when option is selected in dropdown and \"Enter\" key is pressed\r\n * because \"onInput\" event does not fire in that case\r\n * if displayed value is the same as input value, and we have onEnterKeyDown callback - execute it\r\n * NOTE: this happens when value is input directly into input field\r\n */\r\n if (this.getDisplayedValueAsString() != eventTarget.value) {\r\n this.displayControl.setValue(eventTarget.value, { emitEvent: false });\r\n } else if (this.onEnterKeyDown) {\r\n this.onEnterKeyDown(eventTarget.value);\r\n }\r\n\r\n this.unselectComponent();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onBlur(): void {\r\n this.displayControl.markAsTouched();\r\n this.valueControl.markAsTouched();\r\n\r\n if (!this.preventClick) {\r\n /**\r\n * if action onBlur is allowed and value is a string - apply it to form control before blurring\r\n * NOTE: this may happen if value was input into control but\r\n * no existing options were explicitly selected\r\n */\r\n if (!this.ignoreOnBlur && typeof this.displayControl.value == 'string') {\r\n this.setControlValueFromString(this.displayControl.value);\r\n }\r\n\r\n this.ignoreOnBlur = false;\r\n }\r\n\r\n /**\r\n * if we are still loading - stop it\r\n */\r\n if (this.loading()) {\r\n this.loading.set(false);\r\n\r\n /**\r\n * unsubscribe from options to prevent their further processing\r\n */\r\n this.unsubscribeFromOptions();\r\n\r\n /**\r\n * unsubscribe from display control change to prevent it from sending the data\r\n */\r\n this.unsubscribeFromDisplayedControl();\r\n\r\n /**\r\n * resubscribe it again to return to normal workflow\r\n */\r\n this.subscribeToDisplayedControlValueChanged();\r\n\r\n /**\r\n * set loadSuggestionOnInit to resume loading when control is focused again\r\n */\r\n this.resetInitialState();\r\n }\r\n\r\n if (this.closePanelEnabled && !this.preventClick) this.trigger?.closePanel();\r\n this.blurInput.emit();\r\n }\r\n\r\n /** @ignore */\r\n onFocus(): void {\r\n /**\r\n * if we have no displayed options,\r\n * we can load data on initial value,\r\n * we are not dealing with static options,\r\n * initial suggestions are not yet loaded,\r\n * and we have input value or can emit empty values - we can start loading suggestions\r\n */\r\n if (\r\n !this.displayedOptions.size &&\r\n this.loadSuggestionOnInit &&\r\n !this.staticOptions &&\r\n !this.initialSuggestionsChecked &&\r\n (this.input?.nativeElement.value || this.emitEmptyValues)\r\n ) {\r\n this.loading.set(true);\r\n\r\n this.unsubscribeFromOptions();\r\n\r\n /**\r\n * if we are loading on init and display control has value - mark it as dirty for consistency\r\n */\r\n if (this.loadSuggestionOnInit && this.displayControl.value && this.displayControl.pristine) {\r\n this.displayControl.markAsDirty();\r\n }\r\n\r\n this.emitSearchValueInput.emit(this.input?.nativeElement.value);\r\n }\r\n\r\n this.initialSuggestionsChecked = true;\r\n this.focusInput.emit();\r\n }\r\n\r\n /** @ignore */\r\n onInput(eventTarget: EventTarget | null): void {\r\n if (eventTarget instanceof HTMLInputElement || eventTarget instanceof HTMLTextAreaElement) {\r\n // Auto-resize textarea if wrapOptionText is enabled - defer to avoid change detection error\r\n if (this.wrapOptionText && eventTarget instanceof HTMLTextAreaElement) {\r\n Promise.resolve().then(() => {\r\n this.autoResizeTextarea(eventTarget);\r\n // Ensure change detection after resizing\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n if (this.trimValue) {\r\n const value = eventTarget.value.trim();\r\n if (value !== this.getDisplayedValueAsString(false).trim() && (!value || value.length >= this.minValueLength)) {\r\n this.displayControl.setValue(eventTarget.value);\r\n // Ensure change detection after value update\r\n this.cdr.detectChanges();\r\n }\r\n } else {\r\n this.displayControl.setValue(eventTarget.value);\r\n // Ensure change detection after value update\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n getDisplayedValueAsString(checkAdditionalFormatting = true): string {\r\n let value = '';\r\n\r\n if (this.displayControl.value) {\r\n value =\r\n typeof this.displayControl.value == 'string'\r\n ? this.displayControl.value\r\n : (this.displayControl.value.value ?? '');\r\n }\r\n\r\n if (checkAdditionalFormatting && this.mustApplyAdditionalFiltering() && this.previousControlValue !== value) {\r\n this.previousControlValue = value;\r\n\r\n this.displayedOptions = new Map();\r\n\r\n this.allOptions.forEach((optionValue, option) => {\r\n if (optionValue.toLowerCase().includes(value.toLowerCase())) {\r\n this.displayedOptions.set(option, optionValue);\r\n }\r\n });\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /** @ignore */\r\n reset(): void {\r\n this.displayedOptions = new Map(this.allOptions);\r\n }\r\n\r\n /** @ignore */\r\n onStaticOptionMouseDown(event: MouseEvent, option: SearchDropdownStaticOption): void {\r\n /**\r\n * only proceed if left mouse button was clicked\r\n */\r\n if (event.button !== 0) return;\r\n\r\n this.activateStaticOption(option);\r\n }\r\n\r\n /** @ignore */\r\n onOptionMouseDown(event: MouseEvent, option: CustomMatOption): void {\r\n /**\r\n * only proceed if left mouse button was clicked\r\n */\r\n if (event.button !== 0) return;\r\n\r\n this.modifyOptionClickEvent(option);\r\n\r\n if (this.preventClick) return;\r\n\r\n /**\r\n * NOTE: we set displayControl value in mousedown event to override value setting in onClick\r\n * and avoid UI artifacts connected with it\r\n */\r\n this.displayControl.setValue(option?.value);\r\n\r\n // Trigger textarea resize after value is set from option\r\n if (this.wrapOptionText && this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n Promise.resolve().then(() => {\r\n this.autoResizeTextarea(this.input!.nativeElement as HTMLTextAreaElement);\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n displayFn = (option?: { key: DropdownComponentOption; value: string }): string => {\r\n return option ? option.value : '';\r\n };\r\n\r\n /** @ignore */\r\n resetInitialState(): void {\r\n this.loadSuggestionOnInit = true;\r\n this.initialSuggestionsChecked = false;\r\n }\r\n\r\n /** @ignore */\r\n canShowError(): boolean {\r\n return !!this.displayControl.errors && (this.displayControl.touched || this.immediateValidation);\r\n }\r\n\r\n /** @ignore */\r\n protected touchInvalid(control: FormControl): void {\r\n super.touchInvalid(control);\r\n super.touchInvalid(this.displayControl);\r\n }\r\n\r\n /** @ignore */\r\n protected processOptions(): void {\r\n this.allOptions = new Map();\r\n\r\n /**\r\n * if options are not provided - reset\r\n */\r\n if (!this.options) {\r\n this.loading.set(false);\r\n this.displayedOptions = new Map();\r\n return;\r\n }\r\n\r\n /**\r\n * \"processOptions\" is fired any time options change - thus we need to set loading to true when it happens\r\n */\r\n this.loading.set(true);\r\n\r\n /**\r\n * subscribe to options to extract displayedOptions from them\r\n * NOTE: we do not use displayedOptions as Observable because\r\n * we may need displayedOptions directly on onKeyDown event\r\n */\r\n this.optionsSubscription = this.options.subscribe((options: DropdownComponentOptions) => {\r\n this.loading.set(false);\r\n\r\n /**\r\n * turn DropdownComponentOptions into DropdownComponentDisplayedOptions\r\n */\r\n super.processOptions(options);\r\n\r\n this.allOptions = new Map(this.displayedOptions);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n protected setupSubscriptions(): void {\r\n this.controlValueToDisplayedControlValue();\r\n\r\n /**\r\n * subscribe to control value change to synchronize the value when changed externally\r\n */\r\n this.valueControlSubscription = this.valueControl.valueChanges.subscribe(() => {\r\n if (!this.isInternalValueSet) {\r\n this.controlValueToDisplayedControlValue();\r\n }\r\n });\r\n\r\n /**\r\n * sync display control statuses with value control status for proper error display\r\n */\r\n this.valueControlStatusSubscription = this.valueControl.statusChanges.subscribe(() => this.syncState());\r\n\r\n this.subscribeToDisplayedControlValueChanged();\r\n\r\n /**\r\n * listen to scroll to reposition the dropdown\r\n */\r\n this.unsubscribeFromScroll = this.renderer.listen(\r\n DomHelper.getScrollableParent(this.ref.nativeElement),\r\n 'scroll',\r\n () => {\r\n if (this.trigger?.panelOpen) this.trigger.updatePosition();\r\n },\r\n );\r\n\r\n this.syncState();\r\n }\r\n\r\n /** @ignore */\r\n private subscribeToDisplayedControlValueChanged(): void {\r\n this.displayedControlSubscription = this.displayControl.valueChanges\r\n .pipe(\r\n map((value?: SearchDropdownDisplayControlValue) => {\r\n if (!value) value = '';\r\n return value;\r\n }),\r\n tap((value) => {\r\n /**\r\n * mark displayControl as dirty\r\n * because MatAutocomplete does not do it automatically\r\n */\r\n this.displayControl.markAsDirty();\r\n\r\n /**\r\n * unsubscribe from previous options to stop loading them\r\n */\r\n this.unsubscribeFromOptions();\r\n\r\n /**\r\n * stop processing if value is not provided\r\n */\r\n if (!value) {\r\n /**\r\n * clear displayed options if value is not provided\r\n */\r\n if (!this.staticOptions) {\r\n this.displayedOptions = new Map();\r\n }\r\n\r\n this.setControlValue(null);\r\n\r\n if (this.loading()) {\r\n /**\r\n * set loadSuggestionOnInit to resume loading when control is focused again\r\n * NOTE: this is required because by the time onBlur happens - loading is false and\r\n * this method will not be fired from onBlur\r\n */\r\n this.resetInitialState();\r\n }\r\n } else if (typeof value != 'string') {\r\n this.setControlValueFromOption(value.key, false);\r\n }\r\n this.loading.set(this.canEmitValue(value));\r\n }),\r\n debounce((value) => {\r\n return this.canEmitValue(value) && value ? timer(500) : of({});\r\n }),\r\n )\r\n .subscribe((value: SearchDropdownDisplayControlValue) => {\r\n if (this.canEmitValue(value)) {\r\n this.emitSearchValueInput.emit(<string>value);\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n private unsubscribeFromOptions(): void {\r\n this.optionsSubscription?.unsubscribe();\r\n }\r\n\r\n private unsubscribeFromDisplayedControl(): void {\r\n this.displayedControlSubscription?.unsubscribe();\r\n }\r\n\r\n /** @ignore */\r\n displayFirstError(control: FormControl = this.displayControl): string {\r\n return super.displayFirstError(control);\r\n }\r\n\r\n /** @ignore */\r\n clear(event?: MouseEvent): void {\r\n event?.stopPropagation();\r\n\r\n if (event && event.button !== 0) {\r\n return;\r\n }\r\n this.displayControl.setValue(null);\r\n this.displayControl.markAsTouched();\r\n\r\n // Fix ExpressionChangedAfterItHasBeenCheckedError by triggering change detection after value is cleared\r\n this.cdr.detectChanges();\r\n\r\n // If textarea, trigger resize after value is cleared and change detection is done\r\n if (this.wrapOptionText && this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n Promise.resolve().then(() => {\r\n this.autoResizeTextarea(this.input!.nativeElement as HTMLTextAreaElement);\r\n });\r\n }\r\n\r\n if (this.closePanelEnabled) this.trigger?.closePanel();\r\n }\r\n\r\n /** @ignore */\r\n togglePanel(event?: MouseEvent): void {\r\n event?.stopPropagation();\r\n if (this.trigger?.panelOpen) {\r\n if (this.closePanelEnabled) this.trigger?.closePanel();\r\n } else {\r\n this.trigger?.openPanel();\r\n this.input?.nativeElement.focus();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private controlValueToDisplayedControlValue(): void {\r\n /**\r\n * extract displayable value as string from valueControl, if it is not empty\r\n */\r\n const displayedValue = this.valueControl.value\r\n ? this.getDisplayedValue(this.valueControl.value)\r\n : this.valueControl.value;\r\n\r\n /**\r\n * use it to build displayedControl value\r\n */\r\n this.displayControl.setValue(\r\n displayedValue ? { key: this.valueControl.value, value: displayedValue } : this.valueControl.value,\r\n { emitEvent: false },\r\n );\r\n\r\n // Trigger textarea resize after DOM updates to avoid ExpressionChangedAfterItHasBeenCheckedError\r\n if (this.wrapOptionText && this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n Promise.resolve().then(() => {\r\n this.autoResizeTextarea(this.input!.nativeElement as HTMLTextAreaElement);\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n private mustApplyAdditionalFiltering(): boolean {\r\n return !this.staticOptions || (this.staticOptions && this.filterOptions);\r\n }\r\n\r\n /** @ignore */\r\n private unselectComponent(): void {\r\n if (this.input?.nativeElement instanceof HTMLInputElement || this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n this.input.nativeElement.blur();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private activateStaticOption(option?: SearchDropdownStaticOption): void {\r\n if (!option) return;\r\n\r\n /**\r\n * ignoreOnBlur to \"true\" to disable\r\n * component's input onBlur event\r\n * NOTE: this is needed when we click on static options\r\n */\r\n this.ignoreOnBlur = true;\r\n\r\n this.moreDataMatOption?.deselect();\r\n this.noDataMatOption?.deselect();\r\n\r\n if (option.onClick) {\r\n option.onClick(this.input?.nativeElement.value);\r\n }\r\n\r\n this.unselectComponent();\r\n }\r\n\r\n /** @ignore */\r\n private setValidators(): void {\r\n /**\r\n * make sure displayControl has the same validators as control\r\n */\r\n this.displayControl.addValidators(this.valueControl.validator ?? []);\r\n /**\r\n * required validator must be set manually in this component\r\n * because controls are disconnected from input field\r\n */\r\n if (this.required) {\r\n this.valueControl.addValidators(Validators.required);\r\n this.displayControl.addValidators(Validators.required);\r\n }\r\n this.valueControl.updateValueAndValidity({ emitEvent: false });\r\n this.displayControl.updateValueAndValidity({ emitEvent: false });\r\n }\r\n\r\n /** @ignore */\r\n private canEmitValue(value: SearchDropdownDisplayControlValue): boolean {\r\n /**\r\n * only emit event if value is a string, and we can emit empty values, or it is not empty\r\n * NOTE: it disallows to emit explicitly selected \"REAL\" values\r\n */\r\n return !this.staticOptions && typeof value == 'string' && (this.emitEmptyValues || !!value);\r\n }\r\n\r\n /** @ignore */\r\n private setControlValueFromString(displayedValue: string): void {\r\n let isValueApplied = false;\r\n\r\n /**\r\n * loop through displayedOptions;\r\n * if matching displayedOption value found - use displayedOptions option as control value\r\n */\r\n for (const [option, value] of this.displayedOptions) {\r\n if (value.toLowerCase() === displayedValue.toLowerCase()) {\r\n this.setControlValueFromOption(option);\r\n isValueApplied = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!isValueApplied) {\r\n this.clear();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private setControlValueFromOption(option: DropdownComponentOption | null, skipSame = true): void {\r\n this.unselectComponent();\r\n this.setControlValue(option, skipSame);\r\n\r\n // Trigger textarea resize after value is set from option\r\n if (this.wrapOptionText && this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n Promise.resolve().then(() => {\r\n this.autoResizeTextarea(this.input!.nativeElement as HTMLTextAreaElement);\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n private setControlValue(option: DropdownComponentOption | null, skipSame = true) {\r\n /**\r\n * only update control value if it differs from provided one\r\n * NOTE: we need this check to avoid emitting control value change\r\n * when the same dropdown option is selected in dropdown several times\r\n */\r\n if (skipSame && this.valueControl.value === option) {\r\n return;\r\n }\r\n\r\n this.valueControl.markAsTouched();\r\n this.valueControl.markAsDirty();\r\n\r\n /**\r\n * toggle isInternalValueSet to make\r\n * sure internal subscription to control value will\r\n * ignore this setValue event\r\n */\r\n this.isInternalValueSet = true;\r\n this.valueControl.setValue(option);\r\n this.isInternalValueSet = false;\r\n }\r\n\r\n private overrideKeydownHandler(): void {\r\n if (this.trigger) {\r\n const handler = this.trigger._handleKeydown;\r\n\r\n /**\r\n * this allows to block default keydown handler if needed\r\n */\r\n this.trigger._handleKeydown = (event: KeyboardEvent): void => {\r\n const option = <CustomMatOption>this.trigger?.activeOption;\r\n\r\n this.modifyOptionClickEvent(option);\r\n\r\n handler.call(this.trigger, event);\r\n\r\n /**\r\n * make sure option does not lose \"selected\" state if click is prevented\r\n * NOTE: this is d one for \"nicety\"\r\n */\r\n if (this.preventClick && option && event.key === 'Enter') {\r\n this.auto?._keyManager.setActiveItem(option);\r\n }\r\n };\r\n }\r\n }\r\n\r\n private modifyOptionClickEvent(option: CustomMatOption): void {\r\n /**\r\n * modify \"_selectViaInteraction\" method of the option\r\n * so that we can block its selection if needed\r\n */\r\n if (option && !option.modified) {\r\n option.modified = true;\r\n\r\n const handler = option._selectViaInteraction;\r\n\r\n option._selectViaInteraction = () => {\r\n if (this.preventClick) {\r\n this.auto?._keyManager.setActiveItem(-1);\r\n return;\r\n }\r\n handler.call(option);\r\n };\r\n }\r\n }\r\n\r\n /** @ignore */\r\n tooltipLabel(option: { key: DropdownComponentOption; value: string }): string {\r\n\r\n if (this.displayValueFormatter) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const formattedValue = this.displayValueFormatter(option.value!, option.key);\r\n return typeof formattedValue === 'string' ? formattedValue : '';\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n return option!.value! ?? '';\r\n }\r\n\r\n /** @ignore */\r\n private setupTextareaAutoResize(): void {\r\n if (this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n // Initial resize\r\n this.autoResizeTextarea(this.input.nativeElement);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private autoResizeTextarea(textarea: HTMLTextAreaElement): void {\r\n // Reset height to calculate the correct scrollHeight\r\n textarea.style.height = 'auto';\r\n\r\n // Calculate the new height based on content\r\n const scrollHeight = textarea.scrollHeight;\r\n const maxHeight = 120; // Match the max-height from CSS\r\n const minHeight = 24; // Match the min-height from CSS\r\n\r\n // Set the new height within bounds\r\n const newHeight = Math.min(Math.max(scrollHeight, minHeight), maxHeight);\r\n textarea.style.height = newHeight + 'px';\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'is-open': trigger?.panelOpen,\r\n invalid: canShowError(),\r\n 'success-label': canShowSuccess(),\r\n 'x-small': smallSize,\r\n 'wrap-trigger-text': wrapOptionText,\r\n 'has-label': !!label\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if ((label || required) && !smallSize) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n @if (wrapOptionText) {\r\n <textarea\r\n #input\r\n [disabled]=\"displayControl.disabled\"\r\n (keydown.enter)=\"onKeyDown($event.target)\"\r\n (blur)=\"onBlur()\"\r\n (input)=\"onInput($event.target)\"\r\n (focus)=\"onFocus()\"\r\n [autocomplete]=\"'none'\"\r\n [id]=\"id\"\r\n matInput\r\n [value]=\"getDisplayedValueAsString()\"\r\n [attr.maxlength]=\"maxlength\"\r\n [matAutocomplete]=\"auto\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n rows=\"1\"\r\n class=\"auto-resize-textarea\"\r\n ></textarea>\r\n } @else {\r\n <input\r\n #input\r\n [disabled]=\"displayControl.disabled\"\r\n (keydown.enter)=\"onKeyDown($event.target)\"\r\n (blur)=\"onBlur()\"\r\n (input)=\"onInput($event.target)\"\r\n (focus)=\"onFocus()\"\r\n type=\"text\"\r\n [autocomplete]=\"'none'\"\r\n [id]=\"id\"\r\n matInput\r\n [value]=\"getDisplayedValueAsString()\"\r\n [attr.maxlength]=\"maxlength\"\r\n [matAutocomplete]=\"auto\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n />\r\n }\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayFn\"\r\n [disableRipple]=\"true\"\r\n [class]=\"\r\n 'ads-dropdown-panel' +\r\n (fitContent ? ' fit-content' : '') +\r\n (loading() ? ' loading' : '') +\r\n (preventClick ? '' : ' clickable') +\r\n ' ' +\r\n panelClass\r\n \"\r\n >\r\n @for (option of displayedOptions | keyvalue: applySorting; track $index) {\r\n <mat-option\r\n #opt\r\n [value]=\"option\"\r\n [ngClass]=\"{ 'wrap-text': wrapOptionText }\"\r\n (mousedown)=\"onOptionMouseDown($event, opt)\"\r\n [matTooltip]=\"tooltipLabel(option)\"\r\n [matTooltipDisabled]=\"useOptionTemplate || !showTooltip\"\r\n >\r\n @if (useOptionTemplate) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionRef()\"\r\n [ngTemplateOutletContext]=\"{ $implicit: option.key, value: option.value }\"\r\n ></ng-template>\r\n } @else {\r\n <span\r\n [ngClass]=\"{ 'wrap-text': wrapOptionText }\"\r\n [innerHtml]=\"\r\n displayValueFormatter\r\n ? displayValueFormatter(\r\n option!.value! | adsSearchDropdownHighlighter: displayControl.value,\r\n option.key\r\n )\r\n : (option!.value! | adsSearchDropdownHighlighter: displayControl.value)\r\n \"\r\n ></span>\r\n }\r\n </mat-option>\r\n }\r\n\r\n @if (canUseMoreDataOption) {\r\n <hr class=\"no-results-hr\" />\r\n <mat-option #moreDataMatOption class=\"extra\" [disabled]=\"!moreDataOption!.onClick\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"extraOptionValue\"\r\n [ngTemplateOutletContext]=\"{ $implicit: moreDataOption }\"\r\n />\r\n </mat-option>\r\n }\r\n\r\n @if (canUseNoDataOption) {\r\n <mat-option #noDataMatOption class=\"extra\" [disabled]=\"!noDataOption!.onClick\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"extraOptionValue\"\r\n [ngTemplateOutletContext]=\"{ $implicit: noDataOption }\"\r\n />\r\n </mat-option>\r\n }\r\n\r\n @if (canUseStaticOption) {\r\n @if (displayedOptions.size) {\r\n <hr class=\"no-results-hr\" />\r\n }\r\n <mat-option #staticDataMatOption class=\"extra\" [disabled]=\"!staticDataOption!.onClick\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"extraOptionValue\"\r\n [ngTemplateOutletContext]=\"{ $implicit: staticDataOption }\"\r\n />\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\r\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\r\n </button>\r\n }\r\n @if (showDropdownIcon) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"togglePanel($event)\" class=\"action-icon\">\r\n <ads-icon\r\n name=\"chevron_down\"\r\n [size]=\"smallSize ? 'xxs' : 'xs'\"\r\n [theme]=\"'iconPrimary'\"\r\n class=\"chevron-down\"\r\n />\r\n </button>\r\n }\r\n @if (!staticOptions && loading()) {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n [disabled]=\"true\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon name=\"loading\" [stroke]=\"'iconPrimary'\" [size]=\"smallSize ? 'xxs' : 'xs'\" />\r\n </button>\r\n }\r\n @if (!staticOptions && !loading()) {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n [disabled]=\"!canSearch\"\r\n (click)=\"canSearch ? onSearchIconClick($event) : null\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon name=\"search\" size=\"xs\" [theme]=\"'iconPrimary'\" class=\"search-icon\" />\r\n </button>\r\n }\r\n @if(externalButton()) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"onExternalButtonClick($event)\" class=\"action-icon external-button\">\r\n <ads-icon [name]=\"externalButton()!\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"external-icon\" />\r\n </button>\r\n }\r\n </mat-form-field>\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n }\r\n\r\n <ng-template #extraOptionValue let-option>\r\n <span\r\n (click)=\"$event.stopPropagation()\"\r\n (mousedown)=\"onStaticOptionMouseDown($event, option!)\"\r\n [innerHTML]=\"option!.label\"\r\n ></span>\r\n </ng-template>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsSearchDropdownComponent } from './search-dropdown.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { AdsSearchDropdownHighlighterPipeModule } from './search-dropdown-highlighter.pipe';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n AdsIconModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n MatSelectModule,\r\n AdsSearchDropdownHighlighterPipeModule,\r\n MatDatepickerModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n MatTooltipModule,\r\n ],\r\n declarations: [AdsSearchDropdownComponent],\r\n exports: [AdsSearchDropdownComponent],\r\n})\r\nexport class AdsSearchDropdownModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsInputComponent } from '../../input';\r\nimport { adsIconLoading, adsIconSearch } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-search-input',\r\n templateUrl: './search-input.component.html',\r\n styleUrls: ['../../input/input.component.scss', '../../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsSearchInputComponent extends AdsInputComponent {\r\n /** a callback function that will be called every time when enter button or search icons are clicked */\r\n @Input() searchCallback?: (value: string) => void;\r\n\r\n /** set to true if you want to execute searchCallback when icon is clicked */\r\n @Input() isIconClickable = false;\r\n\r\n /** set to true to emit search events on empty search value */\r\n @Input() searchEmptyValue = false;\r\n\r\n /** optional param to show spinner */\r\n @Input() loading? = false;\r\n\r\n constructor() {\r\n super();\r\n this.registry.register([adsIconSearch, adsIconLoading]);\r\n }\r\n\r\n /** ignore */\r\n get canClick() {\r\n return this.isIconClickable && this.canSearch();\r\n }\r\n\r\n /** ignore */\r\n onSearch() {\r\n if (this.canSearch() && this.searchCallback) {\r\n this.searchCallback(this.valueControl.value);\r\n }\r\n }\r\n\r\n /** ignore */\r\n private canSearch() {\r\n return this.valueControl.value || this.searchEmptyValue;\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'success-label': canShowSuccess(),\r\n 'error-label': canShowError(),\r\n 'x-small': smallSize,\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if ((label || required) && !smallSize) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <input\r\n matInput\r\n (keydown.enter)=\"onSearch()\"\r\n [maxlength]=\"maxlength\"\r\n [attr.pattern]=\"pattern\"\r\n [id]=\"id\"\r\n [type]=\"type\"\r\n [formControl]=\"valueControl\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\r\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\r\n </button>\r\n }\r\n\r\n @if (loading) {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n [disabled]=\"true\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon name=\"loading\" [stroke]=\"'iconPrimary'\" [size]=\"smallSize ? 'xxs' : 'xs'\" />\r\n </button>\r\n } @else {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n [disabled]=\"!canClick\"\r\n (click)=\"canClick ? onSearch() : null\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon name=\"search\" size=\"xs\" [theme]=\"'iconPrimary'\" class=\"search-icon\" />\r\n </button>\r\n }\r\n </mat-form-field>\r\n\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsSearchInputComponent } from './search-input.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n AdsIconModule,\r\n MatInputModule,\r\n MatProgressSpinnerModule,\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n MatSelectModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsSearchInputComponent],\r\n exports: [AdsSearchInputComponent],\r\n})\r\nexport class AdsSearchInputModule {}\r\n","export const FORMAT_TIME = 'HH:mm';\r\nexport const FORMAT_DATE = 'MM/dd/yyyy';\r\nexport const FORMAT_DATETIME = 'MM/dd/yyyy HH:mm';\r\n\r\nexport interface DateTimeParseDisplay {\r\n dateInput?: string;\r\n datetimeInput?: string;\r\n timeInput?: string;\r\n}\r\n\r\nexport class CustomDateTimeFormat {\r\n private _parse: DateTimeParseDisplay = {\r\n dateInput: FORMAT_DATE,\r\n datetimeInput: FORMAT_DATETIME,\r\n timeInput: FORMAT_TIME,\r\n };\r\n private _display: DateTimeParseDisplay = {\r\n dateInput: FORMAT_DATE,\r\n datetimeInput: FORMAT_DATETIME,\r\n timeInput: FORMAT_TIME,\r\n };\r\n\r\n set parse(parse: DateTimeParseDisplay) {\r\n this._parse = Object.assign({}, this._parse, parse);\r\n }\r\n\r\n get parse(): DateTimeParseDisplay {\r\n return this._parse;\r\n }\r\n\r\n set display(display: DateTimeParseDisplay) {\r\n this._display = Object.assign({}, this._display, display);\r\n }\r\n\r\n get display(): DateTimeParseDisplay {\r\n return this._display;\r\n }\r\n\r\n updateParse(parse: DateTimeParseDisplay): void {\r\n this.parse = parse;\r\n }\r\n\r\n updateDisplay(display: DateTimeParseDisplay): void {\r\n this.display = display;\r\n }\r\n}\r\n","export class DatetimeTemplateFormatter {\r\n private container: HTMLElement | null = null;\r\n private isFirstRun = true;\r\n\r\n run(view: 'clock' | 'month' | 'year' | 'multi-year'): void {\r\n /**\r\n * make sure container has proper class to encapsulate styles\r\n */\r\n this.container = document.querySelector('mat-datetimepicker-content');\r\n this.container?.classList.add('ads-datetimepicker-calendar');\r\n\r\n /**\r\n * if isFirstRun=true (we've just opened the picker)\r\n * hide container to allow concealed rearranging\r\n */\r\n if (this.isFirstRun) {\r\n this.container?.classList.add('hidden');\r\n }\r\n\r\n setTimeout(() => {\r\n this.rearrangeTemplate(view);\r\n this.isFirstRun = false;\r\n });\r\n }\r\n\r\n reset(): void {\r\n this.isFirstRun = true;\r\n }\r\n\r\n private rearrangeTemplate(view: 'clock' | 'month' | 'year' | 'multi-year'): void {\r\n const calendar: HTMLElement | null = document.querySelector('mat-datetimepicker-calendar');\r\n\r\n if (!calendar) return;\r\n\r\n /**\r\n * make sure calendar only has one \"view\" class\r\n */\r\n calendar.classList.remove('clock', 'month', 'year', 'multi-year');\r\n calendar.classList.add(view);\r\n\r\n const header: HTMLElement | null = calendar.querySelector('.mat-datetimepicker-calendar-header');\r\n const content: HTMLElement | null = calendar.querySelector('.mat-datetimepicker-calendar-content');\r\n\r\n if (!header || !content) return;\r\n\r\n /**\r\n * get all the buttons that we need to rearrange\r\n */\r\n const yearButton = header.querySelector('.mat-datetimepicker-calendar-header-year');\r\n const monthButton = content.querySelector('.mat-datetimepicker-calendar-period-button');\r\n const prevButton =\r\n content.querySelector('.mat-datetimepicker-calendar-previous-button') ??\r\n header.querySelector('.mat-datetimepicker-calendar-previous-button');\r\n const nextButton =\r\n content.querySelector('.mat-datetimepicker-calendar-next-button') ??\r\n header.querySelector('.mat-datetimepicker-calendar-next-button');\r\n\r\n /**\r\n * create headerLine1 that will contain month name, year value and year prev/next buttons\r\n */\r\n const headerLine1 = header.querySelector('.header.line-1') ?? document.createElement('div');\r\n headerLine1.className = 'header line-1';\r\n headerLine1.innerHTML = '';\r\n\r\n /**\r\n * create headerSubLine1 that will contain month name and year value\r\n */\r\n const headerSubLine1 = document.createElement('div');\r\n headerSubLine1.className = 'sub-line-1';\r\n\r\n if (yearButton) {\r\n const svg: HTMLElement | null = yearButton.querySelector('.arrow-down');\r\n const monthShortcut: HTMLElement | null = document.createElement('div');\r\n if (view !== 'year' && view !== 'clock') {\r\n monthShortcut.className = 'month-shortcut';\r\n monthShortcut.innerHTML = monthButton?.textContent?.slice(0, 3) || '';\r\n yearButton.prepend(monthShortcut);\r\n /**\r\n * create arrow down icon\r\n */\r\n const arrowSVG = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"11\" height=\"8\" viewBox=\"0 0 11 8\" fill=\"none\">\r\n <path d=\"M0.5 0.0178223L10.5 0.0178224L5.5 7.01782L0.5 0.0178223Z\" />\r\n </svg>`;\r\n\r\n const arrowDiv = document.createElement('div');\r\n arrowDiv.className = 'arrow-down';\r\n arrowDiv.innerHTML = arrowSVG;\r\n /**\r\n * append arrow to the button\r\n */\r\n yearButton.append(arrowDiv);\r\n }\r\n\r\n /**\r\n * remove svg on a year view\r\n */\r\n if (svg && (view === 'year' || view === 'clock')) {\r\n svg.remove();\r\n }\r\n\r\n /**\r\n * remove svg on a year view\r\n */\r\n const monthEl: HTMLElement | null = yearButton.querySelector('.month-shortcut');\r\n\r\n if (monthEl && (view === 'year' || view === 'clock')) {\r\n monthEl.remove();\r\n }\r\n\r\n /**\r\n * append year to subLine1\r\n */\r\n headerSubLine1.append(yearButton);\r\n }\r\n\r\n /**\r\n * only append headerSubLine1 to he headerLine1 if it has items\r\n */\r\n if (headerSubLine1.hasChildNodes() && view !== 'clock') {\r\n headerLine1.append(headerSubLine1);\r\n }\r\n\r\n /**\r\n * create headerSubLine2 that will contain year prev/next buttons\r\n */\r\n const headerSubLine2 = document.createElement('div');\r\n headerSubLine2.className = 'sub-line-2';\r\n\r\n if (prevButton) {\r\n headerSubLine2.append(prevButton);\r\n }\r\n\r\n if (nextButton) {\r\n headerSubLine2.append(nextButton);\r\n }\r\n\r\n /**\r\n * only append headerSubLine2 to he headerLine1 if it has items\r\n */\r\n if (headerSubLine2.hasChildNodes()) {\r\n headerLine1.append(headerSubLine2);\r\n }\r\n\r\n /**\r\n * only append headerLine1 header if it has items\r\n */\r\n if (headerLine1.hasChildNodes()) {\r\n header.prepend(headerLine1);\r\n }\r\n\r\n /**\r\n * remove existing div to headerLine2 that will contain date and time information\r\n */\r\n const headerLine2 = header.querySelector('.mat-datetimepicker-calendar-header-date-time');\r\n\r\n if (headerLine2) {\r\n headerLine2.remove();\r\n }\r\n\r\n /**\r\n * make sure calendar container is not hidden anymore\r\n */\r\n this.container?.classList.remove('hidden');\r\n\r\n /**\r\n * Add event listeners to the buttons to detect month changes\r\n */\r\n\r\n if (this.isFirstRun) {\r\n this.addMonthChangeListeners(prevButton, nextButton);\r\n }\r\n }\r\n\r\n private addMonthChangeListeners(prevButton: Element | null, nextButton: Element | null): void {\r\n if (prevButton) {\r\n prevButton.addEventListener('click', () => {\r\n this.clearHeaderLine1();\r\n });\r\n }\r\n\r\n if (nextButton) {\r\n nextButton.addEventListener('click', () => {\r\n this.clearHeaderLine1();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Remove old month label and prevent duplicate arrow down\r\n */\r\n private clearHeaderLine1(): void {\r\n const monthLabel = document.querySelector('.month-shortcut');\r\n const arrowIcon = document.querySelector('.arrow-down');\r\n if (monthLabel && arrowIcon) {\r\n monthLabel.remove();\r\n arrowIcon.remove();\r\n this.run('month');\r\n }\r\n }\r\n}\r\n","import { Directive, Inject, Input, NgModule, OnChanges, Optional } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { MAT_DATETIME_FORMATS } from '@mat-datetimepicker/core';\r\nimport { CustomDateTimeFormat } from './custom-datetime-format';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\n\r\n@Directive({\r\n selector: '[dateTimePickerFormat]',\r\n providers: [\r\n {\r\n provide: MAT_DATETIME_FORMATS,\r\n useClass: CustomDateTimeFormat,\r\n },\r\n ],\r\n standalone: false,\r\n})\r\nexport class DateTimePickerFormatDirective implements OnChanges {\r\n /** Custom display format that will override current format for this component */\r\n @Input() customDisplayFormat: GENERIC_COLLECTION = {};\r\n /** Set to use custom display format, overriding the one, provided by locale */\r\n @Input() overrideDisplayFormat = true;\r\n\r\n ngOnChanges() {\r\n if (this.overrideDisplayFormat) {\r\n this.format.updateDisplay(this.customDisplayFormat);\r\n this.format.updateParse(this.customDisplayFormat);\r\n this.ngControl.valueAccessor?.writeValue(this.ngControl.value);\r\n }\r\n }\r\n\r\n constructor(\r\n @Inject(MAT_DATETIME_FORMATS) private format: CustomDateTimeFormat,\r\n @Optional() private ngControl: NgControl,\r\n ) {}\r\n}\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [DateTimePickerFormatDirective],\r\n exports: [DateTimePickerFormatDirective],\r\n})\r\nexport class DateTimePickerFormatDirectiveModule {}\r\n","import {\r\n Input,\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n SimpleChange,\r\n OnChanges,\r\n ChangeDetectorRef,\r\n ViewChild,\r\n ElementRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { AbstractInputComponent } from '../../abstracts/abstract.input.component';\r\nimport { FormControl, FormControlStatus, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { adsIconCross, adsIconDatepicker, adsIconStatusProcessing } from '@ascentgl/ads-icons/icons';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { add } from 'date-fns';\r\nimport { FORMAT_DATETIME } from './custom-datetime-format';\r\nimport { MatDatetimepickerComponent, MatDatetimepickerInputEvent } from '@mat-datetimepicker/core';\r\nimport { DatetimeTemplateFormatter } from './datetime-template.formatter';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: 'ads-datetimepicker',\r\n templateUrl: './datetimepicker.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n './datetimepicker.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsDatetimepickerComponent extends AbstractInputComponent implements OnChanges, OnInit, OnDestroy {\r\n /** @ignore */\r\n @ViewChild(MatDatetimepickerComponent) picker?: MatDatetimepickerComponent<unknown>;\r\n\r\n /** Choose between 12 and 24 hour time input mode. NOTE: twelveHour=true may have minor issues when allowPastValues=false */\r\n @Input() twelveHour = false;\r\n\r\n /** Set time offset relative to GMT. If parameter is omitted offset will be calculated based on browser info */\r\n @Input() offset?: number;\r\n\r\n /** Allow or forbid choosing date values from the past */\r\n @Input() allowPastValues = true;\r\n\r\n /** Set to inputting value manually */\r\n @Input() allowManualInput = true;\r\n\r\n /** Whether to use key shortcuts (\"y\", \"n\", \"t\") for setting the value */\r\n @Input() useShortcuts = true;\r\n\r\n /** Set to use custom display format, overriding the one, provided by locale */\r\n @Input() overrideDisplayFormat = true;\r\n\r\n /** Show or hide time picker */\r\n @Input() showTimePicker = true;\r\n\r\n /** if overrideDisplayFormat=true, this display format will be used */\r\n @Input() customDisplayFormat: string = FORMAT_DATETIME;\r\n\r\n /** Interval between 1 and 60 minus. \"5\" minutes is by default */\r\n @Input() timeInterval = 5;\r\n\r\n /** Optional class for styling CDK panel */\r\n @Input() overlayCdkClass = 'ads-datetimepicker-overlay';\r\n\r\n /** @ignore */\r\n @ViewChild('input') input?: ElementRef;\r\n\r\n /** @ignore */\r\n customDisplayFormatOverride: GENERIC_COLLECTION = {};\r\n\r\n /** @ignore */\r\n type: 'date' | 'time' | 'month' | 'year' | 'datetime' = 'datetime';\r\n\r\n /** @ignore */\r\n minDate?: string;\r\n\r\n /** @ignore */\r\n protected shortcuts: GENERIC_COLLECTION = {\r\n y: -1, //yesterday\r\n n: 0, //now\r\n t: 1, //tomorrow\r\n };\r\n\r\n /** @ignore */\r\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\r\n matDatepickerParse: 'Date and Time must appear in this format: MM/DD/YYYY HH:mm',\r\n matDatepickerMin: 'The value is too old',\r\n };\r\n\r\n /** @ignore */\r\n private subscriptions: Subscription[] = [];\r\n\r\n /** @ignore */\r\n private isDisplayValueChangeRegistered = false;\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n private templateFormatter = new DatetimeTemplateFormatter();\r\n\r\n private readonly overlayContainer = inject(OverlayContainer);\r\n constructor() {\r\n super();\r\n this.registry.register([adsIconCross, adsIconDatepicker, adsIconStatusProcessing]);\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.setupSubscriptions();\r\n this.applyCustomFormat();\r\n if (!this.allowPastValues) {\r\n this.setMinValue();\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n /** @ignore */\r\n ngOnChanges(changes: {\r\n customDisplayFormat: SimpleChange;\r\n offset: SimpleChange;\r\n showTimePicker: SimpleChange;\r\n immediateValidation: SimpleChange;\r\n allowPastValues: SimpleChange;\r\n }): void {\r\n if (changes.customDisplayFormat || changes.showTimePicker) {\r\n this.applyCustomFormat();\r\n }\r\n\r\n if (changes.offset && !changes.offset.isFirstChange()) {\r\n this.syncDisplayedValue();\r\n }\r\n\r\n if (changes.allowPastValues) {\r\n if (!this.allowPastValues) {\r\n this.setMinValue();\r\n } else {\r\n this.minDate = undefined;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n super.ngOnChanges(changes);\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n /** @ignore */\r\n toggle(event: MouseEvent): void {\r\n event.stopPropagation();\r\n if (this.picker?.opened) {\r\n this.picker.close();\r\n } else {\r\n this.picker?.open();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n get showExclamation() {\r\n return this.showExclamationOnError && this.displayControl.invalid && this.displayControl.touched;\r\n }\r\n\r\n get canClear() {\r\n return this.showClearButton && !!this.input?.nativeElement.value;\r\n }\r\n\r\n /** @ignore */\r\n canShowError(): boolean {\r\n return !!this.displayControl.errors && (this.displayControl.touched || this.immediateValidation);\r\n }\r\n\r\n /** @ignore */\r\n displayFirstError(control: FormControl = this.displayControl): string {\r\n /**\r\n * if we have format error - make sure to show it first\r\n */\r\n if (this.displayControl.errors?.matDatepickerParse) {\r\n this.displayControl.setErrors({ matDatepickerParse: this.displayControl.errors?.matDatepickerParse });\r\n }\r\n\r\n return super.displayFirstError(control);\r\n }\r\n\r\n /** @ignore */\r\n onKeyDown(event: KeyboardEvent): void {\r\n if (!(event.target instanceof HTMLInputElement)) {\r\n return;\r\n }\r\n\r\n /**\r\n * blur input to make sure the value is applied\r\n */\r\n if (event.key === 'Enter' && event.target instanceof HTMLInputElement) {\r\n this.setMinValue();\r\n event.target.blur();\r\n return;\r\n }\r\n\r\n if (!this.useShortcuts) {\r\n return;\r\n }\r\n\r\n const shortcutOffset = this.shortcuts[event.key?.toLowerCase()];\r\n\r\n /**\r\n * if one of the shortcuts was clicked - set current date value accordingly\r\n */\r\n if (shortcutOffset !== undefined) {\r\n /**\r\n * create date object. taking into account shortcut offset (yesterday, now, tomorrow)\r\n */\r\n const value: Date = this.createDate(shortcutOffset);\r\n\r\n /**\r\n * set date object to required offset value, and apply it to valueControl\r\n * (it will eventually sync displayControl too)\r\n */\r\n this.onChanged(this.dateToRequiredOffset(value).toISOString());\r\n\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n touchControls(): void {\r\n if (!this.displayControl.touched) {\r\n this.displayControl.markAsTouched();\r\n }\r\n\r\n if (!this.valueControl.touched) {\r\n this.valueControl.markAsTouched();\r\n }\r\n\r\n if (!this.displayControl.dirty) {\r\n this.displayControl.markAsDirty();\r\n }\r\n\r\n if (!this.valueControl.dirty) {\r\n this.valueControl.markAsDirty();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n clear(event: MouseEvent): void {\r\n /**\r\n * stop even propagation so that calendar won't open on \"clear\" button click\r\n */\r\n event.stopPropagation();\r\n\r\n this.displayControl.setValue(null);\r\n\r\n this.onChanged(this.displayControl.value);\r\n }\r\n\r\n /** @ignore */\r\n mousedown(event: MouseEvent): void {\r\n event.preventDefault();\r\n }\r\n\r\n /** @ignore */\r\n onOpened(): void {\r\n this.overlayContainer.getContainerElement().classList.add(this.overlayCdkClass ?? '');\r\n this.templateFormatter.reset();\r\n this.isDisplayValueChangeRegistered = false;\r\n }\r\n\r\n /** @ignore */\r\n onClosed(): void {\r\n this.overlayContainer.getContainerElement().classList.remove(this.overlayCdkClass ?? '');\r\n /**\r\n * NOTE: this is needed to override an issue when closing a dropdown passes focus to input\r\n * when allowManualInput is false\r\n */\r\n if (!this.allowManualInput) {\r\n this.input?.nativeElement.blur();\r\n }\r\n\r\n /**\r\n * if control value is empty, displayControl with be cleared (brought to initial state)\r\n */\r\n this.syncEmptyValues();\r\n\r\n /**\r\n * focus on control value and select time part\r\n */\r\n if (!this.showTimePicker && this.isDisplayValueChangeRegistered && this.type !== 'date') {\r\n this.input?.nativeElement.focus();\r\n\r\n const spacePosition = this.input?.nativeElement.value.lastIndexOf(' ');\r\n const totalLength = this.input?.nativeElement.value.length;\r\n\r\n if (spacePosition > -1) {\r\n this.input?.nativeElement.setSelectionRange(spacePosition + 1, spacePosition + (totalLength - spacePosition));\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onChanged(event: MatDatetimepickerInputEvent<string> | string | null): void {\r\n const value = event === null ? null : typeof event == 'string' ? event : event.value;\r\n\r\n /**\r\n * sync valueControl errors with displayControl errors\r\n * NOTE: this is needed for \"invalid format\" errors that are calculated for displayControl\r\n * by MatDatetimepicker component\r\n */\r\n this.valueControl.setErrors(this.displayControl.errors);\r\n\r\n this.onDisplayedValueChange(value ? new Date(value) : null);\r\n }\r\n\r\n onViewChanged(view: 'clock' | 'month' | 'year' | 'multi-year') {\r\n this.templateFormatter.run(view);\r\n }\r\n\r\n /** @ignore */\r\n protected touchInvalid(control: FormControl): void {\r\n super.touchInvalid(control);\r\n super.touchInvalid(this.displayControl);\r\n }\r\n\r\n /** @ignore */\r\n protected applyCustomFormat(): void {\r\n this.customDisplayFormatOverride = {};\r\n\r\n if (this.overrideDisplayFormat) {\r\n this.customDisplayFormatOverride.datetimeInput = this.customDisplayFormat;\r\n }\r\n\r\n if (!this.showTimePicker) {\r\n if (this.overrideDisplayFormat) {\r\n this.customDisplayFormatOverride.dateInput = this.customDisplayFormat;\r\n } else {\r\n this.customDisplayFormatOverride.dateInput = FORMAT_DATETIME;\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected setControlValue(control: FormControl, value: string | null = null, emitEvent = true): void {\r\n if (control.value !== value) {\r\n control.setValue(value, { emitEvent: emitEvent });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\r\n /**\r\n * always make sure that date string is in UTC format\r\n */\r\n const value: Date = new Date(valueToApply + (valueToApply.endsWith('Z') ? '' : 'Z'));\r\n\r\n this.setControlValue(this.displayControl, this.dateToRequiredOffset(value).toISOString());\r\n }\r\n\r\n /** @ignore */\r\n protected onDisplayedValueChange(value: Date | null): void {\r\n let newValue: null | string = null;\r\n\r\n if (value) {\r\n newValue = this.displayedValueToControlValue(value);\r\n }\r\n\r\n /**\r\n * only set value if it did change\r\n */\r\n if (newValue === this.valueControl.value) {\r\n return;\r\n }\r\n\r\n /**\r\n * set control value reverting offset calculation\r\n */\r\n this.setControlValue(this.valueControl, newValue);\r\n }\r\n\r\n /** @ignore */\r\n protected displayedValueToControlValue(value: Date): string {\r\n return this.dateToActualOffset(value).toISOString();\r\n }\r\n\r\n /** @ignore */\r\n protected setMinValue(): void {\r\n /**\r\n * calculate minimum allowed datetime if needed\r\n */\r\n this.minDate = this.dateToRequiredOffset().toISOString();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n /** @ignore */\r\n protected addOffset(date: Date, offset: number): Date {\r\n return add(date, { minutes: offset });\r\n }\r\n\r\n /** @ignore */\r\n protected removeOffset(date: Date, offset: number): Date {\r\n return add(date, { minutes: offset * -1 });\r\n }\r\n\r\n /** @ignore */\r\n protected getActualDateOffset(value: Date = this.createDate()): number {\r\n return value.getTimezoneOffset() * -1;\r\n }\r\n\r\n /** @ignore */\r\n protected getRequiredOffset(value: Date = this.createDate()): number {\r\n return this.offset ? this.offset * 60 : this.getActualDateOffset(value);\r\n }\r\n\r\n /** @ignore */\r\n protected createDate(daysShift = 0): Date {\r\n let value: Date = new Date();\r\n\r\n if (daysShift) {\r\n value = this.addOffset(value, daysShift * 24 * 60);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n protected syncState(status?: FormControlStatus): void {\r\n if (status === 'INVALID') {\r\n this.displayControl.setErrors(this.valueControl.errors);\r\n this.touchControls();\r\n } else {\r\n this.displayControl.setErrors([]);\r\n }\r\n\r\n super.syncState();\r\n }\r\n\r\n /** @ignore */\r\n private setupSubscriptions(): void {\r\n /**\r\n *\r\n *sync display control statuses with value control status for proper error display\r\n * make sure \"displayControl\" disabled state and value are synchronized with \"control\" disabled state and value\r\n */\r\n this.subscriptions.push(this.valueControl.statusChanges.subscribe((status) => this.syncState(status)));\r\n this.subscriptions.push(this.valueControl.valueChanges.subscribe(() => this.syncDisplayedValue()));\r\n\r\n /**\r\n * NOTE: registering display value change is needed to know when to focus time part of datetime if showTimePicker is false\r\n */\r\n this.subscriptions.push(\r\n this.displayControl.valueChanges.subscribe(() => (this.isDisplayValueChangeRegistered = true)),\r\n );\r\n\r\n /**\r\n * make sure displayControl has the same validators as control\r\n */\r\n this.displayControl.addValidators(this.valueControl.validator ?? []);\r\n /**\r\n * required validator must be set manually in this component\r\n * because valueControl is disconnected from input field\r\n */\r\n if (this.required) {\r\n this.valueControl.addValidators(Validators.required);\r\n }\r\n this.valueControl.updateValueAndValidity({ emitEvent: false });\r\n this.displayControl.updateValueAndValidity({ emitEvent: false });\r\n /**\r\n * perform initial synchronizations\r\n */\r\n this.syncState();\r\n this.syncDisplayedValue();\r\n }\r\n\r\n /** @ignore */\r\n private syncDisplayedValue(): void {\r\n /**\r\n * if control value is empty, displayControl with be cleared (brought to initial state)\r\n */\r\n if (this.syncEmptyValues()) return;\r\n\r\n this.onSyncDisplayedValue();\r\n }\r\n\r\n /** @ignore */\r\n private syncEmptyValues(): boolean {\r\n if (this.valueControl.value) return false;\r\n\r\n this.setControlValue(this.displayControl, this.valueControl.value, false);\r\n\r\n return true;\r\n }\r\n\r\n /** @ignore */\r\n private dateToRequiredOffset(value: Date = this.createDate()): Date {\r\n value = this.removeOffset(value, this.getActualDateOffset(value));\r\n return this.addOffset(value, this.getRequiredOffset(value));\r\n }\r\n\r\n /** @ignore */\r\n private dateToActualOffset(value: Date = this.createDate()): Date {\r\n value = this.addOffset(value, this.getActualDateOffset(value));\r\n return this.removeOffset(value, this.getRequiredOffset(value));\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'no-left-padding': !showExclamation,\r\n invalid: canShowError(),\r\n manual: allowManualInput,\r\n 'success-label': canShowSuccess(),\r\n 'x-small': smallSize,\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if ((label || required) && !smallSize) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <mat-datetimepicker\r\n #datetimePicker\r\n (viewChanged)=\"onViewChanged($event)\"\r\n (opened)=\"onOpened()\"\r\n (closed)=\"onClosed()\"\r\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\r\n [openOnFocus]=\"!allowManualInput\"\r\n [twelvehour]=\"twelveHour\"\r\n [timeInterval]=\"timeInterval\"\r\n [mode]=\"'portrait'\"\r\n />\r\n <input\r\n (dateChange)=\"onChanged($event)\"\r\n dateTimePickerFormat\r\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\r\n [customDisplayFormat]=\"customDisplayFormatOverride\"\r\n #input\r\n matInput\r\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\r\n (blur)=\"touchControls()\"\r\n [tabIndex]=\"allowManualInput ? 0 : -1\"\r\n [min]=\"minDate || null\"\r\n [readonly]=\"!allowManualInput\"\r\n [formControl]=\"displayControl\"\r\n [matDatetimepicker]=\"datetimePicker\"\r\n autocomplete=\"false\"\r\n [id]=\"id\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\r\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\r\n </button>\r\n }\r\n\r\n @if (type === 'time') {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n (click)=\"toggle($event)\"\r\n [disabled]=\"!showTimePicker\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'xs'\" [stroke]=\"'iconPrimary'\" />\r\n </button>\r\n } @else {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\r\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'xs'\" [stroke]=\"'iconPrimary'\" />\r\n @if (type === 'datetime') {\r\n <ads-icon\r\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\r\n name=\"status_processing\"\r\n [size]=\"smallSize ? 'xxxxs' : 'xxxs'\"\r\n [stroke]=\"'iconPrimary'\"\r\n />\r\n }\r\n </button>\r\n }\r\n </mat-form-field>\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NativeDateAdapter } from '@angular/material/core';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { format } from 'date-fns';\r\nimport { Injectable } from '@angular/core';\r\nimport { FORMAT_DATE, FORMAT_DATETIME, FORMAT_TIME } from './custom-datetime-format';\r\n\r\n@Injectable()\r\nexport class CustomDatetimeAdapter extends NativeDateAdapter {\r\n constructor() {\r\n super();\r\n }\r\n format(date: Date, displayFormat: string | GENERIC_COLLECTION): string {\r\n if (typeof displayFormat === 'string') {\r\n return format(date, displayFormat);\r\n } else {\r\n return super.format(date, displayFormat);\r\n }\r\n }\r\n\r\n parse(value: string, parseFormat?: string): Date | null {\r\n const dateRegex = /^(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])\\/\\d{4}$/;\r\n\r\n /**\r\n * Make invalid Date to prevent autofill date when user input invalid date\r\n */\r\n if (parseFormat == FORMAT_DATE && !dateRegex.test(value)) {\r\n return new Date('/');\r\n }\r\n\r\n if (parseFormat === FORMAT_TIME) {\r\n /**\r\n * we need to add date before we parse manually input time value\r\n */\r\n value = format(new Date(), 'yyyy-MM-dd') + ' ' + this.inferTime(value);\r\n } else if (parseFormat === FORMAT_DATETIME) {\r\n const [date, time] = value.split(' ');\r\n\r\n value = time ? date + ' ' + this.inferTime(time) : value;\r\n }\r\n return super.parse(value, parseFormat);\r\n }\r\n\r\n private inferTime(value: string): string {\r\n /**\r\n * this allows to construct valid time when only 1 or 2 characters are input\r\n */\r\n if (value.length === 1) {\r\n return `0${value}:00`;\r\n } else if (value.length === 2) {\r\n return `${value}:00`;\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsDatetimepickerComponent } from './datetimepicker.component';\r\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DateTimePickerFormatDirectiveModule } from './datetime-picker-format-directive';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { CustomDatetimeAdapter } from './custom-datetime.adapter';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatNativeDatetimeModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n MatDatetimepickerModule,\r\n MatIconModule,\r\n DateTimePickerFormatDirectiveModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsDatetimepickerComponent],\r\n exports: [AdsDatetimepickerComponent],\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: CustomDatetimeAdapter,\r\n },\r\n ],\r\n})\r\nexport class AdsDatetimepickerModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsDatetimepickerComponent } from '../datetime-picker';\r\nimport { format } from 'date-fns';\r\nimport { FORMAT_DATE } from '../datetime-picker/custom-datetime-format';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\n\r\n@Component({\r\n selector: 'ads-datepicker',\r\n templateUrl: '../datetime-picker/datetimepicker.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n '../datetime-picker/datetimepicker.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsDatepickerComponent extends AdsDatetimepickerComponent {\r\n /** if overrideDisplayFormat=true, this display format will be used */\r\n @Input() customDisplayFormat: string = FORMAT_DATE;\r\n\r\n /** @ignore */\r\n type: 'date' | 'time' | 'month' | 'year' | 'datetime' = 'date';\r\n\r\n /** @ignore */\r\n twelveHour = false;\r\n\r\n /** @ignore */\r\n showTimePicker = false;\r\n\r\n /** @ignore */\r\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\r\n matDatepickerParse: 'Date must appear in this format: MM/DD/YYYY',\r\n };\r\n\r\n /** @ignore */\r\n protected applyCustomFormat(): void {\r\n this.customDisplayFormatOverride = {};\r\n\r\n if (this.overrideDisplayFormat) {\r\n this.customDisplayFormatOverride = { dateInput: this.customDisplayFormat };\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected displayedValueToControlValue(value: Date): string {\r\n return format(value, 'yyyy-MM-dd');\r\n }\r\n\r\n /** @ignore */\r\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\r\n if (this.valueControl.value !== null) {\r\n valueToApply = this.valueControl.value + 'T00:00:00';\r\n }\r\n this.setControlValue(this.displayControl, valueToApply);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DateAdapter, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsDatepickerComponent } from './datepicker.component';\r\nimport { DateTimePickerFormatDirectiveModule } from '../datetime-picker/datetime-picker-format-directive';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { CustomDatetimeAdapter } from '../datetime-picker/custom-datetime.adapter';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatNativeDateModule,\r\n MatNativeDatetimeModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n MatDatetimepickerModule,\r\n MatIconModule,\r\n DateTimePickerFormatDirectiveModule,\r\n AdsInputTooltipComponent,\r\n MatIconButton,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsDatepickerComponent],\r\n exports: [AdsDatepickerComponent],\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: CustomDatetimeAdapter,\r\n },\r\n ],\r\n})\r\nexport class AdsDatepickerModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsDatetimepickerComponent } from '../datetime-picker';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { format } from 'date-fns';\r\nimport { FORMAT_TIME } from '../datetime-picker/custom-datetime-format';\r\nimport { adsIconTimepicker } from '@ascentgl/ads-icons/icons';\r\nimport { MatDatetimepickerInputEvent } from '@mat-datetimepicker/core';\r\n\r\n@Component({\r\n selector: 'ads-timepicker',\r\n templateUrl: '../datetime-picker/datetimepicker.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n '../datetime-picker/datetimepicker.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsTimepickerComponent extends AdsDatetimepickerComponent {\r\n /** if overrideDisplayFormat=true, this display format will be used */\r\n @Input() customDisplayFormat: string = FORMAT_TIME;\r\n\r\n /** @ignore */\r\n type: 'date' | 'time' | 'month' | 'year' | 'datetime' = 'time';\r\n\r\n /** @ignore */\r\n protected shortcuts: GENERIC_COLLECTION = {\r\n n: 0, //now\r\n };\r\n\r\n /** @ignore */\r\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\r\n matDatepickerParse: 'Time must appear in this format: HH:mm',\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.registry.register([adsIconTimepicker]);\r\n }\r\n\r\n /** @ignore */\r\n onChanged(event: MatDatetimepickerInputEvent<string> | string | null): void {\r\n /**\r\n * NOTE: this is needed to clear values when input field is cleared;\r\n * otherwise the timepicker will be set to 00:00\r\n */\r\n if (this.displayControl.value && !this.input?.nativeElement.value) {\r\n this.setControlValue(this.displayControl, null);\r\n this.setControlValue(this.valueControl, null);\r\n } else {\r\n super.onChanged(event);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected applyCustomFormat(): void {\r\n this.customDisplayFormatOverride = {};\r\n\r\n if (this.overrideDisplayFormat) {\r\n this.customDisplayFormatOverride = { timeInput: this.customDisplayFormat };\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected displayedValueToControlValue(value: Date): string {\r\n return format(this.addOffset(value, this.getRequiredOffset(value) * -1), 'HH:mm:00');\r\n }\r\n\r\n /** @ignore */\r\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\r\n if (this.valueControl.value !== null) {\r\n valueToApply = format(this.createDate(), 'yyyy-MM-dd') + ' ' + this.valueControl.value;\r\n }\r\n\r\n super.onSyncDisplayedValue(valueToApply);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DateAdapter, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsTimepickerComponent } from './timepicker.component';\r\nimport { DateTimePickerFormatDirectiveModule } from '../datetime-picker/datetime-picker-format-directive';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { CustomDatetimeAdapter } from '../datetime-picker/custom-datetime.adapter';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDatetimepickerModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatNativeDatetimeModule,\r\n MatNativeDateModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n MatIconModule,\r\n DateTimePickerFormatDirectiveModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsTimepickerComponent],\r\n exports: [AdsTimepickerComponent],\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: CustomDatetimeAdapter,\r\n },\r\n ],\r\n})\r\nexport class AdsTimepickerModule {}\r\n","import { Component, contentChild, Input, OnChanges, SimpleChange, TemplateRef } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { AdsDropdownComponent } from '../../dropdowns/dropdown';\r\nimport { TEMPLATE_TYPE } from '../../common/dropdown-option-template.directive';\r\n\r\n@Component({\r\n selector: 'ads-radio-button',\r\n templateUrl: './radio-button.component.html',\r\n styleUrls: ['./radio-button.component.scss', '../../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsRadioButtonComponent extends AdsDropdownComponent implements OnChanges {\r\n /** @ignore */\r\n optionRef = contentChild.required<TemplateRef<TEMPLATE_TYPE>>(TemplateRef<TEMPLATE_TYPE>);\r\n\r\n /** Set to \"true\" to make the checkbox indeterminate */\r\n @Input() vertical = false;\r\n\r\n /** Enable/disable options sorting */\r\n @Input() sortOptions = false;\r\n\r\n /** If \"true\", will read option template provided via \"ng-template radio-option\" selector */\r\n @Input() useOptionTemplate = false;\r\n\r\n /** @ignore */\r\n fitContent = false;\r\n\r\n /** @ignore */\r\n placeholder = '';\r\n\r\n /** @ignore */\r\n declare label?: string;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { required: SimpleChange; options: SimpleChange; immediateValidation: SimpleChange }): void {\r\n super.ngOnChanges(changes);\r\n\r\n if (changes.required) {\r\n if (this.required) {\r\n this.valueControl.addValidators(Validators.required);\r\n } else {\r\n this.valueControl.removeValidators(Validators.required);\r\n }\r\n }\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div>\r\n <mat-radio-group\r\n [id]=\"id\"\r\n [ngClass]=\"{\r\n vertical: vertical,\r\n 'radio-invalid': valueControl.invalid && (valueControl.touched || immediateValidation),\r\n }\"\r\n [formControl]=\"valueControl\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @for (option of displayedOptions | keyvalue: applySorting; track $index) {\r\n <mat-radio-button [value]=\"option.key\">\r\n @if (useOptionTemplate) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionRef()\"\r\n [ngTemplateOutletContext]=\"{ $implicit: option.key, value: option.value }\"\r\n ></ng-template>\r\n } @else {\r\n {{ displayValueFormatter ? displayValueFormatter(option.key) : option.value }}\r\n }\r\n </mat-radio-button>\r\n }\r\n </mat-radio-group>\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsRadioButtonComponent } from './radio-button.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsSearchDropdownHighlighterPipeModule } from '../../search-fields/search-dropdown/search-dropdown-highlighter.pipe';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatRadioModule,\r\n MatOptionModule,\r\n MatInputModule,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsInputTooltipComponent,\r\n AdsSearchDropdownHighlighterPipeModule,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsRadioButtonComponent],\r\n exports: [AdsRadioButtonComponent],\r\n})\r\nexport class AdsRadioButtonModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AbstractControl, FormControl } from '@angular/forms';\r\nimport { AbstractBaseComponent } from '../../abstracts/abstract.base.component';\r\n\r\n@Component({\r\n selector: 'ads-slide-toggle',\r\n templateUrl: './slide-toggle.component.html',\r\n styleUrls: ['./slide-toggle.component.scss', '../../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsSlideToggleComponent extends AbstractBaseComponent {\r\n /** Set to \"true\" to make the toggle title \"Yes\" or \"No\" */\r\n @Input() enableYesOrNo = false;\r\n\r\n /**\r\n * Optional custom titles for the toggle states.\r\n * Array with two strings: [enabled_text, disabled_text]\r\n * Example: ['Show', 'Hide'] or ['Active', 'Inactive']\r\n */\r\n @Input() customTitles?: [string, string];\r\n\r\n /** @ignore */\r\n valueControl: FormControl = new FormControl();\r\n\r\n /** Form control, associated with input field */\r\n @Input() set control(control: AbstractControl | null) {\r\n /**\r\n * NOTE: we use setter and internal \"valueControl\" here\r\n * to allow pass children of FormGroup (which are all typed as AbstractControl instances)\r\n *\r\n */\r\n if (control instanceof FormControl) {\r\n this.valueControl = control;\r\n } else {\r\n throw Error('Control must be a \"FormControl\" instance');\r\n }\r\n }\r\n\r\n /** Optional \"label\" attribute for slide toggle field */\r\n @Input() label = '';\r\n\r\n /** Optional \"id\" attribute for slide toggle field */\r\n @Input() id = '';\r\n\r\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\r\n @Input() width = 'fit-content';\r\n\r\n /** @ignore */\r\n toggle() {\r\n if (this.valueControl.disabled) return;\r\n\r\n this.valueControl.setValue(!this.valueControl.value);\r\n }\r\n\r\n /** @ignore */\r\n getTitle(enabled: boolean): string {\r\n // Priority: customTitles > enableYesOrNo > default On/Off\r\n if (this.customTitles) {\r\n return enabled ? this.customTitles[0] : this.customTitles[1];\r\n }\r\n\r\n const titles = this.enableYesOrNo ? ['Yes', 'No'] : ['On', 'Off'];\r\n return enabled ? titles[0] : titles[1];\r\n }\r\n\r\n /** @ignore */\r\n getToggleWidth(): string {\r\n // Calculate width based on text content\r\n if (this.customTitles) {\r\n // Get both titles to find the longest one\r\n const title1 = this.customTitles[0];\r\n const title2 = this.customTitles[1];\r\n const longerTitle = title1.length >= title2.length ? title1 : title2;\r\n\r\n // Special cases for common title combinations\r\n if ((title1 === 'Show' && title2 === 'Hide') || (title1 === 'Hide' && title2 === 'Show')) {\r\n return '50px';\r\n }\r\n\r\n // More accurate character width calculation\r\n // Different characters have different widths in the 10px font\r\n let estimatedWidth = 20; // Base width for padding and handle space\r\n\r\n for (const char of longerTitle) {\r\n // Approximate character widths at 10px font size\r\n if (/[iIjl1]/.test(char)) {\r\n estimatedWidth += 3; // Narrow characters\r\n } else if (/[mMwW]/.test(char)) {\r\n estimatedWidth += 8; // Wide characters\r\n } else if (/[A-Z]/.test(char)) {\r\n estimatedWidth += 6.5; // Uppercase letters\r\n } else {\r\n estimatedWidth += 5.5; // Regular lowercase letters and numbers\r\n }\r\n }\r\n\r\n // Ensure minimum width and round up\r\n return `${Math.max(40, Math.ceil(estimatedWidth))}px`;\r\n }\r\n\r\n // Predefined widths for standard texts\r\n return this.enableYesOrNo ? '42px' : '40px';\r\n }\r\n}\r\n","<div class=\"ads-toggle\" [class.disabled]=\"valueControl.disabled\" (click)=\"toggle()\" [ngStyle]=\"{ width: width }\">\r\n <div class=\"toggle-container\"\r\n [class.checked]=\"valueControl.value\"\r\n [class.enable-yes-no]=\"enableYesOrNo\"\r\n [ngStyle]=\"{ width: getToggleWidth() }\">\r\n <div class=\"toggle-track\">\r\n <span class=\"toggle-label\"> {{ getTitle(valueControl.value) }} </span>\r\n </div>\r\n <div class=\"toggle-handle\"></div>\r\n </div>\r\n\r\n @if (label) {\r\n <span class=\"label\"> {{ label }} </span>\r\n }\r\n</div>\r\n@if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsSlideToggleComponent } from './slide-toggle.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsSlideToggleComponent],\r\n exports: [AdsSlideToggleComponent],\r\n})\r\nexport class AdsSlideToggle {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsCheckboxComponent } from '../checkbox';\r\n\r\n@Component({\r\n selector: 'ads-slider',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsSliderComponent extends AdsCheckboxComponent {\r\n /** Set minimum slider value */\r\n @Input() min = 0;\r\n\r\n /** Set maximum slider value */\r\n @Input() max = 100;\r\n\r\n /** Set slider step value */\r\n @Input() step = 1;\r\n\r\n /** How often to show ticks. Relative to the step so that a tick always appears on a step. Ex: Tick interval of 4 with a step of 3 will draw a tick every 4 steps (every 12 values). */\r\n @Input() tickInterval?: 'auto' | number;\r\n\r\n /** Whether to invert slider direction */\r\n @Input() invert = false;\r\n\r\n /** Whether to show the thumb label */\r\n @Input() thumbLabel = true;\r\n\r\n /** @ignore */\r\n label = '';\r\n}\r\n","<div>\r\n <mat-slider [id]=\"id\" [ngStyle]=\"{ width: width }\" [min]=\"min\" [max]=\"max\" [step]=\"step\" aria-label=\"slider\"\r\n ><input matSliderThumb [formControl]=\"valueControl\" />\r\n </mat-slider>\r\n @if (valueControl.touched && valueControl.errors) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsSliderComponent } from './slider.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatSliderModule,\r\n MatInputModule,\r\n AdsIconModule,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n ],\r\n declarations: [AdsSliderComponent],\r\n exports: [AdsSliderComponent],\r\n})\r\nexport class AdsSliderModule {}\r\n","import { AfterViewInit, Component, ElementRef, HostListener, inject } from '@angular/core';\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\r\nimport { Variant } from '../../buttons/button';\r\n\r\nexport type SnackBarData = {\r\n id?: string;\r\n message: string;\r\n hideActionButton?: boolean;\r\n buttonCaption?: string;\r\n closeOnClick?: boolean;\r\n onButtonClick?: () => void;\r\n};\r\n\r\n@Component({\r\n selector: 'ads-snackbar',\r\n templateUrl: './snackbar.component.html',\r\n styleUrls: ['./snackbar.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsSnackbarComponent implements AfterViewInit {\r\n data: SnackBarData = inject(MAT_SNACK_BAR_DATA);\r\n snackBarRef = inject(MatSnackBarRef);\r\n readonly defaultButtonCaption = 'Close';\r\n protected readonly PanelClass = PanelClass;\r\n\r\n /** @ignore */\r\n constructor(private elementRef: ElementRef<HTMLElement>) {}\r\n\r\n get buttonPanelClass(): Variant {\r\n const panelClass = this.snackBarRef.containerInstance.snackBarConfig.panelClass as PanelClass;\r\n return panelClass === PanelClass.Error ? 'error' : 'secondary';\r\n }\r\n\r\n /** @ignore */\r\n get id(): string {\r\n return this.data.id || 'ads-snackbar';\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n const overlayWrapper: HTMLElement | null = this.elementRef.nativeElement.closest('.cdk-global-overlay-wrapper');\r\n if (overlayWrapper) {\r\n overlayWrapper.style.zIndex = '1100';\r\n }\r\n }\r\n\r\n /** @ignore */\r\n @HostListener('click')\r\n onSnackbarClick(): void {\r\n if (this.data.closeOnClick) {\r\n this.snackBarRef.dismiss();\r\n }\r\n }\r\n\r\n protected readonly indexedDB = indexedDB;\r\n}\r\n\r\nexport enum PanelClass {\r\n Success = 'success',\r\n Error = 'error',\r\n Primary = 'primary',\r\n}\r\n","<div class=\"container\" (click)=\"onSnackbarClick()\" [id]=\"id\">\r\n <div class=\"snackbar-container\">\r\n <span class=\"snackbar-text\" [innerHTML]=\"data.message\" [id]=\"id + '-details'\"></span>\r\n </div>\r\n @if (!data.hideActionButton) {\r\n <ads-button\r\n [id]=\"id + '-button'\"\r\n [variant]=\"buttonPanelClass\"\r\n (click)=\"data.onButtonClick ? data.onButtonClick() : snackBarRef.dismissWithAction(); $event.stopPropagation()\"\r\n >\r\n {{ data.buttonCaption ?? defaultButtonCaption }}\r\n </ads-button>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { AdsSnackbarComponent } from './snackbar.component';\r\nimport { AdsButtonModule } from '../../buttons/button';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [AdsButtonModule, MatSnackBarModule, CommonModule],\r\n declarations: [AdsSnackbarComponent],\r\n exports: [AdsSnackbarComponent],\r\n})\r\nexport class AdsSnackbarModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\r\nimport { Observable } from 'rxjs';\r\nimport { IViewportService } from './viewport.service.interface';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ViewportService implements IViewportService {\r\n constructor(private breakpointObserver: BreakpointObserver) {}\r\n\r\n /**\r\n * Whether one or more media queries match the current viewport size.\r\n * @param breakpoints\r\n * @returns boolean\r\n */\r\n public isMatched(breakpoints: string | string[] = Breakpoints.Handset): boolean {\r\n return this.breakpointObserver.isMatched(breakpoints);\r\n }\r\n\r\n /**\r\n * Gets an observable of results for the given queries that will emit new results for any changes in matching of the given queries.\r\n * @param breakpoints\r\n * @returns Observable<BreakpointState>\r\n */\r\n public observe(breakpoints: string | string[] = Breakpoints.Handset): Observable<BreakpointState> {\r\n return this.breakpointObserver.observe(breakpoints);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IWindowService } from './window.service.interface';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class WindowService implements IWindowService {\r\n get innerHeight(): number {\r\n return window.innerHeight;\r\n }\r\n\r\n get innerWidth(): number {\r\n return window.innerWidth;\r\n }\r\n\r\n get search(): string {\r\n return window.location.search;\r\n }\r\n\r\n reload(): void {\r\n window.location.reload();\r\n }\r\n\r\n setTimeout(callback: (...args: unknown[]) => void, ms?: number | undefined, ...args: unknown[]): number {\r\n return window.setTimeout(callback, ms, args);\r\n }\r\n\r\n public clearTimeout(id: number): void {\r\n window.clearTimeout(id);\r\n }\r\n}\r\n","import { Directive, HostListener, signal } from '@angular/core';\r\n\r\n@Directive()\r\nexport abstract class AbstractWindowResizeComponent {\r\n protected get mobileWidth(): number {\r\n return 770;\r\n }\r\n\r\n protected constructor() {\r\n this.checkScreenWidth();\r\n }\r\n\r\n /** @ignore */\r\n isMobile = signal<boolean>(false);\r\n\r\n @HostListener('window:resize')\r\n checkScreenWidth() {\r\n this.isMobile.set(window.innerWidth < this.mobileWidth);\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, inject, Renderer2, TemplateRef } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconCross } from '@ascentgl/ads-icons/icons';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { Variant } from '../buttons/button';\r\nimport { AbstractWindowResizeComponent } from '../../services/window/abstract-window-resize.component';\r\n\r\nexport type AdsModalData = {\r\n id?: string;\r\n title?: string;\r\n content: string;\r\n hideCancelButton?: boolean;\r\n hideCrossIcon?: boolean;\r\n showDeleteButton?: boolean;\r\n cancelButtonText?: string;\r\n confirmButtonText?: string;\r\n deleteButtonText?: string;\r\n disabledConfirmButton?: boolean;\r\n deleteButtonVariant?: Variant;\r\n cancelButtonVariant?: Variant;\r\n confirmButtonVariant?: Variant;\r\n actionHint?: string;\r\n headerTemplate?: TemplateRef<unknown>;\r\n contentTemplate?: TemplateRef<unknown>;\r\n actionsTemplate?: TemplateRef<unknown>;\r\n templateData?: GENERIC_COLLECTION;\r\n headerPadding?: string;\r\n contentPadding?: string;\r\n actionsPadding?: string;\r\n actionsCentered?: boolean;\r\n [key: string]: unknown;\r\n};\r\n\r\nexport enum ModalPanelClass {\r\n Confirmation = 'ads-confirmation',\r\n}\r\n\r\nexport enum ModalActionType {\r\n Cancel = 'cancel',\r\n Confirm = 'confirm',\r\n Delete = 'delete',\r\n}\r\n\r\n@Component({\r\n selector: 'ads-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrl: './modal.component.scss',\r\n standalone: false,\r\n})\r\nexport class AdsModalComponent extends AbstractWindowResizeComponent implements AfterViewInit {\r\n /** @ignore */\r\n protected override get mobileWidth(): number {\r\n return 481;\r\n }\r\n\r\n protected dialogRef = inject(MatDialogRef<AdsModalComponent>);\r\n protected registry = inject(AdsIconRegistry);\r\n protected renderer = inject(Renderer2);\r\n protected elRef = inject(ElementRef);\r\n\r\n data = inject<AdsModalData>(MAT_DIALOG_DATA);\r\n\r\n /** @ignore */\r\n private defaultHeaderPadding = '24px 0 16px 24px';\r\n /** @ignore */\r\n private defaultContentPadding = '0 24px 24px 24px';\r\n /** @ignore */\r\n private defaultActionPadding = '24px';\r\n\r\n constructor() {\r\n super();\r\n this.registry.register(adsIconCross);\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n const dialogTitle = this.elRef.nativeElement.querySelector('.mat-mdc-dialog-title');\r\n if (dialogTitle) {\r\n const headerPadding = this.data.headerPadding || this.defaultHeaderPadding;\r\n this.renderer.setStyle(dialogTitle, 'padding', headerPadding);\r\n }\r\n\r\n const dialogContent = this.elRef.nativeElement.querySelector('.mat-mdc-dialog-content');\r\n if (dialogContent) {\r\n const contentPadding = this.data.contentPadding || this.defaultContentPadding;\r\n this.renderer.setStyle(dialogContent, 'padding', contentPadding);\r\n }\r\n\r\n const dialogFooter = this.elRef.nativeElement.querySelector('.mat-mdc-dialog-actions');\r\n if (dialogFooter) {\r\n const footerPadding = this.data.actionsPadding || this.defaultActionPadding;\r\n this.renderer.setStyle(dialogFooter, 'padding', footerPadding);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n get id(): string {\r\n return this.data.id || 'ads-modal';\r\n }\r\n\r\n onCancel(): void {\r\n this.dialogRef.close(ModalActionType.Cancel);\r\n }\r\n\r\n onSubmit(): void {\r\n if (!this.data.disabledConfirmButton) {\r\n this.dialogRef.close(ModalActionType.Confirm);\r\n }\r\n }\r\n\r\n onDelete(): void {\r\n this.dialogRef.close(ModalActionType.Delete);\r\n }\r\n}\r\n","<div mat-dialog-title [id]=\"id + '-title'\">\r\n @if (data.headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"data.headerTemplate; context: { data: data.templateData }\" />\r\n }\r\n\r\n <span class=\"header-text\">{{ data.title }}</span>\r\n\r\n\r\n @if (!data.hideCrossIcon) {\r\n <div class=\"cross-icon-container\" [id]=\"id + '-cross-icon'\">\r\n <ads-icon name=\"cross\" size=\"xxs\" stroke=\"iconPrimary\" (click)=\"onCancel()\" />\r\n </div>\r\n }\r\n</div>\r\n\r\n<div mat-dialog-content [id]=\"id + '-content'\" [class.mobile]=\"isMobile()\">\r\n @if (data.contentTemplate) {\r\n <ng-container *ngTemplateOutlet=\"data.contentTemplate; context: { data: data.templateData }\" />\r\n } @else {\r\n <span [innerHTML]=\"data.content\"></span>\r\n }\r\n</div>\r\n\r\n<div mat-dialog-actions [class.actions-centered]=\"data.actionsCentered\" [class.mobile]=\"isMobile()\">\r\n @if (data.actionsTemplate) {\r\n <ng-container *ngTemplateOutlet=\"data.actionsTemplate; context: { data: data.templateData }\" />\r\n } @else {\r\n @if (data.actionHint) {\r\n <div class=\"action-hint\" [class.mobile]=\"isMobile()\" [id]=\"id + '-action-hint'\">{{ data.actionHint }}</div>\r\n }\r\n <div class=\"actions-container\" [class.mobile]=\"isMobile()\">\r\n @if (data.showDeleteButton) {\r\n <ads-button\r\n [variant]=\"data.deleteButtonVariant ?? 'error'\"\r\n (click)=\"onDelete()\"\r\n [id]=\"id + '-action-delete'\"\r\n [size]=\"isMobile() ? 'sm' : 'base'\"\r\n > @if (data.deleteButtonText) {\r\n {{ data.deleteButtonText }}\r\n } @else {\r\n {{ 'Delete' }}\r\n }\r\n </ads-button>\r\n }\r\n @if (!data.hideCancelButton) {\r\n <ads-button\r\n [variant]=\"data.cancelButtonVariant ?? 'secondary'\"\r\n (click)=\"onCancel()\"\r\n [id]=\"id + '-action-secondary'\"\r\n [size]=\"isMobile() ? 'sm' : 'base'\"\r\n >\r\n @if (data.cancelButtonText) {\r\n {{ data.cancelButtonText }}\r\n } @else {\r\n {{ 'Cancel' }}\r\n }\r\n </ads-button>\r\n }\r\n <ads-button\r\n [disabled]=\"!!data.disabledConfirmButton\"\r\n [variant]=\"data.confirmButtonVariant ?? 'primary'\"\r\n (click)=\"onSubmit()\"\r\n [id]=\"id + '-action-primary'\"\r\n [size]=\"isMobile() ? 'sm' : 'base'\"\r\n >\r\n @if (data.confirmButtonText) {\r\n {{ data.confirmButtonText }}\r\n } @else {\r\n Save\r\n }\r\n </ads-button>\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { AdsButtonModule } from '../buttons/button';\r\nimport { AdsModalComponent } from './modal.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [MatDialogModule, AdsButtonModule, AdsIconModule, NgTemplateOutlet],\r\n declarations: [AdsModalComponent],\r\n exports: [AdsModalComponent],\r\n})\r\nexport class AdsModalModule {}\r\n","import { Component, input, output } from '@angular/core';\r\nimport { Chip } from './chip.types';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconCheck, adsIconCross } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-chip',\r\n templateUrl: './chip.component.html',\r\n styleUrls: ['./chip.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsChipComponent {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register([adsIconCross, adsIconCheck]);\r\n }\r\n\r\n /** The unique id of the chip */\r\n id = input.required<string>();\r\n\r\n /** The text of the chip - optional when using ng-content */\r\n title = input<string>();\r\n\r\n /** Show check icon before text */\r\n showCheckedIcon = input<boolean>(false);\r\n\r\n /** Disable chip */\r\n disabled = input<boolean>(false);\r\n\r\n /** Show delete icon before text */\r\n deletable = input<boolean>(false);\r\n\r\n /** Event emitted when the remove icon is clicked */\r\n deleted = output<string>();\r\n\r\n /** Event emitted when a chip is selected */\r\n selected = output<Chip>();\r\n\r\n /** @ignore */\r\n onSelected() {\r\n this.selected.emit({\r\n id: this.id(),\r\n title: this.title() || '',\r\n });\r\n }\r\n\r\n /** @ignore */\r\n onDelete() {\r\n if (!this.disabled()) {\r\n this.deleted.emit(this.id());\r\n }\r\n }\r\n}\r\n","<div class=\"chip\" [class.disabled]=\"disabled()\" tabindex=\"0\">\r\n @if (showCheckedIcon()) {\r\n <ads-icon name=\"check\" />\r\n }\r\n @if (title()) {\r\n <span (click)=\"onSelected()\">{{ title() }}</span>\r\n } @else {\r\n <span (click)=\"onSelected()\">\r\n <ng-content></ng-content>\r\n </span>\r\n }\r\n @if (deletable()) {\r\n <ads-icon name=\"cross\" class=\"chip-delete\" (click)=\"onDelete()\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsChipComponent } from './chip.component';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n declarations: [AdsChipComponent],\r\n exports: [AdsChipComponent],\r\n imports: [NgClass, NgStyle, AdsIconModule],\r\n})\r\nexport class AdsChipModule {}\r\n","import { AfterContentInit, Component, EventEmitter, input, output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { AdsIconRegistry, IconThemes } from '@ascentgl/ads-icons';\r\nimport { adsIconChevronDown, adsIconChevronUp } from '@ascentgl/ads-icons/icons';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { MatExpansionPanel } from '@angular/material/expansion';\r\n\r\n@Component({\r\n selector: 'ads-expansion-panel',\r\n templateUrl: './expansion-panel.component.html',\r\n styleUrls: ['./expansion-panel.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsExpansionPanelComponent implements AfterContentInit {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register([adsIconChevronDown, adsIconChevronUp]);\r\n }\r\n\r\n /** The unique id of the chip */\r\n id = input<string>('');\r\n\r\n /** The header text */\r\n header = input<string>('');\r\n\r\n /** The Chevron Icon color () */\r\n chevronColor = input<keyof IconThemes>('iconPrimary');\r\n\r\n /** The header template */\r\n headerTemplate = input<TemplateRef<unknown>>();\r\n\r\n /** The header template data */\r\n headerTemplateData = input<GENERIC_COLLECTION>();\r\n\r\n /** Whether the AccordionItem is expanded. */\r\n isExpanded = input<boolean>(false);\r\n\r\n /** Whether the AccordionItem is disabled. */\r\n disabled = input<boolean>(false);\r\n\r\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\r\n width = input<string>('100%');\r\n\r\n /** The Chevron Icon size () */\r\n chevronSize = input<'base' | 'xs'>('base');\r\n\r\n /** Header padding size size () */\r\n headerPadding = input<string>('');\r\n\r\n /** Content padding size size () */\r\n contentPadding = input<string>('');\r\n\r\n expandedChange = output<boolean>();\r\n\r\n /** @ignore */\r\n @ViewChild('panel', { static: true }) panel!: MatExpansionPanel;\r\n\r\n get expanded() {\r\n return this.panel.expanded;\r\n }\r\n\r\n ngAfterContentInit() {\r\n const panelHeader = document.querySelector('.mat-expansion-panel-header') as HTMLElement;\r\n const contentPadding = document.querySelector('.mat-expansion-panel-body') as HTMLElement;\r\n\r\n if (panelHeader && !!this.headerPadding()) {\r\n panelHeader.style.padding = this.headerPadding();\r\n }\r\n\r\n if (contentPadding && !!this.contentPadding()) {\r\n contentPadding.style.padding = this.contentPadding();\r\n }\r\n\r\n this.panel.expandedChange.subscribe(value => this.expandedChange.emit(value));\r\n }\r\n\r\n /** @ignore */\r\n toggleAndStop(panel: MatExpansionPanel, event: MouseEvent) {\r\n panel.toggle();\r\n event.stopPropagation();\r\n }\r\n}\r\n","<mat-expansion-panel [expanded]=\"isExpanded()\" [ngStyle]=\"{ width: width() }\" #panel [disabled]=\"disabled()\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n @if (!!headerTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"headerTemplate()!; context: { data: headerTemplateData() }\" />\r\n } @else {\r\n {{ header() }}\r\n }\r\n </mat-panel-title>\r\n <mat-panel-description (click)=\"toggleAndStop(panel, $event)\">\r\n @if (panel.expanded) {\r\n <ads-icon [size]=\"chevronSize() === 'base' ? 'xs' : 'xxxs'\" name=\"chevron_up\" [theme]=\"chevronColor()\" />\r\n } @else {\r\n <ads-icon [size]=\"chevronSize() === 'base' ? 'xs' : 'xxxs'\" name=\"chevron_down\" [theme]=\"chevronColor()\" />\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <ng-content />\r\n</mat-expansion-panel>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsExpansionPanelComponent } from './expansion-panel.component';\r\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport {\r\n MatExpansionPanel,\r\n MatExpansionPanelDescription,\r\n MatExpansionPanelHeader,\r\n MatExpansionPanelTitle,\r\n} from '@angular/material/expansion';\r\n\r\n@NgModule({\r\n declarations: [AdsExpansionPanelComponent],\r\n exports: [AdsExpansionPanelComponent],\r\n imports: [\r\n NgClass,\r\n NgStyle,\r\n AdsIconModule,\r\n MatExpansionPanel,\r\n MatExpansionPanelTitle,\r\n MatExpansionPanelHeader,\r\n MatExpansionPanelDescription,\r\n NgTemplateOutlet,\r\n ],\r\n})\r\nexport class AdsExpansionPanelModule {}\r\n","import { Component, input, output } from '@angular/core';\r\nimport { MatMenuPanel } from '@angular/material/menu';\r\n\r\n@Component({\r\n selector: 'ads-table-button',\r\n templateUrl: './table-button.component.html',\r\n styleUrls: ['./table-button.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsTableButtonComponent {\r\n /** The unique ID for the button */\r\n id = input<string>('');\r\n\r\n /** Whether the button is disabled */\r\n disabled = input<boolean>(false);\r\n\r\n /** Makes the button take 100% width of its container */\r\n fullWidth = input<boolean>(false);\r\n\r\n /** The menu to trigger when button is clicked */\r\n matMenuTriggerFor = input<MatMenuPanel | null>(null);\r\n\r\n /** Event emitted when the menu is opened */\r\n menuOpened = output<void>();\r\n}\r\n","<button\r\n mat-flat-button\r\n [id]=\"id()\"\r\n [disabled]=\"disabled()\"\r\n [class.full-width]=\"fullWidth()\"\r\n [disableRipple]=\"true\"\r\n [matMenuTriggerFor]=\"matMenuTriggerFor()\"\r\n (menuOpened)=\"menuOpened.emit()\">\r\n <div class=\"content-container\">\r\n <ng-content></ng-content>\r\n </div>\r\n</button>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n signal,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n TemplateRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport {\r\n ModuleRegistry,\r\n ColDef,\r\n FirstDataRenderedEvent,\r\n GridApi,\r\n GridOptions,\r\n GridReadyEvent,\r\n SortChangedEvent,\r\n FilterChangedEvent,\r\n provideGlobalGridOptions,\r\n AllCommunityModule,\r\n themeQuartz,\r\n} from 'ag-grid-community';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport {\r\n adsIconArrowUpAndDown,\r\n adsIconCross,\r\n adsIconFilter,\r\n adsIconVisibilityEyeNone,\r\n} from '@ascentgl/ads-icons/icons';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\n\r\nModuleRegistry.registerModules([AllCommunityModule]);\r\nprovideGlobalGridOptions({ theme: 'legacy' });\r\n\r\n// Define an Enum for breakpoints\r\nexport enum TableBreakpoint {\r\n XS = 'xs',\r\n SM = 'sm',\r\n MD = 'md',\r\n LG = 'lg',\r\n XL = 'xl',\r\n}\r\n\r\nexport interface ColumnVisibilityControl {\r\n field: string;\r\n headerName: string;\r\n control: FormControl<boolean>;\r\n}\r\n\r\n@Component({\r\n selector: 'ads-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsTableComponent implements AfterViewInit, OnDestroy {\r\n /** @ignore */\r\n constructor(\r\n private elementRef: ElementRef,\r\n private registry: AdsIconRegistry,\r\n private cdr: ChangeDetectorRef,\r\n ) {\r\n this.registry.register([adsIconFilter, adsIconVisibilityEyeNone, adsIconArrowUpAndDown, adsIconCross]);\r\n }\r\n\r\n /** The grid's width */\r\n @Input() width = '100%';\r\n\r\n /** The grid's height */\r\n @Input() height = '100%';\r\n\r\n /** Custom header template for the table header actions */\r\n @Input() headerTemplate?: TemplateRef<unknown>;\r\n\r\n /** The grid options for ag-Grid */\r\n @Input() gridOptions?: GridOptions;\r\n\r\n /** The data to be displayed in the grid */\r\n @Input() rowData!: GENERIC_COLLECTION[];\r\n\r\n /** The column definitions for the grid */\r\n @Input() columnDefs?: ColDef[];\r\n\r\n /** The custom table icons */\r\n @Input() icons?: GENERIC_COLLECTION;\r\n\r\n /** Default column definitions that will be applied to all columns */\r\n @Input() defaultColDef: ColDef<GENERIC_COLLECTION> = {};\r\n\r\n /** Loading data status */\r\n @Input() loading = false;\r\n\r\n /** Column data by breakPoints */\r\n @Input() columnDefsByBreakpoint: Record<TableBreakpoint, ColDef[]> = {\r\n [TableBreakpoint.XS]: [],\r\n [TableBreakpoint.SM]: [],\r\n [TableBreakpoint.MD]: [],\r\n [TableBreakpoint.LG]: [],\r\n [TableBreakpoint.XL]: [],\r\n };\r\n\r\n /** Show/hide the header with the column visibility button */\r\n @Input() showHeaderActions = false;\r\n\r\n /** Event emitted when all filters are cleared */\r\n @Output() filtersCleared = new EventEmitter<void>();\r\n\r\n /** @ignore */\r\n @ViewChild(MatMenuTrigger) menuTrigger!: MatMenuTrigger;\r\n\r\n /** @ignore */\r\n tableColumnDefs = signal<ColDef[]>([]);\r\n\r\n /** @ignore */\r\n columnVisibilityList = signal<ColumnVisibilityControl[]>([]);\r\n\r\n /** @ignore */\r\n private destroy$ = new Subject<void>();\r\n\r\n /** @ignore */\r\n private cachedDefaultColDef!: ColDef<GENERIC_COLLECTION>;\r\n\r\n /** @ignore */\r\n private currentBreakpoint?: TableBreakpoint;\r\n\r\n /** @ignore */\r\n private resizeObserver?: ResizeObserver;\r\n\r\n /** @ignore */\r\n gridApi?: GridApi;\r\n\r\n /** @ignore */\r\n private truncationStates = new Map<string, boolean>();\r\n\r\n /** @ignore */\r\n private currentSortField: string | null = null;\r\n\r\n /** @ignore */\r\n private currentSortDirection: 'asc' | 'desc' | null = null;\r\n\r\n /** @ignore */\r\n filteredColumns: string[] = [];\r\n\r\n /** @ignore */\r\n private getBreakpoint(width: number): TableBreakpoint {\r\n if (width < 273) return TableBreakpoint.XS;\r\n if (width < 418) return TableBreakpoint.SM;\r\n if (width < 706) return TableBreakpoint.MD;\r\n if (width < 1081) return TableBreakpoint.LG;\r\n return TableBreakpoint.XL;\r\n }\r\n\r\n /** @ignore */\r\n getDefaultColDef(): ColDef<GENERIC_COLLECTION> {\r\n if (!this.cachedDefaultColDef) {\r\n this.cachedDefaultColDef = {\r\n ...this.defaultColDef,\r\n unSortIcon: true,\r\n };\r\n }\r\n return this.cachedDefaultColDef;\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n // Observe the table element for resize changes\r\n const tableElement = this.elementRef.nativeElement.querySelector('ag-grid-angular');\r\n\r\n if (tableElement) {\r\n this.resizeObserver = new ResizeObserver(() => {\r\n this.updateColumnDefs(tableElement.clientWidth);\r\n this.gridApi?.sizeColumnsToFit();\r\n });\r\n this.resizeObserver.observe(tableElement);\r\n }\r\n\r\n // Initialize column visibility list\r\n this.initializeColumnVisibility();\r\n }\r\n\r\n /** @ignore */\r\n private initializeColumnVisibility(): void {\r\n // Unsubscribe from previous subscriptions\r\n this.unsubscribeFromControls();\r\n\r\n // Preserve existing visibility states\r\n const existingVisibilityStates = new Map<string, boolean>();\r\n const currentList = this.columnVisibilityList();\r\n currentList.forEach((item) => {\r\n existingVisibilityStates.set(item.field, item.control.value);\r\n });\r\n\r\n const columns = this.getActiveColumnDefs();\r\n const visibilityList: ColumnVisibilityControl[] = columns.map((col) => {\r\n const fieldName = col.field || '';\r\n // Use existing state if available, otherwise use column definition\r\n const isVisible = existingVisibilityStates.get(fieldName) ?? !col.hide;\r\n\r\n const control = new FormControl<boolean>(isVisible, { nonNullable: true });\r\n\r\n // Subscribe to value changes\r\n control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n this.updateGridColumns();\r\n });\r\n\r\n return {\r\n field: fieldName,\r\n headerName: col.headerName || col.field || '',\r\n control: control,\r\n };\r\n });\r\n\r\n this.columnVisibilityList.set(visibilityList);\r\n }\r\n\r\n /** @ignore */\r\n private unsubscribeFromControls(): void {\r\n // This will trigger takeUntil for all subscriptions\r\n this.destroy$.next();\r\n }\r\n\r\n /** @ignore */\r\n private getActiveColumnDefs(): ColDef[] {\r\n if (this.columnDefs?.length) {\r\n return this.columnDefs;\r\n }\r\n\r\n const currentBreakpoint =\r\n this.currentBreakpoint ||\r\n this.getBreakpoint(this.elementRef.nativeElement.querySelector('ag-grid-angular')?.clientWidth || 1000);\r\n\r\n let columns = this.columnDefsByBreakpoint[currentBreakpoint] ?? [];\r\n if (columns.length === 0) {\r\n columns = this.getFallbackColumnDefs(currentBreakpoint);\r\n }\r\n\r\n return columns;\r\n }\r\n\r\n /** @ignore */\r\n openColumnVisibilityMenu(): void {\r\n // Simple approach: update truncation states after a short delay when a menu opens\r\n setTimeout(() => {\r\n this.updateTruncationStates();\r\n }, 150);\r\n }\r\n\r\n /** @ignore */\r\n hideAllColumns(): void {\r\n const currentList = this.columnVisibilityList();\r\n currentList.forEach((item) => {\r\n item.control.setValue(false);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n showAllColumns(): void {\r\n const currentList = this.columnVisibilityList();\r\n currentList.forEach((item) => {\r\n item.control.setValue(true);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n get allColumnsVisible(): boolean {\r\n return this.columnVisibilityList().every((item) => item.control.value);\r\n }\r\n\r\n /** @ignore */\r\n get allColumnsHidden(): boolean {\r\n return this.columnVisibilityList().every((item) => !item.control.value);\r\n }\r\n\r\n /** @ignore */\r\n get hiddenColumnsCount(): number {\r\n return this.columnVisibilityList().filter((item) => !item.control.value).length;\r\n }\r\n\r\n /** @ignore */\r\n get hideColumnButtonLabel(): string {\r\n const hiddenCount = this.hiddenColumnsCount;\r\n if (hiddenCount === 0) {\r\n return 'Hide Column';\r\n } else if (hiddenCount === 1) {\r\n return '1 Hidden Column';\r\n } else {\r\n return `${hiddenCount} Hidden Columns`;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n get sortButtonLabel(): string {\r\n if (this.isSortedTable) {\r\n const column = this.getActiveColumnDefs().find((col) => col.field === this.currentSortField);\r\n const columnName = column?.headerName || column?.field || this.currentSortField;\r\n return `Sorted by ${columnName}`;\r\n }\r\n return 'Sort';\r\n }\r\n\r\n /** @ignore */\r\n get filterButtonLabel(): string {\r\n if (this.filteredColumns.length === 0) {\r\n return 'Filter';\r\n } else if (this.filteredColumns.length === 1) {\r\n const column = this.getActiveColumnDefs().find((col) => col.field === this.filteredColumns[0]);\r\n const columnName = column?.headerName || column?.field || this.filteredColumns[0];\r\n return `Filtered by ${columnName}`;\r\n } else {\r\n const columnNames = this.filteredColumns.map((fieldName) => {\r\n const column = this.getActiveColumnDefs().find((col) => col.field === fieldName);\r\n return column?.headerName || column?.field || fieldName;\r\n });\r\n return `Filtered by ${columnNames.join(', ')}`;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n get isSortedTable(): boolean {\r\n return !!this.currentSortField && !!this.currentSortDirection;\r\n }\r\n\r\n /** @ignore */\r\n get isFilteredTable(): boolean {\r\n return this.filteredColumns.length > 0;\r\n }\r\n\r\n /** @ignore */\r\n private updateSortingState(): void {\r\n if (this.gridApi) {\r\n const sortModel = this.gridApi.getColumnState();\r\n const sortedColumn = sortModel.find((col) => col.sort !== null);\r\n\r\n if (sortedColumn && sortedColumn.sort) {\r\n this.currentSortField = sortedColumn.colId;\r\n this.currentSortDirection = sortedColumn.sort as 'asc' | 'desc';\r\n } else {\r\n this.currentSortField = null;\r\n this.currentSortDirection = null;\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private updateFilteringState(): void {\r\n if (this.gridApi) {\r\n const filterModel = this.gridApi.getFilterModel();\r\n this.filteredColumns = Object.keys(filterModel);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private onSortChanged(): void {\r\n this.updateSortingState();\r\n }\r\n\r\n /** @ignore */\r\n private onFilterChanged(): void {\r\n this.updateFilteringState();\r\n }\r\n\r\n /** @ignore */\r\n sortChanged($event: SortChangedEvent): void {\r\n this.onSortChanged();\r\n this.gridOptions?.onSortChanged?.($event);\r\n }\r\n\r\n /** @ignore */\r\n filterChanged($event: FilterChangedEvent): void {\r\n this.onFilterChanged();\r\n this.gridOptions?.onFilterChanged?.($event);\r\n }\r\n\r\n /** @ignore */\r\n clearAllFilters(): void {\r\n if (this.gridApi) {\r\n this.gridApi.setFilterModel(null);\r\n this.updateFilteringState();\r\n // Emit event to notify the header template that filters were cleared\r\n this.filtersCleared.emit();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n clearAllSorting(): void {\r\n if (this.gridApi) {\r\n this.gridApi.applyColumnState({\r\n defaultState: { sort: null },\r\n });\r\n this.updateSortingState();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private updateGridColumns(): void {\r\n const visibilityMap = new Map<string, boolean>();\r\n this.columnVisibilityList().forEach((item) => {\r\n visibilityMap.set(item.field, item.control.value);\r\n });\r\n\r\n const currentColumns = this.getActiveColumnDefs();\r\n const updatedColumns = currentColumns.map((col) => ({\r\n ...col,\r\n hide: !visibilityMap.get(col.field || ''),\r\n }));\r\n\r\n this.tableColumnDefs.set(updatedColumns);\r\n\r\n // Fit columns to grid width after visibility changes\r\n setTimeout(() => {\r\n this.gridApi?.sizeColumnsToFit();\r\n }, 0);\r\n }\r\n\r\n /** @ignore */\r\n private onGridReady(params: GridReadyEvent): void {\r\n this.gridApi = params.api;\r\n const tableElement = this.elementRef.nativeElement.querySelector('ag-grid-angular');\r\n if (tableElement) {\r\n this.updateColumnDefs(tableElement.clientWidth);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private onFirstDataRendered(params: FirstDataRenderedEvent): void {\r\n params.api.sizeColumnsToFit();\r\n }\r\n\r\n /** @ignore */\r\n getAgGridIcons(): GENERIC_COLLECTION {\r\n const icons = {\r\n sortAscending:\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\r\n ' <path d=\"M3.5 2.29227L5.12266 4.70574L1.87734 4.70574L3.5 2.29227Z\" stroke-width=\"2\"/>\\n' +\r\n '</svg>',\r\n sortDescending:\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\r\n ' <path d=\"M3.5 10.5738L1.87734 8.16029L5.12266 8.16029L3.5 10.5738Z\" stroke-width=\"2\"/>\\n' +\r\n '</svg>',\r\n\r\n sortUnSort:\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\r\n ' <path d=\"M3.5 2.29227L5.12266 4.70574L1.87734 4.70574L3.5 2.29227Z\" stroke-width=\"2\"/>\\n' +\r\n ' <path d=\"M3.5 10.5738L1.87734 8.16029L5.12266 8.16029L3.5 10.5738Z\" stroke-width=\"2\"/>\\n' +\r\n '</svg>',\r\n filter:\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"11\" viewBox=\"0 0 13 11\">\\n' +\r\n ' <path d=\"M8.45044 9.03931V10.4504H4.14966V9.03931H8.45044ZM10.4504 4.59497V6.00513H2.14966V4.59497H10.4504ZM12.4504 0.149658V1.56079H0.149658V0.149658H12.4504Z\" stroke-width=\"0.3\"/>\\n' +\r\n '</svg>\\n',\r\n };\r\n\r\n if (this.icons) {\r\n Object.assign(icons, this.icons);\r\n }\r\n\r\n return icons;\r\n }\r\n\r\n /** @ignore */\r\n gridReady($event: GridReadyEvent): void {\r\n this.onGridReady($event);\r\n this.gridOptions?.onGridReady?.($event);\r\n }\r\n\r\n /** @ignore */\r\n firstDataRendered($event: FirstDataRenderedEvent): void {\r\n this.onFirstDataRendered($event);\r\n this.gridOptions?.onFirstDataRendered?.($event);\r\n }\r\n\r\n /** @ignore */\r\n private updateColumnDefs(tableWidth: number): void {\r\n const newBreakpoint = this.getBreakpoint(tableWidth);\r\n // If columnDefs is provided, use it and ignore breakpoints\r\n if (this.columnDefs?.length) {\r\n this.tableColumnDefs.set(this.columnDefs);\r\n this.initializeColumnVisibility();\r\n return;\r\n }\r\n if (newBreakpoint !== this.currentBreakpoint) {\r\n this.currentBreakpoint = newBreakpoint;\r\n // Get the column definitions for the current breakpoint or inherit from a larger breakpoint\r\n let columnsToSet = this.columnDefsByBreakpoint[newBreakpoint] ?? [];\r\n\r\n // If columns are not set for the current breakpoint, fall back to a larger breakpoint\r\n if (columnsToSet.length === 0) {\r\n columnsToSet = this.getFallbackColumnDefs(newBreakpoint);\r\n }\r\n\r\n this.tableColumnDefs.set(columnsToSet);\r\n this.initializeColumnVisibility();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private getFallbackColumnDefs(currentBreakpoint: TableBreakpoint): ColDef[] {\r\n const breakpoints: TableBreakpoint[] = [\r\n TableBreakpoint.XS,\r\n TableBreakpoint.SM,\r\n TableBreakpoint.MD,\r\n TableBreakpoint.LG,\r\n TableBreakpoint.XL,\r\n ];\r\n const index = breakpoints.indexOf(currentBreakpoint);\r\n\r\n for (let i = index + 1; i < breakpoints.length; i++) {\r\n if (this.columnDefsByBreakpoint[breakpoints[i]]?.length) {\r\n return this.columnDefsByBreakpoint[breakpoints[i]];\r\n }\r\n }\r\n\r\n return []; // Return empty if no suitable columnDefs found\r\n }\r\n\r\n /** @ignore */\r\n private updateTruncationStates(): void {\r\n // Clear previous states\r\n this.truncationStates.clear();\r\n\r\n // Search for menu overlay in the document body (Material creates overlays there)\r\n const overlayPanes = document.querySelectorAll('.cdk-overlay-pane');\r\n let menuPanel: Element | null = null;\r\n\r\n // Find the overlay that contains our menu content\r\n for (let i = 0; i < overlayPanes.length; i++) {\r\n const pane = overlayPanes[i];\r\n const menuContent = pane.querySelector('.menu-content');\r\n if (menuContent) {\r\n menuPanel = pane;\r\n break;\r\n }\r\n }\r\n\r\n if (menuPanel) {\r\n const columnNameElements = menuPanel.querySelectorAll('.column-name');\r\n columnNameElements.forEach((element, index) => {\r\n const htmlElement = element as HTMLElement;\r\n const column = this.columnVisibilityList()[index];\r\n if (column) {\r\n const isTruncated = htmlElement.scrollWidth > htmlElement.clientWidth;\r\n this.truncationStates.set(column.headerName, isTruncated);\r\n }\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n getTooltipDisabled(headerName: string): boolean {\r\n return !this.truncationStates.get(headerName);\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n // Clean up the observer when the component is destroyed\r\n this.resizeObserver?.disconnect();\r\n this.unsubscribeFromControls();\r\n }\r\n\r\n protected readonly themeQuartz = themeQuartz;\r\n}\r\n","<div class=\"ads-table-container\" [style.width]=\"width\" [class.with-header]=\"showHeaderActions\">\r\n @if (showHeaderActions) {\r\n <div class=\"table-header\">\r\n <div class=\"header-template\">\r\n @if (headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\" />\r\n }\r\n </div>\r\n\r\n <div class=\"header-actions\">\r\n <ads-table-button\r\n id=\"show-hide-columns-button\"\r\n [matMenuTriggerFor]=\"columnVisibilityMenu\"\r\n (menuOpened)=\"openColumnVisibilityMenu()\"\r\n >\r\n <ads-icon\r\n name=\"visibility_eye_none\"\r\n theme=\"secondary\"\r\n stroke=\"secondary\"\r\n size=\"xxxs\"\r\n />\r\n {{ hideColumnButtonLabel }}\r\n </ads-table-button>\r\n\r\n <ads-table-button\r\n id=\"filter-button\"\r\n [disabled]=\"!isFilteredTable\"\r\n (click)=\"clearAllFilters()\"\r\n >\r\n <ads-icon\r\n name=\"filter\"\r\n theme=\"secondary\"\r\n size=\"xxxs\"\r\n />\r\n {{ filterButtonLabel }}\r\n\r\n @if(isFilteredTable) {\r\n <ads-icon\r\n name=\"cross\"\r\n stroke=\"secondary\"\r\n size=\"xxxs\"\r\n />\r\n }\r\n </ads-table-button>\r\n <ads-table-button\r\n id=\"sort-button\"\r\n [disabled]=\"!isSortedTable\"\r\n (click)=\"clearAllSorting()\"\r\n >\r\n <ads-icon\r\n name=\"arrow_up_and_down\"\r\n theme=\"secondary\"\r\n size=\"xxxs\"\r\n />\r\n {{ sortButtonLabel }}\r\n @if (isSortedTable) {\r\n <ads-icon\r\n name=\"cross\"\r\n stroke=\"secondary\"\r\n size=\"xxxs\"\r\n />\r\n }\r\n </ads-table-button>\r\n </div>\r\n </div>\r\n }\r\n\r\n <ag-grid-angular\r\n [ngStyle]=\"{ height: height }\"\r\n [icons]=\"getAgGridIcons()\"\r\n class=\"ag-theme-quartz\"\r\n [gridOptions]=\"gridOptions\"\r\n [rowData]=\"rowData\"\r\n [columnDefs]=\"tableColumnDefs()\"\r\n [defaultColDef]=\"getDefaultColDef()\"\r\n (gridReady)=\"gridReady($event)\"\r\n (firstDataRendered)=\"firstDataRendered($event)\"\r\n (sortChanged)=\"sortChanged($event)\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [theme]=\"themeQuartz\"\r\n [loading]=\"loading\"\r\n />\r\n</div>\r\n\r\n<!-- Column Visibility Menu -->\r\n<mat-menu #columnVisibilityMenu=\"matMenu\" class=\"column-visibility-menu\" [class.has-header]=\"showHeaderActions\">\r\n <div class=\"menu-content\" (click)=\"$event.stopPropagation()\">\r\n <div class=\"dropdown-body\">\r\n @for (column of columnVisibilityList(); track $index) {\r\n <div class=\"column-row\">\r\n <span\r\n class=\"column-name\"\r\n [matTooltip]=\"column.headerName\"\r\n [matTooltipDisabled]=\"getTooltipDisabled(column.headerName)\"\r\n >\r\n {{ column.headerName }}\r\n </span>\r\n <div class=\"column-toggle\">\r\n <ads-slide-toggle\r\n [id]=\"'toggle-' + column.field\"\r\n [control]=\"column.control\"\r\n [showFooter]=\"false\"\r\n [customTitles]=\"['Show', 'Hide']\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <ads-divider />\r\n\r\n <div class=\"dropdown-footer\">\r\n <ads-button\r\n [fullWidth]=\"true\"\r\n (click)=\"hideAllColumns()\"\r\n [disabled]=\"allColumnsHidden\"\r\n variant=\"tertiary\"\r\n id='hide-all-button'\r\n size=\"xs\"\r\n >\r\n Hide All\r\n </ads-button>\r\n <ads-button\r\n [fullWidth]=\"true\"\r\n (click)=\"showAllColumns()\"\r\n [disabled]=\"allColumnsVisible\"\r\n variant=\"tertiary\"\r\n id=\"show-all-button\"\r\n size=\"xs\"\r\n >\r\n Show All\r\n </ads-button>\r\n </div>\r\n </div>\r\n</mat-menu>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { AdsTableButtonComponent } from './table-button.component';\r\n\r\n@NgModule({\r\n declarations: [AdsTableButtonComponent],\r\n exports: [AdsTableButtonComponent],\r\n imports: [CommonModule, MatButtonModule, MatMenuModule],\r\n})\r\nexport class AdsTableButtonModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsTableComponent } from './table.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { AdsSlideToggle } from '../form-fields/selection-fields/slide-toggle';\r\nimport { AdsButtonModule } from '../buttons/button';\r\nimport { AdsTableButtonModule } from './components/table-button/table-button.module';\r\nimport { AdsDividerModule } from '../divider';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\n@NgModule({\r\n declarations: [AdsTableComponent],\r\n imports: [\r\n CommonModule,\r\n AdsIconModule,\r\n AgGridAngular,\r\n MatDialogModule,\r\n AdsSlideToggle,\r\n AdsButtonModule,\r\n AdsTableButtonModule,\r\n AdsDividerModule,\r\n MatTooltip,\r\n MatMenuModule,\r\n ],\r\n exports: [AdsTableComponent],\r\n})\r\nexport class AdsTableModule {}\r\n","import { Component, input } from '@angular/core';\r\nimport { NavMenuItem } from './nav-menu.types';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconUserCircle, adsIconMenuMoreInfo } from '@ascentgl/ads-icons/icons';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'ads-nav-menu',\r\n styleUrls: ['nav-menu.component.scss'],\r\n templateUrl: 'nav-menu.component.html',\r\n standalone: false\r\n})\r\nexport class AdsNavMenuComponent {\r\n constructor(\r\n private registry: AdsIconRegistry,\r\n private router: Router\r\n ) {\r\n this.registry.register([adsIconUserCircle, adsIconMenuMoreInfo]);\r\n }\r\n\r\n /** @ignore */\r\n onUserProfileClick() {\r\n if (!this.userProfilePath()) return;\r\n\r\n this.router.navigate([this.userProfilePath()]);\r\n }\r\n\r\n /**\r\n * Array of menu items to display in the main menu\r\n */\r\n navMenuItems = input.required<NavMenuItem[]>();\r\n\r\n /** Image url path */\r\n iconUrl = input<string>();\r\n\r\n /** Optional label text before icon */\r\n label = input<string>();\r\n\r\n /** Optional path to the user profile */\r\n userProfilePath = input<string>();\r\n\r\n}\r\n","<div class=\"ads-avatar-container\">\r\n @if (iconUrl()) {\r\n <img [src]=\"iconUrl()!\" alt=\"User Logo\" height=\"48\" width=\"48\" />\r\n } @else {\r\n <ads-icon name=\"user_circle\" theme=\"secondary\" />\r\n }\r\n @if (label()) {\r\n <span (click)=\"onUserProfileClick()\" [class.navigate]=\"userProfilePath()\">{{ label() }}</span>\r\n }\r\n\r\n <ads-icon class=\"more-info-icon\" name=\"menu_more_info\" theme=\"secondary\" [matMenuTriggerFor]=\"menu\" />\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\" [class]=\"'ads-mat-menu'\">\r\n @for (item of navMenuItems(); track $index) {\r\n @if (item.template) {\r\n <ng-container *ngTemplateOutlet=\"item.template; context: { menuItem: item }\" />\r\n } @else if (item.href) {\r\n <button mat-menu-item [routerLink]=\"item.href!\" routerLinkActive=\"selected\">\r\n <ng-container *ngTemplateOutlet=\"text; context: { menuItem: item }\" />\r\n </button>\r\n } @else {\r\n <button mat-menu-item (click)=\"item.onClick ? item.onClick() : null\">\r\n <ng-container *ngTemplateOutlet=\"text; context: { menuItem: item }\" />\r\n </button>\r\n }\r\n }\r\n</mat-menu>\r\n\r\n<ng-template #text let-item=\"menuItem\">\r\n <div class=\"ads-menu-item-container\">\r\n @if (item.icon) {\r\n <ads-icon [id]=\"item.id\" [name]=\"item.icon\" size=\"sm\" theme=\"iconPrimary\"></ads-icon>\r\n }\r\n <span>{{ item.label }}</span>\r\n </div>\r\n</ng-template>\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsNavMenuComponent } from './nav-menu.component';\r\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AdsIconModule,\r\n NgOptimizedImage,\r\n MatMenu,\r\n MatMenuTrigger,\r\n RouterLinkActive,\r\n MatMenuItem,\r\n RouterLink,\r\n ],\r\n exports: [AdsNavMenuComponent],\r\n declarations: [AdsNavMenuComponent],\r\n})\r\nexport class AdsNavMenuModule {}\r\n","import { AfterViewInit, Directive, effect, ElementRef, input, OnDestroy, OnInit, signal } from '@angular/core';\r\nimport { SplitComponent, SplitGutterInteractionEvent } from 'angular-split';\r\nimport { Subscription } from 'rxjs';\r\nimport { DomHelper } from '@ascentgl/ads-utils';\r\n\r\n@Directive()\r\nexport abstract class AbstractSideNavBarComponent implements OnInit, AfterViewInit, OnDestroy {\r\n /** The default expanded width for the sidebar */\r\n defaultExpandedWidth = input<number>(220);\r\n\r\n /** The max expanded width for the sidebar */\r\n maxExpandedWidth = input<number>(600);\r\n\r\n /** @ignore */\r\n isCollapsed = signal<boolean>(false);\r\n\r\n /** @ignore */\r\n sidebarSize = signal<number>(this.defaultExpandedWidth());\r\n\r\n /** @ignore */\r\n abstract localStorageName: string;\r\n\r\n /** @ignore */\r\n abstract splitter: SplitComponent;\r\n\r\n /** @ignore */\r\n abstract sideNavArea: ElementRef;\r\n\r\n /** @ignore */\r\n splitterSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n abstract widthToCollapsed: number;\r\n\r\n /** @ignore */\r\n private minWidth = 50;\r\n\r\n protected constructor() {\r\n effect(() => {\r\n /**\r\n * triggering window resize when sidebar size changes will allow\r\n * other components to react to the change in sidebar size\r\n */\r\n if (this.sidebarSize()) {\r\n DomHelper.triggerWindowResize();\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit() {\r\n this.initSideBarSize();\r\n }\r\n\r\n /** @ignore */\r\n initSideBarSize(): void {\r\n if (localStorage.getItem(this.localStorageName)) {\r\n this.sidebarSize.set(JSON.parse(localStorage.getItem(this.localStorageName)!));\r\n }\r\n setTimeout(() => {\r\n this.isCollapsed.set(this.sidebarSize() <= this.widthToCollapsed);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit() {\r\n this.splitterSubscribe();\r\n }\r\n\r\n /** @ignore */\r\n splitterSubscribe(): void {\r\n setTimeout(() => {\r\n if (this.splitter) {\r\n this.splitterSubscription = this.splitter.dragProgress$.subscribe((data) => {\r\n const newSize = Number(data.sizes[0]);\r\n this.isCollapsed.set(newSize <= this.widthToCollapsed);\r\n });\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n dragEnd(event: SplitGutterInteractionEvent): void {\r\n const newSize = Number(event.sizes[0]);\r\n this.saveLocalStorage(newSize);\r\n this.sidebarSize.set(newSize);\r\n }\r\n\r\n /** Expand the sidebar between collapsed and expanded */\r\n /** @ignore */\r\n expandSidebar(): void {\r\n this.isCollapsed.set(!this.isCollapsed());\r\n const expectedWidth = this.isCollapsed() ? this.minWidth : this.defaultExpandedWidth();\r\n this.saveLocalStorage(expectedWidth);\r\n this.sidebarSize.set(expectedWidth);\r\n }\r\n\r\n /** Save current width to the local storage */\r\n /** @ignore */\r\n saveLocalStorage(size: number): void {\r\n localStorage.setItem(this.localStorageName, JSON.stringify(size));\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy() {\r\n if (this.splitterSubscription) this.splitterSubscription.unsubscribe();\r\n }\r\n}\r\n","import { Component, ElementRef, input, TemplateRef, ViewChild, computed } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconSearch } from '@ascentgl/ads-icons/icons';\r\nimport { NavItem } from './nav-item.types';\r\nimport { AbstractSideNavBarComponent } from './abstract-side-nav-bar.component';\r\nimport { SplitComponent } from 'angular-split';\r\n\r\n@Component({\r\n selector: 'ads-side-nav-bar',\r\n styleUrls: ['side-nav-bar.component.scss'],\r\n templateUrl: 'side-nav-bar.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsSideNavBarComponent extends AbstractSideNavBarComponent {\r\n /** @ignore */\r\n constructor(private registry: AdsIconRegistry) {\r\n super();\r\n this.registry.register([adsIconSearch]);\r\n }\r\n\r\n /** The search template */\r\n searchTemplate = input<TemplateRef<unknown>>();\r\n\r\n /** The extra data template below search */\r\n extraDataTemplate = input<TemplateRef<unknown>>();\r\n\r\n /** Array of nav elements */\r\n navItems = input<NavItem[]>([]);\r\n\r\n /** @ignore */\r\n localStorageName = 'side-nav-bar-width';\r\n\r\n /** @ignore */\r\n widthToCollapsed = 70;\r\n\r\n /** @ignore */\r\n @ViewChild('splitter') splitter!: SplitComponent;\r\n\r\n /** @ignore */\r\n @ViewChild('sideNavArea', { read: ElementRef }) sideNavArea!: ElementRef;\r\n\r\n /** @ignore */\r\n regularNavItems = computed(() => this.navItems().filter(item => !item.stickToBottom));\r\n\r\n /** @ignore */\r\n bottomNavItems = computed(() => this.navItems().filter(item => item.stickToBottom));\r\n\r\n /** @ignore */\r\n hasBottomItems = computed(() => this.bottomNavItems().length > 0);\r\n}\r\n","<as-split\r\n #splitter\r\n [useTransition]=\"true\"\r\n unit=\"pixel\"\r\n [gutterSize]=\"10\"\r\n (gutterDblClick)=\"expandSidebar()\"\r\n [gutterDblClickDuration]=\"500\"\r\n (dragEnd)=\"dragEnd($event)\"\r\n>\r\n <as-split-area [size]=\"sidebarSize()\" [minSize]=\"50\" [maxSize]=\"maxExpandedWidth()\" #sideNavArea>\r\n <div class=\"left-side-content-container\">\r\n <div class=\"logo-container\">\r\n <a [routerLink]=\"'/'\">\r\n <ads-primary-logo [mobileWidth]=\"70\" [isCollapsed]=\"true\" class=\"show-on-collapsed\" />\r\n <ads-primary-logo [mobileWidth]=\"70\" [isCollapsed]=\"false\" class=\"hide-on-collapsed\" />\r\n </a>\r\n </div>\r\n\r\n <div class=\"nav-items-wrapper\">\r\n <!-- Regular navigation items -->\r\n <div class=\"nav-items-container\">\r\n @for (item of regularNavItems(); track $index) {\r\n @if (item.click) {\r\n <a\r\n class=\"ads-nav-link {{item.class}}\"\r\n (click)=\"item.click()\"\r\n >\r\n <div class=\"ads-nav-item-container\">\r\n @if (!!item.icon) {\r\n <ads-icon [name]=\"item.icon!\" size=\"sm\" theme=\"iconPrimary\" stroke=\"iconPrimary\" />\r\n }\r\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\r\n </div>\r\n </a>\r\n } @else {\r\n <a\r\n [routerLink]=\"item.href\"\r\n routerLinkActive=\"active-nav-link\"\r\n [routerLinkActiveOptions]=\"{ exact: true }\"\r\n class=\"ads-nav-link {{item.class}}\"\r\n >\r\n <div class=\"ads-nav-item-container\">\r\n @if (!!item.icon) {\r\n <ads-icon [name]=\"item.icon!\" size=\"sm\" theme=\"iconPrimary\" stroke=\"iconPrimary\" />\r\n }\r\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\r\n </div>\r\n </a>\r\n }\r\n }\r\n </div>\r\n\r\n <!-- Bottom navigation items -->\r\n @if (hasBottomItems()) {\r\n <div class=\"bottom-nav-section\">\r\n <div class=\"nav-items-container bottom-items\">\r\n @for (item of bottomNavItems(); track $index) {\r\n @if (item.click) {\r\n <a\r\n class=\"ads-nav-link bottom-item {{item.class}}\"\r\n (click)=\"item.click()\"\r\n >\r\n <div class=\"ads-nav-item-container\">\r\n @if (!!item.icon) {\r\n <ads-icon [name]=\"item.icon!\" size=\"sm\" theme=\"iconPrimary\" stroke=\"iconPrimary\" />\r\n }\r\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\r\n </div>\r\n </a>\r\n } @else {\r\n <a\r\n [routerLink]=\"item.href\"\r\n routerLinkActive=\"active-nav-link\"\r\n [routerLinkActiveOptions]=\"{ exact: true }\"\r\n class=\"ads-nav-link bottom-item {{item.class}}\"\r\n >\r\n <div class=\"ads-nav-item-container\">\r\n @if (!!item.icon) {\r\n <ads-icon [name]=\"item.icon!\" size=\"sm\" theme=\"iconPrimary\" stroke=\"iconPrimary\" />\r\n }\r\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\r\n </div>\r\n </a>\r\n }\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </as-split-area>\r\n\r\n <as-split-area>\r\n <ng-content></ng-content>\r\n </as-split-area>\r\n</as-split>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsSideNavBarComponent } from './side-nav-bar.component';\r\nimport { AdsPrimaryLogoModule } from '../../logo/primary-logo';\r\nimport { SplitAreaComponent, SplitComponent } from 'angular-split';\r\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsDividerModule } from '../../divider';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AdsPrimaryLogoModule,\r\n SplitComponent,\r\n SplitAreaComponent,\r\n RouterOutlet,\r\n RouterLink,\r\n RouterLinkActive,\r\n AdsIconModule,\r\n AdsDividerModule,\r\n ],\r\n exports: [AdsSideNavBarComponent],\r\n declarations: [AdsSideNavBarComponent],\r\n})\r\nexport class AdsSideNavBarModule {}\r\n","import { adsIcon } from '@ascentgl/ads-icons/icons';\r\n\r\nexport type NavItem = {\r\n label: string;\r\n icon: adsIcon;\r\n href?: string;\r\n click?: () => void;\r\n stickToBottom?: boolean;\r\n class?: string;\r\n};\r\n\r\n/**\r\n * Note: Only one of 'href' or 'click' should be used per NavItem.\r\n */\r\n","import {\r\n Component,\r\n computed,\r\n effect,\r\n ElementRef,\r\n HostListener,\r\n input,\r\n signal,\r\n ViewChild,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { AbstractSideNavBarComponent } from '../side-nav-bar/abstract-side-nav-bar.component';\r\nimport { ScmsNavItem, ScmsNavSubItem } from './scms-nav-item.types';\r\nimport { Router } from '@angular/router';\r\nimport { MatAccordion } from '@angular/material/expansion';\r\nimport { SplitComponent } from 'angular-split';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconChevronDown, adsIconChevronUp, adsIconCross, adsIconHamburgerMenu } from '@ascentgl/ads-icons/icons';\r\nimport { Breadcrumb } from '../../breadcrumb';\r\n\r\n@Component({\r\n selector: 'ads-scms-side-nav-bar',\r\n styleUrls: [\r\n '../../expansion-panel/expansion-panel.component.scss',\r\n '../side-nav-bar/side-nav-bar.component.scss',\r\n 'scms-side-nav-bar.component.scss',\r\n ],\r\n templateUrl: 'scms-side-nav-bar.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsScmsSideNavBarComponent extends AbstractSideNavBarComponent {\r\n /** @ignore */\r\n constructor(\r\n protected router: Router,\r\n private registry: AdsIconRegistry,\r\n ) {\r\n super();\r\n this.checkScreenWidth();\r\n this.registry.register([adsIconChevronDown, adsIconChevronUp, adsIconCross, adsIconHamburgerMenu]);\r\n\r\n effect(() => {\r\n if (this.isCollapsed() && !this.isTablet()) {\r\n this.accordion().closeAll();\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n @ViewChild('splitter') splitter!: SplitComponent;\r\n\r\n /** @ignore */\r\n @ViewChild('sideNavArea', { read: ElementRef }) sideNavArea!: ElementRef;\r\n\r\n /** @ignore */\r\n accordion = viewChild.required(MatAccordion);\r\n\r\n /** Array of nav elements */\r\n navItems = input<ScmsNavItem[]>([]);\r\n\r\n /** Array of breadcrumb elements */\r\n breadcrumbs = input<Breadcrumb[]>([]);\r\n\r\n /** Show/hide breadcrumbs on the current page */\r\n showBreadcrumbs = input<boolean>(false);\r\n\r\n /** @ignore */\r\n localStorageName = 'scms-side-nav-bar-width';\r\n\r\n /** @ignore */\r\n widthToCollapsed = 120;\r\n\r\n /** @ignore */\r\n isTablet = signal(false);\r\n\r\n /** @ignore */\r\n isMobile = signal(false);\r\n\r\n /** @ignore */\r\n regularNavItems = computed(() => this.navItems().filter((item) => !item.stickToBottom));\r\n\r\n /** @ignore */\r\n bottomNavItems = computed(() => this.navItems().filter((item) => item.stickToBottom));\r\n\r\n /** @ignore */\r\n hasBottomItems = computed(() => this.bottomNavItems().length > 0);\r\n\r\n /** @ignore */\r\n hasActiveLink(item: ScmsNavItem): boolean {\r\n return !!item.subItems?.some((subItem) => this.isActive(subItem.href));\r\n }\r\n\r\n /** @ignore */\r\n hasActiveSubLink(item: ScmsNavSubItem): boolean {\r\n return this.isActive(item.href);\r\n }\r\n\r\n /** @ignore */\r\n private isActive(href: string): boolean {\r\n return this.router.isActive(href, {\r\n paths: 'subset',\r\n matrixParams: 'ignored',\r\n queryParams: 'ignored',\r\n fragment: 'ignored',\r\n });\r\n }\r\n\r\n @HostListener('window:resize')\r\n checkScreenWidth() {\r\n const mobileWidth = window.innerWidth < 770;\r\n\r\n this.isMobile.set(window.innerWidth < 321);\r\n\r\n if (mobileWidth !== this.isTablet() && !mobileWidth) {\r\n this.initSideBarSize();\r\n this.splitterSubscribe();\r\n }\r\n\r\n this.isTablet.set(mobileWidth);\r\n\r\n if (this.isTablet()) {\r\n setTimeout(() => {\r\n this.isCollapsed.set(!this.isTablet());\r\n });\r\n }\r\n }\r\n}\r\n","@if (!isTablet()) {\r\n <as-split\r\n #splitter\r\n [useTransition]=\"true\"\r\n unit=\"pixel\"\r\n [gutterSize]=\"10\"\r\n (gutterDblClick)=\"expandSidebar()\"\r\n [gutterDblClickDuration]=\"500\"\r\n (dragEnd)=\"dragEnd($event)\"\r\n >\r\n <as-split-area [size]=\"sidebarSize()\" [minSize]=\"50\" [maxSize]=\"maxExpandedWidth()\" #sideNavArea>\r\n <div class=\"navigation-menu-content-container regular-menu-content-container\">\r\n <div class=\"logo-container\">\r\n <a [routerLink]=\"'/'\">\r\n <ads-ascent-logo size=\"small\" [mobileWidth]=\"70\" [isCollapsed]=\"isCollapsed()\" />\r\n </a>\r\n </div>\r\n\r\n <div class=\"nav-container\">\r\n <ng-container *ngTemplateOutlet=\"matAccordion\" />\r\n </div>\r\n </div>\r\n </as-split-area>\r\n\r\n <as-split-area class=\"split-area-content\">\r\n @if (showBreadcrumbs()) {\r\n <div class=\"breadcrumbs-container\">\r\n <ads-breadcrumb [breadcrumbs]=\"breadcrumbs()\" />\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"router\" />\r\n </as-split-area>\r\n </as-split>\r\n} @else {\r\n <mat-toolbar [hidden]=\"!isTablet()\" class=\"ads-toolbar\">\r\n <button mat-icon-button #menuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\">\r\n <ads-icon [name]=\"menuTrigger.menuOpen ? 'cross' : 'hamburger_menu'\" theme=\"secondary\" stroke=\"secondary\" size=\"sm\" />\r\n </button>\r\n </mat-toolbar>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <div class=\"navigation-menu-content-container\">\r\n <div class=\"burger-logo-container\">\r\n <a [routerLink]=\"'/'\">\r\n <ads-ascent-logo size=\"small\" [isCollapsed]=\"false\" [mobileWidth]=\"70\" />\r\n </a>\r\n </div>\r\n\r\n <ng-container *ngTemplateOutlet=\"matAccordion\" />\r\n </div>\r\n </mat-menu>\r\n <div class=\"mobile-wrapper\">\r\n @if (showBreadcrumbs()) {\r\n <div class=\"breadcrumbs-container\" [class.is-mobile]=\"isMobile()\" >\r\n <ads-breadcrumb [breadcrumbs]=\"breadcrumbs()\" />\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"router\" />\r\n </div>\r\n\r\n}\r\n\r\n<ng-template #router>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n\r\n<ng-template #matAccordion>\r\n <div class=\"nav-items-wrapper\">\r\n <!-- Regular navigation items -->\r\n <mat-accordion class=\"nav-items-container regular-items\">\r\n @for (item of regularNavItems(); track $index) {\r\n @if (item.subItems?.length) {\r\n <mat-expansion-panel\r\n #panel\r\n [ngClass]=\"{\r\n 'active-expansion-panel': hasActiveLink(item),\r\n 'panel-expanded': panel.expanded,\r\n }\"\r\n >\r\n <mat-expansion-panel-header\r\n (click)=\"panel.expanded && isCollapsed() && expandSidebar(); $event.stopPropagation()\"\r\n (keydown.enter)=\"panel.expanded && isCollapsed() && expandSidebar()\"\r\n >\r\n <mat-panel-title>\r\n <ng-container *ngTemplateOutlet=\"itemTitle; context: { data: item }\" />\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n @if (panel.expanded) {\r\n <ads-icon size=\"xs\" name=\"chevron_up\" theme=\"iconPrimary\" />\r\n } @else {\r\n <ads-icon size=\"xs\" name=\"chevron_down\" theme=\"iconPrimary\" />\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n @for (subItem of item.subItems; track $index) {\r\n <ng-container *ngTemplateOutlet=\"navItem; context: { navItem: subItem, class: '' }\" />\r\n }\r\n </mat-expansion-panel>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"navItem; context: { navItem: item, class: 'main-item' }\" />\r\n }\r\n @if (item?.showDividerAfterItem) {\r\n <ads-divider />\r\n }\r\n }\r\n </mat-accordion>\r\n\r\n <!-- Bottom navigation items -->\r\n @if (hasBottomItems()) {\r\n <div class=\"bottom-nav-section\">\r\n <ads-divider />\r\n <mat-accordion class=\"nav-items-container bottom-items\">\r\n @for (item of bottomNavItems(); track $index) {\r\n @if (item.subItems?.length) {\r\n <mat-expansion-panel\r\n #panel\r\n [ngClass]=\"{\r\n 'active-expansion-panel': hasActiveLink(item),\r\n 'panel-expanded': panel.expanded,\r\n }\"\r\n >\r\n <mat-expansion-panel-header\r\n (click)=\"panel.expanded && isCollapsed() && expandSidebar(); $event.stopPropagation()\"\r\n (keydown.enter)=\"panel.expanded && isCollapsed() && expandSidebar()\"\r\n >\r\n <mat-panel-title>\r\n <ng-container *ngTemplateOutlet=\"itemTitle; context: { data: item }\" />\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n @if (panel.expanded) {\r\n <ads-icon size=\"xs\" name=\"chevron_up\" theme=\"iconPrimary\" />\r\n } @else {\r\n <ads-icon size=\"xs\" name=\"chevron_down\" theme=\"iconPrimary\" />\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n @for (subItem of item.subItems; track $index) {\r\n <ng-container *ngTemplateOutlet=\"navItem; context: { navItem: subItem, class: '' }\" />\r\n }\r\n </mat-expansion-panel>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"navItem; context: { navItem: item, class: 'main-item bottom-item' }\" />\r\n }\r\n @if (item?.showDividerAfterItem) {\r\n <ads-divider />\r\n }\r\n }\r\n </mat-accordion>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #navItem let-item=\"navItem\" let-className=\"class\">\r\n <a\r\n [routerLink]=\"item.href\"\r\n class=\"ads-nav-link\"\r\n [ngClass]=\"{\r\n className,\r\n 'active-nav-link': hasActiveSubLink(item),\r\n }\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"itemTitle; context: { data: item }\" />\r\n </a>\r\n</ng-template>\r\n\r\n<ng-template #itemTitle let-item=\"data\">\r\n <div class=\"ads-nav-item-container\" [matTooltip]=\"item.label\" [matTooltipDisabled]=\"!isCollapsed() || isTablet()\">\r\n @if (!!item.icon) {\r\n <ads-icon [name]=\"item.icon!\" size=\"sm\" theme=\"iconPrimary\" stroke=\"iconPrimary\" />\r\n }\r\n @if (!isCollapsed() || isTablet()) {\r\n <span>{{ item.label }}</span>\r\n }\r\n </div>\r\n</ng-template>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { SplitAreaComponent, SplitComponent } from 'angular-split';\r\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsScmsSideNavBarComponent } from './scms-side-nav-bar.component';\r\nimport { AdsDividerModule } from '../../divider';\r\nimport {\r\n MatAccordion,\r\n MatExpansionPanel,\r\n MatExpansionPanelDescription,\r\n MatExpansionPanelHeader,\r\n MatExpansionPanelTitle,\r\n} from '@angular/material/expansion';\r\nimport { AdsAscentLogoModule } from '../../logo/ascent-logo';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { AdsBreadcrumbModule } from '../../breadcrumb';\r\nimport { MatMenu, MatMenuTrigger } from '@angular/material/menu';\r\nimport { MatToolbar } from '@angular/material/toolbar';\r\nimport { MatIconButton } from '@angular/material/button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n SplitComponent,\r\n SplitAreaComponent,\r\n RouterLink,\r\n RouterLinkActive,\r\n AdsIconModule,\r\n AdsDividerModule,\r\n MatAccordion,\r\n MatExpansionPanel,\r\n MatExpansionPanelDescription,\r\n MatExpansionPanelHeader,\r\n MatExpansionPanelTitle,\r\n AdsAscentLogoModule,\r\n MatTooltip,\r\n AdsBreadcrumbModule,\r\n MatMenu,\r\n MatToolbar,\r\n MatMenuTrigger,\r\n MatIconButton,\r\n RouterOutlet\r\n ],\r\n exports: [AdsScmsSideNavBarComponent],\r\n declarations: [AdsScmsSideNavBarComponent],\r\n})\r\nexport class AdsScmsSideNavBarModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MainMenuItem } from './main-menu.types';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MainMenuService {\r\n public menuItemClicked: Subject<MainMenuItem> = new Subject<MainMenuItem>();\r\n\r\n public onMenuItemClicked(item: MainMenuItem): void {\r\n this.menuItemClicked.next(item);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { MainMenuService } from '../main-menu.service';\r\nimport { MainMenuItem } from '../main-menu.types';\r\n\r\n@Component({\r\n selector: 'ads-main-menu-items',\r\n templateUrl: 'main-menu-items.component.html',\r\n styleUrls: ['main-menu-items.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsMainMenuItemsComponent {\r\n constructor(private mainMenuService: MainMenuService) {}\r\n\r\n @Input() items!: MainMenuItem[] | null;\r\n\r\n public onMenuItemClick(item: MainMenuItem) {\r\n this.mainMenuService.onMenuItemClicked(item);\r\n }\r\n}\r\n","<div class=\"peak-menu-content\">\r\n @for(item of items ?? []; track $index) {\r\n <div mat-menu-item [ngClass]=\"item.class ? item.class : ''\">\r\n @if(item.click) {\r\n <span (click)=\"item.click()\">\r\n {{ item.text }}\r\n </span>\r\n } @else if (item.href) {\r\n <a [routerLink]=\"item.href\" [id]=\"item?.id\" routerLinkActive=\"selected\">\r\n {{ item.text }}\r\n </a>\r\n } @else {\r\n <a [id]=\"item?.id\">{{ item.text }}</a>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdsMainMenuItemsComponent } from './main-menu-items.component';\r\nimport { AdsButtonModule } from '../../../buttons/button';\r\nimport { AdsLinkButtonModule } from '../../../buttons/link-button';\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, MatMenuModule, AdsButtonModule, AdsButtonModule, AdsLinkButtonModule],\r\n exports: [AdsMainMenuItemsComponent],\r\n declarations: [AdsMainMenuItemsComponent],\r\n})\r\nexport class AdsMainMenuItemsModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconUserCircle } from '@ascentgl/ads-icons/icons';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'ads-profile-display',\r\n styleUrls: ['profile-display.component.scss'],\r\n templateUrl: 'profile-display.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsProfileDisplayComponent {\r\n constructor(\r\n public router: Router,\r\n private registry: AdsIconRegistry,\r\n ) {\r\n this.registry.register(adsIconUserCircle);\r\n }\r\n\r\n @Input({ required: true }) userDisplayName!: string;\r\n @Input({ required: true }) userImageSrc?: string;\r\n @Input({ required: true }) userProfilePath!: string;\r\n @Input({ required: true }) userBasePath!: string;\r\n\r\n isSelected(): boolean {\r\n return this.router.url.startsWith(this.userBasePath);\r\n }\r\n}\r\n","<a class=\"user\" [routerLink]=\"[userProfilePath]\" [ngClass]=\"{ selected: isSelected() }\">\r\n @if(userImageSrc) {\r\n <img [src]=\"userImageSrc\" alt=\"{{ userDisplayName }}\" />\r\n } @else {\r\n <ads-icon name=\"user_circle\" size=\"sm\" theme=\"primary\"></ads-icon>\r\n }\r\n <span class=\"username\">{{ userDisplayName }}</span>\r\n</a>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\nimport { AdsProfileDisplayComponent } from './profile-display.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, AdsIconModule],\r\n exports: [AdsProfileDisplayComponent],\r\n declarations: [AdsProfileDisplayComponent],\r\n})\r\nexport class AdsProfileDisplayModule {}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_BOTTOM_SHEET_DATA } from '@angular/material/bottom-sheet';\r\nimport { MainMenuItem } from '../main-menu.types';\r\nimport { AdsMainMenuItemsModule } from '../main-menu-items/main-menu-items.module';\r\nimport { AdsProfileDisplayModule } from '../profile-display/profile-display.module';\r\n\r\nexport interface MainMenuData {\r\n menuItems: MainMenuItem[];\r\n userImageSrc: string;\r\n userDisplayName: string;\r\n userProfilePath: string;\r\n userBasePath: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ads-main-menu-bottom-sheet',\r\n styleUrls: ['main-menu-bottom-sheet.component.scss'],\r\n templateUrl: 'main-menu-bottom-sheet.component.html',\r\n standalone: true,\r\n imports: [AdsMainMenuItemsModule, AdsProfileDisplayModule],\r\n})\r\nexport class AdsMainMenuBottomSheetComponent {\r\n constructor(@Inject(MAT_BOTTOM_SHEET_DATA) public data: MainMenuData) {}\r\n}\r\n","<div class=\"peak-menu-content\">\r\n @if(data) {\r\n <ads-profile-display\r\n [userDisplayName]=\"data.userDisplayName\"\r\n [userImageSrc]=\"data.userImageSrc\"\r\n [userProfilePath]=\"data.userProfilePath\"\r\n [userBasePath]=\"data.userBasePath\"\r\n />\r\n }\r\n <ads-main-menu-items [items]=\"data.menuItems\"/>\r\n</div>\r\n","import { Component, Input, OnChanges, OnInit, SimpleChange, ViewChild } from '@angular/core';\r\nimport { MatBottomSheet, MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconMenuMoreInfo } from '@ascentgl/ads-icons/icons';\r\nimport { filter } from 'rxjs/operators';\r\nimport { AdsMainMenuBottomSheetComponent } from './main-menu-bottom-sheet/main-menu-bottom-sheet.component';\r\nimport { MainMenuItem } from './main-menu.types';\r\nimport { MatMenu } from '@angular/material/menu';\r\n\r\n@Component({\r\n selector: 'ads-main-menu',\r\n styleUrls: ['main-menu.component.scss'],\r\n templateUrl: 'main-menu.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsMainMenuComponent implements OnChanges, OnInit {\r\n constructor(\r\n private bottomSheet: MatBottomSheet,\r\n private registry: AdsIconRegistry,\r\n private router: Router,\r\n ) {\r\n this.registry.register(adsIconMenuMoreInfo);\r\n }\r\n /** @ignore */\r\n @ViewChild('menu') menu?: MatMenu;\r\n\r\n /**\r\n * Array of menu items to display in the main menu\r\n */\r\n @Input() menuItems: MainMenuItem[] | null = [];\r\n\r\n /** Id attribute for the main menu trigger element */\r\n @Input() id = 'peak-main-menu';\r\n\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed: boolean = false;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile: boolean = false;\r\n\r\n /**\r\n * The path to the users display image\r\n */\r\n @Input() userImageSrc?: string;\r\n\r\n /**\r\n * The users display name\r\n */\r\n @Input() userDisplayName?: string;\r\n\r\n /**\r\n * The path to the user profile page\r\n */\r\n @Input() userProfilePath?: string;\r\n\r\n /**\r\n * The base user profile path\r\n */\r\n @Input() userBasePath?: string;\r\n\r\n /** @ignore */\r\n private bottomSheetRef?: MatBottomSheetRef<AdsMainMenuBottomSheetComponent>;\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.router.events.pipe(filter((event) => event instanceof NavigationStart)).subscribe(() => {\r\n this.bottomSheetRef?.dismiss();\r\n });\r\n }\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { isMobile: SimpleChange }): void {\r\n if (changes.isMobile) {\r\n const footerMenu = document.querySelector('.peak-bottom-sheet-panel');\r\n\r\n /**\r\n * if we are going from mobile to desktop size;\r\n * hide menu (to avoid its being animated) and dismiss it\r\n */\r\n if (footerMenu?.parentElement?.parentElement && !this.isMobile) {\r\n Array.from(footerMenu.parentElement.parentElement.children).forEach((child) => child.remove());\r\n this.bottomSheetRef?.dismiss();\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n public openBottomSheet(): void {\r\n this.bottomSheetRef = this.bottomSheet.open(AdsMainMenuBottomSheetComponent, {\r\n data: {\r\n menuItems: this.menuItems,\r\n userDisplayName: this.userDisplayName,\r\n userProfilePath: this.userProfilePath,\r\n userImageSrc: this.userImageSrc,\r\n userBasePath: this.userBasePath,\r\n },\r\n panelClass: 'peak-bottom-sheet-panel',\r\n });\r\n }\r\n}\r\n","@if(isMobile) {\r\n @if(isCollapsed) {\r\n <div class=\"more-icon\">\r\n <div class=\"icon-hover\">\r\n <ads-icon [id]=\"id\" name=\"menu_more_info\" size=\"sm\" theme=\"primary\" (click)=\"openBottomSheet()\"></ads-icon>\r\n </div>\r\n </div>\r\n }\r\n} @else {\r\n <div class=\"more-icon\">\r\n <div class=\"icon-hover\" [matMenuTriggerFor]=\"menu\">\r\n <ads-icon [id]=\"id\" name=\"menu_more_info\" size=\"sm\" theme=\"primary\"></ads-icon>\r\n </div>\r\n </div>\r\n <mat-menu #menu=\"matMenu\" class=\"peak-more-menu-panel\">\r\n @if(userDisplayName) {\r\n <ads-profile-display\r\n [userDisplayName]=\"userDisplayName\"\r\n [userImageSrc]=\"userImageSrc\"\r\n [userBasePath]=\"userBasePath ?? '/'\"\r\n [userProfilePath]=\"userProfilePath ?? '/'\"\r\n />\r\n <ads-main-menu-items [items]=\"menuItems\"/>\r\n }\r\n </mat-menu>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsMainMenuItemsModule } from './main-menu-items/main-menu-items.module';\r\nimport { AdsMainMenuComponent } from './main-menu.component';\r\nimport { AdsProfileDisplayModule } from './profile-display/profile-display.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatBottomSheetModule,\r\n MatListModule,\r\n MatMenuModule,\r\n AdsIconModule,\r\n AdsMainMenuItemsModule,\r\n AdsProfileDisplayModule,\r\n RouterModule,\r\n ],\r\n exports: [AdsMainMenuComponent],\r\n declarations: [AdsMainMenuComponent],\r\n})\r\nexport class AdsMainMenuModule {}\r\n","import { Component, input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ads-numeric-step',\r\n templateUrl: './numeric-step.component.html',\r\n styleUrls: ['./numeric-step.component.scss'],\r\n imports: [NgClass],\r\n})\r\nexport class AdsNumericStepComponent {\r\n isLast = input.required<boolean>();\r\n isDelivery = input.required<boolean>();\r\n index = input.required<number>();\r\n distance = input<string>();\r\n isMobile = input.required<boolean>();\r\n\r\n get isFirst(): boolean {\r\n return this.index() === 0;\r\n }\r\n}\r\n","<div\r\n class=\"circle-container\"\r\n [ngClass]=\"{\r\n 'dash-line': !isMobile(),\r\n outermost: isFirst || isLast() || isMobile(),\r\n 'circle-container-mobile': isMobile(),\r\n }\"\r\n>\r\n @if(!isMobile()) {\r\n <div\r\n class=\"dash-line top\"\r\n [ngClass]=\"{\r\n top: isLast(),\r\n bottom: isFirst,\r\n }\"\r\n ></div>\r\n @if (!isLast() && distance()) {\r\n <div class=\"distance-text\">\r\n {{ distance() }}\r\n </div>\r\n }\r\n }\r\n <div class=\"stop-circle\" [ngClass]=\"{ delivery: isDelivery() }\">{{ index() + 1 }}</div>\r\n</div>\r\n","import { Component, input, signal } from '@angular/core';\r\nimport { NumericStep } from './numeric-step.type';\r\nimport { AbstractWindowResizeComponent } from '../../../services/window/abstract-window-resize.component';\r\n\r\n@Component({\r\n selector: 'ads-numeric-stepper',\r\n templateUrl: './numeric-stepper.component.html',\r\n styleUrls: ['./numeric-stepper.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsNumericStepperComponent extends AbstractWindowResizeComponent {\r\n constructor() {\r\n super();\r\n }\r\n\r\n /** Steps array */\r\n steps = input.required<NumericStep[]>();\r\n\r\n}\r\n","<mat-accordion multi=\"true\" class=\"stepper-container\">\r\n @for (step of steps(); track i; let i = $index) {\r\n <div class=\"step-item\" [class.step-item-mobile]=\"isMobile()\">\r\n <ads-numeric-step\r\n [isLast]=\"i === steps().length - 1\"\r\n [index]=\"i\"\r\n [isDelivery]=\"step.isDelivery\"\r\n [distance]=\"step.distance\"\r\n [isMobile]=\"isMobile()\"\r\n />\r\n <ng-container *ngTemplateOutlet=\"step.template; context: { data: step.templateData }\" />\r\n </div>\r\n @if (!$last) {\r\n <div class=\"dash-container\" [class.dash-container-mobile]=\"isMobile()\">\r\n <div class=\"dash-line\"></div>\r\n </div>\r\n }\r\n }\r\n</mat-accordion>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsNumericStepperComponent } from './numeric-stepper.component';\r\nimport { AdsNumericStepComponent } from './components/numeric-step.component';\r\nimport { MatAccordion } from '@angular/material/expansion';\r\n\r\n@NgModule({\r\n declarations: [AdsNumericStepperComponent],\r\n imports: [CommonModule, AdsNumericStepComponent, MatAccordion],\r\n exports: [AdsNumericStepperComponent],\r\n})\r\nexport class AdsNumericStepperModule {}\r\n","import { input } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { WizardStep } from './wizard-step.type';\r\nimport { AbstractWindowResizeComponent } from '../../../services/window/abstract-window-resize.component';\r\n\r\nexport enum WizardStepStatus {\r\n Completed = 'completed',\r\n Current = 'current',\r\n Future = 'future',\r\n Disabled = 'disabled',\r\n}\r\n\r\n@Component({\r\n selector: 'ads-wizard-stepper',\r\n styleUrls: ['./wizard-stepper.component.scss'],\r\n templateUrl: './wizard-stepper.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsWizardStepperComponent extends AbstractWindowResizeComponent implements OnInit {\r\n\r\n constructor() {\r\n super();\r\n }\r\n /**\r\n * The steps to display\r\n */\r\n steps = input.required<WizardStep[]>();\r\n\r\n /**\r\n * Make stepper horizontal manually\r\n */\r\n horizontalView = input<boolean>(false);\r\n\r\n\r\n /** @ignore */\r\n focusedStepIndex!: number;\r\n\r\n /** @ignore */\r\n protected readonly WizardStepStatus = WizardStepStatus;\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.focusedStepIndex = this.steps().findIndex((step: WizardStep) => step.status === WizardStepStatus.Current);\r\n }\r\n}\r\n","<div class=\"wizard-stepper\" [class.wizard-stepper-mobile]=\"(isMobile() || horizontalView())\" [class.wizard-stepper-horizontal]=\"horizontalView()\">\r\n @for (step of steps(); track index; let first = $first; let last = $last; let index = $index) {\r\n @if(!first && (isMobile() || horizontalView())) {\r\n <div class=\"line-container-mobile\">\r\n <div></div>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"step\"\r\n [class.step-mobile]=\"(isMobile() || horizontalView())\"\r\n [class.focused]=\"step.status === WizardStepStatus.Current\"\r\n [ngClass]=\"{ clickable: step.onClick }\"\r\n >\r\n @if (!first && (!isMobile() && !horizontalView())) {\r\n <div class=\"line-container\" [class.line-container-mobile]=\"(isMobile() || horizontalView())\">\r\n <div></div>\r\n <div></div>\r\n </div>\r\n }\r\n\r\n <div\r\n [id]=\"step.id\"\r\n class=\"step-icon-wrapper\"\r\n (click)=\"step.onClick && step.status !== WizardStepStatus.Disabled ? step.onClick!(step) : null\"\r\n [ngClass]=\"step.status\"\r\n [class.clickable]=\"step.onClick && step.status !== WizardStepStatus.Disabled\"\r\n >\r\n <div class=\"step-icon\" [class.step-icon-mobile]=\"(isMobile() || horizontalView())\" [matTooltip]=\"step.tooltip || ''\" [matTooltipDisabled]=\"!step.tooltip\">\r\n <ads-icon [name]=\"step.icon\" size=\"sm\" stroke=\"white\" theme=\"white\" />\r\n </div>\r\n\r\n <span class=\"title\" [class.title-mobile]=\"(isMobile() || horizontalView())\">{{ step.title }}</span>\r\n\r\n @if(step.date) {\r\n <span class=\"title subtitle\">{{ step.date }}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsWizardStepperComponent } from './wizard-stepper.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, MatTooltipModule, AdsIconModule],\r\n exports: [AdsWizardStepperComponent],\r\n declarations: [AdsWizardStepperComponent],\r\n})\r\nexport class AdsWizardStepperModule {}\r\n","import { input } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { Step } from './step.type';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconCheck } from '@ascentgl/ads-icons/icons';\r\n\r\nexport enum StepStatus {\r\n Planned = 'planned',\r\n InProgress = 'in-progress',\r\n Completed = 'completed',\r\n}\r\n\r\n@Component({\r\n selector: 'ads-stepper',\r\n styleUrls: ['./stepper.component.scss'],\r\n templateUrl: './stepper.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsStepperComponent {\r\n /** @ignore */\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register([adsIconCheck]);\r\n }\r\n\r\n /** @ignore */\r\n protected readonly StepStatus = StepStatus;\r\n\r\n /**\r\n * The steps to display\r\n */\r\n steps = input.required<Step[]>();\r\n}\r\n","<div class=\"stepper-container\">\r\n @for (step of steps(); track i; let i = $index) {\r\n <div class=\"step-item\">\r\n <div class=\"step-circle-container\">\r\n <div class=\"step-circle\" [ngClass]=\"[step.status]\">\r\n @if (step.status === StepStatus.Completed) {\r\n <ads-icon name=\"check\" size=\"xxxs\" class=\"check-icon\" />\r\n }\r\n </div>\r\n @if (i !== steps().length - 1) {\r\n <div class=\"dash-line\" [ngClass]=\"[step.status]\"></div>\r\n }\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"step.template; context: { data: step.templateData }\" />\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsStepperComponent } from './stepper.component';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n imports: [CommonModule, MatButton, AdsIconModule],\r\n exports: [AdsStepperComponent],\r\n declarations: [AdsStepperComponent],\r\n})\r\nexport class AdsStepperModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nexport type HorizontalNavLink = {\r\n text: string;\r\n route: string;\r\n disabled: boolean;\r\n};\r\n\r\n@Component({\r\n selector: 'ads-horizontal-nav-bar',\r\n styleUrls: ['horizontal-nav-bar.component.scss'],\r\n templateUrl: 'horizontal-nav-bar.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsHorizontalNavBarComponent implements OnInit {\r\n /** @ignore */\r\n constructor(private router: Router) {}\r\n /**\r\n * Array of nav items to display in the nav bar\r\n */\r\n @Input() links: HorizontalNavLink[] = [];\r\n\r\n /** @ignore */\r\n ngOnInit() {\r\n // Navigate to the first active tab by default\r\n const firstActiveTab = this.links.find((link) => !link.disabled);\r\n if (firstActiveTab) {\r\n this.router.navigate([firstActiveTab.route]);\r\n }\r\n }\r\n}\r\n","<nav mat-tab-nav-bar [disableRipple]=\"true\" [tabPanel]=\"tabPanel\" [disablePagination]=\"true\">\r\n @for (link of links; track $index) {\r\n <a mat-tab-link [routerLink]=\"link.route\" routerLinkActive=\"active\" [disabled]=\"link.disabled\">\r\n {{ link.text }}\r\n </a>\r\n }\r\n</nav>\r\n\r\n<mat-tab-nav-panel #tabPanel>\r\n <router-outlet></router-outlet>\r\n</mat-tab-nav-panel>\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\r\nimport { AdsHorizontalNavBarComponent } from './horizontal-nav-bar.component';\r\nimport { MatTabLink, MatTabNav, MatTabNavPanel } from '@angular/material/tabs';\r\n\r\n@NgModule({\r\n imports: [MatTabNav, MatTabLink, RouterOutlet, RouterLink, RouterLinkActive, MatTabNavPanel],\r\n exports: [AdsHorizontalNavBarComponent],\r\n declarations: [AdsHorizontalNavBarComponent],\r\n})\r\nexport class AdsHorizontalNavBarModule {}\r\n","import { AfterContentInit, Component, ElementRef, viewChild } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'ads-bubble',\r\n templateUrl: './bubble.component.html',\r\n styleUrls: ['./bubble.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsBubbleComponent implements AfterContentInit {\r\n /** @ignore */\r\n svgContent: string | null = null;\r\n /** @ignore */\r\n svgName = 'bubbles'; // Change this to the name of your SVG file\r\n /** @ignore */\r\n svgUrl = `public/images/${this.svgName}.svg`;\r\n\r\n /** @ignore */\r\n svgBackgroundElement = viewChild.required<ElementRef>('svgBackground');\r\n\r\n /** @ignore */\r\n constructor(private http: HttpClient) {}\r\n\r\n /** @ignore */\r\n ngAfterContentInit(): void {\r\n this.fetchSvg();\r\n }\r\n\r\n /** @ignore */\r\n private fetchSvg(): void {\r\n this.http.get(this.svgUrl, { responseType: 'text' }).subscribe(\r\n (content) => {\r\n this.svgContent = content;\r\n this.applyBackgroundPattern();\r\n },\r\n (error) => {\r\n console.error('Failed to load SVG', error);\r\n },\r\n );\r\n }\r\n\r\n /** @ignore */\r\n private applyBackgroundPattern(): void {\r\n console.log(this.svgBackgroundElement);\r\n console.log(this.svgContent);\r\n if (this.svgContent && this.svgBackgroundElement()) {\r\n const svgDataUri = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(this.svgContent)}`;\r\n this.svgBackgroundElement().nativeElement.style.backgroundImage = `url(\"${svgDataUri}\")`;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n downloadSvg(): void {\r\n const link = document.createElement('a');\r\n link.href = this.svgUrl;\r\n link.download = `${this.svgName}.svg`;\r\n link.click();\r\n }\r\n}\r\n","<div #svgBackground class=\"svg-background\"></div>\r\n@if (svgContent) {\r\n <div class=\"button-container\">\r\n <ads-button (click)=\"downloadSvg()\">Download SVG</ads-button>\r\n </div>\r\n}\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsBubbleComponent } from './bubble.component';\r\nimport { AdsButtonModule } from '../../buttons/button';\r\n\r\n@NgModule({\r\n imports: [CommonModule, NgOptimizedImage, AdsButtonModule],\r\n exports: [AdsBubbleComponent],\r\n declarations: [AdsBubbleComponent],\r\n})\r\nexport class AdsBubbleModule {}\r\n","import { Component, input, OnDestroy, OnInit } from '@angular/core';\r\nimport { AdsInputDropdownComponent } from '../dropdowns/input-dropdown';\r\nimport { AbstractControl, FormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { combineLatest, Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nconst TIME_VALIDATOR: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const timeRegex = /^(0[1-9]|1[0-2])[0-5][0-9]$/;\r\n return timeRegex.test(control.value) ? null : { invalidTime: true };\r\n};\r\n\r\nconst MILITARY_TIME_VALIDATOR: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const timeRegex = /^([01]\\d|2[0-3]):?[0-5]\\d$/;\r\n return timeRegex.test(control.value) ? null : { invalidMilitaryTime: true };\r\n};\r\n\r\n@Component({\r\n selector: 'ads-time-field',\r\n templateUrl: './time-field.component.html',\r\n styleUrls: ['time-field.component.scss', '../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsTimeFieldComponent extends AdsInputDropdownComponent implements OnInit, OnDestroy {\r\n /** Enable military time, is \"true\" by default */\r\n militaryTime = input<boolean>(true);\r\n\r\n /** Hide clock icon for military time */\r\n hideClockIcon = input<boolean>(true);\r\n\r\n /** @ignore */\r\n periodControl = new FormControl<string | null>(null);\r\n\r\n /** @ignore */\r\n timeControl = new FormControl('', { validators: [TIME_VALIDATOR], nonNullable: true });\r\n\r\n /** @ignore */\r\n periodOptions = ['AM', 'PM'];\r\n\r\n errorMessages = {\r\n mask: 'Time must be in the format HH:mm.',\r\n invalidTime: 'Enter a valid time in 12-hour format (01:00 - 12:59).',\r\n invalidMilitaryTime: 'Enter a valid time in 24-hour format (00:00 - 23:59).',\r\n };\r\n\r\n /** @ignore */\r\n private subscription: Subscription = Subscription.EMPTY;\r\n\r\n /** @ignore */\r\n ngOnInit() {\r\n if (this.militaryTime()) {\r\n this.valueControl.addValidators(MILITARY_TIME_VALIDATOR);\r\n this.valueControl.updateValueAndValidity();\r\n } else {\r\n this.syncValidators();\r\n\r\n // Combine both periodControl and timeControl value changes\r\n this.subscription = combineLatest([this.timeControl.valueChanges, this.periodControl.valueChanges])\r\n .pipe(map(([timeStr, period]) => this.convertToMilitaryTime(timeStr, period)))\r\n .subscribe((militaryTime) => {\r\n this.valueControl.setValue(militaryTime);\r\n });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private syncValidators() {\r\n const validators = this.valueControl.validator ? this.valueControl.validator({} as any) : null;\r\n\r\n if (validators && validators.required) {\r\n this.periodControl.setValidators([Validators.required]);\r\n this.timeControl.setValidators([Validators.required, TIME_VALIDATOR]);\r\n\r\n // Update validation state\r\n this.periodControl.updateValueAndValidity();\r\n this.timeControl.updateValueAndValidity();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onBlurUpdateTime(): void {\r\n if (this.valueControl.valid) {\r\n let timeValue = this.valueControl.value;\r\n if (timeValue.length === 4 && !timeValue.includes(':')) {\r\n let hours = parseInt(timeValue.slice(0, 2), 10);\r\n const minutes = timeValue.slice(2);\r\n\r\n // Adjust hours if greater than 23\r\n if (hours >= 24) {\r\n hours -= 24;\r\n }\r\n timeValue = `${hours.toString().padStart(2, '0')}:${minutes}`;\r\n this.valueControl.setValue(timeValue, { emitEvent: true });\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private convertToMilitaryTime(timeStr: string, period: string | null): string {\r\n if (this.timeControl.valid && this.periodControl.valid) {\r\n const hours = parseInt(timeStr.substring(0, 2), 10);\r\n const minutes = timeStr.substring(2, 4);\r\n\r\n let militaryHours = hours;\r\n\r\n // Convert to military time\r\n if (period === 'AM' && hours === 12) {\r\n militaryHours = 0; // 12 AM is midnight (00:00)\r\n } else if (period === 'PM' && hours !== 12) {\r\n militaryHours += 12; // Add 12 hours for PM (e.g., 1 PM becomes 13)\r\n }\r\n\r\n // Format military time (HH:mm)\r\n return `${this.padZero(militaryHours)}:${minutes}`;\r\n }\r\n return ''; // Return empty string if any field is invalid\r\n }\r\n\r\n /** @ignore */\r\n private padZero(hour: number): string {\r\n return hour < 10 ? `0${hour}` : `${hour}`;\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","@if (militaryTime()) {\r\n <ads-input\r\n [control]=\"valueControl\"\r\n mask=\"Hh:m0\"\r\n [onBlur]=\"onBlurUpdateTime\"\r\n [id]=\"id\"\r\n [placeholder]=\"placeholder\"\r\n [label]=\"label\"\r\n [errorMessages]=\"errorMessages\"\r\n [width]=\"width\"\r\n [showClockIcon]=\"!hideClockIcon()\"\r\n [showClearButton]=\"showClearButton\"\r\n />\r\n} @else {\r\n <ads-input-dropdown\r\n [width]=\"width\"\r\n [label]=\"label\"\r\n [options]=\"periodOptions\"\r\n [hasEmptyValue]=\"false\"\r\n [control]=\"timeControl\"\r\n [dropdownControl]=\"periodControl\"\r\n [placeholder]=\"placeholder\"\r\n [id]=\"id\"\r\n [dropdownId]=\"dropdownId\"\r\n [dropdownLabel]=\"'AM/PM'\"\r\n [dropdownPlaceholder]=\"dropdownPlaceholder\"\r\n [dropdownWidth]=\"'128px'\"\r\n [inputWidth]=\"inputWidth\"\r\n [tooltip]=\"tooltip\"\r\n [size]=\"size\"\r\n [successMessage]=\"successMessage\"\r\n [errorMessages]=\"errorMessages\"\r\n [showExclamationOnError]=\"showExclamationOnError\"\r\n [showClearButton]=\"showClearButton\"\r\n [immediateValidation]=\"immediateValidation\"\r\n mask=\"Hh:m0\"\r\n />\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsInputDropdownModule } from '../dropdowns/input-dropdown';\r\nimport { AdsTimeFieldComponent } from './time-field.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { NgxMaskDirective } from 'ngx-mask';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsInputModule } from '../input';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AdsInputDropdownModule,\r\n AdsIconModule,\r\n MatIconButton,\r\n NgxMaskDirective,\r\n ReactiveFormsModule,\r\n AdsInputModule,\r\n ],\r\n declarations: [AdsTimeFieldComponent],\r\n exports: [AdsTimeFieldComponent],\r\n})\r\nexport class AdsTimeFieldModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-navigation',\r\n styleUrls: ['./navigation.component.scss'],\r\n templateUrl: 'navigation.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsNavigationComponent {\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed = false;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n}\r\n","<nav [class.collapsed]=\"isCollapsed\" [class.mobile]=\"isMobile\">\r\n <ng-content></ng-content>\r\n</nav>\r\n<div class=\"overlay\" [class.mobile]=\"isMobile\"></div>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsNavigationComponent } from './navigation.component';\r\n\r\n@NgModule({\r\n exports: [AdsNavigationComponent],\r\n declarations: [AdsNavigationComponent],\r\n})\r\nexport class AdsNavigationModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-navigation-header',\r\n styleUrls: ['navigation-header.component.scss'],\r\n templateUrl: 'navigation-header.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsNavigationHeaderComponent {\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed = false;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n}\r\n","<header [class.collapsed]=\"isCollapsed\" [class.mobile]=\"isMobile\">\r\n <ng-content></ng-content>\r\n</header>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsNavigationHeaderComponent } from './navigation-header.component';\r\n\r\n@NgModule({\r\n exports: [AdsNavigationHeaderComponent],\r\n declarations: [AdsNavigationHeaderComponent],\r\n})\r\nexport class AdsNavigationHeaderModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconMenuMoreInfo } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-navigation-collapse-handle',\r\n styleUrls: ['navigation-collapse-handle.component.scss'],\r\n templateUrl: 'navigation-collapse-handle.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsNavigationCollapseHandleComponent {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register(adsIconMenuMoreInfo);\r\n }\r\n\r\n /**\r\n * The unique ID for the collapse handle\r\n */\r\n @Input() id!: string;\r\n\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed = false;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n\r\n /**\r\n * Text to display in the collapse menu button\r\n */\r\n @Input() handleText = 'Collapse Menu';\r\n\r\n /**\r\n * Event emitted when the collapse menu button is clicked\r\n */\r\n @Output() handleClicked: EventEmitter<null> = new EventEmitter();\r\n\r\n /** @ignore */\r\n onHandleClick() {\r\n this.handleClicked.emit();\r\n }\r\n}\r\n","<div\r\n class=\"handle\"\r\n tabindex=\"0\"\r\n (keyup.enter)=\"onHandleClick()\"\r\n (click)=\"onHandleClick()\"\r\n [class.collapsed]=\"isCollapsed\"\r\n [class.mobile]=\"isMobile\"\r\n [id]=\"id\"\r\n>\r\n <ads-icon class=\"handle-icon\" name=\"menu_more_info\" size=\"sm\"></ads-icon>\r\n <span class=\"handle-text\">{{ handleText }}</span>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsNavigationCollapseHandleComponent } from './navigation-collapse-handle.component';\r\n\r\n@NgModule({\r\n imports: [AdsIconModule],\r\n exports: [AdsNavigationCollapseHandleComponent],\r\n declarations: [AdsNavigationCollapseHandleComponent],\r\n})\r\nexport class AdsNavigationCollapseHandleModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-navigation-items-container',\r\n styles: [\r\n `\r\n :host {\r\n flex: 1;\r\n }\r\n `,\r\n ],\r\n template: '<ng-content></ng-content>',\r\n standalone: false,\r\n})\r\nexport class AdsNavigationItemsContainerComponent {}\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsNavigationItemsContainerComponent } from './navigation-items-container.component';\r\n\r\n@NgModule({\r\n exports: [AdsNavigationItemsContainerComponent],\r\n declarations: [AdsNavigationItemsContainerComponent],\r\n})\r\nexport class AdsNavigationItemsContainerModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconChevronDown, adsIconChevronRight } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-navigation-item',\r\n styleUrls: ['navigation-item.component.scss'],\r\n templateUrl: 'navigation-item.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsNavigationItemComponent {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register([adsIconChevronDown, adsIconChevronRight]);\r\n }\r\n\r\n /**\r\n * Whether the navigation item is active\r\n */\r\n @Input() active = false;\r\n\r\n /**\r\n * Whether the submenu items are displayed\r\n */\r\n @Input() displaySubNavigation = false;\r\n\r\n /**\r\n * Whether a navigation item has submenu items\r\n */\r\n @Input() hasSubmenu = false;\r\n\r\n /**\r\n * Icon to display\r\n */\r\n // @Input() icon!: peakIcon;\r\n\r\n /**\r\n * The unique ID for the navigation item\r\n */\r\n @Input() id!: string;\r\n\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed = false;\r\n\r\n /**\r\n * Text to display\r\n */\r\n @Input() label!: string;\r\n\r\n /**\r\n * Path to navigate to when navigation item is clicked\r\n */\r\n @Input() path: string | undefined;\r\n\r\n /**\r\n * Event emitted when a navigation item is clicked\r\n */\r\n @Output() itemSelected: EventEmitter<null> = new EventEmitter();\r\n\r\n /** @ignore */\r\n public onItemSelected(): void {\r\n if (this.hasSubmenu) {\r\n this.displaySubNavigation = !this.displaySubNavigation;\r\n }\r\n\r\n this.itemSelected.emit();\r\n }\r\n\r\n /** @ignore */\r\n public toggleSubNavigation(): void {\r\n this.displaySubNavigation = !this.displaySubNavigation;\r\n }\r\n}\r\n","<a\r\n class=\"navigation-item\"\r\n [class.active]=\"active\"\r\n [class.collapsed]=\"isCollapsed\"\r\n [routerLink]=\"[path]\"\r\n (click)=\"onItemSelected()\"\r\n routerLinkActive=\"active\"\r\n #tooltip=\"matTooltip\"\r\n [matTooltip]=\"label\"\r\n [matTooltipDisabled]=\"!isCollapsed\"\r\n matTooltipPosition=\"right\"\r\n [id]=\"id\"\r\n>\r\n <div class=\"navigation-item-text\">\r\n {{ label }}\r\n </div>\r\n @if (hasSubmenu) {\r\n <div class=\"navigation-submenu-icon\">\r\n @if (displaySubNavigation) {\r\n <ads-icon\r\n class=\"center\"\r\n name=\"chevron_down\"\r\n size=\"xxs\"\r\n />\r\n } @else {\r\n <ads-icon class=\"center\" name=\"chevron_right\" size=\"xxs\" />\r\n }\r\n </div>\r\n }\r\n</a>\r\n\r\n@if (displaySubNavigation && !isCollapsed) {\r\n <ng-content></ng-content>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { AdsNavigationItemComponent } from './navigation-item.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, MatTooltipModule, AdsIconModule],\r\n exports: [AdsNavigationItemComponent],\r\n declarations: [AdsNavigationItemComponent],\r\n})\r\nexport class AdsNavigationItemModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-org-display-text',\r\n styleUrls: ['org-display-text.component.scss'],\r\n templateUrl: 'org-display-text.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsOrgDisplayTextComponent {\r\n /**\r\n * Organization text to display\r\n */\r\n @Input() text!: string;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n}\r\n","@if(!isMobile) {\r\n <span class=\"org-display-text\">{{ text }}</span>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AdsOrgDisplayTextComponent } from './org-display-text.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AdsOrgDisplayTextComponent],\r\n declarations: [AdsOrgDisplayTextComponent],\r\n})\r\nexport class AdsOrgDisplayTextModule {}\r\n","import { AfterViewInit, Component, EventEmitter, Input, Output, TemplateRef, viewChild } from '@angular/core';\r\nimport { MatTab, MatTabGroup, MatTabGroupBaseHeader } from '@angular/material/tabs';\r\n\r\nexport interface Tab {\r\n text?: string;\r\n disabled?: boolean;\r\n template?: TemplateRef<unknown>;\r\n headerTemplate?: TemplateRef<unknown>;\r\n}\r\n\r\n@Component({\r\n selector: 'ads-tabs',\r\n styleUrls: ['tabs.component.scss'],\r\n templateUrl: 'tabs.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsTabsComponent implements AfterViewInit {\r\n tabGroup = viewChild.required<MatTabGroup>('tabGroup');\r\n\r\n @Input() tabs: Tab[] = [];\r\n @Input() selectedIndex = 0;\r\n\r\n @Output() selectedIndexChange = new EventEmitter<number>();\r\n @Output() tabChange = new EventEmitter<{ index: number, originalClick: () => void }>();\r\n\r\n ngAfterViewInit() {\r\n const tabGroup = this.tabGroup();\r\n const originalHandleClick = tabGroup._handleClick;\r\n\r\n tabGroup._handleClick = (tab: MatTab, tabHeader: MatTabGroupBaseHeader, index: number) => {\r\n // Check if there are any subscribers to the tabChange event\r\n if (this.tabChange.observed) {\r\n // Custom logic is provided - emit event and let parent decide\r\n const originalClick = () => {\r\n originalHandleClick.call(tabGroup, tab, tabHeader, index);\r\n };\r\n\r\n this.tabChange.emit({ index, originalClick });\r\n } else {\r\n // No custom logic - proceed with normal tab behavior\r\n originalHandleClick.call(tabGroup, tab, tabHeader, index);\r\n }\r\n };\r\n }\r\n}\r\n","<mat-tab-group\r\n [selectedIndex]=\"selectedIndex\"\r\n (selectedIndexChange)=\"selectedIndexChange.emit($event)\"\r\n class=\"custom-tabs\"\r\n #tabGroup\r\n [disableRipple]=\"true\"\r\n>\r\n @for(tab of tabs; track $index) {\r\n @if (tab.headerTemplate) {\r\n <mat-tab [disabled]=\"tab.disabled\">\r\n <ng-template mat-tab-label>\r\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\r\n </ng-template>\r\n @if(tab.template) {\r\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\r\n }\r\n </mat-tab>\r\n } @else {\r\n <mat-tab [disabled]=\"tab.disabled\" [label]=\"tab.text || ''\">\r\n @if(tab.template) {\r\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\r\n }\r\n </mat-tab>\r\n }\r\n }\r\n</mat-tab-group>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsTabsComponent } from './tabs.component';\r\nimport { MatTab, MatTabGroup, MatTabLabel } from '@angular/material/tabs';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [MatTabGroup, MatTab, NgTemplateOutlet, MatTabLabel],\r\n exports: [AdsTabsComponent],\r\n declarations: [AdsTabsComponent],\r\n})\r\nexport class AdsTabsModule {}\r\n","export const canadianAreaCodes = [\r\n '204',\r\n '226',\r\n '236',\r\n '249',\r\n '250',\r\n '289',\r\n '306',\r\n '343',\r\n '365',\r\n '387',\r\n '403',\r\n '416',\r\n '418',\r\n '431',\r\n '437',\r\n '438',\r\n '450',\r\n '506',\r\n '514',\r\n '519',\r\n '548',\r\n '579',\r\n '581',\r\n '587',\r\n '600',\r\n '604',\r\n '613',\r\n '639',\r\n '647',\r\n '672',\r\n '705',\r\n '709',\r\n '742',\r\n '778',\r\n '782',\r\n '807',\r\n '819',\r\n '825',\r\n '867',\r\n '873',\r\n '902',\r\n '905',\r\n];\r\n","import { Component, OnInit, Input, ElementRef, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\r\nimport { AbstractControl, FormControl, Validators } from '@angular/forms';\r\nimport { canadianAreaCodes } from './canadian-area-codes';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\n\r\ninterface Option {\r\n name: string;\r\n code: string;\r\n iso: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ads-international-phone-field',\r\n templateUrl: './international-phone-field.component.html',\r\n styleUrls: ['../common/common.input.component.scss', 'international-phone-field.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsInternationalPhoneFieldComponent extends AbstractInputComponent implements OnInit, AfterViewInit {\r\n /** Optional \"id\" attribute for dropdown field */\r\n @Input() dropdownId = '';\r\n\r\n @ViewChild('wrapperRef') wrapperRef!: ElementRef;\r\n\r\n /** @ignore */\r\n phoneMask = '(000) 000-0000';\r\n\r\n /** @ignore */\r\n countryOptions: Option[] = [\r\n { name: 'United States', code: '+1', iso: 'US' },\r\n { name: 'Mexico', code: '+52', iso: 'MX' },\r\n { name: 'Canada', code: '+1', iso: 'CA' },\r\n ];\r\n\r\n /** @ignore */\r\n flagBase64 = {\r\n US: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALsSURBVHgBxZVpSFRRGIbfOxtqLoNLrplrZo5bronG5JKRkWWEQw6iUhBZP4Q2IjCJkoIoQfwTZGpZaRSGipqZTJkimCsmmToGMziaMU46+8ztzGg/7OeMTQ8c7r0c7n343nPOdykQaJqO6ewbvz82Nc9Xa3TwcnPGwrICblxHyBVroCkKjk4O4C3I4KfTmp8twYUXPOJ9eH8xRVEjFJEGVDd0Dtc0vuUqtXrY00bweEGY+SaBq4cLJmYkYBORzw5PFPu64FCQDwygYSnb+Ylyp/DAQBa5PzY0Ocddlv8Ci2IgOMQXUxMziEuOwAfRKFydt0FjMGJxVgq/0jz4J4bDSrhkFJnE3N6eIXh6uUGp1mL66zyys5Ig6h1CZEwo+ganwGJQiEjcg+5MIVY0S6Rey6L+g9Ao4ZrESE6NRnfvMJgsJhL2hqGncwC5eXw0Nb2Dt78ndDoDJvsnUHjzMrIiA2E0wmrM4vddA9gZFgClSoOB/lGUCHPw7Gk70rNT0N41CAaDgfi4XXCMDIZrShTZjdabzeLcEwfw8pUITA4bB0nMdbUtOH8hH1UPXiCAF0Iq1mFwfA5h9U+wqpaSN6yLupBeWhc3N3RgdxIPa6sqtLwR4fpFIe7drUd+4RE0NveAwWQiIz0OcWdycDQ+DEba8l29qeLTZ/Pw8HEb2BwOCgTZqLz1CJW3S3H1Wg0i9kVDr9Wh9bUIgrQocLhOZI2tF5vO8Q2KkVrOy0yAUqHE7OcvuFJ5DncuVUNQJsDzujbYs9jgCzLhVVUFPuQwWhl1Ef2jwiyWLv4s1+vJ50ijYDIpqNQ62NuxoSENhcNmwZSsVm+AO5njbEHMdj4eFeao7cTSzRN/XU04kKHfGFsgXl/j1qQM2JJCWrYuPrU2D1tjFss6PsKW+OZlbnSukyWwJULDd7NYXqATw8bIzf/jlbHpYVnXJy5sgHtarNw1KSqWRc6umMiPK6bmalViiT/+IU680DEiLTM58b/4DdAbFqtVbO+HAAAAAElFTkSuQmCC',\r\n CA: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAL5SURBVHgBxVbLS1RRHP7uY6Z5OA/DGl+ZI2WpmWMhZRFN0CzaaVFEtOixCIIEIXPXwl1FCBUJoUT/gQRBraRaGNjCCjUyx3QUxOfoPJyZe+fefucOjRuduVeEPhjmnHO/8/vu+c75/e7hQFBV1Rf58K47MfHLr8oy7M1nYG86iZ1AbOgLYoOfwYkirDVHhgvOBW5yHDcskmjlfPejgcW+l25GVBIJeIiUU1hVoSoKOEHQ2uC4LanxoUHMP3sC3mJlXZ+nvXOANL08dVpW3791wwhIbKmvB4uvXmSEDWCxt4dp3WDCbml2RtckNS0jGfwN8DxmHnQgdL9Ta6emp6HKkq4Y6cga+3OLMABOEPHTfxq2ai9MxYVsBOOBU4gHQ2iYCBkJBR4GUXTtKlIzIXAms3ZgpNAUii5f3CDotD6nsJpKQYnHtfbym16kV8NwnD0PJRrPCqSjUTj8Acj0bIk47KApsag2NxdyWs2ZzfjqKkBB7QGoiRim2u6hcSUKeSUCwe3UONJyDI7ABXzbbYep3IOF592IjIyhaV3BtlfMVlXR9RBKZJltJyzeUgy7zdh1cH+WYqmuJFELzN4yLavktSWa05XX8txWSxKinz5C5TI0VlzMFeUUXd4g0Wk27yvNjnHEZXOUZALbFmZWu1ou0WFaAAQdCUCcJHFdLa3/CsaWyBut6NYd2E80Y7TBB1t9lbbqzUUFrI8GUff9ByyH66gEKlqOb4X86UQbZ62pw7H4Olkvb753bExOozESh+VQTaaE8rlD68tjspDbZYFY5kVicpaqTxyC0w3B5aZ2UhsTK6oy9vKCrpD6KxdZXP74KSy0ep5eIhkcp4UJdJrJfimFxNgIldR05sOxo8JUpWy+49muNDdHGaZqwqyKWY82wgiY1WHe6YRRsOqUpp9RCA5NK8yE+/fcvhuGQZiKS2DylMIoCq9cZ1r9It0G/tCHuVUsLnmdmpqsZOlia2rOG8Ba74MesFh72zoyN5BauoH4A+1ME/8LfwHCZh2t8/LOWQAAAABJRU5ErkJggg==',\r\n MX: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAI7SURBVHgBxZZPSBRRHMe/82dnZncnHcXsD21t/0iodrd2qcSMlQ3KkNKi2x6sICsv1aFTB7tYHSojlv5c6tDFCHIPgREodAiLbdEKMkvTDUshaaihnbZ1pvcG6mAGM4i7n8tj5j2+H97v/eExIJimGVKT3Veyg++imIGZ/wVldwyecBB26BsdxKOBPoDj/+nb5FvdvzdYfYhhmH6eSP2fzl3qnbx6S5ktyNCzcFUstC1+TsRtyTuAKM3WHbrYdKSXOFey5KPx64OHCgrE+e5O6mqmYiWXGUehULMabRQWRcKx2DDyVvvjy9yqxDsZbExPg2U5HN6yAsukb9gYrcWuE9cglldAFLxOopzNmOU4nG2IQPJKmMrLKFeWIDOUAO9yk3NnOIlyJs7pOt4PvUa0vgGG24OBZz3wBVsx8qEHYFh6H9jOsi3Wf2pIv7qP/Rc68XlKR+rlBELr12LyRTvyb008Td9FLpe1G2dfLIkyhjNvsHNRGVwbgmi/0YhEzWXcTAWQWrUG2sQ4RNFjN86+mJbxQP1ppPmP4MJ1SA5X4vr3DihHW+Ebu4e62PH5KTW5XyFIZYis2w5vOoFjkRo8lmPY8eQMNm+LgxcWWGPs4ug4sSyLktLliMc7oGsaqgSBCA9aM3UidSz+I6dIsvz3n1OplYMiQcUqV1qCQqG4rUqpVNy1+GSLigLRUruHurp4sj6jZHM0uZZW3tZHxvwzB9IXiCccgF22+qvQtq+Z7J7/vEAC1aeoE8XiN+e2slrwfBPtAAAAAElFTkSuQmCC',\r\n };\r\n\r\n /** @ignore */\r\n dropdownControl: FormControl = new FormControl(this.countryOptions[0]);\r\n\r\n /** @ignore */\r\n inputControl: FormControl = new FormControl();\r\n\r\n /** @ignore */\r\n private isInternalChange = false;\r\n\r\n /** @ignore */\r\n getNorthAmericanCountry(phone: string): Option {\r\n const areaCode = phone.replace(/\\D/g, '').substring(1, 4); // Get first 3 digits\r\n if (canadianAreaCodes.includes(areaCode)) {\r\n return this.countryOptions[2];\r\n } else {\r\n return this.countryOptions[0];\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.valueControl.addValidators(this.validateMask);\r\n\r\n if (this.valueControl.disabled) {\r\n this.disableControls();\r\n }\r\n\r\n const originalReset = this.valueControl.reset.bind(this.valueControl);\r\n this.valueControl.reset = (...args: any[]) => {\r\n originalReset(...args);\r\n this.handleReset();\r\n };\r\n\r\n const originalSetValue = this.valueControl.setValue.bind(this.valueControl);\r\n this.valueControl.setValue = ((value: any, options?: any) => {\r\n originalSetValue(value, options);\r\n this.handleSetValue(value);\r\n }) as typeof this.valueControl.setValue;\r\n\r\n this.valueControl.statusChanges.subscribe((status) => {\r\n if (status === 'DISABLED') {\r\n this.disableControls();\r\n } else {\r\n this.dropdownControl.enable({ emitEvent: false });\r\n this.inputControl.enable({ emitEvent: false });\r\n }\r\n });\r\n\r\n const value = this.valueControl.value;\r\n if (value && !value.startsWith('+') && /^\\d+$/.test(value)) {\r\n this.valueControl.setValue(`+${value}`);\r\n }\r\n\r\n if (this.valueControl.hasValidator(Validators.required)) {\r\n this.inputControl.addValidators([Validators.required]);\r\n }\r\n\r\n if (value) {\r\n this.parsePhoneNumber(value);\r\n }\r\n\r\n this.inputControl.valueChanges.subscribe(() => this.provideValueToTheValueControl());\r\n this.dropdownControl.valueChanges.subscribe(() => this.provideValueToTheValueControl());\r\n }\r\n\r\n /** @ignore */\r\n private disableControls(): void {\r\n this.dropdownControl.disable({ emitEvent: false });\r\n this.inputControl.disable({ emitEvent: false });\r\n }\r\n\r\n /** @ignore */\r\n private handleReset(): void {\r\n this.dropdownControl.setValue(this.countryOptions[0], { emitEvent: false });\r\n this.inputControl.setValue(null, { emitEvent: false });\r\n }\r\n\r\n /** @ignore */\r\n private handleSetValue(value: string | null): void {\r\n if (this.isInternalChange) return;\r\n if (value) {\r\n this.isInternalChange = true;\r\n this.parsePhoneNumber(value, false)\r\n this.isInternalChange = false;\r\n } else {\r\n this.isInternalChange = true;\r\n this.inputControl.setValue(null, { emitEvent: false });\r\n this.isInternalChange = false;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private parsePhoneNumber(fullNumber: string, emitEvent = true) {\r\n const trimmed = fullNumber.trim().replace(/\\s+/g, ''); // Remove spaces\r\n\r\n const knownCodes = ['+52', '+1']; // Add more as needed\r\n knownCodes.sort((a, b) => b.length - a.length); // Match the longest first\r\n\r\n const countryCode = knownCodes.find((code) => trimmed.startsWith(code));\r\n if (!countryCode) return;\r\n\r\n const numberWithoutCode = trimmed.slice(countryCode.length).trim();\r\n\r\n switch (countryCode) {\r\n case '+52':\r\n this.dropdownControl.setValue(this.countryOptions[1], { emitEvent });\r\n this.inputControl.setValue(numberWithoutCode, { emitEvent });\r\n break;\r\n\r\n case '+1': {\r\n const country = this.getNorthAmericanCountry(fullNumber);\r\n if (country) {\r\n this.dropdownControl.setValue(country, { emitEvent });\r\n this.inputControl.setValue(numberWithoutCode, { emitEvent });\r\n }\r\n break;\r\n }\r\n\r\n default:\r\n return; // Ignore unsupported country codes\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n const width = this.wrapperRef?.nativeElement.offsetWidth;\r\n document.documentElement.style.setProperty('--full-width-panel', `${width}px`);\r\n }\r\n\r\n /** @ignore */\r\n getFlag(option: Option): string {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-expect-error\r\n return this.flagBase64[option.iso];\r\n }\r\n\r\n /** @ignore */\r\n private provideValueToTheValueControl() {\r\n if (this.isInternalChange) return;\r\n\r\n const code = this.dropdownControl.value.code;\r\n const phone = this.inputControl.value;\r\n this.isInternalChange = true;\r\n this.valueControl.setValue(phone ? code + phone : null);\r\n this.inputControl.markAsTouched({ emitEvent: false });\r\n this.isInternalChange = false;\r\n }\r\n\r\n /** @ignore */\r\n override canShowError(): boolean {\r\n return !!this.inputControl.errors && (this.inputControl.touched || this.immediateValidation);\r\n }\r\n\r\n /** @ignore */\r\n override canShowSuccess(): boolean {\r\n return !this.inputControl.errors && this.inputControl.touched && !!this.successMessage;\r\n }\r\n\r\n /** @ignore */\r\n override displayFirstError(control: FormControl = this.inputControl): string {\r\n if (!control.errors) return this.genericError;\r\n\r\n /**\r\n * NOTE: we are showing only the first error in a row\r\n */\r\n const firstErrorKey: string = Object.keys(control.errors)[0];\r\n\r\n /**\r\n * merge defaultErrorMessages, required error messages (which is always available)\r\n * and configured errorMessages\r\n */\r\n const errorMessages: GENERIC_COLLECTION<string> = {\r\n ...this.defaultErrorMessages,\r\n ...{ required: this.requiredErrorMessage },\r\n ...{ mask: 'Phone number must be 10 digits.' },\r\n ...this.errorMessages,\r\n };\r\n\r\n if (typeof errorMessages[firstErrorKey] === 'string') {\r\n return errorMessages[firstErrorKey];\r\n } else {\r\n console.warn(`No translation for error ${firstErrorKey}`);\r\n return `${this.genericError} (${firstErrorKey})`;\r\n }\r\n }\r\n\r\n private validateMask = (control: AbstractControl): null | { mask: true } => {\r\n const value = (control.value || '').trim();\r\n\r\n /**\r\n * do not validate empty values (use required validator instead)\r\n */\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n /**\r\n * get value minus code length\r\n */\r\n const digitCount = value.length - this.dropdownControl.value.code.length;\r\n\r\n return digitCount === 10 ? null : { mask: true };\r\n };\r\n}\r\n","<div class=\"form-field-wrapper\" [ngStyle]=\"{ width: width }\" #wrapperRef>\r\n <div class=\"form-controls-wrapper\">\r\n <div\r\n class=\"select-box\"\r\n [ngClass]=\"{ invalid: valueControl.invalid && valueControl.touched }\"\r\n [ngStyle]=\"{ width: '87px' }\"\r\n >\r\n <ads-dropdown\r\n [control]=\"dropdownControl\"\r\n [id]=\"dropdownId\"\r\n [options]=\"countryOptions\"\r\n [immediateValidation]=\"immediateValidation\"\r\n [optionTemplate]=\"optionTemplate\"\r\n [fitContent]=\"true\"\r\n [showFooter]=\"false\"\r\n [checkSelected]=\"false\"\r\n [size]=\"size\"\r\n [successMessage]=\"successMessage\"\r\n [triggerTemplate]=\"triggerTemplate\"\r\n [panelClass]=\"'full-width-panel'\"\r\n />\r\n </div>\r\n <div\r\n class=\"text-box\"\r\n [ngClass]=\"{\r\n invalid: dropdownControl.invalid && dropdownControl.touched,\r\n 'success-label': canShowSuccess(),\r\n 'x-small': smallSize,\r\n }\"\r\n [ngStyle]=\"{ width: '100%' }\"\r\n >\r\n <ads-input\r\n [control]=\"inputControl\"\r\n [mask]=\"phoneMask\"\r\n [id]=\"id\"\r\n [width]=\"'100%'\"\r\n [placeholder]=\"placeholder\"\r\n [label]=\"label\"\r\n [showClearButton]=\"showClearButton\"\r\n [showExclamationOnError]=\"showExclamationOnError\"\r\n [immediateValidation]=\"immediateValidation\"\r\n [dropSpecialCharacters]=\"true\"\r\n [showFooter]=\"false\"\r\n [size]=\"size\"\r\n />\r\n </div>\r\n\r\n </div>\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n</div>\r\n@if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n}\r\n\r\n<ng-template #optionTemplate let-option=\"option\">\r\n <div class=\"flag-option\">\r\n <div>\r\n <img [src]=\"getFlag(option)\" alt=\"flag\"/>\r\n <span>{{option.name}}</span>\r\n </div>\r\n <span class=\"code\">{{option.code}}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #triggerTemplate let-option=\"option\">\r\n <span>{{ option.code }}</span>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\r\nimport { AdsInputModule } from '../input';\r\nimport { AdsInternationalPhoneFieldComponent } from './international-phone-field.component';\r\nimport { AdsDropdownModule } from '../dropdowns/dropdown';\r\nimport { AdsErrorComponent } from '../common/error/error.component';\r\nimport { AdsHintComponent } from '../common/hint/hint.component';\r\nimport { AdsInputTooltipComponent } from '../common/input.tooltip.component';\r\nimport { AdsSuccessComponent } from '../common/success/success.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n NgxMaskDirective,\r\n AdsInputModule,\r\n AdsDropdownModule,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsInputTooltipComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsInternationalPhoneFieldComponent],\r\n exports: [AdsInternationalPhoneFieldComponent],\r\n providers: [provideNgxMask()],\r\n})\r\nexport class AdsInternationalPhoneFieldModule {}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n OnInit,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n AfterViewInit,\r\n Renderer2,\r\n ViewChild,\r\n SimpleChanges,\r\n OnChanges,\r\n} from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconCheckCircleFilled } from '@ascentgl/ads-icons/icons';\r\nimport { ProgressStep } from './progress-step.types';\r\n\r\n@Component({\r\n selector: 'ads-progress-stepper',\r\n templateUrl: './progress-stepper.component.html',\r\n styleUrls: ['./progress-stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class AdsProgressStepperComponent implements AfterViewInit, OnChanges, OnInit {\r\n constructor(\r\n private renderer: Renderer2,\r\n private registry: AdsIconRegistry,\r\n private window: Window,\r\n ) {\r\n this.registry.register(adsIconCheckCircleFilled);\r\n }\r\n\r\n /** @ignore */\r\n @ViewChild('stepper') stepper!: ElementRef;\r\n\r\n /** @ignore */\r\n @ViewChildren('stepElements') stepElements!: QueryList<ElementRef>;\r\n\r\n /** Whether the viewport is mobile */\r\n @Input() isMobile = false;\r\n\r\n /** Padding of parent container */\r\n @Input() containerPadding = 24;\r\n\r\n /** Steps to display */\r\n @Input() steps!: ProgressStep[];\r\n\r\n /** @ignore */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n public styles: any = {};\r\n\r\n /** @ignore */\r\n private focusedIndex = 0;\r\n\r\n /** @ignore */\r\n ngAfterViewInit() {\r\n if (this.isMobile) {\r\n this.focusedIndex = this.getLastCompletedStepIndex(this.steps);\r\n this.centerCurrentStep(this.focusedIndex);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.isMobile && !changes.isMobile.firstChange) {\r\n this.focusedIndex = this.getLastCompletedStepIndex(this.steps);\r\n this.centerCurrentStep(this.focusedIndex);\r\n }\r\n\r\n if (changes?.steps && changes.steps?.currentValue && !changes.steps?.firstChange) {\r\n if (this.isMobile) {\r\n this.focusedIndex = this.getLastCompletedStepIndex(this.steps);\r\n this.centerCurrentStep(this.focusedIndex);\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit() {\r\n this.styles = {\r\n step: {\r\n 'grid-template-columns': `repeat(${this.steps.length}, minmax(150px, 1fr))`,\r\n },\r\n };\r\n }\r\n\r\n /** @ignore */\r\n public onSwipeLeft(): void {\r\n if (this.focusedIndex === this.steps.length - this.calculateStepsPerViewport() || !this.isMobile) {\r\n return;\r\n }\r\n\r\n this.focusedIndex++;\r\n this.centerCurrentStep(this.focusedIndex);\r\n }\r\n\r\n /** @ignore */\r\n public onSwipeRight(): void {\r\n if (this.focusedIndex === 0 || !this.isMobile) {\r\n return;\r\n }\r\n\r\n this.focusedIndex--;\r\n this.centerCurrentStep(this.focusedIndex);\r\n }\r\n\r\n /** @ignore */\r\n private centerCurrentStep(focusedIndex: number): void {\r\n if (focusedIndex === 0) {\r\n this.renderer.setStyle(this.stepper.nativeElement, 'margin-left', '0px');\r\n return;\r\n }\r\n\r\n const stepWidth = this.stepElements.first.nativeElement.getBoundingClientRect().width;\r\n const offset = focusedIndex * stepWidth;\r\n this.renderer.setStyle(this.stepper.nativeElement, 'margin-left', `-${offset}px`);\r\n }\r\n\r\n /** @ignore */\r\n private getLastCompletedStepIndex(steps: ProgressStep[]): number {\r\n return steps.map((step) => step.completed).lastIndexOf(true);\r\n }\r\n\r\n /** @ignore */\r\n private calculateStepsPerViewport(): number {\r\n const stepWidth = this.stepElements.first.nativeElement.getBoundingClientRect().width;\r\n return Math.floor((this.window.innerWidth - this.containerPadding) / stepWidth);\r\n }\r\n}\r\n","<div\r\n #stepper\r\n adsGesture\r\n class=\"progress-stepper\"\r\n [ngStyle]=\"styles?.step\"\r\n [draggable]=\"false\"\r\n (gestureleft)=\"onSwipeLeft()\"\r\n (gestureright)=\"onSwipeRight()\"\r\n>\r\n @for (step of steps; track $index; let first = $first; let last = $last) {\r\n <div\r\n #stepElements\r\n class=\"progress-stepper-step\"\r\n [draggable]=\"false\"\r\n >\r\n <div class=\"progress-bar\" [class.first]=\"first\" [class.last]=\"last\">\r\n <div\r\n class=\"progress-bar-highlight\"\r\n [class.completed]=\"step.completed\"\r\n [class.roundedLeft]=\"first || (!steps[$index - 1].completed && step.completed)\"\r\n [class.roundedRight]=\"\r\n last || (!steps[$index + 1].completed && step.completed) || (first && !steps[$index + 1].completed)\r\n \"\r\n ></div>\r\n </div>\r\n <div class=\"progress-step-info\" [class.first]=\"first\" [class.last]=\"last\">\r\n <div class=\"progress-step-info-container\">\r\n <div class=\"title\">\r\n <div class=\"title-text\">{{ step.title }}</div>\r\n @if (step.completed) {\r\n <div class=\"title-completed-icon\">\r\n <ads-icon name=\"check_circle_filled\" size=\"xxs\" theme=\"success\" stroke=\"success\" />\r\n </div>\r\n }\r\n\r\n </div>\r\n @if (step?.date) {\r\n <div class=\"date\">{{ step?.date }}</div>\r\n }\r\n </div>\r\n\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsProgressStepperComponent } from './progress-stepper.component';\r\nimport { AdsGestureDirection, AdsGestureModule, ADS_GESTURE_DEFAULT_OPTIONS } from '@ascentgl/ads-utils';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n declarations: [AdsProgressStepperComponent],\r\n imports: [CommonModule, AdsIconModule, AdsGestureModule],\r\n exports: [AdsProgressStepperComponent],\r\n providers: [\r\n { provide: ADS_GESTURE_DEFAULT_OPTIONS, useValue: { direction: AdsGestureDirection.DIRECTION_HORIZONTAL } },\r\n { provide: Window, useValue: window },\r\n ],\r\n})\r\nexport class AdsProgressStepperModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i4","i5.AdsButtonComponent","i6.AdsTagContainerComponent","i7.AdsTagComponent","i4.AdsButtonComponent","i5","i1.AdsAscentLogoComponent","i1.AdsPrimaryLogoComponent","i2.AdsHintComponent","i3.AdsErrorComponent","i4.AdsSuccessComponent","i6","i7.AdsInputTooltipComponent","i8.AdsErrorComponent","i9.AdsHintComponent","i10.AdsSuccessComponent","i11.AdsTagComponent","i12.AdsCheckboxComponent","i6.AdsInputTooltipComponent","i8.AdsSuccessComponent","i9.AdsErrorComponent","i10.AdsHintComponent","i1.AdsInputComponent","i2.AdsInputComponent","i3.AdsDropdownComponent","i4.AdsInputTooltipComponent","i5.AdsErrorComponent","i6.AdsHintComponent","i7.AdsSuccessComponent","i8.AdsInputTooltipComponent","i11.AdsSuccessComponent","i12","i13.AdsSearchDropdownHighlighterPipe","i7.DateTimePickerFormatDirective","i8","i9.AdsInputTooltipComponent","i10.AdsErrorComponent","i11.AdsHintComponent","i12.AdsSuccessComponent","i9","i4.AdsErrorComponent","i5.AdsHintComponent","i2.AdsErrorComponent","i3.AdsHintComponent","i1.AdsButtonComponent","i2.AdsButtonComponent","takeUntil","i4.AdsSlideToggleComponent","i6.AdsTableButtonComponent","i7.DividerComponent","i2.AdsPrimaryLogoComponent","i5.DividerComponent","i7.AdsAscentLogoComponent","i9.AdsBreadcrumbComponent","i10","i11","i1.MainMenuService","i2.AdsProfileDisplayComponent","i5.AdsMainMenuItemsComponent","i6.AdsProfileDisplayComponent","i2.AdsNumericStepComponent","i1.AdsInputDropdownComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ascentgl-ads-ui.mjs","sources":["../../../../libs/ads-ui/src/lib/components/avatar/avatar.component.ts","../../../../libs/ads-ui/src/lib/components/avatar/avatar.component.html","../../../../libs/ads-ui/src/lib/components/avatar/avatar.module.ts","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.component.ts","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.component.html","../../../../libs/ads-ui/src/lib/components/icon-hover/icon-hover.module.ts","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.component.ts","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.component.html","../../../../libs/ads-ui/src/lib/components/badge/numeric-badge.module.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.component.html","../../../../libs/ads-ui/src/lib/components/buttons/icon-button/icon-button.module.ts","../../../../libs/ads-ui/src/lib/components/breadcrumb/breadcrumb.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/button/button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/button/button.component.html","../../../../libs/ads-ui/src/lib/components/buttons/button/button.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.component.html","../../../../libs/ads-ui/src/lib/components/buttons/button-container/button-container.module.ts","../../../../libs/ads-ui/src/lib/components/general/color-palette/colors.enums.ts","../../../../libs/ads-ui/src/lib/components/card/card.component.ts","../../../../libs/ads-ui/src/lib/components/card/card.component.html","../../../../libs/ads-ui/src/lib/components/card/ascent-card.component.ts","../../../../libs/ads-ui/src/lib/components/card/card.module.ts","../../../../libs/ads-ui/src/lib/components/card/ascent-card.module.ts","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.component.ts","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.component.html","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.component.ts","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.component.html","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.component.ts","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.component.html","../../../../libs/ads-ui/src/lib/components/tags/tag-container/tag-container.module.ts","../../../../libs/ads-ui/src/lib/components/tags/tag/tag.module.ts","../../../../libs/ads-ui/src/lib/components/tags/create-tag/create-tag.module.ts","../../../../libs/ads-ui/src/lib/components/divider/divider.component.ts","../../../../libs/ads-ui/src/lib/components/divider/divider.component.html","../../../../libs/ads-ui/src/lib/components/divider/divider.module.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/dom.element.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/dragged.placeholder.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.component.ts","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.component.html","../../../../libs/ads-ui/src/lib/components/drag-and-drop-list/drag-and-drop-list.module.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.types.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.component.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.component.html","../../../../libs/ads-ui/src/lib/components/error-page/error-page-code/error-page-code.component.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page-code/error-page-code.module.ts","../../../../libs/ads-ui/src/lib/components/error-page/error-page.module.ts","../../../../libs/ads-ui/src/lib/components/footer/footer.component.ts","../../../../libs/ads-ui/src/lib/components/footer/footer.component.html","../../../../libs/ads-ui/src/lib/components/footer/footer.module.ts","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.component.ts","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.component.html","../../../../libs/ads-ui/src/lib/components/footer/container/footer-container.module.ts","../../../../libs/ads-ui/src/lib/components/header/header.component.ts","../../../../libs/ads-ui/src/lib/components/header/header.component.html","../../../../libs/ads-ui/src/lib/components/header/header.module.ts","../../../../libs/ads-ui/src/lib/components/header/container/header-container.component.ts","../../../../libs/ads-ui/src/lib/components/header/container/header-container.component.html","../../../../libs/ads-ui/src/lib/components/header/container/header-container.module.ts","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.component.ts","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.component.html","../../../../libs/ads-ui/src/lib/components/buttons/link-button/link-button.module.ts","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/abstract-logo-component.ts","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/primary-logo/primary-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/ascent-logo/ascent-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/scms-logo/abstract-application-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/scms-logo/scms-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/scms-logo/scms-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/scms-logo/scms-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/generic-logo/generic-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/generic-logo/generic-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/generic-logo/generic-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-marketplace-logo/peak-marketplace-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-marketplace-logo/peak-marketplace-logo.component.html","../../../../libs/ads-ui/src/lib/components/logo/peak-marketplace-logo/peak-marketplace-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-essentials-logo/peak-essentials-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-essentials-logo/peak-essentials-logo.module.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-order-management-logo/peak-order-management-logo.component.ts","../../../../libs/ads-ui/src/lib/components/logo/peak-order-management-logo/peak-order-management-logo.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-bar/progress-bar.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-spinner/progress-spinner.module.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.types.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.component.ts","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.component.html","../../../../libs/ads-ui/src/lib/components/progress-indicators/progress-indicator-spinner/progress-indicator-spinner.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/shell-layout.module.ts","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.component.ts","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.component.html","../../../../libs/ads-ui/src/lib/components/splash-page/splash-page.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.base.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/abstracts/abstract.dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/input.tooltip.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/error/error.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/error/error.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/common/hint/hint.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/success/success.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/common/success/success.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/checkbox/checkbox.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/dropdown/dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/multi-select-dropdown/multi-select-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/multi-select-dropdown/multi-select-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/input/input.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/phone-field/phone-field.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/phone-field/phone-field.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/phone-field/phone-field.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/area/textarea.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown-highlighter.pipe.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/search-fields/search-input/search-input.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/custom-datetime-format.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetime-template.formatter.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetime-picker-format-directive.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/custom-datetime.adapter.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/date-picker/datepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/date-picker/datepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/time-picker/timepicker.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/datepickers/time-picker/timepicker.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/radio-button/radio-button.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/selection-fields/slider/slider.module.ts","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.component.ts","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.component.html","../../../../libs/ads-ui/src/lib/components/snackbars/snackbar/snackbar.module.ts","../../../../libs/ads-ui/src/lib/services/viewport/viewport.service.ts","../../../../libs/ads-ui/src/lib/services/window/window.service.ts","../../../../libs/ads-ui/src/lib/services/window/abstract-window-resize.component.ts","../../../../libs/ads-ui/src/lib/components/modal/modal.component.ts","../../../../libs/ads-ui/src/lib/components/modal/modal.component.html","../../../../libs/ads-ui/src/lib/components/modal/modal.module.ts","../../../../libs/ads-ui/src/lib/components/chip/chip.component.ts","../../../../libs/ads-ui/src/lib/components/chip/chip.component.html","../../../../libs/ads-ui/src/lib/components/chip/chip.module.ts","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.component.ts","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.component.html","../../../../libs/ads-ui/src/lib/components/expansion-panel/expansion-panel.module.ts","../../../../libs/ads-ui/src/lib/components/table/components/table-button/table-button.component.ts","../../../../libs/ads-ui/src/lib/components/table/components/table-button/table-button.component.html","../../../../libs/ads-ui/src/lib/components/table/table.component.ts","../../../../libs/ads-ui/src/lib/components/table/table.component.html","../../../../libs/ads-ui/src/lib/components/table/components/table-button/table-button.module.ts","../../../../libs/ads-ui/src/lib/components/table/table.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/nav-menu/nav-menu.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/abstract-side-nav-bar.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/side-nav-bar.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/side-nav-bar/nav-item.types.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/scms-side-nav-bar/scms-side-nav-bar.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/scms-side-nav-bar/scms-side-nav-bar.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/scms-side-nav-bar/scms-side-nav-bar.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu.service.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu-items/main-menu-items.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu-items/main-menu-items.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu-items/main-menu-items.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/profile-display/profile-display.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/profile-display/profile-display.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/profile-display/profile-display.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu-bottom-sheet/main-menu-bottom-sheet.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu-bottom-sheet/main-menu-bottom-sheet.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/main-menu/main-menu.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/components/numeric-step.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/components/numeric-step.component.html","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/numeric-stepper/numeric-stepper.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/wizard-stepper/wizard-stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/wizard-stepper/wizard-stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/wizard-stepper/wizard-stepper.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/stepper/stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/stepper/stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/stepper/stepper.module.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/horizontal-nav-bar/horizontal-nav-bar.component.ts","../../../../libs/ads-ui/src/lib/components/nav-bar/horizontal-nav-bar/horizontal-nav-bar.component.html","../../../../libs/ads-ui/src/lib/components/nav-bar/horizontal-nav-bar/horizontal-nav-bar.module.ts","../../../../libs/ads-ui/src/lib/components/brand-artifacts/bubble/bubble.component.ts","../../../../libs/ads-ui/src/lib/components/brand-artifacts/bubble/bubble.component.html","../../../../libs/ads-ui/src/lib/components/brand-artifacts/bubble/bubble.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/time-field/time-field.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/time-field/time-field.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/time-field/time-field.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/navigation.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/navigation.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/navigation.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-header/navigation-header.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-header/navigation-header.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-header/navigation-header.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-collapse-handle/navigation-collapse-handle.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-collapse-handle/navigation-collapse-handle.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-collapse-handle/navigation-collapse-handle.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-items-container/navigation-items-container.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-items-container/navigation-items-container.module.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-item/navigation-item.component.ts","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-item/navigation-item.component.html","../../../../libs/ads-ui/src/lib/components/shell-layout/navigation/components/navigation-item/navigation-item.module.ts","../../../../libs/ads-ui/src/lib/components/header/org-display-text/org-display-text.component.ts","../../../../libs/ads-ui/src/lib/components/header/org-display-text/org-display-text.component.html","../../../../libs/ads-ui/src/lib/components/header/org-display-text/org-display-text.module.ts","../../../../libs/ads-ui/src/lib/components/tabs/tabs.component.ts","../../../../libs/ads-ui/src/lib/components/tabs/tabs.component.html","../../../../libs/ads-ui/src/lib/components/tabs/tabs.module.ts","../../../../libs/ads-ui/src/lib/components/form-fields/international-phone-field/canadian-area-codes.ts","../../../../libs/ads-ui/src/lib/components/form-fields/international-phone-field/international-phone-field.component.ts","../../../../libs/ads-ui/src/lib/components/form-fields/international-phone-field/international-phone-field.component.html","../../../../libs/ads-ui/src/lib/components/form-fields/international-phone-field/international-phone-field.module.ts","../../../../libs/ads-ui/src/lib/components/steppers/progress-stepper/progress-stepper.component.ts","../../../../libs/ads-ui/src/lib/components/steppers/progress-stepper/progress-stepper.component.html","../../../../libs/ads-ui/src/lib/components/steppers/progress-stepper/progress-stepper.module.ts","../../../../libs/ads-ui/src/ascentgl-ads-ui.ts"],"sourcesContent":["import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconUserCircle } from '@ascentgl/ads-icons/icons';\r\nimport { Size } from './avatar.types';\r\n\r\n@Component({\r\n selector: 'ads-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsAvatarComponent implements OnChanges {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register(adsIconUserCircle);\r\n }\r\n\r\n /**\r\n * The alt text for the avatar\r\n */\r\n @Input() alt?: string = 'Avatar for user';\r\n\r\n /**\r\n * The id attribute for the avatar icon\r\n */\r\n @Input() id = 'ads-avatar';\r\n\r\n /**\r\n * The size of the avatar\r\n */\r\n @Input() size: Size = 'md';\r\n\r\n /**\r\n * The path to the image to display\r\n */\r\n @Input() src?: string;\r\n\r\n /**\r\n * @ignore\r\n */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes?.size?.currentValue) {\r\n this.size = changes.size.currentValue;\r\n }\r\n\r\n if (changes?.image?.currentValue) {\r\n this.src = changes.image.currentValue;\r\n }\r\n }\r\n}\r\n","<div class=\"avatar\" [ngClass]=\"size\">\r\n @if(src) {\r\n <img [src]=\"src\" [alt]=\"alt\" />\r\n } @else {\r\n <ads-icon\r\n [id]=\"id\"\r\n name=\"user_circle\"\r\n [size]=\"size\"\r\n theme=\"iconPrimary\"\r\n stroke=\"iconPrimary\"\r\n color=\"--color-medium\"\r\n />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsAvatarComponent } from './avatar.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n declarations: [AdsAvatarComponent],\r\n imports: [CommonModule, AdsIconModule],\r\n exports: [AdsAvatarComponent],\r\n})\r\nexport class AdsAvatarModule {}\r\n","import { Component, input, output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-icon-hover',\r\n styleUrls: ['icon-hover.component.scss'],\r\n templateUrl: 'icon-hover.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsIconHoverComponent {\r\n /**\r\n * The aria-label for the button\r\n */\r\n ariaLabel = input<string>('');\r\n /**\r\n * Whether the icon button is disabled.\r\n */\r\n disabled = input<boolean>(false);\r\n\r\n /**\r\n * The unique ID for the icon button.\r\n */\r\n id = input<string>('');\r\n\r\n /**\r\n * Event emitted when the icon button is clicked.\r\n */\r\n clicked = output();\r\n\r\n /** @ignore */\r\n public onClick(): void {\r\n this.clicked.emit();\r\n }\r\n}\r\n","<button\r\n class=\"icon-hover\"\r\n type=\"button\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [attr.id]=\"id()\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onClick()\"\r\n>\r\n <ng-content></ng-content>\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsIconHoverComponent } from './icon-hover.component';\r\n\r\n@NgModule({\r\n exports: [AdsIconHoverComponent],\r\n declarations: [AdsIconHoverComponent],\r\n})\r\nexport class AdsIconHoverModule {}\r\n","import { Component, computed, input } from '@angular/core';\r\nimport { AdsIconHoverComponent } from '../icon-hover';\r\nimport { adsIcon, adsIconBell } from '@ascentgl/ads-icons/icons';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\n\r\nexport enum BadgeColor {\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n alert = 'alert',\r\n}\r\n\r\n@Component({\r\n selector: 'ads-numeric-badge',\r\n templateUrl: './numeric-badge.component.html',\r\n styleUrls: ['../icon-hover/icon-hover.component.scss', './numeric-badge.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsNumericBadgeComponent extends AdsIconHoverComponent {\r\n /** @ignore **/\r\n constructor(private registry: AdsIconRegistry) {\r\n super();\r\n this.registry.register(adsIconBell);\r\n }\r\n\r\n /** choose badge color mode \"primary\" or \"alert\" **/\r\n color = input<BadgeColor>(BadgeColor.secondary);\r\n\r\n /** provide icon name. NOTE: the icon must be registered in icon registry **/\r\n name = input<adsIcon>('bell');\r\n\r\n /** choose ads icon theme **/\r\n theme = input<'iconPrimary' | 'primary' | 'success' | 'warn' | 'white'>('iconPrimary');\r\n\r\n /** set badge value as number **/\r\n value = input<number>(0);\r\n\r\n /** @ignore **/\r\n calculatedValue = computed<string>(() => {\r\n if(!this.value()) {\r\n return '';\r\n }\r\n return this.value().toString().length > 2 ? '99..' : this.value().toString();\r\n });\r\n}\r\n","<button\r\n class=\"icon-hover color-{{ color() }}\"\r\n type=\"button\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [attr.id]=\"id()\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onClick()\"\r\n [matBadgeSize]=\"'small'\"\r\n [matBadge]=\"calculatedValue()\"\r\n [matBadgeHidden]=\"calculatedValue() === '0'\"\r\n>\r\n <ads-icon\r\n [name]=\"name()\"\r\n [size]=\"'sm'\"\r\n [theme]=\"theme()\"\r\n ></ads-icon>\r\n</button>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatBadge } from '@angular/material/badge';\r\nimport { AdsNumericBadgeComponent } from './numeric-badge.component';\r\n\r\n@NgModule({\r\n declarations: [AdsNumericBadgeComponent],\r\n exports: [AdsNumericBadgeComponent],\r\n imports: [AdsIconModule, MatBadge],\r\n})\r\nexport class AdsNumericBadgeModule {}\r\n","import {\r\n Component,\r\n input,\r\n} from '@angular/core';\r\nimport { Breadcrumb } from './breadcrumb.type';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconChevronRight } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsBreadcrumbComponent {\r\n /** provide an array of breadcrumbs of Breadcrumb<T> type */\r\n breadcrumbs = input.required<Breadcrumb[]>();\r\n\r\n /** @ignore */\r\n constructor(\r\n private registry: AdsIconRegistry,\r\n ) {\r\n this.registry.register([adsIconChevronRight]);\r\n }\r\n}\r\n","<div class=\"ads-breadcrumbs-container\">\r\n <div class=\"ads-breadcrumb-list\">\r\n @for (breadcrumb of breadcrumbs(); track $index) {\r\n @if (!$last) {\r\n <a class=\"ads-breadcrumb\" [routerLink]=\"breadcrumb.url\">\r\n <span>{{ breadcrumb.label }}</span>\r\n </a>\r\n } @else {\r\n <div class=\"ads-breadcrumb active\">\r\n <span>{{ breadcrumb.label }}</span>\r\n </div>\r\n }\r\n @if (!$last) {\r\n <ads-icon class=\"separator\" [name]=\"'chevron_right'\" [size]=\"'xxxxs'\" />\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n","import { Component, input } from '@angular/core';\r\n\r\nexport type IconButtonSize = 'xl-5' | 'xl' | 'sm';\r\n\r\n@Component({\r\n selector: 'ads-icon-button',\r\n templateUrl: './icon-button.component.html',\r\n styleUrls: ['./icon-button.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsIconButtonComponent {\r\n /** Whether the button is a smaller version */\r\n size = input<IconButtonSize>('xl-5');\r\n /**\r\n * aria-label for the button\r\n */\r\n ariaLabel = input<string>('');\r\n\r\n /**\r\n * The unique ID for the icon button\r\n */\r\n id = input<string | null>();\r\n\r\n /**\r\n * Whether the button is disabled\r\n */\r\n disabled = input<boolean>(false);\r\n}\r\n","<button\r\n type=\"button\"\r\n class=\"ads-icon-btn\"\r\n [disabled]=\"disabled()\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [id]=\"id()\"\r\n [ngClass]=\"[size()]\"\r\n>\r\n <span class=\"icon-wrapper\">\r\n <ng-content></ng-content>\r\n </span>\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsIconButtonComponent } from './icon-button.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [AdsIconButtonComponent],\r\n exports: [AdsIconButtonComponent],\r\n imports: [CommonModule, MatButtonModule, AdsIconModule],\r\n})\r\nexport class AdsIconButtonModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsBreadcrumbComponent } from './breadcrumb.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsIconButtonModule } from '../buttons/icon-button';\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, AdsIconModule, AdsIconButtonModule],\r\n declarations: [AdsBreadcrumbComponent],\r\n exports: [AdsBreadcrumbComponent],\r\n})\r\nexport class AdsBreadcrumbModule {}\r\n","import { Component, input } from '@angular/core';\r\n\r\nexport type Variant = 'primary' | 'error' | 'secondary' | 'tertiary';\r\nexport type Size = 'base' | 'sm' | 'xs';\r\n\r\n@Component({\r\n selector: 'ads-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsButtonComponent {\r\n /** The unique ID for the button */\r\n id = input<string>('');\r\n\r\n /** The button appearance style */\r\n variant = input<Variant>('primary');\r\n\r\n /** Whether the button is disabled */\r\n disabled = input<boolean>(false);\r\n\r\n /** Whether the button is a smaller version */\r\n size = input<Size>('base');\r\n\r\n /** Sets the \"type\" attribute on the button */\r\n type = input<'button' | 'submit' | 'reset'>('button');\r\n\r\n /** Makes the button take 100% width of its container */\r\n fullWidth = input<boolean>(false);\r\n}\r\n","<button mat-flat-button [class.full-width]=\"fullWidth()\" [id]=\"id()\" [ngClass]=\"[variant(), size()]\" [disabled]=\"disabled()\" [disableRipple]=\"true\">\r\n <ng-content></ng-content>\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { AdsButtonComponent } from './button.component';\r\n\r\n@NgModule({\r\n declarations: [AdsButtonComponent],\r\n exports: [AdsButtonComponent],\r\n imports: [CommonModule, MatButtonModule],\r\n})\r\nexport class AdsButtonModule {}\r\n","import { Component, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-button-container',\r\n templateUrl: './button-container.component.html',\r\n styleUrls: ['./button-container.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsButtonContainerComponent {\r\n /** How buttons in the container should be placed */\r\n justify = input<'flex-start' | 'flex-end' | 'center'>('flex-start');\r\n\r\n /** The gap between elements */\r\n gap = input<number>(16);\r\n}\r\n","<div class=\"button-container\" [style.justify-content]=\"justify()\" [style.gap]=\"gap() + 'px'\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsButtonContainerComponent } from './button-container.component';\r\n\r\n@NgModule({\r\n declarations: [AdsButtonContainerComponent],\r\n imports: [CommonModule],\r\n exports: [AdsButtonContainerComponent],\r\n})\r\nexport class AdsButtonContainerModule {}\r\n","export enum Colors {\r\n White = 'white',\r\n Muted30 = 'muted-30',\r\n Muted50 = 'muted-50',\r\n Muted = 'muted',\r\n Light30 = 'light-30',\r\n Light80 = 'light-80',\r\n Light = 'light',\r\n LightOpacity50 = 'light-opacity-50',\r\n Medium30 = 'medium-30',\r\n Medium50 = 'medium-50',\r\n Medium = 'medium',\r\n MediumOpacity50 = 'medium-opacity-50',\r\n Dark10 = 'dark-10',\r\n Dark30 = 'dark-30',\r\n Dark50 = 'dark-50',\r\n Dark80 = 'dark-80',\r\n Dark90 = 'dark-90',\r\n Dark = 'dark',\r\n Black = 'black',\r\n Primary = 'primary',\r\n PrimaryHover = 'primary-hover',\r\n PrimaryPressed = 'primary-pressed',\r\n Secondary = 'secondary',\r\n SecondaryHover = 'secondary-hover',\r\n SecondaryPressed = 'secondary-pressed',\r\n Secondary10 = 'secondary-10',\r\n Link = 'link',\r\n LinkHover = 'link-hover',\r\n LinkPressed = 'link-pressed',\r\n Error = 'error',\r\n ErrorHover = 'error-hover',\r\n ErrorPressed = 'error-pressed',\r\n Success = 'success',\r\n SuccessHover = 'success-hover',\r\n SuccessPressed = 'success-pressed',\r\n Logo = 'logo',\r\n Alert = 'alert',\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { Colors } from '../general/color-palette/colors.enums';\r\n\r\n@Component({\r\n selector: 'ads-card',\r\n styleUrls: ['card.component.scss'],\r\n templateUrl: 'card.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsCardComponent {\r\n /**\r\n * Card border color\r\n */\r\n @Input() borderColor: Colors = Colors.Light;\r\n\r\n /**\r\n * Card border width\r\n */\r\n @Input() borderWidth = 1;\r\n\r\n /**\r\n * Card border radius\r\n */\r\n @Input() borderRadius = 10;\r\n\r\n /** @ignore */\r\n getBorderColor(color: string): string {\r\n return `var(--color-${color})`;\r\n }\r\n}\r\n","<div\r\n class=\"ascent-card\"\r\n [ngStyle]=\"{\r\n borderWidth: borderWidth + 'px',\r\n borderColor: getBorderColor(borderColor),\r\n borderRadius: borderRadius + 'px',\r\n }\"\r\n>\r\n <ng-content />\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Colors } from '../general/color-palette/colors.enums';\r\n\r\n@Component({\r\n selector: 'ascent-card',\r\n styleUrls: ['card.component.scss'],\r\n templateUrl: 'card.component.html',\r\n standalone: false,\r\n})\r\nexport class AscentCardComponent {\r\n /**\r\n * Card border color\r\n */\r\n @Input() borderColor: Colors = Colors.Light;\r\n\r\n /**\r\n * Card border width\r\n */\r\n @Input() borderWidth = 1;\r\n\r\n /**\r\n * Card border radius\r\n */\r\n @Input() borderRadius = 10;\r\n\r\n /** @ignore */\r\n getBorderColor(color: string): string {\r\n return `var(--color-${color})`;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AdsCardComponent } from './card.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AdsCardComponent],\r\n declarations: [AdsCardComponent],\r\n})\r\nexport class AdsCardModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AscentCardComponent } from './ascent-card.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AscentCardComponent],\r\n declarations: [AscentCardComponent],\r\n})\r\nexport class AscentCardModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-tag-container',\r\n templateUrl: './tag-container.component.html',\r\n styleUrls: ['./tag-container.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsTagContainerComponent {}\r\n","<div class=\"tag-container\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { Component, ChangeDetectionStrategy, input, output } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconCross } from '@ascentgl/ads-icons/icons';\r\nimport { Colors } from '../../general/color-palette/colors.enums';\r\nimport { Tag } from './tag.types';\r\n\r\n@Component({\r\n selector: 'ads-tag',\r\n templateUrl: './tag.component.html',\r\n styleUrls: ['./tag.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class AdsTagComponent {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register(adsIconCross);\r\n }\r\n\r\n /** The color of the tag */\r\n color = input.required<Colors | string>();\r\n\r\n /** The border color of the tag */\r\n borderColor = input<Colors>();\r\n\r\n /** The border width of the tag */\r\n borderWidth = input<number>(0);\r\n\r\n /** Width of the tag */\r\n width = input<string>('auto');\r\n\r\n /** The unique id of the tag */\r\n id = input.required<string>();\r\n\r\n /** Whether the tag is removeable */\r\n removable = input<boolean>(true);\r\n\r\n /** The text of the tag */\r\n tag = input.required<string>();\r\n\r\n /** Event emitted when the remove icon is clicked */\r\n remove = output<string>();\r\n\r\n /** Event emitted when a tag is selected */\r\n selected = output<Tag>();\r\n\r\n /** @ignore */\r\n onRemove() {\r\n this.remove.emit(this.id());\r\n }\r\n\r\n /** @ignore */\r\n onSelected() {\r\n this.selected.emit({\r\n id: this.id(),\r\n color: this.color(),\r\n tag: this.tag(),\r\n });\r\n }\r\n\r\n /** @ignore */\r\n private darkTitleColorList = [\r\n Colors.Muted,\r\n Colors.Light30,\r\n Colors.Light80,\r\n Colors.Light,\r\n Colors.Medium30,\r\n Colors.Medium50,\r\n ];\r\n\r\n /** @ignore */\r\n\r\n isDarkTitle(): boolean {\r\n if (this.isColor(this.color())) {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-expect-error\r\n return this.darkTitleColorList.includes(this.color());\r\n }\r\n return false;\r\n }\r\n\r\n /** @ignore */\r\n getBackgroundColor(): string {\r\n if (this.isColor(this.color())) {\r\n return `var(--color-${this.color()})`;\r\n }\r\n\r\n return this.color();\r\n }\r\n\r\n /** @ignore */\r\n getTextColor(): string {\r\n if (this.isDarkTitle()) {\r\n return `var(--color-${Colors.Dark})`;\r\n }\r\n return `var(--color-${Colors.White})`;\r\n }\r\n\r\n /** @ignore */\r\n getBorderColor(): string {\r\n return `var(--color-${this.borderColor()})`;\r\n }\r\n\r\n /** @ignore */\r\n isColor(value: unknown): value is Colors {\r\n return Object.values(Colors).includes(value as Colors);\r\n }\r\n}\r\n","<div\r\n class=\"tag\"\r\n [ngStyle]=\"{\r\n 'background-color': getBackgroundColor(),\r\n color: getTextColor(),\r\n 'border-width': borderWidth() + 'px',\r\n 'border-style': borderWidth() > 0 ? 'solid' : 'none',\r\n 'border-color': getBorderColor(),\r\n width: width(),\r\n }\"\r\n>\r\n <ng-content></ng-content>\r\n <span class=\"tag-text\" (click)=\"onSelected()\">{{ tag() }}</span>\r\n\r\n @if (removable()) {\r\n <ads-icon\r\n [id]=\"'ads-tag-' + id()\"\r\n name=\"cross\"\r\n size=\"xxxxs\"\r\n (click)=\"onRemove()\"\r\n [stroke]=\"isDarkTitle() ? 'dark' : 'white'\"\r\n />\r\n }\r\n</div>\r\n","import {\r\n Component,\r\n effect,\r\n ElementRef, EventEmitter,\r\n Input,\r\n input,\r\n OnChanges,\r\n OnDestroy, Output,\r\n signal,\r\n SimpleChange,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconPlus } from '@ascentgl/ads-icons/icons';\r\nimport { Subscription } from 'rxjs';\r\nimport { ConnectedPosition } from '@angular/cdk/overlay';\r\nimport { Colors } from '../../general/color-palette/colors.enums';\r\nimport { Tag } from '../tag';\r\n\r\n@Component({\r\n selector: 'ads-create-tag',\r\n templateUrl: './create-tag.component.html',\r\n styleUrls: ['./create-tag.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsCreateTagComponent implements OnChanges, OnDestroy {\r\n constructor(\r\n private fb: FormBuilder,\r\n private registry: AdsIconRegistry,\r\n ) {\r\n this.registry.register(adsIconPlus);\r\n this.createForm();\r\n\r\n effect(() => {\r\n if (this.selectedTag()) {\r\n this.form.patchValue(this.selectedTag()!);\r\n this.selectedColor = this.selectedTag()!.color;\r\n setTimeout(() => {\r\n if (this.editInput) {\r\n this.editInput.nativeElement.focus();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n /** The total number of tags that can be created */\r\n limit = input<number>(10);\r\n\r\n /** Holds all the tags you create or tags you previously created. Required for proper unique tag validation\r\n * and total number of existing tags calculation */\r\n @Input() tags: Tag[] = [];\r\n @Output() tagsChange = new EventEmitter<Tag[]>();\r\n @Output() tagCreate = new EventEmitter<Tag>();\r\n @Output() tagRemove = new EventEmitter<string>();\r\n\r\n /** The color palette for the tag background */\r\n palette = input<Colors[]>([\r\n Colors.Primary,\r\n Colors.PrimaryPressed,\r\n Colors.Secondary,\r\n Colors.SecondaryPressed,\r\n Colors.Light30,\r\n Colors.Light,\r\n Colors.Medium,\r\n Colors.Dark10,\r\n ]);\r\n\r\n /** Reference to a tag which can be used for editing existing tags */\r\n /** @ignore */\r\n selectedTag = signal<Tag | null>(null);\r\n\r\n /** If true - all the letters will be transformed to lowercase */\r\n lowercase = input<boolean>(false);\r\n\r\n /** Total number of characters that can be in input field */\r\n maxlength = input<number>(30);\r\n\r\n /** If true - only alphanumeric characters are allowed */\r\n alphanumeric = input<boolean>(true);\r\n\r\n /** @ignore */\r\n form!: FormGroup;\r\n\r\n /** @ignore */\r\n selectedColor = '';\r\n\r\n /** @ignore */\r\n showInput = false;\r\n\r\n /** @ignore\r\n * preset positions are required to properly control how overlay is positioned relative to the button\r\n * NOTE: default positioning is not optimal\r\n * NOTE: if none of the positions fits - overlay will be positioned automatically\r\n */\r\n positions: ConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n },\r\n ];\r\n\r\n /** @ignore */\r\n @ViewChild('addInput') addInput?: ElementRef;\r\n\r\n /** @ignore */\r\n @ViewChild('editInput') editInput?: ElementRef;\r\n\r\n /** @ignore */\r\n private tagControlSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { tag?: SimpleChange; palette?: SimpleChange; suggestions?: SimpleChange }): void {\r\n if (changes.tag && changes.tag.currentValue && this.form) {\r\n // this.form.patchValue(changes.tag.currentValue);\r\n // this.selectedColor = changes.tag.currentValue.color;\r\n // this.showInput = true;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.tagControlSubscription?.unsubscribe();\r\n }\r\n\r\n /** @ignore */\r\n addTag(): void {\r\n if (!this.isValueInvalid()) {\r\n this.onTagCreated(this.getModifiedTag());\r\n this.reset();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n updateTag(): void {\r\n if (!this.isValueInvalid()) {\r\n this.onTagUpdated(this.getModifiedTag());\r\n this.reset();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onColorChange(color: string): void {\r\n this.selectedColor = color === this.selectedColor ? '' : color;\r\n this.form.patchValue({ color: this.selectedColor });\r\n }\r\n\r\n /** @ignore */\r\n reset(): void {\r\n this.resetForm();\r\n this.selectedColor = '';\r\n this.showInput = false;\r\n this.selectedTag.set(null);\r\n }\r\n\r\n /** @ignore */\r\n hide(): void {\r\n /**\r\n * reset form if we are closing after editing an existing tag\r\n * to avoid existing tag being loaded when we create a new one\r\n */\r\n if (this.form.value.id) {\r\n this.reset();\r\n } else {\r\n this.showInput = false;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n displayInput(): void {\r\n this.setDefaultSelectedColor();\r\n this.showInput = true;\r\n\r\n setTimeout(() => {\r\n if (this.addInput) {\r\n this.addInput.nativeElement.focus();\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n isValueInvalid(): boolean {\r\n /**\r\n * value is invalid if form us invalid\r\n * OR palette is enabled, but we have no color selected\r\n * OR tag is not unique\r\n * tag is not unique if already exists a tag with such name\r\n * AND color\r\n * AND current tag's id is different from existing tag's id\r\n */\r\n return (\r\n !this.form.valid ||\r\n !this.selectedColor ||\r\n this.tags.filter((tag) => {\r\n return (\r\n this.trimTagName(tag.tag) === this.trimTagName(this.form.value.tag) &&\r\n tag.color === this.form.value.color &&\r\n tag.id !== this.form.value.id\r\n );\r\n }).length > 0\r\n );\r\n }\r\n\r\n /** @ignore */\r\n private createForm(): void {\r\n this.form = this.fb.group({\r\n tag: new FormControl('', [Validators.required, Validators.maxLength(this.maxlength())]),\r\n color: new FormControl(''),\r\n id: new FormControl(''),\r\n });\r\n\r\n this.form.controls.tag.valueChanges.subscribe((value) => {\r\n const modifiedValue = this.formatTagName(value);\r\n\r\n /** update form value only if it got modified*/\r\n if (modifiedValue !== value) {\r\n this.form.controls.tag.setValue(modifiedValue, { emitEvent: false });\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n private resetForm(): void {\r\n this.form.reset({ tag: '', color: '', id: '' });\r\n }\r\n\r\n /** @ignore */\r\n private getModifiedTag(): Tag {\r\n return {\r\n id: this.form.value.id,\r\n tag: this.form.value.tag.trim(), //make sure tag value does not contain trailing slash\r\n color: this.form.value.color,\r\n };\r\n }\r\n\r\n /** @ignore */\r\n private setDefaultSelectedColor(): void {\r\n /**\r\n * set default color only if tag id is empty - meaning it is a new tag\r\n */\r\n if (!this.form.value.id && !this.form.value.color && this.palette.length) {\r\n this.onColorChange(this.palette()[0]);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private formatTagName(tagName: string): string {\r\n let formattedName = tagName;\r\n\r\n /** if \"alphanumeric\" is true - allow only alphanumerics and spaces */\r\n if (this.alphanumeric()) {\r\n formattedName = formattedName.replace(/[^a-z0-9\\s]/gi, '');\r\n }\r\n\r\n /** if \"lowercase\" is true - turn all letters to lowercase */\r\n if (this.lowercase()) {\r\n formattedName = formattedName.toLowerCase();\r\n }\r\n\r\n /** do not allow space at the beginning of the string*/\r\n if (formattedName.startsWith(' ')) {\r\n formattedName = formattedName.replace(/^\\s+/gm, '');\r\n }\r\n\r\n /** do not allow multi-space sequences*/\r\n if (formattedName.includes(' ')) {\r\n formattedName = formattedName.replace(/\\s\\s+/gm, ' ');\r\n }\r\n\r\n return formattedName;\r\n }\r\n\r\n /** @ignore */\r\n private trimTagName(tagName: string): string {\r\n return tagName.trim().toLowerCase();\r\n }\r\n\r\n /** @ignore */\r\n getBackgroundColor(color: string): string {\r\n return `var(--color-${color})`;\r\n }\r\n\r\n /** @ignore */\r\n onTagUpdated(tag: Tag): void {\r\n const existingTag = this.tags.find((existingTag) => existingTag.id === tag.id); // Find existing tag with the same id\r\n\r\n if (existingTag) {\r\n Object.assign(existingTag, tag); // Update existing tag properties\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onTagCreated(tag: Tag): void {\r\n tag.id = (this.tags[this.tags.length - 1].id + 1).toString(); // Generate a unique id for the tag - uuid is a 3rd party library\r\n this.tags.push(tag); // Add the tag to the list of tags\r\n this.tagsChange.emit([...this.tags]); // emit the updated array\r\n this.tagCreate.emit(tag);\r\n\r\n }\r\n\r\n /** @ignore */\r\n onTagSelect(tag: Tag): void {\r\n this.selectedTag.set(tag); // Set selectedTag value to open current tag in `ads-create-tag` component\r\n }\r\n\r\n /** @ignore */\r\n onTagRemove(id: string): void {\r\n this.tags = this.tags.filter((existingTag) => existingTag.id !== id); // Remove tag from the list of tags\r\n this.tagsChange.emit([...this.tags]);\r\n this.tagRemove.emit(id); // emit the updated array\r\n }\r\n}\r\n","<ads-tag-container>\r\n @for (tag of tags; track tag.id) {\r\n @if (selectedTag()?.id === tag.id) {\r\n <form [formGroup]=\"form\">\r\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #updateTrigger=\"cdkOverlayOrigin\"></div>\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"updateTrigger\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayPush]=\"true\"\r\n [cdkConnectedOverlayOpen]=\"true\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"hide()\"\r\n (detach)=\"hide()\"\r\n >\r\n <div class=\"tag-overlay\">\r\n <input #editInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\r\n <div class=\"tag-configuration\">\r\n <div class=\"color-picker\">\r\n @for (color of palette(); track color) {\r\n <div\r\n class=\"color\"\r\n [class.selected]=\"selectedColor === color\"\r\n [ngStyle]=\"{\r\n 'background-color': getBackgroundColor(color),\r\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\r\n }\"\r\n (click)=\"onColorChange(color)\"\r\n ></div>\r\n }\r\n </div>\r\n <div class=\"actions\">\r\n <ads-button [variant]=\"'secondary'\" size=\"xs\" (click)=\"reset()\">{{ 'Cancel' }}</ads-button>\r\n <ads-button size=\"xs\" [disabled]=\"isValueInvalid()\" (click)=\"updateTag()\">\r\n {{ 'Save' }}\r\n </ads-button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </form>\r\n } @else {\r\n <ads-tag\r\n [tag]=\"tag.tag\"\r\n [color]=\"tag.color\"\r\n [id]=\"tag.id\"\r\n (selected)=\"onTagSelect($event)\"\r\n (remove)=\"onTagRemove($event)\"\r\n />\r\n }\r\n }\r\n\r\n <div class=\"tag-container \">\r\n @if (showInput) {\r\n <form [formGroup]=\"form\">\r\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #addTrigger=\"cdkOverlayOrigin\"></div>\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"addTrigger\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayPush]=\"true\"\r\n [cdkConnectedOverlayOpen]=\"true\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"hide()\"\r\n (detach)=\"hide()\"\r\n >\r\n <div class=\"tag-overlay\">\r\n <input #addInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\r\n <div class=\"tag-configuration\">\r\n <div class=\"color-picker\">\r\n @for (color of palette(); track color) {\r\n <div\r\n class=\"color\"\r\n [class.selected]=\"selectedColor === color\"\r\n [ngStyle]=\"{\r\n 'background-color': getBackgroundColor(color),\r\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\r\n }\"\r\n (click)=\"onColorChange(color)\"\r\n ></div>\r\n }\r\n </div>\r\n <div class=\"actions\">\r\n <ads-button [variant]=\"'secondary'\" size=\"xs\" (click)=\"reset()\">{{ 'Cancel' }}</ads-button>\r\n <ads-button size=\"xs\" [disabled]=\"isValueInvalid()\" (click)=\"addTag()\">{{ 'Add' }} </ads-button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </form>\r\n }\r\n\r\n @if (this.tags.length < this.limit()) {\r\n <ads-button (click)=\"displayInput()\" size=\"xs\">\r\n {{ 'Add Tag' }}\r\n </ads-button>\r\n }\r\n </div>\r\n</ads-tag-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsTagContainerComponent } from './tag-container.component';\r\n\r\n@NgModule({\r\n declarations: [AdsTagContainerComponent],\r\n imports: [CommonModule],\r\n exports: [AdsTagContainerComponent],\r\n})\r\nexport class AdsTagContainerModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsTagComponent } from './tag.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n declarations: [AdsTagComponent],\r\n imports: [CommonModule, AdsIconModule],\r\n exports: [AdsTagComponent],\r\n})\r\nexport class AdsTagModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsCreateTagComponent } from './create-tag.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsButtonModule } from '../../buttons/button';\r\nimport { AdsTagContainerModule } from '../tag-container';\r\nimport { AdsTagModule } from '../tag';\r\n\r\n@NgModule({\r\n declarations: [AdsCreateTagComponent],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n OverlayModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n AdsButtonModule,\r\n AdsTagContainerModule,\r\n AdsTagModule,\r\n ],\r\n exports: [AdsCreateTagComponent],\r\n})\r\nexport class AdsCreateTagModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Colors } from '../general/color-palette/colors.enums';\r\n\r\nexport type DividerStyle = {\r\n margin: string | number;\r\n 'background-color': string;\r\n};\r\n\r\n@Component({\r\n selector: 'ads-divider',\r\n templateUrl: './divider.component.html',\r\n styleUrls: ['./divider.component.scss'],\r\n standalone: false,\r\n})\r\nexport class DividerComponent implements OnInit {\r\n /**\r\n * The divider left and right margin\r\n */\r\n @Input() margin: string | number = 0;\r\n\r\n /**\r\n * The divider color\r\n */\r\n @Input() color: Colors = Colors.Light;\r\n\r\n /** @ignore */\r\n public style!: DividerStyle;\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.setDividerStyle();\r\n }\r\n\r\n /** @ignore */\r\n private setDividerStyle() {\r\n this.style = {\r\n margin: `${this.margin}px`,\r\n 'background-color': `var(--color-${this.color})`,\r\n };\r\n }\r\n}\r\n","<div [ngStyle]=\"style\" class=\"ads-divider\"></div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { DividerComponent } from './divider.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [DividerComponent],\r\n declarations: [DividerComponent],\r\n})\r\nexport class AdsDividerModule {}\r\n","import { dragAndDropListClass } from './drag-and-drop-list.enums';\r\n\r\nexport class DomElement {\r\n constructor(private domElement: HTMLElement) {}\r\n\r\n get dom(): HTMLElement {\r\n return this.domElement;\r\n }\r\n\r\n canDrop(): boolean {\r\n return !this.dom.classList.contains(dragAndDropListClass.NO_DROP);\r\n }\r\n\r\n canDrag(): boolean {\r\n return !this.dom.classList.contains(dragAndDropListClass.NO_DRAG);\r\n }\r\n\r\n isDropBlocked(): boolean {\r\n return this.dom.classList.contains(dragAndDropListClass.DROP_BLOCKED);\r\n }\r\n\r\n makeDraggable(): void {\r\n this.dom.setAttribute('draggable', 'true');\r\n }\r\n\r\n makeUnDraggable(): void {\r\n this.dom.removeAttribute('draggable');\r\n }\r\n\r\n unblockDrop(): void {\r\n this.dom.classList.remove(dragAndDropListClass.DROP_BLOCKED);\r\n }\r\n\r\n clone(): HTMLElement {\r\n const clone: HTMLElement = this.dom.cloneNode(true) as HTMLElement;\r\n\r\n clone.classList.add(dragAndDropListClass.DRAGGED_PLACEHOLDER);\r\n\r\n const targetRect: DOMRect = this.dom.getBoundingClientRect();\r\n\r\n /**\r\n * preserve target dimensions\r\n */\r\n clone.style.width = targetRect.width + 'px';\r\n clone.style.height = targetRect.height + 'px';\r\n\r\n /**\r\n * modify clone styles\r\n */\r\n Object.assign(clone.style, {\r\n position: 'fixed', //required to allow free dragging of the clone\r\n pointerEvents: 'none', // required to allow drag events for items under the clone\r\n zIndex: '1000', // required to make sure that draggable element is positioned over other elements\r\n });\r\n\r\n return clone;\r\n }\r\n\r\n blockDrop(): void {\r\n this.dom.classList.add(dragAndDropListClass.DROP_BLOCKED);\r\n }\r\n\r\n draggedOver(): void {\r\n this.dom.classList.add(dragAndDropListClass.DRAGGED_OVER);\r\n }\r\n\r\n draggedOut(): void {\r\n this.dom.classList.remove(dragAndDropListClass.DRAGGED_OVER);\r\n this.unblockDrop();\r\n }\r\n\r\n isDragged(): void {\r\n this.dom.classList.add(dragAndDropListClass.IS_DRAGGED);\r\n }\r\n\r\n isNotDragged(): void {\r\n this.dom.classList.remove(dragAndDropListClass.IS_DRAGGED);\r\n }\r\n}\r\n","import { DomElement } from './dom.element';\r\nimport { Renderer2 } from '@angular/core';\r\n\r\ntype COORDS = { x: number; y: number };\r\n\r\nexport class DraggedPlaceholder {\r\n readonly domElement: HTMLElement;\r\n private readonly positions: { x: number; y: number } = { x: 0, y: 0 };\r\n private readonly scrollUnsubscribeFunction?: () => void;\r\n private cursorPos: COORDS = { x: 0, y: 0 };\r\n\r\n constructor(\r\n element: DomElement,\r\n container: HTMLElement,\r\n event: DragEvent,\r\n private renderer: Renderer2,\r\n ) {\r\n this.domElement = element.clone();\r\n\r\n /**\r\n * get target element DOMRect data\r\n */\r\n const targetRect: DOMRect = element.dom.getBoundingClientRect();\r\n\r\n /**\r\n * save cursor position relative to target element\r\n * this will help calculate dragged item position relative to the cursor\r\n */\r\n this.positions = {\r\n x: event.clientX - targetRect.left,\r\n y: event.clientY - targetRect.top,\r\n };\r\n\r\n this.hideDefaultDragPlaceholder(event);\r\n\r\n /**\r\n * add clone to the list\r\n */\r\n container.append(this.domElement);\r\n\r\n this.scrollUnsubscribeFunction = this.renderer.listen('document', 'scroll', (): void => {\r\n this.setDomPosition();\r\n });\r\n\r\n /**\r\n * make initial placeholder positioning\r\n */\r\n this.reposition(event);\r\n }\r\n\r\n remove(): void {\r\n this.domElement.remove();\r\n\r\n if (this.scrollUnsubscribeFunction) {\r\n this.scrollUnsubscribeFunction();\r\n }\r\n }\r\n\r\n reposition(event: MouseEvent): void {\r\n this.cursorPos = { x: event.clientX, y: event.clientY };\r\n this.setDomPosition();\r\n }\r\n\r\n private setDomPosition(): void {\r\n /**\r\n * position placeholder relative to the cursor\r\n */\r\n this.domElement.style.left = this.cursorPos.x - this.positions.x + 'px';\r\n this.domElement.style.top = this.cursorPos.y - this.positions.y + 'px';\r\n }\r\n\r\n private hideDefaultDragPlaceholder(event: DragEvent): void {\r\n const placeholder: HTMLImageElement = document.createElement('img');\r\n placeholder.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';\r\n\r\n Object.assign(placeholder.style, {\r\n display: 'block',\r\n width: '0',\r\n height: '0',\r\n });\r\n\r\n /**\r\n * replace default browser drag placeholder with transparent image\r\n */\r\n event.dataTransfer?.setDragImage(placeholder, 0, 0);\r\n }\r\n}\r\n","import { AfterContentInit, Component, ElementRef, Input, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DomElement } from './dom.element';\r\nimport { DraggedPlaceholder } from './dragged.placeholder';\r\nimport { dragAndDropListClass } from './drag-and-drop-list.enums';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\n\r\nexport type DROP_CALLBACK_INDEXES = { before: number; after: number };\r\nexport type UNSUBSCRIBE_FUNCTIONS_COLLECTION = GENERIC_COLLECTION<() => void>;\r\n\r\n@Component({\r\n selector: 'ads-drag-and-drop-list',\r\n styleUrls: ['drag-and-drop-list.component.scss'],\r\n templateUrl: 'drag-and-drop-list.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsDragAndDropListComponent implements OnInit, AfterContentInit, OnDestroy {\r\n /** @ignore */\r\n @ViewChild('draggableList', { read: ElementRef, static: true }) draggableList?: ElementRef;\r\n /** @ignore */\r\n @ViewChild('dynamicContent', { read: ElementRef, static: true }) dynamicContent?: ElementRef;\r\n\r\n /** This external method will be called after the item is dropped into new position */\r\n @Input() dropCallback?: (sourceIndexes: DROP_CALLBACK_INDEXES, targetIndexes: DROP_CALLBACK_INDEXES) => void;\r\n\r\n /** Callback function that can be used to determine if item can be dropped on the selected target */\r\n @Input() canDropCallback?: (sourceIndex: number, targetIndex: number) => boolean;\r\n\r\n /** Callback function that can be used to determine if item can be dragged */\r\n @Input() canDragCallback?: (sourceIndex: number) => boolean;\r\n\r\n /** If total items count is less than this value, drag&drop will be disabled */\r\n @Input() minCountToDrag = 2;\r\n\r\n /** Provide subject element, which will allow to refresh the list. NOTE: refreshing is required every time the list is updated from the outside */\r\n @Input() refresh: Subject<void> = new Subject<void>();\r\n\r\n /** @ignore */\r\n private draggedElement: DomElement | null = null;\r\n /** @ignore */\r\n private draggedPlaceholder: DraggedPlaceholder | null = null;\r\n /** @ignore */\r\n private unsubscribeFromDocumentDragOver?: () => void;\r\n /** @ignore */\r\n private unsubscribeFunctions: Map<HTMLElement, UNSUBSCRIBE_FUNCTIONS_COLLECTION> = new Map();\r\n /** @ignore */\r\n private ngUnsubscribe: Subject<void> = new Subject();\r\n\r\n private draggedOverElement: DomElement | null = null;\r\n\r\n /** @ignore */\r\n constructor(private renderer: Renderer2) {}\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n /**\r\n * if refresh command was emitted - refresh elements\r\n * NOTE: we do it in timeout to allow DOM to redraw first\r\n */\r\n this.refresh.pipe(takeUntil(this.ngUnsubscribe)).subscribe((): void => {\r\n setTimeout(() => this.refreshElements());\r\n });\r\n }\r\n\r\n /** @ignore */\r\n ngAfterContentInit(): void {\r\n this.refreshElements();\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.unsubscribeFromEventListeners();\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n /** @ignore */\r\n onListDragLeave(event: DragEvent): void {\r\n /**\r\n * if we dragged out of the element - unselect it\r\n */\r\n if (\r\n event.relatedTarget instanceof HTMLElement &&\r\n this.draggedOverElement &&\r\n !this.draggedOverElement.dom.contains(event.relatedTarget)\r\n ) {\r\n this.unselectDraggedOverElement();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onDragStart = (event: DragEvent): void => {\r\n /**\r\n * NOTE: register dragover for document body to overcome Firefox issue where clientX and clientY are 0 in 'drag' event\r\n */\r\n this.unsubscribeFromDocumentDragOver = this.renderer.listen(document.body, 'dragover', this.onDragOverBody);\r\n\r\n /**\r\n * store currently dragged element\r\n */\r\n this.draggedElement = this.getElement(event);\r\n\r\n /**\r\n * replace default browser dragged element with the custom one\r\n */\r\n this.draggedPlaceholder = new DraggedPlaceholder(\r\n this.draggedElement,\r\n this.draggableList?.nativeElement,\r\n event,\r\n this.renderer,\r\n );\r\n\r\n /**\r\n * mark dragged element with special class\r\n */\r\n this.draggedElement.isDragged();\r\n\r\n /**\r\n * block drop into the dragged element\r\n */\r\n this.draggedElement.blockDrop();\r\n };\r\n\r\n /** @ignore */\r\n onDragEnd = (): void => {\r\n /**\r\n * remove special class from dragged element mark dragged element\r\n */\r\n this.draggedElement?.isNotDragged();\r\n\r\n this.draggedElement = null;\r\n\r\n /**\r\n * if we subscribed to document dragover - unsubscribe from it\r\n */\r\n if (this.unsubscribeFromDocumentDragOver) {\r\n this.unsubscribeFromDocumentDragOver();\r\n }\r\n\r\n /**\r\n * remove dragged placeholder from DOM\r\n */\r\n this.draggedPlaceholder?.remove();\r\n this.draggedPlaceholder = null;\r\n };\r\n\r\n /** @ignore\r\n * NOTE: we rely on onDragOver instead of DragEnter and DragLeave because those events also fire when we enter and leave\r\n * child elements - the behavior we don't need\r\n */\r\n onDragOver = (event: DragEvent): void => {\r\n /**\r\n * NOTE: this is required for \"drop\" event to work\r\n */\r\n event.preventDefault();\r\n\r\n /**\r\n * do nothing if we have no dragged element, or we are still over the same element\r\n */\r\n if (!this.draggedElement || this.draggedOverElement?.dom === event.currentTarget) {\r\n return;\r\n }\r\n\r\n /**\r\n * make sure previous dragged over element is marked as \"dragged out\"\r\n */\r\n this.unselectDraggedOverElement();\r\n\r\n this.draggedOverElement = this.getElement(event);\r\n\r\n /**\r\n * do nothing if dragged element and element, we are dragging over is the same\r\n */\r\n if (this.isDraggingOverSelf(this.draggedOverElement)) {\r\n return;\r\n }\r\n\r\n this.draggedOverElement.draggedOver();\r\n\r\n /**\r\n * if drop is blocked - add special class to the dragged element\r\n */\r\n if (this.canDrop()) {\r\n this.draggedOverElement.unblockDrop();\r\n } else {\r\n this.draggedOverElement.blockDrop();\r\n }\r\n };\r\n\r\n /** @ignore */\r\n onDrop = (event: DragEvent): void => {\r\n /**\r\n * if drop is blocked - do nothing\r\n */\r\n if (!this.canDrop()) return;\r\n\r\n this.unselectDraggedOverElement();\r\n\r\n const target: DomElement = this.getElement(event);\r\n\r\n /**\r\n * preserve drop blocked state before cleaning classes - it will be needed later\r\n */\r\n const isTargetBlocked: boolean = target.isDropBlocked();\r\n\r\n this.getElement(event).draggedOut();\r\n\r\n /**\r\n * if we have no dragged element, we are dropping on self or target is blocked - do nothing\r\n */\r\n if (!this.draggedElement || this.isDraggingOverSelf(target) || isTargetBlocked) {\r\n return;\r\n }\r\n\r\n const sourceIndex: number = this.getElementIndex(this.draggedElement);\r\n const targetIndex: number = this.getElementIndex(target);\r\n\r\n /**\r\n * if source index is less than target index - means we are dragging down;\r\n * otherwise we are dragging up\r\n * NOTE: we utilise \"before\" method for element insertion in both cases, because \"after\" can\r\n * break order of \"drag-static\" elements (if they are present)\r\n */\r\n if (sourceIndex < targetIndex) {\r\n const allElements: HTMLElement[] = this.getAllElements();\r\n\r\n /**\r\n * loop through all element beginning with next to the currently dragged element\r\n * and ending with drop target element and move all of them up;\r\n * this will result in target element being moved down to required position\r\n */\r\n for (let i: number = sourceIndex + 1; i <= targetIndex; i++) {\r\n const target: HTMLElement = allElements[i];\r\n\r\n if (target) {\r\n this.draggedElement.dom.before(target);\r\n }\r\n }\r\n } else {\r\n target.dom.before(this.draggedElement.dom);\r\n }\r\n\r\n /**\r\n * if possible emit indexes old and new indexes of the repositioned items\r\n */\r\n if (this.dropCallback) {\r\n this.dropCallback(\r\n {\r\n before: sourceIndex,\r\n after: this.getElementIndex(this.draggedElement),\r\n },\r\n {\r\n before: targetIndex,\r\n after: this.getElementIndex(target),\r\n },\r\n );\r\n }\r\n };\r\n\r\n /** @ignore */\r\n onMouseEnter = (event: MouseEvent): void => {\r\n this.setCanDrag(this.getElement(event));\r\n };\r\n\r\n /** @ignore */\r\n private unselectDraggedOverElement(): void {\r\n /**\r\n * make sure previous dragged over element is marked as \"dragged out\"\r\n */\r\n this.draggedOverElement?.draggedOut();\r\n this.draggedOverElement = null;\r\n }\r\n\r\n /** @ignore */\r\n private setCanDrag(element: DomElement): void {\r\n /**\r\n * if special class is set for the element - forbid dragging\r\n */\r\n if (!element.canDrag()) {\r\n element.makeUnDraggable();\r\n return;\r\n }\r\n\r\n /**\r\n * make sure dragging the item is not forbidden by external function\r\n */\r\n if (this.canDragCallback) {\r\n if (this.canDragCallback(this.getElementIndex(element))) {\r\n element.makeDraggable();\r\n } else {\r\n element.makeUnDraggable();\r\n }\r\n return;\r\n }\r\n element.makeDraggable();\r\n }\r\n\r\n /** @ignore */\r\n private onDragOverBody = (event: DragEvent): void => {\r\n this.draggedPlaceholder?.reposition(event);\r\n };\r\n\r\n /** @ignore */\r\n private canDrop(): boolean {\r\n if (!this.draggedElement || !this.draggedOverElement) return false;\r\n\r\n /**\r\n * if special class is set for the element - forbid dropping;\r\n * otherwise make sure dropping over the item is not forbidden by external function\r\n */\r\n if (!this.draggedOverElement.canDrop()) {\r\n return false;\r\n } else if (this.canDropCallback) {\r\n return this.canDropCallback(\r\n this.getElementIndex(this.draggedElement),\r\n this.getElementIndex(this.draggedOverElement),\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** @ignore */\r\n private refreshElements(): void {\r\n /**\r\n * unsubscribe from all event listeners\r\n */\r\n this.unsubscribeFromEventListeners();\r\n\r\n /**\r\n * make sure no placeholder are still visible\r\n */\r\n document.querySelectorAll('.' + dragAndDropListClass.DRAGGED_PLACEHOLDER).forEach((element) => {\r\n element.remove();\r\n });\r\n\r\n /**\r\n * get all elements that can participate in drag and drop\r\n */\r\n const elements: HTMLElement[] = this.getAllElements();\r\n\r\n /**\r\n * make sure we have enough elements to continue\r\n */\r\n if (elements.length < this.minCountToDrag) {\r\n return;\r\n }\r\n\r\n /**\r\n * add required callbacks to all elements,\r\n * preserving their unsubscribe functions\r\n */\r\n elements.forEach((element: HTMLElement): void => {\r\n const functions: UNSUBSCRIBE_FUNCTIONS_COLLECTION = {};\r\n\r\n functions['dragstart'] = this.renderer.listen(element, 'dragstart', this.onDragStart);\r\n functions['dragend'] = this.renderer.listen(element, 'dragend', this.onDragEnd);\r\n functions['dragover'] = this.renderer.listen(element, 'dragover', this.onDragOver);\r\n functions['drop'] = this.renderer.listen(element, 'drop', this.onDrop);\r\n functions['mouseenter'] = this.renderer.listen(element, 'mouseenter', this.onMouseEnter);\r\n\r\n this.unsubscribeFunctions.set(element, functions);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n private unsubscribeFromEventListeners(): void {\r\n this.unsubscribeFunctions.forEach((collection) => {\r\n Object.values(collection).forEach((func) => func());\r\n });\r\n\r\n this.unsubscribeFunctions = new Map();\r\n }\r\n\r\n /** @ignore */\r\n private getAllElements(): HTMLElement[] {\r\n const result: HTMLElement[] = [];\r\n\r\n if (this.draggableList) {\r\n /**\r\n * loop through immediate children of the list\r\n */\r\n (<HTMLElement[]>Array.from(this.draggableList.nativeElement.children)).forEach((element: HTMLElement): void => {\r\n /**\r\n * element is static if it has both \"no-drop\" and \"no-drag\" classes\r\n */\r\n const isStatic: boolean =\r\n element.classList.contains(dragAndDropListClass.NO_DROP) &&\r\n element.classList.contains(dragAndDropListClass.NO_DRAG);\r\n\r\n /**\r\n * ignore static elements and dragged placeholder element from the list\r\n */\r\n if (!isStatic && !element.classList.contains(dragAndDropListClass.DRAGGED_PLACEHOLDER)) {\r\n result.push(element);\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /** @ignore */\r\n private getElement(event: DragEvent | MouseEvent): DomElement {\r\n return new DomElement(<HTMLElement>event.currentTarget);\r\n }\r\n\r\n /** @ignore */\r\n private getElementIndex(element: DomElement): number {\r\n return this.getAllElements().indexOf(element.dom);\r\n }\r\n\r\n /** @ignore */\r\n private isDraggingOverSelf(element: DomElement | null): boolean {\r\n return this.draggedElement?.dom === element?.dom;\r\n }\r\n}\r\n","<div class=\"draggable-list\" #draggableList (dragleave)=\"onListDragLeave($event)\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsDragAndDropListComponent } from './drag-and-drop-list.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AdsDragAndDropListComponent],\r\n declarations: [AdsDragAndDropListComponent],\r\n})\r\nexport class AdsDragAndDropListModule {}\r\n","import { adsIcon } from '@ascentgl/ads-icons/icons';\r\n\r\nexport type ErrorPageConfig = {\r\n code: number;\r\n icon?: adsIcon;\r\n message: string;\r\n summary?: string;\r\n infoColumns?: ErrorPageInfoColumn[];\r\n showBackButton?: boolean;\r\n backButtonLabel?: string;\r\n showHomeButton?: boolean;\r\n homeButtonLabel?: string;\r\n};\r\n\r\nexport type ErrorPageInfoColumn = {\r\n header?: string;\r\n body: string;\r\n alignment?: 'left' | 'right' | 'center' | 'justify';\r\n};\r\n\r\nexport enum ErrorPageDefault {\r\n backButtonLabel = 'Go Back',\r\n homeButtonLabel = 'Return Home',\r\n errorCode = 404,\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n SimpleChange,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ErrorPageConfig, ErrorPageDefault } from './error-page.types';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { Location } from '@angular/common';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { adsIconLock, adsIconPlusCircle, adsIconSearch, adsIconWarning } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-error-page',\r\n templateUrl: './error-page.component.html',\r\n styleUrls: ['./error-page.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsErrorPageComponent implements OnChanges, AfterViewInit {\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private registry: AdsIconRegistry,\r\n private location: Location,\r\n private sanitizer: DomSanitizer,\r\n ) {\r\n /** Register basic icons. NOTE: any existing icon can be used if registered before */\r\n this.registry.register([adsIconWarning, adsIconLock, adsIconPlusCircle, adsIconSearch]);\r\n }\r\n\r\n /** Path to logo image file */\r\n @Input() logoSrc = 'https://cdn.ascentgl.com/img/ascent-logo-white.svg';\r\n\r\n /** Alt text for logo image */\r\n @Input() logoAlt = 'Ascent Global Logistics';\r\n\r\n /** Error page configuration object */\r\n @Input() config: ErrorPageConfig = {\r\n code: 404,\r\n message: 'This Page Looks a Little Lost',\r\n };\r\n\r\n /** @ignore */\r\n iconAsSvg?: SafeHtml;\r\n\r\n /** @ignore */\r\n defaults: typeof ErrorPageDefault = ErrorPageDefault;\r\n\r\n /** @ignore */\r\n @ViewChild('errorRepresentation') errorRepresentation?: ElementRef;\r\n\r\n /** @ignore */\r\n @ViewChild('errorCode') errorCode?: ElementRef;\r\n\r\n /** @ignore */\r\n @ViewChild('codeImage') codeImage?: ElementRef;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { config: SimpleChange }): void {\r\n if (changes.config && changes.config.currentValue) {\r\n this.setIcon();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n /**this method is required to properly calculate error code size and scale when component is being loaded,\r\n * further recalculation will happen on window resize*/\r\n this.cdr.detectChanges();\r\n }\r\n\r\n /** @ignore */\r\n @HostListener('window:resize') resize(): void {\r\n /** this method is needed to activate on resize change detection in the component */\r\n }\r\n\r\n /** @ignore */\r\n back(): void {\r\n this.location.back();\r\n }\r\n\r\n /** @ignore */\r\n adjustStyles(): { fontSize?: string; lineHeight?: string; scale?: number } {\r\n if (!this.errorRepresentation || !this.errorCode) return {};\r\n\r\n /**\r\n * NOTE: error code font size is calculated based on error representation height,\r\n * so that error code fits vertically\r\n * NOTE: error code scale is calculated based on error representation width,\r\n * so that error code fits horizontally\r\n */\r\n return {\r\n fontSize: this.errorRepresentation.nativeElement.offsetHeight + 'px',\r\n lineHeight: this.errorRepresentation.nativeElement.offsetHeight + 'px',\r\n scale:\r\n this.errorRepresentation.nativeElement.offsetWidth < this.errorCode.nativeElement.offsetWidth\r\n ? this.errorRepresentation.nativeElement.offsetWidth / this.errorCode.nativeElement.offsetWidth\r\n : 1,\r\n };\r\n }\r\n\r\n /** @ignore */\r\n private setIcon(): void {\r\n if (this.config.icon) {\r\n let svg = this.registry.get(this.config.icon);\r\n\r\n if (!svg) {\r\n svg = this.registry.get('warning');\r\n console.warn(`Icon \"${this.config.icon}\" not found`);\r\n }\r\n\r\n this.iconAsSvg = this.sanitizer.bypassSecurityTrustHtml(<string>svg);\r\n } else {\r\n this.iconAsSvg = undefined;\r\n }\r\n }\r\n}\r\n","<div class=\"error-page-container\">\r\n <div class=\"body\">\r\n <div class=\"body-header\"><img [src]=\"logoSrc\" [alt]=\"logoAlt\" /></div>\r\n <div class=\"body-error-representation\" #errorRepresentation [ngClass]=\"{ svg: iconAsSvg }\">\r\n @if (iconAsSvg) {\r\n <div class=\"error-icon {{ config.icon }}\" [innerHTML]=\"iconAsSvg\"></div>\r\n } @else {\r\n <span class=\"error-code\" #errorCode [ngStyle]=\"adjustStyles()\">\r\n {{ config.code || defaults.errorCode }}\r\n </span>\r\n }\r\n </div>\r\n @if (config.message) {\r\n <div class=\"body-error-message\">{{ config.message }}</div>\r\n }\r\n @if (config.summary) {\r\n <div class=\"body-error-summary\">{{ config.summary }}</div>\r\n }\r\n </div>\r\n @if(config.infoColumns?.length || config.showHomeButton || config.showBackButton) {\r\n <div class=\"footer\">\r\n @if(config.infoColumns?.length) {\r\n <div class=\"footer-info-columns\">\r\n <!-- default alignment for single column is \"center\", otherwise - \"left\" -->\r\n @for (column of config.infoColumns; track $index) {\r\n <div\r\n class=\"footer-info-column\"\r\n [ngStyle]=\"{\r\n 'text-align': column.alignment ? column.alignment : (config.infoColumns?.length ?? 1) > 1 ? 'left' : 'center',\r\n }\"\r\n >\r\n @if(column.header) {\r\n <div class=\"footer-column-header\">{{ column.header }}</div>\r\n }\r\n <div class=\"footer-column-body\" [innerHTML]=\"column.body\"></div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if(config.showHomeButton || config.showBackButton) {\r\n <div class=\"footer-buttons\">\r\n @if(config.showBackButton) {\r\n <ads-button variant=\"secondary\" (click)=\"back()\">{{\r\n config.backButtonLabel || defaults.backButtonLabel\r\n }}\r\n </ads-button>\r\n }\r\n @if(config.showHomeButton) {\r\n <ads-button variant=\"primary\" routerLink=\"/\">{{\r\n config.homeButtonLabel || defaults.homeButtonLabel\r\n }}\r\n </ads-button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-error-page-code',\r\n template: ``,\r\n standalone: false,\r\n})\r\nexport class AdsErrorPageCodeComponent {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsErrorPageCodeComponent } from './error-page-code.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [AdsErrorPageCodeComponent],\r\n exports: [AdsErrorPageCodeComponent],\r\n})\r\nexport class AdsErrorPageCodeModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsErrorPageComponent } from './error-page.component';\r\nimport { AdsButtonModule } from '../buttons/button';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdsErrorPageCodeModule } from './error-page-code';\r\n\r\n/**\r\n * todo: remove AdsErrorPageCodeModule after POD is updated\r\n * NOTE: currently AdsErrorPageCodeModule is provided as legacy to avoid POD compilation errors\r\n */\r\n@NgModule({\r\n declarations: [AdsErrorPageComponent],\r\n imports: [CommonModule, AdsButtonModule, RouterModule, AdsErrorPageCodeModule],\r\n exports: [AdsErrorPageComponent],\r\n})\r\nexport class AdsErrorPageModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { Copyright, Link } from './footer.component.types';\r\n\r\n@Component({\r\n selector: 'ads-footer',\r\n styleUrls: ['footer.component.scss'],\r\n templateUrl: 'footer.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsFooterComponent {\r\n /**\r\n * Alt text for the footer logo\r\n */\r\n @Input() alt = 'Logo';\r\n\r\n /**\r\n * Copyright text to display\r\n */\r\n @Input() copyright: Copyright = {\r\n text: `© ${new Date().getFullYear()} Ads™ is an Ascent Global Logistics Technology`,\r\n };\r\n\r\n /**\r\n * Links to display in the footer\r\n */\r\n @Input() links: Link[] = [];\r\n\r\n /**\r\n * Path to the logo to display\r\n */\r\n @Input() logoSrc?: string;\r\n}\r\n","<div class=\"footer\">\r\n <div class=\"links\">\r\n @for (link of links; track $index) {\r\n <a class=\"tertiary-link text-xs\" [href]=\"link.href\" [target]=\"link.target || '_self'\">{{ link.text }}</a>\r\n }\r\n </div>\r\n <div class=\"footer-right\">\r\n <div class=\"copyright\">\r\n @if (copyright.href) {\r\n <a\r\n class=\"secondary-link text-xs\"\r\n [href]=\"copyright.href\"\r\n [target]=\"copyright.target || '_self'\"\r\n [innerHtml]=\"copyright.text\"\r\n ></a>\r\n } @else {\r\n <span [innerHtml]=\"copyright.text\"></span>\r\n }\r\n </div>\r\n @if (logoSrc) {\r\n <div class=\"logo\">\r\n <img [attr.src]=\"logoSrc\" alt=\"{{ alt }}\" />\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsFooterComponent } from './footer.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AdsFooterComponent],\r\n declarations: [AdsFooterComponent],\r\n})\r\nexport class AdsFooterModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-footer-container',\r\n styleUrls: ['footer-container.component.scss'],\r\n templateUrl: 'footer-container.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsFooterContainerComponent {}\r\n","<footer>\r\n <ng-content></ng-content>\r\n</footer>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsFooterContainerComponent } from './footer-container.component';\r\n\r\n@NgModule({\r\n exports: [AdsFooterContainerComponent],\r\n declarations: [AdsFooterContainerComponent],\r\n})\r\nexport class AdsFooterContainerModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-header',\r\n styleUrls: ['header.component.scss'],\r\n templateUrl: 'header.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsHeaderComponent {}\r\n","<div class=\"header\">\r\n <div class=\"addon-left\">\r\n <ng-content select=\"[left]\"></ng-content>\r\n </div>\r\n <ng-content select=\"[logo]\"></ng-content>\r\n <div class=\"addon-right\">\r\n <ng-content select=\"[right]\"></ng-content>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsHeaderComponent } from './header.component';\r\n\r\n@NgModule({\r\n exports: [AdsHeaderComponent],\r\n declarations: [AdsHeaderComponent],\r\n})\r\nexport class AdsHeaderModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-header-container',\r\n styleUrls: ['header-container.component.scss'],\r\n templateUrl: 'header-container.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsHeaderContainerComponent {\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n}\r\n","<header [class.mobile]=\"isMobile\">\r\n <ng-content></ng-content>\r\n</header>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { AdsHeaderContainerComponent } from './header-container.component';\r\n\r\n@NgModule({\r\n exports: [AdsHeaderContainerComponent],\r\n declarations: [AdsHeaderContainerComponent],\r\n})\r\nexport class AdsHeaderContainerModule {}\r\n","import { Component, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-link-button',\r\n templateUrl: './link-button.component.html',\r\n styleUrls: ['./link-button.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsLinkButtonComponent {\r\n /** The unique ID for the button */\r\n id = input<string>('');\r\n\r\n /** Whether the button is disabled */\r\n disabled = input<boolean>(false);\r\n}\r\n","<button mat-flat-button [id]=\"id()\" [disabled]=\"disabled()\" [disableRipple]=\"true\">\r\n <ng-content select=\"[icon]\"></ng-content>\r\n <ng-content></ng-content>\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { AdsLinkButtonComponent } from './link-button.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n declarations: [AdsLinkButtonComponent],\r\n exports: [AdsLinkButtonComponent],\r\n imports: [CommonModule, MatButtonModule, AdsIconModule],\r\n})\r\nexport class AdsLinkButtonModule {}\r\n","import { Directive, HostListener, input, OnInit } from '@angular/core';\r\n\r\n@Directive()\r\nexport abstract class AbstractLogoComponent implements OnInit {\r\n /** @ignore */\r\n isMobile = false;\r\n\r\n /**\r\n * Mobile width\r\n */\r\n mobileWidth = input<number>(768);\r\n\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n isCollapsed = input<boolean>(false);\r\n\r\n /** @ignore */\r\n @HostListener('window:resize')\r\n onResize() {\r\n this.checkScreenSize();\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.checkScreenSize();\r\n }\r\n\r\n /** @ignore */\r\n private checkScreenSize(): void {\r\n this.isMobile = window.innerWidth <= this.mobileWidth();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractLogoComponent } from './abstract-logo-component';\r\n\r\n@Component({\r\n selector: 'ads-primary-logo',\r\n styleUrls: ['primary-logo.component.scss'],\r\n templateUrl: 'primary-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsPrimaryLogoComponent extends AbstractLogoComponent {\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","<picture [ngClass]=\"{ full: !isCollapsed() }\">\r\n @if (isMobile || isCollapsed()) {\r\n <svg class=\"logo-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"32\" viewBox=\"0 0 24 32\">\r\n <path\r\n d=\"M20.5547 3.69959C18.4527 1.6106 15.6421 0.377465 12.6734 0.241829C9.70483 0.106194 6.79227 1.07784 4.50651 2.96635V0.663115H0V31.994L4.50218 27.517V21.1981C6.86303 23.1293 9.87957 24.0849 12.9287 23.8677C15.9778 23.6504 18.8265 22.2769 20.8864 20.0308C22.9463 17.7848 24.06 14.8377 23.9975 11.7985C23.935 8.75926 22.701 5.85999 20.5504 3.69959H20.5547ZM12.1446 19.6627C10.6356 19.6669 9.15923 19.2258 7.90244 18.3953C6.64565 17.5647 5.66496 16.3819 5.08451 14.9968C4.50406 13.6116 4.34996 12.0864 4.64172 10.6141C4.93348 9.14178 5.65798 7.78868 6.7235 6.72608C7.78901 5.66348 9.14763 4.93917 10.6273 4.64484C12.107 4.35051 13.6413 4.49941 15.0359 5.07268C16.4304 5.64595 17.6226 6.61781 18.4614 7.86521C19.3002 9.11262 19.748 10.5795 19.748 12.0801C19.7468 14.087 18.9461 16.0118 17.5211 17.4329C16.096 18.8541 14.1628 19.6558 12.1446 19.6627Z\"\r\n />\r\n </svg>\r\n } @else {\r\n <svg class=\"logo-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"80\" height=\"35\" viewBox=\"0 0 80 35\">\r\n <path\r\n d=\"M15.4308 12.8987C13.8528 11.3239 11.7428 10.3942 9.51421 10.292C7.28561 10.1897 5.09909 10.9222 3.38313 12.346V10.6096H0V34.2293L3.37987 30.8542V26.0905C5.15222 27.5464 7.41679 28.2668 9.70582 28.103C11.9948 27.9393 14.1334 26.9038 15.6799 25.2105C17.2263 23.5173 18.0623 21.2956 18.0154 19.0043C17.9685 16.7131 17.0421 14.5274 15.4276 12.8987H15.4308ZM9.11719 24.933C7.98435 24.9362 6.87602 24.6037 5.93252 23.9775C4.98903 23.3513 4.2528 22.4597 3.81704 21.4155C3.38128 20.3712 3.2656 19.2213 3.48463 18.1114C3.70366 17.0015 4.24756 15.9814 5.04746 15.1803C5.84737 14.3793 6.86731 13.8332 7.97815 13.6113C9.089 13.3894 10.2408 13.5017 11.2877 13.9339C12.3347 14.366 13.2296 15.0987 13.8593 16.0391C14.4891 16.9795 14.8252 18.0853 14.8252 19.2166C14.8244 20.7296 14.2232 22.1806 13.1534 23.252C12.0836 24.3234 10.6323 24.9278 9.11719 24.933Z\"\r\n />\r\n <path\r\n d=\"M38.2118 19.2167C38.2119 17.2546 37.565 15.3472 36.3711 13.7889C35.1772 12.2306 33.5028 11.1082 31.6064 10.5951C29.71 10.082 27.6972 10.2067 25.8788 10.9499C24.0605 11.6932 22.5378 13.0137 21.5459 14.7074C20.5541 16.4011 20.1483 18.3737 20.3912 20.3207C20.6341 22.2677 21.5122 24.0807 22.8899 25.4796C24.2676 26.8785 26.0682 27.7855 28.0136 28.0605C29.9589 28.3355 31.9409 27.9632 33.6532 27.0011C34.9526 26.2641 36.0481 25.216 36.841 23.951L34.1058 22.2439C33.5193 23.1737 32.677 23.9151 31.6797 24.3794C30.6823 24.8437 29.5722 25.0112 28.482 24.862C27.3917 24.7128 26.3677 24.2532 25.5322 23.538C24.6967 22.8229 24.0852 21.8825 23.7708 20.8295H38.2151L38.2118 19.2167ZM23.7708 17.6071C24.1208 16.4233 24.8449 15.3844 25.835 14.6454C26.825 13.9065 28.0279 13.5072 29.2639 13.5072C30.5 13.5072 31.7028 13.9065 32.6929 14.6454C33.6829 15.3844 34.407 16.4233 34.757 17.6071H23.7708Z\"\r\n />\r\n <path d=\"M66.3569 10.3986H63.0128V28.0972H66.3569V10.3986Z\" />\r\n <path d=\"M71.14 19.2495L80 28.0972H75.4837L66.6205 19.2495L75.4837 10.3986H80L71.14 19.2495Z\" />\r\n <path d=\"M56.5265 0H41.304V2.84191H56.5265V0Z\" />\r\n <path d=\"M40.5882 28.0971H37.0032L48.9174 5.35858L60.8316 28.0971H57.2466L48.9174 12.2L40.5882 28.0971Z\" />\r\n </svg>\r\n }\r\n</picture>\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsPrimaryLogoComponent } from './primary-logo.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, NgOptimizedImage],\r\n exports: [AdsPrimaryLogoComponent],\r\n declarations: [AdsPrimaryLogoComponent],\r\n})\r\nexport class AdsPrimaryLogoModule {}\r\n","import { AfterViewInit, Component, ElementRef, Input, input } from '@angular/core';\r\nimport { AbstractLogoComponent } from '../primary-logo/abstract-logo-component';\r\n\r\n@Component({\r\n selector: 'ads-ascent-logo',\r\n styleUrls: ['ascent-logo.component.scss'],\r\n templateUrl: 'ascent-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsAscentLogoComponent extends AbstractLogoComponent implements AfterViewInit {\r\n constructor(private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n /** @ignore */\r\n isDarkMode = false;\r\n\r\n /** @ignore */\r\n isStorybook = false;\r\n\r\n /**\r\n * Invert colors option\r\n */\r\n @Input() invertTheme = false;\r\n\r\n /** @ignore */\r\n pictureEl?: HTMLElement;\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n const root = document.documentElement;\r\n this.pictureEl = this.ref.nativeElement.querySelector('picture');\r\n if (this.invertTheme) {\r\n this.pictureEl?.classList.add('invert-theme');\r\n }\r\n\r\n if (root.classList.contains('dark-theme') || root.classList.contains('light-theme')) {\r\n // Running inside Storybook\r\n this.isStorybook = true;\r\n this.updateThemeFromClassList(root);\r\n\r\n // Observe class changes in Storybook\r\n new MutationObserver(() => this.updateThemeFromClassList(root)).observe(root, {\r\n attributes: true,\r\n attributeFilter: ['class'],\r\n });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private updateThemeFromClassList(root: HTMLElement): void {\r\n this.isDarkMode = root.classList.contains('dark-theme');\r\n }\r\n\r\n /**\r\n * Logo size\r\n */\r\n size = input<'large' | 'small'>('large');\r\n}\r\n","@if (isStorybook) {\r\n <picture class=\"ads-ascent-logo\">\r\n @if (!isDarkMode) {\r\n @if (isMobile || isCollapsed()) {\r\n <svg\r\n class=\"collapsed\"\r\n [ngClass]=\"size()\"\r\n width=\"42\"\r\n height=\"30\"\r\n viewBox=\"0 0 42 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"New logo Color\" clip-path=\"url(#clip0_2342_113)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.6973C13.1314 17.2304 13.4946 17.9096 13.6419 18.6492C13.7892 19.3888 13.7138 20.1554 13.4253 20.8521C13.1368 21.5488 12.6482 22.1443 12.0212 22.5633C11.3943 22.9823 10.6571 23.2059 9.90305 23.2059C9.14898 23.2059 8.41184 22.9823 7.78487 22.5633C7.15791 22.1443 6.66928 21.5488 6.3808 20.8521C6.09232 20.1554 6.01695 19.3888 6.16421 18.6492C6.31147 17.9096 6.67475 17.2304 7.20811 16.6973C7.56177 16.343 7.98185 16.0619 8.44428 15.8701C8.90671 15.6783 9.40242 15.5795 9.90305 15.5795C10.4037 15.5795 10.8994 15.6783 11.3618 15.8701C11.8243 16.0619 12.2443 16.343 12.598 16.6973ZM19.8477 9.45219C19.2638 8.87394 18.5218 8.4814 17.7152 8.32403C16.9086 8.16666 16.0735 8.25149 15.315 8.56784C14.5566 8.88418 13.9087 9.41789 13.4529 10.1018C12.9972 10.7856 12.754 11.589 12.754 12.4108C12.754 13.2326 12.9972 14.0361 13.4529 14.7199C13.9087 15.4038 14.5566 15.9375 15.315 16.2539C16.0735 16.5702 16.9086 16.655 17.7152 16.4977C18.5218 16.3403 19.2638 15.9477 19.8477 15.3695C20.2387 14.9823 20.5491 14.5215 20.7609 14.0137C20.9727 13.5058 21.0817 12.9611 21.0817 12.4108C21.0817 11.8606 20.9727 11.3158 20.7609 10.808C20.5491 10.3002 20.2387 9.83936 19.8477 9.45219ZM27.2502 8.78597C27.9143 8.12132 28.3664 7.27468 28.5494 6.3531C28.7324 5.43152 28.6381 4.47638 28.2784 3.6084C27.9186 2.74042 27.3096 1.99857 26.5284 1.47665C25.7471 0.954734 24.8286 0.676163 23.889 0.676163C22.9494 0.676163 22.0309 0.954734 21.2497 1.47665C20.4684 1.99857 19.8594 2.74042 19.4996 3.6084C19.1399 4.47638 19.0456 5.43152 19.2286 6.3531C19.4116 7.27468 19.8637 8.12132 20.5278 8.78597C21.4177 9.67337 22.6231 10.1717 23.8798 10.1717C25.1364 10.1717 26.3418 9.67337 27.2317 8.78597H27.2502ZM14.9436 24.4513C14.5635 24.8319 14.3047 25.3166 14.1999 25.8443C14.0952 26.3719 14.1492 26.9187 14.3552 27.4157C14.5612 27.9126 14.9099 28.3373 15.3572 28.636C15.8045 28.9348 16.3304 29.0943 16.8683 29.0943C17.4062 29.0943 17.932 28.9348 18.3793 28.636C18.8266 28.3373 19.1753 27.9126 19.3813 27.4157C19.5873 26.9187 19.6413 26.3719 19.5366 25.8443C19.4319 25.3166 19.1731 24.8319 18.7929 24.4513C18.2815 23.9428 17.5895 23.6573 16.8683 23.6573C16.147 23.6573 15.4551 23.9428 14.9436 24.4513ZM21.157 16.6973C20.6237 17.2304 20.2604 17.9096 20.1131 18.6492C19.9659 19.3888 20.0413 20.1554 20.3297 20.8521C20.6182 21.5488 21.1068 22.1443 21.7338 22.5633C22.3608 22.9823 23.0979 23.2059 23.852 23.2059C24.6061 23.2059 25.3432 22.9823 25.9702 22.5633C26.5971 22.1443 27.0858 21.5488 27.3743 20.8521C27.6627 20.1554 27.7381 19.3888 27.5908 18.6492C27.4436 17.9096 27.0803 17.2304 26.5469 16.6973C25.8322 15.9896 24.8671 15.5925 23.8612 15.5925C22.8554 15.5925 21.8903 15.9896 21.1756 16.6973H21.157ZM33.7967 9.45219C33.2128 8.87394 32.4708 8.4814 31.6642 8.32403C30.8576 8.16666 30.0225 8.25149 29.264 8.56784C28.5055 8.88418 27.8576 9.41789 27.4019 10.1018C26.9461 10.7856 26.703 11.589 26.703 12.4108C26.703 13.2326 26.9461 14.0361 27.4019 14.7199C27.8576 15.4038 28.5055 15.9375 29.264 16.2539C30.0225 16.5702 30.8576 16.655 31.6642 16.4977C32.4708 16.3403 33.2128 15.9477 33.7967 15.3695C34.1889 14.9836 34.5007 14.5237 34.7141 14.0165C34.9275 13.5094 35.0382 12.9649 35.0399 12.4147C35.0417 11.8645 34.9343 11.3194 34.7241 10.8109C34.5139 10.3024 34.205 9.84058 33.8152 9.45219H33.7967ZM0.795762 24.4513C0.415598 24.8319 0.156793 25.3166 0.0520611 25.8443C-0.0526711 26.3719 0.00137099 26.9187 0.207356 27.4157C0.413341 27.9126 0.762022 28.3373 1.20932 28.636C1.65663 28.9348 2.18247 29.0943 2.72039 29.0943C3.25831 29.0943 3.78416 28.9348 4.23146 28.636C4.67876 28.3373 5.02744 27.9126 5.23343 27.4157C5.43941 26.9187 5.49345 26.3719 5.38872 25.8443C5.28399 25.3166 5.02519 24.8319 4.64502 24.4513C4.39238 24.1984 4.09235 23.9978 3.76211 23.8609C3.43187 23.724 3.07788 23.6535 2.72039 23.6535C2.3629 23.6535 2.00892 23.724 1.67868 23.8609C1.34843 23.9978 1.04841 24.1984 0.795762 24.4513ZM40.5375 16.6973C40.0044 16.1639 39.3252 15.8007 38.5856 15.6534C37.8461 15.5061 37.0794 15.5815 36.3827 15.87C35.686 16.1585 35.0905 16.6471 34.6715 17.2741C34.2525 17.901 34.0289 18.6382 34.0289 19.3923C34.0289 20.1463 34.2525 20.8835 34.6715 21.5104C35.0905 22.1374 35.686 22.626 36.3827 22.9145C37.0794 23.203 37.8461 23.2784 38.5856 23.1311C39.3252 22.9838 40.0044 22.6206 40.5375 22.0872C41.2509 21.3717 41.6515 20.4026 41.6515 19.3923C41.6515 18.3819 41.2509 17.4128 40.5375 16.6973Z\"\r\n fill=\"url(#paint0_linear_2342_113)\"\r\n />\r\n </g>\r\n <defs>\r\n <linearGradient\r\n id=\"paint0_linear_2342_113\"\r\n x1=\"7.54585\"\r\n y1=\"35.0553\"\r\n x2=\"33.8846\"\r\n y2=\"8.71658\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n >\r\n <stop stop-color=\"#004987\" />\r\n <stop offset=\"0.25\" stop-color=\"#004C89\" />\r\n <stop offset=\"0.44\" stop-color=\"#00568F\" />\r\n <stop offset=\"0.62\" stop-color=\"#00669A\" />\r\n <stop offset=\"0.78\" stop-color=\"#007DAA\" />\r\n <stop offset=\"0.93\" stop-color=\"#009BBD\" />\r\n <stop offset=\"1\" stop-color=\"#00ABC8\" />\r\n </linearGradient>\r\n <clipPath id=\"clip0_2342_113\">\r\n <rect width=\"42\" height=\"29\" fill=\"white\" transform=\"translate(0 0.677048)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n } @else {\r\n <svg [ngClass]=\"size()\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 29\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_353_5425)\">\r\n <path\r\n d=\"M12.598 16.0262C13.1314 16.5593 13.4946 17.2386 13.6419 17.9781C13.7892 18.7177 13.7138 19.4843 13.4253 20.181C13.1368 20.8778 12.6482 21.4733 12.0212 21.8923C11.3943 22.3112 10.6571 22.5349 9.90305 22.5349C9.14897 22.5349 8.41183 22.3112 7.78487 21.8923C7.1579 21.4733 6.66928 20.8778 6.3808 20.181C6.09232 19.4843 6.01694 18.7177 6.16421 17.9781C6.31147 17.2386 6.67475 16.5593 7.20811 16.0262C7.56177 15.6719 7.98184 15.3908 8.44428 15.199C8.90671 15.0072 9.40242 14.9085 9.90305 14.9085C10.4037 14.9085 10.8994 15.0072 11.3618 15.199C11.8243 15.3908 12.2443 15.6719 12.598 16.0262ZM19.8477 8.78113C19.2638 8.20288 18.5218 7.81033 17.7152 7.65296C16.9086 7.49559 16.0735 7.58043 15.315 7.89677C14.5566 8.21311 13.9087 8.74683 13.4529 9.43069C12.9972 10.1145 12.754 10.918 12.754 11.7398C12.754 12.5616 12.9972 13.365 13.4529 14.0489C13.9087 14.7327 14.5566 15.2664 15.315 15.5828C16.0735 15.8991 16.9086 15.984 17.7152 15.8266C18.5218 15.6692 19.2638 15.2767 19.8477 14.6984C20.2387 14.3113 20.5491 13.8504 20.7609 13.3426C20.9727 12.8348 21.0817 12.29 21.0817 11.7398C21.0817 11.1895 20.9727 10.6448 20.7609 10.1369C20.5491 9.62912 20.2387 9.16829 19.8477 8.78113ZM27.2502 8.11491C27.9143 7.45025 28.3664 6.60361 28.5494 5.68204C28.7324 4.76046 28.6381 3.80531 28.2784 2.93733C27.9186 2.06935 27.3096 1.32751 26.5284 0.805587C25.7471 0.283668 24.8286 0.00509644 23.889 0.00509644C22.9494 0.00509644 22.0309 0.283668 21.2497 0.805587C20.4684 1.32751 19.8594 2.06935 19.4996 2.93733C19.1399 3.80531 19.0456 4.76046 19.2286 5.68204C19.4116 6.60361 19.8637 7.45025 20.5278 8.11491C21.4177 9.0023 22.6231 9.50063 23.8798 9.50063C25.1364 9.50063 26.3418 9.0023 27.2317 8.11491H27.2502ZM14.9436 23.7803C14.5635 24.1608 14.3047 24.6456 14.1999 25.1732C14.0952 25.7008 14.1492 26.2477 14.3552 26.7446C14.5612 27.2415 14.9099 27.6662 15.3572 27.965C15.8045 28.2638 16.3304 28.4233 16.8683 28.4233C17.4062 28.4233 17.932 28.2638 18.3793 27.965C18.8266 27.6662 19.1753 27.2415 19.3813 26.7446C19.5873 26.2477 19.6413 25.7008 19.5366 25.1732C19.4319 24.6456 19.1731 24.1608 18.7929 23.7803C18.2815 23.2717 17.5895 22.9863 16.8683 22.9863C16.147 22.9863 15.4551 23.2717 14.9436 23.7803ZM21.157 16.0262C20.6237 16.5593 20.2604 17.2386 20.1131 17.9781C19.9659 18.7177 20.0413 19.4843 20.3297 20.181C20.6182 20.8778 21.1068 21.4733 21.7338 21.8923C22.3608 22.3112 23.0979 22.5349 23.852 22.5349C24.6061 22.5349 25.3432 22.3112 25.9702 21.8923C26.5971 21.4733 27.0858 20.8778 27.3742 20.181C27.6627 19.4843 27.7381 18.7177 27.5908 17.9781C27.4436 17.2386 27.0803 16.5593 26.5469 16.0262C25.8322 15.3185 24.8671 14.9215 23.8612 14.9215C22.8554 14.9215 21.8903 15.3185 21.1756 16.0262H21.157ZM33.7967 8.78113C33.2128 8.20288 32.4708 7.81033 31.6642 7.65296C30.8576 7.49559 30.0225 7.58043 29.264 7.89677C28.5055 8.21311 27.8576 8.74683 27.4019 9.43069C26.9461 10.1145 26.703 10.918 26.703 11.7398C26.703 12.5616 26.9461 13.365 27.4019 14.0489C27.8576 14.7327 28.5055 15.2664 29.264 15.5828C30.0225 15.8991 30.8576 15.984 31.6642 15.8266C32.4708 15.6692 33.2128 15.2767 33.7967 14.6984C34.1889 14.3125 34.5007 13.8526 34.7141 13.3455C34.9275 12.8383 35.0382 12.2939 35.0399 11.7436C35.0417 11.1934 34.9343 10.6483 34.7241 10.1398C34.5139 9.6313 34.205 9.16951 33.8152 8.78113H33.7967ZM0.79576 23.7803C0.415596 24.1608 0.156791 24.6456 0.0520592 25.1732C-0.0526731 25.7008 0.00136908 26.2477 0.207354 26.7446C0.413339 27.2415 0.76202 27.6662 1.20932 27.965C1.65663 28.2638 2.18247 28.4233 2.72039 28.4233C3.25831 28.4233 3.78415 28.2638 4.23146 27.965C4.67876 27.6662 5.02744 27.2415 5.23343 26.7446C5.43941 26.2477 5.49345 25.7008 5.38872 25.1732C5.28399 24.6456 5.02519 24.1608 4.64502 23.7803C4.39237 23.5274 4.09235 23.3267 3.76211 23.1898C3.43187 23.0529 3.07788 22.9825 2.72039 22.9825C2.3629 22.9825 2.00892 23.0529 1.67867 23.1898C1.34843 23.3267 1.04841 23.5274 0.79576 23.7803ZM40.5375 16.0262C40.0044 15.4929 39.3252 15.1296 38.5856 14.9823C37.846 14.8351 37.0794 14.9104 36.3827 15.1989C35.686 15.4874 35.0905 15.976 34.6715 16.603C34.2525 17.23 34.0289 17.9671 34.0289 18.7212C34.0289 19.4753 34.2525 20.2124 34.6715 20.8394C35.0905 21.4663 35.686 21.9549 36.3827 22.2434C37.0794 22.5319 37.846 22.6073 38.5856 22.46C39.3252 22.3128 40.0044 21.9495 40.5375 21.4161C41.2509 20.7007 41.6515 19.7315 41.6515 18.7212C41.6515 17.7108 41.2509 16.7417 40.5375 16.0262Z\"\r\n fill=\"url(#paint0_linear_353_5425)\"\r\n />\r\n <path\r\n d=\"M71.0956 25.9224L73.2562 22.8272C74.352 23.552 75.5251 24.1525 76.7539 24.6177C77.7336 24.969 78.7665 25.1489 79.8074 25.1497C80.8503 25.1979 81.884 24.9354 82.7776 24.3956C83.1242 24.1955 83.412 23.9075 83.6118 23.5606C83.8116 23.2138 83.9164 22.8204 83.9157 22.4201C83.9268 22.1375 83.8719 21.8561 83.7555 21.5984C83.639 21.3406 83.4642 21.1135 83.2449 20.935C82.6082 20.4925 81.8757 20.2071 81.1074 20.1022L77.4849 19.4915C75.5325 19.1399 74.0612 18.4953 73.0712 17.5576C72.5741 17.0822 72.1845 16.506 71.9284 15.8676C71.6722 15.2293 71.5555 14.5435 71.586 13.8564C71.5595 12.9759 71.7429 12.1017 72.121 11.3061C72.4991 10.5105 73.0611 9.81625 73.7605 9.28077C75.2132 8.12723 77.1194 7.55046 79.4789 7.55046C80.8634 7.54789 82.2409 7.7458 83.5687 8.13804C84.9587 8.56661 86.2811 9.18965 87.4966 9.98864L85.3407 13.0005C84.3808 12.3679 83.3396 11.8683 82.2455 11.5154C81.2587 11.2068 80.2306 11.0508 79.1967 11.0527C78.3047 11.0099 77.4198 11.2303 76.6521 11.6866C76.3506 11.8703 76.1031 12.1306 75.9349 12.4411C75.7667 12.7515 75.6837 13.101 75.6944 13.4539C75.6752 13.7312 75.7227 14.0091 75.833 14.2643C75.9433 14.5194 76.1131 14.7445 76.3282 14.9205C77.0137 15.3433 77.7851 15.6074 78.586 15.6931L82.1669 16.3779C84.2025 16.7572 85.7108 17.4234 86.7055 18.3719C87.1989 18.85 87.5862 19.4267 87.8421 20.0644C88.098 20.7021 88.2167 21.3865 88.1906 22.0731C88.1981 22.9718 87.9886 23.859 87.5799 24.6593C87.1532 25.4812 86.5571 26.2034 85.8311 26.7783C85.0386 27.3946 84.1424 27.8647 83.1847 28.1662C82.1274 28.511 81.0213 28.6828 79.9092 28.6751C78.2476 28.6907 76.5935 28.4503 75.005 27.9626C73.5821 27.542 72.2544 26.8491 71.0956 25.9224ZM100.641 24.6177C101.587 24.624 102.523 24.4301 103.389 24.0486C104.235 23.6736 104.981 23.1027 105.563 22.3831L108.339 25.159C107.361 26.2662 106.153 27.1471 104.8 27.7406C103.407 28.3752 101.894 28.7019 100.363 28.6983C98.9721 28.7063 97.5944 28.4292 96.3148 27.884C95.0842 27.3641 93.9703 26.6027 93.0392 25.6448C92.1011 24.6715 91.3625 23.5242 90.8647 22.2674C90.3283 20.9453 90.0578 19.5303 90.069 18.1035C90.0587 16.6873 90.3292 15.2831 90.8647 13.9721C91.3577 12.7303 92.0937 11.5996 93.0296 10.6462C93.9655 9.69287 95.0824 8.93605 96.3148 8.42025C97.5937 7.8728 98.9719 7.59557 100.363 7.60597C101.907 7.59931 103.436 7.90296 104.86 8.49889C106.244 9.06665 107.488 9.92861 108.506 11.025L105.656 13.9952C105.001 13.2509 104.203 12.6453 103.31 12.214C102.442 11.8062 101.493 11.5976 100.534 11.6033C99.7439 11.5944 98.9613 11.7593 98.2418 12.0863C97.5222 12.4133 96.8833 12.8944 96.3703 13.4955C95.2698 14.7859 94.6653 16.4262 94.6653 18.1221C94.6653 19.8179 95.2698 21.4583 96.3703 22.7486C96.904 23.3511 97.5624 23.8302 98.2998 24.153C99.0371 24.4757 99.8358 24.6343 100.641 24.6177ZM127.581 25.6771C126.445 26.641 125.159 27.4116 123.773 27.958C122.398 28.4598 120.943 28.7075 119.48 28.689C118.083 28.6962 116.699 28.4191 115.413 27.8747C114.168 27.3589 113.041 26.5955 112.1 25.6309C110.161 23.6055 109.082 20.9077 109.089 18.1035C109.079 16.6807 109.334 15.2686 109.843 13.9397C110.313 12.7025 111.018 11.5682 111.92 10.5993C112.837 9.63566 113.942 8.87094 115.167 8.35279C116.392 7.83463 117.71 7.57412 119.04 7.58748C120.334 7.57286 121.616 7.82963 122.804 8.34124C123.992 8.85284 125.06 9.60791 125.938 10.5577C126.817 11.5232 127.5 12.6497 127.951 13.8749C128.45 15.2218 128.698 16.6488 128.682 18.085V19.2278H113.623C113.806 20.7608 114.535 22.1767 115.677 23.2159C116.77 24.2488 118.221 24.8176 119.725 24.8027C120.651 24.8061 121.57 24.6334 122.431 24.2938C123.236 23.9907 123.965 23.5172 124.569 22.9059L127.581 25.6771ZM118.994 11.3118C118.354 11.3 117.717 11.4167 117.123 11.6551C116.529 11.8935 115.988 12.2488 115.533 12.6998C114.536 13.7035 113.887 15.0009 113.683 16.401H124.324C124.107 15.0155 123.459 13.7335 122.473 12.7368C122.019 12.2766 121.477 11.9131 120.879 11.6682C120.281 11.4233 119.64 11.3021 118.994 11.3118ZM131.337 28.2819V7.89282H135.936V11.2332C136.622 10.1079 137.575 9.16999 138.712 8.50352C139.842 7.87248 141.119 7.55314 142.413 7.57822C143.355 7.54695 144.292 7.71364 145.164 8.0675C146.037 8.42135 146.826 8.95448 147.479 9.63239C148.138 10.33 148.651 11.1513 148.989 12.0487C149.327 12.9462 149.484 13.9019 149.45 14.8603V28.2772H144.852V16.1558C144.91 14.8643 144.475 13.5989 143.635 12.6165C143.225 12.17 142.723 11.8183 142.164 11.5857C141.605 11.3532 141.001 11.2455 140.396 11.2702C139.521 11.2585 138.658 11.4771 137.893 11.904C137.118 12.3507 136.457 12.9696 135.959 13.713V28.2819H131.337ZM154.785 22.9105V11.557H150.672V7.89282H154.785V4.7144L159.383 1.30003V7.89282H164.121V11.557H159.383V21.8927C159.383 22.8981 159.599 23.6106 160.031 24.0301C160.463 24.4496 161.195 24.6593 162.229 24.6593C162.658 24.6626 163.087 24.6286 163.51 24.5575C164.015 24.4635 164.513 24.3352 165 24.1735V28.0367C164.355 28.2361 163.694 28.38 163.024 28.4669C162.37 28.5549 161.71 28.6013 161.049 28.6057C159.019 28.6057 157.466 28.1246 156.39 27.1623C155.314 26.1999 154.778 24.7827 154.785 22.9105ZM66.6681 9.4936C65.1876 8.22285 63.1396 7.58748 60.5241 7.58748C59.1392 7.59187 57.7598 7.76273 56.4157 8.09638C55.5404 8.31315 54.6797 8.58512 53.8387 8.91066V12.9311C54.8259 12.4676 55.8504 12.0884 56.9015 11.7976C57.7899 11.5547 58.7056 11.4257 59.6265 11.4136C61.1687 11.4136 62.3361 11.7591 63.1288 12.45C63.5322 12.8343 63.8468 13.3022 64.0506 13.8208C64.2544 14.3395 64.3424 14.8964 64.3085 15.4526V17.3448C63.4366 16.9313 62.5231 16.6118 61.5835 16.3917C60.6725 16.1865 59.7414 16.0841 58.8076 16.0864C56.4203 16.0864 54.5281 16.6277 53.1309 17.7103C52.4478 18.2857 51.9039 19.0084 51.5401 19.8241C51.1763 20.6399 51.0021 21.5274 51.0304 22.4201C51.0086 23.2675 51.1788 24.1088 51.5281 24.8812C51.8774 25.6535 52.3969 26.3368 53.0476 26.88C54.3893 28.0336 56.1181 28.6088 58.2339 28.6057C59.3319 28.6185 60.4225 28.4255 61.4494 28.0367C62.5061 27.6024 63.4726 26.9748 64.2993 26.1861V28.2634H68.8564V14.9899C68.8626 12.6211 68.1331 10.7921 66.6681 9.50286V9.4936ZM64.3085 23.7155C63.6542 24.2698 62.9028 24.6981 62.0924 24.9786C61.2581 25.2536 60.3847 25.3911 59.5062 25.3857C58.4382 25.4388 57.3817 25.1451 56.4944 24.5483C56.1352 24.3028 55.843 23.9715 55.6443 23.5845C55.4456 23.1976 55.3466 22.7671 55.3562 22.3322C55.3445 21.8588 55.441 21.3889 55.6382 20.9584C55.8354 20.5279 56.1282 20.148 56.4944 19.8477C57.2531 19.3203 58.0813 19.0566 59.5895 19.0566C60.4213 19.0508 61.2518 19.1252 62.0693 19.2787C62.8449 19.4333 63.5974 19.6868 64.3085 20.0328V23.7155Z\"\r\n fill=\"#004987\"\r\n />\r\n </g>\r\n <defs>\r\n <linearGradient\r\n id=\"paint0_linear_353_5425\"\r\n x1=\"7.54584\"\r\n y1=\"34.3843\"\r\n x2=\"33.8846\"\r\n y2=\"8.04551\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n >\r\n <stop stop-color=\"#004987\" />\r\n <stop offset=\"0.25\" stop-color=\"#004C89\" />\r\n <stop offset=\"0.44\" stop-color=\"#00568F\" />\r\n <stop offset=\"0.62\" stop-color=\"#00669A\" />\r\n <stop offset=\"0.78\" stop-color=\"#007DAA\" />\r\n <stop offset=\"0.93\" stop-color=\"#009BBD\" />\r\n <stop offset=\"1\" stop-color=\"#00ABC8\" />\r\n </linearGradient>\r\n <clipPath id=\"clip0_353_5425\">\r\n <rect width=\"165\" height=\"28.689\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n }\r\n } @else {\r\n @if (isMobile || isCollapsed()) {\r\n <svg\r\n class=\"collapsed regular-logo\"\r\n [ngClass]=\"size()\"\r\n width=\"42\"\r\n height=\"30\"\r\n viewBox=\"0 0 42 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"New logo Color\" clip-path=\"url(#clip0_2349_6338)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.0906C13.1314 16.6237 13.4946 17.3029 13.6419 18.0425C13.7892 18.7821 13.7138 19.5487 13.4253 20.2454C13.1368 20.9421 12.6482 21.5376 12.0212 21.9566C11.3943 22.3756 10.6571 22.5992 9.90305 22.5992C9.14898 22.5992 8.41184 22.3756 7.78487 21.9566C7.15791 21.5376 6.66928 20.9421 6.3808 20.2454C6.09232 19.5487 6.01695 18.7821 6.16421 18.0425C6.31147 17.3029 6.67475 16.6237 7.20811 16.0906C7.56177 15.7363 7.98185 15.4552 8.44428 15.2634C8.90671 15.0716 9.40242 14.9728 9.90305 14.9728C10.4037 14.9728 10.8994 15.0716 11.3618 15.2634C11.8243 15.4552 12.2443 15.7363 12.598 16.0906ZM19.8477 8.84549C19.2638 8.26724 18.5218 7.87469 17.7152 7.71732C16.9086 7.55996 16.0735 7.64479 15.315 7.96113C14.5566 8.27748 13.9087 8.81119 13.4529 9.49505C12.9972 10.1789 12.754 10.9823 12.754 11.8041C12.754 12.6259 12.9972 13.4294 13.4529 14.1132C13.9087 14.7971 14.5566 15.3308 15.315 15.6471C16.0735 15.9635 16.9086 16.0483 17.7152 15.891C18.5218 15.7336 19.2638 15.341 19.8477 14.7628C20.2387 14.3756 20.5491 13.9148 20.7609 13.407C20.9727 12.8991 21.0817 12.3544 21.0817 11.8041C21.0817 11.2539 20.9727 10.7091 20.7609 10.2013C20.5491 9.69348 20.2387 9.23266 19.8477 8.84549ZM27.2502 8.17927C27.9143 7.51461 28.3664 6.66798 28.5494 5.7464C28.7324 4.82482 28.6381 3.86967 28.2784 3.00169C27.9186 2.13371 27.3096 1.39187 26.5284 0.869949C25.7471 0.348029 24.8286 0.069458 23.889 0.069458C22.9494 0.069458 22.0309 0.348029 21.2497 0.869949C20.4684 1.39187 19.8594 2.13371 19.4996 3.00169C19.1399 3.86967 19.0456 4.82482 19.2286 5.7464C19.4116 6.66798 19.8637 7.51461 20.5278 8.17927C21.4177 9.06667 22.6231 9.56499 23.8798 9.56499C25.1364 9.56499 26.3418 9.06667 27.2317 8.17927H27.2502ZM14.9436 23.8446C14.5635 24.2252 14.3047 24.7099 14.1999 25.2376C14.0952 25.7652 14.1492 26.312 14.3552 26.809C14.5612 27.3059 14.9099 27.7305 15.3572 28.0293C15.8045 28.3281 16.3304 28.4876 16.8683 28.4876C17.4062 28.4876 17.932 28.3281 18.3793 28.0293C18.8266 27.7305 19.1753 27.3059 19.3813 26.809C19.5873 26.312 19.6413 25.7652 19.5366 25.2376C19.4319 24.7099 19.1731 24.2252 18.7929 23.8446C18.2815 23.3361 17.5895 23.0506 16.8683 23.0506C16.147 23.0506 15.4551 23.3361 14.9436 23.8446ZM21.157 16.0906C20.6237 16.6237 20.2604 17.3029 20.1131 18.0425C19.9659 18.7821 20.0413 19.5487 20.3297 20.2454C20.6182 20.9421 21.1068 21.5376 21.7338 21.9566C22.3608 22.3756 23.0979 22.5992 23.852 22.5992C24.6061 22.5992 25.3432 22.3756 25.9702 21.9566C26.5971 21.5376 27.0858 20.9421 27.3743 20.2454C27.6627 19.5487 27.7381 18.7821 27.5908 18.0425C27.4436 17.3029 27.0803 16.6237 26.5469 16.0906C25.8322 15.3829 24.8671 14.9858 23.8612 14.9858C22.8554 14.9858 21.8903 15.3829 21.1756 16.0906H21.157ZM33.7967 8.84549C33.2128 8.26724 32.4708 7.87469 31.6642 7.71732C30.8576 7.55996 30.0225 7.64479 29.264 7.96113C28.5055 8.27748 27.8576 8.81119 27.4019 9.49505C26.9461 10.1789 26.703 10.9823 26.703 11.8041C26.703 12.6259 26.9461 13.4294 27.4019 14.1132C27.8576 14.7971 28.5055 15.3308 29.264 15.6471C30.0225 15.9635 30.8576 16.0483 31.6642 15.891C32.4708 15.7336 33.2128 15.341 33.7967 14.7628C34.1889 14.3768 34.5007 13.917 34.7141 13.4098C34.9275 12.9027 35.0382 12.3582 35.0399 11.808C35.0417 11.2578 34.9343 10.7127 34.7241 10.2042C34.5139 9.69567 34.205 9.23388 33.8152 8.84549H33.7967ZM0.795762 23.8446C0.415598 24.2252 0.156793 24.7099 0.0520611 25.2376C-0.0526711 25.7652 0.00137099 26.312 0.207356 26.809C0.413341 27.3059 0.762022 27.7305 1.20932 28.0293C1.65663 28.3281 2.18247 28.4876 2.72039 28.4876C3.25831 28.4876 3.78416 28.3281 4.23146 28.0293C4.67876 27.7305 5.02744 27.3059 5.23343 26.809C5.43941 26.312 5.49345 25.7652 5.38872 25.2376C5.28399 24.7099 5.02519 24.2252 4.64502 23.8446C4.39238 23.5917 4.09235 23.3911 3.76211 23.2542C3.43187 23.1173 3.07788 23.0468 2.72039 23.0468C2.3629 23.0468 2.00892 23.1173 1.67868 23.2542C1.34843 23.3911 1.04841 23.5917 0.795762 23.8446ZM40.5375 16.0906C40.0044 15.5572 39.3252 15.194 38.5856 15.0467C37.8461 14.8994 37.0794 14.9748 36.3827 15.2633C35.686 15.5518 35.0905 16.0404 34.6715 16.6674C34.2525 17.2943 34.0289 18.0315 34.0289 18.7855C34.0289 19.5396 34.2525 20.2768 34.6715 20.9037C35.0905 21.5307 35.686 22.0193 36.3827 22.3078C37.0794 22.5963 37.8461 22.6717 38.5856 22.5244C39.3252 22.3771 40.0044 22.0139 40.5375 21.4805C41.2509 20.765 41.6515 19.7959 41.6515 18.7855C41.6515 17.7752 41.2509 16.8061 40.5375 16.0906Z\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2349_6338\">\r\n <rect width=\"42\" height=\"29\" transform=\"translate(0 0.0703125)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n } @else {\r\n <svg\r\n [ngClass]=\"size()\"\r\n class=\"regular-logo\"\r\n width=\"165\"\r\n height=\"29\"\r\n viewBox=\"0 0 165 29\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"Ascent Logo\" clip-path=\"url(#clip0_2238_42055)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.0203C13.1314 16.5534 13.4946 17.2326 13.6419 17.9722C13.7892 18.7117 13.7138 19.4784 13.4253 20.1751C13.1368 20.8718 12.6482 21.4673 12.0212 21.8863C11.3943 22.3053 10.6571 22.5289 9.90305 22.5289C9.14898 22.5289 8.41184 22.3053 7.78487 21.8863C7.15791 21.4673 6.66928 20.8718 6.3808 20.1751C6.09232 19.4784 6.01695 18.7117 6.16421 17.9722C6.31147 17.2326 6.67475 16.5534 7.20811 16.0203C7.56177 15.6659 7.98185 15.3849 8.44428 15.1931C8.90671 15.0013 9.40242 14.9025 9.90305 14.9025C10.4037 14.9025 10.8994 15.0013 11.3618 15.1931C11.8243 15.3849 12.2443 15.6659 12.598 16.0203ZM19.8477 8.77518C19.2638 8.19692 18.5218 7.80438 17.7152 7.64701C16.9086 7.48964 16.0735 7.57447 15.315 7.89082C14.5566 8.20716 13.9087 8.74088 13.4529 9.42474C12.9972 10.1086 12.754 10.912 12.754 11.7338C12.754 12.5556 12.9972 13.3591 13.4529 14.0429C13.9087 14.7268 14.5566 15.2605 15.315 15.5768C16.0735 15.8932 16.9086 15.978 17.7152 15.8206C18.5218 15.6633 19.2638 15.2707 19.8477 14.6925C20.2387 14.3053 20.5491 13.8445 20.7609 13.3367C20.9727 12.8288 21.0817 12.284 21.0817 11.7338C21.0817 11.1836 20.9727 10.6388 20.7609 10.131C20.5491 9.62316 20.2387 9.16234 19.8477 8.77518ZM27.2502 8.10896C27.9143 7.4443 28.3664 6.59766 28.5494 5.67608C28.7324 4.75451 28.6381 3.79936 28.2784 2.93138C27.9186 2.0634 27.3096 1.32156 26.5284 0.799636C25.7471 0.277717 24.8286 -0.000854492 23.889 -0.000854492C22.9494 -0.000854492 22.0309 0.277717 21.2497 0.799636C20.4684 1.32156 19.8594 2.0634 19.4996 2.93138C19.1399 3.79936 19.0456 4.75451 19.2286 5.67608C19.4116 6.59766 19.8637 7.4443 20.5278 8.10896C21.4177 8.99635 22.6231 9.49468 23.8798 9.49468C25.1364 9.49468 26.3418 8.99635 27.2317 8.10896H27.2502ZM14.9436 23.7743C14.5635 24.1549 14.3047 24.6396 14.1999 25.1672C14.0952 25.6949 14.1492 26.2417 14.3552 26.7386C14.5612 27.2356 14.9099 27.6602 15.3572 27.959C15.8045 28.2578 16.3304 28.4173 16.8683 28.4173C17.4062 28.4173 17.932 28.2578 18.3793 27.959C18.8266 27.6602 19.1753 27.2356 19.3813 26.7386C19.5873 26.2417 19.6413 25.6949 19.5366 25.1672C19.4319 24.6396 19.1731 24.1549 18.7929 23.7743C18.2815 23.2658 17.5895 22.9803 16.8683 22.9803C16.147 22.9803 15.4551 23.2658 14.9436 23.7743ZM21.157 16.0203C20.6237 16.5534 20.2604 17.2326 20.1131 17.9722C19.9659 18.7117 20.0413 19.4784 20.3297 20.1751C20.6182 20.8718 21.1068 21.4673 21.7338 21.8863C22.3608 22.3053 23.0979 22.5289 23.852 22.5289C24.6061 22.5289 25.3432 22.3053 25.9702 21.8863C26.5971 21.4673 27.0858 20.8718 27.3743 20.1751C27.6627 19.4784 27.7381 18.7117 27.5908 17.9722C27.4436 17.2326 27.0803 16.5534 26.5469 16.0203C25.8322 15.3126 24.8671 14.9155 23.8612 14.9155C22.8554 14.9155 21.8903 15.3126 21.1756 16.0203H21.157ZM33.7967 8.77518C33.2128 8.19692 32.4708 7.80438 31.6642 7.64701C30.8576 7.48964 30.0225 7.57447 29.264 7.89082C28.5055 8.20716 27.8576 8.74088 27.4019 9.42474C26.9461 10.1086 26.703 10.912 26.703 11.7338C26.703 12.5556 26.9461 13.3591 27.4019 14.0429C27.8576 14.7268 28.5055 15.2605 29.264 15.5768C30.0225 15.8932 30.8576 15.978 31.6642 15.8206C32.4708 15.6633 33.2128 15.2707 33.7967 14.6925C34.1889 14.3065 34.5007 13.8467 34.7141 13.3395C34.9275 12.8323 35.0382 12.2879 35.0399 11.7377C35.0417 11.1874 34.9343 10.6423 34.7241 10.1338C34.5139 9.62535 34.205 9.16356 33.8152 8.77518H33.7967ZM0.795762 23.7743C0.415598 24.1549 0.156793 24.6396 0.0520611 25.1672C-0.0526711 25.6949 0.00137099 26.2417 0.207356 26.7386C0.413341 27.2356 0.762022 27.6602 1.20932 27.959C1.65663 28.2578 2.18247 28.4173 2.72039 28.4173C3.25831 28.4173 3.78416 28.2578 4.23146 27.959C4.67876 27.6602 5.02744 27.2356 5.23343 26.7386C5.43941 26.2417 5.49345 25.6949 5.38872 25.1672C5.28399 24.6396 5.02519 24.1549 4.64502 23.7743C4.39238 23.5214 4.09235 23.3208 3.76211 23.1839C3.43187 23.047 3.07788 22.9765 2.72039 22.9765C2.3629 22.9765 2.00892 23.047 1.67868 23.1839C1.34843 23.3208 1.04841 23.5214 0.795762 23.7743ZM40.5375 16.0203C40.0044 15.4869 39.3252 15.1236 38.5856 14.9764C37.8461 14.8291 37.0794 14.9045 36.3827 15.193C35.686 15.4814 35.0905 15.9701 34.6715 16.597C34.2525 17.224 34.0289 17.9612 34.0289 18.7152C34.0289 19.4693 34.2525 20.2065 34.6715 20.8334C35.0905 21.4604 35.686 21.949 36.3827 22.2375C37.0794 22.526 37.8461 22.6013 38.5856 22.4541C39.3252 22.3068 40.0044 21.9435 40.5375 21.4102C41.2509 20.6947 41.6515 19.7256 41.6515 18.7152C41.6515 17.7049 41.2509 16.7358 40.5375 16.0203Z\"\r\n />\r\n <path\r\n id=\"Vector_2\"\r\n d=\"M71.0956 25.9164L73.2562 22.8213C74.352 23.5461 75.5251 24.1466 76.7539 24.6117C77.7336 24.963 78.7665 25.143 79.8074 25.1438C80.8503 25.1919 81.884 24.9294 82.7776 24.3896C83.1242 24.1895 83.412 23.9015 83.6118 23.5546C83.8116 23.2078 83.9164 22.8144 83.9157 22.4141C83.9268 22.1315 83.8719 21.8502 83.7555 21.5924C83.639 21.3347 83.4642 21.1075 83.2449 20.929C82.6082 20.4865 81.8757 20.2011 81.1074 20.0962L77.4849 19.4855C75.5325 19.1339 74.0612 18.4893 73.0712 17.5516C72.5741 17.0762 72.1845 16.5 71.9284 15.8617C71.6722 15.2233 71.5555 14.5376 71.586 13.8504C71.5595 12.9699 71.7429 12.0958 72.121 11.3001C72.4991 10.5045 73.0611 9.81028 73.7605 9.2748C75.2132 8.12126 77.1194 7.54449 79.4789 7.54449C80.8634 7.54192 82.2409 7.73984 83.5687 8.13207C84.9587 8.56065 86.2811 9.18369 87.4966 9.98267L85.3407 12.9945C84.3808 12.3619 83.3396 11.8623 82.2455 11.5094C81.2587 11.2008 80.2306 11.0448 79.1967 11.0468C78.3047 11.0039 77.4198 11.2243 76.6521 11.6806C76.3506 11.8643 76.1031 12.1247 75.9349 12.4351C75.7667 12.7456 75.6837 13.095 75.6944 13.4479C75.6752 13.7252 75.7227 14.0031 75.833 14.2583C75.9433 14.5135 76.1131 14.7385 76.3282 14.9145C77.0137 15.3374 77.7851 15.6014 78.586 15.6872L82.1669 16.3719C84.2025 16.7513 85.7108 17.4175 86.7055 18.3659C87.1989 18.8441 87.5862 19.4207 87.8421 20.0584C88.098 20.6961 88.2167 21.3805 88.1906 22.0671C88.1981 22.9658 87.9886 23.853 87.5799 24.6534C87.1532 25.4753 86.5571 26.1974 85.8311 26.7723C85.0386 27.3887 84.1424 27.8587 83.1847 28.1602C82.1274 28.505 81.0213 28.6769 79.9092 28.6692C78.2476 28.6847 76.5935 28.4444 75.005 27.9567C73.5821 27.5361 72.2544 26.8432 71.0956 25.9164ZM100.641 24.6117C101.587 24.618 102.523 24.4241 103.389 24.0427C104.235 23.6676 104.981 23.0967 105.563 22.3771L108.339 25.153C107.361 26.2602 106.153 27.1412 104.8 27.7346C103.407 28.3692 101.894 28.6959 100.363 28.6923C98.9721 28.7003 97.5944 28.4232 96.3148 27.878C95.0842 27.3582 93.9703 26.5968 93.0392 25.6388C92.1011 24.6655 91.3625 23.5182 90.8647 22.2614C90.3283 20.9393 90.0578 19.5243 90.069 18.0976C90.0587 16.6814 90.3292 15.2772 90.8647 13.9661C91.3577 12.7244 92.0937 11.5937 93.0296 10.6403C93.9655 9.6869 95.0824 8.93009 96.3148 8.41428C97.5937 7.86683 98.9719 7.5896 100.363 7.60001C101.907 7.59334 103.436 7.89699 104.86 8.49292C106.244 9.06069 107.488 9.92264 108.506 11.019L105.656 13.9892C105.001 13.2449 104.203 12.6393 103.31 12.208C102.442 11.8003 101.493 11.5916 100.534 11.5973C99.7439 11.5885 98.9613 11.7534 98.2418 12.0803C97.5222 12.4073 96.8833 12.8884 96.3703 13.4896C95.2698 14.7799 94.6653 16.4202 94.6653 18.1161C94.6653 19.812 95.2698 21.4523 96.3703 22.7426C96.904 23.3451 97.5624 23.8243 98.2998 24.147C99.0371 24.4698 99.8358 24.6283 100.641 24.6117ZM127.581 25.6712C126.445 26.635 125.159 27.4056 123.773 27.9521C122.398 28.4538 120.943 28.7015 119.48 28.683C118.083 28.6902 116.699 28.4132 115.413 27.8688C114.168 27.3529 113.041 26.5895 112.1 25.6249C110.161 23.5996 109.082 20.9017 109.089 18.0976C109.079 16.6748 109.334 15.2626 109.843 13.9337C110.313 12.6966 111.018 11.5622 111.92 10.5934C112.837 9.62969 113.942 8.86497 115.167 8.34682C116.392 7.82866 117.71 7.56815 119.04 7.58151C120.334 7.56689 121.616 7.82366 122.804 8.33527C123.992 8.84688 125.06 9.60194 125.938 10.5517C126.817 11.5172 127.5 12.6437 127.951 13.869C128.45 15.2159 128.698 16.6428 128.682 18.0791V19.2218H113.623C113.806 20.7549 114.535 22.1707 115.677 23.2099C116.77 24.2428 118.221 24.8116 119.725 24.7968C120.651 24.8002 121.57 24.6274 122.431 24.2878C123.236 23.9848 123.965 23.5113 124.569 22.8999L127.581 25.6712ZM118.994 11.3059C118.354 11.294 117.717 11.4108 117.123 11.6492C116.529 11.8876 115.988 12.2428 115.533 12.6938C114.536 13.6975 113.887 14.9949 113.683 16.395H124.324C124.107 15.0096 123.459 13.7276 122.473 12.7308C122.019 12.2706 121.477 11.9072 120.879 11.6622C120.281 11.4173 119.64 11.2961 118.994 11.3059ZM131.337 28.2759V7.88685H135.936V11.2272C136.622 10.1019 137.575 9.16403 138.712 8.49755C139.842 7.86651 141.119 7.54718 142.413 7.57225C143.355 7.54099 144.292 7.70768 145.164 8.06153C146.037 8.41538 146.826 8.94851 147.479 9.62642C148.138 10.324 148.651 11.1453 148.989 12.0428C149.327 12.9402 149.484 13.8959 149.45 14.8544V28.2713H144.852V16.1498C144.91 14.8583 144.475 13.5929 143.635 12.6105C143.225 12.1641 142.723 11.8123 142.164 11.5798C141.605 11.3472 141.001 11.2396 140.396 11.2642C139.521 11.2526 138.658 11.4711 137.893 11.8981C137.118 12.3447 136.457 12.9637 135.959 13.707V28.2759H131.337ZM154.785 22.9045V11.5511H150.672V7.88685H154.785V4.70844L159.383 1.29407V7.88685H164.121V11.5511H159.383V21.8867C159.383 22.8922 159.599 23.6047 160.031 24.0241C160.463 24.4436 161.195 24.6534 162.229 24.6534C162.658 24.6567 163.087 24.6226 163.51 24.5516C164.015 24.4575 164.513 24.3292 165 24.1676V28.0307C164.355 28.2301 163.694 28.3741 163.024 28.461C162.37 28.549 161.71 28.5953 161.049 28.5998C159.019 28.5998 157.466 28.1186 156.39 27.1563C155.314 26.194 154.778 24.7767 154.785 22.9045ZM66.6681 9.48763C65.1876 8.21689 63.1396 7.58151 60.5241 7.58151C59.1392 7.58591 57.7598 7.75676 56.4157 8.09042C55.5404 8.30719 54.6797 8.57916 53.8387 8.90469V12.9251C54.8259 12.4616 55.8504 12.0824 56.9015 11.7916C57.7899 11.5487 58.7056 11.4197 59.6265 11.4076C61.1687 11.4076 62.3361 11.7531 63.1288 12.444C63.5322 12.8284 63.8468 13.2962 64.0506 13.8149C64.2544 14.3335 64.3424 14.8904 64.3085 15.4466V17.3388C63.4366 16.9253 62.5231 16.6058 61.5835 16.3858C60.6725 16.1806 59.7414 16.0781 58.8076 16.0804C56.4203 16.0804 54.5281 16.6217 53.1309 17.7043C52.4478 18.2797 51.9039 19.0025 51.5401 19.8182C51.1763 20.6339 51.0021 21.5214 51.0304 22.4141C51.0086 23.2615 51.1788 24.1029 51.5281 24.8752C51.8774 25.6475 52.3969 26.3309 53.0476 26.8741C54.3893 28.0276 56.1181 28.6028 58.2339 28.5998C59.3319 28.6126 60.4225 28.4196 61.4494 28.0307C62.5061 27.5964 63.4726 26.9688 64.2993 26.1801V28.2574H68.8564V14.9839C68.8626 12.6152 68.1331 10.7862 66.6681 9.4969V9.48763ZM64.3085 23.7095C63.6542 24.2639 62.9028 24.6921 62.0924 24.9726C61.2581 25.2476 60.3847 25.3851 59.5062 25.3797C58.4382 25.4329 57.3817 25.1391 56.4944 24.5423C56.1352 24.2968 55.843 23.9655 55.6443 23.5786C55.4456 23.1916 55.3466 22.7611 55.3562 22.3262C55.3445 21.8528 55.441 21.383 55.6382 20.9525C55.8354 20.5219 56.1282 20.1421 56.4944 19.8418C57.2531 19.3144 58.0813 19.0506 59.5895 19.0506C60.4213 19.0449 61.2518 19.1193 62.0693 19.2727C62.8449 19.4274 63.5974 19.6808 64.3085 20.0268V23.7095Z\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2238_42055\">\r\n <rect width=\"165\" height=\"28.689\" transform=\"translate(0 -0.00598145)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n }\r\n }\r\n </picture>\r\n} @else {\r\n <picture class=\"ads-ascent-logo\">\r\n @if (isMobile || isCollapsed()) {\r\n <svg\r\n class=\"collapsed teal-logo\"\r\n [ngClass]=\"size()\"\r\n width=\"42\"\r\n height=\"30\"\r\n viewBox=\"0 0 42 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"New logo Color\" clip-path=\"url(#clip0_2342_113)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.6973C13.1314 17.2304 13.4946 17.9096 13.6419 18.6492C13.7892 19.3888 13.7138 20.1554 13.4253 20.8521C13.1368 21.5488 12.6482 22.1443 12.0212 22.5633C11.3943 22.9823 10.6571 23.2059 9.90305 23.2059C9.14898 23.2059 8.41184 22.9823 7.78487 22.5633C7.15791 22.1443 6.66928 21.5488 6.3808 20.8521C6.09232 20.1554 6.01695 19.3888 6.16421 18.6492C6.31147 17.9096 6.67475 17.2304 7.20811 16.6973C7.56177 16.343 7.98185 16.0619 8.44428 15.8701C8.90671 15.6783 9.40242 15.5795 9.90305 15.5795C10.4037 15.5795 10.8994 15.6783 11.3618 15.8701C11.8243 16.0619 12.2443 16.343 12.598 16.6973ZM19.8477 9.45219C19.2638 8.87394 18.5218 8.4814 17.7152 8.32403C16.9086 8.16666 16.0735 8.25149 15.315 8.56784C14.5566 8.88418 13.9087 9.41789 13.4529 10.1018C12.9972 10.7856 12.754 11.589 12.754 12.4108C12.754 13.2326 12.9972 14.0361 13.4529 14.7199C13.9087 15.4038 14.5566 15.9375 15.315 16.2539C16.0735 16.5702 16.9086 16.655 17.7152 16.4977C18.5218 16.3403 19.2638 15.9477 19.8477 15.3695C20.2387 14.9823 20.5491 14.5215 20.7609 14.0137C20.9727 13.5058 21.0817 12.9611 21.0817 12.4108C21.0817 11.8606 20.9727 11.3158 20.7609 10.808C20.5491 10.3002 20.2387 9.83936 19.8477 9.45219ZM27.2502 8.78597C27.9143 8.12132 28.3664 7.27468 28.5494 6.3531C28.7324 5.43152 28.6381 4.47638 28.2784 3.6084C27.9186 2.74042 27.3096 1.99857 26.5284 1.47665C25.7471 0.954734 24.8286 0.676163 23.889 0.676163C22.9494 0.676163 22.0309 0.954734 21.2497 1.47665C20.4684 1.99857 19.8594 2.74042 19.4996 3.6084C19.1399 4.47638 19.0456 5.43152 19.2286 6.3531C19.4116 7.27468 19.8637 8.12132 20.5278 8.78597C21.4177 9.67337 22.6231 10.1717 23.8798 10.1717C25.1364 10.1717 26.3418 9.67337 27.2317 8.78597H27.2502ZM14.9436 24.4513C14.5635 24.8319 14.3047 25.3166 14.1999 25.8443C14.0952 26.3719 14.1492 26.9187 14.3552 27.4157C14.5612 27.9126 14.9099 28.3373 15.3572 28.636C15.8045 28.9348 16.3304 29.0943 16.8683 29.0943C17.4062 29.0943 17.932 28.9348 18.3793 28.636C18.8266 28.3373 19.1753 27.9126 19.3813 27.4157C19.5873 26.9187 19.6413 26.3719 19.5366 25.8443C19.4319 25.3166 19.1731 24.8319 18.7929 24.4513C18.2815 23.9428 17.5895 23.6573 16.8683 23.6573C16.147 23.6573 15.4551 23.9428 14.9436 24.4513ZM21.157 16.6973C20.6237 17.2304 20.2604 17.9096 20.1131 18.6492C19.9659 19.3888 20.0413 20.1554 20.3297 20.8521C20.6182 21.5488 21.1068 22.1443 21.7338 22.5633C22.3608 22.9823 23.0979 23.2059 23.852 23.2059C24.6061 23.2059 25.3432 22.9823 25.9702 22.5633C26.5971 22.1443 27.0858 21.5488 27.3743 20.8521C27.6627 20.1554 27.7381 19.3888 27.5908 18.6492C27.4436 17.9096 27.0803 17.2304 26.5469 16.6973C25.8322 15.9896 24.8671 15.5925 23.8612 15.5925C22.8554 15.5925 21.8903 15.9896 21.1756 16.6973H21.157ZM33.7967 9.45219C33.2128 8.87394 32.4708 8.4814 31.6642 8.32403C30.8576 8.16666 30.0225 8.25149 29.264 8.56784C28.5055 8.88418 27.8576 9.41789 27.4019 10.1018C26.9461 10.7856 26.703 11.589 26.703 12.4108C26.703 13.2326 26.9461 14.0361 27.4019 14.7199C27.8576 15.4038 28.5055 15.9375 29.264 16.2539C30.0225 16.5702 30.8576 16.655 31.6642 16.4977C32.4708 16.3403 33.2128 15.9477 33.7967 15.3695C34.1889 14.9836 34.5007 14.5237 34.7141 14.0165C34.9275 13.5094 35.0382 12.9649 35.0399 12.4147C35.0417 11.8645 34.9343 11.3194 34.7241 10.8109C34.5139 10.3024 34.205 9.84058 33.8152 9.45219H33.7967ZM0.795762 24.4513C0.415598 24.8319 0.156793 25.3166 0.0520611 25.8443C-0.0526711 26.3719 0.00137099 26.9187 0.207356 27.4157C0.413341 27.9126 0.762022 28.3373 1.20932 28.636C1.65663 28.9348 2.18247 29.0943 2.72039 29.0943C3.25831 29.0943 3.78416 28.9348 4.23146 28.636C4.67876 28.3373 5.02744 27.9126 5.23343 27.4157C5.43941 26.9187 5.49345 26.3719 5.38872 25.8443C5.28399 25.3166 5.02519 24.8319 4.64502 24.4513C4.39238 24.1984 4.09235 23.9978 3.76211 23.8609C3.43187 23.724 3.07788 23.6535 2.72039 23.6535C2.3629 23.6535 2.00892 23.724 1.67868 23.8609C1.34843 23.9978 1.04841 24.1984 0.795762 24.4513ZM40.5375 16.6973C40.0044 16.1639 39.3252 15.8007 38.5856 15.6534C37.8461 15.5061 37.0794 15.5815 36.3827 15.87C35.686 16.1585 35.0905 16.6471 34.6715 17.2741C34.2525 17.901 34.0289 18.6382 34.0289 19.3923C34.0289 20.1463 34.2525 20.8835 34.6715 21.5104C35.0905 22.1374 35.686 22.626 36.3827 22.9145C37.0794 23.203 37.8461 23.2784 38.5856 23.1311C39.3252 22.9838 40.0044 22.6206 40.5375 22.0872C41.2509 21.3717 41.6515 20.4026 41.6515 19.3923C41.6515 18.3819 41.2509 17.4128 40.5375 16.6973Z\"\r\n fill=\"url(#paint0_linear_2342_113)\"\r\n />\r\n </g>\r\n <defs>\r\n <linearGradient\r\n id=\"paint0_linear_2342_113\"\r\n x1=\"7.54585\"\r\n y1=\"35.0553\"\r\n x2=\"33.8846\"\r\n y2=\"8.71658\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n >\r\n <stop stop-color=\"#004987\" />\r\n <stop offset=\"0.25\" stop-color=\"#004C89\" />\r\n <stop offset=\"0.44\" stop-color=\"#00568F\" />\r\n <stop offset=\"0.62\" stop-color=\"#00669A\" />\r\n <stop offset=\"0.78\" stop-color=\"#007DAA\" />\r\n <stop offset=\"0.93\" stop-color=\"#009BBD\" />\r\n <stop offset=\"1\" stop-color=\"#00ABC8\" />\r\n </linearGradient>\r\n <clipPath id=\"clip0_2342_113\">\r\n <rect width=\"42\" height=\"29\" fill=\"white\" transform=\"translate(0 0.677048)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n } @else {\r\n <svg class=\"teal-logo\" [ngClass]=\"size()\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 29\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_353_5425)\">\r\n <path\r\n d=\"M12.598 16.0262C13.1314 16.5593 13.4946 17.2386 13.6419 17.9781C13.7892 18.7177 13.7138 19.4843 13.4253 20.181C13.1368 20.8778 12.6482 21.4733 12.0212 21.8923C11.3943 22.3112 10.6571 22.5349 9.90305 22.5349C9.14897 22.5349 8.41183 22.3112 7.78487 21.8923C7.1579 21.4733 6.66928 20.8778 6.3808 20.181C6.09232 19.4843 6.01694 18.7177 6.16421 17.9781C6.31147 17.2386 6.67475 16.5593 7.20811 16.0262C7.56177 15.6719 7.98184 15.3908 8.44428 15.199C8.90671 15.0072 9.40242 14.9085 9.90305 14.9085C10.4037 14.9085 10.8994 15.0072 11.3618 15.199C11.8243 15.3908 12.2443 15.6719 12.598 16.0262ZM19.8477 8.78113C19.2638 8.20288 18.5218 7.81033 17.7152 7.65296C16.9086 7.49559 16.0735 7.58043 15.315 7.89677C14.5566 8.21311 13.9087 8.74683 13.4529 9.43069C12.9972 10.1145 12.754 10.918 12.754 11.7398C12.754 12.5616 12.9972 13.365 13.4529 14.0489C13.9087 14.7327 14.5566 15.2664 15.315 15.5828C16.0735 15.8991 16.9086 15.984 17.7152 15.8266C18.5218 15.6692 19.2638 15.2767 19.8477 14.6984C20.2387 14.3113 20.5491 13.8504 20.7609 13.3426C20.9727 12.8348 21.0817 12.29 21.0817 11.7398C21.0817 11.1895 20.9727 10.6448 20.7609 10.1369C20.5491 9.62912 20.2387 9.16829 19.8477 8.78113ZM27.2502 8.11491C27.9143 7.45025 28.3664 6.60361 28.5494 5.68204C28.7324 4.76046 28.6381 3.80531 28.2784 2.93733C27.9186 2.06935 27.3096 1.32751 26.5284 0.805587C25.7471 0.283668 24.8286 0.00509644 23.889 0.00509644C22.9494 0.00509644 22.0309 0.283668 21.2497 0.805587C20.4684 1.32751 19.8594 2.06935 19.4996 2.93733C19.1399 3.80531 19.0456 4.76046 19.2286 5.68204C19.4116 6.60361 19.8637 7.45025 20.5278 8.11491C21.4177 9.0023 22.6231 9.50063 23.8798 9.50063C25.1364 9.50063 26.3418 9.0023 27.2317 8.11491H27.2502ZM14.9436 23.7803C14.5635 24.1608 14.3047 24.6456 14.1999 25.1732C14.0952 25.7008 14.1492 26.2477 14.3552 26.7446C14.5612 27.2415 14.9099 27.6662 15.3572 27.965C15.8045 28.2638 16.3304 28.4233 16.8683 28.4233C17.4062 28.4233 17.932 28.2638 18.3793 27.965C18.8266 27.6662 19.1753 27.2415 19.3813 26.7446C19.5873 26.2477 19.6413 25.7008 19.5366 25.1732C19.4319 24.6456 19.1731 24.1608 18.7929 23.7803C18.2815 23.2717 17.5895 22.9863 16.8683 22.9863C16.147 22.9863 15.4551 23.2717 14.9436 23.7803ZM21.157 16.0262C20.6237 16.5593 20.2604 17.2386 20.1131 17.9781C19.9659 18.7177 20.0413 19.4843 20.3297 20.181C20.6182 20.8778 21.1068 21.4733 21.7338 21.8923C22.3608 22.3112 23.0979 22.5349 23.852 22.5349C24.6061 22.5349 25.3432 22.3112 25.9702 21.8923C26.5971 21.4733 27.0858 20.8778 27.3742 20.181C27.6627 19.4843 27.7381 18.7177 27.5908 17.9781C27.4436 17.2386 27.0803 16.5593 26.5469 16.0262C25.8322 15.3185 24.8671 14.9215 23.8612 14.9215C22.8554 14.9215 21.8903 15.3185 21.1756 16.0262H21.157ZM33.7967 8.78113C33.2128 8.20288 32.4708 7.81033 31.6642 7.65296C30.8576 7.49559 30.0225 7.58043 29.264 7.89677C28.5055 8.21311 27.8576 8.74683 27.4019 9.43069C26.9461 10.1145 26.703 10.918 26.703 11.7398C26.703 12.5616 26.9461 13.365 27.4019 14.0489C27.8576 14.7327 28.5055 15.2664 29.264 15.5828C30.0225 15.8991 30.8576 15.984 31.6642 15.8266C32.4708 15.6692 33.2128 15.2767 33.7967 14.6984C34.1889 14.3125 34.5007 13.8526 34.7141 13.3455C34.9275 12.8383 35.0382 12.2939 35.0399 11.7436C35.0417 11.1934 34.9343 10.6483 34.7241 10.1398C34.5139 9.6313 34.205 9.16951 33.8152 8.78113H33.7967ZM0.79576 23.7803C0.415596 24.1608 0.156791 24.6456 0.0520592 25.1732C-0.0526731 25.7008 0.00136908 26.2477 0.207354 26.7446C0.413339 27.2415 0.76202 27.6662 1.20932 27.965C1.65663 28.2638 2.18247 28.4233 2.72039 28.4233C3.25831 28.4233 3.78415 28.2638 4.23146 27.965C4.67876 27.6662 5.02744 27.2415 5.23343 26.7446C5.43941 26.2477 5.49345 25.7008 5.38872 25.1732C5.28399 24.6456 5.02519 24.1608 4.64502 23.7803C4.39237 23.5274 4.09235 23.3267 3.76211 23.1898C3.43187 23.0529 3.07788 22.9825 2.72039 22.9825C2.3629 22.9825 2.00892 23.0529 1.67867 23.1898C1.34843 23.3267 1.04841 23.5274 0.79576 23.7803ZM40.5375 16.0262C40.0044 15.4929 39.3252 15.1296 38.5856 14.9823C37.846 14.8351 37.0794 14.9104 36.3827 15.1989C35.686 15.4874 35.0905 15.976 34.6715 16.603C34.2525 17.23 34.0289 17.9671 34.0289 18.7212C34.0289 19.4753 34.2525 20.2124 34.6715 20.8394C35.0905 21.4663 35.686 21.9549 36.3827 22.2434C37.0794 22.5319 37.846 22.6073 38.5856 22.46C39.3252 22.3128 40.0044 21.9495 40.5375 21.4161C41.2509 20.7007 41.6515 19.7315 41.6515 18.7212C41.6515 17.7108 41.2509 16.7417 40.5375 16.0262Z\"\r\n fill=\"url(#paint0_linear_353_5425)\"\r\n />\r\n <path\r\n d=\"M71.0956 25.9224L73.2562 22.8272C74.352 23.552 75.5251 24.1525 76.7539 24.6177C77.7336 24.969 78.7665 25.1489 79.8074 25.1497C80.8503 25.1979 81.884 24.9354 82.7776 24.3956C83.1242 24.1955 83.412 23.9075 83.6118 23.5606C83.8116 23.2138 83.9164 22.8204 83.9157 22.4201C83.9268 22.1375 83.8719 21.8561 83.7555 21.5984C83.639 21.3406 83.4642 21.1135 83.2449 20.935C82.6082 20.4925 81.8757 20.2071 81.1074 20.1022L77.4849 19.4915C75.5325 19.1399 74.0612 18.4953 73.0712 17.5576C72.5741 17.0822 72.1845 16.506 71.9284 15.8676C71.6722 15.2293 71.5555 14.5435 71.586 13.8564C71.5595 12.9759 71.7429 12.1017 72.121 11.3061C72.4991 10.5105 73.0611 9.81625 73.7605 9.28077C75.2132 8.12723 77.1194 7.55046 79.4789 7.55046C80.8634 7.54789 82.2409 7.7458 83.5687 8.13804C84.9587 8.56661 86.2811 9.18965 87.4966 9.98864L85.3407 13.0005C84.3808 12.3679 83.3396 11.8683 82.2455 11.5154C81.2587 11.2068 80.2306 11.0508 79.1967 11.0527C78.3047 11.0099 77.4198 11.2303 76.6521 11.6866C76.3506 11.8703 76.1031 12.1306 75.9349 12.4411C75.7667 12.7515 75.6837 13.101 75.6944 13.4539C75.6752 13.7312 75.7227 14.0091 75.833 14.2643C75.9433 14.5194 76.1131 14.7445 76.3282 14.9205C77.0137 15.3433 77.7851 15.6074 78.586 15.6931L82.1669 16.3779C84.2025 16.7572 85.7108 17.4234 86.7055 18.3719C87.1989 18.85 87.5862 19.4267 87.8421 20.0644C88.098 20.7021 88.2167 21.3865 88.1906 22.0731C88.1981 22.9718 87.9886 23.859 87.5799 24.6593C87.1532 25.4812 86.5571 26.2034 85.8311 26.7783C85.0386 27.3946 84.1424 27.8647 83.1847 28.1662C82.1274 28.511 81.0213 28.6828 79.9092 28.6751C78.2476 28.6907 76.5935 28.4503 75.005 27.9626C73.5821 27.542 72.2544 26.8491 71.0956 25.9224ZM100.641 24.6177C101.587 24.624 102.523 24.4301 103.389 24.0486C104.235 23.6736 104.981 23.1027 105.563 22.3831L108.339 25.159C107.361 26.2662 106.153 27.1471 104.8 27.7406C103.407 28.3752 101.894 28.7019 100.363 28.6983C98.9721 28.7063 97.5944 28.4292 96.3148 27.884C95.0842 27.3641 93.9703 26.6027 93.0392 25.6448C92.1011 24.6715 91.3625 23.5242 90.8647 22.2674C90.3283 20.9453 90.0578 19.5303 90.069 18.1035C90.0587 16.6873 90.3292 15.2831 90.8647 13.9721C91.3577 12.7303 92.0937 11.5996 93.0296 10.6462C93.9655 9.69287 95.0824 8.93605 96.3148 8.42025C97.5937 7.8728 98.9719 7.59557 100.363 7.60597C101.907 7.59931 103.436 7.90296 104.86 8.49889C106.244 9.06665 107.488 9.92861 108.506 11.025L105.656 13.9952C105.001 13.2509 104.203 12.6453 103.31 12.214C102.442 11.8062 101.493 11.5976 100.534 11.6033C99.7439 11.5944 98.9613 11.7593 98.2418 12.0863C97.5222 12.4133 96.8833 12.8944 96.3703 13.4955C95.2698 14.7859 94.6653 16.4262 94.6653 18.1221C94.6653 19.8179 95.2698 21.4583 96.3703 22.7486C96.904 23.3511 97.5624 23.8302 98.2998 24.153C99.0371 24.4757 99.8358 24.6343 100.641 24.6177ZM127.581 25.6771C126.445 26.641 125.159 27.4116 123.773 27.958C122.398 28.4598 120.943 28.7075 119.48 28.689C118.083 28.6962 116.699 28.4191 115.413 27.8747C114.168 27.3589 113.041 26.5955 112.1 25.6309C110.161 23.6055 109.082 20.9077 109.089 18.1035C109.079 16.6807 109.334 15.2686 109.843 13.9397C110.313 12.7025 111.018 11.5682 111.92 10.5993C112.837 9.63566 113.942 8.87094 115.167 8.35279C116.392 7.83463 117.71 7.57412 119.04 7.58748C120.334 7.57286 121.616 7.82963 122.804 8.34124C123.992 8.85284 125.06 9.60791 125.938 10.5577C126.817 11.5232 127.5 12.6497 127.951 13.8749C128.45 15.2218 128.698 16.6488 128.682 18.085V19.2278H113.623C113.806 20.7608 114.535 22.1767 115.677 23.2159C116.77 24.2488 118.221 24.8176 119.725 24.8027C120.651 24.8061 121.57 24.6334 122.431 24.2938C123.236 23.9907 123.965 23.5172 124.569 22.9059L127.581 25.6771ZM118.994 11.3118C118.354 11.3 117.717 11.4167 117.123 11.6551C116.529 11.8935 115.988 12.2488 115.533 12.6998C114.536 13.7035 113.887 15.0009 113.683 16.401H124.324C124.107 15.0155 123.459 13.7335 122.473 12.7368C122.019 12.2766 121.477 11.9131 120.879 11.6682C120.281 11.4233 119.64 11.3021 118.994 11.3118ZM131.337 28.2819V7.89282H135.936V11.2332C136.622 10.1079 137.575 9.16999 138.712 8.50352C139.842 7.87248 141.119 7.55314 142.413 7.57822C143.355 7.54695 144.292 7.71364 145.164 8.0675C146.037 8.42135 146.826 8.95448 147.479 9.63239C148.138 10.33 148.651 11.1513 148.989 12.0487C149.327 12.9462 149.484 13.9019 149.45 14.8603V28.2772H144.852V16.1558C144.91 14.8643 144.475 13.5989 143.635 12.6165C143.225 12.17 142.723 11.8183 142.164 11.5857C141.605 11.3532 141.001 11.2455 140.396 11.2702C139.521 11.2585 138.658 11.4771 137.893 11.904C137.118 12.3507 136.457 12.9696 135.959 13.713V28.2819H131.337ZM154.785 22.9105V11.557H150.672V7.89282H154.785V4.7144L159.383 1.30003V7.89282H164.121V11.557H159.383V21.8927C159.383 22.8981 159.599 23.6106 160.031 24.0301C160.463 24.4496 161.195 24.6593 162.229 24.6593C162.658 24.6626 163.087 24.6286 163.51 24.5575C164.015 24.4635 164.513 24.3352 165 24.1735V28.0367C164.355 28.2361 163.694 28.38 163.024 28.4669C162.37 28.5549 161.71 28.6013 161.049 28.6057C159.019 28.6057 157.466 28.1246 156.39 27.1623C155.314 26.1999 154.778 24.7827 154.785 22.9105ZM66.6681 9.4936C65.1876 8.22285 63.1396 7.58748 60.5241 7.58748C59.1392 7.59187 57.7598 7.76273 56.4157 8.09638C55.5404 8.31315 54.6797 8.58512 53.8387 8.91066V12.9311C54.8259 12.4676 55.8504 12.0884 56.9015 11.7976C57.7899 11.5547 58.7056 11.4257 59.6265 11.4136C61.1687 11.4136 62.3361 11.7591 63.1288 12.45C63.5322 12.8343 63.8468 13.3022 64.0506 13.8208C64.2544 14.3395 64.3424 14.8964 64.3085 15.4526V17.3448C63.4366 16.9313 62.5231 16.6118 61.5835 16.3917C60.6725 16.1865 59.7414 16.0841 58.8076 16.0864C56.4203 16.0864 54.5281 16.6277 53.1309 17.7103C52.4478 18.2857 51.9039 19.0084 51.5401 19.8241C51.1763 20.6399 51.0021 21.5274 51.0304 22.4201C51.0086 23.2675 51.1788 24.1088 51.5281 24.8812C51.8774 25.6535 52.3969 26.3368 53.0476 26.88C54.3893 28.0336 56.1181 28.6088 58.2339 28.6057C59.3319 28.6185 60.4225 28.4255 61.4494 28.0367C62.5061 27.6024 63.4726 26.9748 64.2993 26.1861V28.2634H68.8564V14.9899C68.8626 12.6211 68.1331 10.7921 66.6681 9.50286V9.4936ZM64.3085 23.7155C63.6542 24.2698 62.9028 24.6981 62.0924 24.9786C61.2581 25.2536 60.3847 25.3911 59.5062 25.3857C58.4382 25.4388 57.3817 25.1451 56.4944 24.5483C56.1352 24.3028 55.843 23.9715 55.6443 23.5845C55.4456 23.1976 55.3466 22.7671 55.3562 22.3322C55.3445 21.8588 55.441 21.3889 55.6382 20.9584C55.8354 20.5279 56.1282 20.148 56.4944 19.8477C57.2531 19.3203 58.0813 19.0566 59.5895 19.0566C60.4213 19.0508 61.2518 19.1252 62.0693 19.2787C62.8449 19.4333 63.5974 19.6868 64.3085 20.0328V23.7155Z\"\r\n fill=\"#004987\"\r\n />\r\n </g>\r\n <defs>\r\n <linearGradient\r\n id=\"paint0_linear_353_5425\"\r\n x1=\"7.54584\"\r\n y1=\"34.3843\"\r\n x2=\"33.8846\"\r\n y2=\"8.04551\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n >\r\n <stop stop-color=\"#004987\" />\r\n <stop offset=\"0.25\" stop-color=\"#004C89\" />\r\n <stop offset=\"0.44\" stop-color=\"#00568F\" />\r\n <stop offset=\"0.62\" stop-color=\"#00669A\" />\r\n <stop offset=\"0.78\" stop-color=\"#007DAA\" />\r\n <stop offset=\"0.93\" stop-color=\"#009BBD\" />\r\n <stop offset=\"1\" stop-color=\"#00ABC8\" />\r\n </linearGradient>\r\n <clipPath id=\"clip0_353_5425\">\r\n <rect width=\"165\" height=\"28.689\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n }\r\n @if (isMobile || isCollapsed()) {\r\n <svg\r\n class=\"collapsed regular-logo white-logo\"\r\n [ngClass]=\"size()\"\r\n width=\"42\"\r\n height=\"30\"\r\n viewBox=\"0 0 42 30\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"New logo Color\" clip-path=\"url(#clip0_2349_6338)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.0906C13.1314 16.6237 13.4946 17.3029 13.6419 18.0425C13.7892 18.7821 13.7138 19.5487 13.4253 20.2454C13.1368 20.9421 12.6482 21.5376 12.0212 21.9566C11.3943 22.3756 10.6571 22.5992 9.90305 22.5992C9.14898 22.5992 8.41184 22.3756 7.78487 21.9566C7.15791 21.5376 6.66928 20.9421 6.3808 20.2454C6.09232 19.5487 6.01695 18.7821 6.16421 18.0425C6.31147 17.3029 6.67475 16.6237 7.20811 16.0906C7.56177 15.7363 7.98185 15.4552 8.44428 15.2634C8.90671 15.0716 9.40242 14.9728 9.90305 14.9728C10.4037 14.9728 10.8994 15.0716 11.3618 15.2634C11.8243 15.4552 12.2443 15.7363 12.598 16.0906ZM19.8477 8.84549C19.2638 8.26724 18.5218 7.87469 17.7152 7.71732C16.9086 7.55996 16.0735 7.64479 15.315 7.96113C14.5566 8.27748 13.9087 8.81119 13.4529 9.49505C12.9972 10.1789 12.754 10.9823 12.754 11.8041C12.754 12.6259 12.9972 13.4294 13.4529 14.1132C13.9087 14.7971 14.5566 15.3308 15.315 15.6471C16.0735 15.9635 16.9086 16.0483 17.7152 15.891C18.5218 15.7336 19.2638 15.341 19.8477 14.7628C20.2387 14.3756 20.5491 13.9148 20.7609 13.407C20.9727 12.8991 21.0817 12.3544 21.0817 11.8041C21.0817 11.2539 20.9727 10.7091 20.7609 10.2013C20.5491 9.69348 20.2387 9.23266 19.8477 8.84549ZM27.2502 8.17927C27.9143 7.51461 28.3664 6.66798 28.5494 5.7464C28.7324 4.82482 28.6381 3.86967 28.2784 3.00169C27.9186 2.13371 27.3096 1.39187 26.5284 0.869949C25.7471 0.348029 24.8286 0.069458 23.889 0.069458C22.9494 0.069458 22.0309 0.348029 21.2497 0.869949C20.4684 1.39187 19.8594 2.13371 19.4996 3.00169C19.1399 3.86967 19.0456 4.82482 19.2286 5.7464C19.4116 6.66798 19.8637 7.51461 20.5278 8.17927C21.4177 9.06667 22.6231 9.56499 23.8798 9.56499C25.1364 9.56499 26.3418 9.06667 27.2317 8.17927H27.2502ZM14.9436 23.8446C14.5635 24.2252 14.3047 24.7099 14.1999 25.2376C14.0952 25.7652 14.1492 26.312 14.3552 26.809C14.5612 27.3059 14.9099 27.7305 15.3572 28.0293C15.8045 28.3281 16.3304 28.4876 16.8683 28.4876C17.4062 28.4876 17.932 28.3281 18.3793 28.0293C18.8266 27.7305 19.1753 27.3059 19.3813 26.809C19.5873 26.312 19.6413 25.7652 19.5366 25.2376C19.4319 24.7099 19.1731 24.2252 18.7929 23.8446C18.2815 23.3361 17.5895 23.0506 16.8683 23.0506C16.147 23.0506 15.4551 23.3361 14.9436 23.8446ZM21.157 16.0906C20.6237 16.6237 20.2604 17.3029 20.1131 18.0425C19.9659 18.7821 20.0413 19.5487 20.3297 20.2454C20.6182 20.9421 21.1068 21.5376 21.7338 21.9566C22.3608 22.3756 23.0979 22.5992 23.852 22.5992C24.6061 22.5992 25.3432 22.3756 25.9702 21.9566C26.5971 21.5376 27.0858 20.9421 27.3743 20.2454C27.6627 19.5487 27.7381 18.7821 27.5908 18.0425C27.4436 17.3029 27.0803 16.6237 26.5469 16.0906C25.8322 15.3829 24.8671 14.9858 23.8612 14.9858C22.8554 14.9858 21.8903 15.3829 21.1756 16.0906H21.157ZM33.7967 8.84549C33.2128 8.26724 32.4708 7.87469 31.6642 7.71732C30.8576 7.55996 30.0225 7.64479 29.264 7.96113C28.5055 8.27748 27.8576 8.81119 27.4019 9.49505C26.9461 10.1789 26.703 10.9823 26.703 11.8041C26.703 12.6259 26.9461 13.4294 27.4019 14.1132C27.8576 14.7971 28.5055 15.3308 29.264 15.6471C30.0225 15.9635 30.8576 16.0483 31.6642 15.891C32.4708 15.7336 33.2128 15.341 33.7967 14.7628C34.1889 14.3768 34.5007 13.917 34.7141 13.4098C34.9275 12.9027 35.0382 12.3582 35.0399 11.808C35.0417 11.2578 34.9343 10.7127 34.7241 10.2042C34.5139 9.69567 34.205 9.23388 33.8152 8.84549H33.7967ZM0.795762 23.8446C0.415598 24.2252 0.156793 24.7099 0.0520611 25.2376C-0.0526711 25.7652 0.00137099 26.312 0.207356 26.809C0.413341 27.3059 0.762022 27.7305 1.20932 28.0293C1.65663 28.3281 2.18247 28.4876 2.72039 28.4876C3.25831 28.4876 3.78416 28.3281 4.23146 28.0293C4.67876 27.7305 5.02744 27.3059 5.23343 26.809C5.43941 26.312 5.49345 25.7652 5.38872 25.2376C5.28399 24.7099 5.02519 24.2252 4.64502 23.8446C4.39238 23.5917 4.09235 23.3911 3.76211 23.2542C3.43187 23.1173 3.07788 23.0468 2.72039 23.0468C2.3629 23.0468 2.00892 23.1173 1.67868 23.2542C1.34843 23.3911 1.04841 23.5917 0.795762 23.8446ZM40.5375 16.0906C40.0044 15.5572 39.3252 15.194 38.5856 15.0467C37.8461 14.8994 37.0794 14.9748 36.3827 15.2633C35.686 15.5518 35.0905 16.0404 34.6715 16.6674C34.2525 17.2943 34.0289 18.0315 34.0289 18.7855C34.0289 19.5396 34.2525 20.2768 34.6715 20.9037C35.0905 21.5307 35.686 22.0193 36.3827 22.3078C37.0794 22.5963 37.8461 22.6717 38.5856 22.5244C39.3252 22.3771 40.0044 22.0139 40.5375 21.4805C41.2509 20.765 41.6515 19.7959 41.6515 18.7855C41.6515 17.7752 41.2509 16.8061 40.5375 16.0906Z\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2349_6338\">\r\n <rect width=\"42\" height=\"29\" fill=\"white\" transform=\"translate(0 0.0703125)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n } @else {\r\n <svg\r\n [ngClass]=\"size()\"\r\n class=\"regular-logo white-logo\"\r\n width=\"165\"\r\n height=\"29\"\r\n viewBox=\"0 0 165 29\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"Ascent Logo\" clip-path=\"url(#clip0_2238_42055)\">\r\n <path\r\n id=\"Vector\"\r\n d=\"M12.598 16.0203C13.1314 16.5534 13.4946 17.2326 13.6419 17.9722C13.7892 18.7117 13.7138 19.4784 13.4253 20.1751C13.1368 20.8718 12.6482 21.4673 12.0212 21.8863C11.3943 22.3053 10.6571 22.5289 9.90305 22.5289C9.14898 22.5289 8.41184 22.3053 7.78487 21.8863C7.15791 21.4673 6.66928 20.8718 6.3808 20.1751C6.09232 19.4784 6.01695 18.7117 6.16421 17.9722C6.31147 17.2326 6.67475 16.5534 7.20811 16.0203C7.56177 15.6659 7.98185 15.3849 8.44428 15.1931C8.90671 15.0013 9.40242 14.9025 9.90305 14.9025C10.4037 14.9025 10.8994 15.0013 11.3618 15.1931C11.8243 15.3849 12.2443 15.6659 12.598 16.0203ZM19.8477 8.77518C19.2638 8.19692 18.5218 7.80438 17.7152 7.64701C16.9086 7.48964 16.0735 7.57447 15.315 7.89082C14.5566 8.20716 13.9087 8.74088 13.4529 9.42474C12.9972 10.1086 12.754 10.912 12.754 11.7338C12.754 12.5556 12.9972 13.3591 13.4529 14.0429C13.9087 14.7268 14.5566 15.2605 15.315 15.5768C16.0735 15.8932 16.9086 15.978 17.7152 15.8206C18.5218 15.6633 19.2638 15.2707 19.8477 14.6925C20.2387 14.3053 20.5491 13.8445 20.7609 13.3367C20.9727 12.8288 21.0817 12.284 21.0817 11.7338C21.0817 11.1836 20.9727 10.6388 20.7609 10.131C20.5491 9.62316 20.2387 9.16234 19.8477 8.77518ZM27.2502 8.10896C27.9143 7.4443 28.3664 6.59766 28.5494 5.67608C28.7324 4.75451 28.6381 3.79936 28.2784 2.93138C27.9186 2.0634 27.3096 1.32156 26.5284 0.799636C25.7471 0.277717 24.8286 -0.000854492 23.889 -0.000854492C22.9494 -0.000854492 22.0309 0.277717 21.2497 0.799636C20.4684 1.32156 19.8594 2.0634 19.4996 2.93138C19.1399 3.79936 19.0456 4.75451 19.2286 5.67608C19.4116 6.59766 19.8637 7.4443 20.5278 8.10896C21.4177 8.99635 22.6231 9.49468 23.8798 9.49468C25.1364 9.49468 26.3418 8.99635 27.2317 8.10896H27.2502ZM14.9436 23.7743C14.5635 24.1549 14.3047 24.6396 14.1999 25.1672C14.0952 25.6949 14.1492 26.2417 14.3552 26.7386C14.5612 27.2356 14.9099 27.6602 15.3572 27.959C15.8045 28.2578 16.3304 28.4173 16.8683 28.4173C17.4062 28.4173 17.932 28.2578 18.3793 27.959C18.8266 27.6602 19.1753 27.2356 19.3813 26.7386C19.5873 26.2417 19.6413 25.6949 19.5366 25.1672C19.4319 24.6396 19.1731 24.1549 18.7929 23.7743C18.2815 23.2658 17.5895 22.9803 16.8683 22.9803C16.147 22.9803 15.4551 23.2658 14.9436 23.7743ZM21.157 16.0203C20.6237 16.5534 20.2604 17.2326 20.1131 17.9722C19.9659 18.7117 20.0413 19.4784 20.3297 20.1751C20.6182 20.8718 21.1068 21.4673 21.7338 21.8863C22.3608 22.3053 23.0979 22.5289 23.852 22.5289C24.6061 22.5289 25.3432 22.3053 25.9702 21.8863C26.5971 21.4673 27.0858 20.8718 27.3743 20.1751C27.6627 19.4784 27.7381 18.7117 27.5908 17.9722C27.4436 17.2326 27.0803 16.5534 26.5469 16.0203C25.8322 15.3126 24.8671 14.9155 23.8612 14.9155C22.8554 14.9155 21.8903 15.3126 21.1756 16.0203H21.157ZM33.7967 8.77518C33.2128 8.19692 32.4708 7.80438 31.6642 7.64701C30.8576 7.48964 30.0225 7.57447 29.264 7.89082C28.5055 8.20716 27.8576 8.74088 27.4019 9.42474C26.9461 10.1086 26.703 10.912 26.703 11.7338C26.703 12.5556 26.9461 13.3591 27.4019 14.0429C27.8576 14.7268 28.5055 15.2605 29.264 15.5768C30.0225 15.8932 30.8576 15.978 31.6642 15.8206C32.4708 15.6633 33.2128 15.2707 33.7967 14.6925C34.1889 14.3065 34.5007 13.8467 34.7141 13.3395C34.9275 12.8323 35.0382 12.2879 35.0399 11.7377C35.0417 11.1874 34.9343 10.6423 34.7241 10.1338C34.5139 9.62535 34.205 9.16356 33.8152 8.77518H33.7967ZM0.795762 23.7743C0.415598 24.1549 0.156793 24.6396 0.0520611 25.1672C-0.0526711 25.6949 0.00137099 26.2417 0.207356 26.7386C0.413341 27.2356 0.762022 27.6602 1.20932 27.959C1.65663 28.2578 2.18247 28.4173 2.72039 28.4173C3.25831 28.4173 3.78416 28.2578 4.23146 27.959C4.67876 27.6602 5.02744 27.2356 5.23343 26.7386C5.43941 26.2417 5.49345 25.6949 5.38872 25.1672C5.28399 24.6396 5.02519 24.1549 4.64502 23.7743C4.39238 23.5214 4.09235 23.3208 3.76211 23.1839C3.43187 23.047 3.07788 22.9765 2.72039 22.9765C2.3629 22.9765 2.00892 23.047 1.67868 23.1839C1.34843 23.3208 1.04841 23.5214 0.795762 23.7743ZM40.5375 16.0203C40.0044 15.4869 39.3252 15.1236 38.5856 14.9764C37.8461 14.8291 37.0794 14.9045 36.3827 15.193C35.686 15.4814 35.0905 15.9701 34.6715 16.597C34.2525 17.224 34.0289 17.9612 34.0289 18.7152C34.0289 19.4693 34.2525 20.2065 34.6715 20.8334C35.0905 21.4604 35.686 21.949 36.3827 22.2375C37.0794 22.526 37.8461 22.6013 38.5856 22.4541C39.3252 22.3068 40.0044 21.9435 40.5375 21.4102C41.2509 20.6947 41.6515 19.7256 41.6515 18.7152C41.6515 17.7049 41.2509 16.7358 40.5375 16.0203Z\"\r\n fill=\"white\"\r\n />\r\n <path\r\n id=\"Vector_2\"\r\n d=\"M71.0956 25.9164L73.2562 22.8213C74.352 23.5461 75.5251 24.1466 76.7539 24.6117C77.7336 24.963 78.7665 25.143 79.8074 25.1438C80.8503 25.1919 81.884 24.9294 82.7776 24.3896C83.1242 24.1895 83.412 23.9015 83.6118 23.5546C83.8116 23.2078 83.9164 22.8144 83.9157 22.4141C83.9268 22.1315 83.8719 21.8502 83.7555 21.5924C83.639 21.3347 83.4642 21.1075 83.2449 20.929C82.6082 20.4865 81.8757 20.2011 81.1074 20.0962L77.4849 19.4855C75.5325 19.1339 74.0612 18.4893 73.0712 17.5516C72.5741 17.0762 72.1845 16.5 71.9284 15.8617C71.6722 15.2233 71.5555 14.5376 71.586 13.8504C71.5595 12.9699 71.7429 12.0958 72.121 11.3001C72.4991 10.5045 73.0611 9.81028 73.7605 9.2748C75.2132 8.12126 77.1194 7.54449 79.4789 7.54449C80.8634 7.54192 82.2409 7.73984 83.5687 8.13207C84.9587 8.56065 86.2811 9.18369 87.4966 9.98267L85.3407 12.9945C84.3808 12.3619 83.3396 11.8623 82.2455 11.5094C81.2587 11.2008 80.2306 11.0448 79.1967 11.0468C78.3047 11.0039 77.4198 11.2243 76.6521 11.6806C76.3506 11.8643 76.1031 12.1247 75.9349 12.4351C75.7667 12.7456 75.6837 13.095 75.6944 13.4479C75.6752 13.7252 75.7227 14.0031 75.833 14.2583C75.9433 14.5135 76.1131 14.7385 76.3282 14.9145C77.0137 15.3374 77.7851 15.6014 78.586 15.6872L82.1669 16.3719C84.2025 16.7513 85.7108 17.4175 86.7055 18.3659C87.1989 18.8441 87.5862 19.4207 87.8421 20.0584C88.098 20.6961 88.2167 21.3805 88.1906 22.0671C88.1981 22.9658 87.9886 23.853 87.5799 24.6534C87.1532 25.4753 86.5571 26.1974 85.8311 26.7723C85.0386 27.3887 84.1424 27.8587 83.1847 28.1602C82.1274 28.505 81.0213 28.6769 79.9092 28.6692C78.2476 28.6847 76.5935 28.4444 75.005 27.9567C73.5821 27.5361 72.2544 26.8432 71.0956 25.9164ZM100.641 24.6117C101.587 24.618 102.523 24.4241 103.389 24.0427C104.235 23.6676 104.981 23.0967 105.563 22.3771L108.339 25.153C107.361 26.2602 106.153 27.1412 104.8 27.7346C103.407 28.3692 101.894 28.6959 100.363 28.6923C98.9721 28.7003 97.5944 28.4232 96.3148 27.878C95.0842 27.3582 93.9703 26.5968 93.0392 25.6388C92.1011 24.6655 91.3625 23.5182 90.8647 22.2614C90.3283 20.9393 90.0578 19.5243 90.069 18.0976C90.0587 16.6814 90.3292 15.2772 90.8647 13.9661C91.3577 12.7244 92.0937 11.5937 93.0296 10.6403C93.9655 9.6869 95.0824 8.93009 96.3148 8.41428C97.5937 7.86683 98.9719 7.5896 100.363 7.60001C101.907 7.59334 103.436 7.89699 104.86 8.49292C106.244 9.06069 107.488 9.92264 108.506 11.019L105.656 13.9892C105.001 13.2449 104.203 12.6393 103.31 12.208C102.442 11.8003 101.493 11.5916 100.534 11.5973C99.7439 11.5885 98.9613 11.7534 98.2418 12.0803C97.5222 12.4073 96.8833 12.8884 96.3703 13.4896C95.2698 14.7799 94.6653 16.4202 94.6653 18.1161C94.6653 19.812 95.2698 21.4523 96.3703 22.7426C96.904 23.3451 97.5624 23.8243 98.2998 24.147C99.0371 24.4698 99.8358 24.6283 100.641 24.6117ZM127.581 25.6712C126.445 26.635 125.159 27.4056 123.773 27.9521C122.398 28.4538 120.943 28.7015 119.48 28.683C118.083 28.6902 116.699 28.4132 115.413 27.8688C114.168 27.3529 113.041 26.5895 112.1 25.6249C110.161 23.5996 109.082 20.9017 109.089 18.0976C109.079 16.6748 109.334 15.2626 109.843 13.9337C110.313 12.6966 111.018 11.5622 111.92 10.5934C112.837 9.62969 113.942 8.86497 115.167 8.34682C116.392 7.82866 117.71 7.56815 119.04 7.58151C120.334 7.56689 121.616 7.82366 122.804 8.33527C123.992 8.84688 125.06 9.60194 125.938 10.5517C126.817 11.5172 127.5 12.6437 127.951 13.869C128.45 15.2159 128.698 16.6428 128.682 18.0791V19.2218H113.623C113.806 20.7549 114.535 22.1707 115.677 23.2099C116.77 24.2428 118.221 24.8116 119.725 24.7968C120.651 24.8002 121.57 24.6274 122.431 24.2878C123.236 23.9848 123.965 23.5113 124.569 22.8999L127.581 25.6712ZM118.994 11.3059C118.354 11.294 117.717 11.4108 117.123 11.6492C116.529 11.8876 115.988 12.2428 115.533 12.6938C114.536 13.6975 113.887 14.9949 113.683 16.395H124.324C124.107 15.0096 123.459 13.7276 122.473 12.7308C122.019 12.2706 121.477 11.9072 120.879 11.6622C120.281 11.4173 119.64 11.2961 118.994 11.3059ZM131.337 28.2759V7.88685H135.936V11.2272C136.622 10.1019 137.575 9.16403 138.712 8.49755C139.842 7.86651 141.119 7.54718 142.413 7.57225C143.355 7.54099 144.292 7.70768 145.164 8.06153C146.037 8.41538 146.826 8.94851 147.479 9.62642C148.138 10.324 148.651 11.1453 148.989 12.0428C149.327 12.9402 149.484 13.8959 149.45 14.8544V28.2713H144.852V16.1498C144.91 14.8583 144.475 13.5929 143.635 12.6105C143.225 12.1641 142.723 11.8123 142.164 11.5798C141.605 11.3472 141.001 11.2396 140.396 11.2642C139.521 11.2526 138.658 11.4711 137.893 11.8981C137.118 12.3447 136.457 12.9637 135.959 13.707V28.2759H131.337ZM154.785 22.9045V11.5511H150.672V7.88685H154.785V4.70844L159.383 1.29407V7.88685H164.121V11.5511H159.383V21.8867C159.383 22.8922 159.599 23.6047 160.031 24.0241C160.463 24.4436 161.195 24.6534 162.229 24.6534C162.658 24.6567 163.087 24.6226 163.51 24.5516C164.015 24.4575 164.513 24.3292 165 24.1676V28.0307C164.355 28.2301 163.694 28.3741 163.024 28.461C162.37 28.549 161.71 28.5953 161.049 28.5998C159.019 28.5998 157.466 28.1186 156.39 27.1563C155.314 26.194 154.778 24.7767 154.785 22.9045ZM66.6681 9.48763C65.1876 8.21689 63.1396 7.58151 60.5241 7.58151C59.1392 7.58591 57.7598 7.75676 56.4157 8.09042C55.5404 8.30719 54.6797 8.57916 53.8387 8.90469V12.9251C54.8259 12.4616 55.8504 12.0824 56.9015 11.7916C57.7899 11.5487 58.7056 11.4197 59.6265 11.4076C61.1687 11.4076 62.3361 11.7531 63.1288 12.444C63.5322 12.8284 63.8468 13.2962 64.0506 13.8149C64.2544 14.3335 64.3424 14.8904 64.3085 15.4466V17.3388C63.4366 16.9253 62.5231 16.6058 61.5835 16.3858C60.6725 16.1806 59.7414 16.0781 58.8076 16.0804C56.4203 16.0804 54.5281 16.6217 53.1309 17.7043C52.4478 18.2797 51.9039 19.0025 51.5401 19.8182C51.1763 20.6339 51.0021 21.5214 51.0304 22.4141C51.0086 23.2615 51.1788 24.1029 51.5281 24.8752C51.8774 25.6475 52.3969 26.3309 53.0476 26.8741C54.3893 28.0276 56.1181 28.6028 58.2339 28.5998C59.3319 28.6126 60.4225 28.4196 61.4494 28.0307C62.5061 27.5964 63.4726 26.9688 64.2993 26.1801V28.2574H68.8564V14.9839C68.8626 12.6152 68.1331 10.7862 66.6681 9.4969V9.48763ZM64.3085 23.7095C63.6542 24.2639 62.9028 24.6921 62.0924 24.9726C61.2581 25.2476 60.3847 25.3851 59.5062 25.3797C58.4382 25.4329 57.3817 25.1391 56.4944 24.5423C56.1352 24.2968 55.843 23.9655 55.6443 23.5786C55.4456 23.1916 55.3466 22.7611 55.3562 22.3262C55.3445 21.8528 55.441 21.383 55.6382 20.9525C55.8354 20.5219 56.1282 20.1421 56.4944 19.8418C57.2531 19.3144 58.0813 19.0506 59.5895 19.0506C60.4213 19.0449 61.2518 19.1193 62.0693 19.2727C62.8449 19.4274 63.5974 19.6808 64.3085 20.0268V23.7095Z\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2238_42055\">\r\n <rect width=\"165\" height=\"28.689\" fill=\"white\" transform=\"translate(0 -0.00598145)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n }\r\n </picture>\r\n}\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsAscentLogoComponent } from './ascent-logo.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, NgOptimizedImage],\r\n exports: [AdsAscentLogoComponent],\r\n declarations: [AdsAscentLogoComponent],\r\n})\r\nexport class AdsAscentLogoModule {}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive()\r\nexport abstract class AbstractApplicationLogoComponent {\r\n /** @ignore */\r\n abstract readonly label: string;\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractApplicationLogoComponent } from './abstract-application-logo.component';\r\n\r\n@Component({\r\n selector: 'ads-scms-logo',\r\n styleUrls: ['application-logo.component.scss', 'scms-logo.component.scss'],\r\n templateUrl: 'scms-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsScmsLogoComponent extends AbstractApplicationLogoComponent {\r\n label = 'SCMS';\r\n}\r\n","<div class=\"logo-container\">\r\n <ads-ascent-logo [isCollapsed]=\"true\" />\r\n <ads-ascent-logo class=\"inverted\" [isCollapsed]=\"true\" [invertTheme]=\"true\" />\r\n <span class=\"title text-4xl-semibold\">{{ label }}</span>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsScmsLogoComponent } from './scms-logo.component';\r\nimport { AdsAscentLogoModule } from '../ascent-logo';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsAscentLogoModule],\r\n exports: [AdsScmsLogoComponent],\r\n declarations: [AdsScmsLogoComponent],\r\n})\r\nexport class AdsScmsLogoModule {}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractApplicationLogoComponent } from '../scms-logo/abstract-application-logo.component';\r\n\r\n@Component({\r\n selector: 'ads-generic-logo',\r\n styleUrls: ['../scms-logo/application-logo.component.scss', '../scms-logo/scms-logo.component.scss'],\r\n templateUrl: 'generic-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsGenericLogoComponent extends AbstractApplicationLogoComponent {\r\n label = 'GENERIC';\r\n}\r\n","<div class=\"logo-container\">\r\n <ads-ascent-logo [isCollapsed]=\"true\" />\r\n <ads-ascent-logo class=\"inverted\" [isCollapsed]=\"true\" [invertTheme]=\"true\" />\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsGenericLogoComponent } from './generic-logo.component';\r\nimport { AdsAscentLogoModule } from '../ascent-logo';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsAscentLogoModule],\r\n exports: [AdsGenericLogoComponent],\r\n declarations: [AdsGenericLogoComponent],\r\n})\r\nexport class AdsGenericLogoModule {}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractApplicationLogoComponent } from '../scms-logo/abstract-application-logo.component';\r\n\r\n@Component({\r\n selector: 'ads-peak-marketplace-logo',\r\n styleUrls: ['../scms-logo/application-logo.component.scss', 'peak-marketplace-logo.component.scss'],\r\n templateUrl: 'peak-marketplace-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsPeakMarketplaceLogoComponent extends AbstractApplicationLogoComponent {\r\n label = 'marketplace';\r\n}\r\n","<div class=\"logo-container\">\r\n <div class=\"logo-sub-container\">\r\n <ads-primary-logo [isCollapsed]=\"false\" [mobileWidth]=\"0\" />\r\n <span class=\"title\">{{ label }}</span>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsPeakMarketplaceLogoComponent } from './peak-marketplace-logo.component';\r\nimport { AdsPrimaryLogoModule } from '../primary-logo';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsPrimaryLogoModule],\r\n exports: [AdsPeakMarketplaceLogoComponent],\r\n declarations: [AdsPeakMarketplaceLogoComponent],\r\n})\r\nexport class AdsPeakMarketplaceLogoModule {}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractApplicationLogoComponent } from '../scms-logo/abstract-application-logo.component';\r\n\r\n@Component({\r\n selector: 'ads-peak-essentials-logo',\r\n styleUrls: [\r\n '../scms-logo/application-logo.component.scss',\r\n '../peak-marketplace-logo/peak-marketplace-logo.component.scss',\r\n ],\r\n templateUrl: '../peak-marketplace-logo/peak-marketplace-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsPeakEssentialsLogoComponent extends AbstractApplicationLogoComponent {\r\n label = 'essentials';\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsPeakEssentialsLogoComponent } from './peak-essentials-logo.component';\r\nimport { AdsPrimaryLogoModule } from '../primary-logo';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsPrimaryLogoModule],\r\n exports: [AdsPeakEssentialsLogoComponent],\r\n declarations: [AdsPeakEssentialsLogoComponent],\r\n})\r\nexport class AdsPeakEssentialsLogoModule {}\r\n","import { Component } from '@angular/core';\r\nimport { AbstractApplicationLogoComponent } from '../scms-logo/abstract-application-logo.component';\r\n\r\n@Component({\r\n selector: 'ads-peak-order-management-logo',\r\n styleUrls: [\r\n '../scms-logo/application-logo.component.scss',\r\n '../peak-marketplace-logo/peak-marketplace-logo.component.scss',\r\n 'peak-order-management-logo.component.scss',\r\n ],\r\n templateUrl: '../peak-marketplace-logo/peak-marketplace-logo.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsPeakOrderManagementLogoComponent extends AbstractApplicationLogoComponent {\r\n label = 'order management';\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsPeakOrderManagementLogoComponent } from './peak-order-management-logo.component';\r\nimport { AdsPrimaryLogoModule } from '../primary-logo';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsPrimaryLogoModule],\r\n exports: [AdsPeakOrderManagementLogoComponent],\r\n declarations: [AdsPeakOrderManagementLogoComponent],\r\n})\r\nexport class AdsPeakOrderManagementLogoModule {}\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconSortDescending } from '@ascentgl/ads-icons/icons';\r\n\r\ntype Theme = 'primary' | 'success' | 'medium';\r\n\r\n@Component({\r\n selector: 'ads-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsProgressBarComponent implements OnChanges {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register(adsIconSortDescending);\r\n }\r\n\r\n /**\r\n * The unique ID for the progress bar\r\n */\r\n @Input() id!: string;\r\n\r\n /**\r\n * Whether or not the progress bar is disabled\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Aria label for the progress element\r\n */\r\n @Input() ariaLabel!: string;\r\n\r\n /**\r\n * The max value of the progress bar\r\n */\r\n @Input() max = 100;\r\n\r\n /**\r\n * The value of the progress bar\r\n */\r\n @Input() value = 0;\r\n\r\n /**\r\n * @ignore\r\n * Only show the marker if the bar has progress and is not completed\r\n */\r\n get showMarker(): boolean {\r\n return this.value > 0 && this.value < this.max;\r\n }\r\n\r\n /** @ignore */\r\n public color: Theme = 'primary';\r\n\r\n /** @ignore */\r\n public markerPosition!: string;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.value > this.max) {\r\n console.warn(\r\n `The current value (${this.value}) of the progress bar is greater than the max (${this.max}). Did you forget to add the 'max' attribute?`,\r\n );\r\n }\r\n\r\n if (changes.value || changes.max) {\r\n this.color = this.getColor(this.value, this.max, this.disabled);\r\n this.markerPosition = this.getMarkerPosition(this.value, this.max);\r\n }\r\n\r\n if (changes.disabled) {\r\n this.color = this.getColor(this.value, this.max, this.disabled);\r\n }\r\n\r\n if (changes.ariaLabel) {\r\n this.ariaLabel = this.getLabel(this.max);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private getColor(value: number, max: number, disabled: boolean): Theme {\r\n return disabled ? 'medium' : value >= max ? 'success' : 'primary';\r\n }\r\n\r\n /** @ignore */\r\n private getLabel(max: number): string {\r\n return this.ariaLabel ?? `A bounded progress bar from 0 to ${max}`;\r\n }\r\n\r\n /** @ignore */\r\n private getMarkerPosition(value: number, max: number): string {\r\n return `calc(${(value / max) * 100}% + 5.5px)`;\r\n }\r\n}\r\n","<div class=\"progress-container\" [ngClass]=\"color\" [class.completed]=\"value >= max\">\r\n <div class=\"progress-marker\" [ngStyle]=\"{ width: markerPosition }\">\r\n @if(showMarker) {\r\n <ads-icon name=\"sort_descending\" size=\"xxxs\"/>\r\n }\r\n </div>\r\n <progress\r\n role=\"progressbar\"\r\n aria-valuemin=\"0\"\r\n [attr.aria-valuemax]=\"max\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [value]=\"value\"\r\n [max]=\"max\"\r\n [id]=\"id\"\r\n ></progress>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsProgressBarComponent } from './progress-bar.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdsIconModule],\r\n declarations: [AdsProgressBarComponent],\r\n exports: [AdsProgressBarComponent],\r\n})\r\nexport class AdsProgressBarModule {}\r\n","import { ChangeDetectorRef, Component, ElementRef, HostListener, Input, OnInit } from '@angular/core';\r\nimport { DomHelper, GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\n\r\nexport enum SpinnerSize {\r\n xSmall = 'x-small',\r\n small = 'small',\r\n normal = 'normal',\r\n}\r\n\r\n@Component({\r\n selector: 'ads-progress-spinner',\r\n templateUrl: './progress-spinner.component.html',\r\n styleUrls: ['./progress-spinner.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsProgressSpinnerComponent implements OnInit {\r\n /** set spinner z-index */\r\n @Input() zIndex = 1;\r\n\r\n /** set spinner scrollContainer. This is useful when the spinner is inside dialog window **/\r\n @Input() scrollContainer: HTMLElement | 'auto' | 'none' = 'none';\r\n\r\n /** set spinner size */\r\n @Input() size: SpinnerSize = SpinnerSize.normal;\r\n\r\n /** set spinner diameter (overrides \"size\") */\r\n @Input() diameter?: number;\r\n\r\n computedDiameter = 100;\r\n isSticky = false;\r\n computedStyles?: CSSStyleDeclaration;\r\n\r\n private readonly sizes = {\r\n [SpinnerSize.xSmall]: 50,\r\n [SpinnerSize.small]: 70,\r\n [SpinnerSize.normal]: 100,\r\n };\r\n\r\n constructor(\r\n protected ref: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n ) {}\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n let scrollContainer: HTMLElement | Window | 'auto' | 'none' = this.scrollContainer;\r\n\r\n if (this.scrollContainer == 'auto') {\r\n scrollContainer = DomHelper.getScrollableParent(this.ref.nativeElement);\r\n }\r\n\r\n /**\r\n * if scroll container is HTMLElement, make spinner stick to it's dimensions\r\n */\r\n if (scrollContainer instanceof HTMLElement) {\r\n this.scrollContainer = scrollContainer;\r\n this.isSticky = true;\r\n this.computedStyles = getComputedStyle(scrollContainer);\r\n }\r\n\r\n if (this.diameter) {\r\n this.computedDiameter = this.diameter;\r\n } else {\r\n this.computedDiameter = this.sizes[this.size];\r\n }\r\n }\r\n\r\n /** @ignore */\r\n getOverlayStyles(): GENERIC_COLLECTION {\r\n const container = <HTMLElement>this.scrollContainer;\r\n\r\n const computedStyles: GENERIC_COLLECTION = this.computedStyles ?? {};\r\n\r\n /**\r\n * subtract .5px from width to avoid \"accidental\" appearance of scrollbars on resize\r\n */\r\n return {\r\n zIndex: this.zIndex,\r\n height: container.clientHeight + 'px',\r\n width: container.clientWidth - 0.5 + 'px',\r\n top: computedStyles.paddingTop ? '-' + computedStyles.paddingTop : 0,\r\n left: computedStyles.paddingLeft ? '-' + computedStyles.paddingLeft : 0,\r\n };\r\n }\r\n\r\n /**\r\n * @ignore\r\n * required for proper change detection\r\n * NOTE: REALLY REQUIRED\r\n */\r\n @HostListener('window:resize') resize(): void {\r\n /**\r\n * additional change detection allows to avoid overlay sizing issues when window is being resized\r\n */\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","@if (isSticky) {\r\n <div class=\"spinner-container\" [ngStyle]=\"{ zIndex }\">\r\n <div class=\"spinner-overlay\" [ngStyle]=\"getOverlayStyles()\">\r\n <mat-spinner [diameter]=\"computedDiameter\" aria-label=\"progress spinner\"></mat-spinner>\r\n </div>\r\n </div>\r\n} @else {\r\n <div class=\"spinner-overlay window\" [ngStyle]=\"{ zIndex }\">\r\n <mat-spinner [diameter]=\"computedDiameter\" aria-label=\"progress spinner\"></mat-spinner>\r\n </div>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsGestureModule } from '@ascentgl/ads-utils';\r\nimport { AdsProgressSpinnerComponent } from './progress-spinner.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [AdsProgressSpinnerComponent],\r\n imports: [CommonModule, AdsIconModule, AdsGestureModule, MatProgressSpinnerModule],\r\n exports: [AdsProgressSpinnerComponent],\r\n providers: [{ provide: Window, useValue: window }],\r\n})\r\nexport class AdsProgressSpinnerModule {}\r\n","export enum ProgressIndicatorSpinnerDefault {\r\n diameter = 52,\r\n padding = 11,\r\n fontSize = 20,\r\n max = 10,\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChange } from '@angular/core';\r\nimport { ProgressIndicatorSpinnerDefault } from './progress-indicator-spinner.types';\r\n\r\n@Component({\r\n selector: 'ads-progress-indicator-spinner',\r\n templateUrl: './progress-indicator-spinner.component.html',\r\n styleUrls: ['./progress-indicator-spinner.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsProgressIndicatorSpinnerComponent implements OnChanges {\r\n /** Spinner diameter in pixels. Default is 52. Cannot be less than 20 */\r\n @Input() diameter: number = ProgressIndicatorSpinnerDefault.diameter;\r\n\r\n /** Max progress value. Default is 10. Cannot be less than 0 */\r\n @Input() max: number = ProgressIndicatorSpinnerDefault.max;\r\n\r\n /** Current progress value. Cannot be less than 0 or more than \"max\"*/\r\n @Input() value = 0;\r\n\r\n /** Event emitted percentage is updated after value changes */\r\n @Output() percentageUpdated = new EventEmitter<number>();\r\n\r\n /** @ignore */\r\n percentage = 0;\r\n\r\n /** @ignore */\r\n readonly defaults: typeof ProgressIndicatorSpinnerDefault = ProgressIndicatorSpinnerDefault;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { value: SimpleChange; max: SimpleChange; diameter: SimpleChange }): void {\r\n if (changes.max) {\r\n this.calculateMax();\r\n }\r\n\r\n if (changes.value) {\r\n this.calculateValue();\r\n }\r\n\r\n if (changes.diameter) {\r\n this.calculateDiameter();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private calculateMax(): void {\r\n if (this.max < 1) {\r\n this.max = 1;\r\n }\r\n\r\n this.calculateValue();\r\n }\r\n\r\n /** @ignore */\r\n private calculateValue(): void {\r\n if (this.value < 0) {\r\n this.value = 0;\r\n }\r\n\r\n if (this.value > this.max) {\r\n this.value = this.max;\r\n }\r\n\r\n this.calculatePercentage();\r\n }\r\n\r\n /** @ignore */\r\n private calculatePercentage(): void {\r\n const newPercentage = Math.round((this.value * 100) / this.max);\r\n\r\n if (newPercentage != this.percentage) {\r\n this.percentage = newPercentage;\r\n this.percentageUpdated.emit(this.percentage);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private calculateDiameter(): void {\r\n if (this.diameter < 20) {\r\n this.diameter = 20;\r\n }\r\n }\r\n}\r\n","<!-- real padding will be calculated based on default padding and font size -->\r\n<div\r\n class=\"progress-indicator-wrapper\"\r\n [ngStyle]=\"{ padding: (diameter * defaults.padding) / defaults.diameter + 'px' }\"\r\n>\r\n <mat-spinner [mode]=\"'determinate'\" [diameter]=\"diameter\" [value]=\"percentage\"></mat-spinner>\r\n <!-- real font size is calculated based on default diameter and font size -->\r\n <div\r\n class=\"progress-value\"\r\n [ngStyle]=\"{\r\n fontSize: (diameter * defaults.fontSize) / defaults.diameter + 'px',\r\n width: diameter + 'px',\r\n height: diameter + 'px',\r\n }\"\r\n >\r\n <!-- hidden value is used to calculate visible value scale -->\r\n <span class=\"hidden-value\" #hiddenValue>{{ value }}</span>\r\n <!-- scale value only if it has more than 3 characters -->\r\n <!-- the text should not be wider than 70% of diameter -->\r\n <span\r\n class=\"visible-value\"\r\n [ngStyle]=\"{\r\n scale: hiddenValue.textContent!.length > 3 ? (this.diameter * 0.7) / hiddenValue.clientWidth : 1,\r\n }\"\r\n >{{ value }}</span\r\n >\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsProgressIndicatorSpinnerComponent } from './progress-indicator-spinner.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [AdsProgressIndicatorSpinnerComponent],\r\n imports: [CommonModule, MatProgressSpinnerModule],\r\n exports: [AdsProgressIndicatorSpinnerComponent],\r\n})\r\nexport class AdsProgressIndicatorSpinnerModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-shell-layout',\r\n templateUrl: './shell-layout.component.html',\r\n styleUrls: ['./shell-layout.component.scss'],\r\n standalone: false,\r\n})\r\nexport class ShellLayoutComponent {\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed = false;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n}\r\n","<!-- <div class=\"shell\" [class.mobile]=\"isMobile\" [class.collapsed]=\"isCollapsed\">\r\n <div class=\"shell-container\">\r\n <ng-content select=\"[navigation]\"></ng-content>\r\n <div class=\"shell-header\">\r\n <ng-content select=\"[header]\"></ng-content> \r\n <main class=\"main-content\">\r\n <ng-content></ng-content>\r\n </main>\r\n <ng-content select=\"[widgetbar]\"></ng-content>\r\n </div>\r\n </div>\r\n <ng-content select=\"[footer]\"></ng-content>\r\n</div> -->\r\n\r\n<div class=\"shell\" [class.mobile]=\"isMobile\" [class.collapsed]=\"isCollapsed\">\r\n <div class=\"container\">\r\n <ng-content select=\"[header]\"></ng-content>\r\n <main class=\"main-content\">\r\n <ng-content></ng-content>\r\n </main>\r\n <ng-content select=\"[widgetbar]\"></ng-content>\r\n </div>\r\n <ng-content select=\"[footer]\"></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ShellLayoutComponent } from './shell-layout.component';\r\n\r\n@NgModule({\r\n declarations: [ShellLayoutComponent],\r\n exports: [ShellLayoutComponent],\r\n imports: [CommonModule],\r\n})\r\nexport class AdsShellLayoutModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-splash-page',\r\n templateUrl: './splash-page.component.html',\r\n styleUrls: ['./splash-page.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsSplashPageComponent {\r\n /**\r\n * Alt text for the logo\r\n */\r\n @Input() alt!: string;\r\n\r\n /**\r\n * Logo to display\r\n */\r\n @Input() imageSrc!: string;\r\n @Input() text = 'Coming Soon';\r\n}\r\n","<div class=\"splash-page-container\">\r\n <img [src]=\"imageSrc\" [alt]=\"alt\" />\r\n <h1>{{ text }}</h1>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsSplashPageComponent } from './splash-page.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [AdsSplashPageComponent],\r\n exports: [AdsSplashPageComponent],\r\n})\r\nexport class AdsSplashPageModule {}\r\n","import { AfterViewInit, DestroyRef, Directive, inject, Input, OnChanges, SimpleChange } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport {\r\n adsIconCheckCircleFilled,\r\n adsIconWarning,\r\n adsIconVisibilityEye,\r\n adsIconVisibilityEyeNone,\r\n adsIconStatusProcessing,\r\n adsIconSearch,\r\n} from '@ascentgl/ads-icons/icons';\r\nimport { AbstractControl, FormControl, TouchedChangeEvent, Validators } from '@angular/forms';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { asapScheduler } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Directive()\r\nexport abstract class AbstractBaseComponent implements OnChanges, AfterViewInit {\r\n /** Form control, associated with input field */\r\n @Input() set control(control: AbstractControl | null) {\r\n /**\r\n * NOTE: we use setter and internal \"valueControl\" here\r\n * to allow pass children of FormGroup (which are all typed as AbstractControl instances)\r\n *\r\n */\r\n if (control instanceof FormControl) {\r\n this.valueControl = control;\r\n\r\n const subscription = this.valueControl.events\r\n .pipe(filter((event) => event instanceof TouchedChangeEvent))\r\n .subscribe((event) => {\r\n if (event.touched) {\r\n this.syncState();\r\n this.displayControl.updateValueAndValidity({ emitEvent: false });\r\n }\r\n });\r\n\r\n this.destroyRef.onDestroy(() => subscription.unsubscribe());\r\n } else {\r\n throw Error('Control must be a \"FormControl\" instance');\r\n }\r\n }\r\n\r\n /** @ignore */\r\n displayControl: FormControl = new FormControl();\r\n\r\n /** If true, invalid field will immediately become dirty to display the error */\r\n @Input() immediateValidation = false;\r\n\r\n /** Object, containing key=>value pairs for errors and their translated messages */\r\n @Input() errorMessages: GENERIC_COLLECTION<string> = {};\r\n\r\n /** Hint message, displayed under the control */\r\n @Input() hint?: string;\r\n\r\n /** Success message, displayed under the control */\r\n @Input() successMessage?: string;\r\n\r\n /** Optional \"id\" attribute for input field */\r\n @Input() id = '';\r\n\r\n /** Optional control field label */\r\n @Input() label?: string;\r\n\r\n /** @ignore */\r\n @Input() showFooter = true;\r\n\r\n /** @ignore */\r\n protected registry: AdsIconRegistry = inject(AdsIconRegistry);\r\n\r\n private destroyRef = inject(DestroyRef);\r\n\r\n /** @ignore */\r\n get required() {\r\n return this.valueControl.hasValidator(Validators.required);\r\n }\r\n\r\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\r\n @Input() width = '100%';\r\n\r\n /** @ignore */\r\n valueControl: FormControl = new FormControl();\r\n\r\n /** @ignore */\r\n protected readonly genericError: string = 'Something went wrong';\r\n\r\n /** @ignore */\r\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {};\r\n\r\n /** @ignore */\r\n protected readonly requiredErrorMessage: string = 'Field is <strong>required</strong>';\r\n\r\n constructor() {\r\n this.registry.register([\r\n adsIconWarning,\r\n adsIconWarning,\r\n adsIconCheckCircleFilled,\r\n adsIconVisibilityEye,\r\n adsIconVisibilityEyeNone,\r\n adsIconStatusProcessing,\r\n adsIconSearch,\r\n ]);\r\n }\r\n\r\n ngOnChanges(changes: { immediateValidation: SimpleChange }): void {\r\n if (changes.immediateValidation && !changes.immediateValidation.isFirstChange()) {\r\n this.ngAfterViewInit();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n this.touchInvalid(this.valueControl);\r\n }\r\n\r\n /** @ignore */\r\n displayFirstError(control: FormControl = this.valueControl): string {\r\n if (!control.errors) return this.genericError;\r\n\r\n /**\r\n * NOTE: we are showing only the first error in a row\r\n */\r\n const firstErrorKey: string = Object.keys(control.errors)[0];\r\n\r\n /**\r\n * merge defaultErrorMessages, required error messages (which is always available)\r\n * and configured errorMessages\r\n */\r\n const errorMessages: GENERIC_COLLECTION<string> = {\r\n ...this.defaultErrorMessages,\r\n ...{ required: this.requiredErrorMessage },\r\n ...this.errorMessages,\r\n };\r\n\r\n if (typeof errorMessages[firstErrorKey] === 'string') {\r\n return errorMessages[firstErrorKey];\r\n } else {\r\n console.warn(`No translation for error ${firstErrorKey}`);\r\n return `${this.genericError} (${firstErrorKey})`;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected touchInvalid(control: FormControl): void {\r\n if (this.immediateValidation) {\r\n asapScheduler.schedule(() => control.markAsTouched({ onlySelf: true }));\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected syncState(): void {\r\n if (this.displayControl.disabled !== this.valueControl.disabled) {\r\n if (this.valueControl.disabled) {\r\n this.displayControl.disable();\r\n } else {\r\n this.displayControl.enable();\r\n }\r\n }\r\n\r\n if (this.valueControl.pristine) {\r\n this.displayControl.markAsPristine();\r\n }\r\n\r\n if (this.valueControl.untouched) {\r\n /**\r\n * if displayControl is touched and contains invalid value - clear it up before marking it as untouched\r\n * NOTE: this is required to properly reset displayControl when valueControl is reset\r\n */\r\n if (this.displayControl.touched && this.displayControl.invalid) {\r\n this.displayControl.setValue(null, { emitEvent: false });\r\n }\r\n this.displayControl.markAsUntouched();\r\n } else if (this.displayControl.untouched) {\r\n this.displayControl.markAsTouched();\r\n }\r\n\r\n if (this.valueControl.valid !== this.displayControl.valid) {\r\n this.displayControl.setErrors(this.valueControl.errors);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n canShowError(): boolean {\r\n return !!this.valueControl.errors && (this.valueControl.touched || this.immediateValidation);\r\n }\r\n\r\n /** @ignore */\r\n canShowSuccess(): boolean {\r\n return !this.valueControl.errors && this.valueControl.touched && !!this.successMessage;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { AbstractBaseComponent } from './abstract.base.component';\r\n\r\nexport type FieldSize = 'base' | 'xs';\r\n\r\n@Directive()\r\nexport abstract class AbstractInputComponent extends AbstractBaseComponent {\r\n @Input() showExclamationOnError = false;\r\n\r\n /** If true, clear button will appear in the input if it is not empty */\r\n @Input() showClearButton = false;\r\n\r\n /** Tooltip message, displayed over tooltip icon */\r\n @Input() tooltip?: string;\r\n\r\n /** Empty input field placeholder */\r\n @Input() placeholder = '';\r\n\r\n /** Whether the Input is a smaller version */\r\n @Input() size: FieldSize = 'base';\r\n\r\n /** Href for the Tooltip */\r\n @Input() tooltipHref?: string;\r\n\r\n /** @ignore */\r\n get showExclamation() {\r\n return this.showExclamationOnError && this.valueControl.invalid && this.valueControl.touched;\r\n }\r\n\r\n /** @ignore */\r\n get canClear() {\r\n return this.showClearButton && !!this.valueControl.value;\r\n }\r\n\r\n /** @ignore */\r\n clear(event: MouseEvent): void {\r\n this.valueControl.setValue(null);\r\n\r\n this.valueControl.markAsTouched();\r\n\r\n /**\r\n * stop even propagation so that calendar won't open on \"clear\" button click\r\n */\r\n event.stopPropagation();\r\n }\r\n\r\n /** @ignore */\r\n get smallSize(): boolean {\r\n return this.size === 'xs';\r\n }\r\n}\r\n","import { Directive, Input, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractInputComponent } from './abstract.input.component';\r\nimport { GENERIC_COLLECTION, ObjectHelper } from '@ascentgl/ads-utils';\r\n\r\nexport type DropdownComponentOption = string | number | GENERIC_COLLECTION | null | boolean;\r\n\r\nexport type DropdownComponentOptions =\r\n | DropdownComponentOption[]\r\n | GENERIC_COLLECTION<DropdownComponentOption>\r\n | Map<DropdownComponentOption, DropdownComponentOption>;\r\n\r\nexport type DropdownComponentDisplayedOptions = Map<DropdownComponentOption, string>;\r\n\r\n@Directive()\r\nexport abstract class AbstractDropdownComponent extends AbstractInputComponent implements OnDestroy {\r\n /** If options contain objects, provide object property name that will be used as display value in dropdown */\r\n @Input() displayValueKey?: string;\r\n\r\n /** Enable/disable options sorting */\r\n @Input() sortOptions = true;\r\n\r\n /** Set to true if you want dropdown items to fit content rather than dropdown width */\r\n @Input() fitContent = false;\r\n\r\n /** Set to true if you want to enable option tooltip */\r\n @Input() showTooltip?: boolean;\r\n\r\n /** Set to true to wrap option text to new line when there's not enough space */\r\n @Input() wrapOptionText = false;\r\n\r\n /** @ignore */\r\n public displayedOptions: DropdownComponentDisplayedOptions = new Map();\r\n\r\n /** @ignore */\r\n protected controlSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n protected readonly genericDisplayedValue: string = '-UNSET-';\r\n\r\n /** @ignore */\r\n protected readonly noDisplayedValueWarning: string = 'No display value is set for select box option';\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.unsubscribeFromControl();\r\n }\r\n\r\n /** @ignore */\r\n applySorting = (\r\n a: { key: DropdownComponentOption; value: string },\r\n b: {\r\n key: DropdownComponentOption;\r\n value: string;\r\n },\r\n ): number => (this.sortOptions ? a.value.localeCompare(b.value) : 0);\r\n\r\n /** @ignore */\r\n protected processOptions(options?: DropdownComponentOptions): void {\r\n this.displayedOptions = new Map();\r\n\r\n if (!options) {\r\n return;\r\n }\r\n\r\n /**\r\n * if options is an array - use option as key and extract displayed value from option;\r\n * if options is a map - use key as key and extract displayed value from option;\r\n * if options is an object - use object keys as keys and extract displayed value from value\r\n */\r\n if (options instanceof Array) {\r\n options.forEach((option) => this.displayedOptions.set(option, this.getDisplayedValue(option)));\r\n } else if (options instanceof Map) {\r\n options.forEach((option, key) => this.displayedOptions.set(key, this.getDisplayedValue(option)));\r\n } else {\r\n for (const key in options) {\r\n this.displayedOptions.set(key, this.getDisplayedValue(options[key]));\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected unsubscribeFromControl() {\r\n this.controlSubscription?.unsubscribe();\r\n }\r\n\r\n /** @ignore */\r\n protected getDisplayedValue(\r\n option: DropdownComponentOption,\r\n displayValueKey: string | undefined = this.displayValueKey,\r\n originalOption?: DropdownComponentOption,\r\n ): string {\r\n if (!originalOption) {\r\n originalOption = option;\r\n }\r\n\r\n if (option === null || option === undefined) {\r\n return '';\r\n } else if (typeof option == 'string') {\r\n return option;\r\n } else if (typeof option == 'number' || typeof option == 'boolean') {\r\n return option.toString();\r\n } else if (displayValueKey) {\r\n /**\r\n * break displayValueKey into parts to be able to drill down the option properties and sub properties\r\n */\r\n const parts = displayValueKey.split('.');\r\n\r\n /**\r\n * extract first part of displayValueKey\r\n */\r\n const firstPart = parts.shift() ?? '';\r\n\r\n /**\r\n * if we still have parts and option property is not an object - display generic value\r\n * (we won't be able to drill down anymore)\r\n */\r\n if (parts.length && !ObjectHelper.isObject(option[firstPart])) {\r\n return this.getGenericDisplayedValue(originalOption);\r\n }\r\n\r\n /**\r\n * extract displayedValue from the next level of option, if possible\r\n */\r\n return this.getDisplayedValue(option[firstPart], parts.join('.'), originalOption);\r\n } else {\r\n return this.getGenericDisplayedValue(originalOption);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected getGenericDisplayedValue(option: DropdownComponentOption): string {\r\n console.warn(this.noDisplayedValueWarning, option);\r\n return this.genericDisplayedValue;\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { AdsIconModule, AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconInformation } from '@ascentgl/ads-icons/icons';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Component({\r\n selector: 'ads-input-tooltip',\r\n template: `\r\n @if (href()) {\r\n <a [href]=\"href()\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n <ads-icon\r\n [matTooltip]=\"tooltip()\"\r\n [matTooltipPosition]=\"'above'\"\r\n [name]=\"'information'\"\r\n [size]=\"smallSize() ? 'xxs' : 'sm'\"\r\n [theme]=\"'secondary'\"\r\n [style.top]=\"iconPosition\"\r\n class=\"clickable\"\r\n />\r\n </a>\r\n } @else {\r\n <ads-icon\r\n [matTooltip]=\"tooltip()\"\r\n [matTooltipPosition]=\"'above'\"\r\n [name]=\"'information'\"\r\n [size]=\"smallSize() ? 'xxs' : 'sm'\"\r\n [theme]=\"'secondary'\"\r\n [style.top]=\"iconPosition\"\r\n />\r\n }\r\n `,\r\n styles: `\r\n ads-icon {\r\n position: relative;\r\n top: 12px;\r\n }\r\n .clickable {\r\n cursor: pointer;\r\n }\r\n a {\r\n text-decoration: none;\r\n }\r\n `,\r\n imports: [AdsIconModule, MatTooltip],\r\n})\r\nexport class AdsInputTooltipComponent {\r\n tooltip = input.required<string>();\r\n\r\n smallSize = input<boolean>(false);\r\n\r\n href = input<string>();\r\n\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register([adsIconInformation]);\r\n }\r\n\r\n get iconPosition(): string {\r\n return this.smallSize() ? '3px' : '12px';\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { MatError } from '@angular/material/form-field';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@Component({\r\n selector: 'ads-error',\r\n templateUrl: './error.component.html',\r\n styleUrls: ['./error.component.scss'],\r\n imports: [MatError, AdsIconModule],\r\n animations: [\r\n trigger('fadeInOut', [\r\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => *', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms ease-in')]),\r\n ]),\r\n ],\r\n})\r\nexport class AdsErrorComponent {\r\n /** Set text to show error */\r\n error = input.required<string>();\r\n}\r\n","<mat-error class=\"mat-error\" [@fadeInOut]>\r\n <div class=\"error\">\r\n <ads-icon [name]=\"'warning'\" [size]=\"'xxs'\" [theme]=\"'warn'\" [stroke]=\"'warn'\" />\r\n <span [innerHTML]=\"error()\"></span>\r\n </div>\r\n</mat-error>\r\n","import { Component, input, OnInit } from '@angular/core';\r\nimport { MatHint } from '@angular/material/form-field';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ads-hint',\r\n template: `<mat-hint [@fadeInOut]=\"state\" [innerHTML]=\"hint()\" />`,\r\n styleUrls: ['./hint.component.scss'],\r\n imports: [MatHint],\r\n animations: [\r\n trigger('fadeInOut', [\r\n state('off', style({ opacity: 1, transform: 'translateX(0)' })),\r\n state('on', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => on', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms linear')]),\r\n ]),\r\n ],\r\n})\r\nexport class AdsHintComponent implements OnInit {\r\n control = input.required<FormControl>();\r\n hint = input.required<string>();\r\n\r\n state = 'off';\r\n\r\n ngOnInit(): void {\r\n if (this.control().touched) {\r\n this.state = 'on';\r\n }\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@Component({\r\n selector: 'ads-success',\r\n templateUrl: './success.component.html',\r\n styleUrls: ['./success.component.scss'],\r\n imports: [AdsIconModule],\r\n animations: [\r\n trigger('fadeInOut', [\r\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => *', [style({ opacity: 0, transform: 'translateY(-30%)' }), animate('300ms ease-in')]),\r\n ]),\r\n ],\r\n})\r\nexport class AdsSuccessComponent {\r\n /** Set text to show success */\r\n success = input.required<string>();\r\n}\r\n","<div [@fadeInOut] class=\"container\">\r\n <div class=\"success\">\r\n <ads-icon name=\"check_circle_filled\" size=\"xxs\" color=\"--color-success\" stroke=\"white\" />\r\n <span [innerHTML]=\"success()\"></span>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnChanges, OnInit, SimpleChange } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { AbstractBaseComponent } from '../../abstracts/abstract.base.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ads-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss', '../../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsCheckboxComponent extends AbstractBaseComponent implements OnInit, OnChanges {\r\n /** Set to \"true\" to make the checkbox indeterminate */\r\n @Input() indeterminate = false;\r\n\r\n @Input() width = 'fit-content';\r\n\r\n /** @ignore */\r\n private valueChangeSub?: Subscription;\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.valueChangeSub = this.valueControl.valueChanges.subscribe(() => {\r\n if (!this.valueControl.dirty) {\r\n this.valueControl.markAsDirty();\r\n }\r\n\r\n if (!this.valueControl.touched) {\r\n this.valueControl.markAsTouched();\r\n }\r\n\r\n // Only want this to happen once\r\n this.valueChangeSub?.unsubscribe();\r\n });\r\n }\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { required: SimpleChange; immediateValidation: SimpleChange }): void {\r\n if (changes.required) {\r\n if (this.required) {\r\n this.valueControl.addValidators(Validators.required);\r\n } else {\r\n this.valueControl.removeValidators(Validators.required);\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n toggleCheck(): void {\r\n if (this.valueControl.disabled) return;\r\n\r\n if (this.indeterminate) {\r\n this.indeterminate = false;\r\n }\r\n this.valueControl.setValue(!this.valueControl.value);\r\n }\r\n}\r\n"," <div [ngStyle]=\"{ width: width }\">\r\n <div class=\"ads-checkbox\" (click)=\"toggleCheck()\" [ngClass]=\"{ disabled: valueControl.disabled }\">\r\n <div class=\"checkbox-ripple\">\r\n <div class=\"checkbox-container\">\r\n @if (valueControl.value && !indeterminate) {\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"14\"\r\n height=\"12\"\r\n viewBox=\"0 0 14 12\"\r\n fill=\"none\"\r\n class=\"check-icon\"\r\n >\r\n <path d=\"M2 6L5.75 10.5L12 1.5\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n }\r\n\r\n @if (indeterminate) {\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"12\"\r\n height=\"4\"\r\n viewBox=\"0 0 12 4\"\r\n fill=\"none\"\r\n class=\"indeterminate-icon\"\r\n >\r\n <path\r\n d=\"M11.5385 0.5H0.461538C0.206638 0.5 0 0.723858 0 1V3C0 3.27614 0.206638 3.5 0.461538 3.5H11.5385C11.7934 3.5 12 3.27614 12 3V1C12 0.723858 11.7934 0.5 11.5385 0.5Z\"\r\n />\r\n </svg>\r\n }\r\n </div>\r\n </div>\r\n @if (label) {\r\n <span class=\"checkbox-label\">{{ label }}</span>\r\n }\r\n </div>\r\n\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component, Input, OnChanges, SimpleChange, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { GENERIC_COLLECTION, ObjectHelper } from '@ascentgl/ads-utils';\r\nimport {\r\n AbstractDropdownComponent,\r\n DropdownComponentOption,\r\n DropdownComponentOptions,\r\n} from '../../abstracts/abstract.dropdown.component';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { adsIconChevronDown, adsIconCross, adsIconWarning } from '@ascentgl/ads-icons/icons';\r\nimport { Colors } from '../../../general/color-palette/colors.enums';\r\n\r\n@Component({\r\n selector: 'ads-dropdown',\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n './dropdown.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsDropdownComponent extends AbstractDropdownComponent implements OnChanges {\r\n /** Provide function that will allow to calculate option display value */\r\n @Input() displayValueFormatter?: ((option: DropdownComponentOption) => string) | undefined;\r\n\r\n /** Set dropdown mode \"normal\" or \"pill\" */\r\n @Input() mode: 'normal' | 'pill' = 'normal';\r\n\r\n /** Set to true to add empty value to the dropdown */\r\n @Input() hasEmptyValue = false;\r\n\r\n /** Set to true if you want to show a checkmark near selected option */\r\n @Input() checkSelected = true;\r\n\r\n /** Contains dropdown options */\r\n @Input() options?: DropdownComponentOptions;\r\n\r\n /** Custom Option Template */\r\n @Input() optionTemplate?: TemplateRef<unknown>;\r\n\r\n /** Custom Trigger Template */\r\n @Input() triggerTemplate?: TemplateRef<unknown>;\r\n\r\n /** Custom Panel Class */\r\n @Input() panelClass?: string;\r\n\r\n /** @ignore */\r\n @ViewChild('panel') panel?: MatSelect;\r\n\r\n /** @ignore */\r\n readonly isMultiselect: boolean = false;\r\n\r\n /** @ignore */\r\n readonly showChips: boolean = false;\r\n\r\n /** @ignore */\r\n displayedOptionsArray: DropdownComponentOption[] = [];\r\n\r\n /** @ignore */\r\n protected readonly Colors = Colors;\r\n\r\n /** @ignore */\r\n protected readonly FormControl = FormControl;\r\n\r\n constructor() {\r\n super();\r\n this.registry.register([adsIconCross, adsIconChevronDown, adsIconWarning]);\r\n }\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\r\n if (changes.options) {\r\n this.processOptions();\r\n this.mapControlValue();\r\n }\r\n }\r\n\r\n onOptionRemoved(option: DropdownComponentOption) {\r\n const copy = [...this.valueControl.value];\r\n const index = copy.indexOf(option);\r\n\r\n if (index > -1) {\r\n copy.splice(index, 1);\r\n this.valueControl.setValue(copy);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onOpened() {\r\n const selected = this.panel?.selected;\r\n\r\n if (selected instanceof MatOption) {\r\n (<GENERIC_COLLECTION>selected)._element.nativeElement?.scrollIntoView({ block: 'center' });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected processOptions(): void {\r\n this.displayedOptionsArray = [];\r\n /**\r\n * turn DropdownComponentOptions into DropdownComponentDisplayedOptions\r\n */\r\n super.processOptions(this.options);\r\n\r\n this.displayedOptionsArray = Array.from(this.displayedOptions.keys()).sort(this.applyArraySorting);\r\n\r\n this.setControlValueSubscription();\r\n }\r\n\r\n /** @ignore */\r\n protected setControlValueSubscription(): void {\r\n /**\r\n * if the first option key is an object - subscribe to control\r\n * to make sure it's value is always a valid object\r\n */\r\n if (ObjectHelper.isObject(this.displayedOptions.keys().next().value)) {\r\n this.subscribeToControl();\r\n } else {\r\n this.unsubscribeFromControl();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n /**\r\n * NOTE: this method is needed because if control value is an object, it MUST reference the same\r\n * object as corresponding dropdown option, thus here we replace dropdown option with control value if needed\r\n */\r\n protected mapControlValue(control: FormControl = this.valueControl): void {\r\n this.replaceDisplayedOptionWithControlValue(control.value);\r\n }\r\n\r\n /** @ignore */\r\n protected subscribeToControl(control: FormControl = this.valueControl): void {\r\n this.unsubscribeFromControl();\r\n\r\n this.controlSubscription = control?.valueChanges.subscribe(() => {\r\n this.mapControlValue(control);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n protected replaceDisplayedOptionWithControlValue(controlValue: DropdownComponentOption): void {\r\n /**\r\n * if control value is not an object - we don't need to continue\r\n */\r\n if (!ObjectHelper.isObject(controlValue)) return;\r\n\r\n /**\r\n * if displayed options already contain control value - we don't need to continue\r\n */\r\n if (this.displayedOptions.get(controlValue)) return;\r\n\r\n /**\r\n * loop through displayed options\r\n */\r\n for (const [key, value] of this.displayedOptions) {\r\n /**\r\n * if displayed option key is an object, and it is equal to control value - we need to replace\r\n * displayed option key with control value to ensure that objects can be matched\r\n * NOTE in order to object1 === object2 it must be THE SAME object\r\n */\r\n if (\r\n ObjectHelper.isObject(key) &&\r\n ObjectHelper.deepEqual(<GENERIC_COLLECTION>controlValue, <GENERIC_COLLECTION>key)\r\n ) {\r\n /**\r\n * delete existing entry from displayedOptions\r\n */\r\n this.displayedOptions.delete(key);\r\n\r\n /**\r\n * add new entry to map\r\n */\r\n this.displayedOptions.set(controlValue, value);\r\n\r\n return;\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected getGenericDisplayedValue(option: DropdownComponentOption): string {\r\n if (!this.displayValueFormatter && !this.triggerTemplate) {\r\n console.warn(this.noDisplayedValueWarning, option);\r\n }\r\n\r\n return this.genericDisplayedValue;\r\n }\r\n\r\n /** @ignore */\r\n private applyArraySorting = (a: DropdownComponentOption, b: DropdownComponentOption): number => {\r\n if (this.sortOptions) {\r\n const val1 = this.displayedOptions.get(a);\r\n const val2 = this.displayedOptions.get(b);\r\n\r\n if (val1 && val2) {\r\n return val1.localeCompare(val2);\r\n }\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n /** @ignore */\r\n chipName(option: MatOption): string {\r\n return (this.displayValueFormatter ? this.displayValueFormatter(option) : this.displayedOptions.get(option)) || '';\r\n }\r\n\r\n /** @ignore */\r\n toggleOption(option: DropdownComponentOption) {\r\n const currentValue = this.valueControl.value || [];\r\n const index = currentValue.indexOf(option);\r\n\r\n if (index === -1) {\r\n currentValue.push(option);\r\n } else {\r\n currentValue.splice(index, 1);\r\n }\r\n\r\n this.valueControl.setValue([...currentValue]); // Ensure the form control is updated\r\n }\r\n\r\n /** @ignore */\r\n isOptionSelected(option: DropdownComponentOption): boolean {\r\n if (!this.isMultiselect) {\r\n return this.valueControl.value === option;\r\n }\r\n const currentValue = this.valueControl.value || [];\r\n return currentValue.indexOf(option) !== -1;\r\n }\r\n\r\n /** @ignore */\r\n createCheckboxControl(option: DropdownComponentOption): FormControl {\r\n return new FormControl(this.isOptionSelected(option));\r\n }\r\n\r\n /** @ignore */\r\n onCheckboxChange(option: DropdownComponentOption) {\r\n this.toggleOption(option); // Update the option on checkbox change\r\n }\r\n\r\n /** @ignore */\r\n get panelClassList(): string {\r\n return [\r\n 'ads-dropdown-panel',\r\n this.fitContent ? 'fit-content' : '',\r\n this.panelClass || ''\r\n ].join(' ');\r\n }\r\n\r\n /** @ignore */\r\n isDropdownOptionObject(option: any): option is { disableDropdownOption?: boolean } {\r\n return option && typeof option === 'object' && 'disableDropdownOption' in option && option.disableDropdownOption === true;\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n (click)=\"onOpened()\"\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'no-left-padding': !showExclamation,\r\n pill: mode === 'pill',\r\n chips: showChips && isMultiselect,\r\n 'success-label': canShowSuccess(),\r\n 'error-label': canShowError(),\r\n 'x-small': smallSize,\r\n 'wrap-trigger-text': wrapOptionText,\r\n 'has-label': !!label\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if ((!showChips || valueControl.value.length === 0) && (label || required) && !smallSize) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <!-- is required in placeholder for smoother animation -->\r\n <mat-select\r\n #panel\r\n [disableRipple]=\"true\"\r\n [id]=\"id\"\r\n [placeholder]=\"placeholder || ' '\"\r\n [panelClass]=\"panelClassList\"\r\n [disableOptionCentering]=\"true\"\r\n [required]=\"required\"\r\n [formControl]=\"valueControl\"\r\n [multiple]=\"isMultiselect\"\r\n >\r\n @if (showChips && isMultiselect) {\r\n <mat-select-trigger>\r\n <div class=\"tag-container\">\r\n @for (option of valueControl.value; track $index) {\r\n <ads-tag\r\n [tag]=\"chipName(option)\"\r\n [color]=\"Colors.Medium\"\r\n [id]=\"'' + $index\"\r\n (remove)=\"onOptionRemoved(option)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n }\r\n </div>\r\n </mat-select-trigger>\r\n } @else if (triggerTemplate) {\r\n <mat-select-trigger>\r\n <ng-container *ngTemplateOutlet=\"triggerTemplate; context: { option: valueControl.value }\" />\r\n </mat-select-trigger>\r\n }\r\n\r\n @if (hasEmptyValue) {\r\n <mat-option [value]=\"undefined\"></mat-option>\r\n }\r\n\r\n @for (option of displayedOptionsArray; track $index) {\r\n <mat-option\r\n [id]=\"id + '-option-' + ($index + 1)\"\r\n [value]=\"option\"\r\n [ngClass]=\"{\r\n checkbox: isMultiselect && checkSelected,\r\n 'wrap-text': wrapOptionText,\r\n }\"\r\n [matTooltip]=\"displayValueFormatter ? displayValueFormatter(option) : displayedOptions.get(option)\"\r\n [matTooltipDisabled]=\"!showTooltip\"\r\n [disabled]=\"isDropdownOptionObject(option)\"\r\n >\r\n @if (optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { option }\" />\r\n } @else if (isMultiselect && checkSelected) {\r\n <ads-checkbox\r\n [showFooter]=\"false\"\r\n width=\"100%\"\r\n [control]=\"createCheckboxControl(option)\"\r\n (change)=\"onCheckboxChange(option)\"\r\n [label]=\"displayValueFormatter ? displayValueFormatter(option) : displayedOptions.get(option)\"\r\n />\r\n } @else {\r\n <span\r\n [ngClass]=\"{ 'wrap-text': wrapOptionText }\"\r\n [innerHTML]=\"displayValueFormatter ? displayValueFormatter(option) : displayedOptions.get(option)\"\r\n ></span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-select>\r\n\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\r\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\r\n </button>\r\n }\r\n <button matTextSuffix type=\"button\" mat-icon-button class=\"action-icon\">\r\n <ads-icon\r\n matTextSuffix\r\n name=\"chevron_down\"\r\n [size]=\"smallSize ? 'xxs' : 'xs'\"\r\n [theme]=\"'iconPrimary'\"\r\n class=\"chevron-down\"\r\n />\r\n </button>\r\n </mat-form-field>\r\n\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsCheckboxComponent } from './checkbox.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n AdsHintComponent,\r\n AdsErrorComponent,\r\n AdsInputTooltipComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsCheckboxComponent],\r\n exports: [AdsCheckboxComponent],\r\n})\r\nexport class AdsCheckboxModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { AdsDropdownComponent } from './dropdown.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { AdsTagModule } from '../../../tags/tag';\r\nimport { AdsCheckboxModule } from '../../selection-fields/checkbox';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n AdsIconModule,\r\n MatInputModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n MatIcon,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n AdsTagModule,\r\n AdsCheckboxModule,\r\n MatTooltipModule,\r\n ],\r\n declarations: [AdsDropdownComponent],\r\n exports: [AdsDropdownComponent],\r\n})\r\nexport class AdsDropdownModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsDropdownComponent } from '../dropdown';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DropdownComponentOption } from '../../abstracts/abstract.dropdown.component';\r\n\r\n@Component({\r\n selector: 'ads-multi-select-dropdown',\r\n templateUrl: '../dropdown/dropdown.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n '../dropdown/dropdown.component.scss',\r\n './multi-select-dropdown.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsMultiSelectDropdownComponent extends AdsDropdownComponent {\r\n /** @ignore */\r\n public hasEmptyValue = false;\r\n\r\n /** @ignore */\r\n declare public displayValueFormatter?: ((option: DropdownComponentOption) => string) | undefined;\r\n\r\n /** @ignore */\r\n public readonly isMultiselect: boolean = true;\r\n\r\n /** if set to true selected values will be shown as chips */\r\n @Input() showChips = true;\r\n\r\n /** @ignore */\r\n protected setControlValueSubscription(): void {\r\n /**\r\n * We always subscribe to form control value to make sure it is an array\r\n */\r\n this.subscribeToControl();\r\n }\r\n\r\n /** @ignore */\r\n get canClear() {\r\n return this.showClearButton && this.valueControl.value.length;\r\n }\r\n\r\n /** @ignore */\r\n /**\r\n * NOTE: this method is needed because if control value is an object, it MUST reference the same\r\n * object as corresponding dropdown option, thus here we replace dropdown option with control value if needed\r\n */\r\n protected mapControlValue(control: FormControl = this.valueControl): void {\r\n /**\r\n * make sure control value is array\r\n */\r\n if (!(control.value instanceof Array)) {\r\n control.setValue([]);\r\n\r\n return;\r\n }\r\n\r\n /**\r\n * loop through control values and make sure they exist in options\r\n */\r\n control.value.forEach((value) => {\r\n this.replaceDisplayedOptionWithControlValue(value);\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsMultiSelectDropdownComponent } from './multi-select-dropdown.component';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsTagModule } from '../../../tags/tag';\r\nimport { AdsCheckboxModule } from '../../selection-fields/checkbox';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n AdsIconModule,\r\n MatInputModule,\r\n AdsInputTooltipComponent,\r\n MatIconButton,\r\n MatIcon,\r\n AdsSuccessComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsTagModule,\r\n AdsCheckboxModule,\r\n MatTooltipModule,\r\n ],\r\n declarations: [AdsMultiSelectDropdownComponent],\r\n exports: [AdsMultiSelectDropdownComponent],\r\n})\r\nexport class AdsMultiSelectDropdownModule {}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\n\r\n@Component({\r\n selector: 'ads-input',\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss', '../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsInputComponent extends AbstractInputComponent implements OnInit {\r\n /** Maximum amount of characters in the input field */\r\n @Input() maxlength = 255;\r\n\r\n /** Possible input type (as per HTML documentation). NOTE: not all types are allowed */\r\n @Input() type: 'text' | 'number' | 'email' | 'password' | 'url' | 'pattern' | 'tel' = 'text';\r\n\r\n /** Provide regular expression pattern if input type is set to \"pattern\" */\r\n @Input() pattern: string | RegExp | null = null;\r\n\r\n /** Provide \"default\" value that will be used when control value is cleared */\r\n @Input() defaultValue?: unknown;\r\n\r\n /** mark input field as readonly */\r\n @Input() isPasswordField = false;\r\n\r\n /** @ignore */\r\n @Input() showClockIcon = false;\r\n\r\n /** Add mask to the Input */\r\n @Input() mask = '';\r\n\r\n /** Add suffix to the Input */\r\n @Input() suffix = '';\r\n\r\n /** Add prefix to the Input */\r\n @Input() prefix = '';\r\n\r\n /** If true Special Characters not be included in the actual value */\r\n @Input() dropSpecialCharacters = false;\r\n\r\n /** Add thousand Separator */\r\n @Input() thousandSeparator = '';\r\n\r\n /** Add decimal marker */\r\n @Input() decimalMarker: '.' | ',' | ['.', ','] = '.';\r\n\r\n /** Add mat Autocomplete trigger name */\r\n @Input() matAutocomplete?: MatAutocomplete;\r\n\r\n /** Show search icon */\r\n @Input() showSearchIcon = false;\r\n\r\n /** Custom function to execute on focus event */\r\n @Input() onFocus: (event: FocusEvent) => void = () => ({});\r\n\r\n /** Custom function to execute on blur event */\r\n @Input() onBlur: (event: FocusEvent) => void = () => ({});\r\n\r\n /** @ignore */\r\n @ViewChild('input') input?: ElementRef;\r\n\r\n /** @ignore */\r\n hidePassword = true;\r\n\r\n /** @ignore */\r\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\r\n pattern: 'Provided value does not match pattern',\r\n };\r\n\r\n /** Show a non-interactive hint in the right corner of the input */\r\n @Input() rightHint: string | null = null;\r\n\r\n ngOnInit(): void {\r\n /**\r\n * if default value is provided - emit it when input is cleared\r\n */\r\n if (this.defaultValue !== undefined) {\r\n this.valueControl?.valueChanges.subscribe((value) => {\r\n if (!value && value !== this.defaultValue) {\r\n this.valueControl.setValue(this.defaultValue);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n showHidePassword(): void {\r\n this.hidePassword = !this.hidePassword;\r\n }\r\n\r\n /** @ignore */\r\n restrictInput(event: KeyboardEvent): void {\r\n if (this.type === 'number') {\r\n const invalidChars = ['e', 'E', '+', '-'];\r\n if (invalidChars.includes(event.key)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n [floatLabel]=\"valueControl.value ? 'always' : 'auto'\"\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'no-left-padding': canClear,\r\n 'success-label': canShowSuccess(),\r\n 'error-label': canShowError(),\r\n 'x-small': smallSize,\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if ((label || required) && !smallSize) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <input\r\n #input\r\n matInput\r\n [suffix]=\"suffix\"\r\n [prefix]=\"prefix\"\r\n [mask]=\"mask\"\r\n [maxlength]=\"maxlength\"\r\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\r\n [thousandSeparator]=\"thousandSeparator\"\r\n [decimalMarker]=\"decimalMarker\"\r\n [id]=\"id\"\r\n [type]=\"isPasswordField ? (hidePassword ? 'password' : 'text') : type\"\r\n [formControl]=\"valueControl\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n (keydown)=\"restrictInput($event)\"\r\n [attr.matAutocomplete]=\"matAutocomplete ? matAutocomplete : null\"\r\n [attr.pattern]=\"pattern\"\r\n />\r\n @if (rightHint) {\r\n <span class=\"ads-input-right-hint\">{{ rightHint }}</span>\r\n }\r\n\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\r\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\r\n </button>\r\n }\r\n\r\n @if (isPasswordField) {\r\n <button type=\"button\" mat-icon-button matTextSuffix (click)=\"showHidePassword()\" class=\"action-icon\">\r\n <ads-icon\r\n class=\"visibility-eye\"\r\n [name]=\"hidePassword ? 'visibility_eye_none' : 'visibility_eye'\"\r\n [size]=\"smallSize ? 'xxs' : 'xs'\"\r\n stroke=\"iconPrimary\"\r\n color=\"--color-medium\"\r\n />\r\n </button>\r\n }\r\n\r\n @if (showClockIcon) {\r\n <button\r\n type=\"button\"\r\n [disableRipple]=\"true\"\r\n mat-icon-button\r\n matTextSuffix\r\n (click)=\"showHidePassword()\"\r\n class=\"action-icon time-picker-button\"\r\n >\r\n <ads-icon\r\n class=\"status_processing\"\r\n name=\"status_processing\"\r\n [size]=\"smallSize ? 'xxs' : 'xs'\"\r\n stroke=\"iconPrimary\"\r\n />\r\n </button>\r\n }\r\n\r\n @if (showSearchIcon) {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n [disableRipple]=\"true\"\r\n [disabled]=\"true\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon name=\"search\" size=\"xs\" [theme]=\"'iconPrimary'\" class=\"search-icon\" />\r\n </button>\r\n }\r\n\r\n </mat-form-field>\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsInputComponent } from './input.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsInputTooltipComponent } from '../common/input.tooltip.component';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsSuccessComponent } from '../common/success/success.component';\r\nimport { AdsErrorComponent } from '../common/error/error.component';\r\nimport { AdsHintComponent } from '../common/hint/hint.component';\r\nimport { provideNgxMask, NgxMaskDirective } from 'ngx-mask';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n AdsInputTooltipComponent,\r\n MatIconButton,\r\n AdsSuccessComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n NgxMaskDirective,\r\n MatAutocompleteTrigger,\r\n ],\r\n declarations: [AdsInputComponent],\r\n exports: [AdsInputComponent],\r\n providers: [provideNgxMask()],\r\n})\r\nexport class AdsInputModule {}\r\n","import { Component, signal, OnDestroy, OnInit } from '@angular/core';\r\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ads-phone-field',\r\n templateUrl: './phone-field.component.html',\r\n styleUrls: ['../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsPhoneFieldComponent extends AbstractInputComponent implements OnInit, OnDestroy {\r\n /** @ignore */\r\n phoneMask = signal<string>('');\r\n\r\n /** @ignore */\r\n private valueChangesSubscription!: Subscription;\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.setInitialPhoneNumber();\r\n this.updatePhoneMask();\r\n\r\n this.valueChangesSubscription = this.valueControl?.valueChanges.subscribe(() => {\r\n this.updatePhoneMask();\r\n });\r\n }\r\n\r\n /** @ignore */\r\n onBlur = () => {\r\n this.addPlusSignIfMissing();\r\n this.validatePhoneNumber();\r\n };\r\n /** @ignore */\r\n protected addPlusSignIfMissing = () => {\r\n const value = this.valueControl.value;\r\n if (value && !value.startsWith('+') && /^\\d+$/.test(value)) {\r\n this.valueControl.setValue(`+${value}`);\r\n }\r\n };\r\n\r\n /** @ignore */\r\n protected validatePhoneNumber = () => {\r\n const value = this.valueControl.value || '';\r\n const digitCount = value.replace(/\\D/g, '').length; // Count actual digits\r\n\r\n const expectedDigits = this.phoneMask().replace(/[^0]/g, '').length; // Count expected digits\r\n\r\n if (digitCount !== expectedDigits) {\r\n this.valueControl.setErrors({ mask: true });\r\n } else {\r\n this.valueControl.setErrors(null);\r\n }\r\n };\r\n\r\n /** @ignore */\r\n private updatePhoneMask(): void {\r\n const value = this.valueControl.value || '';\r\n // Check if value contain '+1' country code\r\n if (value.match(/^\\+?(1+)/)) {\r\n this.phoneMask.set('+0 (000) 000-0000'); // Short mask\r\n } else {\r\n this.phoneMask.set('+00 (000) 000-0000'); // Long mask\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private setInitialPhoneNumber(): void {\r\n if (!this.valueControl.value) {\r\n this.valueControl.setValue('+1');\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.valueChangesSubscription?.unsubscribe();\r\n }\r\n}\r\n","<ads-input\r\n [control]=\"valueControl\"\r\n [mask]=\"phoneMask()\"\r\n [onBlur]=\"onBlur\"\r\n [id]=\"id\"\r\n [placeholder]=\"placeholder\"\r\n [label]=\"label\"\r\n [errorMessages]=\"errorMessages\"\r\n [width]=\"width\"\r\n [showClearButton]=\"showClearButton\"\r\n/>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsPhoneFieldComponent } from './phone-field.component';\r\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\r\nimport { AdsInputModule } from '../input';\r\n\r\n@NgModule({\r\n imports: [CommonModule, NgxMaskDirective, AdsInputModule],\r\n declarations: [AdsPhoneFieldComponent],\r\n exports: [AdsPhoneFieldComponent],\r\n providers: [provideNgxMask()],\r\n})\r\nexport class AdsPhoneFieldModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\r\n\r\n@Component({\r\n selector: 'ads-textarea',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['../input/input.component.scss', './textarea.component.scss', '../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsTextareaComponent extends AbstractInputComponent {\r\n /** Maximum amount of characters in the input field */\r\n @Input() maxlength = 2000;\r\n\r\n /** Maximum number of rows */\r\n @Input() rows = 5;\r\n\r\n /** Set to false to disallow resize */\r\n @Input() canResize = true;\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'no-left-padding': canClear && !showExclamation,\r\n 'success-label': canShowSuccess(),\r\n 'error-label': canShowError(),\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if(label || required) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <textarea\r\n matInput\r\n [rows]=\"rows\"\r\n [maxlength]=\"maxlength\"\r\n [id]=\"id\"\r\n [formControl]=\"valueControl\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n [ngStyle]=\"{ resize: canResize ? null : 'none' }\"\r\n >\r\n </textarea>\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\">\r\n <ads-icon name=\"cross\" size=\"xxs\" [theme]=\"'iconPrimary'\" />\r\n </button>\r\n }\r\n </mat-form-field>\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n </div>\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsInputTooltipComponent } from '../common/input.tooltip.component';\r\nimport { AdsSuccessComponent } from '../common/success/success.component';\r\nimport { AdsErrorComponent } from '../common/error/error.component';\r\nimport { AdsHintComponent } from '../common/hint/hint.component';\r\nimport { AdsTextareaComponent } from './textarea.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n AdsSuccessComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n ],\r\n declarations: [AdsTextareaComponent],\r\n exports: [AdsTextareaComponent],\r\n})\r\nexport class AdsTextareaModule {}\r\n","import { Component, Input, OnChanges, SimpleChange, ViewChild } from '@angular/core';\r\nimport { AdsDropdownComponent } from '../dropdown';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DropdownComponentOptions } from '../../abstracts/abstract.dropdown.component';\r\nimport { AbstractInputComponent } from '../../abstracts/abstract.input.component';\r\nimport { asapScheduler } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ads-input-dropdown',\r\n templateUrl: './input-dropdown.component.html',\r\n styleUrls: ['./input-dropdown.component.scss', '../../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsInputDropdownComponent extends AbstractInputComponent implements OnChanges {\r\n /** Maximum amount of characters in the input field */\r\n @Input() maxlength = 255;\r\n\r\n /** Possible input type (as per HTML documentation). NOTE: not all types are allowed */\r\n @Input() type: 'text' | 'number' | 'email' | 'password' | 'url' | 'pattern' = 'text';\r\n\r\n /** Provide regular expression pattern if input type is set to \"pattern\" */\r\n @Input() pattern: string | RegExp = '';\r\n\r\n /** Dropdown control, associated with input field */\r\n @Input() dropdownControl: FormControl = new FormControl();\r\n\r\n /** Optional \"id\" attribute for dropdown field */\r\n @Input() dropdownId = '';\r\n\r\n /** Optional dropdown control field label */\r\n @Input() dropdownLabel?: string;\r\n\r\n /** Empty dropdown field placeholder */\r\n @Input() dropdownPlaceholder = '';\r\n\r\n /** Input field width. Must include units of measure: px, %, em, rem, etc. */\r\n @Input() inputWidth = '70%';\r\n\r\n /** Input field width. Must include units of measure: px, %, em, rem, etc. */\r\n @Input() dropdownWidth = '30%';\r\n\r\n /** Is set and dropdown contains only one option - it will be selected automatically. */\r\n @Input() autoSelectSingleDropdownOption = false;\r\n\r\n /** Contains dropdown options */\r\n @Input() options?: DropdownComponentOptions;\r\n\r\n /** If options contain objects, provide object property name that will be used as display value in dropdown */\r\n @Input() displayValueKey?: string;\r\n\r\n /** Set to true to add empty value to the dropdown */\r\n @Input() hasEmptyValue = true;\r\n\r\n /** Set to true if you want dropdown items to fit content rather than dropdown width */\r\n @Input() fitContent = true;\r\n\r\n /** Add mask to the Input */\r\n @Input() mask = '';\r\n\r\n /** Add suffix to the Input */\r\n @Input() suffix = '';\r\n\r\n /** Add prefix to the Input */\r\n @Input() prefix = '';\r\n\r\n /** If true Special Characters not be included in the actual value */\r\n @Input() dropSpecialCharacters = false;\r\n\r\n /** Add thousand Separator */\r\n @Input() thousandSeparator = '';\r\n\r\n /** Add decimal marker */\r\n @Input() decimalMarker: \".\" | \",\" | [\".\", \",\"] = '.';\r\n\r\n /** Set to true if you want to enable option tooltip */\r\n @Input() showTooltip?: boolean;\r\n\r\n /** @ignore */\r\n @ViewChild(AdsDropdownComponent) dropdownComponent?: AdsDropdownComponent;\r\n\r\n /** @ignore */\r\n isSingleOptionSelected = false;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\r\n if (changes.options && this.autoSelectSingleDropdownOption) {\r\n asapScheduler.schedule(() => {\r\n if (this.dropdownComponent?.displayedOptions.size === 1) {\r\n /**\r\n * get first displayed option\r\n */\r\n const first = this.dropdownComponent.displayedOptions.keys().next().value;\r\n\r\n /**\r\n * if control value does not equal the first option already - select the first option\r\n */\r\n if (this.dropdownControl.value !== first) {\r\n this.dropdownControl.setValue(first);\r\n }\r\n\r\n this.isSingleOptionSelected = true;\r\n } else {\r\n this.isSingleOptionSelected = false;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"form-field-wrapper\" [ngStyle]=\"{ width: width }\">\r\n <div class=\"form-controls-wrapper\">\r\n <div\r\n class=\"text-box\"\r\n [ngClass]=\"{\r\n invalid: dropdownControl.invalid && dropdownControl.touched,\r\n 'success-label': canShowSuccess(),\r\n 'x-small': smallSize,\r\n }\"\r\n [ngStyle]=\"{ width: inputWidth }\"\r\n >\r\n <ads-input\r\n [control]=\"valueControl\"\r\n [maxlength]=\"maxlength\"\r\n [id]=\"id\"\r\n [pattern]=\"pattern\"\r\n [label]=\"label\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [errorMessages]=\"errorMessages\"\r\n [showExclamationOnError]=\"showExclamationOnError\"\r\n [showClearButton]=\"showClearButton\"\r\n [immediateValidation]=\"immediateValidation\"\r\n [showFooter]=\"false\"\r\n [size]=\"size\"\r\n [successMessage]=\"successMessage\"\r\n [mask]=\"mask\"\r\n [suffix]=\"suffix\"\r\n [prefix]=\"prefix\"\r\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\r\n [thousandSeparator]=\"thousandSeparator\"\r\n [decimalMarker]=\"decimalMarker\"\r\n />\r\n </div>\r\n <div\r\n class=\"select-box\"\r\n [ngClass]=\"{ invalid: valueControl.invalid && valueControl.touched }\"\r\n [ngStyle]=\"{ width: dropdownWidth }\"\r\n >\r\n @if (isSingleOptionSelected) {\r\n <ads-input\r\n [control]=\"dropdownControl\"\r\n [id]=\"id\"\r\n [label]=\"dropdownLabel\"\r\n [placeholder]=\"dropdownPlaceholder\"\r\n [immediateValidation]=\"immediateValidation\"\r\n [showFooter]=\"false\"\r\n [size]=\"size\"\r\n [successMessage]=\"successMessage\"\r\n [mask]=\"mask\"\r\n />\r\n } @else {\r\n <ads-dropdown\r\n [hasEmptyValue]=\"hasEmptyValue\"\r\n [control]=\"dropdownControl\"\r\n [id]=\"dropdownId\"\r\n [options]=\"options\"\r\n [label]=\"dropdownLabel\"\r\n [placeholder]=\"dropdownPlaceholder\"\r\n [immediateValidation]=\"immediateValidation\"\r\n [displayValueKey]=\"displayValueKey\"\r\n [fitContent]=\"fitContent\"\r\n [showFooter]=\"false\"\r\n [checkSelected]=\"false\"\r\n [size]=\"size\"\r\n [successMessage]=\"successMessage\"\r\n [showTooltip]=\"showTooltip\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n</div>\r\n@if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsInputDropdownComponent } from './input-dropdown.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { AdsInputModule } from '../../input';\r\nimport { AdsDropdownModule } from '../dropdown';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { NgxMaskDirective } from 'ngx-mask';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDividerModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n AdsInputModule,\r\n AdsDropdownModule,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n NgxMaskDirective,\r\n ],\r\n declarations: [AdsInputDropdownComponent],\r\n exports: [AdsInputDropdownComponent],\r\n})\r\nexport class AdsInputDropdownModule {}\r\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\r\nimport { SearchDropdownDisplayControlValue } from './search-dropdown.component.types';\r\n\r\n@Pipe({\r\n name: 'adsSearchDropdownHighlighter',\r\n standalone: false,\r\n})\r\nexport class AdsSearchDropdownHighlighterPipe implements PipeTransform {\r\n transform(optionValue: string, filter: SearchDropdownDisplayControlValue): string {\r\n if (filter) {\r\n const value = typeof filter == 'string' ? filter : filter.value;\r\n\r\n const re = new RegExp((value ?? '').replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'igm');\r\n\r\n return optionValue.replace(re, '<span class=\"highlighted-text\">$&</span>');\r\n }\r\n\r\n return optionValue;\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [AdsSearchDropdownHighlighterPipe],\r\n exports: [AdsSearchDropdownHighlighterPipe],\r\n})\r\nexport class AdsSearchDropdownHighlighterPipeModule {}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n contentChild,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n signal,\r\n input,\r\n output,\r\n SimpleChange,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { debounce, map, tap } from 'rxjs/operators';\r\nimport { AbstractControl, FormControl, Validators } from '@angular/forms';\r\nimport { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport {\r\n AbstractDropdownComponent,\r\n DropdownComponentDisplayedOptions,\r\n DropdownComponentOption,\r\n DropdownComponentOptions,\r\n} from '../../abstracts/abstract.dropdown.component';\r\nimport { Observable, of, Subscription, timer } from 'rxjs';\r\nimport { adsIcon, adsIconChevronDown, adsIconLoading, adsIconSearch } from '@ascentgl/ads-icons/icons';\r\nimport { DomHelper, GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport {\r\n SearchDropdownComponentOptions,\r\n SearchDropdownDisplayControlValue,\r\n SearchDropdownStaticOption,\r\n} from './search-dropdown.component.types';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { TEMPLATE_TYPE } from '../../common/dropdown-option-template.directive';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\n\r\ntype CustomMatOption = (MatOption & { modified?: boolean }) | undefined | null;\r\n\r\n@Component({\r\n selector: 'ads-search-dropdown',\r\n templateUrl: './search-dropdown.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n '../../dropdowns/dropdown/dropdown.component.scss',\r\n './search-dropdown.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsSearchDropdownComponent\r\n extends AbstractDropdownComponent\r\n implements OnChanges, OnInit, AfterViewInit, OnDestroy\r\n{\r\n /** @ignore */\r\n optionRef = contentChild.required<TemplateRef<TEMPLATE_TYPE>>(TemplateRef<TEMPLATE_TYPE>);\r\n\r\n externalButton = input<adsIcon | null>(null);\r\n externalButtonClick = output();\r\n\r\n /** Maximum amount of characters in the input field */\r\n @Input() maxlength = 255;\r\n\r\n /** Set to additional paneClass if required*/\r\n @Input() panelClass = '';\r\n\r\n /** Contains dropdown options */\r\n @Input() options?: Observable<SearchDropdownComponentOptions>;\r\n\r\n /** If \"true\", component will not try to load additional options */\r\n @Input() staticOptions = false;\r\n\r\n /** If \"true\" and \"staticOptions\" is also true additional filter will be applied to remove options that do not match input value */\r\n @Input() filterOptions = true;\r\n\r\n /** If \"true\", emitSearchValueInput will emit empty values too */\r\n @Input() emitEmptyValues = false;\r\n\r\n /** If \"true\", first time focusing on input will start loading suggestions if input has a value */\r\n @Input() loadSuggestionOnInit = false;\r\n\r\n /** Provide configuration for default option that can be displayed if no results were found */\r\n @Input() noDataOption: SearchDropdownStaticOption | undefined;\r\n\r\n /** Provide configuration for default option that can be displayed if no intended results were found */\r\n @Input() moreDataOption: SearchDropdownStaticOption | undefined;\r\n\r\n /** Provide configuration for default option that can be displayed if needed */\r\n @Input() staticDataOption: SearchDropdownStaticOption | undefined;\r\n\r\n /** Provide event that is fired when enter key is down while input value is being set */\r\n @Input() onEnterKeyDown: ((currentInputValue: string) => void) | undefined;\r\n\r\n /** Provide callback that will vbe executed when user clicks on magnifying glass icon */\r\n @Input() searchIconClickCallback: ((currentInputValue: string) => void) | undefined;\r\n\r\n /** Provide callback that will vbe executed when user clicks on magnifying glass icon */\r\n @Input() displayValueFormatter: ((value: string, option: DropdownComponentOption) => string | SafeHtml) | undefined;\r\n\r\n /** If \"true\", will read option template provided via \"ng-template dropdown-option\" selector */\r\n @Input() useOptionTemplate = false;\r\n\r\n /** set minimum amount of characters to start search */\r\n @Input() minValueLength = 1;\r\n\r\n /** Set to \"true\" to prevent click even propagation */\r\n @Input() preventClick = false;\r\n\r\n /** @ignore */\r\n @Input() closePanelEnabled = true;\r\n\r\n /** @ignore */\r\n @Input() trimValue = true;\r\n\r\n /**\r\n * NOTE: INPUT PARAMS BELOW ARE OVERRIDDEN BECAUSE FOR SOME UNKNOWN REASON STORYBOOK WON'T SHOW THEM FROM PARENT CLASS\r\n */\r\n\r\n /** Form control, associated with input field */\r\n @Input() set control(control: AbstractControl | null) {\r\n super.control = control;\r\n }\r\n\r\n /** Object, containing key=>value pairs for errors and their translated messages */\r\n @Input() errorMessages: GENERIC_COLLECTION<string> = {};\r\n\r\n /** Hint message, displayed under the control */\r\n @Input() declare hint?: string;\r\n\r\n /** Optional \"id\" attribute for input field */\r\n @Input() id = '';\r\n\r\n /** Optional control field label */\r\n @Input() declare label?: string;\r\n\r\n /** Empty input field placeholder */\r\n @Input() placeholder = '';\r\n\r\n @Output() focusInput = new EventEmitter<void>();\r\n\r\n @Output() blurInput = new EventEmitter<void>();\r\n\r\n /**\r\n * END OF OVERRIDDEN PARAMETERS\r\n */\r\n\r\n /** Emits currently input search value. Use it to react and generate fresh options list, based on the value */\r\n @Output() emitSearchValueInput: EventEmitter<string> = new EventEmitter();\r\n\r\n /** @ignore */\r\n @ViewChild(MatAutocompleteTrigger) trigger?: MatAutocompleteTrigger;\r\n\r\n /** @ignore */\r\n @ViewChild('input') input?: ElementRef;\r\n\r\n /** @ignore */\r\n @ViewChild('moreDataMatOption') moreDataMatOption?: MatOption;\r\n\r\n /** @ignore */\r\n @ViewChild('noDataMatOption') noDataMatOption?: MatOption;\r\n\r\n /** @ignore */\r\n @ViewChild('staticDataMatOption') staticDataMatOption?: MatOption;\r\n\r\n /** @ignore */\r\n @ViewChild('auto') auto?: MatAutocomplete;\r\n\r\n /** @ignore */\r\n loading = signal<boolean>(false);\r\n\r\n /** @ignore */\r\n private isInternalValueSet = false;\r\n\r\n /** @ignore */\r\n private displayedControlSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n private valueControlSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n private optionsSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n private valueControlStatusSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n private ignoreOnBlur = false;\r\n\r\n /** @ignore */\r\n private initialSuggestionsChecked = false;\r\n\r\n /** @ignore */\r\n private unsubscribeFromScroll?: () => void;\r\n\r\n /** @ignore */\r\n private previousControlValue?: string;\r\n\r\n /** @ignore */\r\n private allOptions: DropdownComponentDisplayedOptions = new Map();\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private renderer: Renderer2,\r\n private ref: ElementRef,\r\n ) {\r\n super();\r\n this.registry.register([adsIconSearch, adsIconChevronDown, adsIconLoading]);\r\n }\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { options: SimpleChange; immediateValidation: SimpleChange }): void {\r\n if (changes.options) {\r\n this.processOptions();\r\n }\r\n super.ngOnChanges(changes);\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.setValidators();\r\n this.setupSubscriptions();\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n this.overrideKeydownHandler();\r\n\r\n // Setup auto-resize for textarea when wrapOptionText is enabled\r\n if (this.wrapOptionText && this.input?.nativeElement) {\r\n setTimeout(() => {\r\n this.setupTextareaAutoResize();\r\n }, 0);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy() {\r\n if (this.unsubscribeFromScroll) this.unsubscribeFromScroll();\r\n this.unsubscribeFromOptions();\r\n this.unsubscribeFromDisplayedControl();\r\n this.valueControlSubscription?.unsubscribe();\r\n this.valueControlStatusSubscription?.unsubscribe();\r\n }\r\n\r\n /** @ignore */\r\n get canSearch(): boolean {\r\n return !this.loading() && !this.displayControl.disabled && !!this.searchIconClickCallback;\r\n }\r\n\r\n /** @ignore */\r\n get canUseMoreDataOption(): boolean {\r\n return !!this.moreDataOption && !!this.displayedOptions.size && !this.loading();\r\n }\r\n\r\n /** @ignore */\r\n get canUseNoDataOption(): boolean {\r\n return (\r\n !!this.noDataOption &&\r\n !this.displayedOptions.size &&\r\n !this.loading() &&\r\n !!this.displayControl.value &&\r\n this.displayControl.dirty\r\n );\r\n }\r\n\r\n /** @ignore */\r\n get canUseStaticOption(): boolean {\r\n return !!this.staticDataOption && !this.loading();\r\n }\r\n\r\n /** @ignore */\r\n get showDropdownIcon(): boolean {\r\n return this.staticOptions && (!!this.displayedOptions.size || !!this.allOptions.size);\r\n }\r\n\r\n /** @ignore */\r\n onExternalButtonClick(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.externalButtonClick.emit();\r\n }\r\n\r\n /** @ignore */\r\n onSearchIconClick(event: MouseEvent): void {\r\n event.stopPropagation();\r\n\r\n if (this.searchIconClickCallback) {\r\n this.searchIconClickCallback(this.input?.nativeElement.value);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onKeyDown(eventTarget: EventTarget | null): void {\r\n if (this.preventClick) {\r\n return;\r\n }\r\n\r\n if (!(eventTarget instanceof HTMLInputElement || eventTarget instanceof HTMLTextAreaElement)) return;\r\n\r\n /**\r\n * if one of static options was selected when \"Enter\"\r\n * key was clicked - execute return displayedValue back\r\n * and execute static option onClick events\r\n */\r\n if (this.moreDataMatOption?.selected) {\r\n eventTarget.value = this.getDisplayedValueAsString();\r\n this.activateStaticOption(this.moreDataOption);\r\n } else if (this.noDataMatOption?.selected) {\r\n eventTarget.value = this.getDisplayedValueAsString();\r\n this.activateStaticOption(this.noDataOption);\r\n } else if (this.staticDataMatOption?.selected) {\r\n eventTarget.value = this.getDisplayedValueAsString();\r\n this.activateStaticOption(this.staticDataOption);\r\n } else {\r\n /**\r\n * otherwise if displayed value is different from input value - sync them\r\n * NOTE: this happens when option is selected in dropdown and \"Enter\" key is pressed\r\n * because \"onInput\" event does not fire in that case\r\n * if displayed value is the same as input value, and we have onEnterKeyDown callback - execute it\r\n * NOTE: this happens when value is input directly into input field\r\n */\r\n if (this.getDisplayedValueAsString() != eventTarget.value) {\r\n this.displayControl.setValue(eventTarget.value, { emitEvent: false });\r\n } else if (this.onEnterKeyDown) {\r\n this.onEnterKeyDown(eventTarget.value);\r\n }\r\n\r\n this.unselectComponent();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onBlur(): void {\r\n this.displayControl.markAsTouched();\r\n this.valueControl.markAsTouched();\r\n\r\n if (!this.preventClick) {\r\n /**\r\n * if action onBlur is allowed and value is a string - apply it to form control before blurring\r\n * NOTE: this may happen if value was input into control but\r\n * no existing options were explicitly selected\r\n */\r\n if (!this.ignoreOnBlur && typeof this.displayControl.value == 'string') {\r\n this.setControlValueFromString(this.displayControl.value);\r\n }\r\n\r\n this.ignoreOnBlur = false;\r\n }\r\n\r\n /**\r\n * if we are still loading - stop it\r\n */\r\n if (this.loading()) {\r\n this.loading.set(false);\r\n\r\n /**\r\n * unsubscribe from options to prevent their further processing\r\n */\r\n this.unsubscribeFromOptions();\r\n\r\n /**\r\n * unsubscribe from display control change to prevent it from sending the data\r\n */\r\n this.unsubscribeFromDisplayedControl();\r\n\r\n /**\r\n * resubscribe it again to return to normal workflow\r\n */\r\n this.subscribeToDisplayedControlValueChanged();\r\n\r\n /**\r\n * set loadSuggestionOnInit to resume loading when control is focused again\r\n */\r\n this.resetInitialState();\r\n }\r\n\r\n if (this.closePanelEnabled && !this.preventClick) this.trigger?.closePanel();\r\n this.blurInput.emit();\r\n }\r\n\r\n /** @ignore */\r\n onFocus(): void {\r\n /**\r\n * if we have no displayed options,\r\n * we can load data on initial value,\r\n * we are not dealing with static options,\r\n * initial suggestions are not yet loaded,\r\n * and we have input value or can emit empty values - we can start loading suggestions\r\n */\r\n if (\r\n !this.displayedOptions.size &&\r\n this.loadSuggestionOnInit &&\r\n !this.staticOptions &&\r\n !this.initialSuggestionsChecked &&\r\n (this.input?.nativeElement.value || this.emitEmptyValues)\r\n ) {\r\n this.loading.set(true);\r\n\r\n this.unsubscribeFromOptions();\r\n\r\n /**\r\n * if we are loading on init and display control has value - mark it as dirty for consistency\r\n */\r\n if (this.loadSuggestionOnInit && this.displayControl.value && this.displayControl.pristine) {\r\n this.displayControl.markAsDirty();\r\n }\r\n\r\n this.emitSearchValueInput.emit(this.input?.nativeElement.value);\r\n }\r\n\r\n this.initialSuggestionsChecked = true;\r\n this.focusInput.emit();\r\n }\r\n\r\n /** @ignore */\r\n onInput(eventTarget: EventTarget | null): void {\r\n if (eventTarget instanceof HTMLInputElement || eventTarget instanceof HTMLTextAreaElement) {\r\n // Auto-resize textarea if wrapOptionText is enabled - defer to avoid change detection error\r\n if (this.wrapOptionText && eventTarget instanceof HTMLTextAreaElement) {\r\n Promise.resolve().then(() => {\r\n this.autoResizeTextarea(eventTarget);\r\n // Ensure change detection after resizing\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n if (this.trimValue) {\r\n const value = eventTarget.value.trim();\r\n if (value !== this.getDisplayedValueAsString(false).trim() && (!value || value.length >= this.minValueLength)) {\r\n this.displayControl.setValue(eventTarget.value);\r\n // Ensure change detection after value update\r\n this.cdr.detectChanges();\r\n }\r\n } else {\r\n this.displayControl.setValue(eventTarget.value);\r\n // Ensure change detection after value update\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n getDisplayedValueAsString(checkAdditionalFormatting = true): string {\r\n let value = '';\r\n\r\n if (this.displayControl.value) {\r\n value =\r\n typeof this.displayControl.value == 'string'\r\n ? this.displayControl.value\r\n : (this.displayControl.value.value ?? '');\r\n }\r\n\r\n if (checkAdditionalFormatting && this.mustApplyAdditionalFiltering() && this.previousControlValue !== value) {\r\n this.previousControlValue = value;\r\n\r\n this.displayedOptions = new Map();\r\n\r\n this.allOptions.forEach((optionValue, option) => {\r\n if (optionValue.toLowerCase().includes(value.toLowerCase())) {\r\n this.displayedOptions.set(option, optionValue);\r\n }\r\n });\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /** @ignore */\r\n reset(): void {\r\n this.displayedOptions = new Map(this.allOptions);\r\n }\r\n\r\n /** @ignore */\r\n onStaticOptionMouseDown(event: MouseEvent, option: SearchDropdownStaticOption): void {\r\n /**\r\n * only proceed if left mouse button was clicked\r\n */\r\n if (event.button !== 0) return;\r\n\r\n this.activateStaticOption(option);\r\n }\r\n\r\n /** @ignore */\r\n onOptionMouseDown(event: MouseEvent, option: CustomMatOption): void {\r\n /**\r\n * only proceed if left mouse button was clicked\r\n */\r\n if (event.button !== 0) return;\r\n\r\n this.modifyOptionClickEvent(option);\r\n\r\n if (this.preventClick) return;\r\n\r\n /**\r\n * NOTE: we set displayControl value in mousedown event to override value setting in onClick\r\n * and avoid UI artifacts connected with it\r\n */\r\n this.displayControl.setValue(option?.value);\r\n\r\n // Trigger textarea resize after value is set from option\r\n if (this.wrapOptionText && this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n Promise.resolve().then(() => {\r\n this.autoResizeTextarea(this.input!.nativeElement as HTMLTextAreaElement);\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n displayFn = (option?: { key: DropdownComponentOption; value: string }): string => {\r\n return option ? option.value : '';\r\n };\r\n\r\n /** @ignore */\r\n resetInitialState(): void {\r\n this.loadSuggestionOnInit = true;\r\n this.initialSuggestionsChecked = false;\r\n }\r\n\r\n /** @ignore */\r\n canShowError(): boolean {\r\n return !!this.displayControl.errors && (this.displayControl.touched || this.immediateValidation);\r\n }\r\n\r\n /** @ignore */\r\n protected touchInvalid(control: FormControl): void {\r\n super.touchInvalid(control);\r\n super.touchInvalid(this.displayControl);\r\n }\r\n\r\n /** @ignore */\r\n protected processOptions(): void {\r\n this.allOptions = new Map();\r\n\r\n /**\r\n * if options are not provided - reset\r\n */\r\n if (!this.options) {\r\n this.loading.set(false);\r\n this.displayedOptions = new Map();\r\n return;\r\n }\r\n\r\n /**\r\n * \"processOptions\" is fired any time options change - thus we need to set loading to true when it happens\r\n */\r\n this.loading.set(true);\r\n\r\n /**\r\n * subscribe to options to extract displayedOptions from them\r\n * NOTE: we do not use displayedOptions as Observable because\r\n * we may need displayedOptions directly on onKeyDown event\r\n */\r\n this.optionsSubscription = this.options.subscribe((options: DropdownComponentOptions) => {\r\n this.loading.set(false);\r\n\r\n /**\r\n * turn DropdownComponentOptions into DropdownComponentDisplayedOptions\r\n */\r\n super.processOptions(options);\r\n\r\n this.allOptions = new Map(this.displayedOptions);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n protected setupSubscriptions(): void {\r\n this.controlValueToDisplayedControlValue();\r\n\r\n /**\r\n * subscribe to control value change to synchronize the value when changed externally\r\n */\r\n this.valueControlSubscription = this.valueControl.valueChanges.subscribe(() => {\r\n if (!this.isInternalValueSet) {\r\n this.controlValueToDisplayedControlValue();\r\n }\r\n });\r\n\r\n /**\r\n * sync display control statuses with value control status for proper error display\r\n */\r\n this.valueControlStatusSubscription = this.valueControl.statusChanges.subscribe(() => this.syncState());\r\n\r\n this.subscribeToDisplayedControlValueChanged();\r\n\r\n /**\r\n * listen to scroll to reposition the dropdown\r\n */\r\n this.unsubscribeFromScroll = this.renderer.listen(\r\n DomHelper.getScrollableParent(this.ref.nativeElement),\r\n 'scroll',\r\n () => {\r\n if (this.trigger?.panelOpen) this.trigger.updatePosition();\r\n },\r\n );\r\n\r\n this.syncState();\r\n }\r\n\r\n /** @ignore */\r\n private subscribeToDisplayedControlValueChanged(): void {\r\n this.displayedControlSubscription = this.displayControl.valueChanges\r\n .pipe(\r\n map((value?: SearchDropdownDisplayControlValue) => {\r\n if (!value) value = '';\r\n return value;\r\n }),\r\n tap((value) => {\r\n /**\r\n * mark displayControl as dirty\r\n * because MatAutocomplete does not do it automatically\r\n */\r\n this.displayControl.markAsDirty();\r\n\r\n /**\r\n * unsubscribe from previous options to stop loading them\r\n */\r\n this.unsubscribeFromOptions();\r\n\r\n /**\r\n * stop processing if value is not provided\r\n */\r\n if (!value) {\r\n /**\r\n * clear displayed options if value is not provided\r\n */\r\n if (!this.staticOptions) {\r\n this.displayedOptions = new Map();\r\n }\r\n\r\n this.setControlValue(null);\r\n\r\n if (this.loading()) {\r\n /**\r\n * set loadSuggestionOnInit to resume loading when control is focused again\r\n * NOTE: this is required because by the time onBlur happens - loading is false and\r\n * this method will not be fired from onBlur\r\n */\r\n this.resetInitialState();\r\n }\r\n } else if (typeof value != 'string') {\r\n this.setControlValueFromOption(value.key, false);\r\n }\r\n this.loading.set(this.canEmitValue(value));\r\n }),\r\n debounce((value) => {\r\n return this.canEmitValue(value) && value ? timer(500) : of({});\r\n }),\r\n )\r\n .subscribe((value: SearchDropdownDisplayControlValue) => {\r\n if (this.canEmitValue(value)) {\r\n this.emitSearchValueInput.emit(<string>value);\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n private unsubscribeFromOptions(): void {\r\n this.optionsSubscription?.unsubscribe();\r\n }\r\n\r\n private unsubscribeFromDisplayedControl(): void {\r\n this.displayedControlSubscription?.unsubscribe();\r\n }\r\n\r\n /** @ignore */\r\n displayFirstError(control: FormControl = this.displayControl): string {\r\n return super.displayFirstError(control);\r\n }\r\n\r\n /** @ignore */\r\n clear(event?: MouseEvent): void {\r\n event?.stopPropagation();\r\n\r\n if (event && event.button !== 0) {\r\n return;\r\n }\r\n this.displayControl.setValue(null);\r\n this.displayControl.markAsTouched();\r\n\r\n // Fix ExpressionChangedAfterItHasBeenCheckedError by triggering change detection after value is cleared\r\n this.cdr.detectChanges();\r\n\r\n // If textarea, trigger resize after value is cleared and change detection is done\r\n if (this.wrapOptionText && this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n Promise.resolve().then(() => {\r\n this.autoResizeTextarea(this.input!.nativeElement as HTMLTextAreaElement);\r\n });\r\n }\r\n\r\n if (this.closePanelEnabled) this.trigger?.closePanel();\r\n }\r\n\r\n /** @ignore */\r\n togglePanel(event?: MouseEvent): void {\r\n event?.stopPropagation();\r\n if (this.trigger?.panelOpen) {\r\n if (this.closePanelEnabled) this.trigger?.closePanel();\r\n } else {\r\n this.trigger?.openPanel();\r\n this.input?.nativeElement.focus();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private controlValueToDisplayedControlValue(): void {\r\n /**\r\n * extract displayable value as string from valueControl, if it is not empty\r\n */\r\n const displayedValue = this.valueControl.value\r\n ? this.getDisplayedValue(this.valueControl.value)\r\n : this.valueControl.value;\r\n\r\n /**\r\n * use it to build displayedControl value\r\n */\r\n this.displayControl.setValue(\r\n displayedValue ? { key: this.valueControl.value, value: displayedValue } : this.valueControl.value,\r\n { emitEvent: false },\r\n );\r\n\r\n // Trigger textarea resize after DOM updates to avoid ExpressionChangedAfterItHasBeenCheckedError\r\n if (this.wrapOptionText && this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n Promise.resolve().then(() => {\r\n this.autoResizeTextarea(this.input!.nativeElement as HTMLTextAreaElement);\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n private mustApplyAdditionalFiltering(): boolean {\r\n return !this.staticOptions || (this.staticOptions && this.filterOptions);\r\n }\r\n\r\n /** @ignore */\r\n private unselectComponent(): void {\r\n if (this.input?.nativeElement instanceof HTMLInputElement || this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n this.input.nativeElement.blur();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private activateStaticOption(option?: SearchDropdownStaticOption): void {\r\n if (!option) return;\r\n\r\n /**\r\n * ignoreOnBlur to \"true\" to disable\r\n * component's input onBlur event\r\n * NOTE: this is needed when we click on static options\r\n */\r\n this.ignoreOnBlur = true;\r\n\r\n this.moreDataMatOption?.deselect();\r\n this.noDataMatOption?.deselect();\r\n\r\n if (option.onClick) {\r\n option.onClick(this.input?.nativeElement.value);\r\n }\r\n\r\n this.unselectComponent();\r\n }\r\n\r\n /** @ignore */\r\n private setValidators(): void {\r\n /**\r\n * make sure displayControl has the same validators as control\r\n */\r\n this.displayControl.addValidators(this.valueControl.validator ?? []);\r\n /**\r\n * required validator must be set manually in this component\r\n * because controls are disconnected from input field\r\n */\r\n if (this.required) {\r\n this.valueControl.addValidators(Validators.required);\r\n this.displayControl.addValidators(Validators.required);\r\n }\r\n this.valueControl.updateValueAndValidity({ emitEvent: false });\r\n this.displayControl.updateValueAndValidity({ emitEvent: false });\r\n }\r\n\r\n /** @ignore */\r\n private canEmitValue(value: SearchDropdownDisplayControlValue): boolean {\r\n /**\r\n * only emit event if value is a string, and we can emit empty values, or it is not empty\r\n * NOTE: it disallows to emit explicitly selected \"REAL\" values\r\n */\r\n return !this.staticOptions && typeof value == 'string' && (this.emitEmptyValues || !!value);\r\n }\r\n\r\n /** @ignore */\r\n private setControlValueFromString(displayedValue: string): void {\r\n let isValueApplied = false;\r\n\r\n /**\r\n * loop through displayedOptions;\r\n * if matching displayedOption value found - use displayedOptions option as control value\r\n */\r\n for (const [option, value] of this.displayedOptions) {\r\n if (value.toLowerCase() === displayedValue.toLowerCase()) {\r\n this.setControlValueFromOption(option);\r\n isValueApplied = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!isValueApplied) {\r\n this.clear();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private setControlValueFromOption(option: DropdownComponentOption | null, skipSame = true): void {\r\n this.unselectComponent();\r\n this.setControlValue(option, skipSame);\r\n\r\n // Trigger textarea resize after value is set from option\r\n if (this.wrapOptionText && this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n Promise.resolve().then(() => {\r\n this.autoResizeTextarea(this.input!.nativeElement as HTMLTextAreaElement);\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n private setControlValue(option: DropdownComponentOption | null, skipSame = true) {\r\n /**\r\n * only update control value if it differs from provided one\r\n * NOTE: we need this check to avoid emitting control value change\r\n * when the same dropdown option is selected in dropdown several times\r\n */\r\n if (skipSame && this.valueControl.value === option) {\r\n return;\r\n }\r\n\r\n this.valueControl.markAsTouched();\r\n this.valueControl.markAsDirty();\r\n\r\n /**\r\n * toggle isInternalValueSet to make\r\n * sure internal subscription to control value will\r\n * ignore this setValue event\r\n */\r\n this.isInternalValueSet = true;\r\n this.valueControl.setValue(option);\r\n this.isInternalValueSet = false;\r\n }\r\n\r\n private overrideKeydownHandler(): void {\r\n if (this.trigger) {\r\n const handler = this.trigger._handleKeydown;\r\n\r\n /**\r\n * this allows to block default keydown handler if needed\r\n */\r\n this.trigger._handleKeydown = (event: KeyboardEvent): void => {\r\n const option = <CustomMatOption>this.trigger?.activeOption;\r\n\r\n this.modifyOptionClickEvent(option);\r\n\r\n handler.call(this.trigger, event);\r\n\r\n /**\r\n * make sure option does not lose \"selected\" state if click is prevented\r\n * NOTE: this is d one for \"nicety\"\r\n */\r\n if (this.preventClick && option && event.key === 'Enter') {\r\n this.auto?._keyManager.setActiveItem(option);\r\n }\r\n };\r\n }\r\n }\r\n\r\n private modifyOptionClickEvent(option: CustomMatOption): void {\r\n /**\r\n * modify \"_selectViaInteraction\" method of the option\r\n * so that we can block its selection if needed\r\n */\r\n if (option && !option.modified) {\r\n option.modified = true;\r\n\r\n const handler = option._selectViaInteraction;\r\n\r\n option._selectViaInteraction = () => {\r\n if (this.preventClick) {\r\n this.auto?._keyManager.setActiveItem(-1);\r\n return;\r\n }\r\n handler.call(option);\r\n };\r\n }\r\n }\r\n\r\n /** @ignore */\r\n tooltipLabel(option: { key: DropdownComponentOption; value: string }): string {\r\n\r\n if (this.displayValueFormatter) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const formattedValue = this.displayValueFormatter(option.value!, option.key);\r\n return typeof formattedValue === 'string' ? formattedValue : '';\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n return option!.value! ?? '';\r\n }\r\n\r\n /** @ignore */\r\n private setupTextareaAutoResize(): void {\r\n if (this.input?.nativeElement instanceof HTMLTextAreaElement) {\r\n // Initial resize\r\n this.autoResizeTextarea(this.input.nativeElement);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private autoResizeTextarea(textarea: HTMLTextAreaElement): void {\r\n // Reset height to calculate the correct scrollHeight\r\n textarea.style.height = 'auto';\r\n\r\n // Calculate the new height based on content\r\n const scrollHeight = textarea.scrollHeight;\r\n const maxHeight = 120; // Match the max-height from CSS\r\n const minHeight = 24; // Match the min-height from CSS\r\n\r\n // Set the new height within bounds\r\n const newHeight = Math.min(Math.max(scrollHeight, minHeight), maxHeight);\r\n textarea.style.height = newHeight + 'px';\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'is-open': trigger?.panelOpen,\r\n invalid: canShowError(),\r\n 'success-label': canShowSuccess(),\r\n 'x-small': smallSize,\r\n 'wrap-trigger-text': wrapOptionText,\r\n 'has-label': !!label\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if ((label || required) && !smallSize) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n @if (wrapOptionText) {\r\n <textarea\r\n #input\r\n [disabled]=\"displayControl.disabled\"\r\n (keydown.enter)=\"onKeyDown($event.target)\"\r\n (blur)=\"onBlur()\"\r\n (input)=\"onInput($event.target)\"\r\n (focus)=\"onFocus()\"\r\n [autocomplete]=\"'none'\"\r\n [id]=\"id\"\r\n matInput\r\n [value]=\"getDisplayedValueAsString()\"\r\n [attr.maxlength]=\"maxlength\"\r\n [matAutocomplete]=\"auto\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n rows=\"1\"\r\n class=\"auto-resize-textarea\"\r\n ></textarea>\r\n } @else {\r\n <input\r\n #input\r\n [disabled]=\"displayControl.disabled\"\r\n (keydown.enter)=\"onKeyDown($event.target)\"\r\n (blur)=\"onBlur()\"\r\n (input)=\"onInput($event.target)\"\r\n (focus)=\"onFocus()\"\r\n type=\"text\"\r\n [autocomplete]=\"'none'\"\r\n [id]=\"id\"\r\n matInput\r\n [value]=\"getDisplayedValueAsString()\"\r\n [attr.maxlength]=\"maxlength\"\r\n [matAutocomplete]=\"auto\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n />\r\n }\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayFn\"\r\n [disableRipple]=\"true\"\r\n [class]=\"\r\n 'ads-dropdown-panel' +\r\n (fitContent ? ' fit-content' : '') +\r\n (loading() ? ' loading' : '') +\r\n (preventClick ? '' : ' clickable') +\r\n ' ' +\r\n panelClass\r\n \"\r\n >\r\n @for (option of displayedOptions | keyvalue: applySorting; track $index) {\r\n <mat-option\r\n #opt\r\n [value]=\"option\"\r\n [ngClass]=\"{ 'wrap-text': wrapOptionText }\"\r\n (mousedown)=\"onOptionMouseDown($event, opt)\"\r\n [matTooltip]=\"tooltipLabel(option)\"\r\n [matTooltipDisabled]=\"useOptionTemplate || !showTooltip\"\r\n >\r\n @if (useOptionTemplate) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionRef()\"\r\n [ngTemplateOutletContext]=\"{ $implicit: option.key, value: option.value }\"\r\n ></ng-template>\r\n } @else {\r\n <span\r\n [ngClass]=\"{ 'wrap-text': wrapOptionText }\"\r\n [innerHtml]=\"\r\n displayValueFormatter\r\n ? displayValueFormatter(\r\n option!.value! | adsSearchDropdownHighlighter: displayControl.value,\r\n option.key\r\n )\r\n : (option!.value! | adsSearchDropdownHighlighter: displayControl.value)\r\n \"\r\n ></span>\r\n }\r\n </mat-option>\r\n }\r\n\r\n @if (canUseMoreDataOption) {\r\n <hr class=\"no-results-hr\" />\r\n <mat-option #moreDataMatOption class=\"extra\" [disabled]=\"!moreDataOption!.onClick\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"extraOptionValue\"\r\n [ngTemplateOutletContext]=\"{ $implicit: moreDataOption }\"\r\n />\r\n </mat-option>\r\n }\r\n\r\n @if (canUseNoDataOption) {\r\n <mat-option #noDataMatOption class=\"extra\" [disabled]=\"!noDataOption!.onClick\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"extraOptionValue\"\r\n [ngTemplateOutletContext]=\"{ $implicit: noDataOption }\"\r\n />\r\n </mat-option>\r\n }\r\n\r\n @if (canUseStaticOption) {\r\n @if (displayedOptions.size) {\r\n <hr class=\"no-results-hr\" />\r\n }\r\n <mat-option #staticDataMatOption class=\"extra\" [disabled]=\"!staticDataOption!.onClick\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"extraOptionValue\"\r\n [ngTemplateOutletContext]=\"{ $implicit: staticDataOption }\"\r\n />\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\r\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\r\n </button>\r\n }\r\n @if (showDropdownIcon) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"togglePanel($event)\" class=\"action-icon\">\r\n <ads-icon\r\n name=\"chevron_down\"\r\n [size]=\"smallSize ? 'xxs' : 'xs'\"\r\n [theme]=\"'iconPrimary'\"\r\n class=\"chevron-down\"\r\n />\r\n </button>\r\n }\r\n @if (!staticOptions && loading()) {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n [disabled]=\"true\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon name=\"loading\" [stroke]=\"'iconPrimary'\" [size]=\"smallSize ? 'xxs' : 'xs'\" />\r\n </button>\r\n }\r\n @if (!staticOptions && !loading()) {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n [disabled]=\"!canSearch\"\r\n (click)=\"canSearch ? onSearchIconClick($event) : null\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon name=\"search\" size=\"xs\" [theme]=\"'iconPrimary'\" class=\"search-icon\" />\r\n </button>\r\n }\r\n @if(externalButton()) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"onExternalButtonClick($event)\" class=\"action-icon external-button\">\r\n <ads-icon [name]=\"externalButton()!\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"external-icon\" />\r\n </button>\r\n }\r\n </mat-form-field>\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n }\r\n\r\n <ng-template #extraOptionValue let-option>\r\n <span\r\n (click)=\"$event.stopPropagation()\"\r\n (mousedown)=\"onStaticOptionMouseDown($event, option!)\"\r\n [innerHTML]=\"option!.label\"\r\n ></span>\r\n </ng-template>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsSearchDropdownComponent } from './search-dropdown.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { AdsSearchDropdownHighlighterPipeModule } from './search-dropdown-highlighter.pipe';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n AdsIconModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n MatSelectModule,\r\n AdsSearchDropdownHighlighterPipeModule,\r\n MatDatepickerModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n MatTooltipModule,\r\n ],\r\n declarations: [AdsSearchDropdownComponent],\r\n exports: [AdsSearchDropdownComponent],\r\n})\r\nexport class AdsSearchDropdownModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsInputComponent } from '../../input';\r\nimport { adsIconLoading, adsIconSearch } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-search-input',\r\n templateUrl: './search-input.component.html',\r\n styleUrls: ['../../input/input.component.scss', '../../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsSearchInputComponent extends AdsInputComponent {\r\n /** a callback function that will be called every time when enter button or search icons are clicked */\r\n @Input() searchCallback?: (value: string) => void;\r\n\r\n /** set to true if you want to execute searchCallback when icon is clicked */\r\n @Input() isIconClickable = false;\r\n\r\n /** set to true to emit search events on empty search value */\r\n @Input() searchEmptyValue = false;\r\n\r\n /** optional param to show spinner */\r\n @Input() loading? = false;\r\n\r\n constructor() {\r\n super();\r\n this.registry.register([adsIconSearch, adsIconLoading]);\r\n }\r\n\r\n /** ignore */\r\n get canClick() {\r\n return this.isIconClickable && this.canSearch();\r\n }\r\n\r\n /** ignore */\r\n onSearch() {\r\n if (this.canSearch() && this.searchCallback) {\r\n this.searchCallback(this.valueControl.value);\r\n }\r\n }\r\n\r\n /** ignore */\r\n private canSearch() {\r\n return this.valueControl.value || this.searchEmptyValue;\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'success-label': canShowSuccess(),\r\n 'error-label': canShowError(),\r\n 'x-small': smallSize,\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if ((label || required) && !smallSize) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <input\r\n matInput\r\n (keydown.enter)=\"onSearch()\"\r\n [maxlength]=\"maxlength\"\r\n [attr.pattern]=\"pattern\"\r\n [id]=\"id\"\r\n [type]=\"type\"\r\n [formControl]=\"valueControl\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\r\n <ads-icon name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" class=\"cross-icon\" />\r\n </button>\r\n }\r\n\r\n @if (loading) {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n [disabled]=\"true\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon name=\"loading\" [stroke]=\"'iconPrimary'\" [size]=\"smallSize ? 'xxs' : 'xs'\" />\r\n </button>\r\n } @else {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n [disabled]=\"!canClick\"\r\n (click)=\"canClick ? onSearch() : null\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon name=\"search\" size=\"xs\" [theme]=\"'iconPrimary'\" class=\"search-icon\" />\r\n </button>\r\n }\r\n </mat-form-field>\r\n\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsSearchInputComponent } from './search-input.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n AdsIconModule,\r\n MatInputModule,\r\n MatProgressSpinnerModule,\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n MatSelectModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsSearchInputComponent],\r\n exports: [AdsSearchInputComponent],\r\n})\r\nexport class AdsSearchInputModule {}\r\n","export const FORMAT_TIME = 'HH:mm';\r\nexport const FORMAT_DATE = 'MM/dd/yyyy';\r\nexport const FORMAT_DATETIME = 'MM/dd/yyyy HH:mm';\r\n\r\nexport interface DateTimeParseDisplay {\r\n dateInput?: string;\r\n datetimeInput?: string;\r\n timeInput?: string;\r\n}\r\n\r\nexport class CustomDateTimeFormat {\r\n private _parse: DateTimeParseDisplay = {\r\n dateInput: FORMAT_DATE,\r\n datetimeInput: FORMAT_DATETIME,\r\n timeInput: FORMAT_TIME,\r\n };\r\n private _display: DateTimeParseDisplay = {\r\n dateInput: FORMAT_DATE,\r\n datetimeInput: FORMAT_DATETIME,\r\n timeInput: FORMAT_TIME,\r\n };\r\n\r\n set parse(parse: DateTimeParseDisplay) {\r\n this._parse = Object.assign({}, this._parse, parse);\r\n }\r\n\r\n get parse(): DateTimeParseDisplay {\r\n return this._parse;\r\n }\r\n\r\n set display(display: DateTimeParseDisplay) {\r\n this._display = Object.assign({}, this._display, display);\r\n }\r\n\r\n get display(): DateTimeParseDisplay {\r\n return this._display;\r\n }\r\n\r\n updateParse(parse: DateTimeParseDisplay): void {\r\n this.parse = parse;\r\n }\r\n\r\n updateDisplay(display: DateTimeParseDisplay): void {\r\n this.display = display;\r\n }\r\n}\r\n","export class DatetimeTemplateFormatter {\r\n private container: HTMLElement | null = null;\r\n private isFirstRun = true;\r\n\r\n run(view: 'clock' | 'month' | 'year' | 'multi-year'): void {\r\n /**\r\n * make sure container has proper class to encapsulate styles\r\n */\r\n this.container = document.querySelector('mat-datetimepicker-content');\r\n this.container?.classList.add('ads-datetimepicker-calendar');\r\n\r\n /**\r\n * if isFirstRun=true (we've just opened the picker)\r\n * hide container to allow concealed rearranging\r\n */\r\n if (this.isFirstRun) {\r\n this.container?.classList.add('hidden');\r\n }\r\n\r\n setTimeout(() => {\r\n this.rearrangeTemplate(view);\r\n this.isFirstRun = false;\r\n });\r\n }\r\n\r\n reset(): void {\r\n this.isFirstRun = true;\r\n }\r\n\r\n private rearrangeTemplate(view: 'clock' | 'month' | 'year' | 'multi-year'): void {\r\n const calendar: HTMLElement | null = document.querySelector('mat-datetimepicker-calendar');\r\n\r\n if (!calendar) return;\r\n\r\n /**\r\n * make sure calendar only has one \"view\" class\r\n */\r\n calendar.classList.remove('clock', 'month', 'year', 'multi-year');\r\n calendar.classList.add(view);\r\n\r\n const header: HTMLElement | null = calendar.querySelector('.mat-datetimepicker-calendar-header');\r\n const content: HTMLElement | null = calendar.querySelector('.mat-datetimepicker-calendar-content');\r\n\r\n if (!header || !content) return;\r\n\r\n /**\r\n * get all the buttons that we need to rearrange\r\n */\r\n const yearButton = header.querySelector('.mat-datetimepicker-calendar-header-year');\r\n const monthButton = content.querySelector('.mat-datetimepicker-calendar-period-button');\r\n const prevButton =\r\n content.querySelector('.mat-datetimepicker-calendar-previous-button') ??\r\n header.querySelector('.mat-datetimepicker-calendar-previous-button');\r\n const nextButton =\r\n content.querySelector('.mat-datetimepicker-calendar-next-button') ??\r\n header.querySelector('.mat-datetimepicker-calendar-next-button');\r\n\r\n /**\r\n * create headerLine1 that will contain month name, year value and year prev/next buttons\r\n */\r\n const headerLine1 = header.querySelector('.header.line-1') ?? document.createElement('div');\r\n headerLine1.className = 'header line-1';\r\n headerLine1.innerHTML = '';\r\n\r\n /**\r\n * create headerSubLine1 that will contain month name and year value\r\n */\r\n const headerSubLine1 = document.createElement('div');\r\n headerSubLine1.className = 'sub-line-1';\r\n\r\n if (yearButton) {\r\n const svg: HTMLElement | null = yearButton.querySelector('.arrow-down');\r\n const monthShortcut: HTMLElement | null = document.createElement('div');\r\n if (view !== 'year' && view !== 'clock') {\r\n monthShortcut.className = 'month-shortcut';\r\n monthShortcut.innerHTML = monthButton?.textContent?.slice(0, 3) || '';\r\n yearButton.prepend(monthShortcut);\r\n /**\r\n * create arrow down icon\r\n */\r\n const arrowSVG = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"11\" height=\"8\" viewBox=\"0 0 11 8\" fill=\"none\">\r\n <path d=\"M0.5 0.0178223L10.5 0.0178224L5.5 7.01782L0.5 0.0178223Z\" />\r\n </svg>`;\r\n\r\n const arrowDiv = document.createElement('div');\r\n arrowDiv.className = 'arrow-down';\r\n arrowDiv.innerHTML = arrowSVG;\r\n /**\r\n * append arrow to the button\r\n */\r\n yearButton.append(arrowDiv);\r\n }\r\n\r\n /**\r\n * remove svg on a year view\r\n */\r\n if (svg && (view === 'year' || view === 'clock')) {\r\n svg.remove();\r\n }\r\n\r\n /**\r\n * remove svg on a year view\r\n */\r\n const monthEl: HTMLElement | null = yearButton.querySelector('.month-shortcut');\r\n\r\n if (monthEl && (view === 'year' || view === 'clock')) {\r\n monthEl.remove();\r\n }\r\n\r\n /**\r\n * append year to subLine1\r\n */\r\n headerSubLine1.append(yearButton);\r\n }\r\n\r\n /**\r\n * only append headerSubLine1 to he headerLine1 if it has items\r\n */\r\n if (headerSubLine1.hasChildNodes() && view !== 'clock') {\r\n headerLine1.append(headerSubLine1);\r\n }\r\n\r\n /**\r\n * create headerSubLine2 that will contain year prev/next buttons\r\n */\r\n const headerSubLine2 = document.createElement('div');\r\n headerSubLine2.className = 'sub-line-2';\r\n\r\n if (prevButton) {\r\n headerSubLine2.append(prevButton);\r\n }\r\n\r\n if (nextButton) {\r\n headerSubLine2.append(nextButton);\r\n }\r\n\r\n /**\r\n * only append headerSubLine2 to he headerLine1 if it has items\r\n */\r\n if (headerSubLine2.hasChildNodes()) {\r\n headerLine1.append(headerSubLine2);\r\n }\r\n\r\n /**\r\n * only append headerLine1 header if it has items\r\n */\r\n if (headerLine1.hasChildNodes()) {\r\n header.prepend(headerLine1);\r\n }\r\n\r\n /**\r\n * remove existing div to headerLine2 that will contain date and time information\r\n */\r\n const headerLine2 = header.querySelector('.mat-datetimepicker-calendar-header-date-time');\r\n\r\n if (headerLine2) {\r\n headerLine2.remove();\r\n }\r\n\r\n /**\r\n * make sure calendar container is not hidden anymore\r\n */\r\n this.container?.classList.remove('hidden');\r\n\r\n /**\r\n * Add event listeners to the buttons to detect month changes\r\n */\r\n\r\n if (this.isFirstRun) {\r\n this.addMonthChangeListeners(prevButton, nextButton);\r\n }\r\n }\r\n\r\n private addMonthChangeListeners(prevButton: Element | null, nextButton: Element | null): void {\r\n if (prevButton) {\r\n prevButton.addEventListener('click', () => {\r\n this.clearHeaderLine1();\r\n });\r\n }\r\n\r\n if (nextButton) {\r\n nextButton.addEventListener('click', () => {\r\n this.clearHeaderLine1();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Remove old month label and prevent duplicate arrow down\r\n */\r\n private clearHeaderLine1(): void {\r\n const monthLabel = document.querySelector('.month-shortcut');\r\n const arrowIcon = document.querySelector('.arrow-down');\r\n if (monthLabel && arrowIcon) {\r\n monthLabel.remove();\r\n arrowIcon.remove();\r\n this.run('month');\r\n }\r\n }\r\n}\r\n","import { Directive, Inject, Input, NgModule, OnChanges, Optional } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { MAT_DATETIME_FORMATS } from '@mat-datetimepicker/core';\r\nimport { CustomDateTimeFormat } from './custom-datetime-format';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\n\r\n@Directive({\r\n selector: '[dateTimePickerFormat]',\r\n providers: [\r\n {\r\n provide: MAT_DATETIME_FORMATS,\r\n useClass: CustomDateTimeFormat,\r\n },\r\n ],\r\n standalone: false,\r\n})\r\nexport class DateTimePickerFormatDirective implements OnChanges {\r\n /** Custom display format that will override current format for this component */\r\n @Input() customDisplayFormat: GENERIC_COLLECTION = {};\r\n /** Set to use custom display format, overriding the one, provided by locale */\r\n @Input() overrideDisplayFormat = true;\r\n\r\n ngOnChanges() {\r\n if (this.overrideDisplayFormat) {\r\n this.format.updateDisplay(this.customDisplayFormat);\r\n this.format.updateParse(this.customDisplayFormat);\r\n this.ngControl.valueAccessor?.writeValue(this.ngControl.value);\r\n }\r\n }\r\n\r\n constructor(\r\n @Inject(MAT_DATETIME_FORMATS) private format: CustomDateTimeFormat,\r\n @Optional() private ngControl: NgControl,\r\n ) {}\r\n}\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [DateTimePickerFormatDirective],\r\n exports: [DateTimePickerFormatDirective],\r\n})\r\nexport class DateTimePickerFormatDirectiveModule {}\r\n","import {\r\n Input,\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n SimpleChange,\r\n OnChanges,\r\n ChangeDetectorRef,\r\n ViewChild,\r\n ElementRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { AbstractInputComponent } from '../../abstracts/abstract.input.component';\r\nimport { FormControl, FormControlStatus, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { adsIconCross, adsIconDatepicker, adsIconStatusProcessing } from '@ascentgl/ads-icons/icons';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { add } from 'date-fns';\r\nimport { FORMAT_DATETIME } from './custom-datetime-format';\r\nimport { MatDatetimepickerComponent, MatDatetimepickerInputEvent } from '@mat-datetimepicker/core';\r\nimport { DatetimeTemplateFormatter } from './datetime-template.formatter';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: 'ads-datetimepicker',\r\n templateUrl: './datetimepicker.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n './datetimepicker.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsDatetimepickerComponent extends AbstractInputComponent implements OnChanges, OnInit, OnDestroy {\r\n /** @ignore */\r\n @ViewChild(MatDatetimepickerComponent) picker?: MatDatetimepickerComponent<unknown>;\r\n\r\n /** Choose between 12 and 24 hour time input mode. NOTE: twelveHour=true may have minor issues when allowPastValues=false */\r\n @Input() twelveHour = false;\r\n\r\n /** Set time offset relative to GMT. If parameter is omitted offset will be calculated based on browser info */\r\n @Input() offset?: number;\r\n\r\n /** Allow or forbid choosing date values from the past */\r\n @Input() allowPastValues = true;\r\n\r\n /** Set to inputting value manually */\r\n @Input() allowManualInput = true;\r\n\r\n /** Whether to use key shortcuts (\"y\", \"n\", \"t\") for setting the value */\r\n @Input() useShortcuts = true;\r\n\r\n /** Set to use custom display format, overriding the one, provided by locale */\r\n @Input() overrideDisplayFormat = true;\r\n\r\n /** Show or hide time picker */\r\n @Input() showTimePicker = true;\r\n\r\n /** if overrideDisplayFormat=true, this display format will be used */\r\n @Input() customDisplayFormat: string = FORMAT_DATETIME;\r\n\r\n /** Interval between 1 and 60 minus. \"5\" minutes is by default */\r\n @Input() timeInterval = 5;\r\n\r\n /** Optional class for styling CDK panel */\r\n @Input() overlayCdkClass = 'ads-datetimepicker-overlay';\r\n\r\n /** @ignore */\r\n @ViewChild('input') input?: ElementRef;\r\n\r\n /** @ignore */\r\n customDisplayFormatOverride: GENERIC_COLLECTION = {};\r\n\r\n /** @ignore */\r\n type: 'date' | 'time' | 'month' | 'year' | 'datetime' = 'datetime';\r\n\r\n /** @ignore */\r\n minDate?: string;\r\n\r\n /** @ignore */\r\n protected shortcuts: GENERIC_COLLECTION = {\r\n y: -1, //yesterday\r\n n: 0, //now\r\n t: 1, //tomorrow\r\n };\r\n\r\n /** @ignore */\r\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\r\n matDatepickerParse: 'Date and Time must appear in this format: MM/DD/YYYY HH:mm',\r\n matDatepickerMin: 'The value is too old',\r\n };\r\n\r\n /** @ignore */\r\n private subscriptions: Subscription[] = [];\r\n\r\n /** @ignore */\r\n private isDisplayValueChangeRegistered = false;\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n private templateFormatter = new DatetimeTemplateFormatter();\r\n\r\n private readonly overlayContainer = inject(OverlayContainer);\r\n constructor() {\r\n super();\r\n this.registry.register([adsIconCross, adsIconDatepicker, adsIconStatusProcessing]);\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.setupSubscriptions();\r\n this.applyCustomFormat();\r\n if (!this.allowPastValues) {\r\n this.setMinValue();\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n /** @ignore */\r\n ngOnChanges(changes: {\r\n customDisplayFormat: SimpleChange;\r\n offset: SimpleChange;\r\n showTimePicker: SimpleChange;\r\n immediateValidation: SimpleChange;\r\n allowPastValues: SimpleChange;\r\n }): void {\r\n if (changes.customDisplayFormat || changes.showTimePicker) {\r\n this.applyCustomFormat();\r\n }\r\n\r\n if (changes.offset && !changes.offset.isFirstChange()) {\r\n this.syncDisplayedValue();\r\n }\r\n\r\n if (changes.allowPastValues) {\r\n if (!this.allowPastValues) {\r\n this.setMinValue();\r\n } else {\r\n this.minDate = undefined;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n super.ngOnChanges(changes);\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n /** @ignore */\r\n toggle(event: MouseEvent): void {\r\n event.stopPropagation();\r\n if (this.picker?.opened) {\r\n this.picker.close();\r\n } else {\r\n this.picker?.open();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n get showExclamation() {\r\n return this.showExclamationOnError && this.displayControl.invalid && this.displayControl.touched;\r\n }\r\n\r\n get canClear() {\r\n return this.showClearButton && !!this.input?.nativeElement.value;\r\n }\r\n\r\n /** @ignore */\r\n canShowError(): boolean {\r\n return !!this.displayControl.errors && (this.displayControl.touched || this.immediateValidation);\r\n }\r\n\r\n /** @ignore */\r\n displayFirstError(control: FormControl = this.displayControl): string {\r\n /**\r\n * if we have format error - make sure to show it first\r\n */\r\n if (this.displayControl.errors?.matDatepickerParse) {\r\n this.displayControl.setErrors({ matDatepickerParse: this.displayControl.errors?.matDatepickerParse });\r\n }\r\n\r\n return super.displayFirstError(control);\r\n }\r\n\r\n /** @ignore */\r\n onKeyDown(event: KeyboardEvent): void {\r\n if (!(event.target instanceof HTMLInputElement)) {\r\n return;\r\n }\r\n\r\n /**\r\n * blur input to make sure the value is applied\r\n */\r\n if (event.key === 'Enter' && event.target instanceof HTMLInputElement) {\r\n this.setMinValue();\r\n event.target.blur();\r\n return;\r\n }\r\n\r\n if (!this.useShortcuts) {\r\n return;\r\n }\r\n\r\n const shortcutOffset = this.shortcuts[event.key?.toLowerCase()];\r\n\r\n /**\r\n * if one of the shortcuts was clicked - set current date value accordingly\r\n */\r\n if (shortcutOffset !== undefined) {\r\n /**\r\n * create date object. taking into account shortcut offset (yesterday, now, tomorrow)\r\n */\r\n const value: Date = this.createDate(shortcutOffset);\r\n\r\n /**\r\n * set date object to required offset value, and apply it to valueControl\r\n * (it will eventually sync displayControl too)\r\n */\r\n this.onChanged(this.dateToRequiredOffset(value).toISOString());\r\n\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n touchControls(): void {\r\n if (!this.displayControl.touched) {\r\n this.displayControl.markAsTouched();\r\n }\r\n\r\n if (!this.valueControl.touched) {\r\n this.valueControl.markAsTouched();\r\n }\r\n\r\n if (!this.displayControl.dirty) {\r\n this.displayControl.markAsDirty();\r\n }\r\n\r\n if (!this.valueControl.dirty) {\r\n this.valueControl.markAsDirty();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n clear(event: MouseEvent): void {\r\n /**\r\n * stop even propagation so that calendar won't open on \"clear\" button click\r\n */\r\n event.stopPropagation();\r\n\r\n this.displayControl.setValue(null);\r\n\r\n this.onChanged(this.displayControl.value);\r\n }\r\n\r\n /** @ignore */\r\n mousedown(event: MouseEvent): void {\r\n event.preventDefault();\r\n }\r\n\r\n /** @ignore */\r\n onOpened(): void {\r\n this.overlayContainer.getContainerElement().classList.add(this.overlayCdkClass ?? '');\r\n this.templateFormatter.reset();\r\n this.isDisplayValueChangeRegistered = false;\r\n }\r\n\r\n /** @ignore */\r\n onClosed(): void {\r\n this.overlayContainer.getContainerElement().classList.remove(this.overlayCdkClass ?? '');\r\n /**\r\n * NOTE: this is needed to override an issue when closing a dropdown passes focus to input\r\n * when allowManualInput is false\r\n */\r\n if (!this.allowManualInput) {\r\n this.input?.nativeElement.blur();\r\n }\r\n\r\n /**\r\n * if control value is empty, displayControl with be cleared (brought to initial state)\r\n */\r\n this.syncEmptyValues();\r\n\r\n /**\r\n * focus on control value and select time part\r\n */\r\n if (!this.showTimePicker && this.isDisplayValueChangeRegistered && this.type !== 'date') {\r\n this.input?.nativeElement.focus();\r\n\r\n const spacePosition = this.input?.nativeElement.value.lastIndexOf(' ');\r\n const totalLength = this.input?.nativeElement.value.length;\r\n\r\n if (spacePosition > -1) {\r\n this.input?.nativeElement.setSelectionRange(spacePosition + 1, spacePosition + (totalLength - spacePosition));\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onChanged(event: MatDatetimepickerInputEvent<string> | string | null): void {\r\n const value = event === null ? null : typeof event == 'string' ? event : event.value;\r\n\r\n /**\r\n * sync valueControl errors with displayControl errors\r\n * NOTE: this is needed for \"invalid format\" errors that are calculated for displayControl\r\n * by MatDatetimepicker component\r\n */\r\n this.valueControl.setErrors(this.displayControl.errors);\r\n\r\n this.onDisplayedValueChange(value ? new Date(value) : null);\r\n }\r\n\r\n onViewChanged(view: 'clock' | 'month' | 'year' | 'multi-year') {\r\n this.templateFormatter.run(view);\r\n }\r\n\r\n /** @ignore */\r\n protected touchInvalid(control: FormControl): void {\r\n super.touchInvalid(control);\r\n super.touchInvalid(this.displayControl);\r\n }\r\n\r\n /** @ignore */\r\n protected applyCustomFormat(): void {\r\n this.customDisplayFormatOverride = {};\r\n\r\n if (this.overrideDisplayFormat) {\r\n this.customDisplayFormatOverride.datetimeInput = this.customDisplayFormat;\r\n }\r\n\r\n if (!this.showTimePicker) {\r\n if (this.overrideDisplayFormat) {\r\n this.customDisplayFormatOverride.dateInput = this.customDisplayFormat;\r\n } else {\r\n this.customDisplayFormatOverride.dateInput = FORMAT_DATETIME;\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected setControlValue(control: FormControl, value: string | null = null, emitEvent = true): void {\r\n if (control.value !== value) {\r\n control.setValue(value, { emitEvent: emitEvent });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\r\n /**\r\n * always make sure that date string is in UTC format\r\n */\r\n const value: Date = new Date(valueToApply + (valueToApply.endsWith('Z') ? '' : 'Z'));\r\n\r\n this.setControlValue(this.displayControl, this.dateToRequiredOffset(value).toISOString());\r\n }\r\n\r\n /** @ignore */\r\n protected onDisplayedValueChange(value: Date | null): void {\r\n let newValue: null | string = null;\r\n\r\n if (value) {\r\n newValue = this.displayedValueToControlValue(value);\r\n }\r\n\r\n /**\r\n * only set value if it did change\r\n */\r\n if (newValue === this.valueControl.value) {\r\n return;\r\n }\r\n\r\n /**\r\n * set control value reverting offset calculation\r\n */\r\n this.setControlValue(this.valueControl, newValue);\r\n }\r\n\r\n /** @ignore */\r\n protected displayedValueToControlValue(value: Date): string {\r\n return this.dateToActualOffset(value).toISOString();\r\n }\r\n\r\n /** @ignore */\r\n protected setMinValue(): void {\r\n /**\r\n * calculate minimum allowed datetime if needed\r\n */\r\n this.minDate = this.dateToRequiredOffset().toISOString();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n /** @ignore */\r\n protected addOffset(date: Date, offset: number): Date {\r\n return add(date, { minutes: offset });\r\n }\r\n\r\n /** @ignore */\r\n protected removeOffset(date: Date, offset: number): Date {\r\n return add(date, { minutes: offset * -1 });\r\n }\r\n\r\n /** @ignore */\r\n protected getActualDateOffset(value: Date = this.createDate()): number {\r\n return value.getTimezoneOffset() * -1;\r\n }\r\n\r\n /** @ignore */\r\n protected getRequiredOffset(value: Date = this.createDate()): number {\r\n return this.offset ? this.offset * 60 : this.getActualDateOffset(value);\r\n }\r\n\r\n /** @ignore */\r\n protected createDate(daysShift = 0): Date {\r\n let value: Date = new Date();\r\n\r\n if (daysShift) {\r\n value = this.addOffset(value, daysShift * 24 * 60);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n protected syncState(status?: FormControlStatus): void {\r\n if (status === 'INVALID') {\r\n this.displayControl.setErrors(this.valueControl.errors);\r\n this.touchControls();\r\n } else {\r\n this.displayControl.setErrors([]);\r\n }\r\n\r\n super.syncState();\r\n }\r\n\r\n /** @ignore */\r\n private setupSubscriptions(): void {\r\n /**\r\n *\r\n *sync display control statuses with value control status for proper error display\r\n * make sure \"displayControl\" disabled state and value are synchronized with \"control\" disabled state and value\r\n */\r\n this.subscriptions.push(this.valueControl.statusChanges.subscribe((status) => this.syncState(status)));\r\n this.subscriptions.push(this.valueControl.valueChanges.subscribe(() => this.syncDisplayedValue()));\r\n\r\n /**\r\n * NOTE: registering display value change is needed to know when to focus time part of datetime if showTimePicker is false\r\n */\r\n this.subscriptions.push(\r\n this.displayControl.valueChanges.subscribe(() => (this.isDisplayValueChangeRegistered = true)),\r\n );\r\n\r\n /**\r\n * make sure displayControl has the same validators as control\r\n */\r\n this.displayControl.addValidators(this.valueControl.validator ?? []);\r\n /**\r\n * required validator must be set manually in this component\r\n * because valueControl is disconnected from input field\r\n */\r\n if (this.required) {\r\n this.valueControl.addValidators(Validators.required);\r\n }\r\n this.valueControl.updateValueAndValidity({ emitEvent: false });\r\n this.displayControl.updateValueAndValidity({ emitEvent: false });\r\n /**\r\n * perform initial synchronizations\r\n */\r\n this.syncState();\r\n this.syncDisplayedValue();\r\n }\r\n\r\n /** @ignore */\r\n private syncDisplayedValue(): void {\r\n /**\r\n * if control value is empty, displayControl with be cleared (brought to initial state)\r\n */\r\n if (this.syncEmptyValues()) return;\r\n\r\n this.onSyncDisplayedValue();\r\n }\r\n\r\n /** @ignore */\r\n private syncEmptyValues(): boolean {\r\n if (this.valueControl.value) return false;\r\n\r\n this.setControlValue(this.displayControl, this.valueControl.value, false);\r\n\r\n return true;\r\n }\r\n\r\n /** @ignore */\r\n private dateToRequiredOffset(value: Date = this.createDate()): Date {\r\n value = this.removeOffset(value, this.getActualDateOffset(value));\r\n return this.addOffset(value, this.getRequiredOffset(value));\r\n }\r\n\r\n /** @ignore */\r\n private dateToActualOffset(value: Date = this.createDate()): Date {\r\n value = this.addOffset(value, this.getActualDateOffset(value));\r\n return this.removeOffset(value, this.getRequiredOffset(value));\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div [ngStyle]=\"{ width: width }\">\r\n <mat-form-field\r\n [ngClass]=\"{\r\n 'immediate-validation': immediateValidation,\r\n 'no-left-padding': !showExclamation,\r\n invalid: canShowError(),\r\n manual: allowManualInput,\r\n 'success-label': canShowSuccess(),\r\n 'x-small': smallSize,\r\n }\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @if ((label || required) && !smallSize) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <mat-datetimepicker\r\n #datetimePicker\r\n (viewChanged)=\"onViewChanged($event)\"\r\n (opened)=\"onOpened()\"\r\n (closed)=\"onClosed()\"\r\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\r\n [openOnFocus]=\"!allowManualInput\"\r\n [twelvehour]=\"twelveHour\"\r\n [timeInterval]=\"timeInterval\"\r\n [mode]=\"'portrait'\"\r\n />\r\n <input\r\n (dateChange)=\"onChanged($event)\"\r\n dateTimePickerFormat\r\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\r\n [customDisplayFormat]=\"customDisplayFormatOverride\"\r\n #input\r\n matInput\r\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\r\n (blur)=\"touchControls()\"\r\n [tabIndex]=\"allowManualInput ? 0 : -1\"\r\n [min]=\"minDate || null\"\r\n [readonly]=\"!allowManualInput\"\r\n [formControl]=\"displayControl\"\r\n [matDatetimepicker]=\"datetimePicker\"\r\n autocomplete=\"false\"\r\n [id]=\"id\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n\r\n @if (canClear) {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\r\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\r\n </button>\r\n }\r\n\r\n @if (type === 'time') {\r\n <button\r\n matTextSuffix\r\n type=\"button\"\r\n mat-icon-button\r\n (click)=\"toggle($event)\"\r\n [disabled]=\"!showTimePicker\"\r\n class=\"action-icon\"\r\n >\r\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'xs'\" [stroke]=\"'iconPrimary'\" />\r\n </button>\r\n } @else {\r\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\r\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'xs'\" [stroke]=\"'iconPrimary'\" />\r\n @if (type === 'datetime') {\r\n <ads-icon\r\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\r\n name=\"status_processing\"\r\n [size]=\"smallSize ? 'xxxxs' : 'xxxs'\"\r\n [stroke]=\"'iconPrimary'\"\r\n />\r\n }\r\n </button>\r\n }\r\n </mat-form-field>\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NativeDateAdapter } from '@angular/material/core';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { format } from 'date-fns';\r\nimport { Injectable } from '@angular/core';\r\nimport { FORMAT_DATE, FORMAT_DATETIME, FORMAT_TIME } from './custom-datetime-format';\r\n\r\n@Injectable()\r\nexport class CustomDatetimeAdapter extends NativeDateAdapter {\r\n constructor() {\r\n super();\r\n }\r\n format(date: Date, displayFormat: string | GENERIC_COLLECTION): string {\r\n if (typeof displayFormat === 'string') {\r\n return format(date, displayFormat);\r\n } else {\r\n return super.format(date, displayFormat);\r\n }\r\n }\r\n\r\n parse(value: string, parseFormat?: string): Date | null {\r\n const dateRegex = /^(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])\\/\\d{4}$/;\r\n\r\n /**\r\n * Make invalid Date to prevent autofill date when user input invalid date\r\n */\r\n if (parseFormat == FORMAT_DATE && !dateRegex.test(value)) {\r\n return new Date('/');\r\n }\r\n\r\n if (parseFormat === FORMAT_TIME) {\r\n /**\r\n * we need to add date before we parse manually input time value\r\n */\r\n value = format(new Date(), 'yyyy-MM-dd') + ' ' + this.inferTime(value);\r\n } else if (parseFormat === FORMAT_DATETIME) {\r\n const [date, time] = value.split(' ');\r\n\r\n value = time ? date + ' ' + this.inferTime(time) : value;\r\n }\r\n return super.parse(value, parseFormat);\r\n }\r\n\r\n private inferTime(value: string): string {\r\n /**\r\n * this allows to construct valid time when only 1 or 2 characters are input\r\n */\r\n if (value.length === 1) {\r\n return `0${value}:00`;\r\n } else if (value.length === 2) {\r\n return `${value}:00`;\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsDatetimepickerComponent } from './datetimepicker.component';\r\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DateTimePickerFormatDirectiveModule } from './datetime-picker-format-directive';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { CustomDatetimeAdapter } from './custom-datetime.adapter';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatNativeDatetimeModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n MatDatetimepickerModule,\r\n MatIconModule,\r\n DateTimePickerFormatDirectiveModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsDatetimepickerComponent],\r\n exports: [AdsDatetimepickerComponent],\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: CustomDatetimeAdapter,\r\n },\r\n ],\r\n})\r\nexport class AdsDatetimepickerModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsDatetimepickerComponent } from '../datetime-picker';\r\nimport { format } from 'date-fns';\r\nimport { FORMAT_DATE } from '../datetime-picker/custom-datetime-format';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\n\r\n@Component({\r\n selector: 'ads-datepicker',\r\n templateUrl: '../datetime-picker/datetimepicker.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n '../datetime-picker/datetimepicker.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsDatepickerComponent extends AdsDatetimepickerComponent {\r\n /** if overrideDisplayFormat=true, this display format will be used */\r\n @Input() customDisplayFormat: string = FORMAT_DATE;\r\n\r\n /** @ignore */\r\n type: 'date' | 'time' | 'month' | 'year' | 'datetime' = 'date';\r\n\r\n /** @ignore */\r\n twelveHour = false;\r\n\r\n /** @ignore */\r\n showTimePicker = false;\r\n\r\n /** @ignore */\r\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\r\n matDatepickerParse: 'Date must appear in this format: MM/DD/YYYY',\r\n };\r\n\r\n /** @ignore */\r\n protected applyCustomFormat(): void {\r\n this.customDisplayFormatOverride = {};\r\n\r\n if (this.overrideDisplayFormat) {\r\n this.customDisplayFormatOverride = { dateInput: this.customDisplayFormat };\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected displayedValueToControlValue(value: Date): string {\r\n return format(value, 'yyyy-MM-dd');\r\n }\r\n\r\n /** @ignore */\r\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\r\n if (this.valueControl.value !== null) {\r\n valueToApply = this.valueControl.value + 'T00:00:00';\r\n }\r\n this.setControlValue(this.displayControl, valueToApply);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DateAdapter, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsDatepickerComponent } from './datepicker.component';\r\nimport { DateTimePickerFormatDirectiveModule } from '../datetime-picker/datetime-picker-format-directive';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { CustomDatetimeAdapter } from '../datetime-picker/custom-datetime.adapter';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatNativeDateModule,\r\n MatNativeDatetimeModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n MatDatetimepickerModule,\r\n MatIconModule,\r\n DateTimePickerFormatDirectiveModule,\r\n AdsInputTooltipComponent,\r\n MatIconButton,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsDatepickerComponent],\r\n exports: [AdsDatepickerComponent],\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: CustomDatetimeAdapter,\r\n },\r\n ],\r\n})\r\nexport class AdsDatepickerModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsDatetimepickerComponent } from '../datetime-picker';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { format } from 'date-fns';\r\nimport { FORMAT_TIME } from '../datetime-picker/custom-datetime-format';\r\nimport { adsIconTimepicker } from '@ascentgl/ads-icons/icons';\r\nimport { MatDatetimepickerInputEvent } from '@mat-datetimepicker/core';\r\n\r\n@Component({\r\n selector: 'ads-timepicker',\r\n templateUrl: '../datetime-picker/datetimepicker.component.html',\r\n styleUrls: [\r\n '../../input/input.component.scss',\r\n '../datetime-picker/datetimepicker.component.scss',\r\n '../../common/common.input.component.scss',\r\n ],\r\n standalone: false,\r\n})\r\nexport class AdsTimepickerComponent extends AdsDatetimepickerComponent {\r\n /** if overrideDisplayFormat=true, this display format will be used */\r\n @Input() customDisplayFormat: string = FORMAT_TIME;\r\n\r\n /** @ignore */\r\n type: 'date' | 'time' | 'month' | 'year' | 'datetime' = 'time';\r\n\r\n /** @ignore */\r\n protected shortcuts: GENERIC_COLLECTION = {\r\n n: 0, //now\r\n };\r\n\r\n /** @ignore */\r\n protected readonly defaultErrorMessages: GENERIC_COLLECTION<string> = {\r\n matDatepickerParse: 'Time must appear in this format: HH:mm',\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.registry.register([adsIconTimepicker]);\r\n }\r\n\r\n /** @ignore */\r\n onChanged(event: MatDatetimepickerInputEvent<string> | string | null): void {\r\n /**\r\n * NOTE: this is needed to clear values when input field is cleared;\r\n * otherwise the timepicker will be set to 00:00\r\n */\r\n if (this.displayControl.value && !this.input?.nativeElement.value) {\r\n this.setControlValue(this.displayControl, null);\r\n this.setControlValue(this.valueControl, null);\r\n } else {\r\n super.onChanged(event);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected applyCustomFormat(): void {\r\n this.customDisplayFormatOverride = {};\r\n\r\n if (this.overrideDisplayFormat) {\r\n this.customDisplayFormatOverride = { timeInput: this.customDisplayFormat };\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected displayedValueToControlValue(value: Date): string {\r\n return format(this.addOffset(value, this.getRequiredOffset(value) * -1), 'HH:mm:00');\r\n }\r\n\r\n /** @ignore */\r\n protected onSyncDisplayedValue(valueToApply: string = this.valueControl.value): void {\r\n if (this.valueControl.value !== null) {\r\n valueToApply = format(this.createDate(), 'yyyy-MM-dd') + ' ' + this.valueControl.value;\r\n }\r\n\r\n super.onSyncDisplayedValue(valueToApply);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DateAdapter, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsTimepickerComponent } from './timepicker.component';\r\nimport { DateTimePickerFormatDirectiveModule } from '../datetime-picker/datetime-picker-format-directive';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\nimport { CustomDatetimeAdapter } from '../datetime-picker/custom-datetime.adapter';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDatetimepickerModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatNativeDatetimeModule,\r\n MatNativeDateModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n AdsIconModule,\r\n MatIconModule,\r\n DateTimePickerFormatDirectiveModule,\r\n MatIconButton,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsTimepickerComponent],\r\n exports: [AdsTimepickerComponent],\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: CustomDatetimeAdapter,\r\n },\r\n ],\r\n})\r\nexport class AdsTimepickerModule {}\r\n","import { Component, contentChild, Input, OnChanges, SimpleChange, TemplateRef } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { AdsDropdownComponent } from '../../dropdowns/dropdown';\r\nimport { TEMPLATE_TYPE } from '../../common/dropdown-option-template.directive';\r\n\r\n@Component({\r\n selector: 'ads-radio-button',\r\n templateUrl: './radio-button.component.html',\r\n styleUrls: ['./radio-button.component.scss', '../../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsRadioButtonComponent extends AdsDropdownComponent implements OnChanges {\r\n /** @ignore */\r\n optionRef = contentChild.required<TemplateRef<TEMPLATE_TYPE>>(TemplateRef<TEMPLATE_TYPE>);\r\n\r\n /** Set to \"true\" to make the checkbox indeterminate */\r\n @Input() vertical = false;\r\n\r\n /** Enable/disable options sorting */\r\n @Input() sortOptions = false;\r\n\r\n /** If \"true\", will read option template provided via \"ng-template radio-option\" selector */\r\n @Input() useOptionTemplate = false;\r\n\r\n /** @ignore */\r\n fitContent = false;\r\n\r\n /** @ignore */\r\n placeholder = '';\r\n\r\n /** @ignore */\r\n declare label?: string;\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { required: SimpleChange; options: SimpleChange; immediateValidation: SimpleChange }): void {\r\n super.ngOnChanges(changes);\r\n\r\n if (changes.required) {\r\n if (this.required) {\r\n this.valueControl.addValidators(Validators.required);\r\n } else {\r\n this.valueControl.removeValidators(Validators.required);\r\n }\r\n }\r\n }\r\n}\r\n","<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\r\n <div>\r\n <mat-radio-group\r\n [id]=\"id\"\r\n [ngClass]=\"{\r\n vertical: vertical,\r\n 'radio-invalid': valueControl.invalid && (valueControl.touched || immediateValidation),\r\n }\"\r\n [formControl]=\"valueControl\"\r\n [ngStyle]=\"{ width: width }\"\r\n >\r\n @for (option of displayedOptions | keyvalue: applySorting; track $index) {\r\n <mat-radio-button [value]=\"option.key\">\r\n @if (useOptionTemplate) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionRef()\"\r\n [ngTemplateOutletContext]=\"{ $implicit: option.key, value: option.value }\"\r\n ></ng-template>\r\n } @else {\r\n {{ displayValueFormatter ? displayValueFormatter(option.key) : option.value }}\r\n }\r\n </mat-radio-button>\r\n }\r\n </mat-radio-group>\r\n @if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [href]=\"tooltipHref\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsRadioButtonComponent } from './radio-button.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsSearchDropdownHighlighterPipeModule } from '../../search-fields/search-dropdown/search-dropdown-highlighter.pipe';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatRadioModule,\r\n MatOptionModule,\r\n MatInputModule,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsInputTooltipComponent,\r\n AdsSearchDropdownHighlighterPipeModule,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsRadioButtonComponent],\r\n exports: [AdsRadioButtonComponent],\r\n})\r\nexport class AdsRadioButtonModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AbstractControl, FormControl } from '@angular/forms';\r\nimport { AbstractBaseComponent } from '../../abstracts/abstract.base.component';\r\n\r\n@Component({\r\n selector: 'ads-slide-toggle',\r\n templateUrl: './slide-toggle.component.html',\r\n styleUrls: ['./slide-toggle.component.scss', '../../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsSlideToggleComponent extends AbstractBaseComponent {\r\n /** Set to \"true\" to make the toggle title \"Yes\" or \"No\" */\r\n @Input() enableYesOrNo = false;\r\n\r\n /**\r\n * Optional custom titles for the toggle states.\r\n * Array with two strings: [enabled_text, disabled_text]\r\n * Example: ['Show', 'Hide'] or ['Active', 'Inactive']\r\n */\r\n @Input() customTitles?: [string, string];\r\n\r\n /** @ignore */\r\n valueControl: FormControl = new FormControl();\r\n\r\n /** Form control, associated with input field */\r\n @Input() set control(control: AbstractControl | null) {\r\n /**\r\n * NOTE: we use setter and internal \"valueControl\" here\r\n * to allow pass children of FormGroup (which are all typed as AbstractControl instances)\r\n *\r\n */\r\n if (control instanceof FormControl) {\r\n this.valueControl = control;\r\n } else {\r\n throw Error('Control must be a \"FormControl\" instance');\r\n }\r\n }\r\n\r\n /** Optional \"label\" attribute for slide toggle field */\r\n @Input() label = '';\r\n\r\n /** Optional \"id\" attribute for slide toggle field */\r\n @Input() id = '';\r\n\r\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\r\n @Input() width = 'fit-content';\r\n\r\n /** @ignore */\r\n toggle() {\r\n if (this.valueControl.disabled) return;\r\n\r\n this.valueControl.setValue(!this.valueControl.value);\r\n }\r\n\r\n /** @ignore */\r\n getTitle(enabled: boolean): string {\r\n // Priority: customTitles > enableYesOrNo > default On/Off\r\n if (this.customTitles) {\r\n return enabled ? this.customTitles[0] : this.customTitles[1];\r\n }\r\n\r\n const titles = this.enableYesOrNo ? ['Yes', 'No'] : ['On', 'Off'];\r\n return enabled ? titles[0] : titles[1];\r\n }\r\n\r\n /** @ignore */\r\n getToggleWidth(): string {\r\n // Calculate width based on text content\r\n if (this.customTitles) {\r\n // Get both titles to find the longest one\r\n const title1 = this.customTitles[0];\r\n const title2 = this.customTitles[1];\r\n const longerTitle = title1.length >= title2.length ? title1 : title2;\r\n\r\n // Special cases for common title combinations\r\n if ((title1 === 'Show' && title2 === 'Hide') || (title1 === 'Hide' && title2 === 'Show')) {\r\n return '50px';\r\n }\r\n\r\n // More accurate character width calculation\r\n // Different characters have different widths in the 10px font\r\n let estimatedWidth = 20; // Base width for padding and handle space\r\n\r\n for (const char of longerTitle) {\r\n // Approximate character widths at 10px font size\r\n if (/[iIjl1]/.test(char)) {\r\n estimatedWidth += 3; // Narrow characters\r\n } else if (/[mMwW]/.test(char)) {\r\n estimatedWidth += 8; // Wide characters\r\n } else if (/[A-Z]/.test(char)) {\r\n estimatedWidth += 6.5; // Uppercase letters\r\n } else {\r\n estimatedWidth += 5.5; // Regular lowercase letters and numbers\r\n }\r\n }\r\n\r\n // Ensure minimum width and round up\r\n return `${Math.max(40, Math.ceil(estimatedWidth))}px`;\r\n }\r\n\r\n // Predefined widths for standard texts\r\n return this.enableYesOrNo ? '42px' : '40px';\r\n }\r\n}\r\n","<div class=\"ads-toggle\" [class.disabled]=\"valueControl.disabled\" (click)=\"toggle()\" [ngStyle]=\"{ width: width }\">\r\n <div class=\"toggle-container\"\r\n [class.checked]=\"valueControl.value\"\r\n [class.enable-yes-no]=\"enableYesOrNo\"\r\n [ngStyle]=\"{ width: getToggleWidth() }\">\r\n <div class=\"toggle-track\">\r\n <span class=\"toggle-label\"> {{ getTitle(valueControl.value) }} </span>\r\n </div>\r\n <div class=\"toggle-handle\"></div>\r\n </div>\r\n\r\n @if (label) {\r\n <span class=\"label\"> {{ label }} </span>\r\n }\r\n</div>\r\n@if (showFooter) {\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsSlideToggleComponent } from './slide-toggle.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsInputTooltipComponent } from '../../common/input.tooltip.component';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\nimport { AdsSuccessComponent } from '../../common/success/success.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n AdsInputTooltipComponent,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsSlideToggleComponent],\r\n exports: [AdsSlideToggleComponent],\r\n})\r\nexport class AdsSlideToggle {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsCheckboxComponent } from '../checkbox';\r\n\r\n@Component({\r\n selector: 'ads-slider',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsSliderComponent extends AdsCheckboxComponent {\r\n /** Set minimum slider value */\r\n @Input() min = 0;\r\n\r\n /** Set maximum slider value */\r\n @Input() max = 100;\r\n\r\n /** Set slider step value */\r\n @Input() step = 1;\r\n\r\n /** How often to show ticks. Relative to the step so that a tick always appears on a step. Ex: Tick interval of 4 with a step of 3 will draw a tick every 4 steps (every 12 values). */\r\n @Input() tickInterval?: 'auto' | number;\r\n\r\n /** Whether to invert slider direction */\r\n @Input() invert = false;\r\n\r\n /** Whether to show the thumb label */\r\n @Input() thumbLabel = true;\r\n\r\n /** @ignore */\r\n label = '';\r\n}\r\n","<div>\r\n <mat-slider [id]=\"id\" [ngStyle]=\"{ width: width }\" [min]=\"min\" [max]=\"max\" [step]=\"step\" aria-label=\"slider\"\r\n ><input matSliderThumb [formControl]=\"valueControl\" />\r\n </mat-slider>\r\n @if (valueControl.touched && valueControl.errors) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsSliderComponent } from './slider.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsErrorComponent } from '../../common/error/error.component';\r\nimport { AdsHintComponent } from '../../common/hint/hint.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatSliderModule,\r\n MatInputModule,\r\n AdsIconModule,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n ],\r\n declarations: [AdsSliderComponent],\r\n exports: [AdsSliderComponent],\r\n})\r\nexport class AdsSliderModule {}\r\n","import { AfterViewInit, Component, ElementRef, HostListener, inject } from '@angular/core';\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\r\nimport { Variant } from '../../buttons/button';\r\n\r\nexport type SnackBarData = {\r\n id?: string;\r\n message: string;\r\n hideActionButton?: boolean;\r\n buttonCaption?: string;\r\n closeOnClick?: boolean;\r\n onButtonClick?: () => void;\r\n};\r\n\r\n@Component({\r\n selector: 'ads-snackbar',\r\n templateUrl: './snackbar.component.html',\r\n styleUrls: ['./snackbar.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsSnackbarComponent implements AfterViewInit {\r\n data: SnackBarData = inject(MAT_SNACK_BAR_DATA);\r\n snackBarRef = inject(MatSnackBarRef);\r\n readonly defaultButtonCaption = 'Close';\r\n protected readonly PanelClass = PanelClass;\r\n\r\n /** @ignore */\r\n constructor(private elementRef: ElementRef<HTMLElement>) {}\r\n\r\n get buttonPanelClass(): Variant {\r\n const panelClass = this.snackBarRef.containerInstance.snackBarConfig.panelClass as PanelClass;\r\n return panelClass === PanelClass.Error ? 'error' : 'secondary';\r\n }\r\n\r\n /** @ignore */\r\n get id(): string {\r\n return this.data.id || 'ads-snackbar';\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n const overlayWrapper: HTMLElement | null = this.elementRef.nativeElement.closest('.cdk-global-overlay-wrapper');\r\n if (overlayWrapper) {\r\n overlayWrapper.style.zIndex = '1100';\r\n }\r\n }\r\n\r\n /** @ignore */\r\n @HostListener('click')\r\n onSnackbarClick(): void {\r\n if (this.data.closeOnClick) {\r\n this.snackBarRef.dismiss();\r\n }\r\n }\r\n\r\n protected readonly indexedDB = indexedDB;\r\n}\r\n\r\nexport enum PanelClass {\r\n Success = 'success',\r\n Error = 'error',\r\n Primary = 'primary',\r\n}\r\n","<div class=\"container\" (click)=\"onSnackbarClick()\" [id]=\"id\">\r\n <div class=\"snackbar-container\">\r\n <span class=\"snackbar-text\" [innerHTML]=\"data.message\" [id]=\"id + '-details'\"></span>\r\n </div>\r\n @if (!data.hideActionButton) {\r\n <ads-button\r\n [id]=\"id + '-button'\"\r\n [variant]=\"buttonPanelClass\"\r\n (click)=\"data.onButtonClick ? data.onButtonClick() : snackBarRef.dismissWithAction(); $event.stopPropagation()\"\r\n >\r\n {{ data.buttonCaption ?? defaultButtonCaption }}\r\n </ads-button>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { AdsSnackbarComponent } from './snackbar.component';\r\nimport { AdsButtonModule } from '../../buttons/button';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [AdsButtonModule, MatSnackBarModule, CommonModule],\r\n declarations: [AdsSnackbarComponent],\r\n exports: [AdsSnackbarComponent],\r\n})\r\nexport class AdsSnackbarModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\r\nimport { Observable } from 'rxjs';\r\nimport { IViewportService } from './viewport.service.interface';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ViewportService implements IViewportService {\r\n constructor(private breakpointObserver: BreakpointObserver) {}\r\n\r\n /**\r\n * Whether one or more media queries match the current viewport size.\r\n * @param breakpoints\r\n * @returns boolean\r\n */\r\n public isMatched(breakpoints: string | string[] = Breakpoints.Handset): boolean {\r\n return this.breakpointObserver.isMatched(breakpoints);\r\n }\r\n\r\n /**\r\n * Gets an observable of results for the given queries that will emit new results for any changes in matching of the given queries.\r\n * @param breakpoints\r\n * @returns Observable<BreakpointState>\r\n */\r\n public observe(breakpoints: string | string[] = Breakpoints.Handset): Observable<BreakpointState> {\r\n return this.breakpointObserver.observe(breakpoints);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IWindowService } from './window.service.interface';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class WindowService implements IWindowService {\r\n get innerHeight(): number {\r\n return window.innerHeight;\r\n }\r\n\r\n get innerWidth(): number {\r\n return window.innerWidth;\r\n }\r\n\r\n get search(): string {\r\n return window.location.search;\r\n }\r\n\r\n reload(): void {\r\n window.location.reload();\r\n }\r\n\r\n setTimeout(callback: (...args: unknown[]) => void, ms?: number | undefined, ...args: unknown[]): number {\r\n return window.setTimeout(callback, ms, args);\r\n }\r\n\r\n public clearTimeout(id: number): void {\r\n window.clearTimeout(id);\r\n }\r\n}\r\n","import { Directive, HostListener, signal } from '@angular/core';\r\n\r\n@Directive()\r\nexport abstract class AbstractWindowResizeComponent {\r\n protected get mobileWidth(): number {\r\n return 770;\r\n }\r\n\r\n protected constructor() {\r\n this.checkScreenWidth();\r\n }\r\n\r\n /** @ignore */\r\n isMobile = signal<boolean>(false);\r\n\r\n @HostListener('window:resize')\r\n checkScreenWidth() {\r\n this.isMobile.set(window.innerWidth < this.mobileWidth);\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, inject, Renderer2, TemplateRef } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconCross } from '@ascentgl/ads-icons/icons';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { Variant } from '../buttons/button';\r\nimport { AbstractWindowResizeComponent } from '../../services/window/abstract-window-resize.component';\r\n\r\nexport type AdsModalData = {\r\n id?: string;\r\n title?: string;\r\n content: string;\r\n hideCancelButton?: boolean;\r\n hideCrossIcon?: boolean;\r\n showDeleteButton?: boolean;\r\n cancelButtonText?: string;\r\n confirmButtonText?: string;\r\n deleteButtonText?: string;\r\n disabledConfirmButton?: boolean;\r\n deleteButtonVariant?: Variant;\r\n cancelButtonVariant?: Variant;\r\n confirmButtonVariant?: Variant;\r\n actionHint?: string;\r\n headerTemplate?: TemplateRef<unknown>;\r\n contentTemplate?: TemplateRef<unknown>;\r\n actionsTemplate?: TemplateRef<unknown>;\r\n templateData?: GENERIC_COLLECTION;\r\n headerPadding?: string;\r\n contentPadding?: string;\r\n actionsPadding?: string;\r\n actionsCentered?: boolean;\r\n [key: string]: unknown;\r\n};\r\n\r\nexport enum ModalPanelClass {\r\n Confirmation = 'ads-confirmation',\r\n}\r\n\r\nexport enum ModalActionType {\r\n Cancel = 'cancel',\r\n Confirm = 'confirm',\r\n Delete = 'delete',\r\n}\r\n\r\n@Component({\r\n selector: 'ads-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrl: './modal.component.scss',\r\n standalone: false,\r\n})\r\nexport class AdsModalComponent extends AbstractWindowResizeComponent implements AfterViewInit {\r\n /** @ignore */\r\n protected override get mobileWidth(): number {\r\n return 481;\r\n }\r\n\r\n protected dialogRef = inject(MatDialogRef<AdsModalComponent>);\r\n protected registry = inject(AdsIconRegistry);\r\n protected renderer = inject(Renderer2);\r\n protected elRef = inject(ElementRef);\r\n\r\n data = inject<AdsModalData>(MAT_DIALOG_DATA);\r\n\r\n /** @ignore */\r\n private defaultHeaderPadding = '24px 0 16px 24px';\r\n /** @ignore */\r\n private defaultContentPadding = '0 24px 24px 24px';\r\n /** @ignore */\r\n private defaultActionPadding = '24px';\r\n\r\n constructor() {\r\n super();\r\n this.registry.register(adsIconCross);\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n const dialogTitle = this.elRef.nativeElement.querySelector('.mat-mdc-dialog-title');\r\n if (dialogTitle) {\r\n const headerPadding = this.data.headerPadding || this.defaultHeaderPadding;\r\n this.renderer.setStyle(dialogTitle, 'padding', headerPadding);\r\n }\r\n\r\n const dialogContent = this.elRef.nativeElement.querySelector('.mat-mdc-dialog-content');\r\n if (dialogContent) {\r\n const contentPadding = this.data.contentPadding || this.defaultContentPadding;\r\n this.renderer.setStyle(dialogContent, 'padding', contentPadding);\r\n }\r\n\r\n const dialogFooter = this.elRef.nativeElement.querySelector('.mat-mdc-dialog-actions');\r\n if (dialogFooter) {\r\n const footerPadding = this.data.actionsPadding || this.defaultActionPadding;\r\n this.renderer.setStyle(dialogFooter, 'padding', footerPadding);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n get id(): string {\r\n return this.data.id || 'ads-modal';\r\n }\r\n\r\n onCancel(): void {\r\n this.dialogRef.close(ModalActionType.Cancel);\r\n }\r\n\r\n onSubmit(): void {\r\n if (!this.data.disabledConfirmButton) {\r\n this.dialogRef.close(ModalActionType.Confirm);\r\n }\r\n }\r\n\r\n onDelete(): void {\r\n this.dialogRef.close(ModalActionType.Delete);\r\n }\r\n}\r\n","<div mat-dialog-title [id]=\"id + '-title'\">\r\n @if (data.headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"data.headerTemplate; context: { data: data.templateData }\" />\r\n }\r\n\r\n <span class=\"header-text\">{{ data.title }}</span>\r\n\r\n\r\n @if (!data.hideCrossIcon) {\r\n <div class=\"cross-icon-container\" [id]=\"id + '-cross-icon'\">\r\n <ads-icon name=\"cross\" size=\"xxs\" stroke=\"iconPrimary\" (click)=\"onCancel()\" />\r\n </div>\r\n }\r\n</div>\r\n\r\n<div mat-dialog-content [id]=\"id + '-content'\" [class.mobile]=\"isMobile()\">\r\n @if (data.contentTemplate) {\r\n <ng-container *ngTemplateOutlet=\"data.contentTemplate; context: { data: data.templateData }\" />\r\n } @else {\r\n <span [innerHTML]=\"data.content\"></span>\r\n }\r\n</div>\r\n\r\n<div mat-dialog-actions [class.actions-centered]=\"data.actionsCentered\" [class.mobile]=\"isMobile()\">\r\n @if (data.actionsTemplate) {\r\n <ng-container *ngTemplateOutlet=\"data.actionsTemplate; context: { data: data.templateData }\" />\r\n } @else {\r\n @if (data.actionHint) {\r\n <div class=\"action-hint\" [class.mobile]=\"isMobile()\" [id]=\"id + '-action-hint'\">{{ data.actionHint }}</div>\r\n }\r\n <div class=\"actions-container\" [class.mobile]=\"isMobile()\">\r\n @if (data.showDeleteButton) {\r\n <ads-button\r\n [variant]=\"data.deleteButtonVariant ?? 'error'\"\r\n (click)=\"onDelete()\"\r\n [id]=\"id + '-action-delete'\"\r\n [size]=\"isMobile() ? 'sm' : 'base'\"\r\n > @if (data.deleteButtonText) {\r\n {{ data.deleteButtonText }}\r\n } @else {\r\n {{ 'Delete' }}\r\n }\r\n </ads-button>\r\n }\r\n @if (!data.hideCancelButton) {\r\n <ads-button\r\n [variant]=\"data.cancelButtonVariant ?? 'secondary'\"\r\n (click)=\"onCancel()\"\r\n [id]=\"id + '-action-secondary'\"\r\n [size]=\"isMobile() ? 'sm' : 'base'\"\r\n >\r\n @if (data.cancelButtonText) {\r\n {{ data.cancelButtonText }}\r\n } @else {\r\n {{ 'Cancel' }}\r\n }\r\n </ads-button>\r\n }\r\n <ads-button\r\n [disabled]=\"!!data.disabledConfirmButton\"\r\n [variant]=\"data.confirmButtonVariant ?? 'primary'\"\r\n (click)=\"onSubmit()\"\r\n [id]=\"id + '-action-primary'\"\r\n [size]=\"isMobile() ? 'sm' : 'base'\"\r\n >\r\n @if (data.confirmButtonText) {\r\n {{ data.confirmButtonText }}\r\n } @else {\r\n Save\r\n }\r\n </ads-button>\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { AdsButtonModule } from '../buttons/button';\r\nimport { AdsModalComponent } from './modal.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [MatDialogModule, AdsButtonModule, AdsIconModule, NgTemplateOutlet],\r\n declarations: [AdsModalComponent],\r\n exports: [AdsModalComponent],\r\n})\r\nexport class AdsModalModule {}\r\n","import { Component, input, output } from '@angular/core';\r\nimport { Chip } from './chip.types';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconCheck, adsIconCross } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-chip',\r\n templateUrl: './chip.component.html',\r\n styleUrls: ['./chip.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsChipComponent {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register([adsIconCross, adsIconCheck]);\r\n }\r\n\r\n /** The unique id of the chip */\r\n id = input.required<string>();\r\n\r\n /** The text of the chip - optional when using ng-content */\r\n title = input<string>();\r\n\r\n /** Show check icon before text */\r\n showCheckedIcon = input<boolean>(false);\r\n\r\n /** Disable chip */\r\n disabled = input<boolean>(false);\r\n\r\n /** Show delete icon before text */\r\n deletable = input<boolean>(false);\r\n\r\n /** Event emitted when the remove icon is clicked */\r\n deleted = output<string>();\r\n\r\n /** Event emitted when a chip is selected */\r\n selected = output<Chip>();\r\n\r\n /** @ignore */\r\n onSelected() {\r\n this.selected.emit({\r\n id: this.id(),\r\n title: this.title() || '',\r\n });\r\n }\r\n\r\n /** @ignore */\r\n onDelete() {\r\n if (!this.disabled()) {\r\n this.deleted.emit(this.id());\r\n }\r\n }\r\n}\r\n","<div class=\"chip\" [class.disabled]=\"disabled()\" tabindex=\"0\">\r\n @if (showCheckedIcon()) {\r\n <ads-icon name=\"check\" />\r\n }\r\n @if (title()) {\r\n <span (click)=\"onSelected()\">{{ title() }}</span>\r\n } @else {\r\n <span (click)=\"onSelected()\">\r\n <ng-content></ng-content>\r\n </span>\r\n }\r\n @if (deletable()) {\r\n <ads-icon name=\"cross\" class=\"chip-delete\" (click)=\"onDelete()\" />\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsChipComponent } from './chip.component';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n declarations: [AdsChipComponent],\r\n exports: [AdsChipComponent],\r\n imports: [NgClass, NgStyle, AdsIconModule],\r\n})\r\nexport class AdsChipModule {}\r\n","import { AfterContentInit, Component, EventEmitter, input, output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { AdsIconRegistry, IconThemes } from '@ascentgl/ads-icons';\r\nimport { adsIconChevronDown, adsIconChevronUp } from '@ascentgl/ads-icons/icons';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport { MatExpansionPanel } from '@angular/material/expansion';\r\n\r\n@Component({\r\n selector: 'ads-expansion-panel',\r\n templateUrl: './expansion-panel.component.html',\r\n styleUrls: ['./expansion-panel.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsExpansionPanelComponent implements AfterContentInit {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register([adsIconChevronDown, adsIconChevronUp]);\r\n }\r\n\r\n /** The unique id of the chip */\r\n id = input<string>('');\r\n\r\n /** The header text */\r\n header = input<string>('');\r\n\r\n /** The Chevron Icon color () */\r\n chevronColor = input<keyof IconThemes>('iconPrimary');\r\n\r\n /** The header template */\r\n headerTemplate = input<TemplateRef<unknown>>();\r\n\r\n /** The header template data */\r\n headerTemplateData = input<GENERIC_COLLECTION>();\r\n\r\n /** Whether the AccordionItem is expanded. */\r\n isExpanded = input<boolean>(false);\r\n\r\n /** Whether the AccordionItem is disabled. */\r\n disabled = input<boolean>(false);\r\n\r\n /** Component width. Must include units of measure: px, %, em, rem, etc. */\r\n width = input<string>('100%');\r\n\r\n /** The Chevron Icon size () */\r\n chevronSize = input<'base' | 'xs'>('base');\r\n\r\n /** Header padding size size () */\r\n headerPadding = input<string>('');\r\n\r\n /** Content padding size size () */\r\n contentPadding = input<string>('');\r\n\r\n expandedChange = output<boolean>();\r\n\r\n /** @ignore */\r\n @ViewChild('panel', { static: true }) panel!: MatExpansionPanel;\r\n\r\n get expanded() {\r\n return this.panel.expanded;\r\n }\r\n\r\n ngAfterContentInit() {\r\n const panelHeader = document.querySelector('.mat-expansion-panel-header') as HTMLElement;\r\n const contentPadding = document.querySelector('.mat-expansion-panel-body') as HTMLElement;\r\n\r\n if (panelHeader && !!this.headerPadding()) {\r\n panelHeader.style.padding = this.headerPadding();\r\n }\r\n\r\n if (contentPadding && !!this.contentPadding()) {\r\n contentPadding.style.padding = this.contentPadding();\r\n }\r\n\r\n this.panel.expandedChange.subscribe(value => this.expandedChange.emit(value));\r\n }\r\n\r\n /** @ignore */\r\n toggleAndStop(panel: MatExpansionPanel, event: MouseEvent) {\r\n panel.toggle();\r\n event.stopPropagation();\r\n }\r\n}\r\n","<mat-expansion-panel [expanded]=\"isExpanded()\" [ngStyle]=\"{ width: width() }\" #panel [disabled]=\"disabled()\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n @if (!!headerTemplate()) {\r\n <ng-container *ngTemplateOutlet=\"headerTemplate()!; context: { data: headerTemplateData() }\" />\r\n } @else {\r\n {{ header() }}\r\n }\r\n </mat-panel-title>\r\n <mat-panel-description (click)=\"toggleAndStop(panel, $event)\">\r\n @if (panel.expanded) {\r\n <ads-icon [size]=\"chevronSize() === 'base' ? 'xs' : 'xxxs'\" name=\"chevron_up\" [theme]=\"chevronColor()\" />\r\n } @else {\r\n <ads-icon [size]=\"chevronSize() === 'base' ? 'xs' : 'xxxs'\" name=\"chevron_down\" [theme]=\"chevronColor()\" />\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <ng-content />\r\n</mat-expansion-panel>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsExpansionPanelComponent } from './expansion-panel.component';\r\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport {\r\n MatExpansionPanel,\r\n MatExpansionPanelDescription,\r\n MatExpansionPanelHeader,\r\n MatExpansionPanelTitle,\r\n} from '@angular/material/expansion';\r\n\r\n@NgModule({\r\n declarations: [AdsExpansionPanelComponent],\r\n exports: [AdsExpansionPanelComponent],\r\n imports: [\r\n NgClass,\r\n NgStyle,\r\n AdsIconModule,\r\n MatExpansionPanel,\r\n MatExpansionPanelTitle,\r\n MatExpansionPanelHeader,\r\n MatExpansionPanelDescription,\r\n NgTemplateOutlet,\r\n ],\r\n})\r\nexport class AdsExpansionPanelModule {}\r\n","import { Component, input, output } from '@angular/core';\r\nimport { MatMenuPanel } from '@angular/material/menu';\r\n\r\n@Component({\r\n selector: 'ads-table-button',\r\n templateUrl: './table-button.component.html',\r\n styleUrls: ['./table-button.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsTableButtonComponent {\r\n /** The unique ID for the button */\r\n id = input<string>('');\r\n\r\n /** Whether the button is disabled */\r\n disabled = input<boolean>(false);\r\n\r\n /** Makes the button take 100% width of its container */\r\n fullWidth = input<boolean>(false);\r\n\r\n /** The menu to trigger when button is clicked */\r\n matMenuTriggerFor = input<MatMenuPanel | null>(null);\r\n\r\n /** Event emitted when the menu is opened */\r\n menuOpened = output<void>();\r\n}\r\n","<button\r\n mat-flat-button\r\n [id]=\"id()\"\r\n [disabled]=\"disabled()\"\r\n [class.full-width]=\"fullWidth()\"\r\n [disableRipple]=\"true\"\r\n [matMenuTriggerFor]=\"matMenuTriggerFor()\"\r\n (menuOpened)=\"menuOpened.emit()\">\r\n <div class=\"content-container\">\r\n <ng-content></ng-content>\r\n </div>\r\n</button>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n signal,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n TemplateRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\nimport {\r\n ModuleRegistry,\r\n ColDef,\r\n FirstDataRenderedEvent,\r\n GridApi,\r\n GridOptions,\r\n GridReadyEvent,\r\n SortChangedEvent,\r\n FilterChangedEvent,\r\n provideGlobalGridOptions,\r\n AllCommunityModule,\r\n themeQuartz,\r\n} from 'ag-grid-community';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport {\r\n adsIconArrowUpAndDown,\r\n adsIconCross,\r\n adsIconFilter,\r\n adsIconVisibilityEyeNone,\r\n} from '@ascentgl/ads-icons/icons';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\n\r\nModuleRegistry.registerModules([AllCommunityModule]);\r\nprovideGlobalGridOptions({ theme: 'legacy' });\r\n\r\n// Define an Enum for breakpoints\r\nexport enum TableBreakpoint {\r\n XS = 'xs',\r\n SM = 'sm',\r\n MD = 'md',\r\n LG = 'lg',\r\n XL = 'xl',\r\n}\r\n\r\nexport interface ColumnVisibilityControl {\r\n field: string;\r\n headerName: string;\r\n control: FormControl<boolean>;\r\n}\r\n\r\n@Component({\r\n selector: 'ads-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsTableComponent implements AfterViewInit, OnDestroy {\r\n /** @ignore */\r\n constructor(\r\n private elementRef: ElementRef,\r\n private registry: AdsIconRegistry,\r\n private cdr: ChangeDetectorRef,\r\n ) {\r\n this.registry.register([adsIconFilter, adsIconVisibilityEyeNone, adsIconArrowUpAndDown, adsIconCross]);\r\n }\r\n\r\n /** The grid's width */\r\n @Input() width = '100%';\r\n\r\n /** The grid's height */\r\n @Input() height = '100%';\r\n\r\n /** Custom header template for the table header actions */\r\n @Input() headerTemplate?: TemplateRef<unknown>;\r\n\r\n /** The grid options for ag-Grid */\r\n @Input() gridOptions?: GridOptions;\r\n\r\n /** The data to be displayed in the grid */\r\n @Input() rowData!: GENERIC_COLLECTION[];\r\n\r\n /** The column definitions for the grid */\r\n @Input() columnDefs?: ColDef[];\r\n\r\n /** The custom table icons */\r\n @Input() icons?: GENERIC_COLLECTION;\r\n\r\n /** Default column definitions that will be applied to all columns */\r\n @Input() defaultColDef: ColDef<GENERIC_COLLECTION> = {};\r\n\r\n /** Loading data status */\r\n @Input() loading = false;\r\n\r\n /** Column data by breakPoints */\r\n @Input() columnDefsByBreakpoint: Record<TableBreakpoint, ColDef[]> = {\r\n [TableBreakpoint.XS]: [],\r\n [TableBreakpoint.SM]: [],\r\n [TableBreakpoint.MD]: [],\r\n [TableBreakpoint.LG]: [],\r\n [TableBreakpoint.XL]: [],\r\n };\r\n\r\n /** Show/hide the header with the column visibility button */\r\n @Input() showHeaderActions = false;\r\n\r\n /** Event emitted when all filters are cleared */\r\n @Output() filtersCleared = new EventEmitter<void>();\r\n\r\n /** @ignore */\r\n @ViewChild(MatMenuTrigger) menuTrigger!: MatMenuTrigger;\r\n\r\n /** @ignore */\r\n tableColumnDefs = signal<ColDef[]>([]);\r\n\r\n /** @ignore */\r\n columnVisibilityList = signal<ColumnVisibilityControl[]>([]);\r\n\r\n /** @ignore */\r\n private destroy$ = new Subject<void>();\r\n\r\n /** @ignore */\r\n private cachedDefaultColDef!: ColDef<GENERIC_COLLECTION>;\r\n\r\n /** @ignore */\r\n private currentBreakpoint?: TableBreakpoint;\r\n\r\n /** @ignore */\r\n private resizeObserver?: ResizeObserver;\r\n\r\n /** @ignore */\r\n gridApi?: GridApi;\r\n\r\n /** @ignore */\r\n private truncationStates = new Map<string, boolean>();\r\n\r\n /** @ignore */\r\n private currentSortField: string | null = null;\r\n\r\n /** @ignore */\r\n private currentSortDirection: 'asc' | 'desc' | null = null;\r\n\r\n /** @ignore */\r\n filteredColumns: string[] = [];\r\n\r\n /** @ignore */\r\n private getBreakpoint(width: number): TableBreakpoint {\r\n if (width < 273) return TableBreakpoint.XS;\r\n if (width < 418) return TableBreakpoint.SM;\r\n if (width < 706) return TableBreakpoint.MD;\r\n if (width < 1081) return TableBreakpoint.LG;\r\n return TableBreakpoint.XL;\r\n }\r\n\r\n /** @ignore */\r\n getDefaultColDef(): ColDef<GENERIC_COLLECTION> {\r\n if (!this.cachedDefaultColDef) {\r\n this.cachedDefaultColDef = {\r\n ...this.defaultColDef,\r\n unSortIcon: true,\r\n };\r\n }\r\n return this.cachedDefaultColDef;\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit(): void {\r\n // Observe the table element for resize changes\r\n const tableElement = this.elementRef.nativeElement.querySelector('ag-grid-angular');\r\n\r\n if (tableElement) {\r\n this.resizeObserver = new ResizeObserver(() => {\r\n this.updateColumnDefs(tableElement.clientWidth);\r\n this.gridApi?.sizeColumnsToFit();\r\n });\r\n this.resizeObserver.observe(tableElement);\r\n }\r\n\r\n // Initialize column visibility list\r\n this.initializeColumnVisibility();\r\n }\r\n\r\n /** @ignore */\r\n private initializeColumnVisibility(): void {\r\n // Unsubscribe from previous subscriptions\r\n this.unsubscribeFromControls();\r\n\r\n // Preserve existing visibility states\r\n const existingVisibilityStates = new Map<string, boolean>();\r\n const currentList = this.columnVisibilityList();\r\n currentList.forEach((item) => {\r\n existingVisibilityStates.set(item.field, item.control.value);\r\n });\r\n\r\n const columns = this.getActiveColumnDefs();\r\n const visibilityList: ColumnVisibilityControl[] = columns.map((col) => {\r\n const fieldName = col.field || '';\r\n // Use existing state if available, otherwise use column definition\r\n const isVisible = existingVisibilityStates.get(fieldName) ?? !col.hide;\r\n\r\n const control = new FormControl<boolean>(isVisible, { nonNullable: true });\r\n\r\n // Subscribe to value changes\r\n control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n this.updateGridColumns();\r\n });\r\n\r\n return {\r\n field: fieldName,\r\n headerName: col.headerName || col.field || '',\r\n control: control,\r\n };\r\n });\r\n\r\n this.columnVisibilityList.set(visibilityList);\r\n }\r\n\r\n /** @ignore */\r\n private unsubscribeFromControls(): void {\r\n // This will trigger takeUntil for all subscriptions\r\n this.destroy$.next();\r\n }\r\n\r\n /** @ignore */\r\n private getActiveColumnDefs(): ColDef[] {\r\n if (this.columnDefs?.length) {\r\n return this.columnDefs;\r\n }\r\n\r\n const currentBreakpoint =\r\n this.currentBreakpoint ||\r\n this.getBreakpoint(this.elementRef.nativeElement.querySelector('ag-grid-angular')?.clientWidth || 1000);\r\n\r\n let columns = this.columnDefsByBreakpoint[currentBreakpoint] ?? [];\r\n if (columns.length === 0) {\r\n columns = this.getFallbackColumnDefs(currentBreakpoint);\r\n }\r\n\r\n return columns;\r\n }\r\n\r\n /** @ignore */\r\n openColumnVisibilityMenu(): void {\r\n // Simple approach: update truncation states after a short delay when a menu opens\r\n setTimeout(() => {\r\n this.updateTruncationStates();\r\n }, 150);\r\n }\r\n\r\n /** @ignore */\r\n hideAllColumns(): void {\r\n const currentList = this.columnVisibilityList();\r\n currentList.forEach((item) => {\r\n item.control.setValue(false);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n showAllColumns(): void {\r\n const currentList = this.columnVisibilityList();\r\n currentList.forEach((item) => {\r\n item.control.setValue(true);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n get allColumnsVisible(): boolean {\r\n return this.columnVisibilityList().every((item) => item.control.value);\r\n }\r\n\r\n /** @ignore */\r\n get allColumnsHidden(): boolean {\r\n return this.columnVisibilityList().every((item) => !item.control.value);\r\n }\r\n\r\n /** @ignore */\r\n get hiddenColumnsCount(): number {\r\n return this.columnVisibilityList().filter((item) => !item.control.value).length;\r\n }\r\n\r\n /** @ignore */\r\n get hideColumnButtonLabel(): string {\r\n const hiddenCount = this.hiddenColumnsCount;\r\n if (hiddenCount === 0) {\r\n return 'Hide Column';\r\n } else if (hiddenCount === 1) {\r\n return '1 Hidden Column';\r\n } else {\r\n return `${hiddenCount} Hidden Columns`;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n get sortButtonLabel(): string {\r\n if (this.isSortedTable) {\r\n const column = this.getActiveColumnDefs().find((col) => col.field === this.currentSortField);\r\n const columnName = column?.headerName || column?.field || this.currentSortField;\r\n return `Sorted by ${columnName}`;\r\n }\r\n return 'Sort';\r\n }\r\n\r\n /** @ignore */\r\n get filterButtonLabel(): string {\r\n if (this.filteredColumns.length === 0) {\r\n return 'Filter';\r\n } else if (this.filteredColumns.length === 1) {\r\n const column = this.getActiveColumnDefs().find((col) => col.field === this.filteredColumns[0]);\r\n const columnName = column?.headerName || column?.field || this.filteredColumns[0];\r\n return `Filtered by ${columnName}`;\r\n } else {\r\n const columnNames = this.filteredColumns.map((fieldName) => {\r\n const column = this.getActiveColumnDefs().find((col) => col.field === fieldName);\r\n return column?.headerName || column?.field || fieldName;\r\n });\r\n return `Filtered by ${columnNames.join(', ')}`;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n get isSortedTable(): boolean {\r\n return !!this.currentSortField && !!this.currentSortDirection;\r\n }\r\n\r\n /** @ignore */\r\n get isFilteredTable(): boolean {\r\n return this.filteredColumns.length > 0;\r\n }\r\n\r\n /** @ignore */\r\n private updateSortingState(): void {\r\n if (this.gridApi) {\r\n const sortModel = this.gridApi.getColumnState();\r\n const sortedColumn = sortModel.find((col) => col.sort !== null);\r\n\r\n if (sortedColumn && sortedColumn.sort) {\r\n this.currentSortField = sortedColumn.colId;\r\n this.currentSortDirection = sortedColumn.sort as 'asc' | 'desc';\r\n } else {\r\n this.currentSortField = null;\r\n this.currentSortDirection = null;\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private updateFilteringState(): void {\r\n if (this.gridApi) {\r\n const filterModel = this.gridApi.getFilterModel();\r\n this.filteredColumns = Object.keys(filterModel);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private onSortChanged(): void {\r\n this.updateSortingState();\r\n }\r\n\r\n /** @ignore */\r\n private onFilterChanged(): void {\r\n this.updateFilteringState();\r\n }\r\n\r\n /** @ignore */\r\n sortChanged($event: SortChangedEvent): void {\r\n this.onSortChanged();\r\n this.gridOptions?.onSortChanged?.($event);\r\n }\r\n\r\n /** @ignore */\r\n filterChanged($event: FilterChangedEvent): void {\r\n this.onFilterChanged();\r\n this.gridOptions?.onFilterChanged?.($event);\r\n }\r\n\r\n /** @ignore */\r\n clearAllFilters(): void {\r\n if (this.gridApi) {\r\n this.gridApi.setFilterModel(null);\r\n this.updateFilteringState();\r\n // Emit event to notify the header template that filters were cleared\r\n this.filtersCleared.emit();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n clearAllSorting(): void {\r\n if (this.gridApi) {\r\n this.gridApi.applyColumnState({\r\n defaultState: { sort: null },\r\n });\r\n this.updateSortingState();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private updateGridColumns(): void {\r\n const visibilityMap = new Map<string, boolean>();\r\n this.columnVisibilityList().forEach((item) => {\r\n visibilityMap.set(item.field, item.control.value);\r\n });\r\n\r\n const currentColumns = this.getActiveColumnDefs();\r\n const updatedColumns = currentColumns.map((col) => ({\r\n ...col,\r\n hide: !visibilityMap.get(col.field || ''),\r\n }));\r\n\r\n this.tableColumnDefs.set(updatedColumns);\r\n\r\n // Fit columns to grid width after visibility changes\r\n setTimeout(() => {\r\n this.gridApi?.sizeColumnsToFit();\r\n }, 0);\r\n }\r\n\r\n /** @ignore */\r\n private onGridReady(params: GridReadyEvent): void {\r\n this.gridApi = params.api;\r\n const tableElement = this.elementRef.nativeElement.querySelector('ag-grid-angular');\r\n if (tableElement) {\r\n this.updateColumnDefs(tableElement.clientWidth);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private onFirstDataRendered(params: FirstDataRenderedEvent): void {\r\n params.api.sizeColumnsToFit();\r\n }\r\n\r\n /** @ignore */\r\n getAgGridIcons(): GENERIC_COLLECTION {\r\n const icons = {\r\n sortAscending:\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\r\n ' <path d=\"M3.5 2.29227L5.12266 4.70574L1.87734 4.70574L3.5 2.29227Z\" stroke-width=\"2\"/>\\n' +\r\n '</svg>',\r\n sortDescending:\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\r\n ' <path d=\"M3.5 10.5738L1.87734 8.16029L5.12266 8.16029L3.5 10.5738Z\" stroke-width=\"2\"/>\\n' +\r\n '</svg>',\r\n\r\n sortUnSort:\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\">\\n' +\r\n ' <path d=\"M3.5 2.29227L5.12266 4.70574L1.87734 4.70574L3.5 2.29227Z\" stroke-width=\"2\"/>\\n' +\r\n ' <path d=\"M3.5 10.5738L1.87734 8.16029L5.12266 8.16029L3.5 10.5738Z\" stroke-width=\"2\"/>\\n' +\r\n '</svg>',\r\n filter:\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"11\" viewBox=\"0 0 13 11\">\\n' +\r\n ' <path d=\"M8.45044 9.03931V10.4504H4.14966V9.03931H8.45044ZM10.4504 4.59497V6.00513H2.14966V4.59497H10.4504ZM12.4504 0.149658V1.56079H0.149658V0.149658H12.4504Z\" stroke-width=\"0.3\"/>\\n' +\r\n '</svg>\\n',\r\n };\r\n\r\n if (this.icons) {\r\n Object.assign(icons, this.icons);\r\n }\r\n\r\n return icons;\r\n }\r\n\r\n /** @ignore */\r\n gridReady($event: GridReadyEvent): void {\r\n this.onGridReady($event);\r\n this.gridOptions?.onGridReady?.($event);\r\n }\r\n\r\n /** @ignore */\r\n firstDataRendered($event: FirstDataRenderedEvent): void {\r\n this.onFirstDataRendered($event);\r\n this.gridOptions?.onFirstDataRendered?.($event);\r\n }\r\n\r\n /** @ignore */\r\n private updateColumnDefs(tableWidth: number): void {\r\n const newBreakpoint = this.getBreakpoint(tableWidth);\r\n // If columnDefs is provided, use it and ignore breakpoints\r\n if (this.columnDefs?.length) {\r\n this.tableColumnDefs.set(this.columnDefs);\r\n this.initializeColumnVisibility();\r\n return;\r\n }\r\n if (newBreakpoint !== this.currentBreakpoint) {\r\n this.currentBreakpoint = newBreakpoint;\r\n // Get the column definitions for the current breakpoint or inherit from a larger breakpoint\r\n let columnsToSet = this.columnDefsByBreakpoint[newBreakpoint] ?? [];\r\n\r\n // If columns are not set for the current breakpoint, fall back to a larger breakpoint\r\n if (columnsToSet.length === 0) {\r\n columnsToSet = this.getFallbackColumnDefs(newBreakpoint);\r\n }\r\n\r\n this.tableColumnDefs.set(columnsToSet);\r\n this.initializeColumnVisibility();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private getFallbackColumnDefs(currentBreakpoint: TableBreakpoint): ColDef[] {\r\n const breakpoints: TableBreakpoint[] = [\r\n TableBreakpoint.XS,\r\n TableBreakpoint.SM,\r\n TableBreakpoint.MD,\r\n TableBreakpoint.LG,\r\n TableBreakpoint.XL,\r\n ];\r\n const index = breakpoints.indexOf(currentBreakpoint);\r\n\r\n for (let i = index + 1; i < breakpoints.length; i++) {\r\n if (this.columnDefsByBreakpoint[breakpoints[i]]?.length) {\r\n return this.columnDefsByBreakpoint[breakpoints[i]];\r\n }\r\n }\r\n\r\n return []; // Return empty if no suitable columnDefs found\r\n }\r\n\r\n /** @ignore */\r\n private updateTruncationStates(): void {\r\n // Clear previous states\r\n this.truncationStates.clear();\r\n\r\n // Search for menu overlay in the document body (Material creates overlays there)\r\n const overlayPanes = document.querySelectorAll('.cdk-overlay-pane');\r\n let menuPanel: Element | null = null;\r\n\r\n // Find the overlay that contains our menu content\r\n for (let i = 0; i < overlayPanes.length; i++) {\r\n const pane = overlayPanes[i];\r\n const menuContent = pane.querySelector('.menu-content');\r\n if (menuContent) {\r\n menuPanel = pane;\r\n break;\r\n }\r\n }\r\n\r\n if (menuPanel) {\r\n const columnNameElements = menuPanel.querySelectorAll('.column-name');\r\n columnNameElements.forEach((element, index) => {\r\n const htmlElement = element as HTMLElement;\r\n const column = this.columnVisibilityList()[index];\r\n if (column) {\r\n const isTruncated = htmlElement.scrollWidth > htmlElement.clientWidth;\r\n this.truncationStates.set(column.headerName, isTruncated);\r\n }\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n getTooltipDisabled(headerName: string): boolean {\r\n return !this.truncationStates.get(headerName);\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy(): void {\r\n // Clean up the observer when the component is destroyed\r\n this.resizeObserver?.disconnect();\r\n this.unsubscribeFromControls();\r\n }\r\n\r\n protected readonly themeQuartz = themeQuartz;\r\n}\r\n","<div class=\"ads-table-container\" [style.width]=\"width\" [class.with-header]=\"showHeaderActions\">\r\n @if (showHeaderActions) {\r\n <div class=\"table-header\">\r\n <div class=\"header-template\">\r\n @if (headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\" />\r\n }\r\n </div>\r\n\r\n <div class=\"header-actions\">\r\n <ads-table-button\r\n id=\"show-hide-columns-button\"\r\n [matMenuTriggerFor]=\"columnVisibilityMenu\"\r\n (menuOpened)=\"openColumnVisibilityMenu()\"\r\n >\r\n <ads-icon\r\n name=\"visibility_eye_none\"\r\n theme=\"secondary\"\r\n stroke=\"secondary\"\r\n size=\"xxxs\"\r\n />\r\n {{ hideColumnButtonLabel }}\r\n </ads-table-button>\r\n\r\n <ads-table-button\r\n id=\"filter-button\"\r\n [disabled]=\"!isFilteredTable\"\r\n (click)=\"clearAllFilters()\"\r\n >\r\n <ads-icon\r\n name=\"filter\"\r\n theme=\"secondary\"\r\n size=\"xxxs\"\r\n />\r\n {{ filterButtonLabel }}\r\n\r\n @if(isFilteredTable) {\r\n <ads-icon\r\n name=\"cross\"\r\n stroke=\"secondary\"\r\n size=\"xxxs\"\r\n />\r\n }\r\n </ads-table-button>\r\n <ads-table-button\r\n id=\"sort-button\"\r\n [disabled]=\"!isSortedTable\"\r\n (click)=\"clearAllSorting()\"\r\n >\r\n <ads-icon\r\n name=\"arrow_up_and_down\"\r\n theme=\"secondary\"\r\n size=\"xxxs\"\r\n />\r\n {{ sortButtonLabel }}\r\n @if (isSortedTable) {\r\n <ads-icon\r\n name=\"cross\"\r\n stroke=\"secondary\"\r\n size=\"xxxs\"\r\n />\r\n }\r\n </ads-table-button>\r\n </div>\r\n </div>\r\n }\r\n\r\n <ag-grid-angular\r\n [ngStyle]=\"{ height: height }\"\r\n [icons]=\"getAgGridIcons()\"\r\n class=\"ag-theme-quartz\"\r\n [gridOptions]=\"gridOptions\"\r\n [rowData]=\"rowData\"\r\n [columnDefs]=\"tableColumnDefs()\"\r\n [defaultColDef]=\"getDefaultColDef()\"\r\n (gridReady)=\"gridReady($event)\"\r\n (firstDataRendered)=\"firstDataRendered($event)\"\r\n (sortChanged)=\"sortChanged($event)\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [theme]=\"themeQuartz\"\r\n [loading]=\"loading\"\r\n />\r\n</div>\r\n\r\n<!-- Column Visibility Menu -->\r\n<mat-menu #columnVisibilityMenu=\"matMenu\" class=\"column-visibility-menu\" [class.has-header]=\"showHeaderActions\">\r\n <div class=\"menu-content\" (click)=\"$event.stopPropagation()\">\r\n <div class=\"dropdown-body\">\r\n @for (column of columnVisibilityList(); track $index) {\r\n <div class=\"column-row\">\r\n <span\r\n class=\"column-name\"\r\n [matTooltip]=\"column.headerName\"\r\n [matTooltipDisabled]=\"getTooltipDisabled(column.headerName)\"\r\n >\r\n {{ column.headerName }}\r\n </span>\r\n <div class=\"column-toggle\">\r\n <ads-slide-toggle\r\n [id]=\"'toggle-' + column.field\"\r\n [control]=\"column.control\"\r\n [showFooter]=\"false\"\r\n [customTitles]=\"['Show', 'Hide']\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <ads-divider />\r\n\r\n <div class=\"dropdown-footer\">\r\n <ads-button\r\n [fullWidth]=\"true\"\r\n (click)=\"hideAllColumns()\"\r\n [disabled]=\"allColumnsHidden\"\r\n variant=\"tertiary\"\r\n id='hide-all-button'\r\n size=\"xs\"\r\n >\r\n Hide All\r\n </ads-button>\r\n <ads-button\r\n [fullWidth]=\"true\"\r\n (click)=\"showAllColumns()\"\r\n [disabled]=\"allColumnsVisible\"\r\n variant=\"tertiary\"\r\n id=\"show-all-button\"\r\n size=\"xs\"\r\n >\r\n Show All\r\n </ads-button>\r\n </div>\r\n </div>\r\n</mat-menu>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { AdsTableButtonComponent } from './table-button.component';\r\n\r\n@NgModule({\r\n declarations: [AdsTableButtonComponent],\r\n exports: [AdsTableButtonComponent],\r\n imports: [CommonModule, MatButtonModule, MatMenuModule],\r\n})\r\nexport class AdsTableButtonModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsTableComponent } from './table.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { AdsSlideToggle } from '../form-fields/selection-fields/slide-toggle';\r\nimport { AdsButtonModule } from '../buttons/button';\r\nimport { AdsTableButtonModule } from './components/table-button/table-button.module';\r\nimport { AdsDividerModule } from '../divider';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\n@NgModule({\r\n declarations: [AdsTableComponent],\r\n imports: [\r\n CommonModule,\r\n AdsIconModule,\r\n AgGridAngular,\r\n MatDialogModule,\r\n AdsSlideToggle,\r\n AdsButtonModule,\r\n AdsTableButtonModule,\r\n AdsDividerModule,\r\n MatTooltip,\r\n MatMenuModule,\r\n ],\r\n exports: [AdsTableComponent],\r\n})\r\nexport class AdsTableModule {}\r\n","import { Component, input } from '@angular/core';\r\nimport { NavMenuItem } from './nav-menu.types';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconUserCircle, adsIconMenuMoreInfo } from '@ascentgl/ads-icons/icons';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'ads-nav-menu',\r\n styleUrls: ['nav-menu.component.scss'],\r\n templateUrl: 'nav-menu.component.html',\r\n standalone: false\r\n})\r\nexport class AdsNavMenuComponent {\r\n constructor(\r\n private registry: AdsIconRegistry,\r\n private router: Router\r\n ) {\r\n this.registry.register([adsIconUserCircle, adsIconMenuMoreInfo]);\r\n }\r\n\r\n /** @ignore */\r\n onUserProfileClick() {\r\n if (!this.userProfilePath()) return;\r\n\r\n this.router.navigate([this.userProfilePath()]);\r\n }\r\n\r\n /**\r\n * Array of menu items to display in the main menu\r\n */\r\n navMenuItems = input.required<NavMenuItem[]>();\r\n\r\n /** Image url path */\r\n iconUrl = input<string>();\r\n\r\n /** Optional label text before icon */\r\n label = input<string>();\r\n\r\n /** Optional path to the user profile */\r\n userProfilePath = input<string>();\r\n\r\n}\r\n","<div class=\"ads-avatar-container\">\r\n @if (iconUrl()) {\r\n <img [src]=\"iconUrl()!\" alt=\"User Logo\" height=\"48\" width=\"48\" />\r\n } @else {\r\n <ads-icon name=\"user_circle\" theme=\"secondary\" />\r\n }\r\n @if (label()) {\r\n <span (click)=\"onUserProfileClick()\" [class.navigate]=\"userProfilePath()\">{{ label() }}</span>\r\n }\r\n\r\n <ads-icon class=\"more-info-icon\" name=\"menu_more_info\" theme=\"secondary\" [matMenuTriggerFor]=\"menu\" />\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\" [class]=\"'ads-mat-menu'\">\r\n @for (item of navMenuItems(); track $index) {\r\n @if (item.template) {\r\n <ng-container *ngTemplateOutlet=\"item.template; context: { menuItem: item }\" />\r\n } @else if (item.href) {\r\n <button mat-menu-item [routerLink]=\"item.href!\" routerLinkActive=\"selected\">\r\n <ng-container *ngTemplateOutlet=\"text; context: { menuItem: item }\" />\r\n </button>\r\n } @else {\r\n <button mat-menu-item (click)=\"item.onClick ? item.onClick() : null\">\r\n <ng-container *ngTemplateOutlet=\"text; context: { menuItem: item }\" />\r\n </button>\r\n }\r\n }\r\n</mat-menu>\r\n\r\n<ng-template #text let-item=\"menuItem\">\r\n <div class=\"ads-menu-item-container\">\r\n @if (item.icon) {\r\n <ads-icon [id]=\"item.id\" [name]=\"item.icon\" size=\"sm\" theme=\"iconPrimary\"></ads-icon>\r\n }\r\n <span>{{ item.label }}</span>\r\n </div>\r\n</ng-template>\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsNavMenuComponent } from './nav-menu.component';\r\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AdsIconModule,\r\n NgOptimizedImage,\r\n MatMenu,\r\n MatMenuTrigger,\r\n RouterLinkActive,\r\n MatMenuItem,\r\n RouterLink,\r\n ],\r\n exports: [AdsNavMenuComponent],\r\n declarations: [AdsNavMenuComponent],\r\n})\r\nexport class AdsNavMenuModule {}\r\n","import { AfterViewInit, Directive, effect, ElementRef, input, OnDestroy, OnInit, signal } from '@angular/core';\r\nimport { SplitComponent, SplitGutterInteractionEvent } from 'angular-split';\r\nimport { Subscription } from 'rxjs';\r\nimport { DomHelper } from '@ascentgl/ads-utils';\r\n\r\n@Directive()\r\nexport abstract class AbstractSideNavBarComponent implements OnInit, AfterViewInit, OnDestroy {\r\n /** The default expanded width for the sidebar */\r\n defaultExpandedWidth = input<number>(220);\r\n\r\n /** The max expanded width for the sidebar */\r\n maxExpandedWidth = input<number>(600);\r\n\r\n /** @ignore */\r\n isCollapsed = signal<boolean>(false);\r\n\r\n /** @ignore */\r\n sidebarSize = signal<number>(this.defaultExpandedWidth());\r\n\r\n /** @ignore */\r\n abstract localStorageName: string;\r\n\r\n /** @ignore */\r\n abstract splitter: SplitComponent;\r\n\r\n /** @ignore */\r\n abstract sideNavArea: ElementRef;\r\n\r\n /** @ignore */\r\n splitterSubscription?: Subscription;\r\n\r\n /** @ignore */\r\n abstract widthToCollapsed: number;\r\n\r\n /** @ignore */\r\n private minWidth = 50;\r\n\r\n protected constructor() {\r\n effect(() => {\r\n /**\r\n * triggering window resize when sidebar size changes will allow\r\n * other components to react to the change in sidebar size\r\n */\r\n if (this.sidebarSize()) {\r\n DomHelper.triggerWindowResize();\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit() {\r\n this.initSideBarSize();\r\n }\r\n\r\n /** @ignore */\r\n initSideBarSize(): void {\r\n if (localStorage.getItem(this.localStorageName)) {\r\n this.sidebarSize.set(JSON.parse(localStorage.getItem(this.localStorageName)!));\r\n }\r\n setTimeout(() => {\r\n this.isCollapsed.set(this.sidebarSize() <= this.widthToCollapsed);\r\n });\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit() {\r\n this.splitterSubscribe();\r\n }\r\n\r\n /** @ignore */\r\n splitterSubscribe(): void {\r\n setTimeout(() => {\r\n if (this.splitter) {\r\n this.splitterSubscription = this.splitter.dragProgress$.subscribe((data) => {\r\n const newSize = Number(data.sizes[0]);\r\n this.isCollapsed.set(newSize <= this.widthToCollapsed);\r\n });\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n dragEnd(event: SplitGutterInteractionEvent): void {\r\n const newSize = Number(event.sizes[0]);\r\n this.saveLocalStorage(newSize);\r\n this.sidebarSize.set(newSize);\r\n }\r\n\r\n /** Expand the sidebar between collapsed and expanded */\r\n /** @ignore */\r\n expandSidebar(): void {\r\n this.isCollapsed.set(!this.isCollapsed());\r\n const expectedWidth = this.isCollapsed() ? this.minWidth : this.defaultExpandedWidth();\r\n this.saveLocalStorage(expectedWidth);\r\n this.sidebarSize.set(expectedWidth);\r\n }\r\n\r\n /** Save current width to the local storage */\r\n /** @ignore */\r\n saveLocalStorage(size: number): void {\r\n localStorage.setItem(this.localStorageName, JSON.stringify(size));\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy() {\r\n if (this.splitterSubscription) this.splitterSubscription.unsubscribe();\r\n }\r\n}\r\n","import { Component, ElementRef, input, TemplateRef, ViewChild, computed } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconSearch } from '@ascentgl/ads-icons/icons';\r\nimport { NavItem } from './nav-item.types';\r\nimport { AbstractSideNavBarComponent } from './abstract-side-nav-bar.component';\r\nimport { SplitComponent } from 'angular-split';\r\n\r\n@Component({\r\n selector: 'ads-side-nav-bar',\r\n styleUrls: ['side-nav-bar.component.scss'],\r\n templateUrl: 'side-nav-bar.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsSideNavBarComponent extends AbstractSideNavBarComponent {\r\n /** @ignore */\r\n constructor(private registry: AdsIconRegistry) {\r\n super();\r\n this.registry.register([adsIconSearch]);\r\n }\r\n\r\n /** The search template */\r\n searchTemplate = input<TemplateRef<unknown>>();\r\n\r\n /** The extra data template below search */\r\n extraDataTemplate = input<TemplateRef<unknown>>();\r\n\r\n /** Array of nav elements */\r\n navItems = input<NavItem[]>([]);\r\n\r\n /** @ignore */\r\n localStorageName = 'side-nav-bar-width';\r\n\r\n /** @ignore */\r\n widthToCollapsed = 70;\r\n\r\n /** @ignore */\r\n @ViewChild('splitter') splitter!: SplitComponent;\r\n\r\n /** @ignore */\r\n @ViewChild('sideNavArea', { read: ElementRef }) sideNavArea!: ElementRef;\r\n\r\n /** @ignore */\r\n regularNavItems = computed(() => this.navItems().filter(item => !item.stickToBottom));\r\n\r\n /** @ignore */\r\n bottomNavItems = computed(() => this.navItems().filter(item => item.stickToBottom));\r\n\r\n /** @ignore */\r\n hasBottomItems = computed(() => this.bottomNavItems().length > 0);\r\n}\r\n","<as-split\r\n #splitter\r\n [useTransition]=\"true\"\r\n unit=\"pixel\"\r\n [gutterSize]=\"10\"\r\n (gutterDblClick)=\"expandSidebar()\"\r\n [gutterDblClickDuration]=\"500\"\r\n (dragEnd)=\"dragEnd($event)\"\r\n>\r\n <as-split-area [size]=\"sidebarSize()\" [minSize]=\"50\" [maxSize]=\"maxExpandedWidth()\" #sideNavArea>\r\n <div class=\"left-side-content-container\">\r\n <div class=\"logo-container\">\r\n <a [routerLink]=\"'/'\">\r\n <ads-primary-logo [mobileWidth]=\"70\" [isCollapsed]=\"true\" class=\"show-on-collapsed\" />\r\n <ads-primary-logo [mobileWidth]=\"70\" [isCollapsed]=\"false\" class=\"hide-on-collapsed\" />\r\n </a>\r\n </div>\r\n\r\n <div class=\"nav-items-wrapper\">\r\n <!-- Regular navigation items -->\r\n <div class=\"nav-items-container\">\r\n @for (item of regularNavItems(); track $index) {\r\n @if (item.click) {\r\n <a\r\n class=\"ads-nav-link {{item.class}}\"\r\n (click)=\"item.click()\"\r\n >\r\n <div class=\"ads-nav-item-container\">\r\n @if (!!item.icon) {\r\n <ads-icon [name]=\"item.icon!\" size=\"sm\" theme=\"iconPrimary\" stroke=\"iconPrimary\" />\r\n }\r\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\r\n </div>\r\n </a>\r\n } @else {\r\n <a\r\n [routerLink]=\"item.href\"\r\n routerLinkActive=\"active-nav-link\"\r\n [routerLinkActiveOptions]=\"{ exact: true }\"\r\n class=\"ads-nav-link {{item.class}}\"\r\n >\r\n <div class=\"ads-nav-item-container\">\r\n @if (!!item.icon) {\r\n <ads-icon [name]=\"item.icon!\" size=\"sm\" theme=\"iconPrimary\" stroke=\"iconPrimary\" />\r\n }\r\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\r\n </div>\r\n </a>\r\n }\r\n }\r\n </div>\r\n\r\n <!-- Bottom navigation items -->\r\n @if (hasBottomItems()) {\r\n <div class=\"bottom-nav-section\">\r\n <div class=\"nav-items-container bottom-items\">\r\n @for (item of bottomNavItems(); track $index) {\r\n @if (item.click) {\r\n <a\r\n class=\"ads-nav-link bottom-item {{item.class}}\"\r\n (click)=\"item.click()\"\r\n >\r\n <div class=\"ads-nav-item-container\">\r\n @if (!!item.icon) {\r\n <ads-icon [name]=\"item.icon!\" size=\"sm\" theme=\"iconPrimary\" stroke=\"iconPrimary\" />\r\n }\r\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\r\n </div>\r\n </a>\r\n } @else {\r\n <a\r\n [routerLink]=\"item.href\"\r\n routerLinkActive=\"active-nav-link\"\r\n [routerLinkActiveOptions]=\"{ exact: true }\"\r\n class=\"ads-nav-link bottom-item {{item.class}}\"\r\n >\r\n <div class=\"ads-nav-item-container\">\r\n @if (!!item.icon) {\r\n <ads-icon [name]=\"item.icon!\" size=\"sm\" theme=\"iconPrimary\" stroke=\"iconPrimary\" />\r\n }\r\n <span class=\"hide-on-collapsed\">{{ item.label }}</span>\r\n </div>\r\n </a>\r\n }\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </as-split-area>\r\n\r\n <as-split-area>\r\n <ng-content></ng-content>\r\n </as-split-area>\r\n</as-split>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsSideNavBarComponent } from './side-nav-bar.component';\r\nimport { AdsPrimaryLogoModule } from '../../logo/primary-logo';\r\nimport { SplitAreaComponent, SplitComponent } from 'angular-split';\r\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsDividerModule } from '../../divider';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AdsPrimaryLogoModule,\r\n SplitComponent,\r\n SplitAreaComponent,\r\n RouterOutlet,\r\n RouterLink,\r\n RouterLinkActive,\r\n AdsIconModule,\r\n AdsDividerModule,\r\n ],\r\n exports: [AdsSideNavBarComponent],\r\n declarations: [AdsSideNavBarComponent],\r\n})\r\nexport class AdsSideNavBarModule {}\r\n","import { adsIcon } from '@ascentgl/ads-icons/icons';\r\n\r\nexport type NavItem = {\r\n label: string;\r\n icon: adsIcon;\r\n href?: string;\r\n click?: () => void;\r\n stickToBottom?: boolean;\r\n class?: string;\r\n};\r\n\r\n/**\r\n * Note: Only one of 'href' or 'click' should be used per NavItem.\r\n */\r\n","import {\r\n Component,\r\n computed,\r\n effect,\r\n ElementRef,\r\n HostListener,\r\n input,\r\n signal,\r\n ViewChild,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { AbstractSideNavBarComponent } from '../side-nav-bar/abstract-side-nav-bar.component';\r\nimport { ScmsNavItem, ScmsNavSubItem } from './scms-nav-item.types';\r\nimport { Router } from '@angular/router';\r\nimport { MatAccordion } from '@angular/material/expansion';\r\nimport { SplitComponent } from 'angular-split';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconChevronDown, adsIconChevronUp, adsIconCross, adsIconHamburgerMenu } from '@ascentgl/ads-icons/icons';\r\nimport { Breadcrumb } from '../../breadcrumb';\r\n\r\n@Component({\r\n selector: 'ads-scms-side-nav-bar',\r\n styleUrls: [\r\n '../../expansion-panel/expansion-panel.component.scss',\r\n '../side-nav-bar/side-nav-bar.component.scss',\r\n 'scms-side-nav-bar.component.scss',\r\n ],\r\n templateUrl: 'scms-side-nav-bar.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsScmsSideNavBarComponent extends AbstractSideNavBarComponent {\r\n /** @ignore */\r\n constructor(\r\n protected router: Router,\r\n private registry: AdsIconRegistry,\r\n ) {\r\n super();\r\n this.checkScreenWidth();\r\n this.registry.register([adsIconChevronDown, adsIconChevronUp, adsIconCross, adsIconHamburgerMenu]);\r\n\r\n effect(() => {\r\n if (this.isCollapsed() && !this.isTablet()) {\r\n this.accordion().closeAll();\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n @ViewChild('splitter') splitter!: SplitComponent;\r\n\r\n /** @ignore */\r\n @ViewChild('sideNavArea', { read: ElementRef }) sideNavArea!: ElementRef;\r\n\r\n /** @ignore */\r\n accordion = viewChild.required(MatAccordion);\r\n\r\n /** Array of nav elements */\r\n navItems = input<ScmsNavItem[]>([]);\r\n\r\n /** Array of breadcrumb elements */\r\n breadcrumbs = input<Breadcrumb[]>([]);\r\n\r\n /** Show/hide breadcrumbs on the current page */\r\n showBreadcrumbs = input<boolean>(false);\r\n\r\n /** @ignore */\r\n localStorageName = 'scms-side-nav-bar-width';\r\n\r\n /** @ignore */\r\n widthToCollapsed = 120;\r\n\r\n /** @ignore */\r\n isTablet = signal(false);\r\n\r\n /** @ignore */\r\n isMobile = signal(false);\r\n\r\n /** @ignore */\r\n regularNavItems = computed(() => this.navItems().filter((item) => !item.stickToBottom));\r\n\r\n /** @ignore */\r\n bottomNavItems = computed(() => this.navItems().filter((item) => item.stickToBottom));\r\n\r\n /** @ignore */\r\n hasBottomItems = computed(() => this.bottomNavItems().length > 0);\r\n\r\n /** @ignore */\r\n hasActiveLink(item: ScmsNavItem): boolean {\r\n return !!item.subItems?.some((subItem) => this.isActive(subItem.href));\r\n }\r\n\r\n /** @ignore */\r\n hasActiveSubLink(item: ScmsNavSubItem): boolean {\r\n return this.isActive(item.href);\r\n }\r\n\r\n /** @ignore */\r\n private isActive(href: string): boolean {\r\n return this.router.isActive(href, {\r\n paths: 'subset',\r\n matrixParams: 'ignored',\r\n queryParams: 'ignored',\r\n fragment: 'ignored',\r\n });\r\n }\r\n\r\n @HostListener('window:resize')\r\n checkScreenWidth() {\r\n const mobileWidth = window.innerWidth < 770;\r\n\r\n this.isMobile.set(window.innerWidth < 321);\r\n\r\n if (mobileWidth !== this.isTablet() && !mobileWidth) {\r\n this.initSideBarSize();\r\n this.splitterSubscribe();\r\n }\r\n\r\n this.isTablet.set(mobileWidth);\r\n\r\n if (this.isTablet()) {\r\n setTimeout(() => {\r\n this.isCollapsed.set(!this.isTablet());\r\n });\r\n }\r\n }\r\n}\r\n","@if (!isTablet()) {\r\n <as-split\r\n #splitter\r\n [useTransition]=\"true\"\r\n unit=\"pixel\"\r\n [gutterSize]=\"10\"\r\n (gutterDblClick)=\"expandSidebar()\"\r\n [gutterDblClickDuration]=\"500\"\r\n (dragEnd)=\"dragEnd($event)\"\r\n >\r\n <as-split-area [size]=\"sidebarSize()\" [minSize]=\"50\" [maxSize]=\"maxExpandedWidth()\" #sideNavArea>\r\n <div class=\"navigation-menu-content-container regular-menu-content-container\">\r\n <div class=\"logo-container\">\r\n <a [routerLink]=\"'/'\">\r\n <ads-ascent-logo size=\"small\" [mobileWidth]=\"70\" [isCollapsed]=\"isCollapsed()\" />\r\n </a>\r\n </div>\r\n\r\n <div class=\"nav-container\">\r\n <ng-container *ngTemplateOutlet=\"matAccordion\" />\r\n </div>\r\n </div>\r\n </as-split-area>\r\n\r\n <as-split-area class=\"split-area-content\">\r\n @if (showBreadcrumbs()) {\r\n <div class=\"breadcrumbs-container\">\r\n <ads-breadcrumb [breadcrumbs]=\"breadcrumbs()\" />\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"router\" />\r\n </as-split-area>\r\n </as-split>\r\n} @else {\r\n <mat-toolbar [hidden]=\"!isTablet()\" class=\"ads-toolbar\">\r\n <button mat-icon-button #menuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\">\r\n <ads-icon [name]=\"menuTrigger.menuOpen ? 'cross' : 'hamburger_menu'\" theme=\"secondary\" stroke=\"secondary\" size=\"sm\" />\r\n </button>\r\n </mat-toolbar>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <div class=\"navigation-menu-content-container\">\r\n <div class=\"burger-logo-container\">\r\n <a [routerLink]=\"'/'\">\r\n <ads-ascent-logo size=\"small\" [isCollapsed]=\"false\" [mobileWidth]=\"70\" />\r\n </a>\r\n </div>\r\n\r\n <ng-container *ngTemplateOutlet=\"matAccordion\" />\r\n </div>\r\n </mat-menu>\r\n <div class=\"mobile-wrapper\">\r\n @if (showBreadcrumbs()) {\r\n <div class=\"breadcrumbs-container\" [class.is-mobile]=\"isMobile()\" >\r\n <ads-breadcrumb [breadcrumbs]=\"breadcrumbs()\" />\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"router\" />\r\n </div>\r\n\r\n}\r\n\r\n<ng-template #router>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n\r\n<ng-template #matAccordion>\r\n <div class=\"nav-items-wrapper\">\r\n <!-- Regular navigation items -->\r\n <mat-accordion class=\"nav-items-container regular-items\">\r\n @for (item of regularNavItems(); track $index) {\r\n @if (item.subItems?.length) {\r\n <mat-expansion-panel\r\n #panel\r\n [ngClass]=\"{\r\n 'active-expansion-panel': hasActiveLink(item),\r\n 'panel-expanded': panel.expanded,\r\n }\"\r\n >\r\n <mat-expansion-panel-header\r\n (click)=\"panel.expanded && isCollapsed() && expandSidebar(); $event.stopPropagation()\"\r\n (keydown.enter)=\"panel.expanded && isCollapsed() && expandSidebar()\"\r\n >\r\n <mat-panel-title>\r\n <ng-container *ngTemplateOutlet=\"itemTitle; context: { data: item }\" />\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n @if (panel.expanded) {\r\n <ads-icon size=\"xs\" name=\"chevron_up\" theme=\"iconPrimary\" />\r\n } @else {\r\n <ads-icon size=\"xs\" name=\"chevron_down\" theme=\"iconPrimary\" />\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n @for (subItem of item.subItems; track $index) {\r\n <ng-container *ngTemplateOutlet=\"navItem; context: { navItem: subItem, class: '' }\" />\r\n }\r\n </mat-expansion-panel>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"navItem; context: { navItem: item, class: 'main-item' }\" />\r\n }\r\n @if (item?.showDividerAfterItem) {\r\n <ads-divider />\r\n }\r\n }\r\n </mat-accordion>\r\n\r\n <!-- Bottom navigation items -->\r\n @if (hasBottomItems()) {\r\n <div class=\"bottom-nav-section\">\r\n <ads-divider />\r\n <mat-accordion class=\"nav-items-container bottom-items\">\r\n @for (item of bottomNavItems(); track $index) {\r\n @if (item.subItems?.length) {\r\n <mat-expansion-panel\r\n #panel\r\n [ngClass]=\"{\r\n 'active-expansion-panel': hasActiveLink(item),\r\n 'panel-expanded': panel.expanded,\r\n }\"\r\n >\r\n <mat-expansion-panel-header\r\n (click)=\"panel.expanded && isCollapsed() && expandSidebar(); $event.stopPropagation()\"\r\n (keydown.enter)=\"panel.expanded && isCollapsed() && expandSidebar()\"\r\n >\r\n <mat-panel-title>\r\n <ng-container *ngTemplateOutlet=\"itemTitle; context: { data: item }\" />\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n @if (panel.expanded) {\r\n <ads-icon size=\"xs\" name=\"chevron_up\" theme=\"iconPrimary\" />\r\n } @else {\r\n <ads-icon size=\"xs\" name=\"chevron_down\" theme=\"iconPrimary\" />\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n @for (subItem of item.subItems; track $index) {\r\n <ng-container *ngTemplateOutlet=\"navItem; context: { navItem: subItem, class: '' }\" />\r\n }\r\n </mat-expansion-panel>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"navItem; context: { navItem: item, class: 'main-item bottom-item' }\" />\r\n }\r\n @if (item?.showDividerAfterItem) {\r\n <ads-divider />\r\n }\r\n }\r\n </mat-accordion>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #navItem let-item=\"navItem\" let-className=\"class\">\r\n <a\r\n [routerLink]=\"item.href\"\r\n class=\"ads-nav-link\"\r\n [ngClass]=\"{\r\n className,\r\n 'active-nav-link': hasActiveSubLink(item),\r\n }\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"itemTitle; context: { data: item }\" />\r\n </a>\r\n</ng-template>\r\n\r\n<ng-template #itemTitle let-item=\"data\">\r\n <div class=\"ads-nav-item-container\" [matTooltip]=\"item.label\" [matTooltipDisabled]=\"!isCollapsed() || isTablet()\">\r\n @if (!!item.icon) {\r\n <ads-icon [name]=\"item.icon!\" size=\"sm\" theme=\"iconPrimary\" stroke=\"iconPrimary\" />\r\n }\r\n @if (!isCollapsed() || isTablet()) {\r\n <span>{{ item.label }}</span>\r\n }\r\n </div>\r\n</ng-template>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { SplitAreaComponent, SplitComponent } from 'angular-split';\r\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsScmsSideNavBarComponent } from './scms-side-nav-bar.component';\r\nimport { AdsDividerModule } from '../../divider';\r\nimport {\r\n MatAccordion,\r\n MatExpansionPanel,\r\n MatExpansionPanelDescription,\r\n MatExpansionPanelHeader,\r\n MatExpansionPanelTitle,\r\n} from '@angular/material/expansion';\r\nimport { AdsAscentLogoModule } from '../../logo/ascent-logo';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { AdsBreadcrumbModule } from '../../breadcrumb';\r\nimport { MatMenu, MatMenuTrigger } from '@angular/material/menu';\r\nimport { MatToolbar } from '@angular/material/toolbar';\r\nimport { MatIconButton } from '@angular/material/button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n SplitComponent,\r\n SplitAreaComponent,\r\n RouterLink,\r\n RouterLinkActive,\r\n AdsIconModule,\r\n AdsDividerModule,\r\n MatAccordion,\r\n MatExpansionPanel,\r\n MatExpansionPanelDescription,\r\n MatExpansionPanelHeader,\r\n MatExpansionPanelTitle,\r\n AdsAscentLogoModule,\r\n MatTooltip,\r\n AdsBreadcrumbModule,\r\n MatMenu,\r\n MatToolbar,\r\n MatMenuTrigger,\r\n MatIconButton,\r\n RouterOutlet\r\n ],\r\n exports: [AdsScmsSideNavBarComponent],\r\n declarations: [AdsScmsSideNavBarComponent],\r\n})\r\nexport class AdsScmsSideNavBarModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MainMenuItem } from './main-menu.types';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MainMenuService {\r\n public menuItemClicked: Subject<MainMenuItem> = new Subject<MainMenuItem>();\r\n\r\n public onMenuItemClicked(item: MainMenuItem): void {\r\n this.menuItemClicked.next(item);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { MainMenuService } from '../main-menu.service';\r\nimport { MainMenuItem } from '../main-menu.types';\r\n\r\n@Component({\r\n selector: 'ads-main-menu-items',\r\n templateUrl: 'main-menu-items.component.html',\r\n styleUrls: ['main-menu-items.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsMainMenuItemsComponent {\r\n constructor(private mainMenuService: MainMenuService) {}\r\n\r\n @Input() items!: MainMenuItem[] | null;\r\n\r\n public onMenuItemClick(item: MainMenuItem) {\r\n this.mainMenuService.onMenuItemClicked(item);\r\n }\r\n}\r\n","<div class=\"peak-menu-content\">\r\n @for(item of items ?? []; track $index) {\r\n <div mat-menu-item [ngClass]=\"item.class ? item.class : ''\">\r\n @if(item.click) {\r\n <span (click)=\"item.click()\">\r\n {{ item.text }}\r\n </span>\r\n } @else if (item.href) {\r\n <a [routerLink]=\"item.href\" [id]=\"item?.id\" routerLinkActive=\"selected\">\r\n {{ item.text }}\r\n </a>\r\n } @else {\r\n <a [id]=\"item?.id\">{{ item.text }}</a>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdsMainMenuItemsComponent } from './main-menu-items.component';\r\nimport { AdsButtonModule } from '../../../buttons/button';\r\nimport { AdsLinkButtonModule } from '../../../buttons/link-button';\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, MatMenuModule, AdsButtonModule, AdsButtonModule, AdsLinkButtonModule],\r\n exports: [AdsMainMenuItemsComponent],\r\n declarations: [AdsMainMenuItemsComponent],\r\n})\r\nexport class AdsMainMenuItemsModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconUserCircle } from '@ascentgl/ads-icons/icons';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'ads-profile-display',\r\n styleUrls: ['profile-display.component.scss'],\r\n templateUrl: 'profile-display.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsProfileDisplayComponent {\r\n constructor(\r\n public router: Router,\r\n private registry: AdsIconRegistry,\r\n ) {\r\n this.registry.register(adsIconUserCircle);\r\n }\r\n\r\n @Input({ required: true }) userDisplayName!: string;\r\n @Input({ required: true }) userImageSrc?: string;\r\n @Input({ required: true }) userProfilePath!: string;\r\n @Input({ required: true }) userBasePath!: string;\r\n\r\n isSelected(): boolean {\r\n return this.router.url.startsWith(this.userBasePath);\r\n }\r\n}\r\n","<a class=\"user\" [routerLink]=\"[userProfilePath]\" [ngClass]=\"{ selected: isSelected() }\">\r\n @if(userImageSrc) {\r\n <img [src]=\"userImageSrc\" alt=\"{{ userDisplayName }}\" />\r\n } @else {\r\n <ads-icon name=\"user_circle\" size=\"sm\" theme=\"primary\"></ads-icon>\r\n }\r\n <span class=\"username\">{{ userDisplayName }}</span>\r\n</a>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\nimport { AdsProfileDisplayComponent } from './profile-display.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, AdsIconModule],\r\n exports: [AdsProfileDisplayComponent],\r\n declarations: [AdsProfileDisplayComponent],\r\n})\r\nexport class AdsProfileDisplayModule {}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_BOTTOM_SHEET_DATA } from '@angular/material/bottom-sheet';\r\nimport { MainMenuItem } from '../main-menu.types';\r\nimport { AdsMainMenuItemsModule } from '../main-menu-items/main-menu-items.module';\r\nimport { AdsProfileDisplayModule } from '../profile-display/profile-display.module';\r\n\r\nexport interface MainMenuData {\r\n menuItems: MainMenuItem[];\r\n userImageSrc: string;\r\n userDisplayName: string;\r\n userProfilePath: string;\r\n userBasePath: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ads-main-menu-bottom-sheet',\r\n styleUrls: ['main-menu-bottom-sheet.component.scss'],\r\n templateUrl: 'main-menu-bottom-sheet.component.html',\r\n standalone: true,\r\n imports: [AdsMainMenuItemsModule, AdsProfileDisplayModule],\r\n})\r\nexport class AdsMainMenuBottomSheetComponent {\r\n constructor(@Inject(MAT_BOTTOM_SHEET_DATA) public data: MainMenuData) {}\r\n}\r\n","<div class=\"peak-menu-content\">\r\n @if(data) {\r\n <ads-profile-display\r\n [userDisplayName]=\"data.userDisplayName\"\r\n [userImageSrc]=\"data.userImageSrc\"\r\n [userProfilePath]=\"data.userProfilePath\"\r\n [userBasePath]=\"data.userBasePath\"\r\n />\r\n }\r\n <ads-main-menu-items [items]=\"data.menuItems\"/>\r\n</div>\r\n","import { Component, Input, OnChanges, OnInit, SimpleChange, ViewChild } from '@angular/core';\r\nimport { MatBottomSheet, MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconMenuMoreInfo } from '@ascentgl/ads-icons/icons';\r\nimport { filter } from 'rxjs/operators';\r\nimport { AdsMainMenuBottomSheetComponent } from './main-menu-bottom-sheet/main-menu-bottom-sheet.component';\r\nimport { MainMenuItem } from './main-menu.types';\r\nimport { MatMenu } from '@angular/material/menu';\r\n\r\n@Component({\r\n selector: 'ads-main-menu',\r\n styleUrls: ['main-menu.component.scss'],\r\n templateUrl: 'main-menu.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsMainMenuComponent implements OnChanges, OnInit {\r\n constructor(\r\n private bottomSheet: MatBottomSheet,\r\n private registry: AdsIconRegistry,\r\n private router: Router,\r\n ) {\r\n this.registry.register(adsIconMenuMoreInfo);\r\n }\r\n /** @ignore */\r\n @ViewChild('menu') menu?: MatMenu;\r\n\r\n /**\r\n * Array of menu items to display in the main menu\r\n */\r\n @Input() menuItems: MainMenuItem[] | null = [];\r\n\r\n /** Id attribute for the main menu trigger element */\r\n @Input() id = 'peak-main-menu';\r\n\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed: boolean = false;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile: boolean = false;\r\n\r\n /**\r\n * The path to the users display image\r\n */\r\n @Input() userImageSrc?: string;\r\n\r\n /**\r\n * The users display name\r\n */\r\n @Input() userDisplayName?: string;\r\n\r\n /**\r\n * The path to the user profile page\r\n */\r\n @Input() userProfilePath?: string;\r\n\r\n /**\r\n * The base user profile path\r\n */\r\n @Input() userBasePath?: string;\r\n\r\n /** @ignore */\r\n private bottomSheetRef?: MatBottomSheetRef<AdsMainMenuBottomSheetComponent>;\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.router.events.pipe(filter((event) => event instanceof NavigationStart)).subscribe(() => {\r\n this.bottomSheetRef?.dismiss();\r\n });\r\n }\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: { isMobile: SimpleChange }): void {\r\n if (changes.isMobile) {\r\n const footerMenu = document.querySelector('.peak-bottom-sheet-panel');\r\n\r\n /**\r\n * if we are going from mobile to desktop size;\r\n * hide menu (to avoid its being animated) and dismiss it\r\n */\r\n if (footerMenu?.parentElement?.parentElement && !this.isMobile) {\r\n Array.from(footerMenu.parentElement.parentElement.children).forEach((child) => child.remove());\r\n this.bottomSheetRef?.dismiss();\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n public openBottomSheet(): void {\r\n this.bottomSheetRef = this.bottomSheet.open(AdsMainMenuBottomSheetComponent, {\r\n data: {\r\n menuItems: this.menuItems,\r\n userDisplayName: this.userDisplayName,\r\n userProfilePath: this.userProfilePath,\r\n userImageSrc: this.userImageSrc,\r\n userBasePath: this.userBasePath,\r\n },\r\n panelClass: 'peak-bottom-sheet-panel',\r\n });\r\n }\r\n}\r\n","@if(isMobile) {\r\n @if(isCollapsed) {\r\n <div class=\"more-icon\">\r\n <div class=\"icon-hover\">\r\n <ads-icon [id]=\"id\" name=\"menu_more_info\" size=\"sm\" theme=\"primary\" (click)=\"openBottomSheet()\"></ads-icon>\r\n </div>\r\n </div>\r\n }\r\n} @else {\r\n <div class=\"more-icon\">\r\n <div class=\"icon-hover\" [matMenuTriggerFor]=\"menu\">\r\n <ads-icon [id]=\"id\" name=\"menu_more_info\" size=\"sm\" theme=\"primary\"></ads-icon>\r\n </div>\r\n </div>\r\n <mat-menu #menu=\"matMenu\" class=\"peak-more-menu-panel\">\r\n @if(userDisplayName) {\r\n <ads-profile-display\r\n [userDisplayName]=\"userDisplayName\"\r\n [userImageSrc]=\"userImageSrc\"\r\n [userBasePath]=\"userBasePath ?? '/'\"\r\n [userProfilePath]=\"userProfilePath ?? '/'\"\r\n />\r\n <ads-main-menu-items [items]=\"menuItems\"/>\r\n }\r\n </mat-menu>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsMainMenuItemsModule } from './main-menu-items/main-menu-items.module';\r\nimport { AdsMainMenuComponent } from './main-menu.component';\r\nimport { AdsProfileDisplayModule } from './profile-display/profile-display.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatBottomSheetModule,\r\n MatListModule,\r\n MatMenuModule,\r\n AdsIconModule,\r\n AdsMainMenuItemsModule,\r\n AdsProfileDisplayModule,\r\n RouterModule,\r\n ],\r\n exports: [AdsMainMenuComponent],\r\n declarations: [AdsMainMenuComponent],\r\n})\r\nexport class AdsMainMenuModule {}\r\n","import { Component, input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ads-numeric-step',\r\n templateUrl: './numeric-step.component.html',\r\n styleUrls: ['./numeric-step.component.scss'],\r\n imports: [NgClass],\r\n})\r\nexport class AdsNumericStepComponent {\r\n isLast = input.required<boolean>();\r\n isDelivery = input.required<boolean>();\r\n index = input.required<number>();\r\n distance = input<string>();\r\n isMobile = input.required<boolean>();\r\n\r\n get isFirst(): boolean {\r\n return this.index() === 0;\r\n }\r\n}\r\n","<div\r\n class=\"circle-container\"\r\n [ngClass]=\"{\r\n 'dash-line': !isMobile(),\r\n outermost: isFirst || isLast() || isMobile(),\r\n 'circle-container-mobile': isMobile(),\r\n }\"\r\n>\r\n @if(!isMobile()) {\r\n <div\r\n class=\"dash-line top\"\r\n [ngClass]=\"{\r\n top: isLast(),\r\n bottom: isFirst,\r\n }\"\r\n ></div>\r\n @if (!isLast() && distance()) {\r\n <div class=\"distance-text\">\r\n {{ distance() }}\r\n </div>\r\n }\r\n }\r\n <div class=\"stop-circle\" [ngClass]=\"{ delivery: isDelivery() }\">{{ index() + 1 }}</div>\r\n</div>\r\n","import { Component, input, signal } from '@angular/core';\r\nimport { NumericStep } from './numeric-step.type';\r\nimport { AbstractWindowResizeComponent } from '../../../services/window/abstract-window-resize.component';\r\n\r\n@Component({\r\n selector: 'ads-numeric-stepper',\r\n templateUrl: './numeric-stepper.component.html',\r\n styleUrls: ['./numeric-stepper.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsNumericStepperComponent extends AbstractWindowResizeComponent {\r\n constructor() {\r\n super();\r\n }\r\n\r\n /** Steps array */\r\n steps = input.required<NumericStep[]>();\r\n\r\n}\r\n","<mat-accordion multi=\"true\" class=\"stepper-container\">\r\n @for (step of steps(); track i; let i = $index) {\r\n <div class=\"step-item\" [class.step-item-mobile]=\"isMobile()\">\r\n <ads-numeric-step\r\n [isLast]=\"i === steps().length - 1\"\r\n [index]=\"i\"\r\n [isDelivery]=\"step.isDelivery\"\r\n [distance]=\"step.distance\"\r\n [isMobile]=\"isMobile()\"\r\n />\r\n <ng-container *ngTemplateOutlet=\"step.template; context: { data: step.templateData }\" />\r\n </div>\r\n @if (!$last) {\r\n <div class=\"dash-container\" [class.dash-container-mobile]=\"isMobile()\">\r\n <div class=\"dash-line\"></div>\r\n </div>\r\n }\r\n }\r\n</mat-accordion>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsNumericStepperComponent } from './numeric-stepper.component';\r\nimport { AdsNumericStepComponent } from './components/numeric-step.component';\r\nimport { MatAccordion } from '@angular/material/expansion';\r\n\r\n@NgModule({\r\n declarations: [AdsNumericStepperComponent],\r\n imports: [CommonModule, AdsNumericStepComponent, MatAccordion],\r\n exports: [AdsNumericStepperComponent],\r\n})\r\nexport class AdsNumericStepperModule {}\r\n","import { input } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { WizardStep } from './wizard-step.type';\r\nimport { AbstractWindowResizeComponent } from '../../../services/window/abstract-window-resize.component';\r\n\r\nexport enum WizardStepStatus {\r\n Completed = 'completed',\r\n Current = 'current',\r\n Future = 'future',\r\n Disabled = 'disabled',\r\n}\r\n\r\n@Component({\r\n selector: 'ads-wizard-stepper',\r\n styleUrls: ['./wizard-stepper.component.scss'],\r\n templateUrl: './wizard-stepper.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsWizardStepperComponent extends AbstractWindowResizeComponent implements OnInit {\r\n\r\n constructor() {\r\n super();\r\n }\r\n /**\r\n * The steps to display\r\n */\r\n steps = input.required<WizardStep[]>();\r\n\r\n /**\r\n * Make stepper horizontal manually\r\n */\r\n horizontalView = input<boolean>(false);\r\n\r\n\r\n /** @ignore */\r\n focusedStepIndex!: number;\r\n\r\n /** @ignore */\r\n protected readonly WizardStepStatus = WizardStepStatus;\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.focusedStepIndex = this.steps().findIndex((step: WizardStep) => step.status === WizardStepStatus.Current);\r\n }\r\n}\r\n","<div class=\"wizard-stepper\" [class.wizard-stepper-mobile]=\"(isMobile() || horizontalView())\" [class.wizard-stepper-horizontal]=\"horizontalView()\">\r\n @for (step of steps(); track index; let first = $first; let last = $last; let index = $index) {\r\n @if(!first && (isMobile() || horizontalView())) {\r\n <div class=\"line-container-mobile\">\r\n <div></div>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"step\"\r\n [class.step-mobile]=\"(isMobile() || horizontalView())\"\r\n [class.focused]=\"step.status === WizardStepStatus.Current\"\r\n [ngClass]=\"{ clickable: step.onClick }\"\r\n >\r\n @if (!first && (!isMobile() && !horizontalView())) {\r\n <div class=\"line-container\" [class.line-container-mobile]=\"(isMobile() || horizontalView())\">\r\n <div></div>\r\n <div></div>\r\n </div>\r\n }\r\n\r\n <div\r\n [id]=\"step.id\"\r\n class=\"step-icon-wrapper\"\r\n (click)=\"step.onClick && step.status !== WizardStepStatus.Disabled ? step.onClick!(step) : null\"\r\n [ngClass]=\"step.status\"\r\n [class.clickable]=\"step.onClick && step.status !== WizardStepStatus.Disabled\"\r\n >\r\n <div class=\"step-icon\" [class.step-icon-mobile]=\"(isMobile() || horizontalView())\" [matTooltip]=\"step.tooltip || ''\" [matTooltipDisabled]=\"!step.tooltip\">\r\n <ads-icon [name]=\"step.icon\" size=\"sm\" stroke=\"white\" theme=\"white\" />\r\n </div>\r\n\r\n <span class=\"title\" [class.title-mobile]=\"(isMobile() || horizontalView())\">{{ step.title }}</span>\r\n\r\n @if(step.date) {\r\n <span class=\"title subtitle\">{{ step.date }}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsWizardStepperComponent } from './wizard-stepper.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, MatTooltipModule, AdsIconModule],\r\n exports: [AdsWizardStepperComponent],\r\n declarations: [AdsWizardStepperComponent],\r\n})\r\nexport class AdsWizardStepperModule {}\r\n","import { input } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { Step } from './step.type';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconCheck } from '@ascentgl/ads-icons/icons';\r\n\r\nexport enum StepStatus {\r\n Planned = 'planned',\r\n InProgress = 'in-progress',\r\n Completed = 'completed',\r\n}\r\n\r\n@Component({\r\n selector: 'ads-stepper',\r\n styleUrls: ['./stepper.component.scss'],\r\n templateUrl: './stepper.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsStepperComponent {\r\n /** @ignore */\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register([adsIconCheck]);\r\n }\r\n\r\n /** @ignore */\r\n protected readonly StepStatus = StepStatus;\r\n\r\n /**\r\n * The steps to display\r\n */\r\n steps = input.required<Step[]>();\r\n}\r\n","<div class=\"stepper-container\">\r\n @for (step of steps(); track i; let i = $index) {\r\n <div class=\"step-item\">\r\n <div class=\"step-circle-container\">\r\n <div class=\"step-circle\" [ngClass]=\"[step.status]\">\r\n @if (step.status === StepStatus.Completed) {\r\n <ads-icon name=\"check\" size=\"xxxs\" class=\"check-icon\" />\r\n }\r\n </div>\r\n @if (i !== steps().length - 1) {\r\n <div class=\"dash-line\" [ngClass]=\"[step.status]\"></div>\r\n }\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"step.template; context: { data: step.templateData }\" />\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsStepperComponent } from './stepper.component';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n imports: [CommonModule, MatButton, AdsIconModule],\r\n exports: [AdsStepperComponent],\r\n declarations: [AdsStepperComponent],\r\n})\r\nexport class AdsStepperModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nexport type HorizontalNavLink = {\r\n text: string;\r\n route: string;\r\n disabled: boolean;\r\n};\r\n\r\n@Component({\r\n selector: 'ads-horizontal-nav-bar',\r\n styleUrls: ['horizontal-nav-bar.component.scss'],\r\n templateUrl: 'horizontal-nav-bar.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsHorizontalNavBarComponent implements OnInit {\r\n /** @ignore */\r\n constructor(private router: Router) {}\r\n /**\r\n * Array of nav items to display in the nav bar\r\n */\r\n @Input() links: HorizontalNavLink[] = [];\r\n\r\n /** @ignore */\r\n ngOnInit() {\r\n // Navigate to the first active tab by default\r\n const firstActiveTab = this.links.find((link) => !link.disabled);\r\n if (firstActiveTab) {\r\n this.router.navigate([firstActiveTab.route]);\r\n }\r\n }\r\n}\r\n","<nav mat-tab-nav-bar [disableRipple]=\"true\" [tabPanel]=\"tabPanel\" [disablePagination]=\"true\">\r\n @for (link of links; track $index) {\r\n <a mat-tab-link [routerLink]=\"link.route\" routerLinkActive=\"active\" [disabled]=\"link.disabled\">\r\n {{ link.text }}\r\n </a>\r\n }\r\n</nav>\r\n\r\n<mat-tab-nav-panel #tabPanel>\r\n <router-outlet></router-outlet>\r\n</mat-tab-nav-panel>\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\r\nimport { AdsHorizontalNavBarComponent } from './horizontal-nav-bar.component';\r\nimport { MatTabLink, MatTabNav, MatTabNavPanel } from '@angular/material/tabs';\r\n\r\n@NgModule({\r\n imports: [MatTabNav, MatTabLink, RouterOutlet, RouterLink, RouterLinkActive, MatTabNavPanel],\r\n exports: [AdsHorizontalNavBarComponent],\r\n declarations: [AdsHorizontalNavBarComponent],\r\n})\r\nexport class AdsHorizontalNavBarModule {}\r\n","import { AfterContentInit, Component, ElementRef, viewChild } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'ads-bubble',\r\n templateUrl: './bubble.component.html',\r\n styleUrls: ['./bubble.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsBubbleComponent implements AfterContentInit {\r\n /** @ignore */\r\n svgContent: string | null = null;\r\n /** @ignore */\r\n svgName = 'bubbles'; // Change this to the name of your SVG file\r\n /** @ignore */\r\n svgUrl = `public/images/${this.svgName}.svg`;\r\n\r\n /** @ignore */\r\n svgBackgroundElement = viewChild.required<ElementRef>('svgBackground');\r\n\r\n /** @ignore */\r\n constructor(private http: HttpClient) {}\r\n\r\n /** @ignore */\r\n ngAfterContentInit(): void {\r\n this.fetchSvg();\r\n }\r\n\r\n /** @ignore */\r\n private fetchSvg(): void {\r\n this.http.get(this.svgUrl, { responseType: 'text' }).subscribe(\r\n (content) => {\r\n this.svgContent = content;\r\n this.applyBackgroundPattern();\r\n },\r\n (error) => {\r\n console.error('Failed to load SVG', error);\r\n },\r\n );\r\n }\r\n\r\n /** @ignore */\r\n private applyBackgroundPattern(): void {\r\n console.log(this.svgBackgroundElement);\r\n console.log(this.svgContent);\r\n if (this.svgContent && this.svgBackgroundElement()) {\r\n const svgDataUri = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(this.svgContent)}`;\r\n this.svgBackgroundElement().nativeElement.style.backgroundImage = `url(\"${svgDataUri}\")`;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n downloadSvg(): void {\r\n const link = document.createElement('a');\r\n link.href = this.svgUrl;\r\n link.download = `${this.svgName}.svg`;\r\n link.click();\r\n }\r\n}\r\n","<div #svgBackground class=\"svg-background\"></div>\r\n@if (svgContent) {\r\n <div class=\"button-container\">\r\n <ads-button (click)=\"downloadSvg()\">Download SVG</ads-button>\r\n </div>\r\n}\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsBubbleComponent } from './bubble.component';\r\nimport { AdsButtonModule } from '../../buttons/button';\r\n\r\n@NgModule({\r\n imports: [CommonModule, NgOptimizedImage, AdsButtonModule],\r\n exports: [AdsBubbleComponent],\r\n declarations: [AdsBubbleComponent],\r\n})\r\nexport class AdsBubbleModule {}\r\n","import { Component, input, OnDestroy, OnInit } from '@angular/core';\r\nimport { AdsInputDropdownComponent } from '../dropdowns/input-dropdown';\r\nimport { AbstractControl, FormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { combineLatest, Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nconst TIME_VALIDATOR: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const timeRegex = /^(0[1-9]|1[0-2])[0-5][0-9]$/;\r\n return timeRegex.test(control.value) ? null : { invalidTime: true };\r\n};\r\n\r\nconst MILITARY_TIME_VALIDATOR: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const timeRegex = /^([01]\\d|2[0-3]):?[0-5]\\d$/;\r\n return timeRegex.test(control.value) ? null : { invalidMilitaryTime: true };\r\n};\r\n\r\n@Component({\r\n selector: 'ads-time-field',\r\n templateUrl: './time-field.component.html',\r\n styleUrls: ['time-field.component.scss', '../common/common.input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsTimeFieldComponent extends AdsInputDropdownComponent implements OnInit, OnDestroy {\r\n /** Enable military time, is \"true\" by default */\r\n militaryTime = input<boolean>(true);\r\n\r\n /** Hide clock icon for military time */\r\n hideClockIcon = input<boolean>(true);\r\n\r\n /** @ignore */\r\n periodControl = new FormControl<string | null>(null);\r\n\r\n /** @ignore */\r\n timeControl = new FormControl('', { validators: [TIME_VALIDATOR], nonNullable: true });\r\n\r\n /** @ignore */\r\n periodOptions = ['AM', 'PM'];\r\n\r\n errorMessages = {\r\n mask: 'Time must be in the format HH:mm.',\r\n invalidTime: 'Enter a valid time in 12-hour format (01:00 - 12:59).',\r\n invalidMilitaryTime: 'Enter a valid time in 24-hour format (00:00 - 23:59).',\r\n };\r\n\r\n /** @ignore */\r\n private subscription: Subscription = Subscription.EMPTY;\r\n\r\n /** @ignore */\r\n ngOnInit() {\r\n if (this.militaryTime()) {\r\n this.valueControl.addValidators(MILITARY_TIME_VALIDATOR);\r\n this.valueControl.updateValueAndValidity();\r\n } else {\r\n this.syncValidators();\r\n\r\n // Combine both periodControl and timeControl value changes\r\n this.subscription = combineLatest([this.timeControl.valueChanges, this.periodControl.valueChanges])\r\n .pipe(map(([timeStr, period]) => this.convertToMilitaryTime(timeStr, period)))\r\n .subscribe((militaryTime) => {\r\n this.valueControl.setValue(militaryTime);\r\n });\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private syncValidators() {\r\n const validators = this.valueControl.validator ? this.valueControl.validator({} as any) : null;\r\n\r\n if (validators && validators.required) {\r\n this.periodControl.setValidators([Validators.required]);\r\n this.timeControl.setValidators([Validators.required, TIME_VALIDATOR]);\r\n\r\n // Update validation state\r\n this.periodControl.updateValueAndValidity();\r\n this.timeControl.updateValueAndValidity();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n onBlurUpdateTime(): void {\r\n if (this.valueControl.valid) {\r\n let timeValue = this.valueControl.value;\r\n if (timeValue.length === 4 && !timeValue.includes(':')) {\r\n let hours = parseInt(timeValue.slice(0, 2), 10);\r\n const minutes = timeValue.slice(2);\r\n\r\n // Adjust hours if greater than 23\r\n if (hours >= 24) {\r\n hours -= 24;\r\n }\r\n timeValue = `${hours.toString().padStart(2, '0')}:${minutes}`;\r\n this.valueControl.setValue(timeValue, { emitEvent: true });\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private convertToMilitaryTime(timeStr: string, period: string | null): string {\r\n if (this.timeControl.valid && this.periodControl.valid) {\r\n const hours = parseInt(timeStr.substring(0, 2), 10);\r\n const minutes = timeStr.substring(2, 4);\r\n\r\n let militaryHours = hours;\r\n\r\n // Convert to military time\r\n if (period === 'AM' && hours === 12) {\r\n militaryHours = 0; // 12 AM is midnight (00:00)\r\n } else if (period === 'PM' && hours !== 12) {\r\n militaryHours += 12; // Add 12 hours for PM (e.g., 1 PM becomes 13)\r\n }\r\n\r\n // Format military time (HH:mm)\r\n return `${this.padZero(militaryHours)}:${minutes}`;\r\n }\r\n return ''; // Return empty string if any field is invalid\r\n }\r\n\r\n /** @ignore */\r\n private padZero(hour: number): string {\r\n return hour < 10 ? `0${hour}` : `${hour}`;\r\n }\r\n\r\n /** @ignore */\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","@if (militaryTime()) {\r\n <ads-input\r\n [control]=\"valueControl\"\r\n mask=\"Hh:m0\"\r\n [onBlur]=\"onBlurUpdateTime\"\r\n [id]=\"id\"\r\n [placeholder]=\"placeholder\"\r\n [label]=\"label\"\r\n [errorMessages]=\"errorMessages\"\r\n [width]=\"width\"\r\n [showClockIcon]=\"!hideClockIcon()\"\r\n [showClearButton]=\"showClearButton\"\r\n />\r\n} @else {\r\n <ads-input-dropdown\r\n [width]=\"width\"\r\n [label]=\"label\"\r\n [options]=\"periodOptions\"\r\n [hasEmptyValue]=\"false\"\r\n [control]=\"timeControl\"\r\n [dropdownControl]=\"periodControl\"\r\n [placeholder]=\"placeholder\"\r\n [id]=\"id\"\r\n [dropdownId]=\"dropdownId\"\r\n [dropdownLabel]=\"'AM/PM'\"\r\n [dropdownPlaceholder]=\"dropdownPlaceholder\"\r\n [dropdownWidth]=\"'128px'\"\r\n [inputWidth]=\"inputWidth\"\r\n [tooltip]=\"tooltip\"\r\n [size]=\"size\"\r\n [successMessage]=\"successMessage\"\r\n [errorMessages]=\"errorMessages\"\r\n [showExclamationOnError]=\"showExclamationOnError\"\r\n [showClearButton]=\"showClearButton\"\r\n [immediateValidation]=\"immediateValidation\"\r\n mask=\"Hh:m0\"\r\n />\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AdsInputDropdownModule } from '../dropdowns/input-dropdown';\r\nimport { AdsTimeFieldComponent } from './time-field.component';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { NgxMaskDirective } from 'ngx-mask';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { AdsInputModule } from '../input';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AdsInputDropdownModule,\r\n AdsIconModule,\r\n MatIconButton,\r\n NgxMaskDirective,\r\n ReactiveFormsModule,\r\n AdsInputModule,\r\n ],\r\n declarations: [AdsTimeFieldComponent],\r\n exports: [AdsTimeFieldComponent],\r\n})\r\nexport class AdsTimeFieldModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-navigation',\r\n styleUrls: ['./navigation.component.scss'],\r\n templateUrl: 'navigation.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsNavigationComponent {\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed = false;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n}\r\n","<nav [class.collapsed]=\"isCollapsed\" [class.mobile]=\"isMobile\">\r\n <ng-content></ng-content>\r\n</nav>\r\n<div class=\"overlay\" [class.mobile]=\"isMobile\"></div>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsNavigationComponent } from './navigation.component';\r\n\r\n@NgModule({\r\n exports: [AdsNavigationComponent],\r\n declarations: [AdsNavigationComponent],\r\n})\r\nexport class AdsNavigationModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-navigation-header',\r\n styleUrls: ['navigation-header.component.scss'],\r\n templateUrl: 'navigation-header.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsNavigationHeaderComponent {\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed = false;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n}\r\n","<header [class.collapsed]=\"isCollapsed\" [class.mobile]=\"isMobile\">\r\n <ng-content></ng-content>\r\n</header>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsNavigationHeaderComponent } from './navigation-header.component';\r\n\r\n@NgModule({\r\n exports: [AdsNavigationHeaderComponent],\r\n declarations: [AdsNavigationHeaderComponent],\r\n})\r\nexport class AdsNavigationHeaderModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconMenuMoreInfo } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-navigation-collapse-handle',\r\n styleUrls: ['navigation-collapse-handle.component.scss'],\r\n templateUrl: 'navigation-collapse-handle.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsNavigationCollapseHandleComponent {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register(adsIconMenuMoreInfo);\r\n }\r\n\r\n /**\r\n * The unique ID for the collapse handle\r\n */\r\n @Input() id!: string;\r\n\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed = false;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n\r\n /**\r\n * Text to display in the collapse menu button\r\n */\r\n @Input() handleText = 'Collapse Menu';\r\n\r\n /**\r\n * Event emitted when the collapse menu button is clicked\r\n */\r\n @Output() handleClicked: EventEmitter<null> = new EventEmitter();\r\n\r\n /** @ignore */\r\n onHandleClick() {\r\n this.handleClicked.emit();\r\n }\r\n}\r\n","<div\r\n class=\"handle\"\r\n tabindex=\"0\"\r\n (keyup.enter)=\"onHandleClick()\"\r\n (click)=\"onHandleClick()\"\r\n [class.collapsed]=\"isCollapsed\"\r\n [class.mobile]=\"isMobile\"\r\n [id]=\"id\"\r\n>\r\n <ads-icon class=\"handle-icon\" name=\"menu_more_info\" size=\"sm\"></ads-icon>\r\n <span class=\"handle-text\">{{ handleText }}</span>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\nimport { AdsNavigationCollapseHandleComponent } from './navigation-collapse-handle.component';\r\n\r\n@NgModule({\r\n imports: [AdsIconModule],\r\n exports: [AdsNavigationCollapseHandleComponent],\r\n declarations: [AdsNavigationCollapseHandleComponent],\r\n})\r\nexport class AdsNavigationCollapseHandleModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-navigation-items-container',\r\n styles: [\r\n `\r\n :host {\r\n flex: 1;\r\n }\r\n `,\r\n ],\r\n template: '<ng-content></ng-content>',\r\n standalone: false,\r\n})\r\nexport class AdsNavigationItemsContainerComponent {}\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsNavigationItemsContainerComponent } from './navigation-items-container.component';\r\n\r\n@NgModule({\r\n exports: [AdsNavigationItemsContainerComponent],\r\n declarations: [AdsNavigationItemsContainerComponent],\r\n})\r\nexport class AdsNavigationItemsContainerModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconChevronDown, adsIconChevronRight } from '@ascentgl/ads-icons/icons';\r\n\r\n@Component({\r\n selector: 'ads-navigation-item',\r\n styleUrls: ['navigation-item.component.scss'],\r\n templateUrl: 'navigation-item.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsNavigationItemComponent {\r\n constructor(private registry: AdsIconRegistry) {\r\n this.registry.register([adsIconChevronDown, adsIconChevronRight]);\r\n }\r\n\r\n /**\r\n * Whether the navigation item is active\r\n */\r\n @Input() active = false;\r\n\r\n /**\r\n * Whether the submenu items are displayed\r\n */\r\n @Input() displaySubNavigation = false;\r\n\r\n /**\r\n * Whether a navigation item has submenu items\r\n */\r\n @Input() hasSubmenu = false;\r\n\r\n /**\r\n * Icon to display\r\n */\r\n // @Input() icon!: peakIcon;\r\n\r\n /**\r\n * The unique ID for the navigation item\r\n */\r\n @Input() id!: string;\r\n\r\n /**\r\n * Whether the navigation is collapsed\r\n */\r\n @Input() isCollapsed = false;\r\n\r\n /**\r\n * Text to display\r\n */\r\n @Input() label!: string;\r\n\r\n /**\r\n * Path to navigate to when navigation item is clicked\r\n */\r\n @Input() path: string | undefined;\r\n\r\n /**\r\n * Event emitted when a navigation item is clicked\r\n */\r\n @Output() itemSelected: EventEmitter<null> = new EventEmitter();\r\n\r\n /** @ignore */\r\n public onItemSelected(): void {\r\n if (this.hasSubmenu) {\r\n this.displaySubNavigation = !this.displaySubNavigation;\r\n }\r\n\r\n this.itemSelected.emit();\r\n }\r\n\r\n /** @ignore */\r\n public toggleSubNavigation(): void {\r\n this.displaySubNavigation = !this.displaySubNavigation;\r\n }\r\n}\r\n","<a\r\n class=\"navigation-item\"\r\n [class.active]=\"active\"\r\n [class.collapsed]=\"isCollapsed\"\r\n [routerLink]=\"[path]\"\r\n (click)=\"onItemSelected()\"\r\n routerLinkActive=\"active\"\r\n #tooltip=\"matTooltip\"\r\n [matTooltip]=\"label\"\r\n [matTooltipDisabled]=\"!isCollapsed\"\r\n matTooltipPosition=\"right\"\r\n [id]=\"id\"\r\n>\r\n <div class=\"navigation-item-text\">\r\n {{ label }}\r\n </div>\r\n @if (hasSubmenu) {\r\n <div class=\"navigation-submenu-icon\">\r\n @if (displaySubNavigation) {\r\n <ads-icon\r\n class=\"center\"\r\n name=\"chevron_down\"\r\n size=\"xxs\"\r\n />\r\n } @else {\r\n <ads-icon class=\"center\" name=\"chevron_right\" size=\"xxs\" />\r\n }\r\n </div>\r\n }\r\n</a>\r\n\r\n@if (displaySubNavigation && !isCollapsed) {\r\n <ng-content></ng-content>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { AdsNavigationItemComponent } from './navigation-item.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, MatTooltipModule, AdsIconModule],\r\n exports: [AdsNavigationItemComponent],\r\n declarations: [AdsNavigationItemComponent],\r\n})\r\nexport class AdsNavigationItemModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ads-org-display-text',\r\n styleUrls: ['org-display-text.component.scss'],\r\n templateUrl: 'org-display-text.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsOrgDisplayTextComponent {\r\n /**\r\n * Organization text to display\r\n */\r\n @Input() text!: string;\r\n\r\n /**\r\n * Whether the viewport is mobile\r\n */\r\n @Input() isMobile = false;\r\n}\r\n","@if(!isMobile) {\r\n <span class=\"org-display-text\">{{ text }}</span>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AdsOrgDisplayTextComponent } from './org-display-text.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AdsOrgDisplayTextComponent],\r\n declarations: [AdsOrgDisplayTextComponent],\r\n})\r\nexport class AdsOrgDisplayTextModule {}\r\n","import { AfterViewInit, Component, EventEmitter, Input, Output, TemplateRef, viewChild } from '@angular/core';\r\nimport { MatTab, MatTabGroup, MatTabGroupBaseHeader } from '@angular/material/tabs';\r\n\r\nexport interface Tab {\r\n text?: string;\r\n disabled?: boolean;\r\n template?: TemplateRef<unknown>;\r\n headerTemplate?: TemplateRef<unknown>;\r\n}\r\n\r\n@Component({\r\n selector: 'ads-tabs',\r\n styleUrls: ['tabs.component.scss'],\r\n templateUrl: 'tabs.component.html',\r\n standalone: false,\r\n})\r\nexport class AdsTabsComponent implements AfterViewInit {\r\n tabGroup = viewChild.required<MatTabGroup>('tabGroup');\r\n\r\n @Input() tabs: Tab[] = [];\r\n @Input() selectedIndex = 0;\r\n\r\n @Output() selectedIndexChange = new EventEmitter<number>();\r\n @Output() tabChange = new EventEmitter<{ index: number, originalClick: () => void }>();\r\n\r\n ngAfterViewInit() {\r\n const tabGroup = this.tabGroup();\r\n const originalHandleClick = tabGroup._handleClick;\r\n\r\n tabGroup._handleClick = (tab: MatTab, tabHeader: MatTabGroupBaseHeader, index: number) => {\r\n // Check if there are any subscribers to the tabChange event\r\n if (this.tabChange.observed) {\r\n // Custom logic is provided - emit event and let parent decide\r\n const originalClick = () => {\r\n originalHandleClick.call(tabGroup, tab, tabHeader, index);\r\n };\r\n\r\n this.tabChange.emit({ index, originalClick });\r\n } else {\r\n // No custom logic - proceed with normal tab behavior\r\n originalHandleClick.call(tabGroup, tab, tabHeader, index);\r\n }\r\n };\r\n }\r\n}\r\n","<mat-tab-group\r\n [selectedIndex]=\"selectedIndex\"\r\n (selectedIndexChange)=\"selectedIndexChange.emit($event)\"\r\n class=\"custom-tabs\"\r\n #tabGroup\r\n [disableRipple]=\"true\"\r\n>\r\n @for(tab of tabs; track $index) {\r\n @if (tab.headerTemplate) {\r\n <mat-tab [disabled]=\"tab.disabled\">\r\n <ng-template mat-tab-label>\r\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\r\n </ng-template>\r\n @if(tab.template) {\r\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\r\n }\r\n </mat-tab>\r\n } @else {\r\n <mat-tab [disabled]=\"tab.disabled\" [label]=\"tab.text || ''\">\r\n @if(tab.template) {\r\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\r\n }\r\n </mat-tab>\r\n }\r\n }\r\n</mat-tab-group>\r\n","import { NgModule } from '@angular/core';\r\nimport { AdsTabsComponent } from './tabs.component';\r\nimport { MatTab, MatTabGroup, MatTabLabel } from '@angular/material/tabs';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [MatTabGroup, MatTab, NgTemplateOutlet, MatTabLabel],\r\n exports: [AdsTabsComponent],\r\n declarations: [AdsTabsComponent],\r\n})\r\nexport class AdsTabsModule {}\r\n","export const canadianAreaCodes = [\r\n '204',\r\n '226',\r\n '236',\r\n '249',\r\n '250',\r\n '289',\r\n '306',\r\n '343',\r\n '365',\r\n '387',\r\n '403',\r\n '416',\r\n '418',\r\n '431',\r\n '437',\r\n '438',\r\n '450',\r\n '506',\r\n '514',\r\n '519',\r\n '548',\r\n '579',\r\n '581',\r\n '587',\r\n '600',\r\n '604',\r\n '613',\r\n '639',\r\n '647',\r\n '672',\r\n '705',\r\n '709',\r\n '742',\r\n '778',\r\n '782',\r\n '807',\r\n '819',\r\n '825',\r\n '867',\r\n '873',\r\n '902',\r\n '905',\r\n];\r\n","import { Component, OnInit, Input, ElementRef, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { AbstractInputComponent } from '../abstracts/abstract.input.component';\r\nimport { AbstractControl, FormControl, Validators } from '@angular/forms';\r\nimport { canadianAreaCodes } from './canadian-area-codes';\r\nimport { GENERIC_COLLECTION } from '@ascentgl/ads-utils';\r\n\r\ninterface Option {\r\n name: string;\r\n code: string;\r\n iso: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ads-international-phone-field',\r\n templateUrl: './international-phone-field.component.html',\r\n styleUrls: ['../common/common.input.component.scss', 'international-phone-field.component.scss'],\r\n standalone: false,\r\n})\r\nexport class AdsInternationalPhoneFieldComponent extends AbstractInputComponent implements OnInit, AfterViewInit {\r\n /** Optional \"id\" attribute for dropdown field */\r\n @Input() dropdownId = '';\r\n\r\n @ViewChild('wrapperRef') wrapperRef!: ElementRef;\r\n\r\n /** @ignore */\r\n phoneMask = '(000) 000-0000';\r\n\r\n /** @ignore */\r\n countryOptions: Option[] = [\r\n { name: 'United States', code: '+1', iso: 'US' },\r\n { name: 'Mexico', code: '+52', iso: 'MX' },\r\n { name: 'Canada', code: '+1', iso: 'CA' },\r\n ];\r\n\r\n /** @ignore */\r\n flagBase64 = {\r\n US: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALsSURBVHgBxZVpSFRRGIbfOxtqLoNLrplrZo5bronG5JKRkWWEQw6iUhBZP4Q2IjCJkoIoQfwTZGpZaRSGipqZTJkimCsmmToGMziaMU46+8ztzGg/7OeMTQ8c7r0c7n343nPOdykQaJqO6ewbvz82Nc9Xa3TwcnPGwrICblxHyBVroCkKjk4O4C3I4KfTmp8twYUXPOJ9eH8xRVEjFJEGVDd0Dtc0vuUqtXrY00bweEGY+SaBq4cLJmYkYBORzw5PFPu64FCQDwygYSnb+Ylyp/DAQBa5PzY0Ocddlv8Ci2IgOMQXUxMziEuOwAfRKFydt0FjMGJxVgq/0jz4J4bDSrhkFJnE3N6eIXh6uUGp1mL66zyys5Ig6h1CZEwo+ganwGJQiEjcg+5MIVY0S6Rey6L+g9Ao4ZrESE6NRnfvMJgsJhL2hqGncwC5eXw0Nb2Dt78ndDoDJvsnUHjzMrIiA2E0wmrM4vddA9gZFgClSoOB/lGUCHPw7Gk70rNT0N41CAaDgfi4XXCMDIZrShTZjdabzeLcEwfw8pUITA4bB0nMdbUtOH8hH1UPXiCAF0Iq1mFwfA5h9U+wqpaSN6yLupBeWhc3N3RgdxIPa6sqtLwR4fpFIe7drUd+4RE0NveAwWQiIz0OcWdycDQ+DEba8l29qeLTZ/Pw8HEb2BwOCgTZqLz1CJW3S3H1Wg0i9kVDr9Wh9bUIgrQocLhOZI2tF5vO8Q2KkVrOy0yAUqHE7OcvuFJ5DncuVUNQJsDzujbYs9jgCzLhVVUFPuQwWhl1Ef2jwiyWLv4s1+vJ50ijYDIpqNQ62NuxoSENhcNmwZSsVm+AO5njbEHMdj4eFeao7cTSzRN/XU04kKHfGFsgXl/j1qQM2JJCWrYuPrU2D1tjFss6PsKW+OZlbnSukyWwJULDd7NYXqATw8bIzf/jlbHpYVnXJy5sgHtarNw1KSqWRc6umMiPK6bmalViiT/+IU680DEiLTM58b/4DdAbFqtVbO+HAAAAAElFTkSuQmCC',\r\n CA: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAL5SURBVHgBxVbLS1RRHP7uY6Z5OA/DGl+ZI2WpmWMhZRFN0CzaaVFEtOixCIIEIXPXwl1FCBUJoUT/gQRBraRaGNjCCjUyx3QUxOfoPJyZe+fefucOjRuduVeEPhjmnHO/8/vu+c75/e7hQFBV1Rf58K47MfHLr8oy7M1nYG86iZ1AbOgLYoOfwYkirDVHhgvOBW5yHDcskmjlfPejgcW+l25GVBIJeIiUU1hVoSoKOEHQ2uC4LanxoUHMP3sC3mJlXZ+nvXOANL08dVpW3791wwhIbKmvB4uvXmSEDWCxt4dp3WDCbml2RtckNS0jGfwN8DxmHnQgdL9Ta6emp6HKkq4Y6cga+3OLMABOEPHTfxq2ai9MxYVsBOOBU4gHQ2iYCBkJBR4GUXTtKlIzIXAms3ZgpNAUii5f3CDotD6nsJpKQYnHtfbym16kV8NwnD0PJRrPCqSjUTj8Acj0bIk47KApsag2NxdyWs2ZzfjqKkBB7QGoiRim2u6hcSUKeSUCwe3UONJyDI7ABXzbbYep3IOF592IjIyhaV3BtlfMVlXR9RBKZJltJyzeUgy7zdh1cH+WYqmuJFELzN4yLavktSWa05XX8txWSxKinz5C5TI0VlzMFeUUXd4g0Wk27yvNjnHEZXOUZALbFmZWu1ou0WFaAAQdCUCcJHFdLa3/CsaWyBut6NYd2E80Y7TBB1t9lbbqzUUFrI8GUff9ByyH66gEKlqOb4X86UQbZ62pw7H4Olkvb753bExOozESh+VQTaaE8rlD68tjspDbZYFY5kVicpaqTxyC0w3B5aZ2UhsTK6oy9vKCrpD6KxdZXP74KSy0ep5eIhkcp4UJdJrJfimFxNgIldR05sOxo8JUpWy+49muNDdHGaZqwqyKWY82wgiY1WHe6YRRsOqUpp9RCA5NK8yE+/fcvhuGQZiKS2DylMIoCq9cZ1r9It0G/tCHuVUsLnmdmpqsZOlia2rOG8Ba74MesFh72zoyN5BauoH4A+1ME/8LfwHCZh2t8/LOWQAAAABJRU5ErkJggg==',\r\n MX: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAI7SURBVHgBxZZPSBRRHMe/82dnZncnHcXsD21t/0iodrd2qcSMlQ3KkNKi2x6sICsv1aFTB7tYHSojlv5c6tDFCHIPgREodAiLbdEKMkvTDUshaaihnbZ1pvcG6mAGM4i7n8tj5j2+H97v/eExIJimGVKT3Veyg++imIGZ/wVldwyecBB26BsdxKOBPoDj/+nb5FvdvzdYfYhhmH6eSP2fzl3qnbx6S5ktyNCzcFUstC1+TsRtyTuAKM3WHbrYdKSXOFey5KPx64OHCgrE+e5O6mqmYiWXGUehULMabRQWRcKx2DDyVvvjy9yqxDsZbExPg2U5HN6yAsukb9gYrcWuE9cglldAFLxOopzNmOU4nG2IQPJKmMrLKFeWIDOUAO9yk3NnOIlyJs7pOt4PvUa0vgGG24OBZz3wBVsx8qEHYFh6H9jOsi3Wf2pIv7qP/Rc68XlKR+rlBELr12LyRTvyb008Td9FLpe1G2dfLIkyhjNvsHNRGVwbgmi/0YhEzWXcTAWQWrUG2sQ4RNFjN86+mJbxQP1ppPmP4MJ1SA5X4vr3DihHW+Ebu4e62PH5KTW5XyFIZYis2w5vOoFjkRo8lmPY8eQMNm+LgxcWWGPs4ug4sSyLktLliMc7oGsaqgSBCA9aM3UidSz+I6dIsvz3n1OplYMiQcUqV1qCQqG4rUqpVNy1+GSLigLRUruHurp4sj6jZHM0uZZW3tZHxvwzB9IXiCccgF22+qvQtq+Z7J7/vEAC1aeoE8XiN+e2slrwfBPtAAAAAElFTkSuQmCC',\r\n };\r\n\r\n /** @ignore */\r\n dropdownControl: FormControl = new FormControl(this.countryOptions[0]);\r\n\r\n /** @ignore */\r\n inputControl: FormControl = new FormControl();\r\n\r\n /** @ignore */\r\n private isInternalChange = false;\r\n\r\n /** @ignore */\r\n getNorthAmericanCountry(phone: string): Option {\r\n const areaCode = phone.replace(/\\D/g, '').substring(1, 4); // Get first 3 digits\r\n if (canadianAreaCodes.includes(areaCode)) {\r\n return this.countryOptions[2];\r\n } else {\r\n return this.countryOptions[0];\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit(): void {\r\n this.valueControl.addValidators(this.validateMask);\r\n\r\n if (this.valueControl.disabled) {\r\n this.disableControls();\r\n }\r\n\r\n const originalReset = this.valueControl.reset.bind(this.valueControl);\r\n this.valueControl.reset = (...args: any[]) => {\r\n originalReset(...args);\r\n this.handleReset();\r\n };\r\n\r\n const originalSetValue = this.valueControl.setValue.bind(this.valueControl);\r\n this.valueControl.setValue = ((value: any, options?: any) => {\r\n originalSetValue(value, options);\r\n this.handleSetValue(value);\r\n }) as typeof this.valueControl.setValue;\r\n\r\n this.valueControl.statusChanges.subscribe((status) => {\r\n if (status === 'DISABLED') {\r\n this.disableControls();\r\n } else {\r\n this.dropdownControl.enable({ emitEvent: false });\r\n this.inputControl.enable({ emitEvent: false });\r\n }\r\n });\r\n\r\n const value = this.valueControl.value;\r\n if (value && !value.startsWith('+') && /^\\d+$/.test(value)) {\r\n this.valueControl.setValue(`+${value}`);\r\n }\r\n\r\n if (this.valueControl.hasValidator(Validators.required)) {\r\n this.inputControl.addValidators([Validators.required]);\r\n }\r\n\r\n if (value) {\r\n this.parsePhoneNumber(value);\r\n }\r\n\r\n this.inputControl.valueChanges.subscribe(() => this.provideValueToTheValueControl());\r\n this.dropdownControl.valueChanges.subscribe(() => this.provideValueToTheValueControl());\r\n }\r\n\r\n /** @ignore */\r\n private disableControls(): void {\r\n this.dropdownControl.disable({ emitEvent: false });\r\n this.inputControl.disable({ emitEvent: false });\r\n }\r\n\r\n /** @ignore */\r\n private handleReset(): void {\r\n this.dropdownControl.setValue(this.countryOptions[0], { emitEvent: false });\r\n this.inputControl.setValue(null, { emitEvent: false });\r\n }\r\n\r\n /** @ignore */\r\n private handleSetValue(value: string | null): void {\r\n if (this.isInternalChange) return;\r\n if (value) {\r\n this.isInternalChange = true;\r\n this.parsePhoneNumber(value, false)\r\n this.isInternalChange = false;\r\n } else {\r\n this.isInternalChange = true;\r\n this.inputControl.setValue(null, { emitEvent: false });\r\n this.isInternalChange = false;\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private parsePhoneNumber(fullNumber: string, emitEvent = true) {\r\n const trimmed = fullNumber.trim().replace(/\\s+/g, ''); // Remove spaces\r\n\r\n const knownCodes = ['+52', '+1']; // Add more as needed\r\n knownCodes.sort((a, b) => b.length - a.length); // Match the longest first\r\n\r\n const countryCode = knownCodes.find((code) => trimmed.startsWith(code));\r\n if (!countryCode) return;\r\n\r\n const numberWithoutCode = trimmed.slice(countryCode.length).trim();\r\n\r\n switch (countryCode) {\r\n case '+52':\r\n this.dropdownControl.setValue(this.countryOptions[1], { emitEvent });\r\n this.inputControl.setValue(numberWithoutCode, { emitEvent });\r\n break;\r\n\r\n case '+1': {\r\n const country = this.getNorthAmericanCountry(fullNumber);\r\n if (country) {\r\n this.dropdownControl.setValue(country, { emitEvent });\r\n this.inputControl.setValue(numberWithoutCode, { emitEvent });\r\n }\r\n break;\r\n }\r\n\r\n default:\r\n return; // Ignore unsupported country codes\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n const width = this.wrapperRef?.nativeElement.offsetWidth;\r\n document.documentElement.style.setProperty('--full-width-panel', `${width}px`);\r\n }\r\n\r\n /** @ignore */\r\n getFlag(option: Option): string {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-expect-error\r\n return this.flagBase64[option.iso];\r\n }\r\n\r\n /** @ignore */\r\n private provideValueToTheValueControl() {\r\n if (this.isInternalChange) return;\r\n\r\n const code = this.dropdownControl.value.code;\r\n const phone = this.inputControl.value;\r\n this.isInternalChange = true;\r\n this.valueControl.setValue(phone ? code + phone : null);\r\n this.inputControl.markAsTouched({ emitEvent: false });\r\n this.isInternalChange = false;\r\n }\r\n\r\n /** @ignore */\r\n override canShowError(): boolean {\r\n return !!this.inputControl.errors && (this.inputControl.touched || this.immediateValidation);\r\n }\r\n\r\n /** @ignore */\r\n override canShowSuccess(): boolean {\r\n return !this.inputControl.errors && this.inputControl.touched && !!this.successMessage;\r\n }\r\n\r\n /** @ignore */\r\n override displayFirstError(control: FormControl = this.inputControl): string {\r\n if (!control.errors) return this.genericError;\r\n\r\n /**\r\n * NOTE: we are showing only the first error in a row\r\n */\r\n const firstErrorKey: string = Object.keys(control.errors)[0];\r\n\r\n /**\r\n * merge defaultErrorMessages, required error messages (which is always available)\r\n * and configured errorMessages\r\n */\r\n const errorMessages: GENERIC_COLLECTION<string> = {\r\n ...this.defaultErrorMessages,\r\n ...{ required: this.requiredErrorMessage },\r\n ...{ mask: 'Phone number must be 10 digits.' },\r\n ...this.errorMessages,\r\n };\r\n\r\n if (typeof errorMessages[firstErrorKey] === 'string') {\r\n return errorMessages[firstErrorKey];\r\n } else {\r\n console.warn(`No translation for error ${firstErrorKey}`);\r\n return `${this.genericError} (${firstErrorKey})`;\r\n }\r\n }\r\n\r\n private validateMask = (control: AbstractControl): null | { mask: true } => {\r\n const value = (control.value || '').trim();\r\n\r\n /**\r\n * do not validate empty values (use required validator instead)\r\n */\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n /**\r\n * get value minus code length\r\n */\r\n const digitCount = value.length - this.dropdownControl.value.code.length;\r\n\r\n return digitCount === 10 ? null : { mask: true };\r\n };\r\n}\r\n","<div class=\"form-field-wrapper\" [ngStyle]=\"{ width: width }\" #wrapperRef>\r\n <div class=\"form-controls-wrapper\">\r\n <div\r\n class=\"select-box\"\r\n [ngClass]=\"{ invalid: valueControl.invalid && valueControl.touched }\"\r\n [ngStyle]=\"{ width: '87px' }\"\r\n >\r\n <ads-dropdown\r\n [control]=\"dropdownControl\"\r\n [id]=\"dropdownId\"\r\n [options]=\"countryOptions\"\r\n [immediateValidation]=\"immediateValidation\"\r\n [optionTemplate]=\"optionTemplate\"\r\n [fitContent]=\"true\"\r\n [showFooter]=\"false\"\r\n [checkSelected]=\"false\"\r\n [size]=\"size\"\r\n [successMessage]=\"successMessage\"\r\n [triggerTemplate]=\"triggerTemplate\"\r\n [panelClass]=\"'full-width-panel'\"\r\n />\r\n </div>\r\n <div\r\n class=\"text-box\"\r\n [ngClass]=\"{\r\n invalid: dropdownControl.invalid && dropdownControl.touched,\r\n 'success-label': canShowSuccess(),\r\n 'x-small': smallSize,\r\n }\"\r\n [ngStyle]=\"{ width: '100%' }\"\r\n >\r\n <ads-input\r\n [control]=\"inputControl\"\r\n [mask]=\"phoneMask\"\r\n [id]=\"id\"\r\n [width]=\"'100%'\"\r\n [placeholder]=\"placeholder\"\r\n [label]=\"label\"\r\n [showClearButton]=\"showClearButton\"\r\n [showExclamationOnError]=\"showExclamationOnError\"\r\n [immediateValidation]=\"immediateValidation\"\r\n [dropSpecialCharacters]=\"true\"\r\n [showFooter]=\"false\"\r\n [size]=\"size\"\r\n />\r\n </div>\r\n\r\n </div>\r\n <div class=\"footer-container\">\r\n @if (canShowError()) {\r\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (canShowSuccess()) {\r\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\r\n } @else if (hint) {\r\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\r\n }\r\n </div>\r\n</div>\r\n@if (tooltip) {\r\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\r\n}\r\n\r\n<ng-template #optionTemplate let-option=\"option\">\r\n <div class=\"flag-option\">\r\n <div>\r\n <img [src]=\"getFlag(option)\" alt=\"flag\"/>\r\n <span>{{option.name}}</span>\r\n </div>\r\n <span class=\"code\">{{option.code}}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #triggerTemplate let-option=\"option\">\r\n <span>{{ option.code }}</span>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\r\nimport { AdsInputModule } from '../input';\r\nimport { AdsInternationalPhoneFieldComponent } from './international-phone-field.component';\r\nimport { AdsDropdownModule } from '../dropdowns/dropdown';\r\nimport { AdsErrorComponent } from '../common/error/error.component';\r\nimport { AdsHintComponent } from '../common/hint/hint.component';\r\nimport { AdsInputTooltipComponent } from '../common/input.tooltip.component';\r\nimport { AdsSuccessComponent } from '../common/success/success.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n NgxMaskDirective,\r\n AdsInputModule,\r\n AdsDropdownModule,\r\n AdsErrorComponent,\r\n AdsHintComponent,\r\n AdsInputTooltipComponent,\r\n AdsSuccessComponent,\r\n ],\r\n declarations: [AdsInternationalPhoneFieldComponent],\r\n exports: [AdsInternationalPhoneFieldComponent],\r\n providers: [provideNgxMask()],\r\n})\r\nexport class AdsInternationalPhoneFieldModule {}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n OnInit,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n AfterViewInit,\r\n Renderer2,\r\n ViewChild,\r\n SimpleChanges,\r\n OnChanges,\r\n} from '@angular/core';\r\nimport { AdsIconRegistry } from '@ascentgl/ads-icons';\r\nimport { adsIconCheckCircleFilled } from '@ascentgl/ads-icons/icons';\r\nimport { ProgressStep } from './progress-step.types';\r\n\r\n@Component({\r\n selector: 'ads-progress-stepper',\r\n templateUrl: './progress-stepper.component.html',\r\n styleUrls: ['./progress-stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class AdsProgressStepperComponent implements AfterViewInit, OnChanges, OnInit {\r\n constructor(\r\n private renderer: Renderer2,\r\n private registry: AdsIconRegistry,\r\n private window: Window,\r\n ) {\r\n this.registry.register(adsIconCheckCircleFilled);\r\n }\r\n\r\n /** @ignore */\r\n @ViewChild('stepper') stepper!: ElementRef;\r\n\r\n /** @ignore */\r\n @ViewChildren('stepElements') stepElements!: QueryList<ElementRef>;\r\n\r\n /** Whether the viewport is mobile */\r\n @Input() isMobile = false;\r\n\r\n /** Padding of parent container */\r\n @Input() containerPadding = 24;\r\n\r\n /** Steps to display */\r\n @Input() steps!: ProgressStep[];\r\n\r\n /** @ignore */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n public styles: any = {};\r\n\r\n /** @ignore */\r\n private focusedIndex = 0;\r\n\r\n /** @ignore */\r\n ngAfterViewInit() {\r\n if (this.isMobile) {\r\n this.focusedIndex = this.getLastCompletedStepIndex(this.steps);\r\n this.centerCurrentStep(this.focusedIndex);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes?.isMobile && !changes.isMobile.firstChange) {\r\n this.focusedIndex = this.getLastCompletedStepIndex(this.steps);\r\n this.centerCurrentStep(this.focusedIndex);\r\n }\r\n\r\n if (changes?.steps && changes.steps?.currentValue && !changes.steps?.firstChange) {\r\n if (this.isMobile) {\r\n this.focusedIndex = this.getLastCompletedStepIndex(this.steps);\r\n this.centerCurrentStep(this.focusedIndex);\r\n }\r\n }\r\n }\r\n\r\n /** @ignore */\r\n ngOnInit() {\r\n this.styles = {\r\n step: {\r\n 'grid-template-columns': `repeat(${this.steps.length}, minmax(150px, 1fr))`,\r\n },\r\n };\r\n }\r\n\r\n /** @ignore */\r\n public onSwipeLeft(): void {\r\n if (this.focusedIndex === this.steps.length - this.calculateStepsPerViewport() || !this.isMobile) {\r\n return;\r\n }\r\n\r\n this.focusedIndex++;\r\n this.centerCurrentStep(this.focusedIndex);\r\n }\r\n\r\n /** @ignore */\r\n public onSwipeRight(): void {\r\n if (this.focusedIndex === 0 || !this.isMobile) {\r\n return;\r\n }\r\n\r\n this.focusedIndex--;\r\n this.centerCurrentStep(this.focusedIndex);\r\n }\r\n\r\n /** @ignore */\r\n private centerCurrentStep(focusedIndex: number): void {\r\n if (focusedIndex === 0) {\r\n this.renderer.setStyle(this.stepper.nativeElement, 'margin-left', '0px');\r\n return;\r\n }\r\n\r\n const stepWidth = this.stepElements.first.nativeElement.getBoundingClientRect().width;\r\n const offset = focusedIndex * stepWidth;\r\n this.renderer.setStyle(this.stepper.nativeElement, 'margin-left', `-${offset}px`);\r\n }\r\n\r\n /** @ignore */\r\n private getLastCompletedStepIndex(steps: ProgressStep[]): number {\r\n return steps.map((step) => step.completed).lastIndexOf(true);\r\n }\r\n\r\n /** @ignore */\r\n private calculateStepsPerViewport(): number {\r\n const stepWidth = this.stepElements.first.nativeElement.getBoundingClientRect().width;\r\n return Math.floor((this.window.innerWidth - this.containerPadding) / stepWidth);\r\n }\r\n}\r\n","<div\r\n #stepper\r\n adsGesture\r\n class=\"progress-stepper\"\r\n [ngStyle]=\"styles?.step\"\r\n [draggable]=\"false\"\r\n (gestureleft)=\"onSwipeLeft()\"\r\n (gestureright)=\"onSwipeRight()\"\r\n>\r\n @for (step of steps; track $index; let first = $first; let last = $last) {\r\n <div\r\n #stepElements\r\n class=\"progress-stepper-step\"\r\n [draggable]=\"false\"\r\n >\r\n <div class=\"progress-bar\" [class.first]=\"first\" [class.last]=\"last\">\r\n <div\r\n class=\"progress-bar-highlight\"\r\n [class.completed]=\"step.completed\"\r\n [class.roundedLeft]=\"first || (!steps[$index - 1].completed && step.completed)\"\r\n [class.roundedRight]=\"\r\n last || (!steps[$index + 1].completed && step.completed) || (first && !steps[$index + 1].completed)\r\n \"\r\n ></div>\r\n </div>\r\n <div class=\"progress-step-info\" [class.first]=\"first\" [class.last]=\"last\">\r\n <div class=\"progress-step-info-container\">\r\n <div class=\"title\">\r\n <div class=\"title-text\">{{ step.title }}</div>\r\n @if (step.completed) {\r\n <div class=\"title-completed-icon\">\r\n <ads-icon name=\"check_circle_filled\" size=\"xxs\" theme=\"success\" stroke=\"success\" />\r\n </div>\r\n }\r\n\r\n </div>\r\n @if (step?.date) {\r\n <div class=\"date\">{{ step?.date }}</div>\r\n }\r\n </div>\r\n\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AdsProgressStepperComponent } from './progress-stepper.component';\r\nimport { AdsGestureDirection, AdsGestureModule, ADS_GESTURE_DEFAULT_OPTIONS } from '@ascentgl/ads-utils';\r\nimport { AdsIconModule } from '@ascentgl/ads-icons';\r\n\r\n@NgModule({\r\n declarations: [AdsProgressStepperComponent],\r\n imports: [CommonModule, AdsIconModule, AdsGestureModule],\r\n exports: [AdsProgressStepperComponent],\r\n providers: [\r\n { provide: ADS_GESTURE_DEFAULT_OPTIONS, useValue: { direction: AdsGestureDirection.DIRECTION_HORIZONTAL } },\r\n { provide: Window, useValue: window },\r\n ],\r\n})\r\nexport class AdsProgressStepperModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i4","i5.AdsButtonComponent","i6.AdsTagContainerComponent","i7.AdsTagComponent","i4.AdsButtonComponent","i5","i1.AdsAscentLogoComponent","i1.AdsPrimaryLogoComponent","i2.AdsHintComponent","i3.AdsErrorComponent","i4.AdsSuccessComponent","i6","i7.AdsInputTooltipComponent","i8.AdsErrorComponent","i9.AdsHintComponent","i10.AdsSuccessComponent","i11.AdsTagComponent","i12.AdsCheckboxComponent","i6.AdsInputTooltipComponent","i8.AdsSuccessComponent","i9.AdsErrorComponent","i10.AdsHintComponent","i1.AdsInputComponent","i2.AdsInputComponent","i3.AdsDropdownComponent","i4.AdsInputTooltipComponent","i5.AdsErrorComponent","i6.AdsHintComponent","i7.AdsSuccessComponent","i8.AdsInputTooltipComponent","i11.AdsSuccessComponent","i12","i13.AdsSearchDropdownHighlighterPipe","i7.DateTimePickerFormatDirective","i8","i9.AdsInputTooltipComponent","i10.AdsErrorComponent","i11.AdsHintComponent","i12.AdsSuccessComponent","i9","i4.AdsErrorComponent","i5.AdsHintComponent","i2.AdsErrorComponent","i3.AdsHintComponent","i1.AdsButtonComponent","i2.AdsButtonComponent","takeUntil","i4.AdsSlideToggleComponent","i6.AdsTableButtonComponent","i7.DividerComponent","i2.AdsPrimaryLogoComponent","i5.DividerComponent","i7.AdsAscentLogoComponent","i9.AdsBreadcrumbComponent","i10","i11","i1.MainMenuService","i2.AdsProfileDisplayComponent","i5.AdsMainMenuItemsComponent","i6.AdsProfileDisplayComponent","i2.AdsNumericStepComponent","i1.AdsInputDropdownComponent"],"mappings":"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"}
|