@testgorilla/tgo-ui 2.31.1 → 2.31.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +95 -95
- package/components/accordion/accordion.component.d.ts +100 -0
- package/components/accordion/accordion.component.module.d.ts +12 -0
- package/components/alert-banner/alert-banner.component.d.ts +123 -0
- package/components/alert-banner/alert-banner.component.module.d.ts +11 -0
- package/components/autocomplete/autocomplete.component.d.ts +306 -0
- package/components/autocomplete/autocomplete.component.module.d.ts +24 -0
- package/components/autocomplete/autocomplete.model.d.ts +22 -0
- package/components/autocomplete/includes.pipe.d.ts +12 -0
- package/components/autocomplete/prevent-input.directive.d.ts +7 -0
- package/components/autocomplete/transform-Item.pipe.d.ts +11 -0
- package/components/avatar/avatar.component.d.ts +67 -0
- package/components/avatar/avatar.component.module.d.ts +13 -0
- package/components/avatar/avatar.model.d.ts +16 -0
- package/components/badge/badge.component.d.ts +59 -0
- package/components/badge/badge.component.module.d.ts +10 -0
- package/components/badge/badge.model.d.ts +35 -0
- package/components/button/button.component.d.ts +234 -0
- package/components/button/button.component.module.d.ts +16 -0
- package/components/button/button.model.d.ts +14 -0
- package/components/card/card.component.d.ts +66 -0
- package/components/card/card.component.module.d.ts +9 -0
- package/components/checkbox/checkbox.component.d.ts +192 -0
- package/components/checkbox/checkbox.component.module.d.ts +18 -0
- package/components/checkbox/focus-visible.directive.d.ts +12 -0
- package/components/checklist/checklist.component.d.ts +78 -0
- package/components/checklist/checklist.model.d.ts +8 -0
- package/components/confirm-dialog/confirm-dialog.component.d.ts +30 -0
- package/components/confirm-dialog/confirm-dialog.component.module.d.ts +12 -0
- package/components/confirm-dialog/confirm-dialog.model.d.ts +12 -0
- package/components/datepicker/date-adapter.d.ts +30 -0
- package/components/datepicker/datepicker.component.d.ts +214 -0
- package/components/datepicker/datepicker.component.module.d.ts +18 -0
- package/components/datepicker/datepicker.service.d.ts +8 -0
- package/components/datepicker/no-date-format.directive.d.ts +11 -0
- package/components/deprecated-paginator/deprecated-paginator.component.d.ts +38 -0
- package/components/deprecated-paginator/deprecated-paginator.component.module.d.ts +9 -0
- package/components/dialog/dialog.component.d.ts +149 -0
- package/components/dialog/dialog.component.module.d.ts +11 -0
- package/components/dialog/dialog.model.d.ts +12 -0
- package/components/dialog/dialog.service.d.ts +14 -0
- package/components/divider/divider.component.d.ts +39 -0
- package/components/divider/divider.component.module.d.ts +9 -0
- package/components/dropdown/dropdown.component.d.ts +190 -0
- package/components/dropdown/dropdown.component.module.d.ts +17 -0
- package/components/dropdown/dropdown.model.d.ts +5 -0
- package/components/elevation-shadow/elevation-shadow.component.d.ts +26 -0
- package/components/elevation-shadow/elevation-shadow.component.module.d.ts +8 -0
- package/components/elevation-shadow/elevation-shadow.constant.d.ts +8 -0
- package/components/empty-state/empty-state.component.d.ts +155 -0
- package/components/empty-state/empty-state.component.module.d.ts +11 -0
- package/components/field/field.component.d.ts +295 -0
- package/components/field/field.component.module.d.ts +18 -0
- package/components/field/field.model.d.ts +1 -0
- package/components/file-upload/file-upload.component.d.ts +120 -0
- package/components/file-upload/file-upload.component.module.d.ts +14 -0
- package/components/filter-button/filter-button.component.d.ts +126 -0
- package/components/filter-button/filter-button.component.module.d.ts +18 -0
- package/components/filter-button/filter-button.model.d.ts +8 -0
- package/components/gaussian-chart/gaussian-chart.component.d.ts +75 -0
- package/components/gaussian-chart/gaussian-chart.module.d.ts +13 -0
- package/components/icon/icon.component.d.ts +71 -0
- package/components/icon/icon.component.module.d.ts +10 -0
- package/components/icon/icon.config.d.ts +10 -0
- package/components/icon/icon.model.d.ts +7 -0
- package/components/icon-label/icon-label.component.d.ts +39 -0
- package/components/icon-label/icon-label.component.module.d.ts +9 -0
- package/components/logo/logo.component.d.ts +66 -0
- package/components/logo/logo.component.module.d.ts +8 -0
- package/components/logo/logo.model.d.ts +29 -0
- package/components/media-card/media-card.component.d.ts +32 -0
- package/components/multi-input/multi-input.component.d.ts +171 -0
- package/components/multi-input/multi-input.component.module.d.ts +18 -0
- package/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.d.ts +26 -0
- package/components/navbar/navbar.component.d.ts +120 -0
- package/components/navbar/navbar.component.module.d.ts +21 -0
- package/components/navbar/navbar.model.d.ts +21 -0
- package/components/overflow-menu/overflow-menu.component.d.ts +86 -0
- package/components/overflow-menu/overflow-menu.component.module.d.ts +15 -0
- package/components/overflow-menu/overflow-menu.model.d.ts +20 -0
- package/components/page-header/page-header.component.d.ts +38 -0
- package/components/page-header/page-header.component.module.d.ts +10 -0
- package/components/paginator/paginator.component.d.ts +58 -0
- package/components/paginator/paginator.component.module.d.ts +9 -0
- package/components/password-criteria/password.component.d.ts +44 -0
- package/components/password-criteria/password.component.module.d.ts +13 -0
- package/components/password-strength/password-strength.component.d.ts +45 -0
- package/components/password-strength/password-strength.component.module.d.ts +11 -0
- package/components/phone-input/join-strings.pipe.d.ts +7 -0
- package/components/phone-input/phone-input.component.d.ts +147 -0
- package/components/phone-input/phone-input.component.module.d.ts +20 -0
- package/components/phone-input/phone-input.model.d.ts +8 -0
- package/components/progress-bar/progress-bar.component.d.ts +73 -0
- package/components/progress-bar/progress-bar.component.module.d.ts +10 -0
- package/components/radial-progress/radial-progress.component.d.ts +68 -0
- package/components/radial-progress/radial-progress.component.module.d.ts +10 -0
- package/components/radial-progress/radial-progress.model.d.ts +10 -0
- package/components/radio-button/radio-button.component.d.ts +182 -0
- package/components/radio-button/radio-button.component.module.d.ts +15 -0
- package/components/radio-button/radio-button.model.d.ts +4 -0
- package/components/rating/half-star.pipe.d.ts +14 -0
- package/components/rating/rating.component.d.ts +64 -0
- package/components/rating/rating.component.module.d.ts +10 -0
- package/components/scale/scale.component.d.ts +53 -0
- package/components/scale/scale.component.module.d.ts +8 -0
- package/components/segmented-bar/segmented-bar.component.d.ts +63 -0
- package/components/segmented-bar/segmented-bar.component.module.d.ts +13 -0
- package/components/segmented-bar/segmented-bar.model.d.ts +12 -0
- package/components/segmented-button/segmented-button.component.d.ts +55 -0
- package/components/segmented-button/segmented-button.component.module.d.ts +11 -0
- package/components/segmented-button/segmented-button.model.d.ts +8 -0
- package/components/side-panel/side-panel.animations.d.ts +3 -0
- package/components/side-panel/side-panel.component.d.ts +21 -0
- package/components/side-panel/side-panel.model.d.ts +15 -0
- package/components/side-panel/side-panel.service.d.ts +20 -0
- package/components/side-sheet/side-sheet.component.d.ts +43 -0
- package/components/side-sheet/side-sheet.component.module.d.ts +14 -0
- package/components/side-sheet/side-sheet.model.d.ts +10 -0
- package/components/side-sheet/side-sheet.service.d.ts +14 -0
- package/components/skeleton/skeleton.component.d.ts +26 -0
- package/components/skeleton/skeleton.model.d.ts +2 -0
- package/components/slider/slider.component.d.ts +116 -0
- package/components/slider/slider.component.module.d.ts +7 -0
- package/components/slider/slider.model.d.ts +5 -0
- package/components/snackbar/snackbar.component.d.ts +119 -0
- package/components/snackbar/snackbar.component.module.d.ts +13 -0
- package/components/snackbar/snackbar.service.d.ts +16 -0
- package/components/spider-chart/spider-chart.component.d.ts +90 -0
- package/components/spider-chart/spider-chart.model.d.ts +12 -0
- package/components/spider-chart/spider-chart.module.d.ts +13 -0
- package/components/spinner/spinner.component.d.ts +44 -0
- package/components/spinner/spinner.module.d.ts +9 -0
- package/components/step/step.component.d.ts +169 -0
- package/components/step/step.component.module.d.ts +10 -0
- package/components/stepper/stepper.component.d.ts +94 -0
- package/components/stepper/stepper.component.module.d.ts +15 -0
- package/components/stepper/stepper.model.d.ts +22 -0
- package/components/table/sentence-case.pipe.d.ts +7 -0
- package/components/table/table.component.d.ts +117 -0
- package/components/table/table.component.module.d.ts +20 -0
- package/components/table/table.model.d.ts +104 -0
- package/components/tabs/tab.directive.d.ts +24 -0
- package/components/tabs/tabs.component.d.ts +73 -0
- package/components/tabs/tabs.component.module.d.ts +12 -0
- package/components/tabs/tabs.model.d.ts +16 -0
- package/components/tag/tag.component.d.ts +131 -0
- package/components/tag/tag.component.module.d.ts +13 -0
- package/components/toggle/toggle.component.d.ts +113 -0
- package/components/toggle/toggle.component.module.d.ts +14 -0
- package/components/tooltip/tooltip-template.directive.d.ts +27 -0
- package/components/tooltip/tooltip.component.d.ts +64 -0
- package/components/tooltip/tooltip.component.module.d.ts +12 -0
- package/components/tooltip/tooltip.model.d.ts +8 -0
- package/components/universal-skills-report/universal-skills-report.component.d.ts +33 -0
- package/components/universal-skills-report/universal-skills-report.component.module.d.ts +14 -0
- package/components/universal-skills-spider-charts/universal-skills-spider-charts.component.d.ts +47 -0
- package/components/universal-skills-spider-charts/universal-skills-spider-charts.component.module.d.ts +16 -0
- package/components/validation-error/validation-error.component.d.ts +22 -0
- package/components/validation-error/validation-error.module.d.ts +10 -0
- package/directives/digits-only.directive.d.ts +17 -0
- package/directives/drag-drop.directive.d.ts +12 -0
- package/directives/dynamic-component.directive.d.ts +20 -0
- package/directives/ellipse-text.directive.d.ts +20 -0
- package/directives/select-text.directive.d.ts +19 -0
- package/directives/step-line-element.directive.d.ts +17 -0
- package/esm2022/assets/i18n/da-dk.json +181 -0
- package/esm2022/assets/i18n/de.json +181 -0
- package/esm2022/assets/i18n/en.json +817 -0
- package/esm2022/assets/i18n/es.json +181 -0
- package/esm2022/assets/i18n/fr.json +181 -0
- package/esm2022/assets/i18n/it-it.json +181 -0
- package/esm2022/assets/i18n/ja-jp.json +181 -0
- package/esm2022/assets/i18n/nb-no.json +181 -0
- package/esm2022/assets/i18n/nl.json +181 -0
- package/esm2022/assets/i18n/pl-pl.json +181 -0
- package/esm2022/assets/i18n/pt-br.json +181 -0
- package/esm2022/assets/i18n/sv-se.json +181 -0
- package/esm2022/components/accordion/accordion.component.mjs +135 -0
- package/esm2022/components/accordion/accordion.component.module.mjs +40 -0
- package/esm2022/components/accordion/accordion.model.mjs +2 -0
- package/esm2022/components/alert-banner/alert-banner.component.mjs +180 -0
- package/esm2022/components/alert-banner/alert-banner.component.module.mjs +21 -0
- package/esm2022/components/alert-banner/alert-banner.model.mjs +2 -0
- package/esm2022/components/autocomplete/autocomplete.component.mjs +808 -0
- package/esm2022/components/autocomplete/autocomplete.component.module.mjs +77 -0
- package/esm2022/components/autocomplete/autocomplete.model.mjs +25 -0
- package/esm2022/components/autocomplete/includes.pipe.mjs +25 -0
- package/esm2022/components/autocomplete/prevent-input.directive.mjs +27 -0
- package/esm2022/components/autocomplete/transform-Item.pipe.mjs +32 -0
- package/esm2022/components/avatar/avatar.component.mjs +104 -0
- package/esm2022/components/avatar/avatar.component.module.mjs +23 -0
- package/esm2022/components/avatar/avatar.model.mjs +21 -0
- package/esm2022/components/badge/badge.component.mjs +109 -0
- package/esm2022/components/badge/badge.component.module.mjs +20 -0
- package/esm2022/components/badge/badge.model.mjs +36 -0
- package/esm2022/components/button/button.component.mjs +449 -0
- package/esm2022/components/button/button.component.module.mjs +51 -0
- package/esm2022/components/button/button.model.mjs +2 -0
- package/esm2022/components/card/card.component.mjs +119 -0
- package/esm2022/components/card/card.component.module.mjs +19 -0
- package/esm2022/components/card/card.model.mjs +2 -0
- package/esm2022/components/checkbox/checkbox.component.mjs +319 -0
- package/esm2022/components/checkbox/checkbox.component.module.mjs +28 -0
- package/esm2022/components/checkbox/focus-visible.directive.mjs +40 -0
- package/esm2022/components/checklist/checklist.component.mjs +147 -0
- package/esm2022/components/checklist/checklist.model.mjs +2 -0
- package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +56 -0
- package/esm2022/components/confirm-dialog/confirm-dialog.component.module.mjs +29 -0
- package/esm2022/components/confirm-dialog/confirm-dialog.model.mjs +2 -0
- package/esm2022/components/datepicker/date-adapter.mjs +30 -0
- package/esm2022/components/datepicker/datepicker.component.mjs +333 -0
- package/esm2022/components/datepicker/datepicker.component.module.mjs +60 -0
- package/esm2022/components/datepicker/datepicker.service.mjs +20 -0
- package/esm2022/components/datepicker/no-date-format.directive.mjs +56 -0
- package/esm2022/components/deprecated-paginator/deprecated-paginator.component.mjs +55 -0
- package/esm2022/components/deprecated-paginator/deprecated-paginator.component.module.mjs +20 -0
- package/esm2022/components/dialog/dialog.component.mjs +259 -0
- package/esm2022/components/dialog/dialog.component.module.mjs +23 -0
- package/esm2022/components/dialog/dialog.model.mjs +2 -0
- package/esm2022/components/dialog/dialog.service.mjs +36 -0
- package/esm2022/components/divider/divider.component.mjs +65 -0
- package/esm2022/components/divider/divider.component.module.mjs +19 -0
- package/esm2022/components/divider/divider.model.mjs +2 -0
- package/esm2022/components/dropdown/dropdown.component.mjs +353 -0
- package/esm2022/components/dropdown/dropdown.component.module.mjs +57 -0
- package/esm2022/components/dropdown/dropdown.model.mjs +2 -0
- package/esm2022/components/elevation-shadow/elevation-shadow.component.mjs +45 -0
- package/esm2022/components/elevation-shadow/elevation-shadow.component.module.mjs +18 -0
- package/esm2022/components/elevation-shadow/elevation-shadow.constant.mjs +9 -0
- package/esm2022/components/empty-state/empty-state.component.mjs +234 -0
- package/esm2022/components/empty-state/empty-state.component.module.mjs +21 -0
- package/esm2022/components/empty-state/empty-state.model.mjs +2 -0
- package/esm2022/components/field/field.component.mjs +488 -0
- package/esm2022/components/field/field.component.module.mjs +60 -0
- package/esm2022/components/field/field.model.mjs +2 -0
- package/esm2022/components/file-upload/file-upload.component.mjs +282 -0
- package/esm2022/components/file-upload/file-upload.component.module.mjs +40 -0
- package/esm2022/components/filter-button/filter-button.component.mjs +236 -0
- package/esm2022/components/filter-button/filter-button.component.module.mjs +58 -0
- package/esm2022/components/filter-button/filter-button.model.mjs +2 -0
- package/esm2022/components/gaussian-chart/gaussian-chart.component.mjs +246 -0
- package/esm2022/components/gaussian-chart/gaussian-chart.module.mjs +42 -0
- package/esm2022/components/icon/icon.component.mjs +149 -0
- package/esm2022/components/icon/icon.component.module.mjs +21 -0
- package/esm2022/components/icon/icon.config.mjs +699 -0
- package/esm2022/components/icon/icon.model.mjs +2 -0
- package/esm2022/components/icon-label/icon-label.component.mjs +53 -0
- package/esm2022/components/icon-label/icon-label.component.module.mjs +20 -0
- package/esm2022/components/logo/logo.component.mjs +165 -0
- package/esm2022/components/logo/logo.component.module.mjs +18 -0
- package/esm2022/components/logo/logo.model.mjs +32 -0
- package/esm2022/components/media-card/media-card.component.mjs +47 -0
- package/esm2022/components/multi-input/multi-input.component.mjs +331 -0
- package/esm2022/components/multi-input/multi-input.component.module.mjs +58 -0
- package/esm2022/components/multi-input/multi-input.model.mjs +2 -0
- package/esm2022/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.mjs +84 -0
- package/esm2022/components/navbar/navbar.component.mjs +211 -0
- package/esm2022/components/navbar/navbar.component.module.mjs +71 -0
- package/esm2022/components/navbar/navbar.model.mjs +2 -0
- package/esm2022/components/overflow-menu/overflow-menu.component.mjs +195 -0
- package/esm2022/components/overflow-menu/overflow-menu.component.module.mjs +25 -0
- package/esm2022/components/overflow-menu/overflow-menu.model.mjs +2 -0
- package/esm2022/components/page-header/page-header.component.mjs +71 -0
- package/esm2022/components/page-header/page-header.component.module.mjs +20 -0
- package/esm2022/components/paginator/paginator.component.mjs +87 -0
- package/esm2022/components/paginator/paginator.component.module.mjs +19 -0
- package/esm2022/components/password-criteria/password.component.mjs +111 -0
- package/esm2022/components/password-criteria/password.component.module.mjs +39 -0
- package/esm2022/components/password-strength/password-strength.component.mjs +93 -0
- package/esm2022/components/password-strength/password-strength.component.module.mjs +21 -0
- package/esm2022/components/phone-input/join-strings.pipe.mjs +14 -0
- package/esm2022/components/phone-input/phone-input.component.mjs +353 -0
- package/esm2022/components/phone-input/phone-input.component.module.mjs +63 -0
- package/esm2022/components/phone-input/phone-input.model.mjs +2 -0
- package/esm2022/components/progress-bar/progress-bar.component.mjs +103 -0
- package/esm2022/components/progress-bar/progress-bar.component.module.mjs +21 -0
- package/esm2022/components/radial-progress/radial-progress.component.mjs +106 -0
- package/esm2022/components/radial-progress/radial-progress.component.module.mjs +20 -0
- package/esm2022/components/radial-progress/radial-progress.model.mjs +11 -0
- package/esm2022/components/radio-button/radio-button.component.mjs +329 -0
- package/esm2022/components/radio-button/radio-button.component.module.mjs +25 -0
- package/esm2022/components/radio-button/radio-button.model.mjs +2 -0
- package/esm2022/components/rating/half-star.pipe.mjs +23 -0
- package/esm2022/components/rating/rating.component.mjs +92 -0
- package/esm2022/components/rating/rating.component.module.mjs +20 -0
- package/esm2022/components/scale/scale.component.mjs +124 -0
- package/esm2022/components/scale/scale.component.module.mjs +18 -0
- package/esm2022/components/segmented-bar/segmented-bar.component.mjs +106 -0
- package/esm2022/components/segmented-bar/segmented-bar.component.module.mjs +23 -0
- package/esm2022/components/segmented-bar/segmented-bar.model.mjs +2 -0
- package/esm2022/components/segmented-button/segmented-button.component.mjs +104 -0
- package/esm2022/components/segmented-button/segmented-button.component.module.mjs +21 -0
- package/esm2022/components/segmented-button/segmented-button.model.mjs +2 -0
- package/esm2022/components/side-panel/side-panel.animations.mjs +26 -0
- package/esm2022/components/side-panel/side-panel.component.mjs +55 -0
- package/esm2022/components/side-panel/side-panel.model.mjs +20 -0
- package/esm2022/components/side-panel/side-panel.service.mjs +76 -0
- package/esm2022/components/side-sheet/side-sheet.component.mjs +105 -0
- package/esm2022/components/side-sheet/side-sheet.component.module.mjs +43 -0
- package/esm2022/components/side-sheet/side-sheet.model.mjs +2 -0
- package/esm2022/components/side-sheet/side-sheet.service.mjs +31 -0
- package/esm2022/components/skeleton/skeleton.component.mjs +71 -0
- package/esm2022/components/skeleton/skeleton.model.mjs +2 -0
- package/esm2022/components/slider/slider.component.mjs +256 -0
- package/esm2022/components/slider/slider.component.module.mjs +16 -0
- package/esm2022/components/slider/slider.model.mjs +2 -0
- package/esm2022/components/snackbar/snackbar.component.mjs +218 -0
- package/esm2022/components/snackbar/snackbar.component.module.mjs +25 -0
- package/esm2022/components/snackbar/snackbar.model.mjs +2 -0
- package/esm2022/components/snackbar/snackbar.service.mjs +40 -0
- package/esm2022/components/spider-chart/spider-chart.component.mjs +443 -0
- package/esm2022/components/spider-chart/spider-chart.model.mjs +4 -0
- package/esm2022/components/spider-chart/spider-chart.module.mjs +44 -0
- package/esm2022/components/spinner/spinner.component.mjs +72 -0
- package/esm2022/components/spinner/spinner.model.mjs +2 -0
- package/esm2022/components/spinner/spinner.module.mjs +19 -0
- package/esm2022/components/step/step.component.mjs +189 -0
- package/esm2022/components/step/step.component.module.mjs +20 -0
- package/esm2022/components/stepper/stepper.component.mjs +184 -0
- package/esm2022/components/stepper/stepper.component.module.mjs +44 -0
- package/esm2022/components/stepper/stepper.model.mjs +2 -0
- package/esm2022/components/table/sentence-case.pipe.mjs +19 -0
- package/esm2022/components/table/table.component.mjs +273 -0
- package/esm2022/components/table/table.component.module.mjs +61 -0
- package/esm2022/components/table/table.model.mjs +25 -0
- package/esm2022/components/tabs/tab.directive.mjs +54 -0
- package/esm2022/components/tabs/tabs.component.mjs +189 -0
- package/esm2022/components/tabs/tabs.component.module.mjs +22 -0
- package/esm2022/components/tabs/tabs.model.mjs +2 -0
- package/esm2022/components/tag/tag.component.mjs +212 -0
- package/esm2022/components/tag/tag.component.module.mjs +24 -0
- package/esm2022/components/tag/tag.model.mjs +2 -0
- package/esm2022/components/toggle/toggle.component.mjs +190 -0
- package/esm2022/components/toggle/toggle.component.module.mjs +24 -0
- package/esm2022/components/toggle/toggle.model.mjs +2 -0
- package/esm2022/components/tooltip/tooltip-template.directive.mjs +133 -0
- package/esm2022/components/tooltip/tooltip.component.mjs +108 -0
- package/esm2022/components/tooltip/tooltip.component.module.mjs +27 -0
- package/esm2022/components/tooltip/tooltip.model.mjs +8 -0
- package/esm2022/components/universal-skills-report/universal-skills-report.component.mjs +80 -0
- package/esm2022/components/universal-skills-report/universal-skills-report.component.module.mjs +43 -0
- package/esm2022/components/universal-skills-spider-charts/universal-skills-spider-charts.component.mjs +109 -0
- package/esm2022/components/universal-skills-spider-charts/universal-skills-spider-charts.component.module.mjs +52 -0
- package/esm2022/components/validation-error/validation-error.component.mjs +55 -0
- package/esm2022/components/validation-error/validation-error.model.mjs +2 -0
- package/esm2022/components/validation-error/validation-error.module.mjs +20 -0
- package/esm2022/directives/digits-only.directive.mjs +77 -0
- package/esm2022/directives/drag-drop.directive.mjs +55 -0
- package/esm2022/directives/dynamic-component.directive.mjs +40 -0
- package/esm2022/directives/ellipse-text.directive.mjs +51 -0
- package/esm2022/directives/select-text.directive.mjs +40 -0
- package/esm2022/directives/step-line-element.directive.mjs +51 -0
- package/esm2022/models/application-theme.model.mjs +2 -0
- package/esm2022/models/checkbox.model.mjs +2 -0
- package/esm2022/models/colors.model.mjs +78 -0
- package/esm2022/models/keyboard-events.model.mjs +13 -0
- package/esm2022/models/screen-breakpoints.model.mjs +6 -0
- package/esm2022/models/universal-skills-report.model.mjs +33 -0
- package/esm2022/pipes/data-property-getter.mjs +33 -0
- package/esm2022/pipes/has-validation-error.pipe.mjs +27 -0
- package/esm2022/pipes/memoize-func.pipe.mjs +39 -0
- package/esm2022/pipes/name-initials.pipe.mjs +25 -0
- package/esm2022/pipes/ui-ordinal-suffix.pipe.mjs +31 -0
- package/esm2022/pipes/ui-translate.pipe.mjs +81 -0
- package/esm2022/providers/is-mobile.mjs +11 -0
- package/esm2022/public-api.mjs +227 -0
- package/esm2022/services/icons.service.mjs +22 -0
- package/esm2022/services/universal-skills.service.mjs +85 -0
- package/esm2022/testgorilla-tgo-ui.mjs +5 -0
- package/esm2022/utils/alert-bar.model.mjs +2 -0
- package/esm2022/utils/alert-bars.utils.mjs +34 -0
- package/esm2022/utils/autocomplete-utils.mjs +78 -0
- package/esm2022/utils/color-contrast.mjs +131 -0
- package/esm2022/utils/hex-to-rgb.mjs +9 -0
- package/esm2022/utils/localization/language.model.mjs +16 -0
- package/esm2022/utils/localization/language.service.mjs +44 -0
- package/esm2022/utils/table.utils.mjs +19 -0
- package/fesm2022/testgorilla-tgo-ui.mjs +17408 -0
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/models/colors.model.d.ts +63 -0
- package/models/keyboard-events.model.d.ts +11 -0
- package/models/screen-breakpoints.model.d.ts +4 -0
- package/models/universal-skills-report.model.d.ts +44 -0
- package/package.json +17 -77
- package/pipes/data-property-getter.d.ts +8 -0
- package/pipes/has-validation-error.pipe.d.ts +15 -0
- package/pipes/memoize-func.pipe.d.ts +26 -0
- package/pipes/name-initials.pipe.d.ts +7 -0
- package/pipes/ui-ordinal-suffix.pipe.d.ts +7 -0
- package/pipes/ui-translate.pipe.d.ts +32 -0
- package/projects/tgo-canopy-ui/assets/i18n/da-dk.json +180 -180
- package/projects/tgo-canopy-ui/assets/i18n/de.json +180 -180
- package/projects/tgo-canopy-ui/assets/i18n/en.json +818 -818
- package/projects/tgo-canopy-ui/assets/i18n/es.json +180 -180
- package/projects/tgo-canopy-ui/assets/i18n/fr.json +180 -180
- package/projects/tgo-canopy-ui/assets/i18n/it-it.json +180 -180
- package/projects/tgo-canopy-ui/assets/i18n/ja-jp.json +180 -180
- package/projects/tgo-canopy-ui/assets/i18n/nb-no.json +180 -180
- package/projects/tgo-canopy-ui/assets/i18n/nl.json +180 -180
- package/projects/tgo-canopy-ui/assets/i18n/pl-pl.json +180 -180
- package/projects/tgo-canopy-ui/assets/i18n/pt-br.json +180 -180
- package/projects/tgo-canopy-ui/assets/i18n/sv-se.json +180 -180
- package/projects/tgo-canopy-ui/assets/icons/Add.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Archive.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Arrow_down.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Arrow_left.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Arrow_right.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Arrow_up.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Assessment.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Attempts.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Book.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Calendar.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Candidates.svg +8 -8
- package/projects/tgo-canopy-ui/assets/icons/Chat-notifications.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/Chat.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Check.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Clone.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Close.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Code.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Company.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Copy.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Custom-questions.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Delete.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Devices.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Document.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Dot.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Download.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Edit.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Email-message.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Employee.svg +8 -8
- package/projects/tgo-canopy-ui/assets/icons/Empty-placeholder.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Error.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Essay.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Eye-hide.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Eye-view.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Fast-forward.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/Fast-rewind.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/Feedback-1.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Feedback-2.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Feedback-3.svg +6 -6
- package/projects/tgo-canopy-ui/assets/icons/Feedback-4.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Feedback-5.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/File-attach.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/File-upload.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Filter.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Fire.svg +10 -10
- package/projects/tgo-canopy-ui/assets/icons/Folder.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-add-file.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-add-table.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-align-L.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-align-R.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-align-center.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-align-justify.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-bold.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-code-active.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-code-block.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-edit-table.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-format.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-function.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-italics.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-list-bulleted.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-list-numbered.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-picker.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-quote.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-subscript.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-superscript.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-text-direction-L.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-text-direction-R.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-text-size.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-underline.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Format-variable.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Full-screen.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Gender-female.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Gender-male.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Gift.svg +7 -7
- package/projects/tgo-canopy-ui/assets/icons/Google.svg +6 -6
- package/projects/tgo-canopy-ui/assets/icons/Grab.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Help-2.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Help.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Image.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Info.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Integration.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Language.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Layout.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Learn.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Level.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Light-bulb.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Link.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Loading-spinner.svg +10 -10
- package/projects/tgo-canopy-ui/assets/icons/Localisation.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Location.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Lock.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Log-out.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Menu-burger.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Menu-ellipsis.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Microphone.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Minimize.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Minus.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Money-bag.svg +5 -5
- package/projects/tgo-canopy-ui/assets/icons/Mouse-cursor.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Mouse-grab-cursor.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Mouse.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Multi-choice.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Notifications.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Password.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/Path.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Pin-marker.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/Plan-billing.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Plus.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Premium.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/Promotion.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Question-count.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Refer.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Reset.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Review.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Round-check-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Round-check.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Search.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Secure-checkout.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Send.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Settings.svg +8 -8
- package/projects/tgo-canopy-ui/assets/icons/Share.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Skip-next.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/Skip-previous.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/Social-facebook.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Social-instagram.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Social-linkedin.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Sorting-down-1.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Sorting-down.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Sparkles.svg +18 -18
- package/projects/tgo-canopy-ui/assets/icons/Speedometer.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Star-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Star-half.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Star-outline.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Suitcase.svg +6 -6
- package/projects/tgo-canopy-ui/assets/icons/Support.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Sync.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Team.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Test.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/TestGorilla.svg +11 -11
- package/projects/tgo-canopy-ui/assets/icons/Thunder.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Timer.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Trophy.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Type.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Unarchive.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Unlock.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Upgrade.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Upload.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/User-access.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/User-add.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/User-invite.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/User-profile.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/User-reject.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/User-switch.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Video-pause.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Video-play.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Video-record.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Video-stop.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Video.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Volume.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Warning.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/Zoom-in.svg +6 -6
- package/projects/tgo-canopy-ui/assets/icons/Zoom-out.svg +5 -5
- package/projects/tgo-canopy-ui/assets/icons/rating-icons/Star-filled-disabled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rating-icons/Star-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rating-icons/Star-half.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rating-icons/Star-outline.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Add-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Add-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Archive-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Archive-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-chevron-down-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-chevron-down-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-chevron-left-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-chevron-left-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-chevron-right-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-chevron-right-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-chevron-up-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-chevron-up-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-down-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-down-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-up-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Arrow-up-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Assessment-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Assessment-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Attach-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Attach-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Attempts-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Attempts-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Book-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Book-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Calendar-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Calendar-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Candidates-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Candidates-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Chat-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Chat-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Check-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Check-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Check-round-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Check-round-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Circle-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Circle-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Clone-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Clone-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Close-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Close-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Code-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Code-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Company-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Company-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Copy-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Copy-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Delete-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Delete-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Devices-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Devices-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Disconnected-in-line.svg +11 -11
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Document-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Document-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Dot-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Dot-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Download-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Download-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Edit-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Edit-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Edit-text-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Edit-text-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Employee-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Employee-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Empty-search-in-line.svg +11 -11
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Error-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Error-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Essay-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Essay-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Experience-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Experience-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Facebook-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Facebook-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Fast-forward-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Fast-forward-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Fast-rewind-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Fast-rewind-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Filter-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Filter-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Fire-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Fire-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Folder-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Folder-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Full-screen-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Full-screen-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Gender-female-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Gender-female-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Gender-male-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Gender-male-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Gift-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Gift-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Google-filled.svg +6 -6
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Google-in-line.svg +6 -6
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Grab-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Grab-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Help-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Help-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Hide-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Hide-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Image-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Image-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Info-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Info-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Instagram-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Instagram-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Integration-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Integration-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Invite-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Invite-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Language-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Language-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Layout-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Layout-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Learn-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Learn-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Level-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Level-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Light-bulb-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Light-bulb-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Link-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Link-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Linkedin-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Linkedin-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Localization-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Localization-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Location-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Location-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Lock-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Lock-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Logout-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Logout-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Lost-found-404-in-line.svg +11 -11
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Medal-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Medal-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Menu-burger-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Menu-burger-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Menu-ellipsis-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Menu-ellipsis-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Mic-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Mic-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Minimize-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Minimize-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Minus-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Minus-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Mouse-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Mouse-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Multi-choice-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Multi-choice-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Notification-bell-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Notification-bell-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Password-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Password-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Path-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Path-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Pause-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Pause-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Pin-marker-filled.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Pin-marker-in-line.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Plan-billing-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Plan-billing-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Play-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Play-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Plus-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Plus-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Premium-circle-in-line.svg +5 -5
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Premium-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Premium-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Question-count-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Question-count-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Question-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Question-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Record-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Record-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Refer-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Refer-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Reject-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Reject-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Reset-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Reset-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-emoji-1-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-emoji-1-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-emoji-2-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-emoji-2-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-emoji-3-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-emoji-3-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-emoji-4-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-emoji-4-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-emoji-5-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-emoji-5-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-half-star-filled.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-half-star-in-line.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-star-filled-disabled.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-star-filled.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Review-star-in-line.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Round-check-in-line.svg +4 -4
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Search-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Search-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Secure-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Secure-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Send-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Send-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Settings-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Settings-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Share-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Share-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Skip-next-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Skip-next-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Skip-previous-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Skip-previous-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Sparkle-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Sparkle-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Speedometer-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Speedometer-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Star-filled.svg +5 -5
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Star-in-line.svg +5 -5
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Stop-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Stop-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Switch-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Switch-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Sync-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Sync-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Team-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Team-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Test-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Test-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/TestGorilla-Pink-filled.svg +11 -11
- package/projects/tgo-canopy-ui/assets/icons/rebrand/TestGorilla-Pink-in-line.svg +11 -11
- package/projects/tgo-canopy-ui/assets/icons/rebrand/TestGorilla-filled.svg +11 -11
- package/projects/tgo-canopy-ui/assets/icons/rebrand/TestGorilla-in-line.svg +11 -11
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Timer-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Timer-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Trophy-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Trophy-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Type-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Type-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Unarchive-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Unarchive-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Unlock-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Unlock-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Upgrade-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Upgrade-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Upload-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Upload-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/User-access-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/User-access-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/User-add-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/User-add-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/User-profile-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/User-profile-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Validated-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Validated-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Verified-badge-filled.svg +23 -23
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Verified-badge-in-line.svg +23 -23
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Video-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Video-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/View-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/View-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Volume-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Volume-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Warning-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Warning-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Zoom-in-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Zoom-in-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Zoom-out-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Zoom-out-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/images/empty-state-default.svg +9 -9
- package/projects/tgo-canopy-ui/assets/images/poweredbyTG.svg +37 -37
- package/projects/tgo-canopy-ui/assets/images/premium.svg +5 -5
- package/projects/tgo-canopy-ui/assets/images/rebrand-last-step-icon-black.svg +3 -3
- package/projects/tgo-canopy-ui/assets/images/rebrand-last-step-icon-light.svg +3 -3
- package/projects/tgo-canopy-ui/assets/images/rebrand-logo/powered-by.svg +22 -22
- package/projects/tgo-canopy-ui/assets/images/rebrand-logo/primary_brandmark_pink.svg +10 -10
- package/projects/tgo-canopy-ui/assets/images/rebrand-logo/primary_lockup_pink.svg +22 -22
- package/projects/tgo-canopy-ui/assets/images/rebrand-logo/primary_wordmark_pink.svg +21 -21
- package/projects/tgo-canopy-ui/assets/images/rebrand-logo/secondary_brandmark_black.svg +11 -11
- package/projects/tgo-canopy-ui/assets/images/rebrand-logo/secondary_brandmark_cream.svg +11 -11
- package/projects/tgo-canopy-ui/assets/images/rebrand-logo/secondary_lockup_black.svg +23 -23
- package/projects/tgo-canopy-ui/assets/images/rebrand-logo/secondary_lockup_cream.svg +23 -23
- package/projects/tgo-canopy-ui/assets/images/rebrand-logo/secondary_wordmark_black.svg +21 -21
- package/projects/tgo-canopy-ui/assets/images/rebrand-logo/secondary_wordmark_cream.svg +21 -21
- package/projects/tgo-canopy-ui/assets/images/reverseTG.svg +84 -84
- package/projects/tgo-canopy-ui/assets/images/step-finish.svg +6 -6
- package/projects/tgo-canopy-ui/assets/images/testgorilla.svg +76 -76
- package/projects/tgo-canopy-ui/theme/_alert-bars.scss +110 -110
- package/projects/tgo-canopy-ui/theme/_breakpoints-mixin.scss +12 -12
- package/projects/tgo-canopy-ui/theme/_button.scss +72 -72
- package/projects/tgo-canopy-ui/theme/_core.scss +19 -19
- package/projects/tgo-canopy-ui/theme/_font.scss +95 -95
- package/projects/tgo-canopy-ui/theme/_icon.scss +5 -5
- package/projects/tgo-canopy-ui/theme/_input.scss +574 -574
- package/projects/tgo-canopy-ui/theme/_lib-styles.scss +35 -35
- package/projects/tgo-canopy-ui/theme/_mat-paginator.scss +59 -59
- package/projects/tgo-canopy-ui/theme/_palette.scss +108 -108
- package/projects/tgo-canopy-ui/theme/_tooltip.scss +316 -316
- package/projects/tgo-canopy-ui/theme/_typography.scss +267 -267
- package/projects/tgo-canopy-ui/theme/_variables.scss +163 -163
- package/projects/tgo-canopy-ui/theme/line-clamp.scss +8 -8
- package/projects/tgo-canopy-ui/theme/theme.scss +67 -67
- package/providers/is-mobile.d.ts +2 -0
- package/public-api.d.ts +159 -0
- package/services/icons.service.d.ts +8 -0
- package/services/universal-skills.service.d.ts +13 -0
- package/utils/alert-bars.utils.d.ts +7 -0
- package/utils/autocomplete-utils.d.ts +12 -0
- package/utils/color-contrast.d.ts +28 -0
- package/utils/hex-to-rgb.d.ts +1 -0
- package/utils/localization/language.model.d.ts +14 -0
- package/utils/localization/language.service.d.ts +20 -0
- package/utils/table.utils.d.ts +6 -0
- package/.circleci/config.yml +0 -349
- package/.editorconfig +0 -16
- package/.eslintignore +0 -5
- package/.eslintrc-a11y.js +0 -23
- package/.eslintrc.js +0 -301
- package/.github/CODEOWNERS +0 -22
- package/.github/README.md +0 -81
- package/.husky/pre-commit +0 -4
- package/.prettierignore +0 -2
- package/.prettierrc +0 -14
- package/.storybook/main.js +0 -24
- package/.storybook/preview-head.html +0 -10
- package/.storybook/preview.js +0 -112
- package/.storybook/tsconfig.json +0 -24
- package/.storybook/typings.d.ts +0 -4
- package/.stylelintrc.json +0 -30
- package/.vscode/extensions.json +0 -4
- package/.vscode/launch.json +0 -20
- package/.vscode/tasks.json +0 -42
- package/CHANGELOG.md +0 -1386
- package/angular.json +0 -174
- package/blob-report/report.zip +0 -0
- package/e2e/bannerAction.spec.ts +0 -46
- package/e2e/bannerAction.spec.ts-snapshots/id-alert-bars-banner-action--default-chromium-darwin.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-alert-bars-banner-action--default-chromium-linux.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-alert-bars-banner-action--error-chromium-darwin.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-alert-bars-banner-action--error-chromium-linux.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-alert-bars-banner-action--info-chromium-darwin.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-alert-bars-banner-action--info-chromium-linux.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-alert-bars-banner-action--warning-chromium-darwin.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-alert-bars-banner-action--warning-chromium-linux.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-alert-bars-banner-action--with-relative-width-chromium-darwin.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-alert-bars-banner-action--with-relative-width-chromium-linux.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-bars-banner-action--default-chromium-linux.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-bars-banner-action--error-chromium-linux.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-bars-banner-action--info-chromium-linux.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-bars-banner-action--warning-chromium-linux.png +0 -0
- package/e2e/bannerAction.spec.ts-snapshots/id-bars-banner-action--with-relative-width-chromium-linux.png +0 -0
- package/e2e/button.spec.ts +0 -53
- package/e2e/button.spec.ts-snapshots/id-button--basic-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--button-as-link-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--button-only-label-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--disabled-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--full-width-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--label-icon-left-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--label-icon-right-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--loading-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--menu-cell-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--menu-trigger-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--only-icon-chromium-linux.png +0 -0
- package/e2e/button.spec.ts-snapshots/id-button--small-chromium-linux.png +0 -0
- package/e2e/card.spec.ts +0 -43
- package/e2e/card.spec.ts-snapshots/id-card--default-chromium-linux.png +0 -0
- package/e2e/colors.spec.ts +0 -47
- package/e2e/colors.spec.ts-snapshots/id-foundations-colors--greysacale-chromium-linux.png +0 -0
- package/e2e/colors.spec.ts-snapshots/id-foundations-colors--primary-error-chromium-linux.png +0 -0
- package/e2e/colors.spec.ts-snapshots/id-foundations-colors--primary-petrol-chromium-linux.png +0 -0
- package/e2e/colors.spec.ts-snapshots/id-foundations-colors--primary-teal-chromium-linux.png +0 -0
- package/e2e/colors.spec.ts-snapshots/id-foundations-colors--primary-warning-chromium-linux.png +0 -0
- package/e2e/colors.spec.ts-snapshots/id-foundations-colors--secondary-colors-chromium-linux.png +0 -0
- package/e2e/createAccount.spec.ts +0 -102
- package/e2e/createAccount.spec.ts-snapshots/id-create-account--default-chromium-linux.png +0 -0
- package/e2e/createAccount.spec.ts-snapshots/id-deprecated-create-account--default-chromium-linux.png +0 -0
- package/e2e/createAccount.spec.ts-snapshots/register-with-errors-chromium-linux.png +0 -0
- package/e2e/createAccount.spec.ts-snapshots/register-with-texts-chromium-linux.png +0 -0
- package/e2e/createPassword.spec.ts +0 -94
- package/e2e/createPassword.spec.ts-snapshots/createPassword-with-errors-chromium-linux.png +0 -0
- package/e2e/createPassword.spec.ts-snapshots/createPassword-with-texts-chromium-linux.png +0 -0
- package/e2e/createPassword.spec.ts-snapshots/id-createpassword--default-args-viewMode-story-chromium-linux.png +0 -0
- package/e2e/createPassword.spec.ts-snapshots/id-createpassword--default-chromium-linux.png +0 -0
- package/e2e/createPassword.spec.ts-snapshots/id-deprecated-create-password--default-chromium-linux.png +0 -0
- package/e2e/dialog.spec.ts +0 -43
- package/e2e/dialog.spec.ts-snapshots/id-dialog-dialog--default-chromium-darwin.png +0 -0
- package/e2e/dialog.spec.ts-snapshots/id-dialog-dialog--default-chromium-linux.png +0 -0
- package/e2e/field.spec.ts +0 -51
- package/e2e/field.spec.ts-snapshots/id-forms-field--email-chromium-linux.png +0 -0
- package/e2e/field.spec.ts-snapshots/id-forms-field--number-type-chromium-linux.png +0 -0
- package/e2e/field.spec.ts-snapshots/id-forms-field--password-chromium-linux.png +0 -0
- package/e2e/field.spec.ts-snapshots/id-forms-field--search-chromium-linux.png +0 -0
- package/e2e/field.spec.ts-snapshots/id-forms-field--tel-chromium-linux.png +0 -0
- package/e2e/field.spec.ts-snapshots/id-forms-field--text-chromium-linux.png +0 -0
- package/e2e/field.spec.ts-snapshots/id-forms-field--with-disable-chromium-linux.png +0 -0
- package/e2e/field.spec.ts-snapshots/id-forms-field--with-errors-chromium-linux.png +0 -0
- package/e2e/field.spec.ts-snapshots/id-forms-field--with-require-chromium-linux.png +0 -0
- package/e2e/field.spec.ts-snapshots/id-forms-field--without-label-chromium-linux.png +0 -0
- package/e2e/forgotPassword.spec.ts +0 -94
- package/e2e/forgotPassword.spec.ts-snapshots/forgotPassword-with-errors-chromium-linux.png +0 -0
- package/e2e/forgotPassword.spec.ts-snapshots/forgotPassword-with-texts-chromium-linux.png +0 -0
- package/e2e/forgotPassword.spec.ts-snapshots/id-deprecated-forgot-password--default-chromium-linux.png +0 -0
- package/e2e/forgotPassword.spec.ts-snapshots/id-forgotpassword--default-args-viewMode-story-chromium-linux.png +0 -0
- package/e2e/forgotPassword.spec.ts-snapshots/id-forgotpassword--default-chromium-linux.png +0 -0
- package/e2e/label.spec.ts +0 -47
- package/e2e/label.spec.ts-snapshots/id-label--big-chromium-linux.png +0 -0
- package/e2e/label.spec.ts-snapshots/id-label--huge-chromium-linux.png +0 -0
- package/e2e/label.spec.ts-snapshots/id-label--large-chromium-linux.png +0 -0
- package/e2e/label.spec.ts-snapshots/id-label--medium-chromium-linux.png +0 -0
- package/e2e/label.spec.ts-snapshots/id-label--small-chromium-linux.png +0 -0
- package/e2e/label.spec.ts-snapshots/id-under-review-label--big-chromium-linux.png +0 -0
- package/e2e/label.spec.ts-snapshots/id-under-review-label--huge-chromium-linux.png +0 -0
- package/e2e/label.spec.ts-snapshots/id-under-review-label--large-chromium-linux.png +0 -0
- package/e2e/label.spec.ts-snapshots/id-under-review-label--medium-chromium-linux.png +0 -0
- package/e2e/label.spec.ts-snapshots/id-under-review-label--small-chromium-linux.png +0 -0
- package/e2e/login.spec.ts +0 -102
- package/e2e/login.spec.ts-snapshots/id-deprecated-login--default-chromium-linux.png +0 -0
- package/e2e/login.spec.ts-snapshots/id-login--default-chromium-linux.png +0 -0
- package/e2e/login.spec.ts-snapshots/login-with-errors-chromium-linux.png +0 -0
- package/e2e/login.spec.ts-snapshots/login-with-texts-chromium-linux.png +0 -0
- package/e2e/logo.spec.ts +0 -45
- package/e2e/logo.spec.ts-snapshots/id-logo--default-chromium-linux.png +0 -0
- package/e2e/logo.spec.ts-snapshots/id-logo--powered-by-chromium-linux.png +0 -0
- package/e2e/logo.spec.ts-snapshots/id-logo--reverse-chromium-linux.png +0 -0
- package/e2e/navbar.spec.ts +0 -42
- package/e2e/navbar.spec.ts-snapshots/id-navbar--default-chromium-linux.png +0 -0
- package/e2e/navigation.spec.ts +0 -43
- package/e2e/navigation.spec.ts-snapshots/id-navigation--default-chromium-linux.png +0 -0
- package/e2e/paginator.spec.ts +0 -42
- package/e2e/paginator.spec.ts-snapshots/id-paginator--default-chromium-linux.png +0 -0
- package/e2e/progressBar.spec.ts +0 -42
- package/e2e/progressBar.spec.ts-snapshots/id-progressbar--determinate-chromium-linux.png +0 -0
- package/e2e/table.spec.ts +0 -47
- package/e2e/table.spec.ts-snapshots/id-deprecated-table--default-chromium-linux.png +0 -0
- package/e2e/table.spec.ts-snapshots/id-table--default-chromium-darwin.png +0 -0
- package/e2e/table.spec.ts-snapshots/id-table--default-chromium-linux.png +0 -0
- package/e2e/table.spec.ts-snapshots/id-table--expandable-chromium-darwin.png +0 -0
- package/e2e/table.spec.ts-snapshots/id-table--expandable-chromium-linux.png +0 -0
- package/e2e/typography.spec.ts +0 -42
- package/e2e/typography.spec.ts-snapshots/id-foundations-typography--page-args-viewMode-story-chromium-linux.png +0 -0
- package/globalSetup.js +0 -9
- package/jest.config.js +0 -56
- package/ng-package.json +0 -9
- package/parse-a11y-linter.js +0 -79
- package/projects/client/src/app/app.component.html +0 -1
- package/projects/client/src/app/app.component.scss +0 -8
- package/projects/client/src/app/app.component.spec.ts +0 -27
- package/projects/client/src/app/app.component.ts +0 -37
- package/projects/client/src/app/app.routes.ts +0 -48
- package/projects/client/src/app/components/alert-banner/alert-banner.component.html +0 -15
- package/projects/client/src/app/components/alert-banner/alert-banner.component.scss +0 -0
- package/projects/client/src/app/components/alert-banner/alert-banner.component.ts +0 -26
- package/projects/client/src/app/components/avatar/avatar.component.html +0 -10
- package/projects/client/src/app/components/avatar/avatar.component.scss +0 -0
- package/projects/client/src/app/components/avatar/avatar.component.ts +0 -25
- package/projects/client/src/app/components/badge/badge.component.html +0 -11
- package/projects/client/src/app/components/badge/badge.component.scss +0 -0
- package/projects/client/src/app/components/badge/badge.component.ts +0 -22
- package/projects/client/src/app/components/button/button.component.html +0 -23
- package/projects/client/src/app/components/button/button.component.scss +0 -0
- package/projects/client/src/app/components/button/button.component.ts +0 -40
- package/projects/client/src/app/components/card/card.component.html +0 -8
- package/projects/client/src/app/components/card/card.component.scss +0 -0
- package/projects/client/src/app/components/card/card.component.ts +0 -17
- package/projects/client/src/app/components/checkbox/checkbox.component.html +0 -13
- package/projects/client/src/app/components/checkbox/checkbox.component.scss +0 -0
- package/projects/client/src/app/components/checkbox/checkbox.component.ts +0 -23
- package/projects/client/src/app/components/disabled-inputs/disabled-inputs.component.html +0 -169
- package/projects/client/src/app/components/disabled-inputs/disabled-inputs.component.scss +0 -19
- package/projects/client/src/app/components/disabled-inputs/disabled-inputs.component.spec.ts +0 -23
- package/projects/client/src/app/components/disabled-inputs/disabled-inputs.component.ts +0 -78
- package/projects/client/src/app/components/field/field.component.html +0 -28
- package/projects/client/src/app/components/field/field.component.scss +0 -0
- package/projects/client/src/app/components/field/field.component.ts +0 -37
- package/projects/client/src/app/components/icon/icon.component.html +0 -10
- package/projects/client/src/app/components/icon/icon.component.scss +0 -0
- package/projects/client/src/app/components/icon/icon.component.ts +0 -19
- package/projects/client/src/app/components/localisation/localisation.component.html +0 -8
- package/projects/client/src/app/components/localisation/localisation.component.scss +0 -0
- package/projects/client/src/app/components/localisation/localisation.component.spec.ts +0 -23
- package/projects/client/src/app/components/localisation/localisation.component.ts +0 -31
- package/projects/client/src/app/components/logo/logo.component.html +0 -8
- package/projects/client/src/app/components/logo/logo.component.scss +0 -0
- package/projects/client/src/app/components/logo/logo.component.ts +0 -18
- package/projects/client/src/app/components/radio/radio.component.html +0 -16
- package/projects/client/src/app/components/radio/radio.component.scss +0 -0
- package/projects/client/src/app/components/radio/radio.component.ts +0 -28
- package/projects/client/src/app/components/side-panel/side-panel.component.html +0 -2
- package/projects/client/src/app/components/side-panel/side-panel.component.scss +0 -0
- package/projects/client/src/app/components/side-panel/side-panel.component.ts +0 -28
- package/projects/client/src/app/components/snackbar/snackbar.component.html +0 -15
- package/projects/client/src/app/components/snackbar/snackbar.component.scss +0 -0
- package/projects/client/src/app/components/snackbar/snackbar.component.ts +0 -35
- package/projects/client/src/app/components/spinner/spinner.component.html +0 -7
- package/projects/client/src/app/components/spinner/spinner.component.scss +0 -0
- package/projects/client/src/app/components/spinner/spinner.component.ts +0 -16
- package/projects/client/src/app/components/tooltip/tooltip.component.html +0 -12
- package/projects/client/src/app/components/tooltip/tooltip.component.scss +0 -0
- package/projects/client/src/app/components/tooltip/tooltip.component.ts +0 -15
- package/projects/client/src/assets/.gitkeep +0 -0
- package/projects/client/src/assets/Avatar.png +0 -0
- package/projects/client/src/favicon.ico +0 -0
- package/projects/client/src/index.html +0 -13
- package/projects/client/src/main.ts +0 -15
- package/projects/client/src/styles.scss +0 -10
- package/projects/client/tsconfig.app.json +0 -14
- package/projects/client/tsconfig.spec.json +0 -14
- package/projects/tgo-canopy-ui/__mocks__/alert-bar.mock.ts +0 -18
- package/projects/tgo-canopy-ui/__mocks__/button.mock.ts +0 -34
- package/projects/tgo-canopy-ui/__mocks__/field.mock.ts +0 -10
- package/projects/tgo-canopy-ui/__mocks__/icon.mock.ts +0 -14
- package/projects/tgo-canopy-ui/__mocks__/tag.mock.ts +0 -9
- package/projects/tgo-canopy-ui/assets/.gitkeep +0 -0
- package/projects/tgo-canopy-ui/components/accordion/accordion.component.html +0 -44
- package/projects/tgo-canopy-ui/components/accordion/accordion.component.module.ts +0 -26
- package/projects/tgo-canopy-ui/components/accordion/accordion.component.scss +0 -326
- package/projects/tgo-canopy-ui/components/accordion/accordion.component.spec.ts +0 -37
- package/projects/tgo-canopy-ui/components/accordion/accordion.component.stories.ts +0 -245
- package/projects/tgo-canopy-ui/components/accordion/accordion.component.ts +0 -126
- package/projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.html +0 -50
- package/projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.module.ts +0 -13
- package/projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.scss +0 -62
- package/projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.spec.ts +0 -200
- package/projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.stories.ts +0 -121
- package/projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.ts +0 -184
- package/projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.html +0 -391
- package/projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.module.ts +0 -44
- package/projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.scss +0 -338
- package/projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.spec.ts +0 -532
- package/projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.stories.ts +0 -152
- package/projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.ts +0 -855
- package/projects/tgo-canopy-ui/components/autocomplete/autocomplete.model.ts +0 -28
- package/projects/tgo-canopy-ui/components/autocomplete/includes.pipe.spec.ts +0 -33
- package/projects/tgo-canopy-ui/components/autocomplete/includes.pipe.ts +0 -19
- package/projects/tgo-canopy-ui/components/autocomplete/prevent-input.directive.spec.ts +0 -46
- package/projects/tgo-canopy-ui/components/autocomplete/prevent-input.directive.ts +0 -18
- package/projects/tgo-canopy-ui/components/autocomplete/transform-Item.pipe.ts +0 -25
- package/projects/tgo-canopy-ui/components/autocomplete/transform-item.pipe.spec.ts +0 -25
- package/projects/tgo-canopy-ui/components/avatar/avatar.component.html +0 -32
- package/projects/tgo-canopy-ui/components/avatar/avatar.component.module.ts +0 -15
- package/projects/tgo-canopy-ui/components/avatar/avatar.component.scss +0 -81
- package/projects/tgo-canopy-ui/components/avatar/avatar.component.spec.ts +0 -58
- package/projects/tgo-canopy-ui/components/avatar/avatar.component.stories.ts +0 -113
- package/projects/tgo-canopy-ui/components/avatar/avatar.component.ts +0 -93
- package/projects/tgo-canopy-ui/components/avatar/avatar.model.ts +0 -27
- package/projects/tgo-canopy-ui/components/badge/badge.component.html +0 -16
- package/projects/tgo-canopy-ui/components/badge/badge.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/badge/badge.component.scss +0 -203
- package/projects/tgo-canopy-ui/components/badge/badge.component.spec.ts +0 -67
- package/projects/tgo-canopy-ui/components/badge/badge.component.stories.ts +0 -69
- package/projects/tgo-canopy-ui/components/badge/badge.component.ts +0 -104
- package/projects/tgo-canopy-ui/components/badge/badge.model.ts +0 -64
- package/projects/tgo-canopy-ui/components/bars-demo/bars-demo.component.html +0 -11
- package/projects/tgo-canopy-ui/components/bars-demo/bars-demo.component.module.ts +0 -25
- package/projects/tgo-canopy-ui/components/bars-demo/bars-demo.component.scss +0 -0
- package/projects/tgo-canopy-ui/components/bars-demo/bars-demo.component.stories.ts +0 -30
- package/projects/tgo-canopy-ui/components/bars-demo/bars-demo.component.ts +0 -31
- package/projects/tgo-canopy-ui/components/button/button.component.html +0 -146
- package/projects/tgo-canopy-ui/components/button/button.component.module.ts +0 -29
- package/projects/tgo-canopy-ui/components/button/button.component.scss +0 -1051
- package/projects/tgo-canopy-ui/components/button/button.component.spec.ts +0 -288
- package/projects/tgo-canopy-ui/components/button/button.component.stories.ts +0 -516
- package/projects/tgo-canopy-ui/components/button/button.component.ts +0 -489
- package/projects/tgo-canopy-ui/components/button/button.model.ts +0 -28
- package/projects/tgo-canopy-ui/components/card/card.component.html +0 -17
- package/projects/tgo-canopy-ui/components/card/card.component.module.ts +0 -11
- package/projects/tgo-canopy-ui/components/card/card.component.scss +0 -153
- package/projects/tgo-canopy-ui/components/card/card.component.spec.ts +0 -116
- package/projects/tgo-canopy-ui/components/card/card.component.stories.ts +0 -102
- package/projects/tgo-canopy-ui/components/card/card.component.ts +0 -129
- package/projects/tgo-canopy-ui/components/checkbox/checkbox.component.html +0 -46
- package/projects/tgo-canopy-ui/components/checkbox/checkbox.component.module.ts +0 -20
- package/projects/tgo-canopy-ui/components/checkbox/checkbox.component.scss +0 -312
- package/projects/tgo-canopy-ui/components/checkbox/checkbox.component.spec.ts +0 -263
- package/projects/tgo-canopy-ui/components/checkbox/checkbox.component.stories.ts +0 -125
- package/projects/tgo-canopy-ui/components/checkbox/checkbox.component.ts +0 -343
- package/projects/tgo-canopy-ui/components/checkbox/focus-visible.directive.spec.ts +0 -26
- package/projects/tgo-canopy-ui/components/checkbox/focus-visible.directive.ts +0 -29
- package/projects/tgo-canopy-ui/components/checklist/checklist.component.html +0 -63
- package/projects/tgo-canopy-ui/components/checklist/checklist.component.scss +0 -145
- package/projects/tgo-canopy-ui/components/checklist/checklist.component.spec.ts +0 -212
- package/projects/tgo-canopy-ui/components/checklist/checklist.component.stories.ts +0 -85
- package/projects/tgo-canopy-ui/components/checklist/checklist.component.ts +0 -169
- package/projects/tgo-canopy-ui/components/checklist/checklist.model.ts +0 -8
- package/projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.html +0 -20
- package/projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.module.ts +0 -18
- package/projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.scss +0 -3
- package/projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.spec.ts +0 -42
- package/projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.ts +0 -51
- package/projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.model.ts +0 -13
- package/projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.stories.ts +0 -37
- package/projects/tgo-canopy-ui/components/datepicker/date-adapter.spec.ts +0 -80
- package/projects/tgo-canopy-ui/components/datepicker/date-adapter.ts +0 -34
- package/projects/tgo-canopy-ui/components/datepicker/datepicker.component.html +0 -98
- package/projects/tgo-canopy-ui/components/datepicker/datepicker.component.module.ts +0 -33
- package/projects/tgo-canopy-ui/components/datepicker/datepicker.component.scss +0 -195
- package/projects/tgo-canopy-ui/components/datepicker/datepicker.component.spec.ts +0 -242
- package/projects/tgo-canopy-ui/components/datepicker/datepicker.component.stories.ts +0 -141
- package/projects/tgo-canopy-ui/components/datepicker/datepicker.component.ts +0 -391
- package/projects/tgo-canopy-ui/components/datepicker/datepicker.service.spec.ts +0 -30
- package/projects/tgo-canopy-ui/components/datepicker/datepicker.service.ts +0 -16
- package/projects/tgo-canopy-ui/components/datepicker/no-date-format.directive.spec.ts +0 -35
- package/projects/tgo-canopy-ui/components/datepicker/no-date-format.directive.ts +0 -43
- package/projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.html +0 -5
- package/projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.scss +0 -32
- package/projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.stories.ts +0 -31
- package/projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.ts +0 -54
- package/projects/tgo-canopy-ui/components/dialog/dialog.component.html +0 -62
- package/projects/tgo-canopy-ui/components/dialog/dialog.component.module.ts +0 -15
- package/projects/tgo-canopy-ui/components/dialog/dialog.component.scss +0 -133
- package/projects/tgo-canopy-ui/components/dialog/dialog.component.spec.ts +0 -225
- package/projects/tgo-canopy-ui/components/dialog/dialog.component.stories.ts +0 -60
- package/projects/tgo-canopy-ui/components/dialog/dialog.component.ts +0 -251
- package/projects/tgo-canopy-ui/components/dialog/dialog.model.ts +0 -13
- package/projects/tgo-canopy-ui/components/dialog/dialog.service.spec.ts +0 -58
- package/projects/tgo-canopy-ui/components/dialog/dialog.service.ts +0 -43
- package/projects/tgo-canopy-ui/components/dialog-custom/dialog-custom.component.html +0 -38
- package/projects/tgo-canopy-ui/components/dialog-custom/dialog-custom.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/dialog-custom/dialog-custom.component.scss +0 -10
- package/projects/tgo-canopy-ui/components/dialog-custom/dialog-custom.component.spec.ts +0 -56
- package/projects/tgo-canopy-ui/components/dialog-custom/dialog-custom.component.stories.ts +0 -27
- package/projects/tgo-canopy-ui/components/dialog-custom/dialog-custom.component.ts +0 -47
- package/projects/tgo-canopy-ui/components/dialog-demo/dialog-demo.component.html +0 -33
- package/projects/tgo-canopy-ui/components/dialog-demo/dialog-demo.component.module.ts +0 -15
- package/projects/tgo-canopy-ui/components/dialog-demo/dialog-demo.component.scss +0 -12
- package/projects/tgo-canopy-ui/components/dialog-demo/dialog-demo.component.spec.ts +0 -80
- package/projects/tgo-canopy-ui/components/dialog-demo/dialog-demo.component.stories.ts +0 -30
- package/projects/tgo-canopy-ui/components/dialog-demo/dialog-demo.component.ts +0 -62
- package/projects/tgo-canopy-ui/components/divider/divider.component.html +0 -13
- package/projects/tgo-canopy-ui/components/divider/divider.component.module.ts +0 -11
- package/projects/tgo-canopy-ui/components/divider/divider.component.scss +0 -57
- package/projects/tgo-canopy-ui/components/divider/divider.component.spec.ts +0 -21
- package/projects/tgo-canopy-ui/components/divider/divider.component.stories.ts +0 -48
- package/projects/tgo-canopy-ui/components/divider/divider.component.ts +0 -54
- package/projects/tgo-canopy-ui/components/dropdown/dropdown.component.html +0 -43
- package/projects/tgo-canopy-ui/components/dropdown/dropdown.component.module.ts +0 -31
- package/projects/tgo-canopy-ui/components/dropdown/dropdown.component.scss +0 -281
- package/projects/tgo-canopy-ui/components/dropdown/dropdown.component.spec.ts +0 -232
- package/projects/tgo-canopy-ui/components/dropdown/dropdown.component.stories.ts +0 -248
- package/projects/tgo-canopy-ui/components/dropdown/dropdown.component.ts +0 -381
- package/projects/tgo-canopy-ui/components/dropdown/dropdown.model.ts +0 -5
- package/projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.html +0 -3
- package/projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.module.ts +0 -10
- package/projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.scss +0 -41
- package/projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.spec.ts +0 -39
- package/projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.stories.ts +0 -59
- package/projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.ts +0 -38
- package/projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.constant.ts +0 -9
- package/projects/tgo-canopy-ui/components/empty-state/empty-state.component.html +0 -25
- package/projects/tgo-canopy-ui/components/empty-state/empty-state.component.module.ts +0 -13
- package/projects/tgo-canopy-ui/components/empty-state/empty-state.component.scss +0 -72
- package/projects/tgo-canopy-ui/components/empty-state/empty-state.component.spec.ts +0 -110
- package/projects/tgo-canopy-ui/components/empty-state/empty-state.component.stories.ts +0 -183
- package/projects/tgo-canopy-ui/components/empty-state/empty-state.component.ts +0 -210
- package/projects/tgo-canopy-ui/components/field/field.component.html +0 -137
- package/projects/tgo-canopy-ui/components/field/field.component.module.ts +0 -33
- package/projects/tgo-canopy-ui/components/field/field.component.scss +0 -538
- package/projects/tgo-canopy-ui/components/field/field.component.spec.ts +0 -264
- package/projects/tgo-canopy-ui/components/field/field.component.stories.ts +0 -215
- package/projects/tgo-canopy-ui/components/field/field.component.ts +0 -523
- package/projects/tgo-canopy-ui/components/field/field.model.ts +0 -11
- package/projects/tgo-canopy-ui/components/file-upload/file-upload.component.html +0 -110
- package/projects/tgo-canopy-ui/components/file-upload/file-upload.component.module.ts +0 -23
- package/projects/tgo-canopy-ui/components/file-upload/file-upload.component.scss +0 -206
- package/projects/tgo-canopy-ui/components/file-upload/file-upload.component.spec.ts +0 -135
- package/projects/tgo-canopy-ui/components/file-upload/file-upload.component.stories.ts +0 -96
- package/projects/tgo-canopy-ui/components/file-upload/file-upload.component.ts +0 -299
- package/projects/tgo-canopy-ui/components/file-upload-demo/file-upload-demo.component.html +0 -32
- package/projects/tgo-canopy-ui/components/file-upload-demo/file-upload-demo.component.module.ts +0 -14
- package/projects/tgo-canopy-ui/components/file-upload-demo/file-upload-demo.component.scss +0 -34
- package/projects/tgo-canopy-ui/components/file-upload-demo/file-upload-demo.component.spec.ts +0 -111
- package/projects/tgo-canopy-ui/components/file-upload-demo/file-upload-demo.component.stories.ts +0 -28
- package/projects/tgo-canopy-ui/components/file-upload-demo/file-upload-demo.component.ts +0 -74
- package/projects/tgo-canopy-ui/components/filter-button/filter-button.component.html +0 -122
- package/projects/tgo-canopy-ui/components/filter-button/filter-button.component.module.ts +0 -32
- package/projects/tgo-canopy-ui/components/filter-button/filter-button.component.scss +0 -113
- package/projects/tgo-canopy-ui/components/filter-button/filter-button.component.spec.ts +0 -189
- package/projects/tgo-canopy-ui/components/filter-button/filter-button.component.stories.ts +0 -172
- package/projects/tgo-canopy-ui/components/filter-button/filter-button.component.ts +0 -243
- package/projects/tgo-canopy-ui/components/filter-button/filter-button.model.ts +0 -9
- package/projects/tgo-canopy-ui/components/form-demo/form-demo-component.stories.ts +0 -45
- package/projects/tgo-canopy-ui/components/form-demo/form-demo.component.html +0 -220
- package/projects/tgo-canopy-ui/components/form-demo/form-demo.component.module.ts +0 -36
- package/projects/tgo-canopy-ui/components/form-demo/form-demo.component.scss +0 -59
- package/projects/tgo-canopy-ui/components/form-demo/form-demo.component.spec.ts +0 -129
- package/projects/tgo-canopy-ui/components/form-demo/form-demo.component.ts +0 -228
- package/projects/tgo-canopy-ui/components/form-demo/form-demo.model.ts +0 -6
- package/projects/tgo-canopy-ui/components/gaussian-chart/gaussian-chart.component.html +0 -92
- package/projects/tgo-canopy-ui/components/gaussian-chart/gaussian-chart.component.scss +0 -161
- package/projects/tgo-canopy-ui/components/gaussian-chart/gaussian-chart.component.spec.ts +0 -182
- package/projects/tgo-canopy-ui/components/gaussian-chart/gaussian-chart.component.stories.ts +0 -113
- package/projects/tgo-canopy-ui/components/gaussian-chart/gaussian-chart.component.ts +0 -275
- package/projects/tgo-canopy-ui/components/gaussian-chart/gaussian-chart.module.ts +0 -26
- package/projects/tgo-canopy-ui/components/icon/icon.component.html +0 -5
- package/projects/tgo-canopy-ui/components/icon/icon.component.module.ts +0 -13
- package/projects/tgo-canopy-ui/components/icon/icon.component.scss +0 -72
- package/projects/tgo-canopy-ui/components/icon/icon.component.spec.ts +0 -156
- package/projects/tgo-canopy-ui/components/icon/icon.component.stories.ts +0 -68
- package/projects/tgo-canopy-ui/components/icon/icon.component.ts +0 -171
- package/projects/tgo-canopy-ui/components/icon/icon.config.ts +0 -700
- package/projects/tgo-canopy-ui/components/icon/icon.model.ts +0 -8
- package/projects/tgo-canopy-ui/components/icon-label/icon-label.component.html +0 -2
- package/projects/tgo-canopy-ui/components/icon-label/icon-label.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/icon-label/icon-label.component.scss +0 -8
- package/projects/tgo-canopy-ui/components/icon-label/icon-label.component.spec.ts +0 -59
- package/projects/tgo-canopy-ui/components/icon-label/icon-label.component.stories.ts +0 -48
- package/projects/tgo-canopy-ui/components/icon-label/icon-label.component.ts +0 -53
- package/projects/tgo-canopy-ui/components/icons-showcase/icons-showcase.component.html +0 -17
- package/projects/tgo-canopy-ui/components/icons-showcase/icons-showcase.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/icons-showcase/icons-showcase.component.scss +0 -25
- package/projects/tgo-canopy-ui/components/icons-showcase/icons-showcase.component.spec.ts +0 -60
- package/projects/tgo-canopy-ui/components/icons-showcase/icons-showcase.component.stories.ts +0 -44
- package/projects/tgo-canopy-ui/components/icons-showcase/icons-showcase.component.ts +0 -43
- package/projects/tgo-canopy-ui/components/login/login.component.scss +0 -0
- package/projects/tgo-canopy-ui/components/logo/logo.component.html +0 -14
- package/projects/tgo-canopy-ui/components/logo/logo.component.module.ts +0 -10
- package/projects/tgo-canopy-ui/components/logo/logo.component.scss +0 -13
- package/projects/tgo-canopy-ui/components/logo/logo.component.spec.ts +0 -166
- package/projects/tgo-canopy-ui/components/logo/logo.component.stories.ts +0 -55
- package/projects/tgo-canopy-ui/components/logo/logo.component.ts +0 -172
- package/projects/tgo-canopy-ui/components/logo/logo.model.ts +0 -30
- package/projects/tgo-canopy-ui/components/media-card/media-card.component.html +0 -17
- package/projects/tgo-canopy-ui/components/media-card/media-card.component.scss +0 -46
- package/projects/tgo-canopy-ui/components/media-card/media-card.component.spec.ts +0 -23
- package/projects/tgo-canopy-ui/components/media-card/media-card.component.stories.ts +0 -38
- package/projects/tgo-canopy-ui/components/media-card/media-card.component.ts +0 -46
- package/projects/tgo-canopy-ui/components/multi-input/multi-input.component.html +0 -48
- package/projects/tgo-canopy-ui/components/multi-input/multi-input.component.module.ts +0 -34
- package/projects/tgo-canopy-ui/components/multi-input/multi-input.component.scss +0 -127
- package/projects/tgo-canopy-ui/components/multi-input/multi-input.component.spec.ts +0 -87
- package/projects/tgo-canopy-ui/components/multi-input/multi-input.component.stories.ts +0 -70
- package/projects/tgo-canopy-ui/components/multi-input/multi-input.component.ts +0 -335
- package/projects/tgo-canopy-ui/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.html +0 -84
- package/projects/tgo-canopy-ui/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.scss +0 -150
- package/projects/tgo-canopy-ui/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.spec.ts +0 -58
- package/projects/tgo-canopy-ui/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.ts +0 -79
- package/projects/tgo-canopy-ui/components/navbar/navbar.component.html +0 -142
- package/projects/tgo-canopy-ui/components/navbar/navbar.component.module.ts +0 -38
- package/projects/tgo-canopy-ui/components/navbar/navbar.component.scss +0 -341
- package/projects/tgo-canopy-ui/components/navbar/navbar.component.spec.ts +0 -164
- package/projects/tgo-canopy-ui/components/navbar/navbar.component.stories.ts +0 -166
- package/projects/tgo-canopy-ui/components/navbar/navbar.component.ts +0 -227
- package/projects/tgo-canopy-ui/components/navbar/navbar.model.ts +0 -26
- package/projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.html +0 -83
- package/projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.module.ts +0 -17
- package/projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.scss +0 -212
- package/projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.spec.ts +0 -149
- package/projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.stories.ts +0 -73
- package/projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.ts +0 -221
- package/projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.model.ts +0 -22
- package/projects/tgo-canopy-ui/components/page-header/page-header.component.html +0 -38
- package/projects/tgo-canopy-ui/components/page-header/page-header.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/page-header/page-header.component.scss +0 -83
- package/projects/tgo-canopy-ui/components/page-header/page-header.component.spec.ts +0 -36
- package/projects/tgo-canopy-ui/components/page-header/page-header.component.stories.ts +0 -56
- package/projects/tgo-canopy-ui/components/page-header/page-header.component.ts +0 -55
- package/projects/tgo-canopy-ui/components/paginator/paginator.component.html +0 -11
- package/projects/tgo-canopy-ui/components/paginator/paginator.component.module.ts +0 -11
- package/projects/tgo-canopy-ui/components/paginator/paginator.component.scss +0 -159
- package/projects/tgo-canopy-ui/components/paginator/paginator.component.spec.ts +0 -80
- package/projects/tgo-canopy-ui/components/paginator/paginator.component.stories.ts +0 -36
- package/projects/tgo-canopy-ui/components/paginator/paginator.component.ts +0 -77
- package/projects/tgo-canopy-ui/components/password-criteria/password.component.html +0 -36
- package/projects/tgo-canopy-ui/components/password-criteria/password.component.module.ts +0 -22
- package/projects/tgo-canopy-ui/components/password-criteria/password.component.scss +0 -56
- package/projects/tgo-canopy-ui/components/password-criteria/password.component.spec.ts +0 -90
- package/projects/tgo-canopy-ui/components/password-criteria/password.component.stories.ts +0 -49
- package/projects/tgo-canopy-ui/components/password-criteria/password.component.ts +0 -116
- package/projects/tgo-canopy-ui/components/password-strength/password-strength.component.html +0 -19
- package/projects/tgo-canopy-ui/components/password-strength/password-strength.component.module.ts +0 -13
- package/projects/tgo-canopy-ui/components/password-strength/password-strength.component.scss +0 -54
- package/projects/tgo-canopy-ui/components/password-strength/password-strength.component.spec.ts +0 -81
- package/projects/tgo-canopy-ui/components/password-strength/password-strength.component.stories.ts +0 -50
- package/projects/tgo-canopy-ui/components/password-strength/password-strength.component.ts +0 -89
- package/projects/tgo-canopy-ui/components/password-strength-demo/password-strength-demo.component.html +0 -2
- package/projects/tgo-canopy-ui/components/password-strength-demo/password-strength-demo.component.scss +0 -0
- package/projects/tgo-canopy-ui/components/password-strength-demo/password-strength-demo.component.spec.ts +0 -28
- package/projects/tgo-canopy-ui/components/password-strength-demo/password-strength-demo.component.stories.ts +0 -40
- package/projects/tgo-canopy-ui/components/password-strength-demo/password-strength-demo.component.ts +0 -20
- package/projects/tgo-canopy-ui/components/phone-input/join-string.pipe.spec.ts +0 -9
- package/projects/tgo-canopy-ui/components/phone-input/join-strings.pipe.ts +0 -8
- package/projects/tgo-canopy-ui/components/phone-input/phone-input.component.html +0 -64
- package/projects/tgo-canopy-ui/components/phone-input/phone-input.component.module.ts +0 -35
- package/projects/tgo-canopy-ui/components/phone-input/phone-input.component.scss +0 -133
- package/projects/tgo-canopy-ui/components/phone-input/phone-input.component.spec.ts +0 -264
- package/projects/tgo-canopy-ui/components/phone-input/phone-input.component.stories.ts +0 -89
- package/projects/tgo-canopy-ui/components/phone-input/phone-input.component.ts +0 -418
- package/projects/tgo-canopy-ui/components/phone-input/phone-input.model.ts +0 -8
- package/projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.html +0 -22
- package/projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.module.ts +0 -13
- package/projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.scss +0 -164
- package/projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.spec.ts +0 -76
- package/projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.stories.ts +0 -49
- package/projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.ts +0 -107
- package/projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.html +0 -26
- package/projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.scss +0 -41
- package/projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.spec.ts +0 -199
- package/projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.stories.ts +0 -69
- package/projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.ts +0 -114
- package/projects/tgo-canopy-ui/components/radial-progress/radial-progress.model.ts +0 -13
- package/projects/tgo-canopy-ui/components/radio-button/radio-button.component.html +0 -38
- package/projects/tgo-canopy-ui/components/radio-button/radio-button.component.module.ts +0 -17
- package/projects/tgo-canopy-ui/components/radio-button/radio-button.component.scss +0 -273
- package/projects/tgo-canopy-ui/components/radio-button/radio-button.component.spec.ts +0 -179
- package/projects/tgo-canopy-ui/components/radio-button/radio-button.component.stories.ts +0 -129
- package/projects/tgo-canopy-ui/components/radio-button/radio-button.component.ts +0 -358
- package/projects/tgo-canopy-ui/components/radio-button/radio-button.model.ts +0 -4
- package/projects/tgo-canopy-ui/components/rating/half-star.pipe.spec.ts +0 -33
- package/projects/tgo-canopy-ui/components/rating/half-star.pipe.ts +0 -17
- package/projects/tgo-canopy-ui/components/rating/rating.component.html +0 -32
- package/projects/tgo-canopy-ui/components/rating/rating.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/rating/rating.component.scss +0 -139
- package/projects/tgo-canopy-ui/components/rating/rating.component.spec.ts +0 -137
- package/projects/tgo-canopy-ui/components/rating/rating.component.stories.ts +0 -87
- package/projects/tgo-canopy-ui/components/rating/rating.component.ts +0 -97
- package/projects/tgo-canopy-ui/components/scale/scale.component.html +0 -15
- package/projects/tgo-canopy-ui/components/scale/scale.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/scale/scale.component.scss +0 -94
- package/projects/tgo-canopy-ui/components/scale/scale.component.spec.ts +0 -208
- package/projects/tgo-canopy-ui/components/scale/scale.component.stories.ts +0 -60
- package/projects/tgo-canopy-ui/components/scale/scale.component.ts +0 -140
- package/projects/tgo-canopy-ui/components/scale-table/__snapshots__/scale-table.component.spec.ts.snap +0 -37
- package/projects/tgo-canopy-ui/components/scale-table/scale-table.component.html +0 -34
- package/projects/tgo-canopy-ui/components/scale-table/scale-table.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/scale-table/scale-table.component.scss +0 -69
- package/projects/tgo-canopy-ui/components/scale-table/scale-table.component.spec.ts +0 -54
- package/projects/tgo-canopy-ui/components/scale-table/scale-table.component.stories.ts +0 -53
- package/projects/tgo-canopy-ui/components/scale-table/scale-table.component.ts +0 -67
- package/projects/tgo-canopy-ui/components/scale-table/scale-table.model.ts +0 -10
- package/projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.html +0 -84
- package/projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.module.ts +0 -15
- package/projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.scss +0 -247
- package/projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.spec.ts +0 -81
- package/projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.stories.ts +0 -115
- package/projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.ts +0 -99
- package/projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.model.ts +0 -13
- package/projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.html +0 -18
- package/projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.module.ts +0 -13
- package/projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.scss +0 -97
- package/projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.spec.ts +0 -104
- package/projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.stories.ts +0 -87
- package/projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.ts +0 -110
- package/projects/tgo-canopy-ui/components/segmented-button/segmented-button.model.ts +0 -9
- package/projects/tgo-canopy-ui/components/side-panel/side-panel.animations.ts +0 -28
- package/projects/tgo-canopy-ui/components/side-panel/side-panel.component.html +0 -31
- package/projects/tgo-canopy-ui/components/side-panel/side-panel.component.scss +0 -76
- package/projects/tgo-canopy-ui/components/side-panel/side-panel.component.spec.ts +0 -100
- package/projects/tgo-canopy-ui/components/side-panel/side-panel.component.ts +0 -72
- package/projects/tgo-canopy-ui/components/side-panel/side-panel.model.ts +0 -27
- package/projects/tgo-canopy-ui/components/side-panel/side-panel.service.spec.ts +0 -115
- package/projects/tgo-canopy-ui/components/side-panel/side-panel.service.ts +0 -97
- package/projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.html +0 -37
- package/projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.module.ts +0 -24
- package/projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.scss +0 -96
- package/projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.spec.ts +0 -177
- package/projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.ts +0 -106
- package/projects/tgo-canopy-ui/components/side-sheet/side-sheet.model.ts +0 -12
- package/projects/tgo-canopy-ui/components/side-sheet/side-sheet.service.spec.ts +0 -117
- package/projects/tgo-canopy-ui/components/side-sheet/side-sheet.service.ts +0 -28
- package/projects/tgo-canopy-ui/components/side-sheet-demo/side-sheet-demo.component.html +0 -5
- package/projects/tgo-canopy-ui/components/side-sheet-demo/side-sheet-demo.component.scss +0 -14
- package/projects/tgo-canopy-ui/components/side-sheet-demo/side-sheet-demo.component.spec.ts +0 -26
- package/projects/tgo-canopy-ui/components/side-sheet-demo/side-sheet-demo.component.stories.ts +0 -54
- package/projects/tgo-canopy-ui/components/side-sheet-demo/side-sheet-demo.component.ts +0 -98
- package/projects/tgo-canopy-ui/components/side-sheet-demo/side-sheet-demo.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/skeleton/skeleton.component.html +0 -5
- package/projects/tgo-canopy-ui/components/skeleton/skeleton.component.scss +0 -0
- package/projects/tgo-canopy-ui/components/skeleton/skeleton.component.spec.ts +0 -75
- package/projects/tgo-canopy-ui/components/skeleton/skeleton.component.stories.ts +0 -47
- package/projects/tgo-canopy-ui/components/skeleton/skeleton.component.ts +0 -66
- package/projects/tgo-canopy-ui/components/skeleton/skeleton.model.ts +0 -3
- package/projects/tgo-canopy-ui/components/slider/slider.component.html +0 -185
- package/projects/tgo-canopy-ui/components/slider/slider.component.module.ts +0 -8
- package/projects/tgo-canopy-ui/components/slider/slider.component.scss +0 -230
- package/projects/tgo-canopy-ui/components/slider/slider.component.spec.ts +0 -210
- package/projects/tgo-canopy-ui/components/slider/slider.component.stories.ts +0 -117
- package/projects/tgo-canopy-ui/components/slider/slider.component.ts +0 -264
- package/projects/tgo-canopy-ui/components/slider/slider.model.ts +0 -6
- package/projects/tgo-canopy-ui/components/snackbar/snackbar.component.html +0 -53
- package/projects/tgo-canopy-ui/components/snackbar/snackbar.component.module.ts +0 -17
- package/projects/tgo-canopy-ui/components/snackbar/snackbar.component.scss +0 -44
- package/projects/tgo-canopy-ui/components/snackbar/snackbar.component.spec.ts +0 -211
- package/projects/tgo-canopy-ui/components/snackbar/snackbar.component.stories.ts +0 -160
- package/projects/tgo-canopy-ui/components/snackbar/snackbar.component.ts +0 -204
- package/projects/tgo-canopy-ui/components/snackbar/snackbar.service.spec.ts +0 -138
- package/projects/tgo-canopy-ui/components/snackbar/snackbar.service.ts +0 -40
- package/projects/tgo-canopy-ui/components/spider-chart/spider-chart.component.html +0 -91
- package/projects/tgo-canopy-ui/components/spider-chart/spider-chart.component.scss +0 -74
- package/projects/tgo-canopy-ui/components/spider-chart/spider-chart.component.spec.ts +0 -261
- package/projects/tgo-canopy-ui/components/spider-chart/spider-chart.component.stories.ts +0 -273
- package/projects/tgo-canopy-ui/components/spider-chart/spider-chart.component.ts +0 -442
- package/projects/tgo-canopy-ui/components/spider-chart/spider-chart.model.ts +0 -13
- package/projects/tgo-canopy-ui/components/spider-chart/spider-chart.module.ts +0 -27
- package/projects/tgo-canopy-ui/components/spinner/spinner.component.html +0 -14
- package/projects/tgo-canopy-ui/components/spinner/spinner.component.scss +0 -98
- package/projects/tgo-canopy-ui/components/spinner/spinner.component.spec.ts +0 -122
- package/projects/tgo-canopy-ui/components/spinner/spinner.component.stories.ts +0 -52
- package/projects/tgo-canopy-ui/components/spinner/spinner.component.ts +0 -70
- package/projects/tgo-canopy-ui/components/spinner/spinner.module.ts +0 -11
- package/projects/tgo-canopy-ui/components/step/step.component.html +0 -131
- package/projects/tgo-canopy-ui/components/step/step.component.module.ts +0 -12
- package/projects/tgo-canopy-ui/components/step/step.component.scss +0 -431
- package/projects/tgo-canopy-ui/components/step/step.component.spec.ts +0 -61
- package/projects/tgo-canopy-ui/components/step/step.component.ts +0 -253
- package/projects/tgo-canopy-ui/components/stepper/stepper.component.html +0 -111
- package/projects/tgo-canopy-ui/components/stepper/stepper.component.module.ts +0 -25
- package/projects/tgo-canopy-ui/components/stepper/stepper.component.scss +0 -200
- package/projects/tgo-canopy-ui/components/stepper/stepper.component.spec.ts +0 -153
- package/projects/tgo-canopy-ui/components/stepper/stepper.component.stories.ts +0 -97
- package/projects/tgo-canopy-ui/components/stepper/stepper.component.ts +0 -189
- package/projects/tgo-canopy-ui/components/stepper/stepper.model.ts +0 -25
- package/projects/tgo-canopy-ui/components/table/sentence-case.pipe.ts +0 -13
- package/projects/tgo-canopy-ui/components/table/sentence-case.spec.ts +0 -53
- package/projects/tgo-canopy-ui/components/table/table.component.html +0 -345
- package/projects/tgo-canopy-ui/components/table/table.component.module.ts +0 -35
- package/projects/tgo-canopy-ui/components/table/table.component.scss +0 -344
- package/projects/tgo-canopy-ui/components/table/table.component.spec.ts +0 -187
- package/projects/tgo-canopy-ui/components/table/table.component.stories.ts +0 -780
- package/projects/tgo-canopy-ui/components/table/table.component.ts +0 -305
- package/projects/tgo-canopy-ui/components/table/table.model.ts +0 -117
- package/projects/tgo-canopy-ui/components/tabs/tab.directive.spec.ts +0 -77
- package/projects/tgo-canopy-ui/components/tabs/tab.directive.ts +0 -53
- package/projects/tgo-canopy-ui/components/tabs/tabs.component.html +0 -47
- package/projects/tgo-canopy-ui/components/tabs/tabs.component.module.ts +0 -14
- package/projects/tgo-canopy-ui/components/tabs/tabs.component.scss +0 -264
- package/projects/tgo-canopy-ui/components/tabs/tabs.component.spec.ts +0 -308
- package/projects/tgo-canopy-ui/components/tabs/tabs.component.stories.ts +0 -73
- package/projects/tgo-canopy-ui/components/tabs/tabs.component.ts +0 -186
- package/projects/tgo-canopy-ui/components/tabs/tabs.model.ts +0 -15
- package/projects/tgo-canopy-ui/components/tag/tag.component.html +0 -30
- package/projects/tgo-canopy-ui/components/tag/tag.component.module.ts +0 -16
- package/projects/tgo-canopy-ui/components/tag/tag.component.scss +0 -148
- package/projects/tgo-canopy-ui/components/tag/tag.component.spec.ts +0 -288
- package/projects/tgo-canopy-ui/components/tag/tag.component.stories.ts +0 -128
- package/projects/tgo-canopy-ui/components/tag/tag.component.ts +0 -225
- package/projects/tgo-canopy-ui/components/toggle/toggle.component.html +0 -37
- package/projects/tgo-canopy-ui/components/toggle/toggle.component.module.ts +0 -16
- package/projects/tgo-canopy-ui/components/toggle/toggle.component.scss +0 -273
- package/projects/tgo-canopy-ui/components/toggle/toggle.component.spec.ts +0 -240
- package/projects/tgo-canopy-ui/components/toggle/toggle.component.stories.ts +0 -105
- package/projects/tgo-canopy-ui/components/toggle/toggle.component.ts +0 -201
- package/projects/tgo-canopy-ui/components/tooltip/tooltip-template.directive.spec.ts +0 -84
- package/projects/tgo-canopy-ui/components/tooltip/tooltip-template.directive.ts +0 -148
- package/projects/tgo-canopy-ui/components/tooltip/tooltip.component.html +0 -52
- package/projects/tgo-canopy-ui/components/tooltip/tooltip.component.module.ts +0 -17
- package/projects/tgo-canopy-ui/components/tooltip/tooltip.component.spec.ts +0 -53
- package/projects/tgo-canopy-ui/components/tooltip/tooltip.component.stories.ts +0 -296
- package/projects/tgo-canopy-ui/components/tooltip/tooltip.component.ts +0 -105
- package/projects/tgo-canopy-ui/components/tooltip/tooltip.model.ts +0 -9
- package/projects/tgo-canopy-ui/components/universal-skills-report/universal-skills-report.component.html +0 -80
- package/projects/tgo-canopy-ui/components/universal-skills-report/universal-skills-report.component.module.ts +0 -26
- package/projects/tgo-canopy-ui/components/universal-skills-report/universal-skills-report.component.scss +0 -135
- package/projects/tgo-canopy-ui/components/universal-skills-report/universal-skills-report.component.spec.ts +0 -61
- package/projects/tgo-canopy-ui/components/universal-skills-report/universal-skills-report.component.stories.ts +0 -109
- package/projects/tgo-canopy-ui/components/universal-skills-report/universal-skills-report.component.ts +0 -88
- package/projects/tgo-canopy-ui/components/universal-skills-spider-charts/universal-skills-spider-charts.component.html +0 -8
- package/projects/tgo-canopy-ui/components/universal-skills-spider-charts/universal-skills-spider-charts.component.module.ts +0 -30
- package/projects/tgo-canopy-ui/components/universal-skills-spider-charts/universal-skills-spider-charts.component.scss +0 -12
- package/projects/tgo-canopy-ui/components/universal-skills-spider-charts/universal-skills-spider-charts.component.spec.ts +0 -130
- package/projects/tgo-canopy-ui/components/universal-skills-spider-charts/universal-skills-spider-charts.component.stories.ts +0 -168
- package/projects/tgo-canopy-ui/components/universal-skills-spider-charts/universal-skills-spider-charts.component.ts +0 -125
- package/projects/tgo-canopy-ui/components/validation-error/validation-error.component.html +0 -34
- package/projects/tgo-canopy-ui/components/validation-error/validation-error.component.scss +0 -0
- package/projects/tgo-canopy-ui/components/validation-error/validation-error.component.spec.ts +0 -75
- package/projects/tgo-canopy-ui/components/validation-error/validation-error.component.ts +0 -46
- package/projects/tgo-canopy-ui/components/validation-error/validation-error.module.ts +0 -12
- package/projects/tgo-canopy-ui/directives/digits-only.directive.spec.ts +0 -156
- package/projects/tgo-canopy-ui/directives/digits-only.directive.ts +0 -65
- package/projects/tgo-canopy-ui/directives/drag-drop.directive.spec.ts +0 -84
- package/projects/tgo-canopy-ui/directives/drag-drop.directive.ts +0 -39
- package/projects/tgo-canopy-ui/directives/dynamic-component.directive.ts +0 -46
- package/projects/tgo-canopy-ui/directives/ellipse-text.directive.spec.ts +0 -57
- package/projects/tgo-canopy-ui/directives/ellipse-text.directive.ts +0 -40
- package/projects/tgo-canopy-ui/directives/select-text.directive.spec.ts +0 -54
- package/projects/tgo-canopy-ui/directives/select-text.directive.ts +0 -37
- package/projects/tgo-canopy-ui/directives/step-line-element.directive.spec.ts +0 -97
- package/projects/tgo-canopy-ui/directives/step-line-element.directive.ts +0 -43
- package/projects/tgo-canopy-ui/foundations/colors/colors.component.html +0 -4
- package/projects/tgo-canopy-ui/foundations/colors/colors.component.module.ts +0 -10
- package/projects/tgo-canopy-ui/foundations/colors/colors.component.scss +0 -322
- package/projects/tgo-canopy-ui/foundations/colors/colors.component.spec.ts +0 -47
- package/projects/tgo-canopy-ui/foundations/colors/colors.component.ts +0 -22
- package/projects/tgo-canopy-ui/foundations/colors/colors.stories.ts +0 -437
- package/projects/tgo-canopy-ui/foundations/typography/typography.stories.ts +0 -195
- package/projects/tgo-canopy-ui/mocked-assets/images/some_progress.svg +0 -4
- package/projects/tgo-canopy-ui/models/colors.model.ts +0 -88
- package/projects/tgo-canopy-ui/models/keyboard-events.model.ts +0 -11
- package/projects/tgo-canopy-ui/models/screen-breakpoints.model.ts +0 -4
- package/projects/tgo-canopy-ui/models/universal-skills-report.model.ts +0 -53
- package/projects/tgo-canopy-ui/pipes/data-property-getter.spec.ts +0 -63
- package/projects/tgo-canopy-ui/pipes/data-property-getter.ts +0 -31
- package/projects/tgo-canopy-ui/pipes/has-validation-error.pipe.spec.ts +0 -32
- package/projects/tgo-canopy-ui/pipes/has-validation-error.pipe.ts +0 -20
- package/projects/tgo-canopy-ui/pipes/memoize-func.pipe.spec.ts +0 -28
- package/projects/tgo-canopy-ui/pipes/memoize-func.pipe.ts +0 -34
- package/projects/tgo-canopy-ui/pipes/name-initials.pipe.spec.ts +0 -44
- package/projects/tgo-canopy-ui/pipes/name-initials.pipe.ts +0 -18
- package/projects/tgo-canopy-ui/pipes/ui-ordinal-suffix.pipe.spec.ts +0 -43
- package/projects/tgo-canopy-ui/pipes/ui-ordinal-suffix.pipe.ts +0 -28
- package/projects/tgo-canopy-ui/pipes/ui-translate.pipe.spec.ts +0 -66
- package/projects/tgo-canopy-ui/pipes/ui-translate.pipe.ts +0 -79
- package/projects/tgo-canopy-ui/polyfills.ts +0 -51
- package/projects/tgo-canopy-ui/providers/is-mobile.ts +0 -11
- package/projects/tgo-canopy-ui/public-api.ts +0 -227
- package/projects/tgo-canopy-ui/services/custom-event-manager.service.spec.ts +0 -57
- package/projects/tgo-canopy-ui/services/custom-event-manager.service.ts +0 -28
- package/projects/tgo-canopy-ui/services/icons.service.spec.ts +0 -35
- package/projects/tgo-canopy-ui/services/icons.service.ts +0 -16
- package/projects/tgo-canopy-ui/services/universal-skills.service.spec.ts +0 -50
- package/projects/tgo-canopy-ui/services/universal-skills.service.ts +0 -91
- package/projects/tgo-canopy-ui/test-utils/mock-file.spec.ts +0 -44
- package/projects/tgo-canopy-ui/test-utils/mock-file.ts +0 -24
- package/projects/tgo-canopy-ui/test.ts +0 -20
- package/projects/tgo-canopy-ui/utils/alert-bars.utils.spec.ts +0 -47
- package/projects/tgo-canopy-ui/utils/alert-bars.utils.ts +0 -37
- package/projects/tgo-canopy-ui/utils/autocomplete-utils.spec.ts +0 -68
- package/projects/tgo-canopy-ui/utils/autocomplete-utils.ts +0 -84
- package/projects/tgo-canopy-ui/utils/color-contrast.spec.ts +0 -46
- package/projects/tgo-canopy-ui/utils/color-contrast.ts +0 -135
- package/projects/tgo-canopy-ui/utils/hex-to-rgb.spec.ts +0 -23
- package/projects/tgo-canopy-ui/utils/hex-to-rgb.ts +0 -10
- package/projects/tgo-canopy-ui/utils/localization/language.model.ts +0 -14
- package/projects/tgo-canopy-ui/utils/localization/language.service.mocks.ts +0 -6
- package/projects/tgo-canopy-ui/utils/localization/language.service.spec.ts +0 -25
- package/projects/tgo-canopy-ui/utils/localization/language.service.ts +0 -43
- package/projects/tgo-canopy-ui/utils/table.utils.spec.ts +0 -47
- package/projects/tgo-canopy-ui/utils/table.utils.ts +0 -22
- package/projects/tgo-canopy-ui/utils/transform-theme.ts +0 -9
- package/projects/tgo-canopy-ui/utils/transform.theme.spec.ts +0 -16
- package/projects/tgo-canopy-ui/utils/validators.utils.spec.ts +0 -16
- package/projects/tgo-canopy-ui/utils/validators.utils.ts +0 -9
- package/setupJest.ts +0 -1
- package/transloco.config.js +0 -5
- package/tsconfig.json +0 -46
- package/tsconfig.spec.json +0 -17
- package/tsconfig.ui.json +0 -24
- package/tsconfig.ui.prod.json +0 -10
- package/visual-tests/component-page-objects/alert-banner-component.ts +0 -44
- package/visual-tests/component-page-objects/avatar-component.ts +0 -30
- package/visual-tests/component-page-objects/badge-component.ts +0 -33
- package/visual-tests/component-page-objects/base-component.ts +0 -44
- package/visual-tests/component-page-objects/button-component.ts +0 -58
- package/visual-tests/component-page-objects/card-component.ts +0 -28
- package/visual-tests/component-page-objects/checkbox-component.ts +0 -38
- package/visual-tests/component-page-objects/field-component.ts +0 -68
- package/visual-tests/component-page-objects/icon-component.ts +0 -32
- package/visual-tests/component-page-objects/logo-component.ts +0 -28
- package/visual-tests/component-page-objects/radio-button-component.ts +0 -44
- package/visual-tests/component-page-objects/snackbar-component.ts +0 -43
- package/visual-tests/component-page-objects/spinner-component.ts +0 -26
- package/visual-tests/component-page-objects/tooltip-component.ts +0 -26
- package/visual-tests/component-tests/alert-banner.spec.ts +0 -64
- package/visual-tests/component-tests/alert-banner.spec.ts-snapshots/Alert-Banner-Component-Visual-Tests-should-display-the-Alert-Banner-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/alert-banner.spec.ts-snapshots/Alert-Banner-Component-Visual-Tests-should-display-the-Alert-Banner-with-dismiss-button-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/alert-banner.spec.ts-snapshots/Alert-Banner-Component-Visual-Tests-should-display-the-Alert-Banner-with-link-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/alert-banner.spec.ts-snapshots/Alert-Banner-Component-Visual-Tests-should-display-the-Alert-Callout-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/avatar.spec.ts +0 -91
- package/visual-tests/component-tests/avatar.spec.ts-snapshots/Avatar-Component-Visual-Tests-should-allow-edit-for-the-avatar-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/avatar.spec.ts-snapshots/Avatar-Component-Visual-Tests-should-display-large-avatar-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/avatar.spec.ts-snapshots/Avatar-Component-Visual-Tests-should-display-medium-avatar-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/avatar.spec.ts-snapshots/Avatar-Component-Visual-Tests-should-display-small-avatar-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/avatar.spec.ts-snapshots/Avatar-Component-Visual-Tests-should-display-the-avatar-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/avatar.spec.ts-snapshots/Avatar-Component-Visual-Tests-should-display-the-avatar-image-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/avatar.spec.ts-snapshots/Avatar-Component-Visual-Tests-should-emit-edit-click-event-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/badge.spec.ts +0 -56
- package/visual-tests/component-tests/badge.spec.ts-snapshots/Badge-Component-Visual-Tests-should-display-notification-badge-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/badge.spec.ts-snapshots/Badge-Component-Visual-Tests-should-display-secondary-badge-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/badge.spec.ts-snapshots/Badge-Component-Visual-Tests-should-display-the-badge-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/badge.spec.ts-snapshots/Badge-Component-Visual-Tests-should-display-the-badge-with-icon-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts +0 -371
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-Button-full-width-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-Button-icon-left-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-Button-icon-right-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-Button-menu-cell-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-Button-menu-trigger-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-destructive-button-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-disabled-Button-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-disabled-scale-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-ghost-button-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-only-Button-icon-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-premium-Button-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-secondary-button-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-tertiary-button-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-text-button-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-the-Button-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-display-the-Button-link-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/button.spec.ts-snapshots/Button-Component-Visual-Tests-should-emit-edit-click-event-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/card.spec.ts +0 -64
- package/visual-tests/component-tests/card.spec.ts-snapshots/Card-Component-Visual-Tests-should-display-the-card-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/card.spec.ts-snapshots/Card-Component-Visual-Tests-should-display-the-card-with-errors-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/card.spec.ts-snapshots/Card-Component-Visual-Tests-should-display-the-large-card-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/card.spec.ts-snapshots/Card-Component-Visual-Tests-should-display-the-small-card-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/card.spec.ts-snapshots/Card-Component-Visual-Tests-should-display-the-state-card-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/checkbox.spec.ts +0 -151
- package/visual-tests/component-tests/checkbox.spec.ts-snapshots/Checkbox-Component-Visual-Tests-should-display-the-checkbox-checked-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/checkbox.spec.ts-snapshots/Checkbox-Component-Visual-Tests-should-display-the-checkbox-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/checkbox.spec.ts-snapshots/Checkbox-Component-Visual-Tests-should-display-the-checkbox-disabled-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/checkbox.spec.ts-snapshots/Checkbox-Component-Visual-Tests-should-display-the-checkbox-error-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/checkbox.spec.ts-snapshots/Checkbox-Component-Visual-Tests-should-display-the-checkbox-indeterminate-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/checkbox.spec.ts-snapshots/Checkbox-Component-Visual-Tests-should-display-the-checkbox-multiple-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/checkbox.spec.ts-snapshots/Checkbox-Component-Visual-Tests-should-display-the-checkbox-multiple-error-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/checkbox.spec.ts-snapshots/Checkbox-Component-Visual-Tests-should-display-the-checkbox-set-company-color-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/checkbox.spec.ts-snapshots/Checkbox-Component-Visual-Tests-should-display-the-checkbox-without-lable-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts +0 -514
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-Collapsed-search-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-disable-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-email-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-loading-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-multi-line-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-number-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-password-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-required-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-search-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-tel-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-textarea-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-validation-text-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-with-errors-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/field.spec.ts-snapshots/Field-Component-Visual-Tests-should-display-the-field-without-label-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/icon.spec.ts +0 -41
- package/visual-tests/component-tests/icon.spec.ts-snapshots/Icon-Component-Visual-Tests-should-display-red-the-icon-color-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/icon.spec.ts-snapshots/Icon-Component-Visual-Tests-should-display-the-icon-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/icon.spec.ts-snapshots/Icon-Component-Visual-Tests-should-display-the-icon-small-size-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/logo.spec.ts +0 -54
- package/visual-tests/component-tests/logo.spec.ts-snapshots/Logo-Component-Visual-Tests-should-display-the-logo-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/logo.spec.ts-snapshots/Logo-Component-Visual-Tests-should-display-the-logo-custom-width-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/logo.spec.ts-snapshots/Logo-Component-Visual-Tests-should-display-the-logo-powered-by-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/logo.spec.ts-snapshots/Logo-Component-Visual-Tests-should-display-the-logo-reverse-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/radio-button.spec.ts +0 -115
- package/visual-tests/component-tests/radio-button.spec.ts-snapshots/Radio-Component-Visual-Tests-should-display-the-Radio-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/radio-button.spec.ts-snapshots/Radio-Component-Visual-Tests-should-display-the-Radio-disable-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/radio-button.spec.ts-snapshots/Radio-Component-Visual-Tests-should-display-the-Radio-multiple-error-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/radio-button.spec.ts-snapshots/Radio-Component-Visual-Tests-should-display-the-Radio-selected-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/radio-button.spec.ts-snapshots/Radio-Component-Visual-Tests-should-display-the-Radio-single-error-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/radio-button.spec.ts-snapshots/Radio-Component-Visual-Tests-should-display-the-Radio-with-label-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/radio-button.spec.ts-snapshots/Radio-Component-Visual-Tests-should-display-the-Radio-with-label-multiple-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/snackbar.spec.ts +0 -107
- package/visual-tests/component-tests/snackbar.spec.ts-snapshots/Snackbar-Component-Visual-Tests-should-display-the-snackbar-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/snackbar.spec.ts-snapshots/Snackbar-Component-Visual-Tests-should-display-the-snackbar-error-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/snackbar.spec.ts-snapshots/Snackbar-Component-Visual-Tests-should-display-the-snackbar-hyperlink-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/snackbar.spec.ts-snapshots/Snackbar-Component-Visual-Tests-should-display-the-snackbar-info-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/snackbar.spec.ts-snapshots/Snackbar-Component-Visual-Tests-should-display-the-snackbar-mobile-variant-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/snackbar.spec.ts-snapshots/Snackbar-Component-Visual-Tests-should-display-the-snackbar-without-dismiss-button-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/spinner.spec.ts +0 -25
- package/visual-tests/component-tests/spinner.spec.ts-snapshots/Spinner-Component-Visual-Tests-should-display-the-spinner-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/spinner.spec.ts-snapshots/Spinner-Component-Visual-Tests-should-display-the-spinner-small-1-chromium-linux.png +0 -0
- package/visual-tests/component-tests/tooltip.spec.ts +0 -17
- package/visual-tests/component-tests/tooltip.spec.ts-snapshots/Tooltip-Component-Visual-Tests-should-display-the-tooltip-correctly-1-chromium-linux.png +0 -0
- package/visual-tests/playwright.config.ts +0 -45
- package/visual-tests/runConfig.ts +0 -1
- /package/{projects/tgo-canopy-ui/components/accordion/accordion.model.ts → components/accordion/accordion.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/components/alert-banner/alert-banner.model.ts → components/alert-banner/alert-banner.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/components/card/card.model.ts → components/card/card.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/components/divider/divider.model.ts → components/divider/divider.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/components/empty-state/empty-state.model.ts → components/empty-state/empty-state.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/components/multi-input/multi-input.model.ts → components/multi-input/multi-input.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/components/snackbar/snackbar.model.ts → components/snackbar/snackbar.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/components/spinner/spinner.model.ts → components/spinner/spinner.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/components/tag/tag.model.ts → components/tag/tag.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/components/toggle/toggle.model.ts → components/toggle/toggle.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/components/validation-error/validation-error.model.ts → components/validation-error/validation-error.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/models/application-theme.model.ts → models/application-theme.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/models/checkbox.model.ts → models/checkbox.model.d.ts} +0 -0
- /package/{projects/tgo-canopy-ui/utils/alert-bar.model.ts → utils/alert-bar.model.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui.mjs","sources":["../../../projects/tgo-canopy-ui/components/badge/badge.model.ts","../../../projects/tgo-canopy-ui/models/universal-skills-report.model.ts","../../../projects/tgo-canopy-ui/services/universal-skills.service.ts","../../../projects/tgo-canopy-ui/components/icon/icon.config.ts","../../../projects/tgo-canopy-ui/services/icons.service.ts","../../../projects/tgo-canopy-ui/components/icon/icon.component.ts","../../../projects/tgo-canopy-ui/components/icon/icon.component.html","../../../projects/tgo-canopy-ui/components/accordion/accordion.component.ts","../../../projects/tgo-canopy-ui/components/accordion/accordion.component.html","../../../projects/tgo-canopy-ui/components/badge/badge.component.ts","../../../projects/tgo-canopy-ui/components/badge/badge.component.html","../../../projects/tgo-canopy-ui/utils/localization/language.model.ts","../../../projects/tgo-canopy-ui/utils/localization/language.service.ts","../../../projects/tgo-canopy-ui/pipes/ui-translate.pipe.ts","../../../projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.ts","../../../projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.html","../../../projects/tgo-canopy-ui/pipes/memoize-func.pipe.ts","../../../projects/tgo-canopy-ui/pipes/ui-ordinal-suffix.pipe.ts","../../../projects/tgo-canopy-ui/components/universal-skills-report/universal-skills-report.component.ts","../../../projects/tgo-canopy-ui/components/universal-skills-report/universal-skills-report.component.html","../../../projects/tgo-canopy-ui/components/icon/icon.component.module.ts","../../../projects/tgo-canopy-ui/utils/color-contrast.ts","../../../projects/tgo-canopy-ui/directives/ellipse-text.directive.ts","../../../projects/tgo-canopy-ui/components/button/button.component.ts","../../../projects/tgo-canopy-ui/components/button/button.component.html","../../../projects/tgo-canopy-ui/components/badge/badge.component.module.ts","../../../projects/tgo-canopy-ui/components/button/button.component.module.ts","../../../projects/tgo-canopy-ui/components/accordion/accordion.component.module.ts","../../../projects/tgo-canopy-ui/components/progress-bar/progress-bar.component.module.ts","../../../projects/tgo-canopy-ui/components/universal-skills-report/universal-skills-report.component.module.ts","../../../projects/tgo-canopy-ui/utils/alert-bars.utils.ts","../../../projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.ts","../../../projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.html","../../../projects/tgo-canopy-ui/components/alert-banner/alert-banner.component.module.ts","../../../projects/tgo-canopy-ui/components/card/card.component.ts","../../../projects/tgo-canopy-ui/components/card/card.component.html","../../../projects/tgo-canopy-ui/components/card/card.component.module.ts","../../../projects/tgo-canopy-ui/components/validation-error/validation-error.component.ts","../../../projects/tgo-canopy-ui/components/validation-error/validation-error.component.html","../../../projects/tgo-canopy-ui/pipes/has-validation-error.pipe.ts","../../../projects/tgo-canopy-ui/components/checkbox/checkbox.component.ts","../../../projects/tgo-canopy-ui/components/checkbox/checkbox.component.html","../../../projects/tgo-canopy-ui/components/validation-error/validation-error.module.ts","../../../projects/tgo-canopy-ui/components/checkbox/focus-visible.directive.ts","../../../projects/tgo-canopy-ui/components/checkbox/checkbox.component.module.ts","../../../projects/tgo-canopy-ui/components/dialog/dialog.component.ts","../../../projects/tgo-canopy-ui/components/dialog/dialog.component.html","../../../projects/tgo-canopy-ui/components/dialog/dialog.service.ts","../../../projects/tgo-canopy-ui/components/dialog/dialog.component.module.ts","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.constant.ts","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.ts","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.html","../../../projects/tgo-canopy-ui/components/elevation-shadow/elevation-shadow.component.module.ts","../../../projects/tgo-canopy-ui/directives/digits-only.directive.ts","../../../projects/tgo-canopy-ui/components/field/field.component.ts","../../../projects/tgo-canopy-ui/components/field/field.component.html","../../../projects/tgo-canopy-ui/components/field/field.component.module.ts","../../../projects/tgo-canopy-ui/directives/drag-drop.directive.ts","../../../projects/tgo-canopy-ui/components/file-upload/file-upload.component.ts","../../../projects/tgo-canopy-ui/components/file-upload/file-upload.component.html","../../../projects/tgo-canopy-ui/components/file-upload/file-upload.component.module.ts","../../../projects/tgo-canopy-ui/components/icon-label/icon-label.component.ts","../../../projects/tgo-canopy-ui/components/icon-label/icon-label.component.html","../../../projects/tgo-canopy-ui/components/icon-label/icon-label.component.module.ts","../../../projects/tgo-canopy-ui/components/logo/logo.model.ts","../../../projects/tgo-canopy-ui/components/logo/logo.component.ts","../../../projects/tgo-canopy-ui/components/logo/logo.component.html","../../../projects/tgo-canopy-ui/components/logo/logo.component.module.ts","../../../projects/tgo-canopy-ui/components/avatar/avatar.model.ts","../../../projects/tgo-canopy-ui/pipes/name-initials.pipe.ts","../../../projects/tgo-canopy-ui/components/avatar/avatar.component.ts","../../../projects/tgo-canopy-ui/components/avatar/avatar.component.html","../../../projects/tgo-canopy-ui/components/avatar/avatar.component.module.ts","../../../projects/tgo-canopy-ui/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.ts","../../../projects/tgo-canopy-ui/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.html","../../../projects/tgo-canopy-ui/models/screen-breakpoints.model.ts","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.service.ts","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.ts","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.html","../../../projects/tgo-canopy-ui/components/navbar/navbar.component.ts","../../../projects/tgo-canopy-ui/components/navbar/navbar.component.html","../../../projects/tgo-canopy-ui/components/side-sheet/side-sheet.component.module.ts","../../../projects/tgo-canopy-ui/components/navbar/navbar.component.module.ts","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.ts","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.html","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.module.ts","../../../projects/tgo-canopy-ui/components/radio-button/radio-button.component.ts","../../../projects/tgo-canopy-ui/components/radio-button/radio-button.component.html","../../../projects/tgo-canopy-ui/components/radio-button/radio-button.component.module.ts","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.component.ts","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.component.html","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.service.ts","../../../projects/tgo-canopy-ui/components/snackbar/snackbar.component.module.ts","../../../projects/tgo-canopy-ui/pipes/data-property-getter.ts","../../../projects/tgo-canopy-ui/models/keyboard-events.model.ts","../../../projects/tgo-canopy-ui/components/tag/tag.component.ts","../../../projects/tgo-canopy-ui/components/tag/tag.component.html","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.model.ts","../../../projects/tgo-canopy-ui/components/tooltip/tooltip-template.directive.ts","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.component.ts","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.component.html","../../../projects/tgo-canopy-ui/components/tooltip/tooltip.component.module.ts","../../../projects/tgo-canopy-ui/components/tag/tag.component.module.ts","../../../projects/tgo-canopy-ui/components/dropdown/dropdown.component.ts","../../../projects/tgo-canopy-ui/components/dropdown/dropdown.component.html","../../../projects/tgo-canopy-ui/components/dropdown/dropdown.component.module.ts","../../../projects/tgo-canopy-ui/components/spinner/spinner.component.ts","../../../projects/tgo-canopy-ui/components/spinner/spinner.component.html","../../../projects/tgo-canopy-ui/components/spinner/spinner.module.ts","../../../projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.html","../../../projects/tgo-canopy-ui/components/confirm-dialog/confirm-dialog.component.module.ts","../../../projects/tgo-canopy-ui/components/datepicker/datepicker.service.ts","../../../projects/tgo-canopy-ui/components/datepicker/date-adapter.ts","../../../projects/tgo-canopy-ui/components/datepicker/no-date-format.directive.ts","../../../projects/tgo-canopy-ui/components/datepicker/datepicker.component.ts","../../../projects/tgo-canopy-ui/components/datepicker/datepicker.component.html","../../../projects/tgo-canopy-ui/components/datepicker/datepicker.component.module.ts","../../../projects/tgo-canopy-ui/components/rating/half-star.pipe.ts","../../../projects/tgo-canopy-ui/components/rating/rating.component.ts","../../../projects/tgo-canopy-ui/components/rating/rating.component.html","../../../projects/tgo-canopy-ui/components/rating/rating.component.module.ts","../../../projects/tgo-canopy-ui/utils/hex-to-rgb.ts","../../../projects/tgo-canopy-ui/components/scale/scale.component.ts","../../../projects/tgo-canopy-ui/components/scale/scale.component.html","../../../projects/tgo-canopy-ui/components/scale/scale.component.module.ts","../../../projects/tgo-canopy-ui/components/toggle/toggle.component.ts","../../../projects/tgo-canopy-ui/components/toggle/toggle.component.html","../../../projects/tgo-canopy-ui/components/toggle/toggle.component.module.ts","../../../projects/tgo-canopy-ui/providers/is-mobile.ts","../../../projects/tgo-canopy-ui/components/step/step.component.ts","../../../projects/tgo-canopy-ui/components/step/step.component.html","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.model.ts","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.ts","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.html","../../../projects/tgo-canopy-ui/directives/step-line-element.directive.ts","../../../projects/tgo-canopy-ui/components/stepper/stepper.component.ts","../../../projects/tgo-canopy-ui/components/stepper/stepper.component.html","../../../projects/tgo-canopy-ui/components/step/step.component.module.ts","../../../projects/tgo-canopy-ui/components/radial-progress/radial-progress.component.module.ts","../../../projects/tgo-canopy-ui/components/stepper/stepper.component.module.ts","../../../projects/tgo-canopy-ui/utils/autocomplete-utils.ts","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.model.ts","../../../projects/tgo-canopy-ui/components/autocomplete/prevent-input.directive.ts","../../../projects/tgo-canopy-ui/directives/select-text.directive.ts","../../../projects/tgo-canopy-ui/components/autocomplete/transform-Item.pipe.ts","../../../projects/tgo-canopy-ui/components/autocomplete/includes.pipe.ts","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.ts","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.html","../../../projects/tgo-canopy-ui/components/autocomplete/autocomplete.component.module.ts","../../../projects/tgo-canopy-ui/components/empty-state/empty-state.component.ts","../../../projects/tgo-canopy-ui/components/empty-state/empty-state.component.html","../../../projects/tgo-canopy-ui/components/empty-state/empty-state.component.module.ts","../../../projects/tgo-canopy-ui/components/table/table.model.ts","../../../projects/tgo-canopy-ui/utils/table.utils.ts","../../../projects/tgo-canopy-ui/components/skeleton/skeleton.component.ts","../../../projects/tgo-canopy-ui/components/skeleton/skeleton.component.html","../../../projects/tgo-canopy-ui/components/paginator/paginator.component.ts","../../../projects/tgo-canopy-ui/components/paginator/paginator.component.html","../../../projects/tgo-canopy-ui/directives/dynamic-component.directive.ts","../../../projects/tgo-canopy-ui/components/table/sentence-case.pipe.ts","../../../projects/tgo-canopy-ui/components/table/table.component.ts","../../../projects/tgo-canopy-ui/components/table/table.component.html","../../../projects/tgo-canopy-ui/components/paginator/paginator.component.module.ts","../../../projects/tgo-canopy-ui/components/table/table.component.module.ts","../../../projects/tgo-canopy-ui/components/slider/slider.component.ts","../../../projects/tgo-canopy-ui/components/slider/slider.component.html","../../../projects/tgo-canopy-ui/components/slider/slider.component.module.ts","../../../projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.ts","../../../projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.html","../../../projects/tgo-canopy-ui/components/segmented-bar/segmented-bar.component.module.ts","../../../projects/tgo-canopy-ui/components/page-header/page-header.component.ts","../../../projects/tgo-canopy-ui/components/page-header/page-header.component.html","../../../projects/tgo-canopy-ui/components/page-header/page-header.component.module.ts","../../../projects/tgo-canopy-ui/components/divider/divider.component.ts","../../../projects/tgo-canopy-ui/components/divider/divider.component.html","../../../projects/tgo-canopy-ui/components/divider/divider.component.module.ts","../../../projects/tgo-canopy-ui/components/tabs/tabs.component.ts","../../../projects/tgo-canopy-ui/components/tabs/tabs.component.html","../../../projects/tgo-canopy-ui/components/tabs/tab.directive.ts","../../../projects/tgo-canopy-ui/components/tabs/tabs.component.module.ts","../../../projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.ts","../../../projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.html","../../../projects/tgo-canopy-ui/components/overflow-menu/overflow-menu.component.module.ts","../../../projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.ts","../../../projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.html","../../../projects/tgo-canopy-ui/components/segmented-button/segmented-button.component.module.ts","../../../projects/tgo-canopy-ui/components/password-criteria/password.component.ts","../../../projects/tgo-canopy-ui/components/password-criteria/password.component.html","../../../projects/tgo-canopy-ui/components/password-criteria/password.component.module.ts","../../../projects/tgo-canopy-ui/components/phone-input/join-strings.pipe.ts","../../../projects/tgo-canopy-ui/components/phone-input/phone-input.component.ts","../../../projects/tgo-canopy-ui/components/phone-input/phone-input.component.html","../../../projects/tgo-canopy-ui/components/phone-input/phone-input.component.module.ts","../../../projects/tgo-canopy-ui/models/colors.model.ts","../../../projects/tgo-canopy-ui/components/password-strength/password-strength.component.ts","../../../projects/tgo-canopy-ui/components/password-strength/password-strength.component.html","../../../projects/tgo-canopy-ui/components/password-strength/password-strength.component.module.ts","../../../projects/tgo-canopy-ui/components/multi-input/multi-input.component.ts","../../../projects/tgo-canopy-ui/components/multi-input/multi-input.component.html","../../../projects/tgo-canopy-ui/components/multi-input/multi-input.component.module.ts","../../../projects/tgo-canopy-ui/components/side-panel/side-panel.model.ts","../../../projects/tgo-canopy-ui/components/side-panel/side-panel.animations.ts","../../../projects/tgo-canopy-ui/components/side-panel/side-panel.service.ts","../../../projects/tgo-canopy-ui/components/side-panel/side-panel.component.ts","../../../projects/tgo-canopy-ui/components/side-panel/side-panel.component.html","../../../projects/tgo-canopy-ui/components/spider-chart/spider-chart.model.ts","../../../projects/tgo-canopy-ui/components/spider-chart/spider-chart.component.ts","../../../projects/tgo-canopy-ui/components/spider-chart/spider-chart.component.html","../../../projects/tgo-canopy-ui/components/spider-chart/spider-chart.module.ts","../../../projects/tgo-canopy-ui/components/checklist/checklist.component.ts","../../../projects/tgo-canopy-ui/components/checklist/checklist.component.html","../../../projects/tgo-canopy-ui/components/media-card/media-card.component.ts","../../../projects/tgo-canopy-ui/components/media-card/media-card.component.html","../../../projects/tgo-canopy-ui/components/gaussian-chart/gaussian-chart.component.ts","../../../projects/tgo-canopy-ui/components/gaussian-chart/gaussian-chart.component.html","../../../projects/tgo-canopy-ui/components/gaussian-chart/gaussian-chart.module.ts","../../../projects/tgo-canopy-ui/components/universal-skills-spider-charts/universal-skills-spider-charts.component.ts","../../../projects/tgo-canopy-ui/components/universal-skills-spider-charts/universal-skills-spider-charts.component.html","../../../projects/tgo-canopy-ui/components/universal-skills-spider-charts/universal-skills-spider-charts.component.module.ts","../../../projects/tgo-canopy-ui/components/filter-button/filter-button.component.ts","../../../projects/tgo-canopy-ui/components/filter-button/filter-button.component.html","../../../projects/tgo-canopy-ui/components/filter-button/filter-button.component.module.ts","../../../projects/tgo-canopy-ui/public-api.ts","../../../projects/tgo-canopy-ui/testgorilla-tgo-ui.ts"],"sourcesContent":["export type BadgeVariant = 'primary' | 'secondary' | 'notification';\r\nexport type BadgeColor =\r\n | 'red'\r\n | 'grey-medium'\r\n | 'teal'\r\n | 'yellow'\r\n | 'petrol'\r\n | 'teal-60w'\r\n | 'petrol-90w'\r\n | 'petrol-60w'\r\n | 'grey-dark'\r\n | 'blue-20'\r\n | 'blue-40'\r\n | 'pink-30'\r\n | 'blue-10';\r\n\r\nexport enum BadgeColorEnum {\r\n RED = 'red',\r\n GREY_MEDIUM = 'grey-medium',\r\n TEAL = 'teal',\r\n YELLOW = 'yellow',\r\n PETROL = 'petrol',\r\n TEAL_60W = 'teal-60w',\r\n PETROL_90W = 'petrol-90w',\r\n PETROL_60W = 'petrol-60w',\r\n GREY_DARK = 'grey-dark',\r\n BLUE_20 = 'blue-20',\r\n BLUE_40 = 'blue-40',\r\n}\r\n\r\nexport type RebrandBadgeColor =\r\n | 'success'\r\n | 'warning'\r\n | 'negative'\r\n | 'info'\r\n | 'brand'\r\n | 'neutral'\r\n | 'blue-20'\r\n | 'blue-40'\r\n | 'pink-30'\r\n | 'blue-10'\r\n | 'grey-10'\r\n | 'grey-30';\r\n\r\nexport enum RebrandBadgeColorEnum {\r\n SUCCESS = 'success',\r\n WARNING = 'warning',\r\n NEGATIVE = 'negative',\r\n INFO = 'info',\r\n BRAND = 'brand',\r\n NEUTRAL = 'neutral',\r\n BLUE_40 = 'blue-40',\r\n BLUE_20 = 'blue-20',\r\n PINK_30 = 'pink-30',\r\n BLUE_10 = 'blue-10',\r\n GREY_30 = 'grey-30',\r\n GREY_10 = 'grey-10',\r\n}\r\n\r\nexport enum BadgeVariantEnum {\r\n PRIMARY = 'primary',\r\n SECONDARY = 'secondary',\r\n NOTIFICATION = 'notification',\r\n}\r\n","import { SpiderChartData } from '../components/spider-chart/spider-chart.model';\r\n\r\nexport interface SkillAreaGroup {\r\n title: string;\r\n description: string;\r\n skillAreaList: SkillAreaData[];\r\n}\r\n\r\nexport interface SkillAreaSpiderChartData {\r\n title: string;\r\n description: string;\r\n spiderChartData: SpiderChartData;\r\n}\r\n\r\nexport interface SkillAreaData {\r\n percentileScoring: number;\r\n poolPercentileScoring?: number;\r\n skillAreaName: SkillAreaTypes;\r\n}\r\n\r\n//TODO Update this model after backend/endpoint definitions\r\nexport enum SkillAreaGroupTypes {\r\n FocusingOnObjectives = 1,\r\n WorkingWithPeople = 2,\r\n ManagingOnesSelf = 3,\r\n}\r\n\r\n//TODO Update this model after backend/endpoint definitions\r\nexport enum SkillAreaTypes {\r\n BusinessSavvy = 'BUSINESS_SAVVY',\r\n StrategicPerspective = 'STRATEGIC_PERSPECTIVE',\r\n CustomerFocus = 'CUSTOMER_FOCUS',\r\n NavigatingComplexity = 'NAVIGATING_COMPLEXITY',\r\n AgileDecisionMaking = 'AGILE_DECISION_MAKING',\r\n EmbracingInnovation = 'EMBRACING_INNOVATION',\r\n PlanningAndPrioritizing = 'PLANNING_AND_PRIORITIZING',\r\n OrganizingResources = 'ORGANIZING_RESOURCES',\r\n DrivingResults = 'DRIVING_RESULTS',\r\n\r\n WorkingCollaboratively = 'WORKING_COLLABORATIVELY',\r\n SocialAgility = 'SOCIAL_AGILITY',\r\n CommunicatingEffectively = 'COMMUNICATING_EFFECTIVELY',\r\n HandlingConflict = 'HANDLING_CONFLICT',\r\n ValuingDiversity = 'VALUING_DIVERSITY',\r\n DevelopingOthers = 'DEVELOPING_OTHERS',\r\n\r\n ShowingResilience = 'SHOWING_RESILIENCE',\r\n NavigatingAmbiguity = 'NAVIGATING_AMBIGUITY',\r\n SelfAwareness = 'SELF_AWARENESS',\r\n SelfDevelopment = 'SELF_DEVELOPMENT',\r\n BeingBold = 'BEING_BOLD',\r\n EarningTrust = 'EARNING_TRUST',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n SkillAreaData,\r\n SkillAreaGroup,\r\n SkillAreaGroupTypes,\r\n SkillAreaTypes,\r\n} from '../models/universal-skills-report.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniversalSkillsService {\r\n readonly translationContext = 'UNIVERSAL_SKILLS_REPORT.';\r\n\r\n private skillAreaGroupMap: Record<SkillAreaGroupTypes, SkillAreaGroup>;\r\n private staticSkillAreaGroupMap: SkillAreaTypes[][] = [\r\n [\r\n SkillAreaTypes.BusinessSavvy,\r\n SkillAreaTypes.StrategicPerspective,\r\n SkillAreaTypes.CustomerFocus,\r\n SkillAreaTypes.NavigatingComplexity,\r\n SkillAreaTypes.AgileDecisionMaking,\r\n SkillAreaTypes.EmbracingInnovation,\r\n SkillAreaTypes.PlanningAndPrioritizing,\r\n SkillAreaTypes.OrganizingResources,\r\n SkillAreaTypes.DrivingResults,\r\n ],\r\n [\r\n SkillAreaTypes.WorkingCollaboratively,\r\n SkillAreaTypes.SocialAgility,\r\n SkillAreaTypes.CommunicatingEffectively,\r\n SkillAreaTypes.HandlingConflict,\r\n SkillAreaTypes.ValuingDiversity,\r\n SkillAreaTypes.DevelopingOthers,\r\n ],\r\n [\r\n SkillAreaTypes.ShowingResilience,\r\n SkillAreaTypes.NavigatingAmbiguity,\r\n SkillAreaTypes.SelfAwareness,\r\n SkillAreaTypes.SelfDevelopment,\r\n SkillAreaTypes.EarningTrust,\r\n SkillAreaTypes.BeingBold,\r\n ],\r\n ];\r\n\r\n initializeSkillAreaGroupMap(): void {\r\n this.skillAreaGroupMap = {\r\n [SkillAreaGroupTypes.FocusingOnObjectives]: {\r\n title: `${this.translationContext}SKILL_AREA_GROUP_TYPES.FOCUSING_ON_OBJECTIVES.TITLE`,\r\n description: `${this.translationContext}SKILL_AREA_GROUP_TYPES.FOCUSING_ON_OBJECTIVES.DESCRIPTION`,\r\n skillAreaList: [],\r\n },\r\n [SkillAreaGroupTypes.WorkingWithPeople]: {\r\n title: `${this.translationContext}SKILL_AREA_GROUP_TYPES.WORKING_WITH_PEOPLE.TITLE`,\r\n description: `${this.translationContext}SKILL_AREA_GROUP_TYPES.WORKING_WITH_PEOPLE.DESCRIPTION`,\r\n skillAreaList: [],\r\n },\r\n [SkillAreaGroupTypes.ManagingOnesSelf]: {\r\n title: `${this.translationContext}SKILL_AREA_GROUP_TYPES.MANAGING_ONES_SELF.TITLE`,\r\n description: `${this.translationContext}SKILL_AREA_GROUP_TYPES.MANAGING_ONES_SELF.DESCRIPTION`,\r\n skillAreaList: [],\r\n },\r\n };\r\n }\r\n\r\n prepareSkillAreaGroupMap(skillAreaDataList: SkillAreaData[]): void {\r\n skillAreaDataList?.forEach(currentItem => {\r\n const formattedSkillAreaType = currentItem.skillAreaName;\r\n\r\n if (this.staticSkillAreaGroupMap[0].includes(formattedSkillAreaType)) {\r\n this.skillAreaGroupMap[SkillAreaGroupTypes.FocusingOnObjectives]?.skillAreaList?.push(currentItem);\r\n }\r\n\r\n if (this.staticSkillAreaGroupMap[1].includes(formattedSkillAreaType)) {\r\n this.skillAreaGroupMap[SkillAreaGroupTypes.WorkingWithPeople]?.skillAreaList?.push(currentItem);\r\n }\r\n\r\n if (this.staticSkillAreaGroupMap[2].includes(formattedSkillAreaType)) {\r\n this.skillAreaGroupMap[SkillAreaGroupTypes.ManagingOnesSelf]?.skillAreaList?.push(currentItem);\r\n }\r\n });\r\n }\r\n\r\n getSkillAreaGroupMap(): Record<SkillAreaGroupTypes, SkillAreaGroup> {\r\n return this.skillAreaGroupMap;\r\n }\r\n\r\n getStaticSkillAreaGroupMap(): SkillAreaTypes[][] {\r\n return this.staticSkillAreaGroupMap;\r\n }\r\n}\r\n","// Data of all tgoIcons\r\nexport const tgoIcons = [\r\n 'Add',\r\n 'Archive',\r\n 'Arrow_down',\r\n 'Arrow_left',\r\n 'Arrow_right',\r\n 'Arrow_up',\r\n 'Assessment',\r\n 'Attempts',\r\n 'Book',\r\n 'Calendar',\r\n 'Candidates',\r\n 'Chat-notifications',\r\n 'Chat',\r\n 'Check',\r\n 'Clone',\r\n 'Close',\r\n 'Code',\r\n 'Company',\r\n 'Copy',\r\n 'Custom-questions',\r\n 'Delete',\r\n 'Devices',\r\n 'Document',\r\n 'Dot',\r\n 'Download',\r\n 'Edit',\r\n 'Email-message',\r\n 'Empty-placeholder',\r\n 'Error',\r\n 'Essay',\r\n 'Eye-hide',\r\n 'Eye-view',\r\n 'Feedback-1',\r\n 'Feedback-2',\r\n 'Feedback-3',\r\n 'Feedback-4',\r\n 'Feedback-5',\r\n 'File-attach',\r\n 'File-upload',\r\n 'Filter',\r\n 'Folder',\r\n 'Format-add-file',\r\n 'Format-add-table',\r\n 'Format-align-L',\r\n 'Format-align-R',\r\n 'Format-align-center',\r\n 'Format-align-justify',\r\n 'Format-bold',\r\n 'Format-code-active',\r\n 'Format-code-block',\r\n 'Format-edit-table',\r\n 'Format-format',\r\n 'Format-function',\r\n 'Format-italics',\r\n 'Format-list-bulleted',\r\n 'Format-list-numbered',\r\n 'Format-picker',\r\n 'Format-quote',\r\n 'Format-subscript',\r\n 'Format-superscript',\r\n 'Format-text-direction-L',\r\n 'Format-text-direction-R',\r\n 'Format-text-size',\r\n 'Format-underline',\r\n 'Format-variable',\r\n 'Full-screen',\r\n 'Gender-female',\r\n 'Gender-male',\r\n 'Help-2',\r\n 'Help',\r\n 'Image',\r\n 'Info',\r\n 'Integration',\r\n 'Language',\r\n 'Layout',\r\n 'Learn',\r\n 'Level',\r\n 'Light-bulb',\r\n 'Link',\r\n 'Loading-spinner',\r\n 'Localisation',\r\n 'Location',\r\n 'Lock',\r\n 'Log-out',\r\n 'Menu-burger',\r\n 'Menu-ellipsis',\r\n 'Microphone',\r\n 'Minus',\r\n 'Mouse-cursor',\r\n 'Mouse-grab-cursor',\r\n 'Mouse',\r\n 'Multi-choice',\r\n 'Notifications',\r\n 'Password',\r\n 'Path',\r\n 'Pin-marker',\r\n 'Plan-billing',\r\n 'Plus',\r\n 'Premium',\r\n 'Promotion',\r\n 'Question-count',\r\n 'Refer',\r\n 'Reset',\r\n 'Review',\r\n 'Round-check-filled',\r\n 'Round-check',\r\n 'Search',\r\n 'Secure-checkout',\r\n 'Send',\r\n 'Settings',\r\n 'Social-facebook',\r\n 'Social-instagram',\r\n 'Social-linkedin',\r\n 'Sorting-down-1',\r\n 'Sorting-down',\r\n 'Speedometer',\r\n 'Star-filled',\r\n 'Star-half',\r\n 'Star-outline',\r\n 'Support',\r\n 'Sync',\r\n 'Team',\r\n 'Test',\r\n 'Thunder',\r\n 'Timer',\r\n 'Trophy',\r\n 'Type',\r\n 'Unarchive',\r\n 'Unlock',\r\n 'Upgrade',\r\n 'Upload',\r\n 'User-access',\r\n 'User-add',\r\n 'User-invite',\r\n 'User-profile',\r\n 'User-reject',\r\n 'User-switch',\r\n 'Video-pause',\r\n 'Video-play',\r\n 'Video-record',\r\n 'Video',\r\n 'Volume',\r\n 'Warning',\r\n 'Zoom-in',\r\n 'Zoom-out',\r\n 'Fire',\r\n 'Gift',\r\n 'Grab',\r\n 'Share',\r\n 'Sparkles',\r\n 'Video-stop',\r\n 'Minimize',\r\n 'Employee',\r\n 'Money-bag',\r\n 'Suitcase',\r\n 'Google',\r\n 'Fast-forward',\r\n 'Fast-rewind',\r\n 'Skip-next',\r\n 'Skip-previous',\r\n 'TestGorilla',\r\n] as const;\r\n\r\nexport const tgoRebrandIcons = [\r\n 'Archive-filled',\r\n 'Archive-in-line',\r\n 'Add-in-line',\r\n 'Add-filled',\r\n 'Arrow-chevron-down-filled',\r\n 'Arrow-chevron-down-in-line',\r\n 'Arrow-chevron-left-filled',\r\n 'Arrow-chevron-left-in-line',\r\n 'Arrow-chevron-right-filled',\r\n 'Arrow-chevron-right-in-line',\r\n 'Arrow-chevron-up-filled',\r\n 'Arrow-chevron-up-in-line',\r\n 'Arrow-down-filled',\r\n 'Arrow-down-in-line',\r\n 'Arrow-up-filled',\r\n 'Arrow-up-in-line',\r\n 'Assessment-filled',\r\n 'Assessment-in-line',\r\n 'Attach-filled',\r\n 'Attach-in-line',\r\n 'Attempts-filled',\r\n 'Attempts-in-line',\r\n 'Book-filled',\r\n 'Book-in-line',\r\n 'Calendar-filled',\r\n 'Calendar-in-line',\r\n 'Candidates-filled',\r\n 'Candidates-in-line',\r\n 'Chat-filled',\r\n 'Chat-in-line',\r\n 'Check-filled',\r\n 'Check-in-line',\r\n 'Check-round-filled',\r\n 'Check-round-in-line',\r\n 'Circle-filled',\r\n 'Circle-in-line',\r\n 'Clone-filled',\r\n 'Clone-in-line',\r\n 'Close-filled',\r\n 'Close-in-line',\r\n 'Code-filled',\r\n 'Code-in-line',\r\n 'Company-filled',\r\n 'Company-in-line',\r\n 'Copy-filled',\r\n 'Copy-in-line',\r\n 'Delete-filled',\r\n 'Delete-in-line',\r\n 'Devices-filled',\r\n 'Devices-in-line',\r\n 'Document-filled',\r\n 'Document-in-line',\r\n 'Dot-filled',\r\n 'Dot-in-line',\r\n 'Download-filled',\r\n 'Download-in-line',\r\n 'Edit-filled',\r\n 'Edit-in-line',\r\n 'Edit-text-filled',\r\n 'Edit-text-in-line',\r\n 'Employee-filled',\r\n 'Employee-in-line',\r\n 'Error-filled',\r\n 'Error-in-line',\r\n 'Essay-filled',\r\n 'Essay-in-line',\r\n 'Experience-filled',\r\n 'Experience-in-line',\r\n 'Facebook-filled',\r\n 'Facebook-in-line',\r\n 'Fast-forward-filled',\r\n 'Fast-forward-in-line',\r\n 'Fast-rewind-filled',\r\n 'Fast-rewind-in-line',\r\n 'Filter-filled',\r\n 'Filter-in-line',\r\n 'Fire-filled',\r\n 'Fire-in-line',\r\n 'Folder-filled',\r\n 'Folder-in-line',\r\n 'Full-screen-filled',\r\n 'Full-screen-in-line',\r\n 'Gender-male-filled',\r\n 'Gender-male-in-line',\r\n 'Gender-female-filled',\r\n 'Gender-female-in-line',\r\n 'Gift-filled',\r\n 'Gift-in-line',\r\n 'Google-filled',\r\n 'Google-in-line',\r\n 'Grab-filled',\r\n 'Grab-in-line',\r\n 'Help-filled',\r\n 'Help-in-line',\r\n 'Hide-filled',\r\n 'Hide-in-line',\r\n 'Image-filled',\r\n 'Image-in-line',\r\n 'Info-filled',\r\n 'Info-in-line',\r\n 'Instagram-filled',\r\n 'Instagram-in-line',\r\n 'Integration-filled',\r\n 'Integration-in-line',\r\n 'Invite-filled',\r\n 'Invite-in-line',\r\n 'Language-filled',\r\n 'Language-in-line',\r\n 'Layout-filled',\r\n 'Layout-in-line',\r\n 'Learn-filled',\r\n 'Learn-in-line',\r\n 'Level-filled',\r\n 'Level-in-line',\r\n 'Light-bulb-filled',\r\n 'Light-bulb-in-line',\r\n 'Link-filled',\r\n 'Link-in-line',\r\n 'Linkedin-filled',\r\n 'Linkedin-in-line',\r\n 'Localization-filled',\r\n 'Localization-in-line',\r\n 'Location-filled',\r\n 'Location-in-line',\r\n 'Lock-filled',\r\n 'Lock-in-line',\r\n 'Logout-filled',\r\n 'Logout-in-line',\r\n 'Medal-filled',\r\n 'Medal-in-line',\r\n 'Menu-burger-filled',\r\n 'Menu-burger-in-line',\r\n 'Menu-ellipsis-filled',\r\n 'Menu-ellipsis-in-line',\r\n 'Mic-filled',\r\n 'Mic-in-line',\r\n 'Minimize-filled',\r\n 'Minimize-in-line',\r\n 'Minus-filled',\r\n 'Minus-in-line',\r\n 'Mouse-filled',\r\n 'Mouse-in-line',\r\n 'Multi-choice-filled',\r\n 'Multi-choice-in-line',\r\n 'Notification-bell-filled',\r\n 'Notification-bell-in-line',\r\n 'Password-filled',\r\n 'Password-in-line',\r\n 'Path-filled',\r\n 'Path-in-line',\r\n 'Pause-filled',\r\n 'Pause-in-line',\r\n 'Pin-marker-filled',\r\n 'Pin-marker-in-line',\r\n 'Plan-billing-filled',\r\n 'Plan-billing-in-line',\r\n 'Play-filled',\r\n 'Play-in-line',\r\n 'Plus-filled',\r\n 'Plus-in-line',\r\n 'Premium-filled',\r\n 'Premium-in-line',\r\n 'Premium-circle-in-line',\r\n 'Question-count-filled',\r\n 'Question-count-in-line',\r\n 'Question-filled',\r\n 'Question-in-line',\r\n 'Record-filled',\r\n 'Record-in-line',\r\n 'Reject-filled',\r\n 'Refer-in-line',\r\n 'Refer-filled',\r\n 'Reject-in-line',\r\n 'Reset-filled',\r\n 'Reset-in-line',\r\n 'Review-emoji-1-filled',\r\n 'Review-emoji-1-in-line',\r\n 'Review-emoji-2-filled',\r\n 'Review-emoji-2-in-line',\r\n 'Review-emoji-3-filled',\r\n 'Review-emoji-3-in-line',\r\n 'Review-emoji-4-filled',\r\n 'Review-emoji-4-in-line',\r\n 'Review-emoji-5-filled',\r\n 'Review-emoji-5-in-line',\r\n 'Review-filled',\r\n 'Review-half-star-filled',\r\n 'Review-half-star-in-line',\r\n 'Review-in-line',\r\n 'Review-star-filled',\r\n 'Review-star-in-line',\r\n 'Search-filled',\r\n 'Search-in-line',\r\n 'Secure-filled',\r\n 'Secure-in-line',\r\n 'Send-filled',\r\n 'Send-in-line',\r\n 'Settings-filled',\r\n 'Settings-in-line',\r\n 'Share-filled',\r\n 'Share-in-line',\r\n 'Skip-next-filled',\r\n 'Skip-next-in-line',\r\n 'Skip-previous-filled',\r\n 'Skip-previous-in-line',\r\n 'Sparkle-filled',\r\n 'Sparkle-in-line',\r\n 'Speedometer-filled',\r\n 'Speedometer-in-line',\r\n 'Star-filled',\r\n 'Star-in-line',\r\n 'Stop-filled',\r\n 'Stop-in-line',\r\n 'Switch-filled',\r\n 'Switch-in-line',\r\n 'Sync-filled',\r\n 'Sync-in-line',\r\n 'Team-filled',\r\n 'Team-in-line',\r\n 'Test-filled',\r\n 'Test-in-line',\r\n 'Timer-filled',\r\n 'Timer-in-line',\r\n 'Trophy-filled',\r\n 'Trophy-in-line',\r\n 'Type-filled',\r\n 'Type-in-line',\r\n 'Unarchive-filled',\r\n 'Unarchive-in-line',\r\n 'Unlock-filled',\r\n 'Unlock-in-line',\r\n 'Upgrade-filled',\r\n 'Upgrade-in-line',\r\n 'Upload-filled',\r\n 'Upload-in-line',\r\n 'User-access-filled',\r\n 'User-access-in-line',\r\n 'User-add-filled',\r\n 'User-add-in-line',\r\n 'User-profile-filled',\r\n 'User-profile-in-line',\r\n 'Video-filled',\r\n 'Video-in-line',\r\n 'View-filled',\r\n 'View-in-line',\r\n 'Volume-filled',\r\n 'Volume-in-line',\r\n 'Warning-filled',\r\n 'Warning-in-line',\r\n 'Validated-filled',\r\n 'Validated-in-line',\r\n 'Verified-badge-filled',\r\n 'Verified-badge-in-line',\r\n 'Zoom-in-filled',\r\n 'Zoom-in-in-line',\r\n 'Zoom-out-filled',\r\n 'Zoom-out-in-line',\r\n 'TestGorilla-filled',\r\n 'TestGorilla-in-line',\r\n 'TestGorilla-Pink-filled',\r\n 'TestGorilla-Pink-in-line',\r\n] as const;\r\n\r\nexport const groupedIcons = {\r\n directional: [\r\n 'Arrow-chevron-down-filled',\r\n 'Arrow-chevron-down-in-line',\r\n 'Arrow-chevron-left-filled',\r\n 'Arrow-chevron-left-in-line',\r\n 'Arrow-chevron-right-filled',\r\n 'Arrow-chevron-right-in-line',\r\n 'Arrow-chevron-up-filled',\r\n 'Arrow-chevron-up-in-line',\r\n 'Arrow-down-filled',\r\n 'Arrow-down-in-line',\r\n 'Arrow-up-filled',\r\n 'Arrow-up-in-line',\r\n 'Fast-forward-filled',\r\n 'Fast-forward-in-line',\r\n 'Fast-rewind-filled',\r\n 'Fast-rewind-in-line',\r\n 'Minus-filled',\r\n 'Minus-in-line',\r\n 'Plus-filled',\r\n 'Plus-in-line',\r\n 'Skip-next-filled',\r\n 'Skip-next-in-line',\r\n 'Skip-previous-filled',\r\n 'Skip-previous-in-line',\r\n ],\r\n assessment: [\r\n 'Assessment-filled',\r\n 'Assessment-in-line',\r\n 'Attempts-filled',\r\n 'Attempts-in-line',\r\n 'Candidates-filled',\r\n 'Candidates-in-line',\r\n 'Code-filled',\r\n 'Code-in-line',\r\n 'Essay-filled',\r\n 'Essay-in-line',\r\n 'Language-filled',\r\n 'Language-in-line',\r\n 'Learn-filled',\r\n 'Learn-in-line',\r\n 'Level-filled',\r\n 'Level-in-line',\r\n 'Localization-filled',\r\n 'Localization-in-line',\r\n 'Medal-filled',\r\n 'Medal-in-line',\r\n 'Mic-filled',\r\n 'Mic-in-line',\r\n 'Multi-choice-filled',\r\n 'Multi-choice-in-line',\r\n 'Question-count-filled',\r\n 'Question-count-in-line',\r\n 'Question-filled',\r\n 'Question-in-line',\r\n 'Speedometer-filled',\r\n 'Speedometer-in-line',\r\n 'Test-filled',\r\n 'Test-in-line',\r\n 'Timer-filled',\r\n 'Timer-in-line',\r\n 'Type-filled',\r\n 'Type-in-line',\r\n 'Video-filled',\r\n 'Video-in-line',\r\n ],\r\n status: [\r\n 'Check-filled',\r\n 'Check-in-line',\r\n 'Check-round-filled',\r\n 'Check-round-in-line',\r\n 'Error-filled',\r\n 'Error-in-line',\r\n 'Help-filled',\r\n 'Help-in-line',\r\n 'Info-filled',\r\n 'Info-in-line',\r\n 'Refer-in-line',\r\n 'Refer-filled',\r\n 'Review-emoji-1-filled',\r\n 'Review-emoji-1-in-line',\r\n 'Review-emoji-2-filled',\r\n 'Review-emoji-2-in-line',\r\n 'Review-emoji-3-filled',\r\n 'Review-emoji-3-in-line',\r\n 'Review-emoji-4-filled',\r\n 'Review-emoji-4-in-line',\r\n 'Review-emoji-5-filled',\r\n 'Review-emoji-5-in-line',\r\n 'Review-half-star-filled',\r\n 'Review-half-star-in-line',\r\n 'Review-star-filled',\r\n 'Review-star-in-line',\r\n 'Warning-filled',\r\n 'Warning-in-line',\r\n 'Validated-filled',\r\n 'Validated-in-line',\r\n 'Verified-badge-filled',\r\n 'Verified-badge-in-line',\r\n ],\r\n social: [\r\n 'Facebook-filled',\r\n 'Facebook-in-line',\r\n 'Google-filled',\r\n 'Google-in-line',\r\n 'Instagram-filled',\r\n 'Instagram-in-line',\r\n 'Linkedin-filled',\r\n 'Linkedin-in-line',\r\n 'TestGorilla-filled',\r\n 'TestGorilla-in-line',\r\n 'TestGorilla-Pink-filled',\r\n 'TestGorilla-Pink-in-line',\r\n ],\r\n actions: [\r\n 'Archive-filled',\r\n 'Archive-in-line',\r\n 'Attach-filled',\r\n 'Attach-in-line',\r\n 'Clone-filled',\r\n 'Clone-in-line',\r\n 'Close-filled',\r\n 'Close-in-line',\r\n 'Copy-filled',\r\n 'Copy-in-line',\r\n 'Delete-filled',\r\n 'Delete-in-line',\r\n 'Download-filled',\r\n 'Download-in-line',\r\n 'Edit-filled',\r\n 'Edit-in-line',\r\n 'Edit-text-filled',\r\n 'Edit-text-in-line',\r\n 'Filter-filled',\r\n 'Filter-in-line',\r\n 'Full-screen-filled',\r\n 'Full-screen-in-line',\r\n 'Grab-filled',\r\n 'Grab-in-line',\r\n 'Hide-filled',\r\n 'Hide-in-line',\r\n 'Invite-filled',\r\n 'Invite-in-line',\r\n 'Link-filled',\r\n 'Link-in-line',\r\n 'Lock-filled',\r\n 'Lock-in-line',\r\n 'Logout-filled',\r\n 'Logout-in-line',\r\n 'Menu-burger-filled',\r\n 'Menu-burger-in-line',\r\n 'Menu-ellipsis-filled',\r\n 'Menu-ellipsis-in-line',\r\n 'Minimize-filled',\r\n 'Minimize-in-line',\r\n 'Pause-filled',\r\n 'Pause-in-line',\r\n 'Play-filled',\r\n 'Play-in-line',\r\n 'Record-filled',\r\n 'Record-in-line',\r\n 'Reject-filled',\r\n 'Reject-in-line',\r\n 'Reset-filled',\r\n 'Reset-in-line',\r\n 'Review-filled',\r\n 'Review-half-star-filled',\r\n 'Search-filled',\r\n 'Search-in-line',\r\n 'Send-filled',\r\n 'Send-in-line',\r\n 'Settings-filled',\r\n 'Settings-in-line',\r\n 'Share-filled',\r\n 'Share-in-line',\r\n 'Stop-filled',\r\n 'Stop-in-line',\r\n 'Switch-filled',\r\n 'Switch-in-line',\r\n 'Unarchive-filled',\r\n 'Unarchive-in-line',\r\n 'Unlock-filled',\r\n 'Unlock-in-line',\r\n 'Upgrade-filled',\r\n 'Upgrade-in-line',\r\n 'Upload-filled',\r\n 'Upload-in-line',\r\n 'User-add-filled',\r\n 'User-add-in-line',\r\n 'View-filled',\r\n 'View-in-line',\r\n 'Zoom-in-filled',\r\n 'Zoom-in-in-line',\r\n 'Zoom-out-filled',\r\n 'Zoom-out-in-line',\r\n ],\r\n communication: [\r\n 'Book-filled',\r\n 'Book-in-line',\r\n 'Calendar-filled',\r\n 'Calendar-in-line',\r\n 'Chat-filled',\r\n 'Chat-in-line',\r\n 'Circle-filled',\r\n 'Circle-in-line',\r\n 'Company-filled',\r\n 'Company-in-line',\r\n 'Devices-filled',\r\n 'Devices-in-line',\r\n 'Document-filled',\r\n 'Document-in-line',\r\n 'Dot-filled',\r\n 'Dot-in-line',\r\n 'Employee-filled',\r\n 'Employee-in-line',\r\n 'Experience-filled',\r\n 'Experience-in-line',\r\n 'Fire-filled',\r\n 'Fire-in-line',\r\n 'Folder-filled',\r\n 'Folder-in-line',\r\n 'Gender-female-filled',\r\n 'Gender-female-in-line',\r\n 'Gender-male-filled',\r\n 'Gender-male-in-line',\r\n 'Gift-filled',\r\n 'Gift-in-line',\r\n 'Image-filled',\r\n 'Image-in-line',\r\n 'Integration-filled',\r\n 'Integration-in-line',\r\n 'Layout-filled',\r\n 'Layout-in-line',\r\n 'Light-bulb-filled',\r\n 'Light-bulb-in-line',\r\n 'Location-filled',\r\n 'Location-in-line',\r\n 'Mouse-filled',\r\n 'Mouse-in-line',\r\n 'Notification-bell-filled',\r\n 'Notification-bell-in-line',\r\n 'Password-filled',\r\n 'Password-in-line',\r\n 'Path-filled',\r\n 'Path-in-line',\r\n 'Pin-marker-filled',\r\n 'Pin-marker-in-line',\r\n 'Plan-billing-filled',\r\n 'Plan-billing-in-line',\r\n 'Premium-filled',\r\n 'Premium-in-line',\r\n 'Premium-circle-in-line',\r\n 'Secure-filled',\r\n 'Secure-in-line',\r\n 'Sparkle-filled',\r\n 'Sparkle-in-line',\r\n 'Sync-filled',\r\n 'Sync-in-line',\r\n 'Team-filled',\r\n 'Team-in-line',\r\n 'Trophy-filled',\r\n 'Trophy-in-line',\r\n 'User-access-filled',\r\n 'User-access-in-line',\r\n 'User-profile-filled',\r\n 'User-profile-in-line',\r\n 'Volume-filled',\r\n 'Volume-in-line',\r\n ],\r\n};\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class IconsService {\r\n private _loadedIcons: any[] = [];\r\n\r\n addIcon(icon: any): void {\r\n this._loadedIcons = [...this._loadedIcons, icon];\r\n }\r\n\r\n isIconLoaded(icon: any): boolean {\r\n return this._loadedIcons.includes(icon);\r\n }\r\n}\r\n","import {\r\n Component,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Optional,\r\n SimpleChanges,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { tgoIcons, tgoRebrandIcons } from './icon.config';\r\nimport { IconColor, IconName, IconSize } from './icon.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { IconsService } from '../../services/icons.service';\r\n\r\n@Component({\r\n selector: 'ui-icon',\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./icon.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class IconComponent implements OnInit {\r\n /**\r\n * Icon size\r\n *\r\n * @type {IconSize}\r\n * @memberof IconComponent\r\n */\r\n @HostBinding('style.--icon-size')\r\n @Input() size: IconSize = '16';\r\n\r\n /**\r\n * Icon css class\r\n *\r\n * @memberof IconComponent\r\n */\r\n @Input() cssClass = '';\r\n\r\n /**\r\n * Icon name\r\n *\r\n * @type {IconName}\r\n * @memberof IconComponent\r\n */\r\n @Input() name: IconName;\r\n\r\n /**\r\n * Icon color\r\n *\r\n * @type {IconColor}\r\n * @memberof IconComponent\r\n */\r\n @Input() color?: IconColor = 'black';\r\n\r\n /**\r\n * Icon filled\r\n *\r\n * @type {boolean}\r\n * @memberof IconComponent\r\n */\r\n @Input() filled = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof IconComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n\r\n @Input() useFullIconName = true;\r\n\r\n customCssClass: string;\r\n filename: IconName | undefined;\r\n _name: string;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitzer: DomSanitizer,\r\n private iconsService: IconsService\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.customCssClass = this.setCssClass();\r\n this.addIcon();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['size'] || changes['cssClass'] || changes['color'] ) {\r\n this.customCssClass = this.setCssClass();\r\n }\r\n if (changes['name'] || changes['filled'] || changes['applicationTheme']) {\r\n this.addIcon();\r\n }\r\n }\r\n\r\n //set css class for size\r\n setCssClass(): string {\r\n return `${this.cssClass} size-${this.size} ${this.color}`;\r\n }\r\n\r\n //Add icon to matIcon registry\r\n addIcon() {\r\n let filename: IconName | undefined;\r\n if (!this.useFullIconName) {\r\n if (this.filled || this.name?.includes('filled')) {\r\n this._name = this.name.replace(/-in-line/, '') as IconName;\r\n filename =\r\n this.applicationTheme === 'classic'\r\n ? tgoIcons.find(icon => icon === this.filledIconName)\r\n : tgoRebrandIcons.find(icon => icon === this.filledIconName);\r\n } else {\r\n filename =\r\n this.applicationTheme === 'classic'\r\n ? (this.name?.replace(/-filled|-in-line/, '') as IconName)\r\n : (this.inlineIconFileName as IconName);\r\n }\r\n\r\n if (!filename) {\r\n filename = tgoIcons.find(icon => icon === this._name);\r\n }\r\n\r\n this._name = filename as IconName;\r\n } else {\r\n if (!this.name?.includes('-in-line') && !this.name?.includes('filled') && this.applicationTheme !== 'classic') {\r\n this.name = `${this.name}-in-line` as IconName;\r\n }\r\n this._name = this.name;\r\n filename = this.name as IconName;\r\n }\r\n\r\n const path = this.applicationTheme === 'classic' ? '/icons/' : '/icons/rebrand/';\r\n\r\n if (filename && !this.iconsService.isIconLoaded(filename)) {\r\n this.matIconRegistry.addSvgIcon(\r\n filename,\r\n this.domSanitzer.bypassSecurityTrustResourceUrl(`${path}${filename}.svg`)\r\n );\r\n this.iconsService.addIcon(filename);\r\n }\r\n }\r\n\r\n get cssStyle(): Record<string, string | undefined> {\r\n return { '--icon-color': this.color }\r\n }\r\n\r\n get filledIconName() {\r\n return this.name?.includes('filled') ? this.name : `${this.name}-filled`;\r\n }\r\n\r\n get inlineIconName() {\r\n return this.name?.includes('in-line') ? this.name : `${this.name}-in-line`;\r\n }\r\n\r\n get inlineIconFileName() {\r\n return this.name?.includes('filled') ? this.name.replace('filled', 'in-line') : this.inlineIconName;\r\n }\r\n\r\n get isIconLoaded(): boolean {\r\n return this.iconsService.isIconLoaded(this._name);\r\n }\r\n}\r\n","@if (isIconLoaded) {\r\n <mat-icon [svgIcon]=\"_name\" [attr.class]=\"customCssClass\" [ngStyle]=\"cssStyle\"></mat-icon>\r\n} @else {\r\n <div class=\"empty-icon-placeholder\"></div>\r\n}\r\n","import { booleanAttribute, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { AccordionVariant, ToggleIconPosition } from './accordion.model';\r\nimport { IconName } from '../icon/icon.model';\r\n\r\n@Component({\r\n selector: 'ui-accordion',\r\n templateUrl: './accordion.component.html',\r\n styleUrls: ['./accordion.component.scss'],\r\n})\r\nexport class AccordionComponent {\r\n /**\r\n * The label displayed for the accordion.\r\n * @type {string}\r\n * @required\r\n * @memberof AccordionComponent\r\n */\r\n @Input({ required: true }) label: string;\r\n\r\n /**\r\n * Determines whether the accordion is initially open.\r\n * @type {boolean}\r\n * @default false\r\n * @memberof AccordionComponent\r\n */\r\n @Input({ transform: booleanAttribute }) open = false;\r\n\r\n /**\r\n * Disables the accordion if set to true.\r\n * @type {boolean}\r\n * @default false\r\n * @memberof AccordionComponent\r\n */\r\n @Input({ transform: booleanAttribute }) disabled = false;\r\n\r\n /**\r\n * Indicates whether to show a premium icon.\r\n * @type {boolean}\r\n * @default false\r\n * @memberof AccordionComponent\r\n */\r\n @Input({ transform: booleanAttribute }) showPremiumIcon = false;\r\n\r\n /**\r\n * The tooltip text for the premium icon.\r\n * @type {string}\r\n * @default ''\r\n * @memberof AccordionComponent\r\n */\r\n @Input() premiumTooltipText = '';\r\n\r\n /**\r\n *\r\n * Defines the application theme where accordion is used\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof AccordionComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n *\r\n * Changed premium icon on this icon\r\n *\r\n * @type {IconName}\r\n * @memberof AccordionComponent\r\n */\r\n @Input() labelIcon: IconName;\r\n\r\n /**\r\n *\r\n * Select accordion variant. Don`t work on Classic theme\r\n *\r\n * @type {AccordionVariant}\r\n * @memberof AccordionComponent\r\n */\r\n @Input() variant: AccordionVariant = 'standard';\r\n\r\n /**\r\n *\r\n * Projects content with attribute 'customHeader'\r\n *\r\n * @type {boolean}\r\n * @memberof AccordionComponent\r\n */\r\n @Input() allowCustomHeader: boolean = false;\r\n\r\n /**\r\n *\r\n * Sets background color of content to none\r\n *\r\n * @type {boolean}\r\n * @memberof AccordionComponent\r\n */\r\n @Input() noBackgroundColor: boolean = false;\r\n\r\n /**\r\n *\r\n * Defines the toggle icon position\r\n *\r\n * @type {boolean}\r\n * @memberof AccordionComponent\r\n */\r\n @Input() toggleIconPosition: ToggleIconPosition = 'right';\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n @Output() opened = new EventEmitter<void>();\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n protected toggle(open: boolean): void {\r\n this.open = open;\r\n\r\n if (this.open) {\r\n this.opened.emit();\r\n } else {\r\n this.closed.emit();\r\n }\r\n }\r\n}\r\n","<mat-accordion class=\"accordion-wrapper\" [class.disabled]=\"disabled\" [ngClass]=\"variant\" [attr.theme]=\"applicationTheme\">\r\n <mat-expansion-panel [expanded]=\"open\"\r\n [class.bgcolor-none]=\"noBackgroundColor\"\r\n (opened)=\"toggle(true)\"\r\n (closed)=\"toggle(false)\">\r\n <mat-expansion-panel-header\r\n [tabIndex]=\"disabled ? -1 : 0\"\r\n [class.custom-height]=\"allowCustomHeader\"\r\n [class.left-toggle]=\"toggleIconPosition === 'left'\"\r\n [attr.aria-label]=\"label\"\r\n >\r\n <mat-panel-title *ngIf=\"!allowCustomHeader; else customHeader\">\r\n <div *ngIf=\"variant === 'table' && applicationTheme !== 'classic'; else default\" class=\"table-container\">\r\n <ui-icon [size]=\"'24'\" [ngClass]=\"{ open }\" [name]=\"'Arrow-chevron-down-filled'\"></ui-icon>\r\n <div class=\"accordion-label\">\r\n {{ label }}\r\n </div>\r\n </div>\r\n <ng-template #default>\r\n <div class=\"accordion-label\">\r\n {{ label }}\r\n <ng-content select=\"[subHeader]\"></ng-content>\r\n <ui-icon\r\n [matTooltipClass]=\"applicationTheme\"\r\n [matTooltip]=\"premiumTooltipText\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [name]=\"labelIcon ? labelIcon : applicationTheme === 'classic' ? 'Premium' : 'Premium-circle-in-line'\"\r\n *ngIf=\"showPremiumIcon || labelIcon\"\r\n ></ui-icon>\r\n </div>\r\n </ng-template>\r\n </mat-panel-title>\r\n <ng-template #customHeader>\r\n <ng-content select=\"[customHeader]\"></ng-content>\r\n </ng-template>\r\n <mat-panel-description>\r\n <div class=\"accordion-actions\">\r\n <ng-content select=\"[actions]\"></ng-content>\r\n </div>\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <ng-content></ng-content>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n","import { Component, Inject, Input, Optional } from '@angular/core';\r\nimport { IconColor, IconName } from '../icon/icon.model';\r\nimport {\r\n BadgeColor,\r\n BadgeColorEnum,\r\n BadgeVariant,\r\n BadgeVariantEnum,\r\n RebrandBadgeColor,\r\n RebrandBadgeColorEnum,\r\n} from './badge.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-badge',\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss'],\r\n})\r\nexport class BadgeComponent {\r\n /**\r\n * The label to be displayed on the badge.\r\n * @type {string}\r\n * @memberof BadgeComponent\r\n */\r\n @Input() label = '';\r\n\r\n /**\r\n * The icon name to be displayed on the badge.\r\n * @type {IconName}\r\n * @memberof BadgeComponent\r\n */\r\n @Input() icon: IconName = '';\r\n\r\n /**\r\n * The color of the badge. Defaults to 'petrol'.\r\n * @type {BadgeColor}\r\n * @memberof BadgeComponent\r\n */\r\n @Input() color: BadgeColor = 'petrol';\r\n\r\n /**\r\n * The variant of the badge. Defaults to 'primary'.\r\n * @type {BadgeVariant}\r\n * @memberof BadgeComponent\r\n */\r\n @Input() variant: BadgeVariant = 'primary';\r\n\r\n /**\r\n * The amount of notifications to be displayed on the badge.\r\n * @type {number}\r\n * @memberof BadgeComponent\r\n */\r\n @Input() notificationsAmount = 0;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof BadgeComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * The color of the badge on new theme. Defaults to 'brand'.\r\n * @type {RebrandBadgeColor}\r\n * @memberof BadgeComponent\r\n */\r\n @Input() rebrandColor: RebrandBadgeColor = 'brand';\r\n\r\n @Input() truncateLabel = true;\r\n\r\n protected badgeVariant = BadgeVariantEnum;\r\n private darkColors: string[] = [\r\n BadgeColorEnum.GREY_MEDIUM,\r\n BadgeColorEnum.PETROL_90W,\r\n BadgeColorEnum.TEAL_60W,\r\n BadgeColorEnum.PETROL_60W,\r\n RebrandBadgeColorEnum.SUCCESS,\r\n RebrandBadgeColorEnum.INFO,\r\n RebrandBadgeColorEnum.BRAND,\r\n RebrandBadgeColorEnum.NEUTRAL,\r\n RebrandBadgeColorEnum.NEGATIVE,\r\n RebrandBadgeColorEnum.WARNING,\r\n RebrandBadgeColorEnum.BLUE_20,\r\n RebrandBadgeColorEnum.PINK_30,\r\n RebrandBadgeColorEnum.BLUE_10,\r\n ];\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n protected get iconColor(): IconColor {\r\n return this.darkColors.includes(this.isClassicTheme ? this.color : this.rebrandColor) ? 'black' : 'white';\r\n }\r\n\r\n protected get isClassicTheme(): boolean {\r\n return this.applicationTheme === 'classic';\r\n }\r\n}\r\n","<div [class]=\"'badge badge-container-' + variant\"\r\n [attr.aria-label]=\"label\"\r\n [attr.theme]=\"applicationTheme\"\r\n [attr.color]=\"isClassicTheme ? color : rebrandColor\"\r\n [matTooltip]=\"(label.length > 25) ? label : ''\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n>\r\n <ng-container [ngSwitch]=\"variant\">\r\n <ng-container *ngSwitchCase=\"badgeVariant.PRIMARY\">\r\n <ui-icon *ngIf=\"icon\" class=\"badge-icon\" [name]=\"icon\" [color]=\"iconColor\" ></ui-icon>\r\n </ng-container>\r\n <div *ngSwitchCase=\"badgeVariant.SECONDARY\" class=\"point\" [attr.color]=\"isClassicTheme ? color : rebrandColor\"></div>\r\n <div *ngSwitchCase=\"badgeVariant.NOTIFICATION\" class=\"number-notification\">{{ notificationsAmount }}</div>\r\n </ng-container>\r\n <div class=\"label\" *ngIf=\"label && variant !== badgeVariant.NOTIFICATION\">{{ label.length > 25 && truncateLabel ? (label | slice : 0 : 25) + '...' : label }}</div>\r\n</div>\r\n","export enum Language {\r\n en = 'en',\r\n es = 'es',\r\n nl = 'nl',\r\n fr = 'fr',\r\n de = 'de',\r\n 'it-it' = 'it-it',\r\n 'ja-jp' = 'ja-jp',\r\n 'pt-br' = 'pt-br',\r\n 'da-dk' = 'da-dk',\r\n 'nb-no' = 'nb-no',\r\n 'pl-pl' = 'pl-pl',\r\n 'sv-se' = 'sv-se',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Language } from './language.model';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\n//This type enforces all translations are present when some translation needs to live in the frontend\r\nexport type TranslationMap = { [key in Language]: string };\r\n\r\n//This function retrieves all languages from the enum. It is used to initialize transloco\r\nexport const getAvailableLangs = () => Object.values(Language);\r\n\r\n//This type is intended for UI uses only\r\nexport type UILanguage = { code: Language | string; label: string };\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LanguageService {\r\n static readonly defaultLanguage = Language.en;\r\n\r\n readonly #currentLang$ = new BehaviorSubject(LanguageService.defaultLanguage);\r\n\r\n readonly defaultLanguageList: UILanguage[] = [\r\n { code: Language.en, label: 'English' },\r\n { code: Language.es, label: 'Spanish' },\r\n { code: Language.de, label: 'German' },\r\n { code: Language.fr, label: 'French' },\r\n { code: Language.nl, label: 'Dutch' },\r\n { code: Language['it-it'], label: 'Italian' },\r\n { code: Language['ja-jp'], label: 'Japanese' },\r\n { code: Language['pt-br'], label: 'Portuguese' },\r\n { code: Language['da-dk'], label: 'Danish' },\r\n { code: Language['nb-no'], label: 'Norwegian' },\r\n { code: Language['pl-pl'], label: 'Polish' },\r\n { code: Language['sv-se'], label: 'Swedish' },\r\n ];\r\n\r\n setActiveLang(language: Language): void {\r\n this.#currentLang$.next(language);\r\n }\r\n\r\n getActiveLang(): Observable<Language> {\r\n return this.#currentLang$.asObservable();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport en from '../assets/i18n/en.json';\r\nimport es from '../assets/i18n/es.json';\r\nimport de from '../assets/i18n/de.json';\r\nimport * as daDk from '../assets/i18n/da-dk.json';\r\nimport fr from '../assets/i18n/fr.json';\r\nimport * as itIt from '../assets/i18n/it-it.json';\r\nimport * as jaJp from '../assets/i18n/ja-jp.json';\r\nimport * as nbNo from '../assets/i18n/nb-no.json';\r\nimport nl from '../assets/i18n/nl.json';\r\nimport * as plPl from '../assets/i18n/pl-pl.json';\r\nimport * as ptBr from '../assets/i18n/pt-br.json';\r\nimport * as svSe from '../assets/i18n/sv-se.json';\r\nimport { LanguageService } from '../utils/localization/language.service';\r\nimport { map, Observable } from 'rxjs';\r\n\r\n/**\r\n * Used for translations\r\n */\r\n@Pipe({\r\n name: 'uiTranslate',\r\n standalone: true,\r\n})\r\nexport class UiTranslatePipe implements PipeTransform {\r\n protected readonly LANGS: { [key: string]: any } = {\r\n en,\r\n es,\r\n de,\r\n 'da-dk': daDk,\r\n fr,\r\n 'it-it': itIt,\r\n 'ja-jp': jaJp,\r\n 'nb-no': nbNo,\r\n nl,\r\n 'pl-pl': plPl,\r\n 'pt-br': ptBr,\r\n 'sv-se': svSe,\r\n };\r\n\r\n constructor(private readonly languageService: LanguageService) {}\r\n /**\r\n * Finds the translation by keys with interpolation if provided\r\n * @param translateKey key, can have multiple keys separated with '.' eg ('KEY', 'FIRST_LVL_KEY.SECOND_LVL_KEY')\r\n * @param activeLang current active language\r\n * @param interpolationData data that will be used to replace interpolations in translated variant\r\n * For example, for translate text like this\r\n * 'You have {{attemptsAmount}} attempts left\r\n * the interpolation object should be { attemptsAmount: 10 }\r\n */\r\n transform(translateKey: string, interpolationData?: any): Observable<string> {\r\n return this.languageService.getActiveLang().pipe(\r\n map(activeLang => {\r\n const currentLangObject = JSON.parse(JSON.stringify(this.LANGS[activeLang]));\r\n const enLangObject = JSON.parse(JSON.stringify(this.LANGS['en']));\r\n const keys = translateKey.split('.');\r\n const translation = keys.reduce((acc, currentKey) => acc && acc[currentKey], currentLangObject);\r\n\r\n if (translation) {\r\n return this.interpolate(translation, interpolationData);\r\n }\r\n\r\n const englishTranslation = keys.reduce((acc, currentKey) => acc && acc[currentKey], enLangObject);\r\n return this.interpolate(englishTranslation, interpolationData);\r\n })\r\n )\r\n }\r\n\r\n /**\r\n * Used to find and replace interpolation in text\r\n * @param translation the translation text\r\n * @param interpolationData the interpolation object\r\n */\r\n private interpolate(translation: string, interpolationData: { [key: string]: any }): string {\r\n return translation?.replace(/{{(.*?)}}/g, (match: string, group: string) => {\r\n const value = interpolationData[group.trim()] as string;\r\n return value ?? match;\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n Optional,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { ProgressBarMode } from '@angular/material/progress-bar';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProgressBarComponent implements OnChanges {\r\n /**\r\n * Color of the progress bar.\r\n * Defaults to Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof ProgressBarComponent\r\n */\r\n @HostBinding('style.--color')\r\n @Input()\r\n companyColor: string | null;\r\n\r\n /**\r\n * Progress value of the progress bar.\r\n * Defaults to zero.\r\n *\r\n * @type {number}\r\n * @memberof ProgressBarComponent\r\n */\r\n @Input() progress = 0;\r\n\r\n /**\r\n * Mode of the progress bar.\r\n * Mode must be one of these values: determinate, indeterminate, buffer, query.\r\n * Defaults to 'determinate'.\r\n *\r\n * @type {ProgressBarMode}\r\n * @memberof ProgressBarComponent\r\n */\r\n @Input() mode: ProgressBarMode = 'determinate';\r\n\r\n /**\r\n * Buffer value of the progress bar.\r\n * Defaults to zero.\r\n *\r\n * @type {number}\r\n * @memberof ProgressBarComponent\r\n */\r\n @Input() buffer = 0;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof ProgressBarComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof ProgressBarComponent\r\n */\r\n @Input() ariaLabel = '';\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof ProgressBarComponent\r\n */\r\n @Input() ariaDescribedBy = '';\r\n\r\n /**\r\n * Shows the percentage amount\r\n * @property showPercentage\r\n * @type {boolean}\r\n * @memberof ProgressBarComponent\r\n */\r\n @Input() showPercentage = false;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes['companyColor']) {\r\n this.companyColor = this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';\r\n }\r\n }\r\n}\r\n","@if (showPercentage) {\r\n <div class=\"percentage\">{{ progress }}%</div>\r\n}\r\n\r\n<mat-progress-bar\r\n [mode]=\"mode\"\r\n [value]=\"progress\"\r\n [bufferValue]=\"buffer\"\r\n title=\"progress-bar\"\r\n class=\"progress-bar\"\r\n [attr.theme]=\"applicationTheme\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-live]=\"'polite'\"\r\n [attr.aria-describedby]=\"'describedBy'\"\r\n>\r\n</mat-progress-bar>\r\n<div style=\"position: absolute; left: -9999px\" role=\"alert\" *ngIf=\"mode === 'indeterminate'\">\r\n {{ 'COMMON.LOADING' | uiTranslate | async }}\r\n</div>\r\n<div style=\"display: none\" id=\"describedBy\">\r\n {{ ariaDescribedBy }}\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * USAGE:\r\n * {{ argument | memoizeFunc : method [: context] }}\r\n *\r\n * You could provide multiple arguments for the function like that:\r\n * {{ [argument1, argument2] | memoizeFunc : method [: context] }}\r\n *\r\n *\r\n * FUNCTION WITH CONTEXT\r\n * We still could have optimization in impure functions with Angular pipes. Just provide context as second parameter\r\n * to the memoizeFunc pipe.\r\n *\r\n * {{ argument | memoizeFunc : method : this }}\r\n *\r\n * Alternative variant use 'bind'\r\n *\r\n * {{ argument | memoizeFunc : method.bind(this) }}\r\n *\r\n * */\r\n@Pipe({\r\n name: 'memoizeFunc',\r\n standalone: true,\r\n})\r\nexport class MemoizeFuncPipe implements PipeTransform {\r\n transform<T, K>(value: T, handler: (value: T) => K, context?: any): K {\r\n if (context) {\r\n return handler.call(context, value);\r\n }\r\n\r\n return handler(value);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'ordinalSuffix',\r\n standalone: true,\r\n})\r\nexport class OrdinalSuffixPipe implements PipeTransform {\r\n\r\n transform(value: number): string {\r\n const lastDigit = value % 10;\r\n const lastTwoDigits = value % 100;\r\n\r\n if (lastTwoDigits >= 11 && lastTwoDigits <= 13) {\r\n return 'PERCENTILE_SUFFIXES.TH';\r\n }\r\n\r\n switch (lastDigit) {\r\n case 1:\r\n return 'PERCENTILE_SUFFIXES.ST';\r\n case 2:\r\n return 'PERCENTILE_SUFFIXES.ND';\r\n case 3:\r\n return 'PERCENTILE_SUFFIXES.RD';\r\n default:\r\n return 'PERCENTILE_SUFFIXES.TH';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Inject, Input, OnInit, Optional } from '@angular/core';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { RebrandBadgeColor, RebrandBadgeColorEnum } from '../badge/badge.model';\r\nimport { SkillAreaData, SkillAreaGroup, SkillAreaGroupTypes } from '../../models/universal-skills-report.model';\r\nimport { UniversalSkillsService } from '../../services/universal-skills.service';\r\n\r\n@Component({\r\n selector: 'ui-universal-skills-report',\r\n templateUrl: './universal-skills-report.component.html',\r\n styleUrls: ['./universal-skills-report.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniversalSkillsReportComponent implements OnInit {\r\n /**\r\n * Defines the application theme\r\n * @property applicationTheme\r\n * @type {ApplicationTheme}\r\n * @memberof UniversalSkillsReportComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * The list of items to be used\r\n * @property items\r\n * @type {SkillAreaData[]}\r\n * @memberof UniversalSkillsReportComponent\r\n */\r\n @Input() skillAreaDataList: SkillAreaData[];\r\n\r\n readonly translationContext = 'UNIVERSAL_SKILLS_REPORT.';\r\n\r\n skillAreaGroupMap: Record<SkillAreaGroupTypes, SkillAreaGroup>;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private universalSkillsService: UniversalSkillsService\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.universalSkillsService.initializeSkillAreaGroupMap();\r\n this.universalSkillsService.prepareSkillAreaGroupMap(this.skillAreaDataList);\r\n this.skillAreaGroupMap = this.universalSkillsService.getSkillAreaGroupMap();\r\n }\r\n\r\n getScoreBadgeLabel(percentileScoring: number): string {\r\n return `PERCENTILE_LABEL_TYPES.${this.checkScoreClassification([percentileScoring, true])}`;\r\n }\r\n\r\n getScoreBadgeColor(percentileScoring: number): RebrandBadgeColor {\r\n return this.checkScoreClassification([percentileScoring, false]) as RebrandBadgeColor;\r\n }\r\n\r\n checkScoreClassification([percentileScoring, isLabelRequest]: [number, boolean]): string | RebrandBadgeColor {\r\n let scoreBadgeLabel = '';\r\n let scoreBadgeColor: RebrandBadgeColor = RebrandBadgeColorEnum.BLUE_10;\r\n\r\n if (percentileScoring >= 1 && percentileScoring <= 19) {\r\n scoreBadgeLabel = 'WELL_BELOW_AVERAGE';\r\n scoreBadgeColor = RebrandBadgeColorEnum.GREY_30;\r\n }\r\n\r\n if (percentileScoring >= 20 && percentileScoring <= 39) {\r\n scoreBadgeLabel = 'BELOW_AVERAGE';\r\n scoreBadgeColor = RebrandBadgeColorEnum.GREY_10;\r\n }\r\n\r\n if (percentileScoring >= 40 && percentileScoring <= 59) {\r\n scoreBadgeLabel = 'AVERAGE';\r\n scoreBadgeColor = RebrandBadgeColorEnum.BLUE_10;\r\n }\r\n\r\n if (percentileScoring >= 60 && percentileScoring <= 79) {\r\n scoreBadgeLabel = 'ABOVE_AVERAGE';\r\n scoreBadgeColor = RebrandBadgeColorEnum.BLUE_20;\r\n }\r\n\r\n if (percentileScoring >= 80 && percentileScoring <= 100) {\r\n scoreBadgeLabel = 'WELL_ABOVE_AVERAGE';\r\n scoreBadgeColor = RebrandBadgeColorEnum.BLUE_40;\r\n }\r\n\r\n return isLabelRequest ? scoreBadgeLabel : scoreBadgeColor;\r\n }\r\n}\r\n","<div\r\n *ngFor=\"let skillAreaGroup of skillAreaGroupMap | keyvalue\"\r\n class=\"universal-skills-report\"\r\n>\r\n <section class=\"title-and-info\">\r\n <h4>{{skillAreaGroup.value.title | uiTranslate | async}}</h4>\r\n <span>{{skillAreaGroup.value.description | uiTranslate | async}}</span>\r\n </section>\r\n\r\n <section class=\"accordion-items\">\r\n <ui-accordion\r\n *ngFor=\"let skillAreaData of skillAreaGroup?.value?.skillAreaList\"\r\n class=\"universal-skills-accordion\"\r\n label=\"-\"\r\n [allowCustomHeader]=\"true\"\r\n >\r\n <div\r\n customHeader\r\n class=\"custom-header\"\r\n >\r\n <h4 class=\"custom-header-subtitle\">{{ (translationContext + 'SKILL_AREA_TYPES.' + skillAreaData.skillAreaName + '.TITLE') | uiTranslate | async}}</h4>\r\n\r\n <div class=\"inner-container\">\r\n <ui-badge\r\n class=\"percentile-scoring-badge\"\r\n [label]=\"((skillAreaData.percentileScoring | memoizeFunc : getScoreBadgeLabel : this) | uiTranslate | async) || 'neutral'\"\r\n [rebrandColor]=\"skillAreaData.percentileScoring | memoizeFunc : getScoreBadgeColor : this\"\r\n [applicationTheme]=\"'light'\"\r\n ></ui-badge>\r\n\r\n <h5 class=\"percentile-quantity\">\r\n {{skillAreaData?.percentileScoring}}\r\n <sup class=\"percentile-suffix\">{{(skillAreaData.percentileScoring | ordinalSuffix) | uiTranslate | async}}</sup>\r\n {{(translationContext + 'PERCENTILE') | uiTranslate | async}}\r\n </h5>\r\n\r\n <ui-progress-bar\r\n class=\"percentile-scoring-bar\"\r\n mode=\"determinate\"\r\n [progress]=\"skillAreaData.percentileScoring\"\r\n ></ui-progress-bar>\r\n </div>\r\n </div>\r\n\r\n <div class=\"content-container\">\r\n <p class=\"skill-description\">{{ (translationContext + 'SKILL_AREA_TYPES.' + skillAreaData.skillAreaName + '.DESCRIPTION') | uiTranslate | async}}</p>\r\n\r\n <h5>{{(skillAreaData.percentileScoring | memoizeFunc : getScoreBadgeLabel : this) | uiTranslate | async}} score</h5>\r\n\r\n <div class=\"inner-container\">\r\n <p>{{ (translationContext +\r\n 'SKILL_AREA_TYPES.' +\r\n skillAreaData.skillAreaName + '.' +\r\n ([skillAreaData.percentileScoring, true] | memoizeFunc : checkScoreClassification : this) +\r\n '.GENERAL')\r\n | uiTranslate | async}}</p>\r\n </div>\r\n\r\n <div class=\"inner-container\">\r\n <p>{{ (translationContext +\r\n 'SKILL_AREA_TYPES.' +\r\n skillAreaData.skillAreaName + '.' +\r\n ([skillAreaData.percentileScoring, true] | memoizeFunc : checkScoreClassification : this) +\r\n '.WORK_ENVIRONMENT')\r\n | uiTranslate | async}}</p>\r\n </div>\r\n\r\n <div class=\"inner-container\">\r\n <p>{{ (translationContext +\r\n 'SKILL_AREA_TYPES.' +\r\n skillAreaData.skillAreaName + '.' +\r\n ([skillAreaData.percentileScoring, true] | memoizeFunc : checkScoreClassification : this) +\r\n '.RECOMMENDATIONS')\r\n | uiTranslate | async}}</p>\r\n </div>\r\n </div>\r\n </ui-accordion>\r\n </section>\r\n</div>\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconComponent } from './icon.component';\r\n\r\n@NgModule({\r\n declarations: [IconComponent],\r\n imports: [CommonModule, MatIconModule, HttpClientModule],\r\n exports: [IconComponent],\r\n providers: [HttpClientModule],\r\n})\r\nexport class IconComponentModule {}\r\n","/**\r\n * Function for adjusting the lightness of a color based on different events (hover, pressed, disabled).\r\n * Accepts a hex color, transforms it to HSL, and based on color's L and event darkens or lightens it.\r\n * Used to manage different colors based on application configuration\r\n *\r\n * @param hexColor color in hex format\r\n * @param typeEvent interaction event\r\n * @param theme\r\n */\r\nexport const adjustLightness = (hexColor: string, typeEvent: 'hover' | 'pressed' | 'disabled', theme: 'new' | 'classic' = 'new'): string => {\r\n const hexRegex = /^#([0-9A-F]{3}){1,2}$/i;\r\n if (hexColor && !hexRegex.test(hexColor)) {\r\n throw new Error('Invalid HEX color format');\r\n }\r\n\r\n const hslColor = hexToHsl(hexColor);\r\n const lightness = hslColor.l * 100;\r\n\r\n if (theme === 'new') {\r\n if (lightness > 70 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\r\n hslColor.l = clamp(hslColor.l - 10 / 100);\r\n } else if (lightness < 30 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\r\n hslColor.l = clamp(hslColor.l + 10 / 100);\r\n } else if (lightness < 70 && lightness > 30 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\r\n hslColor.l = clamp(hslColor.l - 10 / 100);\r\n }\r\n } else {\r\n if (lightness > 70 && typeEvent === 'hover') {\r\n hslColor.l = clamp(hslColor.l - 10 / 100);\r\n } else if (lightness < 30 && typeEvent === 'hover') {\r\n hslColor.l = clamp(hslColor.l + 10 / 100);\r\n } else if (lightness < 70 && lightness > 30 && typeEvent === 'hover') {\r\n hslColor.l = clamp(hslColor.l - 10 / 100);\r\n } else if (lightness > 70 && typeEvent === 'pressed') {\r\n hslColor.l = clamp(hslColor.l - 20 / 100);\r\n } else if (lightness < 30 && typeEvent === 'pressed') {\r\n hslColor.l = clamp(hslColor.l + 30 / 100);\r\n } else if (lightness < 70 && lightness > 30 && typeEvent === 'pressed') {\r\n hslColor.l = clamp(hslColor.l - 20 / 100);\r\n } else if (lightness > 70 && typeEvent === 'disabled') {\r\n hslColor.l = clamp(hslColor.l + 10 / 100);\r\n } else if (lightness < 30 && typeEvent === 'disabled') {\r\n hslColor.l = clamp(hslColor.l + 50 / 100);\r\n } else if (lightness < 70 && lightness > 30 && typeEvent === 'disabled') {\r\n hslColor.l = clamp(hslColor.l + 20 / 100);\r\n }\r\n }\r\n\r\n return hslToHex(hslColor);\r\n};\r\n\r\n/**\r\n * Transforms hex color to HSL in object variation.\r\n * @param hexColor string value with hex color\r\n */\r\nexport const hexToHsl = (hexColor: string): { h: number; s: number; l: number } => {\r\n const rgbColor = parseInt(hexColor.slice(1), 16);\r\n const r = ((rgbColor >> 16) & 255) / 255;\r\n const g = ((rgbColor >> 8) & 255) / 255;\r\n const b = (rgbColor & 255) / 255;\r\n\r\n const max = Math.max(r, g, b);\r\n const min = Math.min(r, g, b);\r\n\r\n let h = 0;\r\n let s;\r\n const l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = s = 0; // grayscale\r\n } else {\r\n const d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n }\r\n\r\n h /= 6;\r\n }\r\n\r\n return { h, s, l };\r\n};\r\n\r\n/**\r\n * Transforms HSL color, represented as an object and transforms it to hex string.\r\n * @param hslColor accepts the HSL color like an object.\r\n */\r\nexport const hslToHex = (hslColor: { h: number; s: number; l: number }): string => {\r\n const { h, s, l } = hslColor;\r\n\r\n const hueToRgb = (p: number, q: number, t: number): number => {\r\n if (t < 0) {\r\n t += 1;\r\n }\r\n if (t > 1) {\r\n t -= 1;\r\n }\r\n if (t < 1 / 6) {\r\n return p + (q - p) * 6 * t;\r\n }\r\n if (t < 1 / 2) {\r\n return q;\r\n }\r\n if (t < 2 / 3) {\r\n return p + (q - p) * (2 / 3 - t) * 6;\r\n }\r\n return p;\r\n };\r\n\r\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n const p = 2 * l - q;\r\n\r\n const r = hueToRgb(p, q, h + 1 / 3);\r\n const g = hueToRgb(p, q, h);\r\n const b = hueToRgb(p, q, h - 1 / 3);\r\n\r\n const rgbColor = (Math.round(r * 255) << 16) | (Math.round(g * 255) << 8) | Math.round(b * 255);\r\n\r\n return `#${rgbColor.toString(16).padStart(6, '0')}`;\r\n};\r\n\r\n/**\r\n * Restricts the value to be within the range [0, 1].\r\n * @param value\r\n */\r\nconst clamp = (value: number): number => Math.min(Math.max(value, 0), 1);\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\r\nimport { debounceTime, startWith, Subject, combineLatest } from 'rxjs';\r\n\r\n/**\r\n * Checks if element ellipsis\r\n */\r\n@Directive({\r\n selector: '[uiEllipseText]',\r\n standalone: true,\r\n})\r\nexport class EllipseTextDirective implements OnInit {\r\n @Input() isMultiline = false;\r\n @Input() maxDiffPixels = 0;\r\n checkEllipsis$ = new Subject<void>();\r\n refreshEllipsis$ = new Subject<void>();\r\n\r\n @Input() set refresh(_: any) {\r\n this.refreshEllipsis$.next();\r\n }\r\n\r\n @Output() onChangeTextState = new EventEmitter<boolean>();\r\n\r\n @HostListener('window:resize')\r\n resize(): void {\r\n this.checkEllipsis$.next();\r\n }\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n ngOnInit() {\r\n combineLatest([this.checkEllipsis$.pipe(startWith(null)), this.refreshEllipsis$.pipe(startWith(null))]).pipe(\r\n debounceTime(100)).subscribe(() => {\r\n const textElement = this.el.nativeElement as HTMLElement;\r\n this.onChangeTextState.emit(this.isMultiline\r\n ? (textElement.clientHeight + this.maxDiffPixels) < textElement.scrollHeight\r\n : (textElement.clientWidth + this.maxDiffPixels) < textElement.scrollWidth\r\n );\r\n });\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\nimport {\r\n AfterViewInit,\r\n booleanAttribute,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { IconName } from '../icon/icon.model';\r\nimport {\r\n ButtonBadgeConfig,\r\n ButtonColor,\r\n ButtonIconPosition,\r\n ButtonSize,\r\n ButtonState,\r\n ButtonType,\r\n IconButtonSize,\r\n LinkUrlTarget\r\n} from './button.model';\r\nimport { adjustLightness } from '../../utils/color-contrast';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { TooltipPosition } from '@angular/material/tooltip';\r\nimport { FocusOrigin } from \"@angular/cdk/a11y\";\r\n\r\n@Component({\r\n selector: 'ui-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class ButtonComponent implements OnInit, AfterViewInit {\r\n @HostBinding('style.pointer-events')\r\n get enabled(): string {\r\n return this.disabled ? 'none' : 'all';\r\n }\r\n\r\n @ViewChild('tooltipElement') tooltipElement: ElementRef<HTMLElement>;\r\n\r\n /**\r\n * Define button height\r\n *\r\n * @type {ButtonSize}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() size: ButtonSize = 'big';\r\n /**\r\n * Background color of the button while in active state\r\n *\r\n * @type {ButtonColor}\r\n * @memberof ButtonComponent\r\n */\r\n @HostBinding('attr.btn-variant')\r\n @Input()\r\n variant: ButtonColor = 'primary';\r\n\r\n /**\r\n * Text content to appear on the button\r\n *\r\n * @memberof ButtonComponent\r\n */\r\n @Input() label = '';\r\n\r\n /**\r\n * Positioning of the icon (when existant)\r\n *\r\n * @type {ButtonIconPosition}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() iconPosition?: ButtonIconPosition = 'right';\r\n\r\n /**\r\n * Define if button has only icon without text\r\n *\r\n * @memberof ButtonComponent\r\n */\r\n @Input() justIcon = false;\r\n\r\n /**\r\n * Name of ui-icon\r\n *\r\n * @type {IconName}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() iconName: IconName = '';\r\n\r\n /**\r\n * Indicator if the button should be disabled\r\n *\r\n * @memberof ButtonComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Indicator if the loading icon should be shown\r\n *\r\n * @memberof ButtonComponent\r\n */\r\n @Input() loading = false;\r\n\r\n /**\r\n * Indicator of the button width\r\n *\r\n * @memberof ButtonComponent\r\n */\r\n @Input() fullWidth = false;\r\n\r\n /**\r\n * Url of button if it is a link\r\n *\r\n * @memberof ButtonComponent\r\n */\r\n @Input() url?: string;\r\n\r\n /**\r\n * Url's target of button if it is a link\r\n *\r\n * @type {@type {LinkUrlTarget}}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() urlTarget?: LinkUrlTarget;\r\n\r\n /**\r\n * Button value\r\n *\r\n * @memberof ButtonComponent\r\n */\r\n @Input() value?: string;\r\n\r\n /**\r\n * @property tooltip\r\n * @description The tooltip that is displayed on hover. Required for icon-button type\r\n * @type {string}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() tooltip = '';\r\n\r\n /**\r\n * @property isPremium\r\n * @description The icon that is displayed for Premium button\r\n * @type {boolean}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() isPremium = false;\r\n\r\n /**\r\n * The type of the button.\r\n *\r\n * @type {ButtonType}\r\n * @memberof ButtonComponent\r\n * @default 'button'\r\n */\r\n @Input() type: ButtonType = 'button';\r\n\r\n /**\r\n * Color of the button.\r\n * Defaults to Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() companyColor: string | null = '';\r\n\r\n /**\r\n * Config for the button badge variation\r\n * @type {ButtonBadgeConfig}\r\n * @property badgeType Type of badge on the button\r\n * @property badgeLabel Label text for the badge\r\n * @property badgeNotificationAmount The amount for notification in the badge\r\n */\r\n @Input() buttonBadgeConfig: ButtonBadgeConfig | undefined;\r\n\r\n /**\r\n *\r\n * Defines the application theme where buttons is used\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof ButtonComponent\r\n */\r\n @HostBinding('attr.theme')\r\n @Input()\r\n applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n *\r\n * Disabled button scale on click\r\n *\r\n * @type {boolean}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() disabledScaleOnClick = false;\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {boolean}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() ariaRequired = false;\r\n\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() ariaLabelledby = '';\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() ariaDescribedby = '';\r\n\r\n /**\r\n * Prevents default button click behavior\r\n * @type {boolean}\r\n * @memberof ButtonComponent\r\n */\r\n @Input({ transform: booleanAttribute }) preventDefault = false;\r\n\r\n /**\r\n * Ghost variant with white background\r\n * @type {boolean}\r\n * @memberof ButtonComponent\r\n */\r\n @Input({ transform: booleanAttribute }) hasBackground = false;\r\n\r\n /**\r\n * Sets tooltip position\r\n *\r\n * @type {TooltipPosition}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() tooltipPosition: TooltipPosition = 'below';\r\n\r\n @Input() role: string = 'button';\r\n\r\n @Output() buttonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n @Output() buttonHoverEvent: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n @ViewChild('buttonElement', { static: false }) buttonElement: MatButton;\r\n\r\n\r\n get isDisabled(): boolean {\r\n return this.disabled;\r\n }\r\n\r\n @HostBinding('style.--color')\r\n get compColor() {\r\n return this.getCompanyColor;\r\n }\r\n\r\n classCss: string;\r\n styleCss: any;\r\n isButtonLink: boolean;\r\n isLabel: boolean;\r\n buttonState: ButtonState;\r\n hover = false;\r\n iconButtonSize: IconButtonSize = '40';\r\n allowButtonTypeForPremium: ButtonColor[] = ['secondary', 'primary', 'ghost', 'outlined', 'destructive'];\r\n isFilledIcon: boolean;\r\n coloredIcons = ['Google-in-line', 'Google', 'Google-filled'];\r\n labelEllipsis = false;\r\n icon: IconName = '';\r\n\r\n get typeIncluded(): boolean {\r\n return this.allowButtonTypeForPremium.includes(this.variant);\r\n }\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.classCss = this.setCssClass();\r\n this.styleCss = this.setCssStyle();\r\n this.isButtonLink = this.showButtonLink();\r\n this.isLabel = this.showLabel();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['disabled']) {\r\n this.buttonState = 'default';\r\n }\r\n if (!this.applicationTheme) {\r\n this.applicationTheme = 'light';\r\n }\r\n if (changes['type']) {\r\n this.isButtonLink = this.showButtonLink();\r\n }\r\n if (changes['loading']) {\r\n this.isLabel = this.showLabel();\r\n }\r\n if (changes['iconName']) {\r\n this.icon = changes['iconName'].currentValue;\r\n }\r\n if (\r\n changes['type'] ||\r\n changes['fullWidth'] ||\r\n changes['iconName'] ||\r\n changes['justIcon'] ||\r\n changes['iconPosition'] ||\r\n changes['disabled'] ||\r\n changes['companyColor'] ||\r\n changes['variant'] ||\r\n changes['applicationTheme']\r\n ) {\r\n this.classCss = this.setCssClass();\r\n this.styleCss = this.setCssStyle();\r\n }\r\n if (changes['variant']?.currentValue === 'icon-button' || (changes['variant']?.currentValue === 'menuTrigger' && this.applicationTheme !== 'classic')) {\r\n this.iconButtonSize = this.setIconButtonSize();\r\n }\r\n\r\n this.isFilledIcon = this.applicationTheme !== 'classic' && (this.variant === 'primary' || this.variant === 'secondary');\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.tooltipElement.nativeElement.onclick = ev => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n };\r\n if (this.variant === 'icon-button' && !this.tooltip) {\r\n console.warn('ui-button ButtonComponent\\n [tooltip] is required for [type] icon-button!');\r\n } else if (this.variant === 'destructive' && !this.icon && !this.loading && this.applicationTheme !== 'classic') {\r\n console.warn('ui-button ButtonComponent\\n [icon] is required for [type] destructive');\r\n }\r\n }\r\n\r\n buttonClick(event: Event): void {\r\n if (this.preventDefault) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n this.buttonClickEvent.emit(event);\r\n }\r\n\r\n buttonHover(event: Event): void {\r\n if (event.type === 'mouseenter') {\r\n this.hover = true;\r\n this.buttonHoverEvent.emit(event);\r\n this.buttonState = 'hover';\r\n if (this.shouldChangeFilledStatus && this.icon) {\r\n this.icon = this.getIconName(this.iconName, '-filled');\r\n }\r\n } else {\r\n this.hover = false;\r\n if (this.shouldChangeFilledStatus && this.icon) {\r\n this.icon = this.iconName;\r\n }\r\n this.buttonState = 'default';\r\n }\r\n\r\n this.styleCss = this.setCssStyle();\r\n }\r\n\r\n //Show or hide label\r\n showLabel(): boolean {\r\n return !this.loading;\r\n }\r\n\r\n //Set css class according inputs\r\n setCssClass(): string {\r\n const width = this.fullWidth ? 'full-width' : '';\r\n const hasIcon = this.iconName === null ? '' : 'icon';\r\n const justIcon = this.justIcon || this.variant === 'icon-button' ? 'only-icon' : '';\r\n const iconPosition = this.iconPosition === undefined ? '' : this.iconPosition;\r\n const disabled = this.disabled && this.variant === 'primary' ? 'primary-disabled' : '';\r\n const variant = this.variant === 'ghost' && this.applicationTheme === 'classic' ? 'outlined' : this.variant;\r\n const companyColor = this.companyColor ? 'has-company-color' : '';\r\n return `${this.size} ${iconPosition} ${variant} ${width} ${hasIcon} ${justIcon} ${disabled} ${companyColor} ${this.applicationTheme}-theme`;\r\n }\r\n\r\n setCssStyle(): any {\r\n this.buttonState = this.disabled ? 'disabled' : this.buttonState;\r\n const styleObj: any = {};\r\n\r\n if ((this.variant === 'primary' || this.variant === 'text') && this.applicationTheme !== 'classic' && (this.buttonState === 'hover' || this.buttonState === 'pressed')) {\r\n styleObj[this.variant === 'primary' ? 'background-color' : 'color'] = adjustLightness(this.getCompanyColor, this.buttonState);\r\n if (this.variant === 'text') {\r\n styleObj['--active-color'] = this.companyColor ? adjustLightness(this.getCompanyColor, this.buttonState) : '#666666';\r\n }\r\n } else if ((this.variant === 'primary' || this.variant === 'text') && this.applicationTheme === 'classic' && this.buttonState !== 'default') {\r\n styleObj[this.variant === 'primary' ? 'background-color' : 'color'] = adjustLightness(this.getCompanyColor, this.buttonState, 'classic');\r\n } else if (this.getCompanyColor && (this.variant === 'link' || this.variant === 'tertiary' || this.variant === 'icon-button')) {\r\n styleObj['color'] = this.getCompanyColor;\r\n } else if (this.hasBackground) {\r\n styleObj['--ghost-background'] = '#ffffff';\r\n }\r\n return styleObj;\r\n }\r\n\r\n //Show or hide spinner\r\n get showSpinner(): boolean {\r\n const isNotTab = this.variant !== 'tab';\r\n const isNotLink = this.variant !== 'link';\r\n const isLoading = this.loading === true;\r\n return isLoading && isNotTab && isNotLink;\r\n }\r\n\r\n //Show button with <button> or <a> tag\r\n showButtonLink(): boolean {\r\n return this.variant !== 'link';\r\n }\r\n\r\n setIconButtonSize(): IconButtonSize {\r\n return this.size === 'big' ? '40' : this.size === 'small' ? '24' : '32';\r\n }\r\n\r\n onPressed(ev: Event): void {\r\n if (ev.type === 'mousedown') {\r\n this.buttonState = 'pressed';\r\n } else {\r\n this.buttonState = this.hover ? 'hover' : 'default';\r\n }\r\n\r\n this.styleCss = this.setCssStyle();\r\n }\r\n\r\n focus(origin?: FocusOrigin): void {\r\n this.buttonElement.focus(origin)\r\n }\r\n\r\n get getCompanyColor(): string {\r\n return this.companyColor || (this.variant === 'text' ? this.applicationTheme === 'dark' ? '#ffffff' : '#242424' : (this.applicationTheme === 'classic' ? '#46A997' : '#D410AA'));\r\n }\r\n\r\n get shouldChangeFilledStatus(): boolean {\r\n return this.applicationTheme !== 'classic' && this.variant !== 'primary' && this.variant !== 'secondary' && !this.coloredIcons.includes(this.icon);\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n if (event.key === ' ') {\r\n event.preventDefault();\r\n const target = event.target as HTMLElement;\r\n target.click();\r\n }\r\n\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n this.buttonState = 'pressed';\r\n this.styleCss = this.setCssStyle();\r\n }\r\n }\r\n\r\n onKeyup(event: KeyboardEvent): void {\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n this.buttonState = this.hover ? 'hover' : 'default';\r\n this.styleCss = this.setCssStyle();\r\n }\r\n }\r\n\r\n onLabelEllipsisChange(state: boolean): void {\r\n this.labelEllipsis = state;\r\n }\r\n\r\n getIconName(iconName: string, defaultValue: string): IconName {\r\n if (iconName.includes('filled')) {\r\n return iconName.replace(/filled/, 'in-line') as IconName\r\n } else if (iconName.includes('in-line')) {\r\n return iconName.replace(/in-line/, 'filled') as IconName\r\n } else {\r\n return iconName + defaultValue as IconName;\r\n }\r\n }\r\n}\r\n","<div #tooltipElement class=\"tooltip\"\r\n [matTooltip]=\"tooltip ? tooltip : labelEllipsis ? label : ''\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n></div>\r\n<div\r\n class=\"button-wrapper\"\r\n [ngClass]=\"{ 'full-width': fullWidth, 'rounded-icon': applicationTheme !== 'classic' && icon && !label, link: !isButtonLink }\"\r\n>\r\n <div class=\"button-container\"\r\n [ngClass]=\"{ 'disabled': disabled, 'button-scale': buttonState === 'pressed' && applicationTheme !== 'classic' && !disabledScaleOnClick }\"\r\n >\r\n <span *ngIf=\"isPremium && typeIncluded\" class=\"right-top\">\r\n <img [attr.src]=\"'/images/premium.svg'\" [alt]=\"'premium-icon'\">\r\n </span>\r\n <ui-badge\r\n id=\"badge\"\r\n *ngIf=\"buttonBadgeConfig?.badgeType\"\r\n [rebrandColor]=\"buttonBadgeConfig?.rebrandColor ?? 'brand'\"\r\n [variant]=\"buttonBadgeConfig!.badgeType!\"\r\n [label]=\"buttonBadgeConfig?.badgeLabel ?? ''\"\r\n [notificationsAmount]=\"buttonBadgeConfig?.badgeNotificationAmount ?? 0\"\r\n class=\"right-top\"\r\n [ngClass]=\"{ 'badge-primary': buttonBadgeConfig?.badgeType === 'primary', 'badge-notification': buttonBadgeConfig?.badgeType === 'notification' }\"\r\n ></ui-badge>\r\n <button\r\n [style]=\"'--icon-button-size:' + iconButtonSize + 'px'\"\r\n [ngClass]=\"classCss\"\r\n [ngStyle]=\"styleCss\"\r\n [disabled]=\"disabled\"\r\n (click)=\"buttonClick($event)\"\r\n (mouseleave)=\"buttonHover($event)\"\r\n (mouseenter)=\"buttonHover($event)\"\r\n (mousedown)=\"onPressed($event)\"\r\n (mouseup)=\"onPressed($event)\"\r\n (keydown)=\"onKeydown($event)\"\r\n (keyup)=\"onKeyup($event)\"\r\n *ngIf=\"isButtonLink\"\r\n [attr.aria-required]=\"ariaRequired\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"'labelledby'\"\r\n [attr.aria-describedby]=\"'describedby'\"\r\n [attr.aria-disabled]=\"disabled\"\r\n [type]=\"type\"\r\n [disableRipple]=\"applicationTheme !== 'classic'\"\r\n [matTooltip]=\"tooltip ? tooltip : labelEllipsis ? label : ''\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n [matTooltipPosition]=\"tooltipPosition\"\r\n #buttonElement\r\n [attr.role]=\"role\"\r\n mat-flat-button>\r\n <span id=\"describedby\" [style.display]=\"'none'\">\r\n {{ (isPremium ? (label + ' ' + ('BUTTON.PREMIUM_FEATURE' | uiTranslate | async)) : ariaDescribedby) }}\r\n </span>\r\n <span id=\"labelledby\" [style.display]=\"'none'\">\r\n {{ ariaLabelledby }}\r\n </span>\r\n <ng-container *ngIf=\"showSpinner; else icons\">\r\n <span class=\"spinner-wrapper\">\r\n <mat-spinner class=\"position-spinner\" aria-label=\"loading\" mode=\"indeterminate\" diameter=\"24\"></mat-spinner>\r\n </span>\r\n </ng-container>\r\n <ng-template #icons>\r\n <span class=\"icon-only-wrapper\" *ngIf=\"justIcon && !!icon\">\r\n <span\r\n class=\"icon only\"\r\n role=\"label\"\r\n >\r\n <ui-icon\r\n [color]=\"'inherit'\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [name]=\"icon\"\r\n [filled]=\"isFilledIcon\"\r\n [useFullIconName]=\"this.variant === 'primary' || this.variant === 'secondary'\"\r\n [size]=\"size === 'small' ? '16' : '24'\"\r\n ></ui-icon>\r\n </span>\r\n </span>\r\n\r\n <span class=\"icon-label-wrapper\" [ngClass]=\"{'center-text': iconName === ''}\" *ngIf=\"!justIcon\">\r\n <span\r\n class=\"icon\"\r\n *ngIf=\"iconPosition === 'left' && !!iconName\"\r\n aria-hidden=\"true\"\r\n >\r\n <ui-icon\r\n [color]=\"'inherit'\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [name]=\"icon\"\r\n [filled]=\"isFilledIcon\"\r\n [useFullIconName]=\"this.variant === 'primary' || this.variant === 'secondary'\"\r\n [size]=\"size === 'small' ? '16' : '24'\"\r\n ></ui-icon>\r\n </span>\r\n <span\r\n *ngIf=\"isLabel\"\r\n class=\"label\"\r\n id=\"label\"\r\n uiEllipseText\r\n [isMultiline]=\"true\"\r\n (onChangeTextState)=\"onLabelEllipsisChange($event)\"\r\n >\r\n {{ label }}\r\n </span>\r\n <span class=\"icon\" *ngIf=\"iconPosition === 'right' && !!icon\" aria-hidden=\"true\"><ui-icon\r\n [color]=\"'inherit'\" [applicationTheme]=\"applicationTheme\" [name]=\"icon\" [filled]=\"isFilledIcon\"\r\n [size]=\"size === 'small' ? '16' : '24'\" [useFullIconName]=\"this.variant === 'primary' || this.variant === 'secondary'\"></ui-icon></span>\r\n </span>\r\n </ng-template>\r\n </button>\r\n <a\r\n #buttonElement\r\n [ngClass]=\"classCss\"\r\n [ngStyle]=\"styleCss\"\r\n [disabled]=\"disabled\"\r\n (click)=\"buttonClick($event)\"\r\n (mouseenter)=\"buttonHover($event)\"\r\n (mouseleave)=\"buttonHover($event)\"\r\n (mousedown)=\"onPressed($event)\"\r\n (mouseup)=\"onPressed($event)\"\r\n (keydown)=\"onKeydown($event);\"\r\n (keyup)=\"onKeyup($event)\"\r\n [disableRipple]=\"true\"\r\n *ngIf=\"!isButtonLink\"\r\n [attr.aria-required]=\"ariaRequired\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"'labelledby-link'\"\r\n [attr.aria-describedby]=\"'describedby-link'\"\r\n [attr.aria-disabled]=\"disabled\"\r\n [matTooltip]=\"tooltip ? tooltip : labelEllipsis ? label : ''\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n role=\"link\"\r\n [href]=\"url\"\r\n [target]=\"urlTarget\"\r\n mat-flat-button>\r\n <span id=\"describedby-link\" [style.display]=\"'none'\">\r\n {{ ariaDescribedby }}\r\n </span>\r\n <span id=\"labelledby-link\" [style.display]=\"'none'\">\r\n {{ ariaLabelledby }}\r\n </span>\r\n <span class=\"icon-label-wrapper\">\r\n {{ label }}\r\n </span>\r\n </a>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BadgeComponent } from './badge.component';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n declarations: [BadgeComponent],\r\n imports: [CommonModule, IconComponentModule, MatTooltipModule],\r\n exports: [BadgeComponent],\r\n})\r\nexport class BadgeComponentModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { IconComponentModule } from '../../components/icon/icon.component.module';\r\nimport { ButtonComponent } from './button.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { BadgeComponentModule } from '../badge/badge.component.module';\r\nimport { EllipseTextDirective } from \"../../directives/ellipse-text.directive\";\r\nimport { MatRadioModule } from \"@angular/material/radio\";\r\nimport { UiTranslatePipe } from \"../../pipes/ui-translate.pipe\";\r\n\r\n@NgModule({\r\n declarations: [ButtonComponent],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n IconComponentModule,\r\n MatProgressSpinnerModule,\r\n MatTooltipModule,\r\n BadgeComponentModule,\r\n EllipseTextDirective,\r\n MatRadioModule,\r\n UiTranslatePipe,\r\n ],\r\n exports: [ButtonComponent],\r\n providers: [],\r\n})\r\nexport class ButtonComponentModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AccordionComponent } from './accordion.component';\r\nimport { IconComponentModule } from \"../icon/icon.component.module\";\r\nimport { ButtonComponentModule } from \"../button/button.component.module\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AccordionComponent\r\n ],\r\n exports: [\r\n AccordionComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n IconComponentModule,\r\n ButtonComponentModule,\r\n MatTooltipModule,\r\n MatExpansionModule\r\n ]\r\n})\r\nexport class AccordionComponentModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { ProgressBarComponent } from './progress-bar.component';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [ProgressBarComponent],\r\n imports: [CommonModule, MatProgressBarModule, UiTranslatePipe],\r\n exports: [ProgressBarComponent],\r\n providers: [],\r\n})\r\nexport class ProgressBarComponentModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, KeyValuePipe } from '@angular/common';\r\nimport { UniversalSkillsReportComponent } from './universal-skills-report.component';\r\nimport { AccordionComponentModule } from '../accordion/accordion.component.module';\r\nimport { BadgeComponentModule } from '../badge/badge.component.module';\r\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\r\nimport { MemoizeFuncPipe } from '../../pipes/memoize-func.pipe';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { OrdinalSuffixPipe } from '../../pipes/ui-ordinal-suffix.pipe';\r\n\r\n@NgModule({\r\n declarations: [UniversalSkillsReportComponent],\r\n imports: [\r\n CommonModule,\r\n AccordionComponentModule,\r\n BadgeComponentModule,\r\n ProgressBarComponentModule,\r\n MemoizeFuncPipe,\r\n UiTranslatePipe,\r\n OrdinalSuffixPipe,\r\n KeyValuePipe,\r\n ],\r\n exports: [UniversalSkillsReportComponent]\r\n})\r\nexport class UniversalSkillsReportComponentModule {\r\n}\r\n","import { IconName } from '../components/icon/icon.model';\r\nimport { AlertVariant } from './alert-bar.model';\r\n\r\nexport const alertBarsUtil = {\r\n //Set css class and iconName according type\r\n setIcon: (alertType: string): IconName => {\r\n if (alertType === 'success') {\r\n return 'Round-check';\r\n }\r\n if (alertType === 'info') {\r\n return 'Info';\r\n }\r\n if (alertType === 'warning') {\r\n return 'Warning';\r\n }\r\n if (alertType === 'error') {\r\n return 'Error';\r\n }\r\n return '';\r\n },\r\n\r\n //Set cssClass for fixed or static position\r\n setPosition: (fixed: boolean): string => {\r\n if (fixed === true) {\r\n return 'fixed';\r\n } else {\r\n return 'static';\r\n }\r\n },\r\n\r\n //Set css class for alertbanner\r\n setCssClass: (fullWidth: boolean, type: string, position: string, variant: AlertVariant = 'banner'): string => {\r\n const isFullWidth = !!fullWidth ? 'full-width' : '';\r\n const _type = variant === 'banner' ? type : (type === 'error' || type === 'success') ? 'info' : type;\r\n return `${_type} ${position} ${isFullWidth} ${variant}`;\r\n },\r\n};\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Optional\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { IconName } from '../../components/icon/icon.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { AlertBarType, AlertVariant } from '../../utils/alert-bar.model';\r\nimport { alertBarsUtil } from '../../utils/alert-bars.utils';\r\nimport { LinkTargetType } from './alert-banner.model';\r\n\r\n@Component({\r\n selector: 'ui-alert-banner',\r\n templateUrl: './alert-banner.component.html',\r\n styleUrls: ['./alert-banner.component.scss'],\r\n animations: [\r\n trigger('openClose', [\r\n transition(':enter', [animate('0.2s ease-out', style({ opacity: 1 }))]),\r\n transition(':leave', [animate('0.2s ease-in', style({ opacity: 0 }))]),\r\n ]),\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AlertBannerComponent implements OnInit {\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private domSanitizer: DomSanitizer,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n /**\r\n * Alert Banner type\r\n *\r\n * @type {AlertBarType}\r\n * @default 'success'\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() alertType: AlertBarType = 'success';\r\n\r\n /**\r\n * Alert Banner variant\r\n *\r\n * @type {AlertVariant}\r\n * @default 'banner'\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() alertVariant: AlertVariant = 'banner';\r\n\r\n /**\r\n * Alert banner message\r\n *\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() set message(msg: string) {\r\n this._message = this.domSanitizer.bypassSecurityTrustHtml(msg);\r\n }\r\n\r\n /**\r\n * Include dismmiss button\r\n *\r\n * @default true\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() includeDismissButton = true;\r\n\r\n /**\r\n * Include shadow or not\r\n *\r\n * @default false\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() shadow = false;\r\n\r\n /**\r\n * Link text that will appended at the end of message\r\n *\r\n * @default ''\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() linkText? = '';\r\n\r\n /**\r\n * Link url\r\n *\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() linkUrl?: string;\r\n\r\n /**\r\n * Link target\r\n *\r\n * @type {@type {LinkTargetType}}\r\n * @default '_blank'\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() linkTarget?: LinkTargetType = '_blank';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @default 'light'\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Sets the full width\r\n *\r\n * @type {boolean}\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() isFullWidth: boolean | undefined;\r\n\r\n /**\r\n * Close button tooltip\r\n *\r\n * @type {string}\r\n * @default ''\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() closeButtonTooltip = '';\r\n\r\n /**\r\n * Shows icon\r\n *\r\n * @type {boolean}\r\n * @default true\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() hasIcon = true;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() ariaDescribedby = '';\r\n\r\n @Input() set secondaryAlerts(alerts:string[]){\r\n this._secondaryAlerts = alerts.map( alert => this.domSanitizer.bypassSecurityTrustHtml(alert));\r\n }\r\n\r\n @HostBinding('class.display-none') get isDismissed() {\r\n return this.dismissAlertBanner;\r\n }\r\n\r\n iconName: IconName;\r\n visible = true;\r\n fullWidth: boolean;\r\n fixed: boolean;\r\n position: string;\r\n cssClass: string;\r\n _message: SafeHtml = '';\r\n _secondaryAlerts: SafeHtml[] = [];\r\n dismissAlertBanner = false;\r\n\r\n ngOnInit(): void {\r\n this.iconName = alertBarsUtil.setIcon(this.alertType);\r\n this.position = alertBarsUtil.setPosition(this.fixed);\r\n this.fixed = this.alertVariant === 'banner' ? true : false;\r\n this.fullWidth = this.isFullWidth ?? this.alertVariant === 'banner';\r\n this.cssClass = alertBarsUtil.setCssClass(this.fullWidth, this.alertType, this.position, this.alertVariant);\r\n }\r\n\r\n //Hide snackbar when dismiss button is clicked\r\n dismissClick() {\r\n this.visible = false;\r\n setTimeout(() => {\r\n this.dismissAlertBanner = true;\r\n }, 200);\r\n }\r\n}\r\n","<div\r\n [ngClass]=\"cssClass\"\r\n [@openClose]\r\n *ngIf=\"visible\"\r\n role=\"alert\"\r\n class=\"alert-container\"\r\n [attr.theme]=\"applicationTheme\"\r\n [class.shadow]=\"alertVariant === 'callout' && shadow\"\r\n [attr.aria-live]=\"(alertType === 'error' || alertType === 'warning') ? 'assertive' : 'polite'\"\r\n [attr.aria-describedby]=\"'describedby'\"\r\n [attr.aria-labelledby]=\"'labelledby'\"\r\n [tabIndex]=\"0\"\r\n>\r\n <span style=\"position: absolute; left: -9999px\" id=\"labelledby\">{{ ('ALERT_BANNER.' + (alertType | uppercase)) | uiTranslate | async }}</span>\r\n <span [style.display]=\"'none'\" id=\"describedby\">{{ ariaDescribedby }}</span>\r\n <div class=\"primary-alert-container\">\r\n <div class=\"alert-text\">\r\n @if (hasIcon) {\r\n <ui-icon class=\"left-icon\" [name]=\"iconName\" size=\"24\" [applicationTheme]=\"applicationTheme\"></ui-icon>\r\n }\r\n <span [innerHTML]=\"_message\"></span>\r\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\r\n </div>\r\n <ui-button\r\n *ngIf=\"includeDismissButton && applicationTheme === 'classic'\"\r\n variant=\"text\"\r\n [justIcon]=\"true\"\r\n class=\"close\"\r\n iconName=\"Close\"\r\n (buttonClickEvent)=\"dismissClick()\"\r\n ></ui-button>\r\n <ui-button\r\n *ngIf=\"includeDismissButton && applicationTheme !== 'classic' && alertVariant !== 'callout'\"\r\n class=\"right-icon\"\r\n [variant]=\"'icon-button'\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [iconName]=\"'Close'\"\r\n [size]=\"'small'\"\r\n [justIcon]=\"true\"\r\n [tooltip]=\"(closeButtonTooltip || ('COMMON.CLOSE' | uiTranslate | async))!\"\r\n (click)=\"dismissClick()\"\r\n ></ui-button>\r\n </div>\r\n <div class=\"secondary-alerts-container\">\r\n <div class=\"alert-text\" *ngFor=\"let alert of _secondaryAlerts\">\r\n <ui-icon class=\"left-icon\" [name]=\"'Stop-filled'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\r\n <span [innerHTML]=\"alert\"></span>\r\n </div>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { AlertBannerComponent } from './alert-banner.component';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [AlertBannerComponent],\r\n imports: [CommonModule, ButtonComponentModule, IconComponentModule, UiTranslatePipe],\r\n exports: [AlertBannerComponent],\r\n})\r\nexport class AlertBannerComponentModule {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Optional,\r\n Output,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { CardSize, CardVariant } from './card.model';\r\n\r\n@Component({\r\n selector: 'ui-card',\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CardComponent implements OnChanges, OnInit {\r\n /**\r\n * Card size. Defaults \"medium\".\r\n *\r\n * @type {CardSize}\r\n * @memberof CardComponent\r\n */\r\n @Input() size: CardSize = 'medium';\r\n\r\n /**\r\n * Card variants. Defaults \"default\".\r\n *\r\n * @type {CardVariant}\r\n * @memberof CardComponent\r\n */\r\n @Input() variant: CardVariant = 'default';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof CardComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Show errors below card.\r\n *\r\n * @type {string[]}\r\n * @memberof CardComponent\r\n */\r\n @Input() set errors(errors: string[]) {\r\n this.safeErrors = errors?.filter(Boolean).map(error => this.domSanitizer.bypassSecurityTrustHtml(error));\r\n }\r\n\r\n /**\r\n * Marks card as selected\r\n *\r\n * @type {boolean}\r\n * @memberof CardComponent\r\n */\r\n @Input() selected = false;\r\n\r\n /**\r\n * Marks card as readonly. Defaults \"false\".\r\n *\r\n * @type {CardVariant}\r\n * @memberof CardComponent\r\n */\r\n @Input() allowSelect = false;\r\n\r\n /**\r\n * Emits when card is being selected\r\n */\r\n @Output() cardSelected = new EventEmitter<boolean>();\r\n\r\n safeErrors: SafeHtml[];\r\n\r\n classes = '';\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private domSanitizer: DomSanitizer\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.classes = `card-size-${this.size ?? 'medium'} ${this.cardVariant ?? 'default'}`;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.classes = `card-size-${this.size ?? 'medium'} ${this.cardVariant ?? 'default'}`;\r\n }\r\n\r\n get cardVariant(): CardVariant {\r\n return this.safeErrors?.length ? 'error' : this.variant;\r\n }\r\n\r\n get isSelected(): boolean {\r\n // educative, premium, ai, actionDriver and neutral variants shouldn't have any selected/interactive states\r\n return (\r\n this.selected &&\r\n this.variant !== 'educative' &&\r\n this.variant !== 'premium' &&\r\n this.variant !== 'ai' &&\r\n this.variant !== 'actionDriver' &&\r\n this.variant !== 'neutral'\r\n );\r\n }\r\n\r\n selectCard() {\r\n if (\r\n !this.allowSelect &&\r\n this.variant !== 'educative' &&\r\n this.variant !== 'premium' &&\r\n this.variant !== 'ai' &&\r\n this.variant !== 'actionDriver' &&\r\n this.variant !== 'neutral'\r\n ) {\r\n this.selected = true;\r\n this.cardSelected.emit(this.selected);\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"card-container\"\r\n (keydown.enter)=\"selectCard()\"\r\n (keydown.space)=\"selectCard()\"\r\n (click)=\"selectCard()\"\r\n [ngClass]=\"[classes, isSelected ? 'selected' : '']\"\r\n [attr.theme]=\"applicationTheme\"\r\n tabindex=\"0\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n<div class=\"errors\" *ngIf=\"safeErrors?.length\">\r\n <div class=\"error\" *ngFor=\"let error of safeErrors\">\r\n <ui-icon [size]=\"'24'\" [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span [innerHTML]=\"error\"></span>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { CardComponent } from './card.component';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\n\r\n@NgModule({\r\n declarations: [CardComponent],\r\n imports: [CommonModule, IconComponentModule],\r\n exports: [CardComponent],\r\n})\r\nexport class CardComponentModule {}\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { errorType } from './validation-error.model';\r\nimport { NgControl } from '@angular/forms';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-validation-error',\r\n templateUrl: './validation-error.component.html',\r\n styleUrls: ['./validation-error.component.scss'],\r\n})\r\nexport class ValidationErrorComponent {\r\n @Input() ngControl: NgControl;\r\n @Input() touchedOn = true;\r\n @Input() errorMessage = '';\r\n\r\n @Input() label: string | undefined | null;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof ValidationErrorComponent\r\n */\r\n @HostBinding('attr.theme')\r\n @Input()\r\n applicationTheme: ApplicationTheme = 'light';\r\n\r\n getErrorValue(type: errorType): number {\r\n const ngControlErrors: any = this.ngControl.errors;\r\n switch (type) {\r\n case 'maxlength':\r\n return ngControlErrors.maxlength.requiredLength;\r\n case 'minlength':\r\n return ngControlErrors.minlength.requiredLength;\r\n case 'max':\r\n return ngControlErrors.max.max;\r\n case 'min':\r\n return ngControlErrors.min.min;\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n translationContextErrors = 'ERRORS.';\r\n}\r\n","<div class=\"errors\" *ngIf=\"ngControl?.hasError('maxlength')\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span>{{ translationContextErrors + 'MAX_LENGTH' | uiTranslate : { maxlength: getErrorValue('maxlength') } | async }}</span>\r\n</div>\r\n\r\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('minlength')\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span>{{ translationContextErrors + 'MIN_LENGTH' | uiTranslate : { maxlength: getErrorValue('minlength') } | async }}</span>\r\n</div>\r\n\r\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('min')\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span>{{ translationContextErrors + 'MIN' | uiTranslate : { min: getErrorValue('min') } | async }}</span>\r\n</div>\r\n\r\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('max')\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span>{{ translationContextErrors + 'MAX' | uiTranslate : { max: getErrorValue('max') } | async }}</span>\r\n</div>\r\n\r\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('required') && (touchedOn ? ngControl?.touched : true)\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span>{{ translationContextErrors + (label ? 'REQUIRED_FIELD' : 'REQUIRED') | uiTranslate : { label } | async }}</span>\r\n</div>\r\n\r\n<div class=\"errors\" *ngIf=\"ngControl?.hasError('email')\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span>{{ translationContextErrors + 'EMAIL_INCORRECT' | uiTranslate | async }}</span>\r\n</div>\r\n\r\n<div class=\"custom-errors\" *ngIf=\"errorMessage\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span>{{ errorMessage }}</span>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'hasValidationError',\r\n standalone: true,\r\n})\r\nexport class HasValidationErrorPipe implements PipeTransform {\r\n /**\r\n * List of the error types that are handled\r\n */\r\n private readonly errorTypes = ['maxlength', 'minlength', 'min', 'max', 'required', 'email'];\r\n\r\n /**\r\n * Checks if the error on the NgControl is in the list of handled error types\r\n * @param value\r\n */\r\n transform(value: Record<string, any> | null | undefined): boolean {\r\n return value ? !!Object.keys(value).filter(key => this.errorTypes.includes(key)).length : false;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n DoCheck,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { MatCheckbox, MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport { Alignment } from '../../models/checkbox.model';\r\nimport { FocusableOption, FocusMonitor } from '@angular/cdk/a11y';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ui-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n host: {\r\n // Needs to be removed since it causes some a11y issues. (https://github.com/angular/components/issues/21266)\r\n '[attr.tabindex]': 'null',\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.aria-describedby]': 'null',\r\n // Note: under normal conditions focus shouldn't land on this element, however it may be\r\n // programmatically set, for example inside of a focus trap, in this case we want to forward\r\n // the focus to the mat-checkbox element.\r\n '(focus)': 'checkboxElement.focus()',\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\nexport class CheckboxComponent implements OnInit, FocusableOption, ControlValueAccessor, DoCheck, OnChanges, AfterViewInit, OnDestroy {\r\n /**\r\n * Determines whether the checkbox is disabled.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Determines whether the checkbox is checked.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() checked = false;\r\n\r\n /**\r\n * Determines whether the checkbox is indeterminate.\r\n * It can be used to represent a checkbox with three states, e.g. a checkbox that represents a nested list of checkable items.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() indeterminate = false;\r\n\r\n /**\r\n * Determines whether the checkbox color.\r\n * Default: Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof CheckboxComponent\r\n */\r\n @HostBinding('style.--color')\r\n @Input() companyColor: string | null;\r\n\r\n /**\r\n * Name value will be applied to the input element if present.\r\n *\r\n * @type {string}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() name = '';\r\n\r\n /**\r\n * Text content will be applied to the input element if present.\r\n *\r\n * @type {string}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() label = '';\r\n\r\n /**\r\n * Determines whether the checkbox is a multiple choice cell.\r\n * Default: false\r\n *\r\n * @type {boolean}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() multiple = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {boolean}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() ariaRequired = false;\r\n\r\n /**\r\n * Defines if checkbox has error\r\n *\r\n * @type {boolean}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() hasError = false;\r\n\r\n /**\r\n * Hide in-build errors for Reactive Forms\r\n *\r\n * @type {number}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() hideBuiltInErrors = false;\r\n\r\n /**\r\n * Hide label in errors\r\n *\r\n * @type {number}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() hideLabelInErrors = false;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() ariaLabelledby = '';\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() ariaDescribedby = '';\r\n\r\n /**\r\n * Truncate text if it is too long\r\n * @type {string}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() truncateText = false;\r\n\r\n /**\r\n * Text alignment\r\n * @type {'center' | 'top'}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() alignment: Alignment = 'center';\r\n\r\n /**\r\n * Sets the tab index for the checkbox component.\r\n * This determines the order in which elements receive focus when the user navigates through them using the Tab key.\r\n * Default value is 0.\r\n *\r\n * @type {number}\r\n * @memberof CheckboxComponent\r\n */\r\n @Input() tabIndex = 0;\r\n\r\n /**\r\n * Event emitted when the checkbox's checked value changes.\r\n *\r\n * @type {boolean}\r\n * @memberof CheckboxComponent\r\n */\r\n @Output() changed = new EventEmitter<boolean>();\r\n\r\n /**\r\n * @ignore\r\n */\r\n onChange = (_: any) => {};\r\n\r\n /**\r\n * @ignore\r\n */\r\n onTouch = () => {};\r\n\r\n showTooltip = false;\r\n classMultiple: string;\r\n\r\n @ViewChild('tooltip') tooltipElement: MatTooltip;\r\n @ViewChild('checkbox') checkboxElement: MatCheckbox;\r\n protected origin: string | null = null;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private cdr: ChangeDetectorRef,\r\n @Optional() @Self() public ngControl: NgControl,\r\n private focusMonitor: FocusMonitor,\r\n private ngZone: NgZone,\r\n private destroyRef: DestroyRef,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\n ngOnChanges(): void {\r\n this.setCompanyColor();\r\n }\r\n\r\n /**\r\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\r\n * to display validation errors that might happen (e.g. required)\r\n */\r\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\n ngDoCheck(): void {\r\n if (this.ngControl?.touched || this.ngControl?.errors) {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const checkboxNativeInput = this.checkboxElement._inputElement.nativeElement;\r\n checkboxNativeInput.setAttribute('role', 'checkbox');\r\n checkboxNativeInput.setAttribute('aria-checked', (!!this.checked).toString());\r\n checkboxNativeInput.setAttribute('aria-disabled', (!!this.disabled).toString());\r\n checkboxNativeInput.setAttribute('aria-label', this.label);\r\n this.focusMonitor.monitor(this.checkboxElement._inputElement.nativeElement).pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(origin =>\r\n this.ngZone.run(() => {\r\n this.origin = origin;\r\n this.cdr.markForCheck();\r\n this.onFocus(origin === 'keyboard');\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.focusMonitor.stopMonitoring(this.checkboxElement._inputElement.nativeElement);\r\n }\r\n\r\n emitChange(event: MatCheckboxChange): void {\r\n this.changed.emit(event.checked);\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\n ngOnInit() {\r\n this.classMultiple = this.setClass();\r\n this.setCompanyColor();\r\n }\r\n\r\n toggleChecked(): void {\r\n this.checked = !this.checked;\r\n this.changed.emit(this.checked);\r\n this.onTouch();\r\n this.onChange(this.checked);\r\n if (!this.disabled) {\r\n this.indeterminate = false;\r\n this.classMultiple = this.setClass();\r\n }\r\n this.checkboxElement._inputElement.nativeElement.setAttribute('aria-checked', (!!this.checked).toString());\r\n this.checkboxElement._inputElement.nativeElement.setAttribute('aria-disabled', (!!this.disabled).toString());\r\n }\r\n\r\n setClass(): string {\r\n if (this.multiple) {\r\n return this.checked || this.indeterminate ? 'multiple-checked' : 'multiple-unchecked';\r\n }\r\n return '';\r\n }\r\n\r\n writeValue(value: boolean): void {\r\n this.checked = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onLabelEllipsisChange(isEllipsis: boolean): void {\r\n this.showTooltip = isEllipsis;\r\n }\r\n\r\n onFocus(showTooltip: boolean): void {\r\n setTimeout(() => {\r\n this.showTooltip && showTooltip ? this.tooltipElement.show() : this.tooltipElement.hide();\r\n }, 0);\r\n }\r\n\r\n private setCompanyColor(): void {\r\n this.companyColor = this.companyColor ? this.companyColor : this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';\r\n }\r\n\r\n focus(): void {\r\n this.checkboxElement.focus();\r\n }\r\n}\r\n","<div\r\n #checkboxContainer\r\n [class]=\"multiple ? 'checkbox-container' : 'checkbox'\"\r\n [ngClass]=\"classMultiple\"\r\n [attr.alignment]=\"alignment\"\r\n [attr.truncate-text]=\"truncateText\"\r\n [attr.theme]=\"applicationTheme\"\r\n [attr.hasError]=\"hasError\"\r\n (keydown.enter)=\"toggleChecked(); checkboxContainer.focus()\"\r\n (keydown.space)=\"toggleChecked(); checkboxContainer.focus()\"\r\n>\r\n <mat-checkbox\r\n #checkbox\r\n (mouseleave)=\"checkbox.disableRipple = true\"\r\n (mouseenter)=\"checkbox.disableRipple = false\"\r\n [indeterminate]=\"indeterminate\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"tabIndex\"\r\n [name]=\"name\"\r\n [ngClass]=\"[checkbox.disableRipple ? 'disable-ripple' : '', origin ? 'cdk-' + origin + '-focused' : '']\"\r\n [aria-label]=\"ariaLabel\"\r\n [aria-labelledby]=\"ariaLabelledby ? ariaLabelledby : label\"\r\n [aria-describedby]=\"ariaDescribedby || 'ariaDescribedby'\"\r\n (click)=\"toggleChecked()\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n (keydown.space)=\"$event.preventDefault()\"\r\n class=\"checkbox\"\r\n >\r\n <span\r\n #tooltip=\"matTooltip\"\r\n class=\"label\"\r\n uiEllipseText\r\n (onChangeTextState)=\"onLabelEllipsisChange($event)\"\r\n [matTooltip]=\"showTooltip && truncateText ? label : ''\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n >\r\n {{ label }}\r\n </span>\r\n <ng-content select=\"[checkbox-label]\"></ng-content>\r\n </mat-checkbox>\r\n\r\n <mat-hint class=\"error\" *ngIf=\"ngControl?.errors | hasValidationError\">\r\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\"></ui-validation-error>\r\n </mat-hint>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ValidationErrorComponent } from './validation-error.component';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [ValidationErrorComponent],\r\n exports: [ValidationErrorComponent],\r\n imports: [CommonModule, IconComponentModule, UiTranslatePipe],\r\n})\r\nexport class ValidationErrorModule {}\r\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiFocusVisible]',\r\n standalone: true\r\n})\r\nexport class FocusVisibleDirective {\r\n @Output() uiFocusVisible = new EventEmitter<boolean>();\r\n private hadKeyboardEvent = false;\r\n\r\n constructor() {}\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n handleKeyboardEvent(): void {\r\n this.hadKeyboardEvent = true;\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n onFocus(): void {\r\n if (this.hadKeyboardEvent) {\r\n this.uiFocusVisible.next(true);\r\n }\r\n }\r\n\r\n @HostListener('blur')\r\n onBlur(): void {\r\n this.uiFocusVisible.next(false);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CheckboxComponent } from './checkbox.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\r\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\r\nimport { EllipseTextDirective } from \"../../directives/ellipse-text.directive\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { FocusVisibleDirective } from \"./focus-visible.directive\";\r\n\r\n@NgModule({\r\n declarations: [CheckboxComponent],\r\n imports: [CommonModule, MatCheckboxModule, FormsModule, ReactiveFormsModule, MatInputModule, IconComponentModule, UiTranslatePipe, ValidationErrorModule, HasValidationErrorPipe, EllipseTextDirective, MatTooltipModule, FocusVisibleDirective],\r\n exports: [CheckboxComponent],\r\n})\r\nexport class CheckboxComponentModule {}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Optional,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n ContentChild,\r\n} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ButtonColor } from '../button/button.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { ButtonComponent } from '../button/button.component';\r\n\r\n@Component({\r\n selector: 'ui-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DialogComponent implements OnInit, OnChanges, AfterViewInit {\r\n /**\r\n * Dialog title\r\n *\r\n * @memberof DialogComponent\r\n */\r\n @Input() title? = '';\r\n\r\n /**\r\n * Show close button\r\n *\r\n * @memberof DialogComponent\r\n */\r\n @Input() showCloseButton = true;\r\n\r\n /**\r\n * Fuction called before dialgo is closed\r\n *\r\n * @memberof DialogComponent\r\n */\r\n @Input() canCloseFn: () => boolean = () => true;\r\n\r\n /**\r\n * Secondary button label\r\n *\r\n * @memberof DialogComponent\r\n */\r\n @Input() secondaryButtonLabel? = '';\r\n\r\n /**\r\n * Primary button label\r\n *\r\n * @memberof DialogComponent\r\n */\r\n @Input() primaryButtonLabel? = '';\r\n\r\n /**\r\n * Secondary button type\r\n *\r\n * @memberof DialogComponent\r\n */\r\n @Input() secondaryButtonType: ButtonColor = 'secondary';\r\n\r\n /**\r\n * Primary button type\r\n *\r\n * @memberof DialogComponent\r\n */\r\n @Input() primaryButtonType: ButtonColor = 'primary';\r\n\r\n /**\r\n * Primary button test id\r\n *\r\n * @memberof DialogComponent\r\n */\r\n @Input() primaryButtonDataTestId: string | null = null;\r\n\r\n /**\r\n * Secondary button test id\r\n *\r\n * @memberof DialogComponent\r\n */\r\n @Input() secondaryButtonDataTestId: string | null = null;\r\n\r\n /**\r\n * Color of the dialog.\r\n * Defaults to Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof DialogComponent\r\n */\r\n @HostBinding('style.--color')\r\n @Input()\r\n companyColor: string | null = '';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof DialogComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n /**\r\n *\r\n * Disable primary button\r\n *\r\n * @type {boolean}\r\n * @memberof DialogComponent\r\n */\r\n @Input() disablePrimaryButton = false;\r\n /**\r\n *\r\n * Disable close button\r\n *\r\n * @type {boolean}\r\n * @memberof DialogComponent\r\n */\r\n @Input() disableClose = false;\r\n\r\n /**\r\n *\r\n * Disable button when canCloseFn is used\r\n *\r\n * @type {boolean}\r\n * @memberof DialogComponent\r\n */\r\n @Input() shouldDisableButtons = true;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof DialogComponent\r\n */\r\n @Input() ariaLabelledby = '';\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof DialogComponent\r\n */\r\n @Input() ariaDescribedby = '';\r\n\r\n /**\r\n * Defines how modal was opened (with keyboard or not)\r\n *\r\n * @type {boolean}\r\n * @memberof DialogComponent\r\n */\r\n @Input() keyboardOpen = false;\r\n\r\n @Output() closeEvent: EventEmitter<Event> = new EventEmitter<Event>();\r\n @Output() secondaryButtonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\r\n @Output() primaryButtonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n @ViewChild('closeButton') closeButton: ButtonComponent;\r\n\r\n modalClosed = false;\r\n\r\n @HostListener('keydown.esc', ['$event'])\r\n onEsc(_: KeyboardEvent) {\r\n this.dismiss();\r\n }\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n public dialogRef: MatDialogRef<DialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) private data: { applicationTheme: ApplicationTheme }\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n disableButtons = false;\r\n protected readonly translationContext = 'DIALOG.';\r\n\r\n @ContentChild('dialogHeader')\r\n customHeader?: any;\r\n\r\n get hasCustomHeader(): boolean {\r\n return !!this.customHeader;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.areButtonsDisabled();\r\n if (this.data?.applicationTheme) {\r\n this.applicationTheme = this.data.applicationTheme;\r\n }\r\n if (this.applicationTheme !== 'classic') {\r\n this.secondaryButtonType = 'ghost';\r\n this.companyColor = this.companyColor || '#D410AA';\r\n } else {\r\n this.companyColor = this.companyColor || '#46A997';\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['canCloseFn']) {\r\n this.dialogRef.disableClose = !this.canCloseFn();\r\n this.areButtonsDisabled();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.keyboardOpen) {\r\n setTimeout(() => {\r\n this.closeButton.buttonElement.focus('keyboard');\r\n }, 100);\r\n }\r\n }\r\n\r\n //Disable primary button when canClose is false\r\n areButtonsDisabled() {\r\n this.disableButtons = !this.canCloseFn() && this.shouldDisableButtons;\r\n }\r\n\r\n //Close modal\r\n dismiss(): void {\r\n if (this.canCloseFn()) {\r\n this.dialogRef.disableClose = false;\r\n this.dialogRef.close();\r\n this.modalClosed = true;\r\n }\r\n }\r\n\r\n onClose(event: Event): void {\r\n this.closeEvent.emit(event);\r\n this.modalClosed = true;\r\n }\r\n\r\n onSecondaryButtonClick(event: Event): void {\r\n this.secondaryButtonClickEvent.emit(event);\r\n }\r\n\r\n onPrimaryButtonClick(event: Event): void {\r\n this.primaryButtonClickEvent.emit(event);\r\n }\r\n}\r\n","<div class=\"dialog-container\" [attr.theme]=\"applicationTheme\">\r\n <div\r\n mat-dialog-title\r\n class=\"dialog-title\"\r\n [attr.aria-modal]=\"true\"\r\n [attr.aria-labelledby]=\"'labelledby'\"\r\n [attr.aria-describedby]=\"'ariaDescribedby'\"\r\n >\r\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\r\n\r\n <!-- Default header content -->\r\n <ng-container *ngIf=\"!hasCustomHeader\">\r\n <h3 class=\"bold\" id=\"labelledby\">{{ title }}</h3>\r\n <div *ngIf=\"showCloseButton\">\r\n <ui-button\r\n #closeButton\r\n [variant]=\"'icon-button'\"\r\n [iconName]=\"'Close'\"\r\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [tooltip]=\"(('COMMON.CLOSE') | uiTranslate | async)!\"\r\n (click)=\"onClose($event)\"\r\n (buttonClickEvent)=\"dismiss()\"\r\n id=\"dialog-close-button\"\r\n ></ui-button>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Custom header content projection -->\r\n <ng-content select=\"[dialogHeader]\"></ng-content>\r\n </div>\r\n <mat-dialog-content>\r\n <ng-content></ng-content>\r\n </mat-dialog-content>\r\n <div mat-dialog-actions *ngIf=\"secondaryButtonLabel !== '' || primaryButtonLabel !== ''\">\r\n <ui-button\r\n [companyColor]=\"companyColor\"\r\n [variant]=\"secondaryButtonType\"\r\n [applicationTheme]=\"applicationTheme\"\r\n *ngIf=\"!!secondaryButtonLabel\"\r\n [label]=\"secondaryButtonLabel\"\r\n [attr.data-testid]=\"secondaryButtonDataTestId\"\r\n (click)=\"onSecondaryButtonClick($event)\"\r\n ></ui-button>\r\n <ui-button\r\n [variant]=\"primaryButtonType\"\r\n *ngIf=\"!!primaryButtonLabel\"\r\n [disabled]=\"disableButtons || disablePrimaryButton\"\r\n [applicationTheme]=\"applicationTheme\"\r\n (click)=\"onPrimaryButtonClick($event)\"\r\n [label]=\"primaryButtonLabel\"\r\n [companyColor]=\"companyColor\"\r\n [attr.data-testid]=\"primaryButtonDataTestId\"\r\n (buttonClickEvent)=\"dismiss()\"\r\n ></ui-button>\r\n </div>\r\n\r\n<!-- This is announcement for screen reader that dialog was closed-->\r\n <div aria-live=\"assertive\" role=\"alert\" style=\"position: absolute; left: -9999px;\">\r\n <span *ngIf=\"modalClosed\">{{ 'DIALOG.CLOSED' | uiTranslate | async }}</span>\r\n </div>\r\n</div>\r\n","import { ComponentType } from '@angular/cdk/portal';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { DialogConfig } from \"./dialog.model\";\r\n\r\nexport type DialogSize = 'small' | 'large';\r\n@Injectable()\r\nexport class DialogService {\r\n constructor(\r\n private matDialog: MatDialog,\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\r\n ) {}\r\n\r\n open(\r\n dialogComponent: ComponentType<any>,\r\n dialogConfig: DialogConfig = {}\r\n ): MatDialogRef<any> {\r\n const {\r\n applicationTheme = 'light',\r\n size = 'small',\r\n panelClass = '',\r\n extraData = {},\r\n backdropClass ='',\r\n keyboardOpen = false,\r\n config = {},\r\n } = dialogConfig;\r\n // Open the dialog using UI custom styles\r\n return this.matDialog.open(dialogComponent, {\r\n ...config,\r\n data: {\r\n applicationTheme: this.defaultAppTheme ?? applicationTheme,\r\n ...extraData,\r\n keyboardOpen,\r\n },\r\n backdropClass: backdropClass || '',\r\n panelClass:\r\n applicationTheme === 'classic'\r\n ? ['ui-dialog-wrapper', panelClass, size]\r\n : ['ui-dialog-wrapper', panelClass, applicationTheme, size],\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { DialogService } from './dialog.service';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [DialogComponent],\r\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, UiTranslatePipe],\r\n exports: [DialogComponent],\r\n providers: [{ provide: MAT_DIALOG_DATA, useValue: {} }, { provide: MatDialogRef, useValue: {} }, DialogService],\r\n})\r\nexport class DialogComponentModule {}\r\n","export enum ElevationType {\r\n DEFAULT = 'default',\r\n MODAL = 'modal',\r\n HOVER_STATE = 'hover-state',\r\n NOTIFICATION = 'notification',\r\n PAGE_CARD = 'page-card',\r\n}\r\n\r\nexport type Elevation = 'default' | 'modal' | 'hover-state' | 'notification' | 'page-card';\r\n","import { ChangeDetectionStrategy, Component, Inject, Input, Optional } from '@angular/core';\r\nimport { Elevation, ElevationType } from './elevation-shadow.constant';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-elevation-shadow',\r\n templateUrl: './elevation-shadow.component.html',\r\n styleUrls: ['./elevation-shadow.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ElevationShadowComponent {\r\n /**\r\n * The type of elevation shadow.\r\n * Default: default.\r\n * @description Types: Page Card, Notification and Hover State only for Dark and Light theme.\r\n *\r\n * @type {ElevationType}\r\n * @memberof ElevationShadowComponent\r\n */\r\n @Input() elevationType: Elevation = ElevationType.DEFAULT;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof ElevationShadowComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n}\r\n","<div class=\"elevation-shadow\" [ngClass]=\"elevationType\" [attr.theme]=\"applicationTheme\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ElevationShadowComponent } from './elevation-shadow.component';\r\n\r\n@NgModule({\r\n declarations: [ElevationShadowComponent],\r\n imports: [CommonModule],\r\n exports: [ElevationShadowComponent],\r\n})\r\nexport class ElevationShadowComponentModule {}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\nconst ARROW_DOWN_KEY_CODE = 40;\r\n\r\n@Directive({\r\n selector: '[digitsOnly]',\r\n standalone: true,\r\n})\r\nexport class DigitsOnlyDirective {\r\n constructor(private el: ElementRef) {}\r\n\r\n @Input() allowNegative = false;\r\n @Input() allowDecimal = false;\r\n @Input() allowOnlyDigits = false;\r\n regex: RegExp;\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyPress(event: KeyboardEvent) {\r\n this.validate(event, event.key);\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: Event) {\r\n const pastedText = <ClipboardEvent>event && (<ClipboardEvent>event)?.clipboardData?.getData('text/plain'); // Non-IE browsers\r\n this.validate(event, pastedText || '');\r\n }\r\n\r\n @HostListener('keydown', [`$event`])\r\n onKeydown(event: any) {\r\n if (!this.allowNegative) {\r\n if ((event as any).which === ARROW_DOWN_KEY_CODE && event.target.value && +event.target.value <= 0) {\r\n event.preventDefault();\r\n return;\r\n } else if ((event as any).which === ARROW_DOWN_KEY_CODE && event.target.value === '') {\r\n this.el.nativeElement.value = 1;\r\n return;\r\n }\r\n }\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInput(event: any) {\r\n if (!this.allowNegative && (event.target.value && +event.target.value < 0)) {\r\n setTimeout(() => this.el.nativeElement.value = 0, 0);\r\n }\r\n }\r\n\r\n validate(event: Event, text: string) {\r\n if (this.allowOnlyDigits) {\r\n const txtInput = this.el.nativeElement;\r\n const newValue =\r\n txtInput.value.substring(0, txtInput.selectionStart) + text + txtInput.value.substring(txtInput.selectionEnd);\r\n if (!this.regex) {\r\n this.regex = // eslint-disable-next-line no-eval\r\n eval(\r\n `/^${this.allowNegative ? '-?' : ''}${this.allowDecimal ? '((\\\\d+\\\\.?)|(\\\\.?))\\\\d*' : '\\\\d*'}$/g`\r\n ) as RegExp;\r\n }\r\n if (!newValue.match(this.regex)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n","/* eslint-disable no-underscore-dangle */\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n DoCheck, ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n signal,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { FieldType } from '../../components/field/field.model';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { IconName } from '../icon/icon.model';\r\nimport { FocusMonitor } from \"@angular/cdk/a11y\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Component({\r\n selector: 'ui-field',\r\n templateUrl: './field.component.html',\r\n styleUrls: ['./field.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FieldComponent implements OnInit, ControlValueAccessor, DoCheck, AfterViewInit {\r\n @HostBinding() class = 'ui-field';\r\n\r\n /**\r\n * Indicator of the autocomplete width\r\n *\r\n * @type {boolean}\r\n * @memberof FieldComponent\r\n */\r\n @HostBinding('class.full-width')\r\n @Input() fullWidth = true;\r\n\r\n /**\r\n * Form field label\r\n *\r\n * @type {string}\r\n * @memberof FieldComponent\r\n */\r\n @Input() label? = '';\r\n\r\n /**\r\n * Input name attribute\r\n *\r\n * @type {string}\r\n * @memberof FieldComponent\r\n */\r\n @Input() fieldName?: string;\r\n\r\n /**\r\n * Input placeholder\r\n *\r\n * @type {string}\r\n * @memberof FieldComponent\r\n */\r\n @Input() placeholder? = '';\r\n\r\n /**\r\n * Input id\r\n *\r\n * @type {string}\r\n * @memberof FieldComponent\r\n */\r\n @Input() id? = '';\r\n\r\n /**\r\n * Input value\r\n *\r\n * @type {string}\r\n * @memberof FieldComponent\r\n */\r\n @Input() value = '';\r\n\r\n _errors: SafeHtml[];\r\n /**\r\n * Input field errors\r\n *\r\n * @type {string}\r\n * @memberof FieldComponent\r\n */\r\n @Input() set errors(errors: string[]) {\r\n this._errors = errors?.filter(Boolean).map(error => this.domSanitizer.bypassSecurityTrustHtml(error));\r\n this.errorsLength = this.setErrorsLength();\r\n }\r\n\r\n /**\r\n * Determines if input is disabled\r\n *\r\n * @type {boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() disabled: boolean;\r\n\r\n /**\r\n * Input is required or not\r\n *\r\n * @type {boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() required: boolean;\r\n\r\n\r\n /**\r\n * Input is readonly or not\r\n *\r\n * @type {boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() readOnly: boolean = false;\r\n\r\n /**\r\n * Hint text\r\n *\r\n * @type {string}\r\n * @memberof FieldComponent\r\n */\r\n @Input() hintMessage = '';\r\n\r\n /**\r\n * Input type\r\n *\r\n * @type {FieldType}\r\n * @memberof FieldComponent\r\n */\r\n @HostBinding('attr.field-class')\r\n @Input()\r\n type: FieldType = 'text';\r\n\r\n /**\r\n * Input is update only on blur\r\n *\r\n * @type {Boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() updateOnBlur = false;\r\n\r\n /**\r\n * allow only digits in input\r\n *\r\n * @type {Boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() allowOnlyDigits = false;\r\n\r\n /**\r\n * allow negative numbers\r\n *\r\n * @type {Boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() allowNegative = true;\r\n\r\n /**\r\n * Show reserved content below form field\r\n * @property showBottomContent\r\n * @type {boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() showBottomContent = true;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof FieldComponent\r\n */\r\n @HostBinding('attr.theme')\r\n @Input()\r\n applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof FieldComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * Show loading button. Only for text\r\n *\r\n * @type {boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() loading = false;\r\n\r\n /**\r\n * Show icon when field is valid\r\n *\r\n * @type {boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() isValid = false;\r\n\r\n /**\r\n * Max characters number\r\n *\r\n * @type {number}\r\n * @memberof FieldComponent\r\n */\r\n @Input() maxCharacters = 255;\r\n\r\n /**\r\n * Trim text on blur\r\n *\r\n * @type {boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() trimOnBlur = false;\r\n /**\r\n * Trim text on submit\r\n *\r\n * @type {boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() trimOnSubmit = false;\r\n /**\r\n * Max rows for multi-line type\r\n *\r\n * @type {number}\r\n * @memberof FieldComponent\r\n */\r\n @Input() maxRows = 0;\r\n\r\n /**\r\n * Hide in build errors for Reactive Forms\r\n *\r\n * @type {number}\r\n * @memberof FieldComponent\r\n */\r\n @Input() hideBuiltInErrors = false;\r\n\r\n /**\r\n * Hide label in errors\r\n *\r\n * @type {number}\r\n * @memberof FieldComponent\r\n */\r\n @Input() hideLabelInErrors = false;\r\n\r\n /**\r\n * Set maximum number\r\n *\r\n * @type {number}\r\n * @memberof FieldComponent\r\n */\r\n @Input() max: number | undefined;\r\n\r\n /**\r\n * Set minimum number\r\n *\r\n * @type {number}\r\n * @memberof FieldComponent\r\n */\r\n @Input() min: number | undefined;\r\n\r\n /**\r\n * Sets textarea height. Default 110\r\n *\r\n * @type {number}\r\n * @memberof FieldComponent\r\n */\r\n @Input() textareaHeight = 110;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof FieldComponent\r\n */\r\n @Input() ariaLabelledby = '';\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof FieldComponent\r\n */\r\n @Input() ariaDescribedby = '';\r\n\r\n /**\r\n * Show state of error\r\n * @type {boolean}\r\n * @memberof FieldComponent\r\n */\r\n @Input() hasError = false;\r\n\r\n @Output() validateEvent = new EventEmitter<string>();\r\n @Output() fieldBlur = new EventEmitter<void>();\r\n\r\n @ViewChild('inputElement', { read: ElementRef }) field: ElementRef<HTMLInputElement>;\r\n\r\n get getPasswordIcon(): IconName {\r\n if (this.applicationTheme === 'classic') {\r\n return this.showPassword ? 'Eye-hide' : 'Eye-view';\r\n } else {\r\n if (!this.isActiveField && !this.isActiveHover) {\r\n return this.showPassword ? 'View-in-line' : 'Hide-in-line';\r\n } else {\r\n return this.showPassword ? 'View-filled' : 'Hide-filled';\r\n }\r\n }\r\n }\r\n\r\n isActiveField = false;\r\n isActiveHover = false;\r\n\r\n keyboardFocused = signal(false);\r\n\r\n protected readonly translationContext = 'FIELD.';\r\n\r\n /**\r\n * @ignore\r\n */\r\n onChange = (_: any) => {};\r\n\r\n /**\r\n * @ignore\r\n */\r\n onTouch = () => {};\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer,\r\n private cdr: ChangeDetectorRef,\r\n @Optional() @Self() public ngControl: NgControl,\r\n private focusMonitor: FocusMonitor,\r\n private ngZone: NgZone,\r\n private destroyRef: DestroyRef,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.focusMonitor.monitor(this.field).pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(origin => this.ngZone.run(() => {\r\n this.keyboardFocused.set(origin === 'keyboard')\r\n }));\r\n }\r\n\r\n /**\r\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\r\n * to display validation errors that might happen (e.g. required)\r\n */\r\n ngDoCheck(): void {\r\n if (this.ngControl?.touched || this.ngControl?.errors) {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n showClose: boolean;\r\n showPassword: boolean;\r\n currentType: string;\r\n errorsLength: boolean;\r\n\r\n ngOnInit(): void {\r\n this.setSearchInput();\r\n this.currentType = this.getType();\r\n }\r\n\r\n validate(): void {\r\n this.validateEvent.emit(this.value);\r\n }\r\n\r\n //set search input initial value\r\n setSearchInput(): void {\r\n if (this.type === 'search' || this.type === 'collapsed-search') {\r\n this.matIconRegistry.addSvgIcon('Search', this.domSanitizer.bypassSecurityTrustResourceUrl('/icons/Search.svg'));\r\n } else {\r\n this.showClose = false;\r\n }\r\n }\r\n\r\n //change type for reveal password\r\n getType(): string {\r\n if (this.type === 'password' && this.showPassword) {\r\n return 'text';\r\n }\r\n return this.type;\r\n }\r\n\r\n //Clear input value\r\n clearValue(): void {\r\n this.value = '';\r\n this.onChange(this.value);\r\n this.onChangeInputSearch();\r\n }\r\n\r\n //toggle for password\r\n showPasswordClick() {\r\n this.showPassword = !this.showPassword;\r\n this.currentType = this.getType();\r\n }\r\n\r\n //Set options for search input\r\n onChangeInputSearch() {\r\n if (this.type === 'search' || this.type === 'collapsed-search') {\r\n if (!this.value) {\r\n this.showClose = false;\r\n }\r\n if (this.value) {\r\n this.showClose = true;\r\n }\r\n }\r\n }\r\n\r\n // Set errors length for validation\r\n // Consider only those errors which which are not empty\r\n setErrorsLength(): boolean {\r\n if (!!this._errors) {\r\n return this._errors.filter(err => !!err).length > 0 ? true : false;\r\n }\r\n return false;\r\n }\r\n\r\n //Save input value\r\n onInput(event: any) {\r\n this.value = event.target.value;\r\n this.errorsLength = this.setErrorsLength();\r\n if (!this.updateOnBlur) {\r\n this.onTouch();\r\n }\r\n if (this.allowOnlyDigits && !this.allowNegative && +this.value < 0) {\r\n this.value = '0';\r\n } else {\r\n this.onChange(this.type === 'number' ? +this.value : this.value);\r\n }\r\n }\r\n\r\n writeValue(value?: any): void {\r\n if (value) {\r\n this.value = value || '';\r\n } else {\r\n this.value = '';\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onFieldClick(event: MouseEvent): void {\r\n if (this.type === 'collapsed-search') {\r\n this.type = 'search';\r\n } else {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n onActive(state: boolean, action: string): void {\r\n if (action === 'hover') {\r\n this.isActiveHover = state;\r\n } else if (action === 'focus') {\r\n this.isActiveField = state;\r\n\r\n if (!state && this.trimOnBlur) {\r\n this.clearSpace();\r\n }\r\n }\r\n }\r\n\r\n onSubmit(): void {\r\n if (this.trimOnSubmit) {\r\n this.clearSpace();\r\n }\r\n }\r\n\r\n private clearSpace(): void {\r\n this.value = this.value.trim();\r\n this.onChange(this.value);\r\n }\r\n\r\n onBlur(): void {\r\n this.fieldBlur.emit();\r\n }\r\n\r\n trackByFn = (index: number, value: any) => value.changingThisBreaksApplicationSecurity;\r\n\r\n focus(): void {\r\n this.field.nativeElement.focus();\r\n }\r\n\r\n refocusPasswordButton(btn: any) {\r\n setTimeout(() => {\r\n btn.focus('keyboard');\r\n }, 0);\r\n }\r\n}\r\n","<ng-container>\r\n <mat-form-field\r\n [ngStyle]=\"{ '--textarea-height': (textareaHeight - 10) + 'px', '--textarea-height-container': textareaHeight + 'px' }\"\r\n (click)=\"onFieldClick($event)\"\r\n #uiField\r\n appearance=\"outline\"\r\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched ) || hasError) ? 'warn' : 'accent'\"\r\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, textarea: type === 'textarea', 'multi-line': type === 'multi-line', 'keyboard-focused': keyboardFocused(), 'has-label': !!label }\"\r\n (mouseenter)=\"onActive(true, 'hover')\"\r\n (mouseleave)=\"onActive(false, 'hover')\"\r\n >\r\n <span [style.display]=\"'none'\" [id]=\"'ariaDescribedby'\">\r\n <span *ngIf=\"required\">{{ 'ERRORS.REQUIRED' | uiTranslate | async }}</span>\r\n {{ ariaDescribedby }}\r\n </span>\r\n <span [style.display]=\"'none'\" [id]=\"'ariaLabelledby'\">\r\n {{ ariaLabelledby || label }}\r\n </span>\r\n <mat-label [id]=\"'label'\" *ngIf=\"label && ((type !== 'search' && applicationTheme === 'classic') || (applicationTheme !== 'classic'))\">{{ label }}</mat-label>\r\n <mat-icon *ngIf=\"type === 'search' || type === 'collapsed-search'\" matIconPrefix class=\"search-icon\" [svgIcon]=\"'Search'\"></mat-icon>\r\n <input\r\n [readonly]=\"readOnly\"\r\n *ngIf=\"type !== 'textarea' && type !== 'multi-line'; else textarea\"\r\n matInput\r\n #inputElement\r\n (blur)=\"onTouch(); onActive(false, 'focus'); onBlur()\"\r\n (input)=\"onInput($event)\"\r\n [id]=\"id!\"\r\n (keyup)=\"onChangeInputSearch()\"\r\n [placeholder]=\"placeholder!\"\r\n [value]=\"value\"\r\n [disabled]=\"disabled || loading\"\r\n [type]=\"currentType\"\r\n (keyup.enter)=\"onSubmit()\"\r\n [max]=\"max\"\r\n [min]=\"min\"\r\n [name]=\"fieldName!\"\r\n [required]=\"required\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-invalid]=\"errorsLength || (ngControl?.errors && ngControl?.touched ) || hasError\"\r\n [attr.aria-labelledby]=\"'ariaLabelledby'\"\r\n [attr.aria-describedby]=\"'ariaDescribedby'\"\r\n role=\"textbox\"\r\n digitsOnly\r\n [allowOnlyDigits]=\"allowOnlyDigits\"\r\n [allowNegative]=\"allowNegative\"\r\n (focusin)=\"onActive(true, 'focus')\"\r\n />\r\n\r\n <ng-template #textarea>\r\n <textarea\r\n matInput\r\n #inputElement\r\n [readonly]=\"readOnly\"\r\n (blur)=\"onTouch(); onActive(false, 'focus'); onBlur()\"\r\n (input)=\"onInput($event)\"\r\n [id]=\"id!\"\r\n (keyup)=\"onChangeInputSearch()\"\r\n (keyup.enter)=\"onSubmit()\"\r\n [placeholder]=\"placeholder!\"\r\n [value]=\"value\"\r\n [disabled]=\"disabled\"\r\n [type]=\"currentType\"\r\n [name]=\"fieldName!\"\r\n [required]=\"required\"\r\n [attr.aria-label]=\"!label ? ariaLabel : ''\"\r\n [attr.aria-invalid]=\"errorsLength || (ngControl?.errors && ngControl?.touched ) || hasError\"\r\n [attr.aria-labelledby]=\"'ariaLabelledby'\"\r\n [attr.aria-describedby]=\"'ariaDescribedby'\"\r\n role=\"textbox\"\r\n [cdkTextareaAutosize]=\"type === 'multi-line'\"\r\n [cdkAutosizeMinRows]=\"type === 'multi-line' ? 1 : 5\"\r\n [cdkAutosizeMaxRows]=\"type === 'multi-line' ? maxRows : 5 \"\r\n (focusin)=\"onActive(true, 'focus')\"\r\n ></textarea>\r\n </ng-template>\r\n\r\n <div class=\"options\" *ngIf=\"type === 'search' || type === 'password' || type === 'validation-text'\">\r\n <div class=\"options-container\">\r\n <ui-button\r\n *ngIf=\"showClose\"\r\n variant=\"secondary\"\r\n [justIcon]=\"true\"\r\n class=\"close\"\r\n iconName=\"Close\"\r\n [label]=\"(('COMMON.CLEAR') | uiTranslate | async)!\"\r\n (buttonClickEvent)=\"clearValue()\"\r\n [ariaLabel]=\"ariaLabel + '--' + (('COMMON.CLEAR') | uiTranslate | async)\"\r\n ></ui-button>\r\n <ui-button\r\n class=\"password\"\r\n variant=\"secondary\"\r\n [tooltip]=\"((showPassword ? ('FIELD.HIDE_PASSWORD') : ('FIELD.SHOW_PASSWORD')) | uiTranslate | async)!\"\r\n *ngIf=\"type === 'password'\"\r\n [justIcon]=\"true\"\r\n role=\"switch\"\r\n [attr.aria-checked]=\"showPassword\"\r\n [iconName]=\"getPasswordIcon\"\r\n [applicationTheme]=\"applicationTheme\"\r\n (click)=\"showPasswordClick()\"\r\n #btn\r\n (keydown.enter)=\"refocusPasswordButton(btn)\"\r\n (keydown.space)=\"refocusPasswordButton(btn)\"\r\n ></ui-button>\r\n\r\n <ng-container\r\n *ngIf=\"type === 'validation-text' && (applicationTheme === 'dark' || applicationTheme === 'light') && value.length\"\r\n >\r\n <ui-button\r\n *ngIf=\"!isValid\"\r\n class=\"validation\"\r\n [variant]=\"'text'\"\r\n [applicationTheme]=\"'light'\"\r\n [label]=\"'Validate'\"\r\n [loading]=\"loading\"\r\n (click)=\"validate()\"\r\n [disabled]=\"disabled\"\r\n [size]=\"'small'\"\r\n ></ui-button>\r\n <ui-icon class=\"valid\" [color]=\"'white'\" applicationTheme=\"light\" [name]=\"'Check'\" *ngIf=\"isValid\"></ui-icon>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <mat-hint class=\"info\" *ngIf=\"type === 'textarea' && !errorsLength && !(ngControl?.errors | hasValidationError)\">{{ value.length }} / {{ maxCharacters }}</mat-hint>\r\n <mat-hint class=\"info\" *ngIf=\"hintMessage && !errorsLength && !(ngControl?.errors | hasValidationError) && type !== 'textarea'\">{{ hintMessage }}</mat-hint>\r\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\r\n <ng-template [ngIf]=\"errorsLength\">\r\n <div class=\"errors\" *ngFor=\"let error of _errors; trackBy: trackByFn\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span [innerHTML]=\"error\"></span>\r\n </div>\r\n </ng-template>\r\n\r\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\"></ui-validation-error>\r\n </mat-hint>\r\n </mat-form-field>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { ButtonComponentModule } from '../../components/button/button.component.module';\r\nimport { IconComponentModule } from '../../components/icon/icon.component.module';\r\nimport { DigitsOnlyDirective } from '../../directives/digits-only.directive';\r\nimport { FieldComponent } from './field.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\r\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\r\n\r\n@NgModule({\r\n declarations: [FieldComponent],\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n IconComponentModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ButtonComponentModule,\r\n MatIconModule,\r\n UiTranslatePipe,\r\n ValidationErrorModule,\r\n HasValidationErrorPipe,\r\n DigitsOnlyDirective,\r\n ],\r\n exports: [FieldComponent],\r\n})\r\nexport class FieldComponentModule {}\r\n","import { Directive, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiDragDrop]'\r\n})\r\nexport class DragDropDirective {\r\n constructor() { }\r\n\r\n @HostBinding('class.file-over') file: boolean;\r\n @Output() fileDropped = new EventEmitter<any>();\r\n\r\n // Dragover listener\r\n @HostListener('dragover', ['$event']) onDragOver(event: Event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.file = true;\r\n }\r\n\r\n // Dragleave listener\r\n @HostListener('dragleave', ['$event']) public onDragLeave(event: Event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.file = false;\r\n }\r\n\r\n // Drop listener\r\n @HostListener('drop', ['$event']) public ondrop(event: DragEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.file = false;\r\n let files: FileList;\r\n if (!!event.dataTransfer) {\r\n files = event.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(files);\r\n }\r\n }\r\n }\r\n}\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewEncapsulation,\r\n forwardRef,\r\n Optional,\r\n Inject,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => FileUploadComponent),\r\n multi: true,\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [\r\n trigger('inOutAnimation', [\r\n transition(':enter', [\r\n style({ opacity: 0, height: 0 }),\r\n animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 1, height: '196px' }),\r\n animate('0.2s ease-in', style({ opacity: 0, height: 0 }))\r\n ])\r\n ]),\r\n trigger('inOutAnimationProgress', [\r\n transition(':enter', [\r\n style({ opacity: 0, height: 0 }),\r\n animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 1, height: '196px' }),\r\n animate('0.2s ease-in', style({ opacity: 0, height: 0 }))\r\n ])\r\n ]),\r\n trigger('inOutAnimationChange', [\r\n transition(':enter', [\r\n style({ opacity: 0, height: 0 }),\r\n animate('0.2s ease-out', style({ opacity: 1, height: '196px' }))\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 1, height: '196px' }),\r\n animate('0.2s ease-in', style({ opacity: 0, height: 0 }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class FileUploadComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n @HostBinding() class = 'ui-file-upload';\r\n\r\n /**\r\n *\r\n * @type {number}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() maxFileSizeMB: number;\r\n\r\n /**\r\n *\r\n * @type {number}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() minFileSizeMB: number;\r\n\r\n /**\r\n * Supported files for input field\r\n *\r\n * @type {string}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() supportedFileTypes?: string;\r\n\r\n /**\r\n * Upload progress\r\n *\r\n * @type {number}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() uploadProgress: number;\r\n\r\n /**\r\n * File upload errors\r\n *\r\n * @type {string[]}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() errors?: string[] | null;\r\n\r\n /**\r\n * File upload disabled\r\n *\r\n * @type {boolean}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Existing file information\r\n *\r\n * @type {(File | null)}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() file: File | null = null;\r\n\r\n /**\r\n * Color of the file upload.\r\n * Defaults to Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() companyColor: string | null = '';\r\n\r\n @HostBinding('style.--color')\r\n compColor: string;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {boolean}\r\n * @memberof FileUploadComponent\r\n */\r\n @Input() ariaRequired = false;\r\n\r\n @Output() OnDrop: EventEmitter<File> = new EventEmitter<File>();\r\n\r\n @ViewChild('fileDrop') fileDrop: ElementRef<HTMLInputElement>;\r\n\r\n protected readonly translationContext = 'FILE_UPLOAD.';\r\n\r\n /**\r\n * @ignore\r\n */\r\n onChange = (_: any) => {\r\n };\r\n\r\n /**\r\n * @ignore\r\n */\r\n onTouch = () => {\r\n };\r\n\r\n isMissedMinSize = false;\r\n progress = false;\r\n success = false;\r\n browse: boolean;\r\n isCanceled = false;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.browse = true;\r\n }\r\n\r\n //When file is dropped\r\n onFileDropped(files: FileList) {\r\n this.emitFile(files);\r\n }\r\n\r\n //When input changes\r\n onChangeUpload(event: Event) {\r\n this.isCanceled = false;\r\n const element = event.currentTarget as HTMLInputElement;\r\n this.emitFile(element.files || new FileList());\r\n }\r\n\r\n //Emit drop file\r\n emitFile(files: FileList) {\r\n const [file] = Array.from(files);\r\n this.file = file;\r\n this.errors = null;\r\n this.onTouch();\r\n this.isMissedMinSize =\r\n !file?.size && !this.minFileSizeMB ? true : this.fileSizeToMB(file?.size ?? 0) <= this.minFileSizeMB;\r\n if (!this.isMissedMinSize) {\r\n this.onChange(this.file);\r\n this.OnDrop.emit(file);\r\n }\r\n }\r\n\r\n //Show progress-bar\r\n showProgress(): boolean {\r\n this.browse = false;\r\n return !!(this.file && !this.errors && !this.isMissedMinSize);\r\n }\r\n\r\n //Show success elements\r\n showSuccess(): boolean {\r\n return !!(this.file && this.uploadProgress === 100 && !this.errors && !this.isMissedMinSize);\r\n }\r\n\r\n //Show browse when there are error\r\n showBrowse(): boolean {\r\n return !!(this.errors || this.isMissedMinSize);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!this.isCanceled) {\r\n if (changes['uploadProgress'] || changes['file']) {\r\n this.progress = this.showProgress();\r\n this.success = this.showSuccess();\r\n this.browse = this.showBrowse();\r\n }\r\n if (changes['errors']) {\r\n this.progress = this.showProgress();\r\n this.success = this.showSuccess();\r\n this.browse = this.showBrowse();\r\n }\r\n if (changes['applicationTheme']) {\r\n this.compColor = this.getCompanyColor();\r\n }\r\n }\r\n }\r\n\r\n writeValue(value?: File): void {\r\n if (value) {\r\n this.file = value || null;\r\n } else {\r\n this.file = null;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n private getCompanyColor(): string {\r\n return this.companyColor || (this.applicationTheme === 'classic' ? '#46A997' : '#D410AA');\r\n }\r\n\r\n private fileSizeToMB(fileSize: number): number {\r\n return fileSize / 1024 / 1024;\r\n }\r\n\r\n onKeydown(ev: KeyboardEvent) {\r\n if (ev.key === 'Enter' || ev.key === ' ') {\r\n this.fileDrop.nativeElement.click()\r\n } else if (ev.key === 'Escape') {\r\n this.file = null;\r\n this.success = false;\r\n this.progress = false;\r\n this.errors = null;\r\n this.isMissedMinSize = false;\r\n this.browse = true;\r\n this.isCanceled = true;\r\n }\r\n }\r\n}\r\n","<ng-container>\r\n <div\r\n class=\"upload-file-container\"\r\n uiDragDrop\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-required]=\"ariaRequired\"\r\n [attr.theme]=\"applicationTheme\"\r\n [ngClass]=\"{ 'upload-errors': !!errors || isMissedMinSize, 'upload-file-container-disabled': disabled }\"\r\n (fileDropped)=\"onFileDropped($event)\"\r\n [tabIndex]=\"0\"\r\n (keydown)=\"onKeydown($event)\"\r\n (click)=\"fileDrop.nativeElement.click()\"\r\n >\r\n <span style=\"position: absolute; left: -9999px;\" [attr.aria-live]=\"'polite'\">\r\n {{ success ? ('FILE_UPLOAD.FILE_UPLOADING_SUCCESS' | uiTranslate | async) : progress ? ('FILE_UPLOAD.UPLOADING' | uiTranslate | async) : '' }}\r\n </span>\r\n <div *ngIf=\"(browse && !(success && !!file && progress))\" [@inOutAnimation] class=\"upload-files\">\r\n <div class=\"upload-browse\">\r\n <ng-container [ngTemplateOutlet]=\"iconTpl\"></ng-container>\r\n\r\n <div class=\"errors\" *ngIf=\"!!errors || isMissedMinSize\" role=\"alert\">\r\n <ng-container *ngIf=\"!!errors\">\r\n <span *ngFor=\"let error of errors\"><ui-icon name=\"Error\" class=\"error-icon\"></ui-icon>\r\n {{ error }}</span>\r\n </ng-container>\r\n\r\n <span *ngIf=\"isMissedMinSize\">\r\n <ui-icon name=\"Error\" class=\"error-icon\"></ui-icon>\r\n {{ translationContext + 'MIN_SIZE_ERROR' | uiTranslate : { min: minFileSizeMB } | async }}\r\n </span>\r\n </div>\r\n <input\r\n [attr.aria-labelledby]=\"success || progress ? '' : 'drag-and-drop'\"\r\n [attr.aria-describedby]=\"'upload-supported-files'\"\r\n [tabIndex]=\"-1\"\r\n class=\"form-control\"\r\n #fileDrop\r\n type=\"file\"\r\n id=\"file\"\r\n [accept]=\"supportedFileTypes\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onChangeUpload($event)\"\r\n />\r\n <label for=\"file\" class=\"transparent\">{{ !!file && success ? '' : (translationContext + 'CHOOSE_FILE') | uiTranslate | async }}</label>\r\n <p\r\n *ngIf=\"applicationTheme === 'classic'; else rebrandedDnDCopyTpl\">{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate | async }}\r\n <span\r\n class=\"semibold\"> {{ (translationContext + 'BROWSE') | uiTranslate | async | lowercase }}</span> {{ (translationContext + 'YOUR_FILES') | uiTranslate | async }}\r\n </p>\r\n <span class=\"upload-text\">{{ maxFileSizeMB }}{{ (translationContext + 'MAX_SIZE') | uiTranslate | async }}</span>\r\n <span *ngIf=\"minFileSizeMB\" class=\"upload-text\">{{ minFileSizeMB }}{{ (translationContext + 'MIN_SIZE') | uiTranslate | async }}</span>\r\n </div>\r\n </div>\r\n <div class=\"upload-change\" [@inOutAnimationChange] *ngIf=\"!!success && !!file && !!progress\">\r\n <ng-container [ngTemplateOutlet]=\"iconTpl\"></ng-container>\r\n <input\r\n [tabIndex]=\"-1\"\r\n [attr.aria-labelledby]=\"success || progress ? '' : 'drag-and-drop'\"\r\n [attr.aria-describedby]=\"success || progress ? '' : 'supported-file-types'\"\r\n class=\"form-control\"\r\n #fileDrop\r\n type=\"file\"\r\n id=\"fileTest\"\r\n [accept]=\"supportedFileTypes\"\r\n (change)=\"onChangeUpload($event)\"\r\n [disabled]=\"disabled\"\r\n />\r\n <label for=\"file\" class=\"transparent\">{{ !!file && success ? '' : (translationContext + 'CHOOSE_FILE') | uiTranslate | async }}</label>\r\n <p\r\n *ngIf=\"applicationTheme === 'classic'; else rebrandedDnDCopyTpl\">{{ (translationContext + 'DRAG_AND_DROP_OR') | uiTranslate | async }} <span\r\n class=\"semibold\">{{ (translationContext + 'CHANGE') | uiTranslate | async | lowercase }}</span> {{ (translationContext + 'YOUR_FILES') | uiTranslate | async }}\r\n </p>\r\n <span class=\"upload-text\"\r\n ><strong>{{ file.name }}</strong></span\r\n >\r\n </div>\r\n <div class=\"upload-progress\" [@inOutAnimationProgress] *ngIf=\"!!progress && !!file && !success\">\r\n <p>{{ file.name }}</p>\r\n <ui-progress-bar [progress]=\"uploadProgress\"\r\n [companyColor]=\"compColor\"\r\n [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\r\n <p class=\"upload-text\">\r\n {{ (translationContext + 'UPLOADING') | uiTranslate | async }} <span>{{ uploadProgress }}</span\r\n >%\r\n </p>\r\n </div>\r\n\r\n <ng-template #iconTpl>\r\n <ui-icon *ngIf=\"applicationTheme === 'classic'; else rebrandedIconTpl\" class=\"upload-icon\"\r\n name=\"File-upload\"></ui-icon>\r\n <ng-template #rebrandedIconTpl>\r\n <ui-icon class=\"upload-icon\"\r\n name=\"Upload\"\r\n [size]=\"'24'\"\r\n [applicationTheme]=\"applicationTheme\"></ui-icon>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #rebrandedDnDCopyTpl>\r\n <p id=\"'drag-and-drop'\">{{ (translationContext + 'DRAG_AND_DROP') | uiTranslate | async }}</p>\r\n </ng-template>\r\n\r\n <div\r\n *ngIf=\"!!supportedFileTypes\"\r\n [attr.theme]=\"applicationTheme\"\r\n class=\"upload-supported-files\"\r\n id=\"upload-supported-files\">\r\n <span >{{ (translationContext + 'SUPPORTED_FILE_TYPES') | uiTranslate | async }}</span>{{ supportedFileTypes }}\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { DragDropDirective } from '../../directives/drag-drop.directive';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\r\nimport { FileUploadComponent } from './file-upload.component';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [FileUploadComponent, DragDropDirective],\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n IconComponentModule,\r\n ProgressBarComponentModule,\r\n UiTranslatePipe,\r\n ],\r\n exports: [FileUploadComponent],\r\n})\r\nexport class FileUploadComponentModule {}\r\n","import { Component, Inject, Input, OnInit, Optional } from '@angular/core';\r\nimport { IconName, IconSize } from '../../components/icon/icon.model';\r\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\r\n\r\n@Component({\r\n selector: 'ui-icon-label',\r\n templateUrl: './icon-label.component.html',\r\n styleUrls: ['./icon-label.component.scss']\r\n})\r\nexport class IconLabelComponent implements OnInit {\r\n\r\n /**\r\n * Icon size\r\n *\r\n * @type {IconSize}\r\n * @memberof IconLabelComponent\r\n */\r\n @Input() iconSize: IconSize = '16';\r\n\r\n /**\r\n * Icon name\r\n *\r\n * @type {IconName}\r\n * @memberof IconLabelComponent\r\n */\r\n @Input() iconName: IconName;\r\n\r\n /**\r\n * Label\r\n *\r\n * @memberof IconLabelComponent\r\n */\r\n @Input() text = '';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof IconLabelComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<ui-icon [name]=\"iconName\" [size]=\"iconSize\" aria-hidden=\"true\"></ui-icon>\r\n<span>{{ text }}</span>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { IconLabelComponent } from './icon-label.component';\r\n\r\n@NgModule({\r\n declarations: [IconLabelComponent],\r\n imports: [CommonModule, IconComponentModule],\r\n exports: [IconLabelComponent],\r\n providers: [],\r\n})\r\nexport class IconLabelComponentModule {}\r\n","export enum LogoTypeEnum {\r\n DEFAULT = 'default',\r\n POWEREDBY = 'poweredby',\r\n REVERSE = 'reverse',\r\n PRIMARY_BRANDMARK_PINK = 'primary-brandmark-pink',\r\n PRIMARY_LOCKUP_PINK = 'primary-lockup-pink',\r\n PRIMARY_WORDMARK_PINK = 'primary-wordmark-pink',\r\n SECONDARY_BRANDMARK_BLACK = 'secondary-brandmark-black',\r\n SECONDARY_BRANDMARK_CREAM = 'secondary-brandmark-cream',\r\n SECONDARY_LOCKUP_BLACK = 'secondary-lockup-black',\r\n SECONDARY_LOCKUP_CREAM = 'secondary-lockup-cream',\r\n SECONDARY_WORDMARK_BLACK = 'secondary-wordmark-black',\r\n SECONDARY_WORDMARK_CREAM = 'secondary-wordmark-cream',\r\n}\r\n\r\nexport enum LogoPathEnum {\r\n DEFAULT = '/images/testgorilla.svg',\r\n POWEREDBY = '/images/poweredbyTG.svg',\r\n REVERSE = '/images/reverseTG.svg',\r\n PRIMARY_BRANDMARK_PINK = '/images/rebrand-logo/primary_brandmark_pink.svg',\r\n PRIMARY_LOCKUP_PINK = '/images/rebrand-logo/primary_lockup_pink.svg',\r\n PRIMARY_WORDMARK_PINK = '/images/rebrand-logo/primary_wordmark_pink.svg',\r\n SECONDARY_BRANDMARK_BLACK = '/images/rebrand-logo/secondary_brandmark_black.svg',\r\n SECONDARY_BRANDMARK_CREAM = '/images/rebrand-logo/secondary_brandmark_cream.svg',\r\n SECONDARY_LOCKUP_BLACK = '/images/rebrand-logo/secondary_lockup_black.svg',\r\n SECONDARY_LOCKUP_CREAM = '/images/rebrand-logo/secondary_lockup_cream.svg',\r\n SECONDARY_WORDMARK_BLACK = '/images/rebrand-logo/secondary_wordmark_black.svg',\r\n SECONDARY_WORDMARK_CREAM = '/images/rebrand-logo/secondary_wordmark_cream.svg',\r\n REBRAND_POWEREDBY = '/images/rebrand-logo/powered-by.svg',\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Optional,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { LogoPathEnum, LogoTypeEnum } from './logo.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-logo',\r\n templateUrl: './logo.component.html',\r\n styleUrls: ['./logo.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LogoComponent implements OnInit, OnChanges {\r\n /**\r\n * Logo type\r\n *\r\n * @type {LogoTypeEnum}\r\n * @memberof LogoComponent\r\n */\r\n @Input() type: LogoTypeEnum = LogoTypeEnum.DEFAULT;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof LogoComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n *\r\n * Label. Only for ppoweredby type\r\n *\r\n * @type {string}\r\n * @memberof LogoComponent\r\n */\r\n @Input() label = 'POWERED BY';\r\n\r\n /**\r\n * Set logo width\r\n * @default 200\r\n * @type {number}\r\n * @memberof LogoComponent\r\n */\r\n @Input() width = 200;\r\n\r\n /**\r\n *\r\n * Allow change logo width\r\n *\r\n * @type {string}\r\n * @memberof LogoComponent\r\n */\r\n @Input() allowResizing = false;\r\n\r\n protected readonly LogoTypeEnum = LogoTypeEnum;\r\n\r\n /**\r\n * @ignore\r\n */\r\n logoURL: String;\r\n\r\n /**\r\n * @ignore\r\n */\r\n setURL = () => {\r\n if (this.applicationTheme === 'classic') {\r\n switch (this.type) {\r\n case LogoTypeEnum.POWEREDBY: {\r\n this.logoURL = LogoPathEnum.POWEREDBY;\r\n break;\r\n }\r\n case LogoTypeEnum.REVERSE: {\r\n this.logoURL = LogoPathEnum.REVERSE;\r\n break;\r\n }\r\n default: {\r\n this.logoURL = LogoPathEnum.DEFAULT;\r\n break;\r\n }\r\n }\r\n } else {\r\n switch (this.type) {\r\n case LogoTypeEnum.PRIMARY_BRANDMARK_PINK: {\r\n this.logoURL = LogoPathEnum.PRIMARY_BRANDMARK_PINK;\r\n break;\r\n }\r\n case LogoTypeEnum.PRIMARY_LOCKUP_PINK: {\r\n this.logoURL = LogoPathEnum.PRIMARY_LOCKUP_PINK;\r\n break;\r\n }\r\n case LogoTypeEnum.PRIMARY_WORDMARK_PINK: {\r\n this.logoURL = LogoPathEnum.PRIMARY_WORDMARK_PINK;\r\n break;\r\n }\r\n case LogoTypeEnum.SECONDARY_BRANDMARK_BLACK: {\r\n this.logoURL = LogoPathEnum.SECONDARY_BRANDMARK_BLACK;\r\n break;\r\n }\r\n case LogoTypeEnum.SECONDARY_BRANDMARK_CREAM: {\r\n this.logoURL = LogoPathEnum.SECONDARY_BRANDMARK_CREAM;\r\n break;\r\n }\r\n case LogoTypeEnum.SECONDARY_LOCKUP_BLACK: {\r\n this.logoURL = LogoPathEnum.SECONDARY_LOCKUP_BLACK;\r\n break;\r\n }\r\n case LogoTypeEnum.SECONDARY_LOCKUP_CREAM: {\r\n this.logoURL = LogoPathEnum.SECONDARY_LOCKUP_CREAM;\r\n break;\r\n }\r\n case LogoTypeEnum.SECONDARY_WORDMARK_BLACK: {\r\n this.logoURL = LogoPathEnum.SECONDARY_WORDMARK_BLACK;\r\n break;\r\n }\r\n case LogoTypeEnum.SECONDARY_WORDMARK_CREAM: {\r\n this.logoURL = LogoPathEnum.SECONDARY_WORDMARK_CREAM;\r\n break;\r\n }\r\n case LogoTypeEnum.POWEREDBY: {\r\n this.logoURL = LogoPathEnum.REBRAND_POWEREDBY;\r\n break;\r\n }\r\n default: {\r\n this.logoURL = LogoPathEnum.PRIMARY_LOCKUP_PINK;\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n ngOnInit(): void {\r\n this.setURL();\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.setURL();\r\n if (changes['width']) {\r\n this.changeWidth(changes['width'].currentValue);\r\n }\r\n }\r\n\r\n private changeWidth(changedWidth: number): void {\r\n if (changedWidth >= 200 || this.allowResizing) {\r\n this.width = changedWidth;\r\n } else {\r\n this.width = 200;\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"applicationTheme === 'classic'; else rebrandLogo\">\r\n <img [attr.src]=\"logoURL\" [alt]=\"type\">\r\n</ng-container>\r\n\r\n<ng-template #rebrandLogo>\r\n <div *ngIf=\"label && type === LogoTypeEnum.POWEREDBY; else others\" class=\"logo-label\" [style.width]=\"width + 'px'\">\r\n <h3 class=\"bold\">{{ label }}</h3>\r\n <img [attr.src]=\"logoURL\" [alt]=\"type\" [width]=\"width\">\r\n </div>\r\n\r\n <ng-template #others>\r\n <img [attr.src]=\"logoURL\" [alt]=\"type\" [width]=\"width\">\r\n </ng-template>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { LogoComponent } from './logo.component';\r\nimport { NgIf } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [LogoComponent],\r\n imports: [NgIf],\r\n exports: [LogoComponent],\r\n})\r\nexport class LogoComponentModule {}\r\n","import { IconSize } from '../icon/icon.model';\r\n\r\nexport enum AvatarSize {\r\n SMALL = 'small',\r\n SMALL_MEDIUM = 'smallMedium',\r\n MEDIUM = 'medium',\r\n LARGE = 'large',\r\n}\r\n\r\nexport const iconSize: Record<string, IconSize> = {\r\n small: '16',\r\n medium: '24',\r\n large: '80',\r\n};\r\n\r\nexport enum AvatarBackgroundColor {\r\n PINK = '#FFE6FA',\r\n BLUE ='#D9E8FF',\r\n GREEN = '#E2F4B3',\r\n ORANGE = '#FFE1B3',\r\n RED = '#FFAC9A',\r\n}\r\n\r\nexport type BackgroundAvatarColorType = 'red' | 'blue' | 'green' | 'orange' | 'pink';\r\n\r\n\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'nameInitials',\r\n})\r\nexport class NameInitialsPipe implements PipeTransform {\r\n transform(value: string): string {\r\n const initials = value.split(' ').filter(Boolean);\r\n if (initials.length > 1) {\r\n return initials\r\n .map((initial, i) => (i === 0 || i === initials.length - 1 ? initial[0].toUpperCase() : ''))\r\n .join('');\r\n } else {\r\n const firstLetters = value.substring(0, 2);\r\n return `${firstLetters[0]?.toUpperCase() ?? ''}${firstLetters[1]?.toLowerCase() ?? ''}`;\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\r\nimport {\r\n AvatarSize,\r\n BackgroundAvatarColorType,\r\n iconSize,\r\n AvatarBackgroundColor\r\n} from './avatar.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n})\r\nexport class AvatarComponent {\r\n /**\r\n * Input property for specifying the size of the avatar.\r\n * @type {AvatarSize}\r\n * @default AvatarSize.SMALL\r\n * @memberof AvatarComponent\r\n */\r\n @Input() size = AvatarSize.SMALL;\r\n /**\r\n * Input property for specifying the URL of the image to display in the avatar.\r\n * @type {string}\r\n * @memberof AvatarComponent\r\n */\r\n @Input() imageUrl = '';\r\n\r\n /**\r\n * Input property for specifying the initials to display in the avatar.\r\n * @type {string}\r\n * @memberof AvatarComponent\r\n */\r\n @Input() name = '';\r\n\r\n /**\r\n * Input property for specifying the tooltip text for edit.\r\n * @type {string}\r\n * @memberof AvatarComponent\r\n */\r\n @Input() tooltipText = '';\r\n\r\n /**\r\n * Input property that makes avatar editable.\r\n * @type {boolean}\r\n * @memberof AvatarComponent\r\n */\r\n @Input() allowEdit = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme where\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof AvatarComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n *\r\n * Defines the background color\r\n *\r\n * @type {BackgroundAvatarColorType}\r\n * @memberof AvatarComponent\r\n */\r\n @Input() set backgroundColor(colorName: BackgroundAvatarColorType) {\r\n this.backgroundAvatarColor = AvatarBackgroundColor[colorName.toUpperCase() as keyof typeof AvatarBackgroundColor];\r\n }\r\n\r\n /**\r\n * Event emitted when the edit button is clicked.\r\n * @type {Event}\r\n * @memberof AvatarComponent\r\n */\r\n @Output() editClick = new EventEmitter<Event>();\r\n\r\n protected backgroundAvatarColor: string;\r\n protected readonly iconSize = iconSize;\r\n protected readonly avatarSize = AvatarSize;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n protected onEditClick(event: Event): void {\r\n this.editClick.emit(event);\r\n }\r\n}\r\n","<div\r\n class=\"avatar-container\"\r\n [attr.type]=\"!imageUrl && !name ? 'icon' : 'initials'\"\r\n [ngClass]=\"[size]\"\r\n [attr.theme]=\"applicationTheme\"\r\n [ngStyle]=\"{ backgroundColor: backgroundAvatarColor }\"\r\n>\r\n <span *ngIf=\"name && !imageUrl\">\r\n {{ name | nameInitials }}\r\n </span>\r\n <img [attr.aria-hidden]=\"true\" *ngIf=\"imageUrl\" [attr.src]=\"imageUrl\" [alt]=\"\">\r\n <ui-icon\r\n *ngIf=\"!imageUrl && !name\"\r\n [attr.aria-hidden]=\"true\"\r\n [color]=\"applicationTheme === 'classic' ? 'dark' : 'rebrand-black'\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [size]=\"iconSize[size]\"\r\n [name]=\"'User-profile'\"\r\n ></ui-icon>\r\n <div class=\"edit-avatar\" *ngIf=\"size === avatarSize.LARGE && allowEdit\">\r\n <ui-button\r\n [applicationTheme]=\"applicationTheme\"\r\n [companyColor]=\"'black'\"\r\n [size]=\"'small'\"\r\n [iconName]=\"'Edit'\"\r\n [variant]=\"'icon-button'\"\r\n [tooltip]=\"tooltipText\"\r\n [ariaLabel]=\"(('AVATAR.EDIT_AVATAR') | uiTranslate | async)!\"\r\n (buttonClickEvent)=\"onEditClick($event)\"\r\n ></ui-button>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AvatarComponent } from './avatar.component';\r\nimport { NameInitialsPipe } from '../../pipes/name-initials.pipe';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { UiTranslatePipe } from \"../../pipes/ui-translate.pipe\";\r\n\r\n@NgModule({\r\n declarations: [AvatarComponent, NameInitialsPipe],\r\n imports: [CommonModule, IconComponentModule, MatTooltipModule, ButtonComponentModule, UiTranslatePipe],\r\n exports: [AvatarComponent],\r\n})\r\nexport class AvatarComponentModule {}\r\n","import {\r\n Component,\r\n computed,\r\n EventEmitter,\r\n input,\r\n Input,\r\n InputSignal,\r\n Output,\r\n Signal,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { IRoute, MenuItem } from \"../navbar.model\";\r\nimport { AsyncPipe, NgClass, NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\r\nimport { IconComponentModule } from \"../../icon/icon.component.module\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatMenuModule } from \"@angular/material/menu\";\r\nimport { UiTranslatePipe } from \"../../../pipes/ui-translate.pipe\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { AccordionComponentModule } from \"../../accordion/accordion.component.module\";\r\nimport { AvatarComponentModule } from \"../../avatar/avatar.component.module\";\r\nimport { ButtonComponentModule } from \"../../button/button.component.module\";\r\nimport { AvatarSize } from \"../../avatar/avatar.model\";\r\nimport { ApplicationTheme } from \"../../../models/application-theme.model\";\r\n\r\n@Component({\r\n selector: 'ui-mobile-navbar-side-sheet',\r\n templateUrl: './mobile-navbar-side-sheet.component.html',\r\n styleUrls: ['./mobile-navbar-side-sheet.component.scss'],\r\n standalone: true,\r\n imports: [\r\n NgForOf,\r\n NgClass,\r\n IconComponentModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n UiTranslatePipe,\r\n MatButtonModule,\r\n AccordionComponentModule,\r\n NgIf,\r\n NgTemplateOutlet,\r\n AvatarComponentModule,\r\n ButtonComponentModule,\r\n AsyncPipe,\r\n ],\r\n})\r\nexport class MobileNavbarSideSheetComponent {\r\n @Input() routes: IRoute[] = [];\r\n activedRoute: InputSignal<string> = input('');\r\n @Input() email = '';\r\n @Input() userName = '';\r\n @Input() menuItems: MenuItem[] = [];\r\n @Input() contentTemplateRef: TemplateRef<any>;\r\n @Input() isDesktop = false;\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n @Output() navigateEvent: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() menuItemClicked: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() logoutEvent: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n protected readonly translationContext = 'NAVBAR.';\r\n protected avatarSize = AvatarSize;\r\n\r\n activeRoutesMap:Signal<Map<string, boolean>> = computed(() => {\r\n const currentRoute = this.activedRoute();\r\n return new Map(this.routes.map(route => [route.id, currentRoute?.startsWith(route.id)]));\r\n });\r\n\r\n navigate(routeId: string) {\r\n this.navigateEvent.emit(`/${routeId}`);\r\n }\r\n\r\n logout(): void {\r\n this.logoutEvent.emit();\r\n }\r\n\r\n clickMenuItem(id: string) {\r\n this.menuItemClicked.emit(id);\r\n }\r\n}\r\n","<div class=\"mobile-navbar-container\">\r\n <ng-container *ngIf=\"isDesktop\" [ngTemplateOutlet]=\"userInfo\"></ng-container>\r\n\r\n <div class=\"routes\">\r\n <div\r\n *ngFor=\"let route of routes\"\r\n [attr.data-testid]=\"route.id\"\r\n data-test-role=\"nav-route\"\r\n (click)=\"navigate(route.id)\"\r\n class=\"route\"\r\n [ngClass]=\"{ active: activeRoutesMap().get(route.id) }\"\r\n >\r\n <span>{{ route.title }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"settings\">\r\n <ng-container *ngFor=\"let e of menuItems\">\r\n <div *ngIf=\"e\" class=\"menu-item\">\r\n <ui-button\r\n [attr.data-testid]=\"e.id\"\r\n data-test-role=\"menu-item\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [fullWidth]=\"true\"\r\n [disabledScaleOnClick]=\"true\"\r\n [variant]=\"'menuCell'\"\r\n iconPosition=\"left\"\r\n [iconName]=\"e.icon\"\r\n [label]=\"e.text\"\r\n (buttonClickEvent)=\"clickMenuItem(e.id)\"\r\n (keydown.Tab)=\"$event.stopPropagation()\"\r\n (keydown.shift.tab)=\"$event.stopPropagation()\"\r\n [ariaLabel]=\"e.text + '--' + e.text\"\r\n ></ui-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<div class=\"bottom-content\" [ngClass]=\"{ desktop: isDesktop }\">\r\n <ng-container *ngIf=\"!isDesktop\" [ngTemplateOutlet]=\"contentTemplateRef\"></ng-container>\r\n <ng-container *ngIf=\"isDesktop; else tablet\">\r\n <div class=\"menu-item\">\r\n <ui-button\r\n data-testid=\"logout-button\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [fullWidth]=\"true\"\r\n [disabledScaleOnClick]=\"true\"\r\n [variant]=\"'menuCell'\"\r\n iconPosition=\"left\"\r\n [iconName]=\"'Logout-in-line'\"\r\n [label]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\r\n (buttonClickEvent)=\"logout()\"\r\n (keydown.Tab)=\"$event.stopPropagation()\"\r\n (keydown.shift.tab)=\"$event.stopPropagation()\"\r\n ></ui-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #tablet>\r\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\r\n </ng-template>\r\n</div>\r\n\r\n<ng-template #userInfo>\r\n <div class=\"user-info\" [ngClass]=\"{ desktop: isDesktop }\">\r\n <ui-avatar [size]=\"avatarSize.MEDIUM\" [name]=\"userName\"></ui-avatar>\r\n <div class=\"details-container\">\r\n <div class=\"name-container\">\r\n <span class=\"user-name\">{{ userName }}</span>\r\n <span class=\"user-email\">{{ email }}</span>\r\n </div>\r\n <ui-button\r\n *ngIf=\"!isDesktop\"\r\n data-testid=\"logout-button\"\r\n [tooltip]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\r\n [iconName]=\"'Logout-in-line'\"\r\n [applicationTheme]=\"'light'\"\r\n [variant]=\"'icon-button'\"\r\n (click)=\"logout()\"\r\n ></ui-button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","export enum ScreenBreakpoints {\r\n MOBILE = 600,\r\n TABLET = 1023,\r\n}\r\n","import { ApplicationRef, Injectable, ViewContainerRef } from '@angular/core';\r\nimport { SideSheetConfig } from './side-sheet.model';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SideSheetService {\r\n private componentRef$ = new Subject<SideSheetConfig | null>();\r\n\r\n constructor(private applicationRef: ApplicationRef) {}\r\n\r\n open<T>(config: SideSheetConfig): T {\r\n const { componentRef, ...configFields } = config;\r\n const rootViewContainerRef = this.applicationRef.components[0].injector.get(ViewContainerRef);\r\n const componentReference = rootViewContainerRef.createComponent(config.componentRef);\r\n this.componentRef$.next({ ...configFields, componentRef: componentReference });\r\n return componentReference.instance as T;\r\n }\r\n\r\n close(): void {\r\n this.componentRef$.next(null);\r\n }\r\n\r\n getComponentRef(): Observable<SideSheetConfig | null> {\r\n return this.componentRef$.asObservable();\r\n }\r\n}\r\n","import {\r\n Component,\r\n DestroyRef,\r\n EventEmitter, HostListener,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { SideSheetService } from './side-sheet.service';\r\nimport { SideSheetConfig, SideSheetPosition } from './side-sheet.model';\r\nimport { MatDrawer } from '@angular/material/sidenav';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-side-sheet',\r\n templateUrl: './side-sheet.component.html',\r\n styleUrls: ['./side-sheet.component.scss'],\r\n})\r\nexport class SideSheetComponent implements OnInit {\r\n /**\r\n * Set position. Defaults \"end\"\r\n *\r\n * @type {SideSheetPosition}\r\n * @memberof SideSheetComponent\r\n */\r\n @Input() position: SideSheetPosition = 'end';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof SideSheetComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n @Output() openChange = new EventEmitter<boolean>();\r\n\r\n @ViewChild('drawer') drawer: MatDrawer;\r\n @ViewChild('container', { read: ViewContainerRef, static: false }) container: ViewContainerRef;\r\n\r\n @HostListener('keydown.esc', ['$event'])\r\n onEscPress(_: KeyboardEvent): void {\r\n void this.drawer.close();\r\n }\r\n\r\n protected title = '';\r\n protected showBackButton = false;\r\n protected showTitleTooltip = false;\r\n protected showLogo = false;\r\n protected componentRef$ = this.sideSheetService.getComponentRef();\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private sideSheetService: SideSheetService,\r\n private destroyRef: DestroyRef,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setComponentRef();\r\n }\r\n\r\n private setComponentRef(): void {\r\n this.componentRef$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(config => {\r\n if (config && config.componentRef && this.container && this.drawer) {\r\n this.setConfig(config);\r\n this.drawer.toggle();\r\n this.container.clear();\r\n this.container.insert(config.componentRef.hostView);\r\n } else if (!config) {\r\n this.drawer.toggle();\r\n this.container.clear();\r\n }\r\n });\r\n }\r\n\r\n private setConfig(config: SideSheetConfig): void {\r\n this.title = config.title ?? '';\r\n this.showLogo = config.showLogo ?? false;\r\n this.showBackButton = config.showBackButton ?? false;\r\n this.showTitleTooltip = config.showTitleTooltip ?? false;\r\n\r\n if (config.closed) {\r\n config.closed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\r\n void this.drawer.close();\r\n });\r\n }\r\n }\r\n\r\n protected onClose(): void {\r\n this.drawer.toggle();\r\n }\r\n\r\n onOpenChange(isOpened: boolean): void {\r\n this.openChange.emit(isOpened);\r\n }\r\n}\r\n","<ng-container>\r\n <mat-drawer-container class=\"side-sheet-container\" [attr.theme]=\"applicationTheme\" [hasBackdrop]=\"true\">\r\n <mat-drawer (closedStart)=\"onOpenChange(false)\" (openedStart)=\"onOpenChange(true)\" #drawer [mode]=\"'over'\" [autoFocus]=\"false\" class=\"side-sheet-content\" [position]=\"position\">\r\n <div class=\"header\">\r\n <div class=\"title\">\r\n <ui-button\r\n *ngIf=\"showBackButton\"\r\n [variant]=\"'icon-button'\"\r\n [iconName]=\"applicationTheme === 'classic' ? 'Arrow_left' : 'Arrow-chevron-left-filled'\"\r\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [tooltip]=\"(('COMMON.BACK') | uiTranslate | async)!\"\r\n (click)=\"onClose()\"\r\n ></ui-button>\r\n <span\r\n *ngIf=\"title\"\r\n [matTooltip]=\"showTitleTooltip ? title : ''\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n >{{ title }}</span>\r\n <ui-logo *ngIf=\"showLogo\"></ui-logo>\r\n </div>\r\n <ui-button\r\n [variant]=\"'icon-button'\"\r\n [iconName]=\"'Close'\"\r\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [tooltip]=\"(('COMMON.CLOSE') | uiTranslate | async)!\"\r\n (click)=\"onClose()\"\r\n ></ui-button>\r\n </div>\r\n <ng-container #container></ng-container>\r\n </mat-drawer>\r\n <mat-drawer-content>\r\n <ng-content></ng-content>\r\n </mat-drawer-content>\r\n </mat-drawer-container>\r\n</ng-container>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n DestroyRef,\r\n EventEmitter,\r\n Inject,\r\n input,\r\n Input,\r\n InputSignal,\r\n Optional,\r\n Output,\r\n Signal,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { IRoute, MenuItem, MenuState, ScreenSize } from './navbar.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { map, ReplaySubject, startWith, Subject, switchMap, tap } from 'rxjs';\r\nimport { SideSheetService } from '../side-sheet/side-sheet.service';\r\nimport { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { ScreenBreakpoints } from '../../models/screen-breakpoints.model';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { LogoTypeEnum } from '../logo/logo.model';\r\nimport { AvatarSize } from '../avatar/avatar.model';\r\n\r\n@Component({\r\n selector: 'ui-navbar',\r\n templateUrl: './navbar.component.html',\r\n styleUrls: ['./navbar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NavbarComponent {\r\n /**\r\n * Routes object\r\n *\r\n * @type {IRoute}\r\n * @memberof NavbarComponent\r\n * @ignore\r\n */\r\n @Input() routes: IRoute[] = [];\r\n\r\n /**\r\n * Actived route id\r\n *\r\n * @type {InputSignal<string>}\r\n * @memberof NavbarComponent\r\n */\r\n activedRoute: InputSignal<string> = input('');\r\n\r\n /**\r\n * User first name and last name\r\n *\r\n * @type {string}\r\n * @memberof NavbarComponent\r\n */\r\n @Input() userName = '';\r\n\r\n /**\r\n * User email\r\n *\r\n * @type {string}\r\n * @memberof NavbarComponent\r\n */\r\n @Input() email = '';\r\n\r\n /**\r\n * Menu items to show in menu above the Log out button\r\n *\r\n * @type {string}\r\n * @memberof NavbarComponent\r\n */\r\n @Input() menuItems: MenuItem[] = [];\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof NavbarComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n *\r\n * It's ng-content for mobile version\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof NavbarComponent\r\n */\r\n @Input() contentTemplateRef: TemplateRef<any>;\r\n\r\n /**\r\n * Mobile breakpoint\r\n * @type {number}\r\n * @memberof NavbarComponent\r\n */\r\n @Input() set mobileBreakpoint(value: number) {\r\n if (value) {\r\n this._mobileBreakpoint$.next(value);\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * Show avatar with user initials\r\n *\r\n * @type {boolean}\r\n * @memberof NavbarComponent\r\n */\r\n @Input() isAvatar = true;\r\n\r\n /**\r\n * Sets class for the menu\r\n *\r\n * @type {string}\r\n * @memberof NavbarComponent\r\n */\r\n @Input() menuClass = '';\r\n\r\n /**\r\n * @ignore\r\n */\r\n @Output() navigateEvent: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n /**\r\n * @ignore\r\n */\r\n @Output() menuItemClicked: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n /**\r\n * @ignore\r\n */\r\n @Output() logoutEvent: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() menuState: EventEmitter<MenuState> = new EventEmitter<MenuState>();\r\n\r\n protected screenSize: ScreenSize = 'desktop';\r\n protected readonly translationContext = 'NAVBAR.';\r\n private readonly _mobileBreakpoint$ = new ReplaySubject<number>(1);\r\n private readonly _tabletBreakpoint$ = new ReplaySubject<number>(1);\r\n private readonly mobileBreakpointObs$ = this._mobileBreakpoint$.pipe(startWith(ScreenBreakpoints.MOBILE));\r\n private readonly tabletBreakpointObs$ = this._tabletBreakpoint$.pipe(startWith(ScreenBreakpoints.TABLET));\r\n protected readonly isMobile$ = this.mobileBreakpointObs$.pipe(\r\n switchMap(breakpoint => this.breakpointObserver.observe(`(max-width: ${breakpoint}px)`)\r\n .pipe(\r\n map(v => v.matches),\r\n tap(isMobile => isMobile ? this.screenSize = 'mobile' : 'desktop')\r\n ))\r\n );\r\n protected readonly isTablet$ = this.tabletBreakpointObs$.pipe(\r\n switchMap(breakpoint => this.breakpointObserver.observe(`(max-width: ${breakpoint}px)`)\r\n .pipe(\r\n map(v => v.matches),\r\n tap(isTablet => isTablet ? this.screenSize = 'tablet' : 'desktop')\r\n )\r\n )\r\n );\r\n protected isOpened = false;\r\n protected logoType = LogoTypeEnum;\r\n\r\n activeRoutesMap:Signal<Map<string, boolean>> = computed(() => {\r\n const currentRoute = this.activedRoute();\r\n return new Map(this.routes.map(route => [route.id, currentRoute?.startsWith(route.id)]));\r\n });\r\n\r\n constructor(\r\n private readonly breakpointObserver: BreakpointObserver,\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private sideSheetService: SideSheetService,\r\n private destroyRef: DestroyRef,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n openMobileMenu(): void {\r\n const isSideSheetClosed$ = new Subject<void>();\r\n const navbarSideSheetComponent = this.sideSheetService.open<MobileNavbarSideSheetComponent>({\r\n componentRef: MobileNavbarSideSheetComponent,\r\n showLogo: true,\r\n closed: isSideSheetClosed$,\r\n });\r\n\r\n navbarSideSheetComponent.userName = this.userName;\r\n navbarSideSheetComponent.menuItems = this.menuItems;\r\n navbarSideSheetComponent.activedRoute = this.activedRoute;\r\n navbarSideSheetComponent.routes = this.routes;\r\n navbarSideSheetComponent.email = this.email;\r\n navbarSideSheetComponent.contentTemplateRef = this.contentTemplateRef;\r\n navbarSideSheetComponent.applicationTheme = this.applicationTheme;\r\n\r\n navbarSideSheetComponent.logoutEvent.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\r\n this.logoutEvent.emit();\r\n isSideSheetClosed$.next();\r\n });\r\n\r\n navbarSideSheetComponent.menuItemClicked.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\r\n this.menuItemClicked.emit(value);\r\n isSideSheetClosed$.next();\r\n });\r\n\r\n navbarSideSheetComponent.navigateEvent.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\r\n this.navigateEvent.emit(value);\r\n isSideSheetClosed$.next();\r\n });\r\n }\r\n\r\n navigate(routeId: string) {\r\n this.navigateEvent.emit(`/${routeId}`);\r\n }\r\n\r\n logout(): void {\r\n this.logoutEvent.emit();\r\n }\r\n\r\n clickMenuItem(id: string) {\r\n this.menuItemClicked.emit(id);\r\n }\r\n\r\n onChangeMenuState(isOpened: boolean, screenSize: ScreenSize) {\r\n this.isOpened = isOpened;\r\n this.menuState.emit({ isOpened, screenSize });\r\n }\r\n\r\n protected readonly AvatarSize = AvatarSize;\r\n}\r\n","<ui-side-sheet\r\n [applicationTheme]=\"applicationTheme\"\r\n (openChange)=\"onChangeMenuState($event, screenSize)\"\r\n [position]=\"(isMobile$ | async) ? 'start' : 'end'\"\r\n>\r\n <mat-toolbar [attr.theme]=\"applicationTheme\">\r\n <div class=\"custom-toolbar row\">\r\n <ui-logo\r\n [applicationTheme]=\"applicationTheme\"\r\n class=\"logo\"\r\n (click)=\"navigate('')\"\r\n [allowResizing]=\"true\"\r\n [width]=\"(isMobile$ | async) ? 160 : (isTablet$ | async) ? 30 : 160\"\r\n [type]=\"\r\n (isMobile$ | async)\r\n ? logoType.DEFAULT\r\n : (isTablet$ | async)\r\n ? logoType.PRIMARY_BRANDMARK_PINK\r\n : logoType.DEFAULT\r\n \"\r\n ></ui-logo>\r\n\r\n <ui-button\r\n (click)=\"openMobileMenu()\"\r\n *ngIf=\"isMobile$ | async\"\r\n [variant]=\"'text'\"\r\n [companyColor]=\"'#242424'\"\r\n [applicationTheme]=\"'light'\"\r\n [iconName]=\"isOpened ? 'Close-in-line' : 'Menu-burger-in-line'\"\r\n [justIcon]=\"true\"\r\n ></ui-button>\r\n\r\n <div class=\"navigation row\">\r\n <a\r\n *ngFor=\"let route of routes\"\r\n (click)=\"navigate(route.id); $event.preventDefault()\"\r\n [href]=\"route.id\"\r\n [attr.data-testid]=\"route.id\"\r\n data-test-role=\"nav-route\"\r\n [ngClass]=\"{ active: activeRoutesMap().get(route.id) }\"\r\n >\r\n <ui-badge\r\n *ngIf=\"route?.badgeOptions\"\r\n [label]=\"route.badgeOptions!.text\"\r\n [rebrandColor]=\"route.badgeOptions!.color\"\r\n ></ui-badge>\r\n <span>{{ route.title }}</span>\r\n </a>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <div class=\"custom-actions\">\r\n <ng-content select=\"[actions]\"></ng-content>\r\n </div>\r\n\r\n <button mat-button class=\"profile-menu\" *ngIf=\"isTablet$ | async; else pc\" (click)=\"openMobileMenu()\">\r\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\r\n </button>\r\n\r\n <ng-template #pc>\r\n <button\r\n mat-button\r\n class=\"profile-menu\"\r\n [disableRipple]=\"applicationTheme !== 'classic'\"\r\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\r\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\r\n [matMenuTriggerFor]=\"menu\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\r\n </button>\r\n </ng-template>\r\n\r\n <ng-template #buttonContent>\r\n <div class=\"profile-button-content\">\r\n <ng-container *ngIf=\"isAvatar; else onlyName\">\r\n <ui-avatar\r\n data-testid=\"profile-button\"\r\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [name]=\"userName\"\r\n [size]=\"AvatarSize.SMALL_MEDIUM\"\r\n ></ui-avatar>\r\n </ng-container>\r\n\r\n <ng-template #onlyName>\r\n {{ userName }}\r\n </ng-template>\r\n\r\n <mat-icon *ngIf=\"applicationTheme === 'classic'; else newThemeIcon\" iconPositionEnd>expand_more</mat-icon>\r\n <ng-template #newThemeIcon>\r\n <ui-icon\r\n [size]=\"'24'\"\r\n *ngIf=\"!isAvatar\"\r\n [name]=\"menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\"\r\n [applicationTheme]=\"applicationTheme\"\r\n ></ui-icon>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </mat-toolbar>\r\n\r\n <ng-content></ng-content>\r\n\r\n <mat-menu [class]=\"menuClass\" #menu=\"matMenu\">\r\n <ng-container *ngIf=\"applicationTheme === 'classic'; else newTheme\">\r\n <button\r\n *ngFor=\"let e of menuItems\"\r\n mat-menu-item\r\n (click)=\"clickMenuItem(e.id)\"\r\n [attr.data-testid]=\"e.id\"\r\n data-test-role=\"profile-menu-item\"\r\n >\r\n <div class=\"menu-item\">\r\n <ui-icon *ngIf=\"e?.icon\" [name]=\"e.icon\" size=\"24\"></ui-icon>\r\n {{ e.text }}\r\n </div>\r\n </button>\r\n\r\n <button data-testid=\"logout-button\" mat-menu-item (click)=\"logout()\">\r\n <mat-icon>power_settings_new</mat-icon>\r\n {{ translationContext + 'LOG_OUT' | uiTranslate | async }}\r\n </button>\r\n </ng-container>\r\n\r\n <ng-template #newTheme>\r\n <ui-mobile-navbar-side-sheet\r\n [isDesktop]=\"true\"\r\n [menuItems]=\"menuItems\"\r\n [userName]=\"userName\"\r\n [routes]=\"routes\"\r\n [activedRoute]=\"activedRoute()\"\r\n [email]=\"email\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [contentTemplateRef]=\"contentTemplateRef\"\r\n (menuItemClicked)=\"clickMenuItem($event)\"\r\n (logoutEvent)=\"logout()\"\r\n ></ui-mobile-navbar-side-sheet>\r\n </ng-template>\r\n </mat-menu>\r\n</ui-side-sheet>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SideSheetComponent } from './side-sheet.component';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { LogoComponentModule } from \"../logo/logo.component.module\";\r\n\r\n@NgModule({\r\n declarations: [SideSheetComponent],\r\n exports: [SideSheetComponent],\r\n imports: [\r\n CommonModule,\r\n IconComponentModule,\r\n ButtonComponentModule,\r\n MatTooltipModule,\r\n MatSidenavModule,\r\n UiTranslatePipe,\r\n LogoComponentModule,\r\n ],\r\n})\r\nexport class SideSheetComponentModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { LogoComponentModule } from '../logo/logo.component.module';\r\nimport { NavbarComponent } from './navbar.component';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { AvatarComponentModule } from \"../avatar/avatar.component.module\";\r\nimport { SideSheetComponentModule } from \"../side-sheet/side-sheet.component.module\";\r\nimport { ButtonComponentModule } from \"../button/button.component.module\";\r\nimport { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';\r\nimport { BadgeComponentModule } from \"../badge/badge.component.module\";\r\n\r\n@NgModule({\r\n declarations: [NavbarComponent],\r\n imports: [\r\n CommonModule,\r\n MatToolbarModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatRippleModule,\r\n MatMenuModule,\r\n LogoComponentModule,\r\n IconComponentModule,\r\n UiTranslatePipe,\r\n AvatarComponentModule,\r\n SideSheetComponentModule,\r\n ButtonComponentModule,\r\n MobileNavbarSideSheetComponent,\r\n BadgeComponentModule\r\n ],\r\n exports: [NavbarComponent],\r\n})\r\nexport class NavbarComponentModule {}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { PageEvent } from '@angular/material/paginator';\r\n\r\n@Component({\r\n selector: 'ui-paginator',\r\n templateUrl: './deprecated-paginator.component.html',\r\n styleUrls: ['./deprecated-paginator.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DeprecatedPaginatorComponent implements OnInit {\r\n // TODO: Some properties and methods are ignored on purpose because of a current issue with compodoc and angular 13\r\n // https://github.com/StoryFnbookjs/StoryFnbook/issues/16865\r\n // https://github.com/StoryFnbookjs/StoryFnbook/issues/17004\r\n\r\n /**\r\n * Paginator size options\r\n *\r\n * @type {number[]}\r\n * @memberof PaginatorComponent\r\n */\r\n readonly pageSizeOptions = [10, 25, 50];\r\n\r\n /**\r\n * Data length\r\n *\r\n * @type {number}\r\n * @memberof PaginatorComponent\r\n */\r\n @Input() length = 0;\r\n\r\n /**\r\n * Default page size\r\n *\r\n * @type {number}\r\n * @memberof PaginatorComponent\r\n */\r\n @Input() defaultPageSize = 25;\r\n\r\n /**\r\n * @ignore\r\n */\r\n @Output() paginatorChangedEvent: EventEmitter<PageEvent> = new EventEmitter<PageEvent>();\r\n\r\n /**\r\n * @ignore\r\n */\r\n ngOnInit(): void {}\r\n\r\n constructor() {}\r\n\r\n paginatorChanged(paginator: PageEvent) {\r\n this.paginatorChangedEvent.emit(paginator);\r\n }\r\n}\r\n","<mat-paginator [length]=\"length\"\r\n [pageSize]=\"defaultPageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n (page)=\"paginatorChanged($event)\">\r\n</mat-paginator>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { DeprecatedPaginatorComponent } from './deprecated-paginator.component';\r\n\r\n@NgModule({\r\n declarations: [DeprecatedPaginatorComponent],\r\n imports: [CommonModule, MatPaginatorModule],\r\n exports: [DeprecatedPaginatorComponent],\r\n providers: [],\r\n})\r\nexport class DeprecatedPaginatorComponentModule {}\r\n","/* eslint-disable no-underscore-dangle */\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Host,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatRadioButton } from '@angular/material/radio';\r\nimport { RadioButtonEventType } from './radio-button.model';\r\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\r\nimport { ControlValueAccessor, NgControl } from \"@angular/forms\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { Alignment } from '../../models/checkbox.model';\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\n\r\n@Component({\r\n selector: 'ui-radio-button',\r\n templateUrl: './radio-button.component.html',\r\n styleUrls: ['./radio-button.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n // Needs to be removed since it causes some a11y issues (https://github.com/angular/components/issues/21266).\r\n '[attr.tabindex]': 'null',\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.aria-describedby]': 'null',\r\n // Note: under normal conditions focus shouldn't land on this element, however it may be\r\n // programmatically set, for example inside of a focus trap, in this case we want to forward\r\n // the focus to the mat-radio-button element.\r\n '(focus)': 'radioElement.focus()',\r\n },\r\n})\r\nexport class RadioButtonComponent implements OnInit, OnChanges, ControlValueAccessor, AfterViewInit, OnDestroy {\r\n @HostListener('click', ['$event'])\r\n onHostClick(event: any): void {\r\n if (event.target?.classList?.value?.includes?.('mat-mdc-radio-button') || event.target?.classList?.value?.includes?.('mdc-form-field')) {\r\n this.radioElement._inputElement.nativeElement.click();\r\n }\r\n }\r\n /**\r\n * Determines whether the radio button is disabled.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Determines whether the radio button is checked.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof RadioButtonComponent\r\n */\r\n //@Input() selected = false;\r\n\r\n _selected = false;\r\n @Input()\r\n get selected() {\r\n return this._selected;\r\n }\r\n set selected(selected: boolean) {\r\n this._selected = selected;\r\n }\r\n\r\n /**\r\n * Determines whether the radio button can be unchecked.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() allowUnselect = false;\r\n\r\n /**\r\n * Determines the radio button color.\r\n * Default: Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof RadioButtonComponent\r\n */\r\n @HostBinding('style.--color')\r\n @Input()\r\n companyColor: string | null = null;\r\n\r\n /**\r\n * Used to group radios for unique selection.\r\n *\r\n * @type {string}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() name = '';\r\n\r\n /**\r\n * Text content will be applied to the input element if present.\r\n *\r\n * @type {string}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() label = '';\r\n\r\n /**\r\n * Determines whether the radio button is a multiple choice cell.\r\n * Default: false\r\n *\r\n * @type {boolean}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() multiple = false;\r\n\r\n /**\r\n * Determines value of the radio button.\r\n * Default: false\r\n *\r\n * @type {any}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() value: any;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {boolean}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() ariaRequired = false;\r\n\r\n /**\r\n * Defines if checkbox has error\r\n *\r\n * @type {boolean}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() hasError = false;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() ariaLabelledby = '';\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() ariaDescribedby = '';\r\n\r\n /**\r\n * Truncate text if it is too long\r\n * @type {boolean}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() truncateText = false;\r\n\r\n /**\r\n * Text alignment\r\n * @type {'center' | 'top'}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() alignment: Alignment = 'center';\r\n\r\n /**\r\n * Sets the tab index for the checkbox component.\r\n * This determines the order in which elements receive focus when the user navigates through them using the Tab key.\r\n * Default value is 0.\r\n *\r\n * @type {number}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Input() tabIndex = 0;\r\n\r\n /**\r\n * Event emitted when the checked state of the radio button changes.\r\n *\r\n * @type {boolean}\r\n * @memberof RadioButtonComponent\r\n */\r\n @Output() changeRadio = new EventEmitter<RadioButtonEventType>();\r\n\r\n classMultiple: string;\r\n showTooltip = false;\r\n protected origin: string | null = null;\r\n\r\n @ViewChild('radio') radioElement: MatRadioButton;\r\n @ViewChild('tooltip') tooltipElement: MatTooltip;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n @Optional() @Self() public ngControl: NgControl,\r\n @Optional() @Host() public hostNgControl: NgControl,\r\n private destroyRef: DestroyRef,\r\n private focusMonitor: FocusMonitor,\r\n private ngZone: NgZone,\r\n private cdr: ChangeDetectorRef,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.checkHost();\r\n this.classMultiple = this.setClass();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['selected']) {\r\n this.classMultiple = this.setClass();\r\n }\r\n this.setCompanyColor();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.radioElement._inputElement.nativeElement.setAttribute('role', 'radio');\r\n this.radioElement._inputElement.nativeElement.onclick = () => {\r\n this.clickRadio();\r\n };\r\n\r\n this.focusMonitor.monitor(this.radioElement._inputElement.nativeElement).pipe(\r\n takeUntilDestroyed(this.destroyRef),\r\n ).subscribe(origin =>\r\n this.ngZone.run(() => {\r\n this.origin = origin;\r\n this.cdr.markForCheck();\r\n this.onFocus(origin === 'keyboard');\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.focusMonitor.stopMonitoring(this.radioElement._inputElement.nativeElement);\r\n }\r\n\r\n //Click method\r\n clickRadio() {\r\n if (this.allowUnselect) {\r\n this.radioElement.checked = !this.radioElement.checked;\r\n this._selected = this.radioElement.checked;\r\n this.classMultiple = this.setClass();\r\n this.selected = this.radioElement.checked;\r\n this.changeRadio?.emit({ optionName: this.radioElement.value, optionChecked: this.radioElement.checked });\r\n } else {\r\n this.selected = this.radioElement.checked;\r\n this.changeRadio.emit({ optionName: this.radioElement.value, optionChecked: true });\r\n }\r\n if (this.disabled) {\r\n this._selected = false;\r\n this.changeRadio.emit({ optionName: '', optionChecked: false });\r\n }\r\n this.onChange(this._selected)\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (typeof value === 'boolean' || value === this.value) {\r\n this.selected = value;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onChange = (_: any) => {};\r\n\r\n /**\r\n * @ignore\r\n */\r\n onTouch = () => {};\r\n\r\n //Set class for multiple radio\r\n setClass(): string {\r\n if (this.multiple) {\r\n return this._selected ? 'multiple-checked' : 'multiple-unchecked';\r\n }\r\n return '';\r\n }\r\n\r\n onLabelEllipsisChange(isEllipsis: boolean): void {\r\n this.showTooltip = isEllipsis;\r\n }\r\n\r\n private checkHost(): void {\r\n if (this.hostNgControl) {\r\n this.selected = this.value === this.hostNgControl.value;\r\n this.hostNgControl.valueChanges?.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((value) => {\r\n this.selected = value === this.value;\r\n this.classMultiple = this.setClass();\r\n });\r\n }\r\n }\r\n\r\n private setCompanyColor(): void {\r\n this.companyColor = this.companyColor ? this.companyColor : this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';\r\n }\r\n\r\n onFocus(showTooltip: boolean): void {\r\n setTimeout(() => {\r\n this.showTooltip && showTooltip ? this.tooltipElement.show() : this.tooltipElement.hide();\r\n }, 0)\r\n }\r\n\r\n focus(): void {\r\n this.radioElement.focus();\r\n }\r\n}\r\n","<div\r\n #radioContainer\r\n [class]=\"multiple ? 'radio-container' : 'radio'\"\r\n [class.multiple-disabled]=\"disabled && multiple\"\r\n [ngClass]=\"classMultiple\"\r\n [attr.alignment]=\"alignment\"\r\n [attr.truncate-text]=\"truncateText\"\r\n [attr.theme]=\"applicationTheme\"\r\n [attr.hasError]=\"hasError\"\r\n (keydown.enter)=\"clickRadio(); radioContainer.focus()\"\r\n (keydown.space)=\"clickRadio(); radioContainer.focus()\"\r\n>\r\n <mat-radio-button\r\n #radio\r\n [checked]=\"selected\"\r\n [disabled]=\"disabled\"\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n class=\"radio-button\"\r\n [required]=\"ariaRequired\"\r\n [aria-label]=\"ariaLabel\"\r\n [aria-labelledby]=\"ariaLabelledby ? ariaLabelledby : label\"\r\n [aria-describedby]=\"ariaDescribedby\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n (keydown.space)=\"$event.preventDefault()\"\r\n [tabIndex]=\"tabIndex\"\r\n >\r\n <span\r\n #tooltip=\"matTooltip\"\r\n class=\"label\"\r\n uiEllipseText\r\n (onChangeTextState)=\"onLabelEllipsisChange($event)\"\r\n [matTooltip]=\"showTooltip ? label : ''\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n >{{ label }}</span>\r\n <ng-content select=\"[radio-label]\"></ng-content>\r\n </mat-radio-button>\r\n</div>\r\n","import { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { RadioButtonComponent } from './radio-button.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { EllipseTextDirective } from '../../directives/ellipse-text.directive';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { FocusVisibleDirective } from '../checkbox/focus-visible.directive';\r\n\r\n@NgModule({\r\n declarations: [RadioButtonComponent],\r\n imports: [CommonModule, MatRadioModule, FormsModule, ReactiveFormsModule, MatInputModule, EllipseTextDirective, MatTooltipModule, MatCheckboxModule, FocusVisibleDirective],\r\n exports: [RadioButtonComponent],\r\n})\r\nexport class RadioButtonComponentModule {}\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\nimport { Component, Inject, Input, OnInit, Optional } from '@angular/core';\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\r\nimport { IconName } from '../../components/icon/icon.model';\r\nimport { SnackbarType, SnackbarVariant } from '../../components/snackbar/snackbar.model';\r\nimport { alertBarsUtil } from '../../utils/alert-bars.utils';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { LinkTargetType } from '../alert-banner/alert-banner.model';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'ui-snackbar',\r\n templateUrl: './snackbar.component.html',\r\n styleUrls: ['./snackbar.component.scss'],\r\n animations: [\r\n trigger('openClose', [\r\n transition(':enter', [\r\n style({ bottom: '-55px', opacity: 0 }),\r\n animate('0.2s ease-out', style({ opacity: 1, bottom: '10px' })),\r\n ]),\r\n transition(':leave', [\r\n style({ bottom: '10px', opacity: 1 }),\r\n animate('0.2s ease-in', style({ bottom: '-55px', opacity: 0 })),\r\n ]),\r\n ]),\r\n ],\r\n})\r\nexport class SnackbarComponent implements OnInit {\r\n /**\r\n * Background color of the button while in active state\r\n *\r\n * @type {SnackbarType}\r\n * @memberof SnackbarComponent\r\n */\r\n @Input() snackbarType: SnackbarType = 'success';\r\n\r\n /**\r\n * Snackbar message\r\n *\r\n * @memberof SnackbarComponent\r\n */\r\n @Input() message = '';\r\n\r\n /**\r\n * Snackbar message from html\r\n *\r\n * @memberof SnackbarComponent\r\n */\r\n @Input() set html(value: string) {\r\n if (value) {\r\n this.safeHtml = this.domSanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n }\r\n\r\n /**\r\n * Set the time that the snackbar will be visible\r\n *\r\n * @memberof SnackbarComponent\r\n */\r\n @Input() seconds = 5;\r\n\r\n /**\r\n * Include dismmiss button\r\n *\r\n * @memberof SnackbarComponent\r\n */\r\n @Input() includeDismissButton = true;\r\n\r\n /**\r\n * Static or fixed position\r\n *\r\n * @memberof SnackbarComponent\r\n */\r\n @Input() fixed = true;\r\n\r\n /**\r\n * Link text that will appended at the end of message\r\n *\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() linkText? = '';\r\n\r\n /**\r\n * Link url\r\n *\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() linkUrl?: string;\r\n\r\n /**\r\n * Link target\r\n *\r\n * @type {@type {LinkTargetType}}\r\n * @memberof AlertBannerComponent\r\n */\r\n @Input() linkTarget?: LinkTargetType = '_blank';\r\n\r\n /**\r\n * The variant to be used\r\n *\r\n * @type {SnackbarVariant}\r\n * @memberof SnackbarComponent\r\n */\r\n @Input() variant: SnackbarVariant = 'desktop';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof SnackbarComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Close button tooltip\r\n *\r\n * @type {string}\r\n * @memberof SnackbarComponent\r\n */\r\n @Input() closeButtonTooltip = '';\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof SnackbarComponent\r\n */\r\n @Input() ariaDescribedby = '';\r\n\r\n iconName: IconName;\r\n showSnackbar = true;\r\n milisenconds: number;\r\n visible = false;\r\n timer?: number;\r\n timerStartedAt = 0;\r\n timerPausedAt = 0;\r\n position: string;\r\n safeHtml: SafeHtml;\r\n\r\n translationContext = 'SNACKBAR.';\r\n protected readonly maxCharacters = 70;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n @Inject(MAT_SNACK_BAR_DATA) private data: any,\r\n private snackbarRef: MatSnackBarRef<SnackbarComponent>,\r\n private domSanitizer: DomSanitizer,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n\r\n this.snackbarType = data.snackbarType ?? 'success';\r\n this.message = data.message ?? '';\r\n this.safeHtml = data.html ? this.domSanitizer.bypassSecurityTrustHtml(data.html) : '';\r\n }\r\n\r\n ngOnInit(): void {\r\n this.milisenconds = this.seconds * 1000;\r\n this.iconName = alertBarsUtil.setIcon(this.snackbarType);\r\n this.show();\r\n this.position = alertBarsUtil.setPosition(this.fixed);\r\n }\r\n\r\n //Show snackbar\r\n show() {\r\n this.timerStartedAt = Date.now();\r\n this.visible = true;\r\n this.timer = window.setTimeout(() => this.hide(), this.milisenconds);\r\n }\r\n\r\n //Hide snackbar\r\n hide() {\r\n this.visible = false;\r\n this.timerPausedAt = 0;\r\n this.timerStartedAt = 0;\r\n clearTimeout(this.timer);\r\n this.timer = undefined;\r\n this.snackbarRef.dismiss();\r\n }\r\n\r\n //Pause timer when mouse enter\r\n onMouseEnter() {\r\n this.visible = true;\r\n this.timerPausedAt = Date.now();\r\n clearTimeout(this.timer);\r\n }\r\n\r\n //Continue timer when mouse leave\r\n onMouseLeave() {\r\n const diff = this.timerPausedAt - this.timerStartedAt;\r\n if (diff <= 0) {\r\n return this.hide();\r\n }\r\n this.timer = window.setTimeout(() => this.hide(), this.milisenconds - diff);\r\n }\r\n\r\n //Hide snackbar when dismiss button is clicked\r\n dismissClick() {\r\n this.visible = false;\r\n this.snackbarRef.dismiss();\r\n }\r\n}\r\n","<ng-container>\r\n <div\r\n [ngClass]=\"snackbarType + ' ' + position\"\r\n [@openClose]\r\n *ngIf=\"visible\"\r\n class=\"snackbar-container\"\r\n [attr.theme]=\"applicationTheme\"\r\n [class.mobile]=\"variant === 'mobile'\"\r\n [class.desktop]=\"variant === 'desktop'\"\r\n (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\"\r\n data-testid=\"snackbar-wrapper\"\r\n [attr.data-test-snackbar-type]=\"snackbarType\"\r\n [attr.aria-describedby]=\"'describedby'\"\r\n role=\"alert\"\r\n [attr.aria-labelledby]=\"'labelledby'\"\r\n >\r\n <span style=\"position: absolute; left: -9999px\" id=\"labelledby\">{{ ('ALERT_BANNER.' + (snackbarType | uppercase)) | uiTranslate | async }}</span>\r\n <span style=\"position: absolute; left: -9999px\">{{ message }}\r\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\r\n </span>\r\n <span [style.display]=\"'none'\" id=\"describedby\">{{ ariaDescribedby }}</span>\r\n <div\r\n aria-hidden=\"true\"\r\n class=\"snackbar-text\"\r\n [matTooltip]=\"message.length > maxCharacters ? message : ''\"\r\n data-testid=\"snackbar-content\"\r\n >\r\n <ui-icon *ngIf=\"applicationTheme === 'classic'\" [name]=\"iconName\" size=\"24\"></ui-icon>\r\n {{ message.length > maxCharacters ? (message | slice: 0:maxCharacters) + '..' : message }}\r\n <div *ngIf=\"safeHtml\" [innerHTML]=\"safeHtml\"></div>\r\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\r\n </div>\r\n <ui-button\r\n *ngIf=\"includeDismissButton && applicationTheme === 'classic'\"\r\n variant=\"text\"\r\n [label]=\"(translationContext + 'DISMISS' | uiTranslate | async)!\"\r\n [applicationTheme]=\"applicationTheme !== 'classic' ? 'light' : 'classic'\"\r\n (buttonClickEvent)=\"dismissClick()\"\r\n data-testid=\"snackbar-dismiss-button\"\r\n ></ui-button>\r\n <ui-button\r\n *ngIf=\"includeDismissButton && applicationTheme !== 'classic'\"\r\n [variant]=\"'icon-button'\"\r\n [applicationTheme]=\"'light'\"\r\n [iconName]=\"'Close-in-line'\"\r\n [size]=\"'small'\"\r\n [tooltip]=\"(closeButtonTooltip || ('COMMON.CLOSE' | uiTranslate | async))!\"\r\n (click)=\"dismissClick()\"\r\n data-testid=\"snackbar-dismiss-button\"\r\n ></ui-button>\r\n </div>\r\n</ng-container>\r\n","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { SnackbarComponent } from './snackbar.component';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { SnackbarType } from './snackbar.model';\r\n\r\n@Injectable()\r\nexport class SnackbarService {\r\n constructor(private snackBar: MatSnackBar) {}\r\n\r\n error(message: string, applicationTheme?: ApplicationTheme, html?: string) {\r\n return this.show('error', message, applicationTheme, html);\r\n }\r\n\r\n success(message: string, applicationTheme?: ApplicationTheme, html?: string) {\r\n return this.show('success', message, applicationTheme, html);\r\n }\r\n\r\n info(message: string, applicationTheme?: ApplicationTheme, html?: string) {\r\n return this.show('info', message, applicationTheme, html);\r\n }\r\n\r\n warning(message: string, applicationTheme?: ApplicationTheme, html?: string) {\r\n return this.show('warning', message, applicationTheme, html);\r\n }\r\n\r\n show(snackbarType: SnackbarType, message: string, applicationTheme?: ApplicationTheme, html?: string) {\r\n const componentRef = this.snackBar.openFromComponent(SnackbarComponent, {\r\n data: {\r\n snackbarType,\r\n message,\r\n html,\r\n },\r\n });\r\n if (applicationTheme) {\r\n componentRef.instance.applicationTheme = applicationTheme;\r\n }\r\n return componentRef;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { SnackbarComponent } from './snackbar.component';\r\nimport { SnackbarService } from './snackbar.service';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n declarations: [SnackbarComponent],\r\n imports: [CommonModule, ButtonComponentModule, IconComponentModule, UiTranslatePipe, MatSnackBarModule, MatTooltipModule],\r\n exports: [SnackbarComponent],\r\n providers: [SnackbarService],\r\n})\r\nexport class SnackbarComponentModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n// TODO: Check type (backend could return a number)\r\ntype DataPropertyGetterType = string;\r\n\r\n@Pipe({\r\n name: 'dataPropertyGetter',\r\n standalone: true,\r\n})\r\nexport class DataPropertyGetterPipe implements PipeTransform {\r\n transform(obj: object, keyName: string = '') {\r\n return this.getDeepVal(obj, keyName);\r\n }\r\n\r\n private getDeepVal(obj: any, path: string) {\r\n if (typeof obj === 'undefined' || obj === null) {\r\n return '';\r\n }\r\n const splittedPath = path.split(/[\\.\\[\\]\\\"\\']{1,2}/);\r\n for (let i = 0, l = splittedPath.length; i < l; i++) {\r\n if (splittedPath[i] === '') {\r\n continue;\r\n }\r\n obj = obj[splittedPath[i]];\r\n if (typeof obj === 'undefined' || obj === null) {\r\n return '';\r\n }\r\n }\r\n return obj;\r\n }\r\n}\r\n","export enum IKeyboardEvent {\r\n ENTER = 'Enter',\r\n SPACE = ' ',\r\n ARROW_DOWN = 'ArrowDown',\r\n ARROW_UP = 'ArrowUp',\r\n ESCAPE = 'Escape',\r\n HOME = 'Home',\r\n END = 'End',\r\n PAGE_UP = 'PageUp',\r\n PAGE_DOWN = 'PageDown',\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n signal,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { debounceTime, map, ReplaySubject } from 'rxjs';\r\nimport { IconColor, IconName } from '../icon/icon.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { IKeyboardEvent } from \"../../models/keyboard-events.model\";\r\n\r\n@Component({\r\n selector: 'ui-tag',\r\n templateUrl: './tag.component.html',\r\n styleUrls: ['./tag.component.scss'],\r\n})\r\nexport class TagComponent implements AfterViewInit, OnInit {\r\n /**\r\n * Tag's label\r\n *\r\n * @memberof TagComponent\r\n */\r\n @Input() set label(value: string) {\r\n this.labelText = value;\r\n if (this.labelElement) {\r\n this.isLabelEllipseActive();\r\n }\r\n }\r\n\r\n /**\r\n * Icon\r\n *\r\n * @type {string}\r\n * @memberof TagComponent\r\n */\r\n @Input() icon: IconName = '';\r\n\r\n /**\r\n * Whether to allow the tag to be closed.\r\n *\r\n * @type {boolean}\r\n * @default false\r\n * @memberof TagComponent\r\n */\r\n @Input() allowClose = false;\r\n\r\n /**\r\n * Whether the tag is in read-only mode.\r\n *\r\n * @type {boolean}\r\n * @default false\r\n * @memberof TagComponent\r\n */\r\n @Input() readOnly = false;\r\n\r\n /**\r\n * Whether the tag is selected.\r\n *\r\n * @type {boolean}\r\n * @default false\r\n * @memberof TagComponent\r\n */\r\n @Input() isSelected = false;\r\n\r\n /**\r\n * Display icon when is selected\r\n *\r\n * @type {boolean}\r\n * @default false\r\n * @memberof TagComponent\r\n */\r\n @Input() showIconWhenSelected = false;\r\n\r\n /**\r\n * Specifies whether the element is disabled.\r\n *\r\n * @type {boolean}\r\n * @default false\r\n * @memberof TagComponent\r\n */\r\n @Input() isDisabled = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof TagComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof TagComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {boolean}\r\n * @memberof TagComponent\r\n */\r\n @Input() ariaRequired = false;\r\n\r\n /**\r\n * Event triggered when the tag should be closed.\r\n *\r\n * @event\r\n * @memberof TagComponent\r\n */\r\n @Output() close = new EventEmitter<void>();\r\n\r\n /**\r\n * Event triggered when a press action occurs.\r\n *\r\n * @event\r\n * @memberof TagComponent\r\n */\r\n @Output() press = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Subject that needs to be triggered when Label input changes, to check if it's truncated\r\n * @private\r\n * @type {void}\r\n * @memberof TagComponent\r\n */\r\n private checkLabelEllipsis$ = new ReplaySubject<void>(1);\r\n\r\n /**\r\n * Observable that indicates if the Label is truncated\r\n * debounceTime is used to wait for view to be initialized after receiving a new Label input\r\n * @protected\r\n * @type {boolean}\r\n * @memberof TagComponent\r\n */\r\n protected isEllipseActiveObs$ = this.checkLabelEllipsis$.pipe(\r\n debounceTime(100),\r\n map(() => {\r\n const el = this.labelElement.nativeElement;\r\n return el.offsetWidth < el.scrollWidth;\r\n })\r\n );\r\n protected labelText = '';\r\n protected isHovered = false;\r\n protected shrink = false;\r\n protected iconToPass: IconName;\r\n protected iconColor: IconColor;\r\n protected closeBtnFocused = signal(false);\r\n\r\n @ViewChild('labelElement') labelElement: ElementRef<HTMLElement>;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.iconToPass = this.icon;\r\n this.iconColor = 'black';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.isLabelEllipseActive();\r\n }\r\n\r\n onPress(): void {\r\n if (!this.readOnly && !this.allowClose) {\r\n this.isSelected = this.showIconWhenSelected ? !this.isSelected : false;\r\n this.press.emit(this.isSelected);\r\n }\r\n }\r\n\r\n setHoverState(state: boolean) {\r\n this.isHovered = state;\r\n if (this.applicationTheme !== 'classic') {\r\n if (state) {\r\n this.iconToPass = `${this.icon}-filled` as IconName;\r\n } else {\r\n this.iconToPass = this.icon;\r\n }\r\n this.iconColor = this.isHovered ? 'white' : 'black';\r\n }\r\n }\r\n\r\n setShrinkState(state: boolean) {\r\n this.shrink = state;\r\n }\r\n\r\n onClose(): void {\r\n this.close.emit();\r\n }\r\n\r\n private isLabelEllipseActive(): void {\r\n this.checkLabelEllipsis$.next();\r\n }\r\n\r\n get tabIndex(): number {\r\n return this.isDisabled || this.readOnly ? -1 : 0;\r\n }\r\n\r\n get filled(): boolean {\r\n return this.readOnly || this.allowClose || this.isSelected;\r\n }\r\n\r\n onKeydown($event: KeyboardEvent): void {\r\n if (($event.key === IKeyboardEvent.ENTER || $event.key === IKeyboardEvent.SPACE) && !this.closeBtnFocused()) {\r\n this.onPress();\r\n } else if (this.closeBtnFocused() && ($event.key === IKeyboardEvent.ENTER || $event.key === IKeyboardEvent.SPACE)) {\r\n this.onClose();\r\n }\r\n }\r\n}\r\n","<div class=\"tag-wrapper\">\r\n <div\r\n [matTooltip]=\"(isEllipseActiveObs$ | async) ? labelText : ''\" [matTooltipClass]=\"applicationTheme\"\r\n [tabindex]=\"tabIndex\"\r\n class=\"tag-container\"\r\n [attr.data-testid]=\"'tag--container'\"\r\n [attr.theme]=\"applicationTheme\"\r\n [ngClass]=\"{\r\n filled: filled,\r\n readonly: readOnly,\r\n disabled: isDisabled,\r\n outlined: !isSelected,\r\n shrink\r\n }\"\r\n (click)=\"onPress()\"\r\n (mouseenter)=\"setHoverState(true)\" (mouseleave)=\"setHoverState(false)\"\r\n (mousedown)=\"setShrinkState(true)\" (mouseup)=\"setShrinkState(false)\"\r\n (touchstart)=\"setShrinkState(true)\" (touchend)=\"setShrinkState(false)\"\r\n (keydown)=\"onKeydown($event)\"\r\n [attr.aria-label]=\"ariaLabel || labelText\"\r\n [attr.aria-required]=\"ariaRequired\"\r\n >\r\n <ui-icon *ngIf=\"icon\" class=\"icon\" [color]=\"iconColor\" [name]=\"iconToPass\" [applicationTheme]=\"applicationTheme\"></ui-icon>\r\n <ui-icon *ngIf=\"isSelected && showIconWhenSelected\" [color]=\"iconColor\" class=\"icon\" [name]=\"'Check'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\r\n <span class=\"tag-label\" #labelElement>{{ labelText }}</span>\r\n <ui-icon (focus)=\"closeBtnFocused.set(true)\" (blur)=\"closeBtnFocused.set(false)\" [tabindex]=\"tabIndex\" *ngIf=\"allowClose\" class=\"delete-icon\"\r\n [attr.aria-label]=\"'TAG.REMOVE' | uiTranslate | async\"\r\n [color]=\"iconColor\" (click)=\"onClose()\" [name]=\"'Close'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\r\n </div>\r\n</div>\r\n","export enum TooltipPositionType {\r\n TOP = 'top',\r\n BOTTOM = 'bottom',\r\n LEFT = 'left',\r\n RIGHT = 'right'\r\n}\r\n\r\nexport type TooltipVariant = 'basic' | 'definition';\r\nexport type TooltipDefinitionSize = 'small' | 'medium' | 'large';\r\n","import {\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n HostListener, Inject, Injector,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport {\r\n ConnectedPosition,\r\n Overlay,\r\n OverlayPositionBuilder,\r\n OverlayRef\r\n} from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { TooltipPositionType } from \"./tooltip.model\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { FocusMonitor } from \"@angular/cdk/a11y\";\r\n\r\n@Directive({\r\n selector: '[uiTooltipTemplate]',\r\n standalone: true,\r\n})\r\nexport class TooltipTemplateDirective implements OnChanges, OnDestroy {\r\n @Input() tooltipPosition: TooltipPositionType = TooltipPositionType.RIGHT;\r\n @Input() showTooltip = true;\r\n @Input('uiTooltipTemplate') templateRef: TemplateRef<any>;\r\n\r\n private _overlayRef: OverlayRef;\r\n\r\n constructor(\r\n private _overlay: Overlay,\r\n private _overlayPositionBuilder: OverlayPositionBuilder,\r\n private _elementRef: ElementRef,\r\n private focusMonitor: FocusMonitor,\r\n private ngZone: NgZone,\r\n private injector: Injector,\r\n @Inject('TooltipComponentToken') private tooltipComponentToken: any\r\n ) {\r\n if (this._elementRef.nativeElement) {\r\n this.focusMonitor.monitor(this._elementRef.nativeElement).pipe(\r\n takeUntilDestroyed()\r\n ).subscribe(origin =>\r\n this.ngZone.run(() => {\r\n if (origin === 'keyboard') {\r\n this.show();\r\n } else {\r\n this.hide();\r\n }\r\n }),\r\n );\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.setPosition(this.tooltipPosition);\r\n }\r\n\r\n @HostListener('mouseenter')\r\n show() {\r\n if (!this.showTooltip) {\r\n return;\r\n }\r\n\r\n if (this._overlayRef && !this._overlayRef.hasAttached()) {\r\n const tooltipRef: ComponentRef<any> = this._overlayRef.attach(new ComponentPortal(this.tooltipComponentToken, null, this.injector));\r\n tooltipRef.instance.templateRef = this.templateRef;\r\n tooltipRef.instance.position = this.tooltipPosition;\r\n }\r\n }\r\n\r\n @HostListener('mouseleave')\r\n hide() {\r\n this.closeToolTip();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.closeToolTip();\r\n }\r\n\r\n private closeToolTip() {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n }\r\n }\r\n\r\n private setPosition(position: TooltipPositionType) {\r\n const positions: Record<string, ConnectedPosition> = {\r\n [TooltipPositionType.TOP]: {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetX: 0,\r\n offsetY: -8,\r\n panelClass: TooltipPositionType.TOP\r\n },\r\n [TooltipPositionType.BOTTOM]: {\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetX: 0,\r\n offsetY: 8,\r\n panelClass: TooltipPositionType.BOTTOM\r\n },\r\n [TooltipPositionType.LEFT]: {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetX: -8,\r\n offsetY: 0,\r\n panelClass: TooltipPositionType.LEFT\r\n },\r\n [TooltipPositionType.RIGHT]: {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetX: 8,\r\n offsetY: 0,\r\n panelClass: TooltipPositionType.RIGHT\r\n }\r\n };\r\n\r\n const fallbackPositions = {\r\n [TooltipPositionType.TOP]: positions[TooltipPositionType.BOTTOM],\r\n [TooltipPositionType.BOTTOM]: positions[TooltipPositionType.TOP],\r\n [TooltipPositionType.LEFT]: positions[TooltipPositionType.RIGHT],\r\n [TooltipPositionType.RIGHT]: positions[TooltipPositionType.BOTTOM]\r\n };\r\n\r\n const positionConfig = positions[position];\r\n\r\n const fallbackPositionConfig = fallbackPositions[position];\r\n\r\n const positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([positionConfig, fallbackPositionConfig])\r\n .withPush(true);\r\n\r\n this._overlayRef = this._overlay.create({ positionStrategy });\r\n }\r\n}\r\n","import {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Optional,\r\n} from '@angular/core';\r\nimport { TooltipDefinitionSize, TooltipPositionType, TooltipVariant } from './tooltip.model';\r\nimport { TooltipPosition } from '@angular/material/tooltip';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-tooltip',\r\n templateUrl: './tooltip.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TooltipComponent implements OnInit {\r\n /**\r\n * Allows the user to define the position of the tooltip relative to the parent element.\r\n *\r\n * @type {TooltipPositionType}\r\n * @memberof TooltipComponent\r\n */\r\n @Input() position: TooltipPositionType = TooltipPositionType.TOP;\r\n\r\n /**\r\n * Disables the display of the tooltip.\r\n *\r\n * @type {boolean}\r\n * @memberof TooltipComponent\r\n */\r\n @Input({ transform: booleanAttribute }) disabled = false;\r\n\r\n /**\r\n * The message to be displayed in the tooltip.\r\n *\r\n * @type {string}\r\n * @memberof TooltipComponent\r\n */\r\n @Input() message = '';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof TooltipComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * The label for definition variant\r\n * @type {string}\r\n * @memberof TooltipComponent\r\n */\r\n @Input() labelForDefinition = '';\r\n\r\n /**\r\n * Defines size for definition variant\r\n * @type {string}\r\n * @memberof TooltipComponent\r\n */\r\n @Input() definitionTooltipSize: TooltipDefinitionSize = 'medium'\r\n\r\n /**\r\n * Variant render tooltip\r\n * @type {string}\r\n * @memberof TooltipComponent\r\n */\r\n @Input() variant: TooltipVariant = 'basic'\r\n\r\n isLabelEllipse = false;\r\n templateRef: any;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n matPosition: TooltipPosition;\r\n\r\n ngOnInit() {\r\n this.setPosition();\r\n }\r\n\r\n //set position\r\n setPosition(): void {\r\n switch (this.position) {\r\n case TooltipPositionType.TOP:\r\n this.matPosition = 'above';\r\n break;\r\n case TooltipPositionType.BOTTOM:\r\n this.matPosition = 'below';\r\n break;\r\n default:\r\n this.matPosition = this.position;\r\n break;\r\n }\r\n }\r\n}\r\n","@if (variant === 'definition') {\r\n <div\r\n [tabindex]=\"0\"\r\n class=\"definition-tooltip\"\r\n [attr.aria-label]=\"labelForDefinition + ', ' + ('TOOLTIP.DETAILS' | uiTranslate | async) + ':' + message\"\r\n style=\"position: relative;\"\r\n [tooltipPosition]=\"position\"\r\n [uiTooltipTemplate]=\"dif\"\r\n >\r\n <span\r\n class=\"label-definition-outside\"\r\n [ngClass]=\"'tooltip-size-' + definitionTooltipSize\"\r\n uiEllipseText\r\n (onChangeTextState)=\"isLabelEllipse = $event\"\r\n >\r\n {{ labelForDefinition }}\r\n </span>\r\n </div>\r\n\r\n <ng-template #dif>\r\n <div [attr.aria-label]=\"labelForDefinition + ' ' + message\"></div>\r\n <div class=\"label-definition-inner\" *ngIf=\"isLabelEllipse\">\r\n {{ labelForDefinition }}\r\n </div>\r\n <div class=\"text-definition\">\r\n {{ message }}\r\n </div>\r\n </ng-template>\r\n\r\n} @else {\r\n <div\r\n [matTooltip]=\"message\"\r\n [matTooltipDisabled]=\"disabled\"\r\n [matTooltipPosition]=\"matPosition\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n [attr.aria-label]=\"message\"\r\n tabindex=\"0\"\r\n style=\"position: relative;\"\r\n >\r\n <div\r\n style=\"position: absolute; left: -9999px\"\r\n [attr.aria-live]=\"'polite'\"\r\n >{{ message }}\r\n </div>\r\n <ng-content></ng-content>\r\n @if (templateRef) {\r\n <div [class]=\"'template-tooltip'\">\r\n <ng-container *ngTemplateOutlet=\"templateRef\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { TooltipComponent } from './tooltip.component';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { TooltipTemplateDirective } from \"./tooltip-template.directive\";\r\nimport { EllipseTextDirective } from \"../../directives/ellipse-text.directive\";\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [TooltipComponent],\r\n imports: [MatTooltipModule, CommonModule, TooltipTemplateDirective, EllipseTextDirective, UiTranslatePipe],\r\n exports: [TooltipComponent],\r\n providers: [\r\n { provide: 'TooltipComponentToken', useValue: TooltipComponent }\r\n ]\r\n})\r\nexport class TooltipComponentModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TagComponent } from './tag.component';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { TooltipComponentModule } from '../tooltip/tooltip.component.module';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { UiTranslatePipe } from \"../../pipes/ui-translate.pipe\";\r\n\r\n@NgModule({\r\n declarations: [TagComponent],\r\n imports: [CommonModule, IconComponentModule, TooltipComponentModule, MatTooltipModule, MatInputModule, UiTranslatePipe],\r\n exports: [TagComponent],\r\n providers: [],\r\n})\r\nexport class TagComponentModule {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n DoCheck,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Renderer2,\r\n Self,\r\n signal,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { FloatLabelType } from '@angular/material/form-field';\r\nimport { OptionType } from './dropdown.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { adjustLightness } from \"../../utils/color-contrast\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { FocusMonitor } from \"@angular/cdk/a11y\";\r\nimport { MatSelect } from \"@angular/material/select\";\r\nimport { IKeyboardEvent } from \"../../models/keyboard-events.model\";\r\n\r\n@Component({\r\n selector: 'ui-dropdown',\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DropdownComponent implements OnInit, ControlValueAccessor, DoCheck, OnChanges {\r\n @HostBinding() class = 'ui-dropdown';\r\n\r\n /**\r\n * Text content will be applied to the input element if present.\r\n *\r\n * @type {string}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() label? = '';\r\n\r\n /**\r\n * Input name attribute\r\n *\r\n * @type {string}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() name: string;\r\n /**\r\n * Placeholder to be shown if no value has been selected.\r\n *\r\n * @type {string}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() placeholder: string;\r\n\r\n /**\r\n * Unique id of the element.\r\n *\r\n * @type {string}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() id? = '';\r\n\r\n /**\r\n * Input value\r\n *\r\n * @type {string}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() value?: string;\r\n\r\n /**\r\n * Whether the component is in an error state.\r\n *\r\n * @type {string[]}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() errors?: string[];\r\n\r\n /**\r\n * Whether the component is disabled.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * List of options.\r\n *\r\n * @type {OptionType}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() valueList: OptionType[] = [];\r\n\r\n /**\r\n * Whether the user should be allowed to clear the values.\r\n * Default: true.\r\n *\r\n * @type {boolean}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() allowClear = true;\r\n\r\n /**\r\n * This will allow the user to select multiple values at once.\r\n * Default: true.\r\n *\r\n * @type {boolean}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() allowMultipleSelection? = false;\r\n\r\n /**\r\n * Whether the component is required.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() required = false;\r\n\r\n /**\r\n * Show reserved content below form field\r\n * @property showBottomContent\r\n * @type {boolean}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() showBottomContent = true;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof DropdownComponent\r\n */\r\n @HostBinding('attr.theme')\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Hide in build errors for Reactive Forms\r\n *\r\n * @type {number}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() hideBuiltInErrors = false;\r\n\r\n /**\r\n * Hide label in errors\r\n *\r\n * @type {number}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() hideLabelInErrors = false;\r\n\r\n /**\r\n * @property textField\r\n * @description The field to be used as the display text in the dropdown.\r\n * @memberof DropdownComponent\r\n */\r\n @Input() textField = '';\r\n\r\n /**\r\n * @property valueField\r\n * @description The field to be used as the value in the dropdown.\r\n * @memberof DropdownComponent\r\n */\r\n @Input() valueField = '';\r\n\r\n @Input() hasError = false;\r\n\r\n /**\r\n * Color of the option hover.\r\n * Defaults to Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof DropdownComponent\r\n */\r\n @Input() companyColor: string = ''\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n @Output() opened = new EventEmitter<void>();\r\n\r\n @ViewChild('matSelect') matSelect: MatSelect;\r\n\r\n @HostListener('keydown.tab', ['$event'])\r\n onTabPress(): void {\r\n this.matSelect?.close();\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n onChange = (_: any) => {};\r\n\r\n /**\r\n * @ignore\r\n */\r\n onTouch = () => {};\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private readonly cdr: ChangeDetectorRef,\r\n @Optional() @Self() public ngControl: NgControl,\r\n private readonly renderer2: Renderer2,\r\n private readonly focusMonitor: FocusMonitor,\r\n private readonly destroyRef: DestroyRef,\r\n private readonly ngZone: NgZone,\r\n ) {\r\n\r\n this.errors = [];\r\n this.valueList = [];\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n floatLabel: FloatLabelType;\r\n classError: string;\r\n errorsLength: boolean;\r\n showCheck: boolean;\r\n optionSelected: any;\r\n keyboardFocused = signal<boolean>(false);\r\n isOpen = signal(false);\r\n\r\n /**\r\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\r\n * to display validation errors that might happen (e.g. required)\r\n */\r\n ngDoCheck(): void {\r\n if (this.ngControl?.touched || this.ngControl?.errors) {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.errorsLength = this.setErrorsLength();\r\n this.setStyleVariable();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['companyColor']) {\r\n this.setStyleVariable();\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n if (this.matSelect._elementRef) {\r\n this.focusMonitor.monitor(this.matSelect._elementRef).pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(origin => this.ngZone.run(() => {\r\n this.keyboardFocused.set(origin === 'keyboard')\r\n }));\r\n }\r\n\r\n this.matSelect._handleKeydown = this.onKeydown.bind(this);\r\n }\r\n\r\n clearValue(event: Event): void {\r\n event?.stopPropagation();\r\n this.value = '';\r\n this.optionSelected = null;\r\n this.matSelect.value = null;\r\n this.onChange(this.value);\r\n }\r\n\r\n //Save select value\r\n onChangeOption(event: any) {\r\n this.value = event.value;\r\n this.errorsLength = this.setErrorsLength();\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n //Set errors length for validation\r\n setErrorsLength(): boolean {\r\n if (!!this.errors) {\r\n return this.errors.length > 0 ? true : false;\r\n }\r\n return false;\r\n }\r\n\r\n writeValue(value?: any): void {\r\n if (value) {\r\n this.value = value || '';\r\n } else {\r\n this.value = '';\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onClosed(): void {\r\n this.onTouch();\r\n this.closed.emit();\r\n this.isOpen.set(false);\r\n }\r\n\r\n onOpened(): void {\r\n this.opened.emit();\r\n this.isOpen.set(true);\r\n }\r\n\r\n setStyleVariable() {\r\n const active = this.companyColor ? adjustLightness(this.companyColor, 'pressed') : '#FFE6FA'\r\n const hover = this.companyColor ? adjustLightness(this.companyColor, 'hover') : '#FFF2FC';\r\n this.renderer2.setAttribute(document.body, 'style', `\r\n --dropdown-color-option-active: ${active};\r\n --dropdown-color-option-hover: ${hover}`);\r\n }\r\n\r\n onKeydown($event: KeyboardEvent) {\r\n if ($event.key === IKeyboardEvent.ARROW_DOWN || $event.key === IKeyboardEvent.ARROW_UP) {\r\n if (!this.matSelect.panelOpen) {\r\n this.matSelect.open();\r\n } else {\r\n const selectedItem = this.optionSelected || this.matSelect.options.first;\r\n const index = this.matSelect.options.toArray().indexOf(selectedItem);\r\n const nextIndex = $event.key === IKeyboardEvent.ARROW_DOWN ? (index + 1) > this.matSelect.options.length - 1 ? index : (index + 1) : index - 1;\r\n this.optionSelected = this.matSelect.options.toArray()[nextIndex];\r\n\r\n if (this.optionSelected) {\r\n this.matSelect._keyManager.setActiveItem(this.optionSelected);\r\n }\r\n }\r\n } else if (($event.key === IKeyboardEvent.SPACE || $event.key === IKeyboardEvent.ENTER)) {\r\n if (this.isOpen()) {\r\n if (this.optionSelected) {\r\n if (!this.allowMultipleSelection) {\r\n this.matSelect.value = this.optionSelected.value;\r\n this.matSelect.close();\r\n } else {\r\n if (this.matSelect.value) {\r\n this.matSelect.value = this.matSelect.value.includes(this.optionSelected.value) ? this.matSelect.value.filter((value: any) => value !== this.optionSelected.value) : [...this.matSelect.value, this.optionSelected.value];\r\n } else {\r\n this.matSelect.value = [this.optionSelected.value];\r\n }\r\n }\r\n } else {\r\n this.matSelect.value = this.matSelect.options.first.value;\r\n }\r\n this.onChange(this.matSelect.value);\r\n } else {\r\n this.matSelect.open();\r\n }\r\n } else if ($event.key === IKeyboardEvent.HOME) {\r\n this.matSelect._keyManager.setFirstItemActive();\r\n } else if ($event.key === IKeyboardEvent.END) {\r\n this.matSelect._keyManager.setLastItemActive();\r\n }\r\n }\r\n}\r\n","<ng-container>\r\n <mat-form-field\r\n appearance=\"outline\"\r\n [attr.theme]=\"applicationTheme\"\r\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched ) || hasError) ? 'warn' : 'accent'\"\r\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'without-label': !label, 'keyboard-focused': keyboardFocused(), 'has-label': !!label }\"\r\n >\r\n <mat-label>{{ label }} <span *ngIf=\"required\">*</span></mat-label>\r\n <mat-select\r\n (closed)=\"onClosed()\"\r\n (opened)=\"onOpened()\"\r\n #matSelect\r\n [id]=\"id!\"\r\n [disableRipple]=\"applicationTheme !== 'classic'\"\r\n [panelClass]=\"'ui-dropdown-list' + ' ' + applicationTheme\"\r\n [disabled]=\"disabled\"\r\n [multiple]=\"!!allowMultipleSelection\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (selectionChange)=\"onChangeOption($event)\"\r\n [attr.name]=\"name\">\r\n <div class=\"mat-option-section\" *ngFor=\"let section of valueList\">\r\n <span *ngIf=\"section.sectionTitle\" class=\"section-title\">{{ section.sectionTitle }}</span>\r\n <mat-option *ngIf=\"section\" #matOption [value]=\"valueField ? section[valueField] : textField && !valueField ? section : section.value\">\r\n {{ textField ? section[textField] : section.displayValue ?? section.value }}\r\n </mat-option>\r\n </div>\r\n </mat-select>\r\n <ui-button [ariaLabel]=\"(('COMMON.CLEAR') | uiTranslate | async)!\" *ngIf=\"allowClear && !matSelect.empty\" variant=\"secondary\" [justIcon]=\"true\" class=\"clear\" [iconName]=\"applicationTheme === 'classic' ? 'Close' : 'Close-filled'\" [label]=\"(('COMMON.CLEAR') | uiTranslate | async)!\" (click)=\"clearValue($event)\"></ui-button>\r\n <ui-icon class=\"chevron-icon\" *ngIf=\"!matSelect.panelOpen\" size=\"24\" [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-filled'\"></ui-icon>\r\n <ui-icon class=\"chevron-icon\" *ngIf=\"matSelect.panelOpen\" size=\"24\" [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Arrow_up' : 'Arrow-chevron-up-filled'\"></ui-icon>\r\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\r\n <ng-container *ngIf=\"errorsLength\">\r\n <div class=\"errors\" *ngFor=\"let error of errors\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"></ui-icon>{{ error }}\r\n </div>\r\n </ng-container>\r\n\r\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\"></ui-validation-error>\r\n </mat-hint>\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { DropdownComponent } from './dropdown.component';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\r\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\r\n\r\n@NgModule({\r\n declarations: [DropdownComponent],\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n IconComponentModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ButtonComponentModule,\r\n MatSelectModule,\r\n UiTranslatePipe,\r\n ValidationErrorModule,\r\n HasValidationErrorPipe,\r\n ],\r\n exports: [DropdownComponent],\r\n})\r\nexport class DropdownComponentModule {}\r\n","import { Component, Inject, Input, OnChanges, OnInit, Optional } from '@angular/core';\r\nimport { SpinnerSize } from './spinner.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.scss'],\r\n})\r\nexport class SpinnerComponent implements OnInit, OnChanges {\r\n /**\r\n * The size variant of the spinner. Can be 'small' or 'large'.\r\n * Defaults to 'large'.\r\n * @default 'large'\r\n * @type {SpinnerSize}\r\n * @memberof SpinnerComponent\r\n */\r\n @Input() size: SpinnerSize = 'large';\r\n\r\n /**\r\n * Set position fixed on page\r\n * Defaults to 'true'.\r\n * @default 'true'\r\n * @type {SpinnerSize}\r\n * @memberof SpinnerComponent\r\n */\r\n @Input() isLoader = true;\r\n\r\n /**\r\n * The text to display below the spinner.\r\n * @type {string}\r\n * @memberof SpinnerComponent\r\n */\r\n @Input() text: string | null = null;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof SpinnerComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n classes: string;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.setSpinnerClasses();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setSpinnerClasses();\r\n }\r\n\r\n setSpinnerClasses(): void {\r\n this.classes = `${this.size === 'large' ? 'large' : 'small'} ${this.isLoader ? 'loader' : ''} ${\r\n this.text ? 'with-text' : ''\r\n } ${this.applicationTheme}`;\r\n\r\n this.classes = this.classes.replace(/\\s+/g, ' ');\r\n }\r\n}\r\n","<div class=\"spinner-container\"\r\n [ngClass]=\"classes\"\r\n [attr.theme]=\"applicationTheme\"\r\n [attr.aria-label]=\"'COMMON.LOADING' | uiTranslate | async\"\r\n role=\"alert\"\r\n>\r\n <svg class=\"spinner\" viewBox=\"0 0 50 50\">\r\n <circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\"></circle>\r\n </svg>\r\n\r\n @if(text) {\r\n <h3 class=\"spinner-text\">{{ text }}</h3>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { SpinnerComponent } from './spinner.component';\r\nimport { AsyncPipe, NgClass, NgIf } from '@angular/common';\r\nimport { UiTranslatePipe } from \"../../pipes/ui-translate.pipe\";\r\n\r\n@NgModule({\r\n declarations: [SpinnerComponent],\r\n exports: [SpinnerComponent],\r\n imports: [NgClass, NgIf, UiTranslatePipe, AsyncPipe],\r\n})\r\nexport class SpinnerComponentModule {}\r\n","import { Component, Inject, Input, Optional } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ConfirmDialogData } from './confirm-dialog.model';\r\nimport { LanguageService } from '../../utils/localization/language.service';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'ui-confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrls: ['./confirm-dialog.component.scss'],\r\n})\r\nexport class ConfirmDialogComponent {\r\n confirmMessage: string;\r\n confirmButtonText: string | undefined;\r\n cancelButtonText: string | undefined;\r\n title: string | undefined;\r\n lang = LanguageService.defaultLanguage;\r\n confirmMessageHtml: SafeHtml | undefined;\r\n showCloseButton = false;\r\n showSecondaryButton = true;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof DialogComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n public dialogRef: MatDialogRef<ConfirmDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) private data: ConfirmDialogData,\r\n protected domSanitizer: DomSanitizer,\r\n ) {\r\n this.confirmMessage = data.message;\r\n this.confirmButtonText = data.confirmButtonText;\r\n this.cancelButtonText = data.cancelButtonText;\r\n this.title = data.title;\r\n this.lang = data.language ?? LanguageService.defaultLanguage;\r\n this.confirmMessageHtml = data.messageHtml ? this.domSanitizer.bypassSecurityTrustHtml(data.messageHtml) : undefined;\r\n this.showCloseButton = data.showCloseButton ?? false;\r\n this.showSecondaryButton = data.showSecondaryButton ?? true;\r\n\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n}\r\n","<ng-container>\r\n <ui-dialog\r\n [title]=\"title ?? (('COMMON.CONFIRM') | uiTranslate | async)!\"\r\n [primaryButtonLabel]=\"confirmButtonText ?? (('COMMON.YES') | uiTranslate | async)!\"\r\n [secondaryButtonLabel]=\"showSecondaryButton ? (cancelButtonText ?? (('COMMON.CANCEL') | uiTranslate | async)!) : undefined\"\r\n (primaryButtonClickEvent)=\"dialogRef.close(true)\"\r\n (secondaryButtonClickEvent)=\"dialogRef.close(false)\"\r\n (closeEvent)=\"dialogRef.close(null)\"\r\n primaryButtonType=\"primary\"\r\n secondaryButtonType=\"outlined\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [showCloseButton]=\"showCloseButton\"\r\n >\r\n <div class=\"message\">{{ confirmMessage }}</div>\r\n @if (confirmMessageHtml) {\r\n <div class=\"message\" [innerHTML]=\"confirmMessageHtml\"></div>\r\n }\r\n </ui-dialog>\r\n\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { DialogComponentModule } from '../dialog/dialog.component.module';\r\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [ConfirmDialogComponent],\r\n exports: [ConfirmDialogComponent],\r\n providers: [\r\n { provide: MAT_DIALOG_DATA, useValue: {} },\r\n { provide: MatDialogRef, useValue: {} },\r\n ],\r\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, DialogComponentModule, UiTranslatePipe]\r\n})\r\nexport class ConfirmDialogComponentModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DatepickerService {\r\n #useBrowserTimezone = false;\r\n\r\n set useBrowserTimezone(value: boolean) {\r\n this.#useBrowserTimezone = value;\r\n }\r\n\r\n get useBrowserTimezone(): boolean {\r\n return this.#useBrowserTimezone;\r\n }\r\n}\r\n","import { NativeDateAdapter } from \"@angular/material/core\";\r\nimport { inject } from \"@angular/core\";\r\nimport { DatepickerService } from \"./datepicker.service\";\r\nimport { formatDate } from \"@angular/common\";\r\n\r\nexport const UI_DATE_FORMATS = {\r\n parse: {\r\n dateInput: { day: 'numeric', month: 'numeric', year: 'numeric' }\r\n },\r\n display: {\r\n dateInput: 'input',\r\n monthYearLabel: { year: 'numeric', month: 'short' },\r\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\r\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\r\n }\r\n};\r\n\r\nexport class UiDateAdapter extends NativeDateAdapter {\r\n #datepickerService = inject(DatepickerService);\r\n\r\n override format(date: Date, displayFormat: Object): string {\r\n if (!this.#datepickerService.useBrowserTimezone) {\r\n return formatDate(date, 'MM/dd/yyyy', 'en-US');\r\n }\r\n\r\n const locale = navigator.language;\r\n const options: Partial<Intl.DateTimeFormatOptions> = {\r\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n dateStyle: 'short'\r\n }\r\n\r\n return new Intl.DateTimeFormat(locale, options).format(date);\r\n }\r\n}\r\n","import { Directive, Injectable } from '@angular/core';\r\nimport {\r\n DateAdapter,\r\n MAT_DATE_FORMATS,\r\n MatDateFormats,\r\n NativeDateAdapter,\r\n} from '@angular/material/core';\r\nimport { formatDate } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class CustomDateAdapter extends NativeDateAdapter {\r\n override format(date: Date): string {\r\n return formatDate(date, 'MM/yyyy', 'en-US');\r\n }\r\n}\r\n\r\nconst FORMATS: MatDateFormats = {\r\n parse: {\r\n dateInput: 'MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'MM/YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@Directive({\r\n selector: '[appNoDateFormat]',\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: CustomDateAdapter,\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useValue: FORMATS,\r\n },\r\n ],\r\n standalone: true,\r\n})\r\nexport class NoDateFormatDirective {}\r\n","/* eslint-disable no-underscore-dangle */\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DoCheck,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n Optional,\r\n Output,\r\n Self,\r\n SimpleChanges,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormGroup, NgControl } from '@angular/forms';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { adjustLightness } from \"../../utils/color-contrast\";\r\nimport { DateAdapter, MAT_DATE_FORMATS } from \"@angular/material/core\";\r\nimport { UI_DATE_FORMATS, UiDateAdapter } from \"./date-adapter\";\r\nimport { DatepickerService } from \"./datepicker.service\";\r\n\r\n@Component({\r\n selector: 'ui-datepicker',\r\n templateUrl: './datepicker.component.html',\r\n styleUrls: ['./datepicker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: DateAdapter, useClass: UiDateAdapter },\r\n { provide: MAT_DATE_FORMATS, useValue: UI_DATE_FORMATS }\r\n ]\r\n})\r\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\nexport class DatepickerComponent implements OnChanges, ControlValueAccessor, DoCheck {\r\n @HostBinding() class = 'ui-datepicker';\r\n\r\n /**\r\n * Form field label\r\n *\r\n * @type {string}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() label? = '';\r\n\r\n /**\r\n * Input name attribute\r\n *\r\n * @type {string}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() fieldName?: string;\r\n\r\n /**\r\n * Input placeholder\r\n *\r\n * @type {string}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() placeholder? = '';\r\n\r\n /**\r\n * Input id\r\n *\r\n * @type {string}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() id? = '';\r\n\r\n /**\r\n * Input value\r\n *\r\n * @type {string}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() value?: Array<Date | null> | Date;\r\n\r\n _errors: SafeHtml[];\r\n /**\r\n * Input field errors\r\n *\r\n * @type {string}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() set errors(errors: string[]) {\r\n this._errors = errors?.filter(Boolean).map(error => this.sanitizer.bypassSecurityTrustHtml(error));\r\n this.errorsLength = this.setErrorsLength();\r\n }\r\n\r\n /**\r\n * Determines if input is date range\r\n *\r\n * @type {boolean}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() isRange: boolean;\r\n\r\n /**\r\n * Determines if input is disabled\r\n *\r\n * @type {boolean}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() disabled: boolean;\r\n\r\n /**\r\n * Input is required or not\r\n *\r\n * @type {boolean}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() required: boolean;\r\n\r\n /**\r\n * Hint text\r\n *\r\n * @type {string}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() hintMessage: string;\r\n\r\n /**\r\n * Input is update only on blur\r\n *\r\n * @type {Boolean}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() updateOnBlur = false;\r\n\r\n /**\r\n * Show reserved content below form field\r\n *\r\n * @type {boolean}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() showBottomContent = true;\r\n\r\n /**\r\n * Set full width DatepickerComponent\r\n *\r\n * @type {boolean}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() fullWidth = false;\r\n\r\n /**\r\n * Set min date for Datepicker\r\n *\r\n * @type {Date}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() minDate: Date | undefined;\r\n\r\n /**\r\n * Set max date for Datepicker\r\n *\r\n * @type {Date}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() maxDate: Date | undefined;\r\n\r\n /**\r\n * Show and pick date without day\r\n * @default false\r\n * @type {boolean}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() monthPicker = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Hide in-build errors for Reactive Forms\r\n *\r\n * @type {number}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() hideBuiltInErrors = false;\r\n\r\n /**\r\n * Hide label in errors\r\n *\r\n * @type {number}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() hideLabelInErrors = false;\r\n\r\n /**\r\n * Prevent user input\r\n *\r\n * @type {boolean}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() preventUserInput = false;\r\n\r\n /**\r\n * Color of the option hover.\r\n * Defaults to Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() companyColor: string = ''\r\n\r\n /**\r\n * Use browser timezone\r\n * @type boolean\r\n * @memberof DatepickerComponent\r\n */\r\n @Input() set browserTimezone(value: boolean) {\r\n this.datepickerService.useBrowserTimezone = value;\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n onChange = (_: any) => {};\r\n\r\n /**\r\n * @ignore\r\n */\r\n onTouch = () => {};\r\n\r\n /**\r\n * Event emitted when the value is change - when used outside of form\r\n *\r\n * @type {Date}\r\n * @memberof DatepickerComponent\r\n */\r\n @Output() changed = new EventEmitter<Date | Date[]>();\r\n\r\n range = new FormGroup({\r\n start: new FormControl<Date | null>(null),\r\n end: new FormControl<Date | null>(null),\r\n });\r\n\r\n errorsLength: boolean;\r\n protected translationContext = 'DATEPICKER.';\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private cdr: ChangeDetectorRef,\r\n private sanitizer: DomSanitizer,\r\n @Optional() @Self() public ngControl: NgControl,\r\n private datepickerService: DatepickerService\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n get hint(): string {\r\n if (this.hintMessage === undefined) {\r\n return this.isRange ? 'MM/DD/YYYY - MM/DD/YYYY' : this.monthPicker ? 'MM/YYYY' : 'MM/DD/YYYY';\r\n }\r\n\r\n return this.hintMessage;\r\n }\r\n\r\n /**\r\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\r\n * to display validation errors that might happen (e.g. required)\r\n */\r\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\n ngDoCheck(): void {\r\n if (this.ngControl?.touched || this.ngControl?.errors) {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\n ngOnInit() {\r\n document.body.setAttribute('theme', this.applicationTheme);\r\n this.setStyleVariable();\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isRange) {\r\n this.setRange();\r\n }\r\n if (changes['companyColor']) {\r\n this.setStyleVariable();\r\n }\r\n }\r\n\r\n // Set errors length for validation\r\n // Consider only those errors which which are not empty\r\n setErrorsLength(): boolean {\r\n if (!!this._errors) {\r\n return this._errors.filter(err => !!err).length > 0 ? true : false;\r\n }\r\n return false;\r\n }\r\n\r\n onValueChange(value: Date | Date[]) {\r\n this.writeValue(value);\r\n this.errorsLength = this.setErrorsLength();\r\n if (!this.updateOnBlur) {\r\n this.onTouch();\r\n }\r\n this.onChange(value);\r\n this.changed.emit(value);\r\n }\r\n\r\n writeValue(value?: Date | Date[]): void {\r\n this.value = value;\r\n if (this.isRange) {\r\n this.setRange();\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n dateRangeChange() {\r\n const start = this.range.controls.start.value!;\r\n const end = this.range.controls.end.value!;\r\n this.onValueChange([start ? new Date(start) : start, end ? new Date(end) : end]);\r\n }\r\n\r\n setMonthAndYear(normalizedMonthAndYear: any, datepicker: MatDatepicker<Date>) {\r\n const ctrlValue = (this.value) as Date || new Date();\r\n\r\n ctrlValue.setMonth(normalizedMonthAndYear.getMonth());\r\n ctrlValue.setFullYear(normalizedMonthAndYear.getFullYear());\r\n\r\n datepicker.close();\r\n\r\n this.onValueChange(new Date(ctrlValue));\r\n }\r\n\r\n private setRange() {\r\n if (Array.isArray(this.value)) {\r\n const [start, end] = this.value;\r\n\r\n if (start) {\r\n this.range.controls.start.setValue(new Date(start));\r\n }\r\n\r\n if (end) {\r\n this.range.controls.end.setValue(new Date(end));\r\n }\r\n }\r\n\r\n if (!this.value) {\r\n this.range.controls.start.setValue(null);\r\n this.range.controls.end.setValue(null);\r\n }\r\n }\r\n\r\n onInput(event: Event) {\r\n const target = event.target as EventTarget & { value: string };\r\n const [month, year] = target.value.split('/');\r\n const date = new Date().getDate();\r\n const fullDateString = `${month}/${date}/${year}`;\r\n const fullDate = new Date(fullDateString);\r\n this.onValueChange(fullDate);\r\n }\r\n\r\n private setStyleVariable() {\r\n const hover = this.companyColor ? adjustLightness(this.companyColor, 'hover') : '#FFF2FC';\r\n document.body.style.setProperty('--datepicker-hover-color', hover);\r\n document.body.style.setProperty('--datepicker-selected-color', `${this.companyColor || '#D410AA'}`);\r\n }\r\n}\r\n","<ng-container>\r\n <mat-form-field\r\n *ngIf=\"!monthPicker; else dateYearPicker\"\r\n #uiDatepicker\r\n appearance=\"outline\"\r\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\r\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\r\n >\r\n <mat-label *ngIf=\"label\">{{ label }}<span *ngIf=\"required\"> *</span></mat-label>\r\n <ng-container *ngIf=\"!isRange\">\r\n <input *ngIf=\"!isRange\" matInput\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n (dateChange)=\"onValueChange($event.value)\"\r\n [id]=\"id!\"\r\n [placeholder]=\"placeholder!\"\r\n [value]=\"value\"\r\n [disabled]=\"disabled\"\r\n [name]=\"fieldName!\"\r\n [readonly]=\"preventUserInput\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n />\r\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\">\r\n <ui-icon matDatepickerToggleIcon [applicationTheme]=\"applicationTheme\" name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"isRange\">\r\n <mat-date-range-input *ngIf=\"isRange\" [formGroup]=\"range\" [rangePicker]=\"rangePicker\" [min]=\"minDate\" [max]=\"maxDate\" >\r\n <input matStartDate formControlName=\"start\" [placeholder]=\"(translationContext + 'START_DATE') | uiTranslate | async\" (dateChange)=\"dateRangeChange()\">\r\n <input matEndDate formControlName=\"end\" [placeholder]=\"(translationContext + 'END_DATE') | uiTranslate | async\" (dateChange)=\"dateRangeChange()\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matIconSuffix [for]=\"rangePicker\">\r\n <ui-icon matDatepickerToggleIcon [applicationTheme]=\"applicationTheme\" name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #rangePicker></mat-date-range-picker>\r\n </ng-container>\r\n\r\n <mat-hint class=\"info\" *ngIf=\"hint && !_errors && !(ngControl?.touched && (ngControl?.errors | hasValidationError))\">{{ hint }}</mat-hint>\r\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.touched && (ngControl?.errors | hasValidationError))\">\r\n <ng-container *ngIf=\"errorsLength\">\r\n <div class=\"errors\" *ngFor=\"let error of _errors\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" name=\"Error\"></ui-icon>\r\n <span [innerHTML]=\"error\"></span>\r\n </div>\r\n </ng-container>\r\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\"></ui-validation-error>\r\n </mat-hint>\r\n </mat-form-field>\r\n\r\n <ng-template #dateYearPicker>\r\n <mat-form-field\r\n appNoDateFormat\r\n #uiDatepicker\r\n appearance=\"outline\"\r\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\r\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\r\n >\r\n <mat-label *ngIf=\"label\">{{ label }}<span *ngIf=\"required\"> *</span></mat-label>\r\n\r\n <ng-container >\r\n <input matInput\r\n [id]=\"id!\"\r\n (blur)=\"onTouch()\"\r\n [placeholder]=\"placeholder!\"\r\n [matDatepicker]=\"dp\"\r\n [value]=\"value\"\r\n [disabled]=\"disabled\"\r\n [name]=\"fieldName!\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [readonly]=\"preventUserInput\"\r\n (change)=\"onInput($event)\"\r\n (dateChange)=\"onValueChange($event.value)\"\r\n >\r\n <mat-datepicker-toggle matIconSuffix [for]=\"dp\">\r\n <ui-icon *ngIf=\"applicationTheme !== 'classic'\" matDatepickerToggleIcon [applicationTheme]=\"applicationTheme\" name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker panelClass=\"month-picker\" #dp startView=\"multi-year\" (monthSelected)=\"setMonthAndYear($event, dp)\"></mat-datepicker>\r\n </ng-container>\r\n\r\n <mat-hint class=\"info\" *ngIf=\"hint && !_errors && !(ngControl?.touched && (ngControl?.errors | hasValidationError))\">{{ hint }}</mat-hint>\r\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.touched && (ngControl?.errors | hasValidationError))\">\r\n <ng-container *ngIf=\"errorsLength\">\r\n <div class=\"errors\" *ngFor=\"let error of _errors\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" name=\"Error\"></ui-icon>\r\n <span [innerHTML]=\"error\"></span>\r\n </div>\r\n </ng-container>\r\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\"></ui-validation-error>\r\n </mat-hint>\r\n\r\n </mat-form-field>\r\n </ng-template>\r\n\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DatepickerComponent } from './datepicker.component';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { NoDateFormatDirective } from './no-date-format.directive';\r\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\r\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\r\n\r\n@NgModule({\r\n declarations: [DatepickerComponent],\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n IconComponentModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n UiTranslatePipe,\r\n NoDateFormatDirective,\r\n HasValidationErrorPipe,\r\n ValidationErrorModule,\r\n ],\r\n exports: [DatepickerComponent],\r\n})\r\nexport class DatepickerComponentModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'halfStar',\r\n})\r\nexport class HalfStarPipe implements PipeTransform {\r\n /**\r\n * @description Used to indicate whether display half-star icon.\r\n * Returns true if the rounded value of the current element\r\n * is equal to it's index, and value is not integer (e.g. index = 4, value = 3.5),\r\n * @param index the index of the current element\r\n * @param value the value of the current element\r\n */\r\n transform(index: number, value: number): boolean {\r\n return Math.ceil(value) === index && !Number.isInteger(value);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\nexport type RatingComponentTheme = 'stars' | 'block';\r\n\r\n@Component({\r\n selector: 'ui-rating',\r\n templateUrl: './rating.component.html',\r\n styleUrls: ['./rating.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RatingComponent {\r\n private readonly MIN_LENGTH = 0;\r\n private readonly DEFAULT_LENGTH = 5;\r\n protected items: number[] = [];\r\n protected hoverIndex: number;\r\n\r\n /**\r\n *\r\n * Defines the application theme where accordion is used\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof AccordionComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * The value representing the rating.\r\n * @type {number}\r\n * @memberof RatingComponent\r\n */\r\n @Input() value: number;\r\n\r\n /**\r\n * The theme of the rating component. Defaults \"block\".\r\n * @type {RatingComponentTheme}\r\n * @memberof RatingComponent\r\n */\r\n @Input() theme: RatingComponentTheme = 'block';\r\n\r\n /**\r\n * A flag indicating whether the rating component is disabled.\r\n * @type {boolean}\r\n * @memberof RatingComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof RatingComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {boolean}\r\n * @memberof RatingComponent\r\n */\r\n @Input() ariaRequired = false;\r\n\r\n /**\r\n * The width of the rating bar.\r\n * @type {number}\r\n * @memberof RatingComponent\r\n */\r\n @Input() barWidth = 35;\r\n\r\n @Input() set length(length: number) {\r\n this.items = Array(Math.max(length, this.MIN_LENGTH))\r\n .fill(0)\r\n .map((x, i) => i);\r\n }\r\n\r\n @Output() valueChange = new EventEmitter<number>();\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n this.length = this.DEFAULT_LENGTH;\r\n\r\n }\r\n\r\n protected select(index: number): void {\r\n this.value = this.value === index + 1 ? 0 : index + 1;\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n protected onHover(index: number): void {\r\n this.hoverIndex = index + 1;\r\n }\r\n}\r\n","<div class=\"rating\"\r\n (mouseleave)=\"onHover(-1)\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-required]=\"ariaRequired\"\r\n>\r\n <ng-container *ngIf=\"theme === 'block';else stars\">\r\n <div class=\"rating-item\" [attr.theme]=\"applicationTheme\" *ngFor=\"let item of items\" (click)=\"select(item)\" (mouseenter)=\"onHover(item)\"\r\n [ngClass]=\"{ 'rating-item-selected': item < value, 'rating-item-hover': item < hoverIndex }\"\r\n [ngStyle]=\"{'width.px': barWidth}\">\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #stars>\r\n <div class=\"star-container\" [attr.theme]=\"applicationTheme\">\r\n <div\r\n #star\r\n class=\"star\"\r\n [tabIndex]=\"0\"\r\n (mouseenter)=\"onHover(item)\"\r\n (mouseleave)=\"onHover(-1)\"\r\n [ngClass]=\"{\r\n filled: value > i,\r\n hover: item < hoverIndex && (value ? item >= value : true),\r\n disabled,\r\n 'filled-half': i + 1 | halfStar : value\r\n }\"\r\n *ngFor=\"let item of items; index as i\"\r\n (click)=\"select(item); star.blur()\"\r\n ></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RatingComponent } from './rating.component';\r\nimport { HalfStarPipe } from './half-star.pipe';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\n@NgModule({\r\n declarations: [RatingComponent, HalfStarPipe],\r\n imports: [CommonModule, MatInputModule],\r\n exports: [RatingComponent],\r\n})\r\nexport class RatingComponentModule {}\r\n","export const hexToRgbWithAlpha = (hex: string, alpha: number = 0.3): string => {\r\n hex = hex.replace(/^#/, '');\r\n\r\n let bigint = parseInt(hex, 16);\r\n let r = (bigint >> 16) & 255;\r\n let g = (bigint >> 8) & 255;\r\n let b = bigint & 255;\r\n\r\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Optional,\r\n Output,\r\n QueryList,\r\n signal,\r\n SimpleChanges,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { hexToRgbWithAlpha } from '../../utils/hex-to-rgb';\r\n\r\n@Component({\r\n selector: 'ui-scale',\r\n templateUrl: './scale.component.html',\r\n styleUrls: ['./scale.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ScaleComponent implements OnInit, OnChanges {\r\n private readonly MIN_LENGTH = 1;\r\n private readonly DEFAULT_LENGTH = 5;\r\n protected items: number[] = [];\r\n\r\n @ViewChildren('scaleItem') scaleItems!: QueryList<ElementRef>;\r\n\r\n /**\r\n * The value representing the selected item of the scale.\r\n * @type {number}\r\n * @memberof ScaleComponent\r\n */\r\n @Input() selectedIndex: number | null;\r\n\r\n /**\r\n * The max number of items in the scale.\r\n * @type {number}\r\n * @memberof ScaleComponent\r\n */\r\n @Input() set length(length: number) {\r\n this.items = Array(Math.max(length, this.MIN_LENGTH))\r\n .fill(0)\r\n .map((_, i) => i);\r\n }\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof ScaleComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Color of the option hover.\r\n * Defaults to Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof ScaleComponent\r\n */\r\n @Input() companyColor: string = '';\r\n\r\n @Output() selectedIndexChange = new EventEmitter<number>();\r\n\r\n styles = signal({ '--hover-color': '#FFB3EE', '--selected-color': '#D410AA' });\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n this.length = this.DEFAULT_LENGTH;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.companyColor) {\r\n this.setCompanyColor();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['companyColor']) {\r\n this.setCompanyColor();\r\n }\r\n }\r\n\r\n protected select(index: number): void {\r\n this.selectedIndex = index;\r\n this.selectedIndexChange.emit(this.selectedIndex);\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent, index: number) {\r\n if (this.selectedIndex === null) {\r\n this.selectedIndex = 0;\r\n }\r\n if (event.key === 'ArrowRight' || event.key === 'ArrowDown') {\r\n // Move to the next item (wrap around)\r\n this.select((index + 1) % this.items.length);\r\n this.focusItem(this.selectedIndex);\r\n } else if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') {\r\n // Move to the previous item (wrap around)\r\n this.select((index - 1 + this.items.length) % this.items.length);\r\n this.focusItem(this.selectedIndex);\r\n } else if (event.key === ' ' || event.key === 'Enter') {\r\n // Select the current item\r\n this.select(index);\r\n this.focusItem(this.selectedIndex);\r\n }\r\n }\r\n\r\n focusItem(index: number) {\r\n const element = this.scaleItems?.toArray()[index]?.nativeElement;\r\n if (element) {\r\n element.focus();\r\n }\r\n }\r\n\r\n getAriaLabel(index: number): string {\r\n if (index === 0) {\r\n return '1 - Not at all important';\r\n } else if (index === 4) {\r\n return '5 - Very important';\r\n }\r\n return '';\r\n }\r\n\r\n private setCompanyColor(): void {\r\n const styles = this.styles();\r\n styles['--hover-color'] = hexToRgbWithAlpha(this.companyColor);\r\n styles['--selected-color'] = this.companyColor;\r\n this.styles.set(styles);\r\n }\r\n}\r\n","<div class=\"scale\" [ngStyle]=\"styles()\"\r\n [ngClass]=\"{ 'scale-classic': applicationTheme === 'classic' }\">\r\n <div class=\"scale-item\" *ngFor=\"let item of items\" (click)=\"select(item)\"\r\n #scaleItem\r\n tabindex=\"-1\"\r\n role=\"radio\"\r\n (keydown)=\"onKeyDown($event, item)\"\r\n [class.scale-item-focus-prev]=\"selectedIndex && selectedIndex > 0 ? item === (selectedIndex - 1) : false\"\r\n [attr.tabindex]=\"item === selectedIndex ? '0' : '-1'\"\r\n [attr.aria-checked]=\"item === selectedIndex? 'true' : 'false'\"\r\n [attr.aria-label]=\"getAriaLabel(item)\"\r\n [ngClass]=\"{ 'scale-item-selected': item === selectedIndex }\">\r\n {{ item + 1 }}\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ScaleComponent } from './scale.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [ScaleComponent],\r\n imports: [CommonModule],\r\n exports: [ScaleComponent]\r\n})\r\nexport class ScaleComponentModule {\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Optional,\r\n Output,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { RegisterFn } from './toggle.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { IKeyboardEvent } from '../../models/keyboard-events.model';\r\n\r\n@Component({\r\n selector: 'ui-toggle',\r\n templateUrl: './toggle.component.html',\r\n styleUrls: ['./toggle.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ToggleComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ToggleComponent implements ControlValueAccessor, OnChanges, OnInit {\r\n /**\r\n * The `selected` property determines the current state of the toggle switch.\r\n *\r\n * @type {boolean}\r\n * @default false\r\n * @memberof ToggleComponent\r\n */\r\n @Input() selected = false;\r\n\r\n /**\r\n * The `disabled` property determines whether the toggle switch is disabled.\r\n *\r\n * @type {boolean}\r\n * @default false\r\n * @memberof ToggleComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Toggle label\r\n *\r\n * @type {string}\r\n * @default ''\r\n * @memberof ToggleComponent\r\n */\r\n @Input() label = '';\r\n\r\n /**\r\n * Message\r\n *\r\n * @type {string}\r\n * @default ''\r\n * @memberof ToggleComponent\r\n */\r\n @Input() message = '';\r\n\r\n /**\r\n * Max width of the toggle container\r\n *\r\n * @type {number}\r\n * @memberof ToggleComponent\r\n */\r\n @HostBinding('style.--max-width')\r\n @Input()\r\n maxWidth: number | undefined;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof ToggleComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * The `toggle` event is triggered when the state of the toggle switch changes. It returns the new state.\r\n *\r\n * @type {event}\r\n * @memberof ToggleComponent\r\n */\r\n @Output() toggle = new EventEmitter<boolean>();\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof ToggleComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {boolean}\r\n * @memberof ToggleComponent\r\n */\r\n @Input() ariaRequired = false;\r\n\r\n /**\r\n * disable/enable click on toggle\r\n * @type {boolean}\r\n * @memberof ToggleComponent\r\n */\r\n @Input() preventClick = false;\r\n\r\n /**\r\n * The loading state\r\n *\r\n * @type {boolean}\r\n * @memberof ToggleComponent\r\n */\r\n @Input() loading = false;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof ToggleComponent\r\n */\r\n @Input() ariaDescribedby = '';\r\n\r\n protected showLabelTooltip = false\r\n protected classes: string;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.setClasses();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setClasses();\r\n }\r\n\r\n onToggle(): void {\r\n if (this.preventClick) {\r\n this.toggle.emit(this.selected);\r\n }\r\n if (!this.disabled && !this.preventClick) {\r\n this.selected = !this.selected;\r\n this.toggle.emit(this.selected);\r\n this.onChange(this.selected);\r\n }\r\n }\r\n\r\n writeValue(state: boolean): void {\r\n if (state) {\r\n this.selected = state;\r\n }\r\n }\r\n\r\n registerOnChange(fn: RegisterFn): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: RegisterFn): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n changeTextState(state: boolean): void {\r\n this.showLabelTooltip = state;\r\n }\r\n\r\n onKeydown($event: KeyboardEvent) {\r\n if ($event.key === IKeyboardEvent.ENTER || $event.key === IKeyboardEvent.SPACE) {\r\n $event.stopPropagation();\r\n $event.preventDefault();\r\n this.onToggle();\r\n }\r\n }\r\n\r\n private onChange: RegisterFn = () => {\r\n };\r\n private onTouched: RegisterFn = () => {\r\n };\r\n\r\n private setClasses(): void {\r\n this.classes = `${this.disabled ? 'disabled' : ''} ${this.applicationTheme} ${this.loading ? 'loading' : ''} ${!this.label ? 'small-toggle' : ''}`;\r\n }\r\n}\r\n","<div class=\"toggle\" [ngClass]=\"classes\">\r\n <div\r\n [style.--max-width]=\"maxWidth + 'px'\"\r\n [tabIndex]=\"0\"\r\n class=\"toggle-container\"\r\n [ngClass]=\"{ 'active': selected }\"\r\n (click)=\"onToggle()\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-required]=\"ariaRequired\"\r\n (keydown)=\"onKeydown($event)\"\r\n role=\"switch\"\r\n [attr.aria-labelledby]=\"'label'\"\r\n [attr.aria-describedby]=\"'ariaDescribedby'\"\r\n [attr.aria-checked]=\"selected\"\r\n >\r\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\r\n <div\r\n class=\"label\"\r\n uiEllipseText\r\n [matTooltipShowDelay]=\"800\"\r\n [matTooltip]=\"showLabelTooltip ? label : ''\"\r\n (onChangeTextState)=\"changeTextState($event)\"\r\n id=\"label\"\r\n >\r\n {{ label }}\r\n </div>\r\n <div class=\"knob\" *ngIf=\"!loading; else loadingTemplate\" [ngClass]=\"{ selected }\">\r\n <ui-icon [color]=\"disabled ? 'grey' : 'white'\" *ngIf=\"selected && !label\" [size]=\"'16'\" [name]=\"'Check-round-filled'\"></ui-icon>\r\n </div>\r\n\r\n <ng-template #loadingTemplate>\r\n <ui-spinner [isLoader]=\"false\" [size]=\"'small'\" [applicationTheme]=\"'dark'\"></ui-spinner>\r\n </ng-template>\r\n </div>\r\n <div *ngIf=\"message && selected\" class=\"message\">{{ message }}</div>\r\n</div>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToggleComponent } from './toggle.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { EllipseTextDirective } from '../../directives/ellipse-text.directive';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { IconComponentModule } from \"../icon/icon.component.module\";\r\nimport { SpinnerComponentModule } from \"../spinner/spinner.module\";\r\n\r\n@NgModule({\r\n declarations: [ToggleComponent],\r\n imports: [CommonModule, MatTooltipModule, EllipseTextDirective, MatInputModule, UiTranslatePipe, IconComponentModule, SpinnerComponentModule],\r\n exports: [ToggleComponent],\r\n})\r\nexport class ToggleComponentModule {}\r\n","import { inject, InjectionToken } from '@angular/core';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { map } from 'rxjs';\r\nimport { ScreenBreakpoints } from '../models/screen-breakpoints.model';\r\n\r\nexport const IS_MOBILE_TOKEN = new InjectionToken('Is mobile', {\r\n factory: () => {\r\n const breakpointObserver = inject(BreakpointObserver);\r\n return breakpointObserver.observe(`(max-width: ${ScreenBreakpoints.MOBILE}px)`).pipe(map(v => v.matches));\r\n },\r\n});\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n Optional,\r\n Output, signal,\r\n TemplateRef, ViewChild,\r\n} from '@angular/core';\r\nimport { IconName } from '../icon/icon.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { HtmlDescription, StepperPosition } from '../stepper/stepper.model';\r\nimport { FocusMonitor } from \"@angular/cdk/a11y\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { IKeyboardEvent } from \"../../models/keyboard-events.model\";\r\n\r\n@Component({\r\n selector: 'ui-step',\r\n templateUrl: './step.component.html',\r\n styleUrls: ['./step.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class StepComponent implements AfterViewInit {\r\n /**\r\n * Input property for the label of the step.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() label: string;\r\n\r\n /**\r\n * Input property indicating whether the step has been visited.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() isVisited: boolean;\r\n\r\n /**\r\n * Input property indicating whether the form has been submitted.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() submitted: boolean;\r\n\r\n /**\r\n * Input property for the icon associated with the step.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() icon: IconName | undefined = '';\r\n\r\n /**\r\n * Input property for the index of the step.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() index: number;\r\n\r\n /**\r\n * Input property indicating whether the step is currently selected.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() selected: boolean;\r\n\r\n /**\r\n * Input property indicating whether the step is the last step in the stepper.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() isLast: boolean;\r\n\r\n /**\r\n * Input property indicating the selected index in the stepper.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() selectedIndex: number;\r\n\r\n /**\r\n * Input property indicating whether the step is disabled.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Input property indicating whether the previous step has been visited.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() prevStepIsVisited: boolean | undefined = false;\r\n\r\n /**\r\n * Input property indicating whether the component is in mobile mode.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() mobileMode = false;\r\n\r\n /**\r\n * Input property indicating whether the final icon should be displayed.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() finalIcon = false;\r\n\r\n /**\r\n * Input property indicating to display icon when step is selected.\r\n *\r\n * @memberof StepComponent\r\n */\r\n @Input() showIconWhenSelected = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof StepComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n *\r\n * Defines the stepper position\r\n *\r\n * @type {StepperPosition}\r\n * @memberof StepComponent\r\n */\r\n @Input() position: StepperPosition;\r\n\r\n /**\r\n *\r\n * Step description\r\n *\r\n * @type {HtmlDescription[]}\r\n * @memberof StepComponent\r\n */\r\n @Input() htmlDescription: HtmlDescription[] = [];\r\n\r\n /**\r\n *\r\n * Sets bold font weight for label\r\n *\r\n * @type {boolean}\r\n * @memberof StepComponent\r\n */\r\n @Input() boldLabel = false;\r\n\r\n /**\r\n *\r\n * Template for the step description\r\n *\r\n * @type {TemplateRef}\r\n * @memberof StepComponent\r\n */\r\n @Input() descriptionTpl?: TemplateRef<any>;\r\n\r\n /**\r\n *\r\n * Tooltip for the step label\r\n *\r\n * @type {string}\r\n * @memberof StepComponent\r\n */\r\n @Input() labelTooltip?: string;\r\n\r\n /**\r\n *\r\n * Always show step icon instead of number\r\n *\r\n * @type {boolean}\r\n * @memberof StepComponent\r\n */\r\n @Input() alwaysShowIcon = false;\r\n\r\n /**\r\n *\r\n * Context for the step template\r\n *\r\n * @type {any}\r\n * @memberof StepComponent\r\n */\r\n @Input() context: any;\r\n\r\n /**\r\n * Event emitted when the step was clicked.\r\n * @type {number}\r\n * @memberof StepComponent\r\n */\r\n @Output() stepSelected = new EventEmitter<number>();\r\n\r\n protected keyboardFocused = signal(false);\r\n\r\n @ViewChild('step') stepElement: ElementRef<HTMLElement>;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private focusMonitor: FocusMonitor,\r\n private destroyRef: DestroyRef\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.subscriberFocus();\r\n }\r\n\r\n protected get hasLastStepDefaultIcon(): boolean {\r\n return !this.showIconWhenSelected || (this.showIconWhenSelected && !this.selected);\r\n }\r\n\r\n protected onStepSelected(index: number): void {\r\n if (!this.disabled) {\r\n this.stepSelected.emit(index);\r\n }\r\n }\r\n\r\n protected subscriberFocus(): void {\r\n this.focusMonitor.monitor(this.stepElement.nativeElement)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(origin => this.keyboardFocused.set(origin === 'keyboard'));\r\n }\r\n\r\n onKeydown($event: KeyboardEvent): void {\r\n if ($event.key === IKeyboardEvent.ENTER || $event.key === IKeyboardEvent.SPACE) {\r\n this.onStepSelected(this.index);\r\n } else if ($event.key === IKeyboardEvent.ARROW_UP) {\r\n const prevIndex = this.index - 1;\r\n const prevElement = document.getElementById(`step-${prevIndex}`);\r\n\r\n if (!prevElement) {\r\n return;\r\n }\r\n this.focusMonitor.focusVia(prevElement, 'keyboard');\r\n } else if ($event.key === IKeyboardEvent.ARROW_DOWN) {\r\n const nextIndex = this.index + 1;\r\n const nextElement = document.getElementById(`step-${nextIndex}`);\r\n\r\n if (!nextElement) {\r\n return;\r\n }\r\n this.focusMonitor.focusVia(nextElement, 'keyboard');\r\n }\r\n }\r\n}\r\n","@if (!mobileMode) {\r\n <div\r\n class=\"step-container\"\r\n #step\r\n [tabIndex]=\"disabled? -1 : 0\"\r\n [ngClass]=\"{\r\n 'visited-next': isVisited && index > selectedIndex,\r\n 'visited-prev': isVisited && index < selectedIndex,\r\n 'active': selected,\r\n 'last-step': finalIcon && hasLastStepDefaultIcon && !alwaysShowIcon,\r\n 'disabled': disabled,\r\n 'vertical': position === 'vertical',\r\n 'keyboard-focused': keyboardFocused()\r\n }\"\r\n [attr.theme]=\"applicationTheme\"\r\n (keydown.enter)=\"onStepSelected(index)\"\r\n (keydown.space)=\"$event.preventDefault();onStepSelected(index)\"\r\n (click)=\"onStepSelected(index)\"\r\n >\r\n <div class=\"step-icon\">\r\n <div class=\"line\" *ngIf=\"index\" [ngClass]=\"{ visited: prevStepIsVisited }\"></div>\r\n <div class=\"icon-wrapper\" *ngIf=\"!finalIcon; else lastStep\">\r\n <ng-container [ngSwitch]=\"true\">\r\n <ng-container *ngSwitchCase=\"isVisited && !selected && !alwaysShowIcon\">\r\n <ui-icon [size]=\"'24'\" [name]=\"'Check'\"\r\n [color]=\"isVisited && index < selectedIndex ? 'white' : applicationTheme === 'classic' ? 'petrol' : 'rebrand-black'\"></ui-icon>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"(selected && !!icon) || alwaysShowIcon\">\r\n <ui-icon [size]=\"'24'\" [name]=\"icon!\" [color]=\"isLast && !selected ? 'rebrand-black' : 'white'\"></ui-icon>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n {{ index + 1 }}\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #lastStep>\r\n <img\r\n *ngIf=\"hasLastStepDefaultIcon && !alwaysShowIcon; else stepIcon\"\r\n [alt]=\"'step-finish-image'\"\r\n [attr.src]=\"applicationTheme === 'classic' ? '/images/step-finish.svg' : isVisited ? '/images/rebrand-last-step-icon-light.svg' : '/images/rebrand-last-step-icon-black.svg'\"\r\n >\r\n\r\n <ng-template #stepIcon>\r\n <div class=\"icon-wrapper\">\r\n <ui-icon *ngIf=\"icon || (icon && alwaysShowIcon); else stepIndex\" [size]=\"'24'\" [name]=\"icon\"\r\n [color]=\"'white'\"></ui-icon>\r\n <ng-template #stepIndex>\r\n {{ index + 1 }}\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"steps-label\">\r\n <div class=\"step-label\" [ngClass]=\"{'step-bold-label': boldLabel}\" *ngIf=\"label\"\r\n [matTooltip]=\"labelTooltip ?? ''\">\r\n {{ label }}\r\n </div>\r\n\r\n <div class=\"step-description-container\">\r\n <div *ngFor=\"let description of htmlDescription\" class=\"step-description\">\r\n <div>{{ description.text }}</div>\r\n <ui-icon *ngIf=\"description.iconName\" [name]=\"description.iconName\" [size]=\"'24'\"\r\n [matTooltip]=\"description.iconTooltip ?? ''\"></ui-icon>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"descriptionTpl\" [ngTemplateOutlet]=\"descriptionTpl\"\r\n [ngTemplateOutletContext]=\"{ $implicit: context, label, isVisited, submitted, index, selected, isLast, selectedIndex, disabled, prevStepIsVisited, mobileMode, finalIcon, showIconWhenSelected, position }\"></ng-container>\r\n </div>\r\n\r\n </div>\r\n\r\n} @else {\r\n <div class=\"mobile-step-container\"\r\n #step\r\n [tabIndex]=\"disabled ? -1 : 0\"\r\n [ngClass]=\"{ 'active': selected, 'disabled': disabled, 'visited': isVisited, 'keyboard-focused': keyboardFocused() }\"\r\n (keydown)=\"onKeydown($event)\"\r\n (click)=\"onStepSelected(index)\"\r\n [attr.theme]=\"applicationTheme\"\r\n role=\"tab\"\r\n [attr.aria-selected]=\"selected\"\r\n [attr.aria-disabled]=\"disabled\"\r\n [attr.aria-label]=\"label\"\r\n [attr.aria-controls]=\"index\"\r\n [id]=\"'step-'+ index\"\r\n >\r\n <div class=\"step\">\r\n <ng-container *ngIf=\"!finalIcon; else lastStep\">\r\n <div [ngSwitch]=\"true\" class=\"icon\">\r\n <ng-container *ngSwitchCase=\"isVisited && !selected\">\r\n <ui-icon [size]=\"'16'\" [name]=\"'Check'\" [color]=\"'white'\"></ui-icon>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"selected && !!icon\">\r\n <ui-icon [size]=\"'16'\" [name]=\"icon!\" [color]=\"'white'\"></ui-icon>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n {{ index + 1 }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #lastStep>\r\n <img *ngIf=\"hasLastStepDefaultIcon; else stepIcon\"\r\n [alt]=\"'step-finish-image'\"\r\n [width]=\"24\"\r\n [height]=\"24\"\r\n [attr.src]=\"applicationTheme === 'classic' ? '/images/step-finish.svg' : isVisited ? '/images/rebrand-last-step-icon-light.svg' : '/images/rebrand-last-step-icon-black.svg'\"\r\n >\r\n\r\n <ng-template #stepIcon>\r\n <div class=\"icon\">\r\n <ui-icon *ngIf=\"icon; else stepIndex\" [size]=\"'24'\" [name]=\"icon\" [color]=\"'white'\"></ui-icon>\r\n <ng-template #stepIndex>\r\n {{ index + 1 }}\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n <span class=\"label\">{{ label }}</span>\r\n </div>\r\n </div>\r\n}\r\n\r\n","export type RadialProgressSize = 'large' | 'small';\r\n\r\nexport enum RadialProgressSizeValue {\r\n LARGE = 64,\r\n SMALL = 40,\r\n}\r\n\r\nexport enum RadialProgressSizeEnum {\r\n LARGE = 'large',\r\n SMALL = 'small',\r\n}\r\n\r\nexport type RadialProgressVariant = 'number' | 'icon-button';\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n Optional,\r\n Output, SimpleChanges\r\n} from '@angular/core';\r\nimport {\r\n RadialProgressSize,\r\n RadialProgressSizeEnum,\r\n RadialProgressSizeValue,\r\n RadialProgressVariant\r\n} from './radial-progress.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { IconName } from '../icon/icon.model';\r\n\r\n@Component({\r\n selector: 'ui-radial-progress',\r\n templateUrl: './radial-progress.component.html',\r\n styleUrls: ['./radial-progress.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadialProgressComponent {\r\n /**\r\n * The size of the component. Defaults to 'small'.\r\n * @type {RadialProgressSize}\r\n * @memberof RadialProgressComponent\r\n */\r\n @Input() size: RadialProgressSize = RadialProgressSizeEnum.SMALL;\r\n /**\r\n * The current value of the progress. Defaults to 0.\r\n * @type {number}\r\n * @memberof RadialProgressComponent\r\n */\r\n @Input() value = 0;\r\n /**\r\n * The value of the total progress. Used to set the cap and used for percentage calculations. Defaults to 0.\r\n * @type {number}\r\n * @memberof RadialProgressComponent\r\n */\r\n @Input() total = 0;\r\n\r\n /**\r\n * @type {number}\r\n * @memberof RadialProgressComponent\r\n */\r\n @Input() variant: RadialProgressVariant = 'number';\r\n\r\n /**\r\n * Icon for icon button\r\n * @type {number}\r\n * @memberof RadialProgressComponent\r\n */\r\n @Input() icon: IconName = '';\r\n\r\n /**\r\n * The tooltip that is displayed on hover. Required for icon-button\r\n * @type {number}\r\n * @memberof RadialProgressComponent\r\n */\r\n @Input() buttonTooltip = '';\r\n\r\n /**\r\n * Color of the progress bar.\r\n * Defaults to Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof RadialProgressComponent\r\n */\r\n @HostBinding('style.--color')\r\n @Input() companyColor: string | null;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof ButtonComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n @Output() buttonClicked = new EventEmitter<Event>();\r\n\r\n protected radialProgressSize = RadialProgressSizeEnum;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes['companyColor']) {\r\n this.companyColor = this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';\r\n }\r\n }\r\n\r\n protected get progressSize(): number {\r\n return this.size === RadialProgressSizeEnum.SMALL ? RadialProgressSizeValue.SMALL : RadialProgressSizeValue.LARGE;\r\n }\r\n\r\n protected get percentage(): number {\r\n return Math.round(this.total ? (this.value * 100) / this.total : 0);\r\n }\r\n\r\n protected onButtonClick(ev: Event): void {\r\n this.buttonClicked.emit(ev);\r\n }\r\n}\r\n","<div\r\n class=\"radial-progress-container\"\r\n [attr.theme]=\"applicationTheme\"\r\n [style.width]=\"progressSize + 'px'\"\r\n [style.height]=\"progressSize + 'px'\"\r\n>\r\n <div class=\"background\"></div>\r\n\r\n <mat-progress-spinner [strokeWidth]=\"8\" [diameter]=\"progressSize\" [value]=\"percentage\"></mat-progress-spinner>\r\n\r\n <div class=\"inner-container\">\r\n <ng-container *ngIf=\"variant === 'icon-button' && size !== 'small'; else number\">\r\n <ui-button\r\n [tooltip]=\"buttonTooltip\"\r\n [iconName]=\"icon\"\r\n [variant]=\"'icon-button'\"\r\n (click)=\"onButtonClick($event)\"\r\n [applicationTheme]=\"applicationTheme\"\r\n ></ui-button>\r\n </ng-container>\r\n\r\n <ng-template #number>\r\n <div *ngIf=\"size === radialProgressSize.LARGE\">{{ percentage }}%</div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n","import { Directive, ElementRef, HostListener, Input, OnChanges } from '@angular/core';\r\nimport { StepperPosition } from \"../components/stepper/stepper.model\";\r\n\r\nconst MARGINS = 36;\r\nconst PADDING = 16;\r\n\r\n/**\r\n * Directive is used to draw lines between steps\r\n */\r\n@Directive({\r\n selector: '[stepLineElement]',\r\n})\r\nexport class StepLineElementDirective implements OnChanges {\r\n @Input() stepLineElement: HTMLElement;\r\n @Input() position: StepperPosition = 'horizontal';\r\n\r\n @HostListener('window:resize.out-zone', ['$event'])\r\n resize(): void {\r\n this.setSize();\r\n }\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n setSize(): void {\r\n if (this.position === 'horizontal') {\r\n this.el.nativeElement.style.width = `calc(100% + ${this.stepLineElement.getBoundingClientRect().width / 2 - PADDING}px)`;\r\n this.el.nativeElement.style.height = `0`;\r\n this.el.nativeElement.style.top = '45px';\r\n this.el.nativeElement.style.left = `-${this.stepLineElement.getBoundingClientRect().width / 2 - MARGINS}px`;\r\n } else {\r\n this.el.nativeElement.style.height = `calc(100% + ${this.stepLineElement.getBoundingClientRect().height / 2 - PADDING}px)`;\r\n this.el.nativeElement.style.width = '0';\r\n this.el.nativeElement.style.top = `-${this.stepLineElement.getBoundingClientRect().height / 2 - 30}px`;\r\n this.el.nativeElement.style.left = '34px';\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n queueMicrotask(() => {\r\n this.setSize();\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component, DestroyRef, ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n Optional,\r\n Output, signal, ViewChild,\r\n} from '@angular/core';\r\nimport { Step, StepperPosition } from './stepper.model';\r\nimport { Observable } from 'rxjs';\r\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\r\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { FocusMonitor } from \"@angular/cdk/a11y\";\r\n\r\n@Component({\r\n selector: 'ui-stepper',\r\n templateUrl: './stepper.component.html',\r\n styleUrls: ['./stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class StepperComponent {\r\n /**\r\n *\r\n * Auto selects first step as visited\r\n * Defaults to true\r\n *\r\n * @memberof StepperComponent\r\n */\r\n @Input('firstStepAutoSelect') set setFirstStepAutoSelect(value: boolean) {\r\n this.firstStepAutoSelect = value;\r\n if (!this.firstStepAutoSelect) {\r\n this.itemSteps = this.itemSteps.map((step, i) => ({\r\n ...step,\r\n isVisited: i === 0 && this.selectedIndex === -1 ? false : step.isVisited\r\n }));\r\n }\r\n };\r\n\r\n /**\r\n * Input property to set the steps for the stepper.\r\n * The first step will be marked as visited automatically.\r\n *\r\n * @memberof StepperComponent\r\n */\r\n @Input() set steps(itemSteps: Step[]) {\r\n this.itemSteps = itemSteps;\r\n if (itemSteps.length && this.firstStepAutoSelect) {\r\n const [first, ...other] = itemSteps;\r\n first.isVisited = true;\r\n this.itemSteps = [first, ...other];\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Input property to set the selected index of the stepper.\r\n * Default value is 0.\r\n *\r\n * @memberof StepperComponent\r\n */\r\n @Input('selectedIndex') set setSelectedIndex(value: number) {\r\n this.selectedIndex = value;\r\n if (!this.firstStepAutoSelect) {\r\n this.itemSteps = this.itemSteps.map((step, i) => ({\r\n ...step,\r\n isVisited: i === 0 && this.selectedIndex === -1 ? false : step.isVisited\r\n }));\r\n }\r\n }\r\n\r\n /**\r\n * Input property indicating whether the final icon should be displayed.\r\n * Default value is false.\r\n *\r\n * @memberof StepperComponent\r\n */\r\n @Input() lastStepFinalIcon = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof StepperComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof StepperComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * Defines the stepper position\r\n *\r\n * @type {StepperPosition}\r\n * @memberof StepperComponent\r\n */\r\n @Input() position: StepperPosition = 'horizontal';\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {boolean}\r\n * @memberof StepperComponent\r\n */\r\n @Input() ariaRequired = false;\r\n\r\n @Output() selectionChange = new EventEmitter<{ selectedIndex: number; previousIndex: number; step: Step }>();\r\n\r\n private isOpened = false;\r\n private firstStepAutoSelect = true;\r\n protected itemSteps: Step[] = [];\r\n protected progressValue = 0;\r\n protected translationContext = 'STEPPER.';\r\n protected selectedIndex = 0;\r\n\r\n get isOpen(): boolean {\r\n return this.isOpened;\r\n }\r\n\r\n set isOpen(value: boolean) {\r\n this.isOpened = value;\r\n }\r\n\r\n protected keyboardFocused = signal(false);\r\n\r\n @ViewChild('stepper') stepperElement: ElementRef<HTMLElement>;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>,\r\n protected focusMonitor: FocusMonitor,\r\n protected destroyRef: DestroyRef,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.subscriberFocus();\r\n }\r\n\r\n protected onSelect(changedIndex: number, step: Step): void {\r\n if (!step.isVisited && this.selectedIndex !== changedIndex) {\r\n step.isVisited = true;\r\n }\r\n this.selectionChange.emit({ selectedIndex: changedIndex, previousIndex: this.selectedIndex, step });\r\n\r\n this.selectedIndex = changedIndex;\r\n this.onCloseStepList();\r\n }\r\n\r\n protected showStepsToggle(): void {\r\n this.isOpen = !this.isOpen;\r\n\r\n setTimeout(() => {\r\n this.selectedStepFocus();\r\n })\r\n }\r\n\r\n protected onCloseStepList(): void {\r\n this.isOpen = false;\r\n }\r\n\r\n protected subscriberFocus(): void {\r\n if (!this.stepperElement) {\r\n return;\r\n }\r\n\r\n this.focusMonitor.monitor(this.stepperElement.nativeElement)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(origin => this.keyboardFocused.set(origin === 'keyboard'));\r\n }\r\n\r\n private selectedStepFocus(): void {\r\n const selectedElement = document.getElementById('step-' + this.selectedIndex);\r\n\r\n if (this.keyboardFocused() && this.isOpen && selectedElement) {\r\n this.focusMonitor.focusVia(selectedElement, 'keyboard');\r\n }\r\n }\r\n}\r\n","<ng-container>\r\n <div style=\"position: absolute; left: -99999px;\" [attr.aria-live]=\"'polite'\">\r\n <span>\r\n {{ itemSteps[selectedIndex]?.label ?? '' }}\r\n {{ (translationContext + 'SELECTED_OF' | uiTranslate : { selected: (selectedIndex ?? 0) + 1, total: itemSteps?.length ?? 0 }) | async }}\r\n {{ itemSteps[selectedIndex]?.isVisited && (itemSteps.length <= (selectedIndex ?? 0) + 1 && itemSteps[selectedIndex + 1]?.isVisited)\r\n ? (translationContext + 'COMPLETED' | uiTranslate | async)\r\n : (translationContext + 'INCOMPLETE' | uiTranslate | async) }}\r\n </span>\r\n </div>\r\n <div class=\"stepper-wrapper\" role=\"tablist\" [ngClass]=\"position\" [attr.theme]=\"applicationTheme\"\r\n *ngIf=\"(position === 'horizontal' && !(isMobile$ | async)) || (position === 'vertical'); else mobile\">\r\n <ng-container *ngFor=\"let step of itemSteps; index as i, last as isLast\">\r\n <div class=\"step\" #stepElement>\r\n <ui-step\r\n [label]=\"step.label\"\r\n [isVisited]=\"step.isVisited!\"\r\n [icon]=\"step.iconName\"\r\n [index]=\"i\"\r\n [selected]=\"i === selectedIndex\"\r\n [selectedIndex]=\"selectedIndex\"\r\n [isLast]=\"isLast\"\r\n [disabled]=\"step.disabled ?? (i > selectedIndex + 1 && !step.isVisited)\"\r\n [prevStepIsVisited]=\"itemSteps[i - 1]?.isVisited && step.isVisited\"\r\n [finalIcon]=\"isLast ? lastStepFinalIcon : false\"\r\n [showIconWhenSelected]=\"!!step.showIconWhenSelected\"\r\n (stepSelected)=\"onSelect($event, step)\"\r\n [applicationTheme]=\"applicationTheme\"\r\n role=\"tab\"\r\n [attr.aria-controls]=\"'step-panel-' + i\"\r\n [attr.aria-selected]=\"i === selectedIndex\"\r\n [attr.aria-label]=\"step.label\"\r\n [attr.tabindex]=\"(step.disabled ?? (i > selectedIndex + 1 && !step.isVisited)) ? -1 : 0\"\r\n [htmlDescription]=\"step.htmlDescription ?? []\"\r\n [boldLabel]=\"!!step.boldLabel\"\r\n [position]=\"position\"\r\n [descriptionTpl]=\"step.descriptionTpl\"\r\n [labelTooltip]=\"step.labelTooltip\"\r\n [alwaysShowIcon]=\"!!step.alwaysShowIcon\"\r\n [context]=\"step.context\"\r\n ></ui-step>\r\n </div>\r\n <div *ngIf=\"!isLast\" class=\"separator-line\"\r\n [ngClass]=\"{ visited: step.isVisited && !!this.itemSteps[i + 1]?.isVisited }\">\r\n <div [stepLineElement]=\"stepElement\" [position]=\"position\" class=\"line\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #mobile>\r\n <div class=\"mobile-stepper-wrapper\">\r\n <div class=\"stepper\"\r\n [tabIndex]=\"0\"\r\n #stepper\r\n [ngClass]=\"{ 'keyboard-focused': keyboardFocused() }\"\r\n (keydown.enter)=\"showStepsToggle()\"\r\n (keydown.space)=\"showStepsToggle()\"\r\n [attr.aria-expanded]=\"isOpen\"\r\n >\r\n <div class=\"progress-step\" [tabindex]=\"-1\" [attr.aria-hidden]=\"true\">\r\n <ui-radial-progress [applicationTheme]=\"applicationTheme\" [value]=\"selectedIndex + 1\"\r\n [total]=\"itemSteps.length\"></ui-radial-progress>\r\n </div>\r\n\r\n <div class=\"step-info\">\r\n <div class=\"current-step\">\r\n <span>{{ selectedIndex + 1 }}/{{ itemSteps.length }} </span>\r\n <span>{{ itemSteps[selectedIndex].label }}</span>\r\n </div>\r\n <div class=\"next-step\">\r\n <span\r\n *ngIf=\"itemSteps.length !== selectedIndex + 1 else finalStep\">{{ (('COMMON.NEXT') | uiTranslate | async) + ':' }} {{ itemSteps[selectedIndex + 1].label }}</span>\r\n <ng-template #finalStep>\r\n <span>{{ (translationContext + 'FINAL_STEP') | uiTranslate | async }}</span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <div class=\"open-steps\" (click)=\"showStepsToggle()\" [ngClass]=\"{ opened: isOpen }\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [size]=\"'24'\"\r\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"></ui-icon>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isOpen\">\r\n <div class=\"step-list\">\r\n <div class=\"step\" *ngFor=\"let step of itemSteps; index as i, last as isLast\">\r\n <ui-step\r\n [label]=\"step.label\"\r\n [isVisited]=\"step.isVisited!\"\r\n [icon]=\"step.iconName\"\r\n [index]=\"i\"\r\n [selected]=\"i === selectedIndex\"\r\n [selectedIndex]=\"selectedIndex\"\r\n [isLast]=\"isLast\"\r\n [disabled]=\"step.disabled ?? ( i > selectedIndex + 1 && !step.isVisited)\"\r\n [mobileMode]=\"true\"\r\n [finalIcon]=\"isLast ? lastStepFinalIcon : false\"\r\n [showIconWhenSelected]=\"!!step.showIconWhenSelected\"\r\n (stepSelected)=\"onSelect($event, step)\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [attr.aria-label]=\"ariaLabel + '--' + step.label\"\r\n ></ui-step>\r\n </div>\r\n </div>\r\n <div class=\"overlay\" (click)=\"onCloseStepList()\"></div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { StepComponent } from './step.component';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n declarations: [StepComponent],\r\n imports: [CommonModule, IconComponentModule, MatTooltipModule],\r\n exports: [StepComponent],\r\n})\r\nexport class StepComponentModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RadialProgressComponent } from './radial-progress.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\n\r\n@NgModule({\r\n declarations: [RadialProgressComponent],\r\n exports: [RadialProgressComponent],\r\n imports: [CommonModule, MatProgressSpinnerModule, ButtonComponentModule],\r\n})\r\nexport class RadialProgressComponentModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { StepperComponent } from './stepper.component';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { StepComponentModule } from '../step/step.component.module';\r\nimport { StepLineElementDirective } from '../../directives/step-line-element.directive';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { RadialProgressComponentModule } from '../radial-progress/radial-progress.component.module';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\n@NgModule({\r\n declarations: [StepperComponent, StepLineElementDirective],\r\n imports: [\r\n CommonModule,\r\n IconComponentModule,\r\n StepComponentModule,\r\n MatProgressSpinnerModule,\r\n RadialProgressComponentModule,\r\n UiTranslatePipe,\r\n MatInputModule,\r\n ],\r\n exports: [StepperComponent],\r\n})\r\nexport class StepperComponentModule {}\r\n","export class AutocompleteUtils {\r\n static transformDisplayValue(value: any, textField: string): any {\r\n return AutocompleteUtils.isPrimitive(value) ? value : value?.[textField];\r\n }\r\n\r\n static filterItems(items: any, inputValue: string, textField?: string, isGroup = false): any {\r\n if (!AutocompleteUtils.isPrimitive(items) && textField) {\r\n if (isGroup) {\r\n return items.filter((group: any) => {\r\n group.filteredItems = group.items.filter((item: any) => item[textField].toLowerCase().includes(inputValue.toLowerCase()));\r\n return group.filteredItems.length;\r\n });\r\n }\r\n return items.filter((item: any) => item[textField].toLowerCase().includes(inputValue.toLowerCase()));\r\n } else {\r\n if (isGroup) {\r\n return items.filter((group: any) => group.items.filter((item: any) => item.toLowerCase().includes(inputValue.toLowerCase())).length);\r\n }\r\n return items.filter((item: any) => item.toLowerCase().includes(inputValue.toLowerCase()));\r\n }\r\n }\r\n\r\n static isPrimitive(value: any): boolean {\r\n if (Array.isArray(value)) {\r\n return value.some(item => typeof item !== 'object');\r\n } else {\r\n return typeof value !== 'object';\r\n }\r\n }\r\n\r\n static isArray(value: any): boolean {\r\n return Array.isArray(value);\r\n }\r\n\r\n /// NEW\r\n static throwInvalidSetupError(): void {\r\n throw new Error(\r\n `AutocompleteComponent textField/valueField properties are not provided!\\n\r\n Items list that has non primitive values requires textField & valueField to be passed.`\r\n );\r\n }\r\n\r\n static excludeSuggestions(items: any[], excludeItems: any[], valueField?: string): any[] {\r\n if (AutocompleteUtils.isPrimitive(items)) {\r\n return items?.filter(item => !excludeItems.find(excludeItem => excludeItem === item));\r\n } else {\r\n return valueField\r\n ? items?.filter(item => !excludeItems.find(excludeItem => excludeItem[valueField] === item[valueField]))\r\n : [];\r\n }\r\n }\r\n\r\n static shouldBeObject(value: any, textField: string, valueField: string): boolean {\r\n return !!valueField && !!textField && typeof value !== 'object';\r\n }\r\n\r\n static createValueItem(value: any, textField: string, valueField: string): any {\r\n return AutocompleteUtils.shouldBeObject(value, textField, valueField)\r\n ? { [textField]: value, [valueField]: value }\r\n : value;\r\n }\r\n\r\n static findDuplicate(value: any, selectedValue: any, lookupKey?: string): any {\r\n if (AutocompleteUtils.isArray(value)) {\r\n return value.find((v: any) => {\r\n if (!AutocompleteUtils.isPrimitive(v) && lookupKey) {\r\n return v[lookupKey] === selectedValue[lookupKey];\r\n }\r\n return v === selectedValue;\r\n });\r\n } else {\r\n return value === selectedValue;\r\n }\r\n }\r\n\r\n static countMatchingWords(words: any[], query: string, textField?: string, isGroup = false): number {\r\n const lowerCaseQuery = query.toLowerCase();\r\n if (isGroup) {\r\n return words.filter(group => group.items.filter((item: any) => (typeof item === 'object' && textField) ? item[textField].toLowerCase().includes(lowerCaseQuery) : item.toLowerCase().includes(lowerCaseQuery)).length).length;\r\n }\r\n const matchingWords = words.filter(word => (typeof word === 'object' && textField) ? word[textField].toLowerCase().includes(lowerCaseQuery) : word.toLowerCase().includes(lowerCaseQuery));\r\n return matchingWords.length;\r\n }\r\n}\r\n","export type AutocompleteType = 'single' | 'multi' | 'large';\r\n\r\nexport enum Autocomplete {\r\n SINGLE = 'single',\r\n MULTI = 'multi',\r\n LARGE = 'large',\r\n}\r\n\r\nexport enum Padding {\r\n AUTOCOMPLETE_CONTAINER = 40,\r\n DROPDOWN_CONTAINER = 60,\r\n AUTOCOMPLETE_SPACE_CONTAINER = 65,\r\n DROPDOWN_SPACE_CONTAINER = 85,\r\n}\r\n\r\nexport const AMOUNT_TAG_WIDTH = 33;\r\n\r\nexport enum Timeout {\r\n VIEW_INITIALIZED_AFTER_ACTION = 150,\r\n VIEW_INITIALIZED_COMPONENT_LOAD = 600,\r\n}\r\n\r\nexport enum DropdownVariation {\r\n AUTOCOMPLETE = 'autocomplete',\r\n DROPDOWN = 'dropdown',\r\n}\r\n\r\nexport type AutocompleteSize = 'small' | 'medium';\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiPreventInput]',\r\n standalone: true\r\n})\r\nexport class PreventInputDirective {\r\n @Input() uiPreventInput: boolean;\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent): void {\r\n const allowedKeys = [\r\n 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Tab', 'Delete', 'Control', 'Shift', 'Alt'\r\n ];\r\n if (!allowedKeys.includes(event.key) && !event.ctrlKey && !event.metaKey && this.uiPreventInput) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnChanges } from '@angular/core';\r\n\r\n/**\r\n * the SelectTextDirective provides a dynamic way to highlight or style specific text within an element.\r\n */\r\n@Directive({\r\n selector: '[selectText]',\r\n})\r\nexport class SelectTextDirective implements OnChanges {\r\n @Input() selectText: string | null;\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n /**\r\n * this method utilizes setTimeout to defer the execution until the next tick of the event loop.\r\n * The text content of the element is modified by wrapping occurrences of the specified selectText with a <span> element,\r\n * applying a bold font-weight style.\r\n */\r\n private setTextColor(): void {\r\n const textElement = this.el.nativeElement as HTMLElement;\r\n setTimeout(() => {\r\n const { textContent } = textElement;\r\n if (this.selectText && textContent) {\r\n textElement.innerHTML = textContent.replace(\r\n new RegExp(this.selectText, 'gmi'),\r\n match => `<span style=\"font-weight: bold\" >${match}</span>`\r\n );\r\n }\r\n }, 0);\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.selectText) {\r\n this.setTextColor();\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AutocompleteUtils } from '../../utils/autocomplete-utils';\r\n\r\n/**\r\n * the TransformItemPipe is designed to selectively extract and return values from objects based on a specified field,\r\n * providing a way to transform and display data a template.\r\n */\r\n@Pipe({\r\n name: 'transformItem',\r\n})\r\nexport class TransformItemPipe implements PipeTransform {\r\n transform(value: any, field: string, getValueList: boolean = false): any {\r\n if (getValueList) {\r\n return AutocompleteUtils.isArray(value) ? value.map((item: any) => field ? item[field] : item) : field ? value?.[field] : value;\r\n }\r\n\r\n if (AutocompleteUtils.isPrimitive(value)) {\r\n return value;\r\n } else if (!AutocompleteUtils.isPrimitive(value) && field && (value?.[field] || value[0][field])) {\r\n return value?.[field] || value[0][field];\r\n } else {\r\n AutocompleteUtils.throwInvalidSetupError();\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * The purpose of this pipe is to determine if the value is present in the values array.\r\n * If values is an array, the method uses the includes method to check for inclusion.\r\n * If values is not an array, it checks for strict equality between value and values.\r\n */\r\n@Pipe({\r\n name: 'includes',\r\n})\r\nexport class IncludesPipe implements PipeTransform {\r\n transform(value: any, values: any, valueField?: string): boolean {\r\n return Array.isArray(values)\r\n ? !!values?.find(v => (valueField ? v?.[valueField] === value?.[valueField] : value === v))\r\n : valueField\r\n ? value?.[valueField] === values?.[valueField]\r\n : value === values;\r\n }\r\n}\r\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n PLATFORM_ID,\r\n Self,\r\n signal,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { BehaviorSubject, filter, map, ReplaySubject, startWith, Subscription, throttleTime } from 'rxjs';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { AutocompleteUtils } from '../../utils/autocomplete-utils';\r\nimport {\r\n Autocomplete,\r\n AutocompleteSize,\r\n AutocompleteType,\r\n DropdownVariation,\r\n Padding,\r\n Timeout,\r\n} from './autocomplete.model';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { IKeyboardEvent } from '../../models/keyboard-events.model';\r\n\r\n@Component({\r\n selector: 'ui-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\nexport class AutocompleteComponent implements ControlValueAccessor, OnChanges, AfterViewInit, DoCheck, OnDestroy {\r\n /**\r\n * @property itemsList\r\n * @description The list of items to display in the autocomplete.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() itemsList: any[] | { groupName: string; items: any[]; isGroup: boolean }[] = [];\r\n\r\n /**\r\n * @property suggestionsList\r\n * @description The list of suggestions to display in the autocomplete.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() suggestionsList: any[] = [];\r\n\r\n /**\r\n * @property disabled\r\n * @description If `true`, the autocomplete is disabled.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * @property allowAdd\r\n * @description If `true`, allows adding new values to the autocomplete.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() allowAdd = true;\r\n\r\n /**\r\n * @property textField\r\n * @description The field to be used as the display text in the autocomplete.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() textField = '';\r\n\r\n /**\r\n * @property valueField\r\n * @description The field to be used as the value in the autocomplete.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() valueField = '';\r\n\r\n /**\r\n * @property label\r\n * @description The label for the autocomplete input.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() label = '';\r\n\r\n /**\r\n * @property placeholder\r\n * @description The placeholder for the autocomplete input.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() placeholder = '';\r\n\r\n /**\r\n * @property value\r\n * @description The selected value(s) in the autocomplete.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() set itemValue(v: any) {\r\n this.value = AutocompleteUtils.isArray(v) ? v : v ? [v] : [];\r\n }\r\n\r\n /**\r\n * @property type\r\n * @description The type of the autocomplete ('single', 'multi', etc.).\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() type: AutocompleteType = 'multi';\r\n\r\n /**\r\n * @property minCharactersSearch\r\n * @description The minimum characters to trigger search.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() minCharactersSearch = 3;\r\n\r\n /**\r\n * @property variant\r\n * @description The variant of Autocomplete\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input({ required: true }) variant = DropdownVariation.AUTOCOMPLETE;\r\n\r\n /**\r\n * Show reserved content below form field\r\n * @property showBottomContent\r\n * @type {boolean}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() showBottomContent = true;\r\n\r\n /**\r\n * Return full object if true\r\n * @property valuePrimitive\r\n * @type {boolean}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() valuePrimitive = false;\r\n\r\n /**\r\n * Indicator of the autocomplete width\r\n * @property fullWidth\r\n * @type {boolean}\r\n * @memberof AutocompleteComponent\r\n */\r\n @HostBinding('class.full-width')\r\n @Input()\r\n fullWidth = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof AutocompleteComponent\r\n */\r\n @HostBinding('attr.theme')\r\n @Input()\r\n applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Autocomplete is required or not\r\n *\r\n * @type {boolean}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() required: boolean;\r\n\r\n /**\r\n * Input field errors\r\n *\r\n * @type {string[]}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() set errors(errors: string[]) {\r\n this.safeErrors = errors?.filter(Boolean).map(error => this.domSanitizer.bypassSecurityTrustHtml(error));\r\n }\r\n\r\n /**\r\n * Color of the option hover.\r\n * Defaults to Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() companyColor: string | null = '#FFF2FC';\r\n\r\n /**\r\n * Hide in-build errors for Reactive Forms\r\n *\r\n * @type {number}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() hideBuiltInErrors = false;\r\n\r\n /**\r\n * Hide label in errors\r\n *\r\n * @type {number}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() hideLabelInErrors = false;\r\n\r\n /**\r\n * Sets dropdown list to virtual scroll mode\r\n *\r\n * @type {boolean}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input({ transform: booleanAttribute }) virtualScroll = false;\r\n\r\n /**\r\n * @property compareWith\r\n * @description Custom comparison logic for the autocomplete.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() compareWith: (a: any, b: any) => boolean;\r\n\r\n /**\r\n * @property dropdownPanelClass\r\n * @description Sets class on autocomplete dropdown\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() dropdownPanelClass = '';\r\n\r\n /**\r\n * @property closeOnScroll\r\n * @description Defines if dropdown should be closed on page scroll\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() closeOnScroll = false;\r\n\r\n /**\r\n * @property AutocompleteSize\r\n * @description Defines the size of the autocomplete. Small changes the tags to counter; medium is default.\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() size: AutocompleteSize = 'medium';\r\n\r\n /**\r\n * @property allowUserInput\r\n * @description If `true`, allows the user to input custom values in the autocomplete.\r\n * @type {boolean}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() allowUserInput = true;\r\n\r\n /**\r\n * @property clearable\r\n * @description If `true`, allows the user to clear the input values\r\n * @type {boolean}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() clearable = true;\r\n\r\n /**\r\n * @property exactMatchSelect\r\n * @description If `true`, allows to select the exact match from the suggestions list\r\n * @type {boolean}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() exactMatchSelect = true;\r\n\r\n /**\r\n * @property maxItemSelected\r\n * @description Sets the maximum number of items that can be selected in the autocomplete\r\n * @type {boolean}\r\n * @memberof AutocompleteComponent\r\n */\r\n @Input() maxItemSelected = Infinity;\r\n\r\n @Input() isDynamicFilteringEnabled = false;\r\n @Input() dynamicFilterLoading = false;\r\n @Input() dynamicFilteredList: any[] | null = null;\r\n\r\n @Input() infiniteScroll = false;\r\n @Input() hasMoreOptionsForInfiniteScroll = true;\r\n\r\n @Output() selectionChange = new EventEmitter<any>();\r\n @Output() searchTextChange = new EventEmitter<string>();\r\n @Output() blur = new EventEmitter<void>();\r\n @Output() focus = new EventEmitter<void>();\r\n @Output() scrollViewportBottomReached = new EventEmitter<void>();\r\n\r\n @ViewChild('formField') formFieldElement: ElementRef<HTMLElement>;\r\n @ViewChild('tagContainer') tagContainer: ElementRef<HTMLElement>;\r\n @ViewChild('trigger') autocomplete: MatAutocompleteTrigger;\r\n @ViewChild(CdkVirtualScrollViewport, { static: false }) set cdkVirtualScrollViewport(\r\n viewport: CdkVirtualScrollViewport\r\n ) {\r\n if (this.savedVirtualScrollSubscription) {\r\n this.savedVirtualScrollSubscription.unsubscribe();\r\n }\r\n\r\n if (viewport) {\r\n this.savedVirtualScrollViewport = viewport;\r\n\r\n if (this.infiniteScroll) {\r\n this.savedVirtualScrollSubscription = this.savedVirtualScrollViewport\r\n .elementScrolled()\r\n .pipe(\r\n map(() => this.savedVirtualScrollViewport.measureScrollOffset('bottom')),\r\n filter(offset => offset < this.savedVirtualScrollViewport.getViewportSize() * 0.2),\r\n throttleTime(200),\r\n takeUntilDestroyed(this.destroyRef)\r\n )\r\n .subscribe(() => this.scrollViewportBottomReached.emit());\r\n }\r\n }\r\n }\r\n @ViewChild('autocomplete') matAutocomplete: MatAutocomplete;\r\n @ViewChild('matInput') matInput: ElementRef<HTMLInputElement>;\r\n\r\n protected safeErrors: SafeHtml[] = [];\r\n protected value: any;\r\n protected inputValue: any = '';\r\n protected isInputFocus = false;\r\n protected autocompleteType = Autocomplete;\r\n protected isOverLapping = false;\r\n protected isOverlapChecking = true;\r\n protected overlapIndex = 0;\r\n protected inputOpacity = 1;\r\n protected firstTagMaxWidth: number = 0;\r\n protected inputValueSearch$ = new ReplaySubject<string>(1);\r\n protected userInput$ = new ReplaySubject<string>(1);\r\n protected dynamicFilteredList$ = new BehaviorSubject<any[] | null>(null);\r\n protected filteredItemsList$ = this.inputValueSearch$.pipe(\r\n startWith(''),\r\n map(inputValue =>\r\n inputValue.length\r\n ? AutocompleteUtils.filterItems(this.itemsList, inputValue, this.textField, this.isGrouped)\r\n : null\r\n )\r\n );\r\n protected filteredSuggestionList$ = this.inputValueSearch$.pipe(\r\n map(inputValue =>\r\n inputValue.length ? AutocompleteUtils.filterItems(this.suggestionsList, inputValue, this.textField) : null\r\n )\r\n );\r\n protected savedVirtualScrollViewport: CdkVirtualScrollViewport;\r\n protected savedVirtualScrollSubscription: Subscription;\r\n\r\n scrollEvent = (event: any): void => {\r\n const isNotAutocompleteScroll =\r\n !event.target?.id?.includes('mat-autocomplete-') &&\r\n !event.target?.parentElement?.id?.includes('mat-autocomplete-') &&\r\n !event.target?.classList?.contains('mat-mdc-autocomplete-trigger');\r\n\r\n if (this.autocomplete.panelOpen && isNotAutocompleteScroll) {\r\n this.autocomplete.closePanel();\r\n }\r\n };\r\n\r\n protected searchResult$ = this.inputValueSearch$.pipe(map(inputValue => !!inputValue.trim()));\r\n protected translationContext = 'AUTOCOMPLETE.';\r\n protected readonly AutocompleteUtils = AutocompleteUtils;\r\n private readonly isPlatform = isPlatformBrowser(this.platformId);\r\n private observer: MutationObserver;\r\n protected keyboardFocused = signal<boolean>(false);\r\n protected inputValueInitialized = false;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private readonly cdr: ChangeDetectorRef,\r\n private readonly domSanitizer: DomSanitizer,\r\n @Optional() @Self() public ngControl: NgControl,\r\n @Inject(PLATFORM_ID) private readonly platformId: any,\r\n private readonly el: ElementRef,\r\n private readonly focusMonitor: FocusMonitor,\r\n private readonly destroyRef: DestroyRef,\r\n private readonly ngZone: NgZone\r\n ) {\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n\r\n this.subscriberDisplayChange();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.isDynamicFilteringEnabled) {\r\n this.filteredItemsList$ = this.dynamicFilteredList$;\r\n }\r\n }\r\n\r\n /**\r\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\r\n * to display validation errors that might happen (e.g. required)\r\n */\r\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\n ngDoCheck(): void {\r\n if (this.ngControl?.touched || this.ngControl?.errors) {\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isDynamicFilteringEnabled) {\r\n const dynamicFilteredList = changes['dynamicFilteredList']?.currentValue;\r\n\r\n if (dynamicFilteredList) {\r\n this.dynamicFilteredList$.next(dynamicFilteredList);\r\n }\r\n\r\n if (changes['dynamicFilterLoading']?.currentValue === true) {\r\n this.dynamicFilteredList$.next([]);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (changes['itemsList'] || changes['suggestionsList'] || changes['valueField']) {\r\n this.itemsList = this.isGrouped\r\n ? this.itemsList\r\n : AutocompleteUtils.excludeSuggestions(this.itemsList, this.suggestionsList, this.valueField);\r\n this.initValue();\r\n }\r\n\r\n if (this.isPlatform && changes['companyColor']) {\r\n this.setCompanyColorVariable();\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\n ngAfterViewInit(): void {\r\n if (this.type !== Autocomplete.LARGE) {\r\n this.checkOverlap(Timeout.VIEW_INITIALIZED_COMPONENT_LOAD, true);\r\n }\r\n this.isPlatform && this.setCompanyColorVariable();\r\n if (this.closeOnScroll) {\r\n window.addEventListener('scroll', this.scrollEvent, true);\r\n }\r\n\r\n this.focusMonitor\r\n .monitor(this.matInput)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(origin =>\r\n this.ngZone.run(() => {\r\n this.keyboardFocused.set(origin === 'keyboard');\r\n })\r\n );\r\n\r\n this.matInput.nativeElement.onkeydown = this.onKeydown.bind(this);\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\r\n ngOnDestroy(): void {\r\n window.removeEventListener('scroll', this.scrollEvent, true);\r\n\r\n if (this.observer) {\r\n this.observer.disconnect();\r\n }\r\n }\r\n\r\n onChange = (_: any) => {};\r\n onTouch = () => {};\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (this.valuePrimitive && this.textField && this.valueField) {\r\n if (this.type === Autocomplete.SINGLE) {\r\n this.value = this.itemsList.find(item => item[this.valueField] === value);\r\n } else {\r\n this.value = AutocompleteUtils.isArray(value)\r\n ? this.itemsList.filter(item => value.find((v: any) => v === item[this.valueField]))\r\n : [this.itemsList.find(item => item[this.valueField] === value)];\r\n this.value = this.value.filter(Boolean).length ? this.value : null;\r\n }\r\n } else {\r\n this.value = value;\r\n }\r\n\r\n if(!this.infiniteScroll) {\r\n this.initValue();\r\n } else if (!this.inputValueInitialized) {\r\n this.initValue();\r\n\r\n this.inputValueInitialized = true;\r\n }\r\n\r\n this.cdr.markForCheck();\r\n }\r\n\r\n protected get isGrouped(): boolean {\r\n return this.itemsList?.some((item: any) => item.isGroup);\r\n }\r\n\r\n protected onOptionSelected(event: MatAutocompleteSelectedEvent): void {\r\n const inputValue = event.option.value;\r\n const itemValue = AutocompleteUtils.createValueItem(inputValue, this.textField, this.valueField);\r\n this.addNewValue(itemValue);\r\n\r\n if (this.type === this.autocompleteType.MULTI) {\r\n this.checkOverlap();\r\n }\r\n\r\n queueMicrotask(() => {\r\n if (this.type !== this.autocompleteType.SINGLE) {\r\n this.inputValue = '';\r\n } else {\r\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value, this.textField);\r\n }\r\n this.cdr.markForCheck();\r\n });\r\n\r\n this.onUpdate();\r\n }\r\n\r\n protected onOptionRemoved(option: any): void {\r\n setTimeout(() => this.autocomplete.closePanel(), 0);\r\n const foundValue = this.value.find((v: any) => (this.compareWith ? this.compareWith(v, option) : v === option));\r\n\r\n if (foundValue) {\r\n this.value = this.value.filter((v: any) => (this.compareWith ? !this.compareWith(v, option) : v !== option));\r\n this.matAutocomplete.options.forEach(option => {\r\n if (option.value.value === foundValue.value) {\r\n option.deselect();\r\n }\r\n });\r\n }\r\n\r\n if (this.type === this.autocompleteType.MULTI) {\r\n this.checkOverlap();\r\n }\r\n\r\n if (!this.value.length) {\r\n this.inputValue = '';\r\n }\r\n\r\n this.onUpdate();\r\n }\r\n\r\n protected onInputChange(event: Event): void {\r\n const inputValue = (event.target as HTMLInputElement).value;\r\n this.userInput$.next(inputValue);\r\n if (inputValue.length >= this.minCharactersSearch) {\r\n this.inputValueSearch$.next(inputValue);\r\n this.searchTextChange.emit(inputValue);\r\n const itemList = this.isGrouped ? this.itemsList.flatMap(groups => groups.items) : this.itemsList.flat();\r\n\r\n const findValue = [...this.suggestionsList, ...itemList].find(\r\n v => inputValue === (this.textField ? v[this.textField] : v)\r\n );\r\n const count = AutocompleteUtils.countMatchingWords(\r\n [...this.suggestionsList, ...itemList],\r\n this.inputValue,\r\n this.textField\r\n );\r\n if (findValue && count === 1 && this.exactMatchSelect) {\r\n this.onOptionSelected({ option: { value: findValue } } as MatAutocompleteSelectedEvent);\r\n }\r\n } else {\r\n this.inputValueSearch$.next('');\r\n this.userInput$.next('');\r\n }\r\n }\r\n\r\n protected onClear(): void {\r\n this.inputValue = '';\r\n this.value = AutocompleteUtils.isArray(this.value) ? [] : '';\r\n this.isOverLapping = false;\r\n this.overlapIndex = 0;\r\n this.onUpdate();\r\n this.matAutocomplete?.options.forEach(option => option.deselect());\r\n this.onTouch();\r\n }\r\n\r\n protected refillInput(): void {\r\n setTimeout(() => {\r\n if (this.value && this.type === this.autocompleteType.SINGLE && !this.inputValue) {\r\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value, this.textField);\r\n } else if (!this.inputValue && this.value?.length) {\r\n this.inputValue = ' ';\r\n } else if (this.inputValue && this.type === Autocomplete.SINGLE && this.value && Object.keys(this.value).length) {\r\n this.inputValue = AutocompleteUtils.transformDisplayValue(\r\n AutocompleteUtils.isArray(this.value) ? this.value[0] : this.value,\r\n this.textField\r\n );\r\n } else if (this.inputValue) {\r\n this.inputValue = ' ';\r\n }\r\n\r\n this.inputValueSearch$.next('');\r\n this.userInput$.next('');\r\n this.isInputFocus = false;\r\n this.onTouch();\r\n this.blur.emit();\r\n }, 0);\r\n }\r\n\r\n protected gotoUp() {\r\n if (this.savedVirtualScrollViewport) {\r\n this.savedVirtualScrollViewport.scrollToIndex(0);\r\n this.savedVirtualScrollViewport.checkViewportSize();\r\n }\r\n }\r\n\r\n protected onFocus(): void {\r\n this.isInputFocus = true;\r\n\r\n const inputValue = AutocompleteUtils.isArray(this.inputValue) ? this.inputValue[0] : this.inputValue;\r\n\r\n if (AutocompleteUtils.isPrimitive(inputValue)) {\r\n if (typeof inputValue !== 'number' && inputValue?.match(/^\\s+/gm)) {\r\n this.inputValue = inputValue.trimStart();\r\n }\r\n } else {\r\n if (inputValue[this.textField]?.match(/^\\s+/gm)) {\r\n this.inputValue = inputValue[this.textField].trimStart();\r\n }\r\n }\r\n this.focus.emit();\r\n }\r\n\r\n private checkOverlap(delay = Timeout.VIEW_INITIALIZED_AFTER_ACTION, init = false): void {\r\n this.isOverLapping = false;\r\n this.isOverlapChecking = true;\r\n this.inputOpacity = 0;\r\n\r\n setTimeout(() => {\r\n const inputWidth = this.inputWidth;\r\n const tags = this.tagContainer?.nativeElement.querySelectorAll('.value-tag');\r\n if (tags) {\r\n let width = 0;\r\n let firstTagWidth = 0;\r\n\r\n tags.forEach((tag: any, index: number) => {\r\n width += tag.getBoundingClientRect().width;\r\n\r\n if (!index) {\r\n firstTagWidth = width;\r\n }\r\n\r\n const inpWidth = this.formFieldElement?.nativeElement.getBoundingClientRect().width - 20;\r\n this.firstTagMaxWidth =\r\n tags.length > 1\r\n ? inpWidth -\r\n (this.variant === DropdownVariation.DROPDOWN\r\n ? Padding.DROPDOWN_SPACE_CONTAINER\r\n : Padding.AUTOCOMPLETE_SPACE_CONTAINER)\r\n : inpWidth;\r\n\r\n if (!this.isOverLapping && width > inputWidth && index > 0) {\r\n this.isOverLapping = true;\r\n this.overlapIndex = index;\r\n }\r\n });\r\n this.isOverlapChecking = false;\r\n if (init) {\r\n if (this.type === this.autocompleteType.SINGLE) {\r\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value[0], this.textField);\r\n } else if (this.value?.length) {\r\n this.inputValue = ' ';\r\n }\r\n }\r\n const tagContainerWidth = this.tagContainer.nativeElement.getBoundingClientRect().width;\r\n this.tagContainer.nativeElement.style.maxWidth = tagContainerWidth / 100 ? '100%' : tagContainerWidth + 'px';\r\n this.cdr.markForCheck();\r\n }\r\n this.inputOpacity = 1;\r\n }, delay);\r\n }\r\n\r\n private onUpdate(): void {\r\n this.inputValueSearch$.next('');\r\n this.userInput$.next('');\r\n if (!this.valuePrimitive) {\r\n this.onChange(this.value);\r\n } else {\r\n if (this.type === Autocomplete.SINGLE) {\r\n this.onChange(this.value[this.valueField]);\r\n } else {\r\n this.onChange(this.value.map((v: any) => v[this.valueField]));\r\n }\r\n }\r\n this.updateControlMaxLengthValidity();\r\n this.selectionChange.emit(this.value);\r\n }\r\n\r\n private updateControlMaxLengthValidity(): void {\r\n const control = this.ngControl?.control;\r\n if (!control) {\r\n return;\r\n }\r\n\r\n if (this.type !== Autocomplete.SINGLE) {\r\n const existingErrors = control.errors || {};\r\n\r\n if (this.value.length > this.maxItemSelected) {\r\n control.setErrors({\r\n ...existingErrors,\r\n maxItemSelected: {\r\n expected: this.maxItemSelected,\r\n actual: this.value.length,\r\n },\r\n });\r\n control.markAsTouched();\r\n } else {\r\n if (existingErrors['maxItemSelected']) {\r\n delete existingErrors['maxItemSelected'];\r\n control.setErrors(Object.keys(existingErrors).length ? existingErrors : null);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private initValue(): void {\r\n if (this.type === this.autocompleteType.SINGLE && this.variant !== DropdownVariation.DROPDOWN) {\r\n if (AutocompleteUtils.isArray(this.value)) {\r\n this.inputValue = AutocompleteUtils.transformDisplayValue(this.value[0], this.textField);\r\n } else {\r\n this.inputValue = this.value ? AutocompleteUtils.transformDisplayValue(this.value, this.textField) : '';\r\n }\r\n } else if (this.variant === DropdownVariation.DROPDOWN) {\r\n this.inputValue =\r\n (AutocompleteUtils.isArray(this.value) && !this.value?.length) || !this.value\r\n ? ''\r\n : this.type === Autocomplete.SINGLE\r\n ? AutocompleteUtils.transformDisplayValue(\r\n AutocompleteUtils.isArray(this.value) ? this.value[0] : this.value,\r\n this.textField\r\n )\r\n : ' ';\r\n } else {\r\n this.inputValue = this.value && this.value.length ? ' ' : '';\r\n }\r\n if (this.type === this.autocompleteType.MULTI) {\r\n this.checkOverlap();\r\n }\r\n }\r\n\r\n private addNewValue(newValue: any): void {\r\n if (this.type !== this.autocompleteType.SINGLE && !this.value) {\r\n this.value = [];\r\n }\r\n\r\n const foundDuplicate = this.compareWith\r\n ? this.value.find((v: any) => this.compareWith(v, newValue))\r\n : AutocompleteUtils.findDuplicate(this.value, newValue, this.textField);\r\n\r\n if (this.type !== this.autocompleteType.SINGLE) {\r\n this.value = foundDuplicate\r\n ? this.value.filter((v: any) =>\r\n this.compareWith ? !this.compareWith(v, foundDuplicate) : v !== foundDuplicate\r\n )\r\n : [...this.value, newValue];\r\n } else {\r\n this.value = newValue;\r\n }\r\n }\r\n\r\n protected get isDropdown(): boolean {\r\n return this.variant === DropdownVariation.DROPDOWN;\r\n }\r\n\r\n protected onChevronClick(autocomplete: MatAutocomplete): void {\r\n if (autocomplete.isOpen) {\r\n setTimeout(() => {\r\n this.autocomplete.closePanel();\r\n }, 0);\r\n }\r\n }\r\n\r\n protected get inputWidth(): number {\r\n return (\r\n this.formFieldElement?.nativeElement.getBoundingClientRect().width -\r\n (this.isDropdown ? Padding.DROPDOWN_CONTAINER : Padding.AUTOCOMPLETE_CONTAINER)\r\n );\r\n }\r\n\r\n protected trackByFn = (index: number, value: any) => value.changingThisBreaksApplicationSecurity;\r\n\r\n /**\r\n * Adding company color variable to the body to style overlay container that's out of the component scope.\r\n */\r\n private setCompanyColorVariable(): void {\r\n document.body.style.setProperty('--ui-autocomplete-option-color', `${this.companyColor}`);\r\n }\r\n\r\n private subscriberDisplayChange(): void {\r\n const autocompleteHostElement = this.el.nativeElement;\r\n\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(mutation => {\r\n if (mutation.attributeName === 'style') {\r\n const displayStyle = getComputedStyle(autocompleteHostElement).display;\r\n if (displayStyle !== 'none') {\r\n this.checkOverlap();\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.observer.observe(autocompleteHostElement, {\r\n attributes: true,\r\n attributeFilter: ['style'],\r\n });\r\n }\r\n\r\n protected get hasObjectValue(): boolean {\r\n return this.value ? !!Object.keys(this.value).length : false;\r\n }\r\n\r\n onKeydown($event: KeyboardEvent) {\r\n const optionHeight = 48;\r\n\r\n if ($event.key === IKeyboardEvent.HOME) {\r\n this.matAutocomplete._keyManager.setFirstItemActive();\r\n } else if ($event.key === IKeyboardEvent.END) {\r\n this.matAutocomplete._keyManager.setLastItemActive();\r\n } else if ($event.key === IKeyboardEvent.PAGE_DOWN) {\r\n this.matAutocomplete._keyManager.setNextItemActive();\r\n this.matAutocomplete._keyManager.setNextItemActive();\r\n this.matAutocomplete._keyManager.setNextItemActive();\r\n } else if ($event.key === IKeyboardEvent.PAGE_UP) {\r\n this.matAutocomplete._keyManager.setPreviousItemActive();\r\n this.matAutocomplete._keyManager.setPreviousItemActive();\r\n this.matAutocomplete._keyManager.setPreviousItemActive();\r\n }\r\n\r\n this.matAutocomplete._setScrollTop(this.matAutocomplete._keyManager.activeItemIndex! * optionHeight);\r\n }\r\n}\r\n","<ng-container>\r\n <div class=\"autocomplete-wrapper\" [ngClass]=\"{ 'full-width': fullWidth, disabled: disabled }\">\r\n <mat-form-field\r\n [color]=\"(safeErrors.length || (ngControl?.errors && ngControl?.touched ) || (AutocompleteUtils.isArray(value) && value.length) > maxItemSelected || ((AutocompleteUtils.isArray(value) && value.length) >= maxItemSelected && (inputValue && inputValue !== ' ')) ) ? 'warn' : 'accent'\"\r\n [appearance]=\"'outline'\"\r\n [ngClass]=\"{ 'large-size': type === autocompleteType.LARGE, 'hide-bottom-content': !showBottomContent, 'keyboard-focused': keyboardFocused(), 'has-label': !!label }\"\r\n >\r\n <mat-label *ngIf=\"label\">{{ label }} <span *ngIf=\"required\">*</span></mat-label>\r\n <div #formField class=\"input-container\">\r\n <span style=\"position: absolute; left: -9999px\" *ngIf=\"textField ? value?.[textField] : value === inputValue\"\r\n aria-live=\"polite\">{{ (('SELECTED') | uiTranslate | async) + ' ' + inputValue }}</span>\r\n\r\n <input\r\n #trigger=\"matAutocompleteTrigger\"\r\n #matInput\r\n [uiPreventInput]=\"!allowUserInput\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"{ 'unset-margin': this.value && type === autocompleteType.LARGE, 'no-caret': !allowUserInput }\"\r\n (blur)=\"refillInput()\"\r\n (focusin)=\"onFocus()\"\r\n [attr.aria-label]=\"((translationContext + 'SELECTED') | uiTranslate | async) + ' ' + (value | transformItem: textField : true)\"\r\n [style.opacity]=\"type === autocompleteType.MULTI ? inputOpacity : 1\"\r\n matInput\r\n [placeholder]=\"value && value.length ? '': placeholder\"\r\n [type]=\"'text'\"\r\n [matAutocomplete]=\"autocomplete\"\r\n (input)=\"onInputChange($event)\"\r\n [(ngModel)]=\"inputValue\"\r\n />\r\n <div\r\n class=\"selected-items\"\r\n #tagContainer\r\n *ngIf=\"\r\n (type === autocompleteType.LARGE && this.value) ||\r\n (!(inputValue && this.isInputFocus) && this.value && type !== autocompleteType.SINGLE)\r\n \"\r\n >\r\n <ui-tag\r\n class=\"value-tag\"\r\n [id]=\"'ui-tag-' + i\"\r\n *ngFor=\"let valueItem of value; let i = index\"\r\n [label]=\"valueItem | transformItem: textField\"\r\n [allowClose]=\"true\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [style.opacity]=\"type === autocompleteType.MULTI ? inputOpacity : 1\"\r\n [style.display]=\"(isOverLapping && i > 0 && i >= overlapIndex) || (size === 'small' && value.length > 1) ? 'none' : 'block'\"\r\n [ngStyle]=\"{ '--tag-max-width': type === autocompleteType.LARGE ? 'fit-content' : firstTagMaxWidth + 'px' }\"\r\n [ngClass]=\"{\r\n 'overlap-tag': isOverlapChecking && overlapIndex && i >= overlapIndex && type === autocompleteType.MULTI\r\n }\"\r\n (close)=\"onOptionRemoved(valueItem)\"\r\n ></ui-tag>\r\n @if (size === 'small') {\r\n <div class=\"selected-count\" *ngIf=\"value.length > 1\">\r\n {{ (translationContext + 'SELECTED_AMOUNT' | uiTranslate : { numberSelected: (value | slice: overlapIndex).length }) | async }}\r\n </div>\r\n } @else {\r\n <div *ngIf=\"value.length > 1 && isOverLapping\" class=\"overlap-count\">\r\n <ui-tag [applicationTheme]=\"applicationTheme\"\r\n [label]=\"'+' + (value.length - overlapIndex)\"></ui-tag>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <ui-icon\r\n *ngIf=\"clearable && (type === autocompleteType.SINGLE && (value?.length || hasObjectValue)) || (type !== autocompleteType.SINGLE && value && value.length > 1 && ((AutocompleteUtils.isPrimitive(value) && value.length) || (!AutocompleteUtils.isPrimitive(value) && (AutocompleteUtils.isArray(value) && value.length || !AutocompleteUtils.isArray(value) && !value.length))))\"\r\n class=\"remove-selected\"\r\n [tabIndex]=\"disabled ? -1 : 0\"\r\n (keydown.enter)=\"onClear();$event.preventDefault();$event.stopPropagation()\"\r\n (keydown.space)=\"onClear();$event.preventDefault();$event.stopPropagation()\"\r\n [ngClass]=\"{ 'large-input-icon': type === autocompleteType.LARGE }\"\r\n (click)=\"onClear();$event.preventDefault();$event.stopPropagation()\"\r\n [size]=\"'24'\"\r\n [color]=\"applicationTheme === 'classic' ? 'inherit' : 'rebrand-black'\"\r\n [attr.aria-label]=\"('COMMON.CLEAR') | uiTranslate | async\"\r\n [name]=\"applicationTheme === 'classic' ? 'Close' : 'Close-in-line'\"\r\n ></ui-icon>\r\n\r\n <ui-icon\r\n class=\"arrow-state\"\r\n [ngClass]=\"{ opened: autocomplete.isOpen, 'large-input-icon': type === autocompleteType.LARGE }\"\r\n *ngIf=\"isDropdown\"\r\n [size]=\"'24'\"\r\n [name]=\"applicationTheme !== 'classic' ? 'Arrow-chevron-down-in-line' : 'Arrow_down'\"\r\n (click)=\"onChevronClick(autocomplete)\"\r\n ></ui-icon>\r\n\r\n\r\n <mat-autocomplete\r\n #autocomplete\r\n [class]=\"applicationTheme + ' ' + dropdownPanelClass\"\r\n (optionSelected)=\"onOptionSelected($event)\"\r\n [disableRipple]=\"applicationTheme !== 'classic'\"\r\n [hideSingleSelectionIndicator]=\"false\"\r\n (opened)=\"gotoUp()\"\r\n >\r\n @if (type !== autocompleteType.MULTI || value?.length < maxItemSelected) {\r\n <ng-container *ngIf=\"!(searchResult$ | async)\">\r\n <ng-container *ngIf=\"!isDropdown; else dropdownList\">\r\n <mat-optgroup [label]=\"((translationContext + 'SUGGESTED') | uiTranslate | async)! | uppercase\"\r\n *ngIf=\"suggestionsList.length\">\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': suggested | includes: value : valueField }\"\r\n *ngFor=\"let suggested of suggestionsList\"\r\n [value]=\"suggested\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ suggested | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n </mat-optgroup>\r\n\r\n <mat-optgroup [label]=\"((translationContext + 'SELECTED') | uiTranslate | async)! | uppercase\"\r\n *ngIf=\"value?.length && type !== autocompleteType.SINGLE\">\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of value\"\r\n [value]=\"item\"\r\n >\r\n <span>{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n </mat-optgroup>\r\n\r\n\r\n @if (isGrouped) {\r\n @for (group of itemsList; track group) {\r\n\r\n @if (group.groupName) {\r\n <mat-optgroup [label]=\"group.groupName\">\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of group.items\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n </mat-optgroup>\r\n } @else {\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of group.items\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n }\r\n }\r\n }\r\n\r\n <mat-optgroup [label]=\"((translationContext + 'SELECTED') | uiTranslate | async)! | uppercase\"\r\n *ngIf=\"value?.length && type === autocompleteType.SINGLE\">\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [class]=\"'selected-option'\"\r\n [value]=\"value\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ value | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n </mat-optgroup>\r\n </ng-container>\r\n\r\n <ng-template #dropdownList>\r\n <cdk-virtual-scroll-viewport *ngIf=\"virtualScroll || infiniteScroll; else defaultViewPort\" [itemSize]=\"48\"\r\n [style.height]=\"'200px'\" class=\"virtual-scroll\">\r\n @if (!isGrouped) {\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *cdkVirtualFor=\"let item of itemsList\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n\r\n @if(infiniteScroll && hasMoreOptionsForInfiniteScroll) {\r\n <mat-option class=\"loading-option\" [style.pointer-events]=\"'none'\">\r\n <div class=\"loading-container\">\r\n <ui-spinner size=\"small\" [isLoader]=\"false\"></ui-spinner>\r\n </div>\r\n </mat-option>\r\n }\r\n } @else {\r\n @for (group of itemsList; track group) {\r\n @if (group.groupName) {\r\n <mat-optgroup [label]=\"group.groupName\">\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *cdkVirtualFor=\"let item of group.items\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n </mat-optgroup>\r\n } @else {\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *cdkVirtualFor=\"let item of group.items\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n } }\r\n }\r\n\r\n </cdk-virtual-scroll-viewport>\r\n\r\n <ng-template #defaultViewPort>\r\n @if (!isGrouped) {\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of itemsList\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n } @else {\r\n @for (group of itemsList; track group) {\r\n @if (group.groupName) {\r\n <mat-optgroup [label]=\"group.groupName\">\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of group.items\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n </mat-optgroup>\r\n } @else {\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of group.items\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n }\r\n }\r\n }\r\n </ng-template>\r\n\r\n </ng-template>\r\n\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"filteredSuggestionList$ | async as filteredSuggestionList\">\r\n <ng-container *ngIf=\"filteredItemsList$ | async as filteredItemsList\">\r\n @if (isGrouped && filteredItemsList.length) {\r\n @for (group of filteredItemsList; track group) {\r\n @if (group.groupName) {\r\n <mat-optgroup [label]=\"group.groupName\">\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of group.filteredItems\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n </mat-optgroup>\r\n } @else {\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of group.filteredItems\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n }\r\n }\r\n }\r\n\r\n <mat-optgroup [label]=\"((translationContext + 'SUGGESTED') | uiTranslate | async)! | uppercase\"\r\n *ngIf=\"filteredSuggestionList.length\">\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of filteredSuggestionList\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n </mat-optgroup>\r\n\r\n <ng-container *ngIf=\"!filteredSuggestionList.length && !isGrouped; else showItemListWithGroup\">\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of filteredItemsList\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n </ng-container>\r\n\r\n <ng-template #showItemListWithGroup>\r\n <mat-optgroup [label]=\"((translationContext + 'ALL_ITEMS') | uiTranslate | async)! | uppercase\"\r\n *ngIf=\"filteredItemsList.length && !isGrouped\">\r\n <mat-option\r\n (mousedown)=$event.preventDefault()\r\n [ngClass]=\"{ 'selected-option': item | includes: value : valueField }\"\r\n *ngFor=\"let item of filteredItemsList\"\r\n [value]=\"item\"\r\n >\r\n <span [selectText]=\"userInput$ | async\">{{ item | transformItem: textField }}</span>\r\n <ui-icon [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Check' : 'Check-in-line'\"></ui-icon>\r\n </mat-option>\r\n </mat-optgroup>\r\n </ng-template>\r\n\r\n @if(isDynamicFilteringEnabled && dynamicFilterLoading) {\r\n <mat-option class=\"loading-option\" [style.pointer-events]=\"'none'\">\r\n <div class=\"loading-container\">\r\n <ui-spinner size=\"small\" [isLoader]=\"false\"></ui-spinner>\r\n </div>\r\n </mat-option>\r\n } @else if(!filteredItemsList.length && !filteredSuggestionList.length && inputValue) {\r\n @if (allowAdd) {\r\n <mat-option (mousedown)=$event.preventDefault() [value]=\"inputValue\">\r\n <span>{{ ('COMMON.ADD') | uiTranslate | async }}</span>\r\n <span class=\"add-suggestion\">\"{{ inputValue }}\"</span>\r\n </mat-option>\r\n } @else {\r\n <mat-option [style.pointer-events]=\"'none'\">\r\n <span>{{ (translationContext + 'NO_RESULTS_FOUND') | uiTranslate | async }}</span>\r\n </mat-option>\r\n }\r\n }\r\n </ng-container>\r\n </ng-container>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint class=\"error\"\r\n *ngIf=\"safeErrors.length || (ngControl?.errors | hasValidationError) || (AutocompleteUtils.isArray(value) && value.length) > maxItemSelected || ((AutocompleteUtils.isArray(value) && value.length) >= maxItemSelected && (inputValue && inputValue !== ' '))\">\r\n <div class=\"errors\"\r\n *ngIf=\"(AutocompleteUtils.isArray(value) && value.length) > maxItemSelected || ((AutocompleteUtils.isArray(value) && value.length) >= maxItemSelected && (inputValue && inputValue !== ' '))\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span>{{ (translationContext + 'MAX_SELECTED_ERROR') | uiTranslate : { max: maxItemSelected } | async }}</span>\r\n </div>\r\n <ng-container *ngIf=\"safeErrors.length\">\r\n <div class=\"errors\" *ngFor=\"let error of safeErrors; trackBy: trackByFn\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span [innerHTML]=\"error\"></span>\r\n </div>\r\n </ng-container>\r\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\"\r\n [label]=\"hideLabelInErrors ? null : label\"></ui-validation-error>\r\n\r\n </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AutocompleteComponent } from './autocomplete.component';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TagComponentModule } from '../tag/tag.component.module';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { TransformItemPipe } from './transform-Item.pipe';\r\nimport { IncludesPipe } from './includes.pipe';\r\nimport { SelectTextDirective } from '../../directives/select-text.directive';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\r\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\r\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\r\nimport { PreventInputDirective } from \"./prevent-input.directive\";\r\nimport { SpinnerComponentModule } from '../spinner/spinner.module';\r\n\r\n@NgModule({\r\n declarations: [AutocompleteComponent, TransformItemPipe, IncludesPipe, SelectTextDirective],\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n MatInputModule,\r\n FormsModule,\r\n TagComponentModule,\r\n MatChipsModule,\r\n IconComponentModule,\r\n UiTranslatePipe,\r\n ValidationErrorModule,\r\n HasValidationErrorPipe,\r\n CdkVirtualForOf,\r\n CdkVirtualScrollViewport,\r\n CdkFixedSizeVirtualScroll,\r\n PreventInputDirective,\r\n SpinnerComponentModule\r\n ],\r\n exports: [AutocompleteComponent],\r\n providers: [TransformItemPipe, IncludesPipe, SelectTextDirective],\r\n})\r\nexport class AutocompleteComponentModule {}\r\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\r\nimport { IconName } from '../icon/icon.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { ButtonVariant, EmptyStateVariant, IllustrationVariant } from './empty-state.model';\r\nimport { ButtonIconPosition } from '../button/button.model';\r\n\r\n@Component({\r\n selector: 'ui-empty-state',\r\n templateUrl: './empty-state.component.html',\r\n styleUrls: ['./empty-state.component.scss'],\r\n})\r\nexport class EmptyStateComponent {\r\n /**\r\n * @description If the default image should be displayed.\r\n * @type {boolean}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() showIllustration = false;\r\n /**\r\n * @description If the default image should be displayed.\r\n * @type {IllustrationVariant}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() illustrationVariant: IllustrationVariant = 'Empty-search';\r\n /**\r\n * @description The icon to be displayed in the empty state.\r\n * @type {IconName}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() icon: IconName = '';\r\n\r\n /**\r\n * @description The empty state variant.\r\n * @type {EmptyStateVariant}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() emptyStateVariant: EmptyStateVariant = 'desktop';\r\n\r\n /**\r\n * @description The title of the empty state.\r\n * @type {string}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() title = '';\r\n\r\n /**\r\n * @description The body text or description of the empty state.\r\n * @type {string}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() bodyText = '';\r\n\r\n /**\r\n * @description Displays primary button if passed.\r\n * @type {string}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() primaryButtonText = '';\r\n\r\n /**\r\n * Primary button variant - only for new theme.\r\n * @type {ButtonVariant}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() primaryButtonVariant: ButtonVariant = 'pink';\r\n\r\n\r\n /**\r\n * @description Name of ui-icon for primary button\r\n * @type {IconName}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() primaryButtonIconName: IconName = '';\r\n\r\n /**\r\n * @description Position of ui-icon for primary button\r\n * @type {ButtonIconPosition}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() primaryButtonIconPosition: ButtonIconPosition = 'left';\r\n\r\n /**\r\n * @description Displays secondary button if passed.\r\n * @type {string}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() secondaryButtonText = '';\r\n\r\n /**\r\n * Secondary button variant - only for new theme.\r\n * @type {ButtonVariant}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() secondaryButtonVariant: ButtonVariant = 'black';\r\n\r\n /**\r\n * @description Name of ui-icon for secondary button\r\n * @type {IconName}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() secondaryButtonIconName: IconName = '';\r\n\r\n /**\r\n * @description Position of ui-icon for secondary button\r\n * @type {ButtonIconPosition}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() secondaryButtonIconPosition: ButtonIconPosition = 'left';\r\n\r\n /**\r\n * @description Displays tertiary button if passed.\r\n * @type {string}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() tertiaryButtonText = '';\r\n\r\n /**\r\n * Tertiary button variant - only for new theme.\r\n * @type {ButtonVariant}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() tertiaryButtonVariant: ButtonVariant = 'ghost';\r\n\r\n /**\r\n * @description Name of ui-icon for tertiary button\r\n * @type {IconName}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() tertiaryButtonIconName: IconName = '';\r\n\r\n /**\r\n * @description Position of ui-icon for tertiary button\r\n * @type {ButtonIconPosition}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() tertiaryButtonIconPosition: ButtonIconPosition = 'left';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof EmptyStateComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Event triggered when the primary button is clicked.\r\n * @type {Event}\r\n * @event\r\n * @memberof TagComponent\r\n */\r\n @Output() primaryButtonClick = new EventEmitter<Event>();\r\n\r\n /**\r\n * Event triggered when the secondary button is clicked.\r\n * @type {Event}\r\n * @event\r\n * @memberof TagComponent\r\n */\r\n @Output() secondaryButtonClick = new EventEmitter<Event>();\r\n\r\n /**\r\n * Event triggered when the tertiary button is clicked.\r\n * @type {Event}\r\n * @event\r\n * @memberof TagComponent\r\n */\r\n @Output() tertiaryButtonClick = new EventEmitter<Event>();\r\n\r\n buttonApplicationTheme: ApplicationTheme;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (this.applicationTheme !== 'classic') {\r\n this.buttonApplicationTheme = this.applicationTheme;\r\n }\r\n }\r\n\r\n onPrimaryButtonClick(event: Event): void {\r\n this.primaryButtonClick.emit(event);\r\n }\r\n\r\n onSecondaryButtonClick(event: Event): void {\r\n this.secondaryButtonClick.emit(event);\r\n }\r\n\r\n onTertiaryButtonClick(event: Event): void {\r\n this.tertiaryButtonClick.emit(event);\r\n }\r\n\r\n getVariant(variant: ButtonVariant) {\r\n if (variant === 'pink') {\r\n return 'primary';\r\n } else if (variant === 'black') {\r\n this.buttonApplicationTheme = 'light';\r\n return 'secondary';\r\n } else {\r\n this.buttonApplicationTheme = 'light';\r\n return 'ghost';\r\n }\r\n }\r\n}\r\n","<ng-container>\r\n <div class=\"empty-state-container\" [attr.theme]=\"applicationTheme\" [class.mobile]=\"emptyStateVariant === 'mobile'\">\r\n\r\n <div class=\"illustration\" *ngIf=\"showIllustration\" [attr.aria-hidden]=\"true\">\r\n <img *ngIf=\"applicationTheme === 'classic'\" [attr.src]=\"'/images/empty-state-default.svg'\" [width]=\"160\" [height]=\"160\" alt=\"illustration\">\r\n <img *ngIf=\"applicationTheme !== 'classic'\" [attr.src]=\"'/icons/rebrand/'+illustrationVariant+'-in-line.svg'\" [width]=\"160\" [height]=\"160\" alt=\"illustration\">\r\n </div>\r\n\r\n <div class=\"icon\" *ngIf=\"icon\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"icon\" size=\"40\"></ui-icon>\r\n </div>\r\n\r\n <div class=\"text-content\">\r\n <div class=\"title\">{{ title ? title : ('COMMON.NO_RESULTS') | uiTranslate | async }}</div>\r\n <div class=\"body-text\" *ngIf=\"bodyText\">{{ bodyText }}</div>\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <ui-button [fullWidth]=\"emptyStateVariant === 'mobile'\" [applicationTheme]=\"buttonApplicationTheme\" class=\"action-button\" *ngIf=\"primaryButtonText\" [variant]=\"applicationTheme !== 'classic' ? getVariant(primaryButtonVariant) : 'primary'\" [label]=\"primaryButtonText\" [iconName]=\"primaryButtonIconName\" [iconPosition]=\"primaryButtonIconPosition\" (buttonClickEvent)=\"onPrimaryButtonClick($event)\"></ui-button>\r\n <ui-button [fullWidth]=\"emptyStateVariant === 'mobile'\" [applicationTheme]=\"buttonApplicationTheme\" class=\"action-button\" *ngIf=\"secondaryButtonText\" [variant]=\"applicationTheme !== 'classic' ? getVariant(secondaryButtonVariant) : 'secondary'\" [label]=\"secondaryButtonText\" [iconName]=\"secondaryButtonIconName\" [iconPosition]=\"secondaryButtonIconPosition\" (buttonClickEvent)=\"onSecondaryButtonClick($event)\"></ui-button>\r\n <ui-button [fullWidth]=\"emptyStateVariant === 'mobile'\" [applicationTheme]=\"buttonApplicationTheme\" class=\"action-button\" *ngIf=\"tertiaryButtonText\" [variant]=\"applicationTheme !== 'classic' ? getVariant(tertiaryButtonVariant) : 'tertiary'\" [label]=\"tertiaryButtonText\" [iconName]=\"tertiaryButtonIconName\" [iconPosition]=\"tertiaryButtonIconPosition\" (buttonClickEvent)=\"onTertiaryButtonClick($event)\"></ui-button>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { EmptyStateComponent } from './empty-state.component';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [EmptyStateComponent],\r\n imports: [CommonModule, IconComponentModule, NgOptimizedImage, ButtonComponentModule, UiTranslatePipe],\r\n exports: [EmptyStateComponent],\r\n})\r\nexport class EmptyStateComponentModule {}\r\n","import { TemplateRef, Type } from '@angular/core';\r\n\r\nexport interface TableConfig<T = any> {\r\n columns: TableColumn<T>[];\r\n pagination?: Pagination;\r\n title?: string;\r\n width?: number;\r\n sort?: Sort;\r\n hidePagination?: boolean;\r\n noDataRowTpl?: TemplateRef<any>;\r\n sortable?: boolean;\r\n}\r\n\r\nexport interface TableConfigWithPagination<T> extends TableConfig<T> {\r\n pagination?: Pagination;\r\n}\r\n\r\nexport interface TableColumn<T = any> {\r\n title?: string;\r\n key: string;\r\n allowMultiline?: boolean;\r\n bold?: boolean;\r\n showTooltip?: boolean;\r\n tooltip?: string;\r\n allowSort?: boolean;\r\n isSticky?: boolean;\r\n headerCellTemplate?: TemplateRef<any>;\r\n rowCellTemplate?: TemplateRef<any>;\r\n rowCellTemplateClick?: () => any;\r\n sortHeader?: string;\r\n hidden?: boolean;\r\n order?: number;\r\n fontSize?: '12px' | '14px';\r\n field?: string;\r\n type?: ColumnType;\r\n function?: (v: T) => string;\r\n renderer?: (v: T) => ComponentRenderer | string;\r\n styles?: ColumnStyles;\r\n sortStart?: SortDirection;\r\n uniqueId?: string;\r\n}\r\n\r\nexport interface Pagination {\r\n itemsPerPageOptions: number[];\r\n itemsPerPage: number;\r\n currentPage: number;\r\n totalItems: number;\r\n}\r\n\r\nexport type TableData = Record<string, any>[];\r\n\r\nexport interface ColumnEllipse {\r\n index: number;\r\n showTooltip: boolean;\r\n}\r\n\r\nexport interface Sort {\r\n active: string;\r\n direction: SortDirection;\r\n defaultSortStart?: SortDirection;\r\n}\r\n\r\nexport type SortDirection = 'asc' | 'desc' | '';\r\n\r\nexport interface TableDetailColumn<T, TDetail> {\r\n columnDefs: TableColumn<TDetail>[];\r\n setDetailRowData: (params: DetailRowDataParams<T, TDetail>) => void;\r\n}\r\n\r\nexport interface DetailRowDataParams<T, TDetail> {\r\n data: T;\r\n\r\n setDetailDataSource(rowData: TDetail[]): void;\r\n}\r\n\r\nexport enum ColumnType {\r\n FIELD = 'field',\r\n FUNCTION = 'function',\r\n RENDERER = 'renderer',\r\n}\r\n\r\nexport interface ComponentRenderer {\r\n component: Type<any>;\r\n inputs?: any;\r\n outputs?: { [key: string]: any };\r\n}\r\n\r\nexport interface ColumnStyles {\r\n alignment?: ColumnAlignment;\r\n width?: string;\r\n 'min-width'?: string;\r\n padding?: string;\r\n}\r\n\r\nexport enum ColumnAlignment {\r\n LEFT = 'left',\r\n RIGHT = 'right',\r\n CENTER = 'center',\r\n}\r\n\r\nexport enum ColumnTypeEnum {\r\n FIELD = 'field',\r\n FUNCTION = 'function',\r\n RENDERER = 'renderer',\r\n}\r\n\r\nexport enum ColumnAlignmentEnum {\r\n LEFT = 'left',\r\n RIGHT = 'right',\r\n CENTER = 'center',\r\n}\r\n\r\nexport type DataSource = {\r\n [key: string]: any;\r\n};\r\n\r\nexport type ScrollSettings = { scrollEnd: boolean; horizontalScroll: boolean; scrollStart: boolean };\r\n","import { TableColumn } from '../components/table/table.model';\r\n\r\n/**\r\n * Sorting table columns by order value if set.\r\n * The rest columns keep the same ordering and displayed after the sorted ones.\r\n */\r\nexport const sortByOrder = <T>(columns: TableColumn<T>[]): TableColumn<T>[] => {\r\n const withOrderColumns = columns.filter((v) => v.order);\r\n const withoutOrderColumns = columns.filter((v) => !v.order)\r\n\r\n if (withOrderColumns.length) {\r\n const sortedColumns = Array(columns.length);\r\n withOrderColumns.forEach(column => sortedColumns[column.order! - 1] = column);\r\n withoutOrderColumns.forEach(column => {\r\n const emptyIndex = sortedColumns.findIndex(v => !v);\r\n sortedColumns[emptyIndex] = column;\r\n });\r\n return sortedColumns;\r\n }\r\n\r\n return columns;\r\n};\r\n","import { Component, Inject, Input, Optional } from '@angular/core';\r\nimport { NgxSkeletonLoaderConfigTheme, NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\r\nimport { Appearance } from './skeleton.model';\r\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\r\n\r\n@Component({\r\n selector: 'ui-skeleton',\r\n templateUrl: './skeleton.component.html',\r\n styleUrls: ['./skeleton.component.scss'],\r\n standalone: true,\r\n imports: [CommonModule, NgxSkeletonLoaderModule],\r\n})\r\nexport class SkeletonComponent {\r\n @Input() count: number | string = '';\r\n @Input() set theme(value: NgxSkeletonLoaderConfigTheme) {\r\n this.theme$.next(value ?? {});\r\n }\r\n @Input() set appearance(value: Appearance) {\r\n this.appearance$.next(value ?? 'line');\r\n }\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof SkeletonComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n protected readonly theme$ = new BehaviorSubject<NgxSkeletonLoaderConfigTheme>({});\r\n protected readonly appearance$ = new BehaviorSubject<Appearance>('line');\r\n protected readonly currentTheme$ = combineLatest([this.theme$, this.appearance$]).pipe(\r\n map(([theme, appearance]) => this.getThemeWithDefaultValues(theme, appearance))\r\n );\r\n\r\n private getThemeWithDefaultValues(\r\n theme: NgxSkeletonLoaderConfigTheme,\r\n appearance: Appearance\r\n ): NgxSkeletonLoaderConfigTheme {\r\n if (theme && appearance === 'circle') {\r\n return {\r\n ...theme,\r\n height: theme['height'] || theme['width'] || '48px',\r\n width: theme['width'] || theme['height'] || '48px',\r\n };\r\n } else if (theme && appearance !== 'circle' && !theme['height']) {\r\n return {\r\n ...theme,\r\n height: '24px',\r\n };\r\n } else {\r\n return theme;\r\n }\r\n }\r\n}\r\n","<ngx-skeleton-loader\r\n [count]=\"count\"\r\n [theme]=\"currentTheme$ | async\"\r\n [appearance]=\"(appearance$ | async) || 'line'\"\r\n></ngx-skeleton-loader>\r\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\r\nimport { MatPaginatorSelectConfig, PageEvent } from '@angular/material/paginator';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-paginator',\r\n templateUrl: './paginator.component.html',\r\n styleUrls: ['./paginator.component.scss']\r\n})\r\nexport class PaginatorComponent {\r\n /**\r\n * Paginator size options\r\n *\r\n * @type {number[]}\r\n * @memberof PaginatorComponent\r\n */\r\n @Input() pageSizeOptions = [10, 25, 50];\r\n\r\n /**\r\n * Data length\r\n *\r\n * @type {number}\r\n * @memberof PaginatorComponent\r\n */\r\n @Input() length = 0;\r\n\r\n /**\r\n * Page size\r\n *\r\n * @type {number}\r\n * @memberof PaginatorComponent\r\n */\r\n @Input() pageSize = 25;\r\n\r\n /**\r\n * Disabled\r\n *\r\n * @type {boolean}\r\n * @memberOf PaginatorComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof PaginatorComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n *\r\n * Defines the current page\r\n * @default 0\r\n *\r\n * @type {number}\r\n * @memberof PaginatorComponent\r\n */\r\n @Input() currentPage = 0;\r\n\r\n @Output() paginatorChange: EventEmitter<PageEvent> = new EventEmitter<PageEvent>();\r\n\r\n selectConfig: MatPaginatorSelectConfig = { panelClass: 'ui-dropdown-list' };\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n onPaginatorChange(paginator: PageEvent) {\r\n this.paginatorChange.emit(paginator);\r\n }\r\n}\r\n","<mat-paginator\r\n [disabled]=\"disabled\"\r\n [length]=\"length\"\r\n [pageIndex]=\"currentPage ? currentPage : 0\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n [attr.theme]=\"applicationTheme\"\r\n [selectConfig]=\"selectConfig\"\r\n [color]=\"'accent'\"\r\n (page)=\"onPaginatorChange($event)\"\r\n></mat-paginator>\r\n","import { ComponentRef, Directive, EventEmitter, Input, OnDestroy, Type, ViewContainerRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\ninterface IComponentRenderer {\r\n component: Type<any>;\r\n inputs?: any;\r\n outputs?: { [key: string]: any };\r\n}\r\n\r\n@Directive({\r\n selector: '[dynamicComponent]',\r\n standalone: true,\r\n})\r\nexport class DynamicComponentDirective implements OnDestroy {\r\n private subscription = new Subscription();\r\n private compRef: ComponentRef<any>;\r\n\r\n @Input() set dynamicComponent(componentRenderer: IComponentRenderer) {\r\n if (componentRenderer.component) {\r\n this.compRef = this.vcr.createComponent(componentRenderer.component);\r\n\r\n if (componentRenderer.inputs) {\r\n Object.keys(componentRenderer.inputs).map(\r\n inputName => (this.compRef.instance[inputName] = componentRenderer.inputs[inputName])\r\n );\r\n }\r\n\r\n if (componentRenderer.outputs) {\r\n Object.keys(componentRenderer.outputs).map(output => {\r\n this.subscription.add(\r\n (this.compRef.instance[output] as EventEmitter<any>).subscribe(componentRenderer.outputs?.[output])\r\n );\r\n });\r\n }\r\n }\r\n }\r\n\r\n constructor(private vcr: ViewContainerRef) {}\r\n\r\n ngOnDestroy() {\r\n if (this.compRef) {\r\n this.compRef.destroy();\r\n }\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'sentencecase',\r\n})\r\nexport class SentenceCasePipe implements PipeTransform {\r\n transform(value: string | undefined): string {\r\n if (!value) {\r\n return '';\r\n }\r\n return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n Optional,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ColumnEllipse,\r\n ColumnType,\r\n ComponentRenderer,\r\n DataSource,\r\n Pagination,\r\n ScrollSettings,\r\n TableColumn,\r\n TableConfig,\r\n TableConfigWithPagination,\r\n TableData,\r\n TableDetailColumn,\r\n} from './table.model';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { sortByOrder } from '../../utils/table.utils';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Sort } from '@angular/material/sort';\r\nimport { BehaviorSubject, fromEvent, Observable } from 'rxjs';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\r\n\r\n@Component({\r\n selector: 'ui-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [\r\n trigger('expandDetail', [\r\n state('collapsed, void', style({ height: '0px' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n transition('expanded <=> void', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class TableComponent<T extends DataSource, TDetail extends DataSource> implements OnChanges, AfterViewInit {\r\n /**\r\n * Table configuration\r\n *\r\n * @type {TableConfig}\r\n * @memberof TableComponent\r\n */\r\n @Input({ required: true }) config: TableConfigWithPagination<T>;\r\n\r\n /**\r\n * Input property for providing the table data.\r\n *\r\n * @type {TableData}\r\n * @memberof TableComponent\r\n */\r\n @Input() data: TableData;\r\n\r\n /**\r\n * Input property indicating whether the table is in a loading state.\r\n *\r\n * @type {boolean}\r\n * @memberof TableComponent\r\n * @default false\r\n */\r\n @Input() loading = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n * @type {ApplicationTheme}\r\n * @memberof TableComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Data structure to select which columns should be rendered and their capabilities\r\n *\r\n * @type {TableDetailColumn}\r\n * @memberof TableComponent\r\n */\r\n @Input() tableDetailColumns: TableDetailColumn<T, TDetail>;\r\n @Input() tableDetails = false;\r\n\r\n /**\r\n * Disable border radius for table\r\n *\r\n * @type {boolean}\r\n * @memberof TableComponent\r\n */\r\n @Input() disableBorderRadius = false;\r\n\r\n /**\r\n * Condensed table\r\n *\r\n * @type {boolean}\r\n * @memberof TableComponent\r\n */\r\n @Input() isCondensed = false;\r\n\r\n /**\r\n * Sticky header\r\n *\r\n * @type {boolean}\r\n * @memberof TableComponent\r\n */\r\n @Input() stickyHeader = false;\r\n\r\n /**\r\n * Max height\r\n *\r\n * @type {string}\r\n * @memberof TableComponent\r\n */\r\n @Input() maxHeight = '576px';\r\n\r\n @Output() onRowClickEvent: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onDetailRowClickEvent: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() paginatorChange = new EventEmitter<PageEvent>();\r\n @Output() sortChange = new EventEmitter<Sort>();\r\n\r\n @ViewChild('table') table: ElementRef;\r\n\r\n protected tableData: TableData;\r\n protected sourceData: TableData;\r\n protected columnsTooltipState: ColumnEllipse[] = [];\r\n protected tableConfig: TableConfigWithPagination<T>;\r\n protected displayedColumns: string[] = [];\r\n protected columnsDetailToDisplay: string[] = [];\r\n protected skeletonStyleConfig = {\r\n background: '#F6F6F6',\r\n 'border-radius': '4px',\r\n height: '24px',\r\n };\r\n protected dataSourceDetail = new MatTableDataSource<any>([]);\r\n protected elementDetail: any;\r\n protected readonly DataType = ColumnType;\r\n protected scrollSettings$ = new BehaviorSubject<ScrollSettings>({\r\n scrollEnd: false,\r\n horizontalScroll: false,\r\n scrollStart: false,\r\n });\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private destroyRef: DestroyRef,\r\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.setTableConfig(this.config);\r\n this.setTableData(this.data);\r\n\r\n if (this.applicationTheme !== 'classic') {\r\n this.skeletonStyleConfig.background = '#F4F4F4';\r\n }\r\n document.body.setAttribute('theme', this.applicationTheme);\r\n\r\n if (this.tableDetailColumns) {\r\n const filteredColumns = this.tableDetailColumns.columnDefs.filter(column => !column.hidden);\r\n this.columnsDetailToDisplay = filteredColumns.length\r\n ? filteredColumns.map((tableColumn: TableColumn<TDetail>) => tableColumn.title!)\r\n : [];\r\n }\r\n\r\n if (this.tableConfig?.sortable && this.tableConfig?.sort) {\r\n this.onSortChange(this.tableConfig.sort as Sort, false);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.hasTableScroll();\r\n fromEvent(this.table.nativeElement, 'scroll')\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => this.hasTableScroll());\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['config'] && changes['config'].currentValue) {\r\n const config = changes['config'].currentValue as TableConfig<T>;\r\n this.setTableConfig(config);\r\n }\r\n if (changes['data']?.currentValue) {\r\n this.setTableData(changes['data'].currentValue as TableData);\r\n }\r\n }\r\n\r\n hasTableScroll(): void {\r\n const table = this.table.nativeElement;\r\n const horizontalScroll = table.scrollWidth > table.clientWidth;\r\n const scrollEnd = table.scrollLeft + table.clientWidth >= table.scrollWidth;\r\n this.scrollSettings$.next({\r\n scrollStart: !table.scrollLeft,\r\n scrollEnd,\r\n horizontalScroll,\r\n });\r\n }\r\n\r\n callRenderer([rendererFn, element]: [(v: T) => ComponentRenderer | string, T]): any {\r\n if (rendererFn) {\r\n return rendererFn(element);\r\n }\r\n }\r\n\r\n protected onPaginatorChange(event: PageEvent): void {\r\n this.paginatorChange.emit(event);\r\n }\r\n\r\n protected onChangeColumnSize(columnIndex: number, showTooltip: boolean): void {\r\n this.columnsTooltipState = this.columnsTooltipState.map(column => {\r\n if (column.index === columnIndex) {\r\n column.showTooltip = showTooltip;\r\n }\r\n return column;\r\n });\r\n }\r\n\r\n protected onSortChange(sortState: Sort, emitEvent = true): void {\r\n if (emitEvent) {\r\n this.sortChange.emit(sortState);\r\n }\r\n\r\n if (this.tableConfig?.sortable) {\r\n this.tableData = [\r\n ...this.tableData.sort((a, b) => {\r\n const isAsc = sortState.direction === 'asc';\r\n const aVal = a[sortState.active];\r\n const bVal = b[sortState.active];\r\n return (aVal < bVal ? -1 : 1) * (isAsc ? 1 : -1);\r\n }),\r\n ];\r\n\r\n if (!sortState.direction) {\r\n this.tableData = [...this.sourceData];\r\n }\r\n }\r\n }\r\n\r\n protected onRowClick(rowParams: any): void {\r\n this.onRowClickEvent.emit(rowParams);\r\n }\r\n\r\n protected onDetailRowClick(rowParams: any): void {\r\n this.onDetailRowClickEvent.emit(rowParams);\r\n }\r\n\r\n protected toggleRow(element: T): void {\r\n if (this.tableDetails) {\r\n this.elementDetail = this.elementDetail === element ? null : element;\r\n if (this.elementDetail) {\r\n this.tableDetailColumns.setDetailRowData({\r\n data: element,\r\n setDetailDataSource: this.setTableDetailDataSource.bind(this),\r\n });\r\n }\r\n }\r\n }\r\n\r\n private setTableDetailDataSource(rowData: TDetail[]): void {\r\n this.dataSourceDetail = new MatTableDataSource<any>(rowData);\r\n }\r\n\r\n private setTableConfig(config: TableConfig<T>): void {\r\n config.pagination = config?.pagination ?? this.defaultPaginationConfig;\r\n\r\n this.tableConfig = config as TableConfigWithPagination<T>;\r\n\r\n this.columnsTooltipState = config.columns.map((column, index) => ({\r\n index,\r\n showTooltip: column.showTooltip ?? false,\r\n }));\r\n this.displayedColumns = sortByOrder<T>(config.columns.filter(column => !column.hidden)).map(\r\n column => column.uniqueId ?? column.key\r\n );\r\n }\r\n\r\n private setTableData(data: TableData): void {\r\n this.sourceData = data;\r\n this.tableData = data;\r\n }\r\n\r\n private defaultPaginationConfig: Pagination = {\r\n currentPage: 0,\r\n itemsPerPage: 10,\r\n itemsPerPageOptions: [10, 25, 50],\r\n totalItems: 20,\r\n };\r\n\r\n trackColumnUniqueId = (index: number, column: TableColumn<T>): string => column.uniqueId ?? column.key;\r\n}\r\n","<div #tableContainer class=\"table-container\"\r\n [ngClass]=\"{ 'without-title': !tableConfig?.title, 'disable-border-radius': disableBorderRadius }\"\r\n [attr.theme]=\"applicationTheme\">\r\n <div *ngIf=\"tableConfig?.title\" class=\"table-header\">\r\n {{ tableConfig.title | sentencecase }}\r\n <ng-content select=\"[title-actions]\"></ng-content>\r\n </div>\r\n <div\r\n #table\r\n *ngIf=\"scrollSettings$ | async as scrollSettings\"\r\n class=\"table-wrapper\"\r\n [class.sticky-header]=\"stickyHeader\"\r\n [style.--table-max-height]=\"maxHeight\">\r\n <table\r\n [tabIndex]=\"0\"\r\n class=\"main-table\"\r\n [class.condensed]=\"isCondensed\"\r\n mat-table\r\n [dataSource]=\"tableData\"\r\n matSort\r\n [matSortStart]=\"tableConfig?.sort?.defaultSortStart ?? 'asc'\"\r\n [matSortActive]=\"tableConfig?.sort?.active ?? ''\"\r\n [matSortDirection]=\"tableConfig?.sort?.direction ?? ''\"\r\n (matSortChange)=\"onSortChange($event)\"\r\n multiTemplateDataRows\r\n >\r\n\r\n <ng-container\r\n *ngFor=\"let column of tableConfig.columns; index as i, last as isLast; trackBy: trackColumnUniqueId\">\r\n <ng-container *ngIf=\"isLast && column.isSticky && column.allowSort\">\r\n <ng-container [matColumnDef]=\"column.uniqueId ?? column.key\" [stickyEnd]=\"!scrollSettings?.scrollEnd\">\r\n <th mat-header-cell\r\n [start]=\"column.sortStart ?? 'asc'\"\r\n [mat-sort-header]=\"column.sortHeader ?? column.key\"\r\n *matHeaderCellDef\r\n [attr.sortable]=\"column.allowSort ?? false\"\r\n [ngStyle]=\"{width: column.styles?.width, minWidth: column.styles?.['min-width']}\"\r\n [ngClass]=\"column.styles?.alignment ? 'th-'+column.styles?.alignment : ''\"\r\n [style.font-weight]=\"'bold'\"\r\n >\r\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\r\n <ng-container\r\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title, column, colIndex: i}\"></ng-container>\r\n </ng-container>\r\n <ng-template #configValue>\r\n <ng-container [ngTemplateOutlet]=\"columnHeader\" [ngTemplateOutletContext]=\"{ i, column }\"></ng-container>\r\n </ng-template>\r\n </th>\r\n\r\n <td mat-cell\r\n *matCellDef=\"let element; let rowIndex = dataIndex\"\r\n [align]=\"column.styles?.alignment\"\r\n [ngClass]=\"[column.styles?.alignment ? 'td-'+column.styles?.alignment : '']\"\r\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\r\n >\r\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\r\n *ngIf=\"loading; else value\"></ui-skeleton>\r\n <ng-template #value>\r\n <div class=\"row-value\">\r\n <ng-container [ngTemplateOutlet]=\"expandButton\" [ngTemplateOutletContext]=\"{ index: i, element }\"></ng-container>\r\n\r\n @if (column?.type) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn: column}\"></ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\r\n <ng-container\r\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element, rowIndex}\"></ng-container>\r\n </ng-container>\r\n <ng-template #configData>\r\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\r\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element | dataPropertyGetter: column.key }}</span>\r\n </ng-template>\r\n }\r\n </div>\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"isLast && column.isSticky && !column.allowSort\">\r\n <ng-container [matColumnDef]=\"column.uniqueId ?? column.key\"\r\n [stickyEnd]=\"scrollSettings.horizontalScroll ? !scrollSettings.scrollEnd : true\">\r\n <th mat-header-cell\r\n *matHeaderCellDef\r\n [attr.sortable]=\"column.allowSort ?? false\"\r\n [ngStyle]=\"{width: column.styles?.width, minWidth: column.styles?.['min-width']}\"\r\n [ngClass]=\"column.styles?.alignment ? 'th-'+column.styles?.alignment : ''\"\r\n [style.font-weight]=\"'bold'\"\r\n >\r\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\r\n <ng-container\r\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title, column, colIndex: i}\"></ng-container>\r\n </ng-container>\r\n <ng-template #configValue>\r\n <ng-container [ngTemplateOutlet]=\"columnHeader\" [ngTemplateOutletContext]=\"{ i, column }\"></ng-container>\r\n </ng-template>\r\n </th>\r\n\r\n <td mat-cell\r\n *matCellDef=\"let element; let rowIndex = dataIndex\"\r\n [align]=\"column.styles?.alignment\"\r\n [ngClass]=\"[column.styles?.alignment ? 'td-'+column.styles?.alignment : '']\"\r\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\r\n >\r\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\"\r\n [appearance]=\"'line'\"\r\n *ngIf=\"loading; else value\"></ui-skeleton>\r\n <ng-template #value>\r\n <div class=\"row-value\">\r\n <ng-container [ngTemplateOutlet]=\"expandButton\" [ngTemplateOutletContext]=\"{ index: i, element }\"></ng-container>\r\n\r\n @if (column?.type) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn: column}\"></ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\r\n <ng-container\r\n *ngTemplateOutlet=\"column.rowCellTemplate; context: { $implicit: element, rowIndex }\"></ng-container>\r\n </ng-container>\r\n <ng-template #configData>\r\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\r\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element | dataPropertyGetter: column.key }}</span>\r\n </ng-template>\r\n }\r\n </div>\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"!(isLast && column.isSticky) && column.allowSort\">\r\n <ng-container [matColumnDef]=\"column.uniqueId ?? column.key\"\r\n [sticky]=\"(isMobile$ | async) ? false : !scrollSettings.scrollStart && !!column.isSticky\">\r\n <th mat-header-cell\r\n [start]=\"column.sortStart ?? 'asc'\"\r\n [mat-sort-header]=\"column.sortHeader ?? column.key\"\r\n [attr.sortable]=\"column.allowSort ?? false\"\r\n *matHeaderCellDef\r\n [style.font-weight]=\"'bold'\"\r\n [ngStyle]=\"{width: column.styles?.width, minWidth: column.styles?.['min-width']}\"\r\n [ngClass]=\"column.styles?.alignment ? 'th-'+column.styles?.alignment : ''\"\r\n >\r\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\r\n <ng-container\r\n *ngTemplateOutlet=\"column.headerCellTemplate; context: { $implicit: column.title, column, colIndex: i }\"></ng-container>\r\n </ng-container>\r\n <ng-template #configValue>\r\n <ng-container [ngTemplateOutlet]=\"columnHeader\" [ngTemplateOutletContext]=\"{ i, column }\"></ng-container>\r\n </ng-template>\r\n </th>\r\n\r\n <td mat-cell\r\n *matCellDef=\"let element; let rowIndex = dataIndex\"\r\n [align]=\"column.styles?.alignment\"\r\n [ngClass]=\"[column.styles?.alignment ? 'td-'+column.styles?.alignment : '']\"\r\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\r\n >\r\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\"\r\n [appearance]=\"'line'\"\r\n *ngIf=\"loading; else value\"></ui-skeleton>\r\n <ng-template #value>\r\n <div class=\"row-value\">\r\n <ng-container [ngTemplateOutlet]=\"expandButton\" [ngTemplateOutletContext]=\"{ index: i, element }\"></ng-container>\r\n\r\n @if (column?.type) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn: column}\"></ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\r\n <ng-container\r\n *ngTemplateOutlet=\"column.rowCellTemplate; context: { $implicit: element, rowIndex }\"></ng-container>\r\n </ng-container>\r\n <ng-template #configData>\r\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\r\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element | dataPropertyGetter: column.key }}</span>\r\n </ng-template>\r\n }\r\n </div>\r\n\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"!(isLast && column.isSticky) && !column.allowSort\">\r\n <ng-container [matColumnDef]=\"column.uniqueId ?? column.key\"\r\n [sticky]=\"(isMobile$ | async) ? false : !scrollSettings.scrollStart && !!column.isSticky\">\r\n <th mat-header-cell\r\n [attr.sortable]=\"column.allowSort ?? false\"\r\n *matHeaderCellDef\r\n [style.font-weight]=\"'bold'\"\r\n [ngStyle]=\"{width: column.styles?.width, minWidth: column.styles?.['min-width']}\"\r\n [ngClass]=\"column.styles?.alignment ? 'th-'+column.styles?.alignment : ''\"\r\n >\r\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\r\n <ng-container\r\n *ngTemplateOutlet=\"column.headerCellTemplate; context: { $implicit: column.title, column, colIndex: i }\"></ng-container>\r\n </ng-container>\r\n <ng-template #configValue>\r\n <ng-container [ngTemplateOutlet]=\"columnHeader\" [ngTemplateOutletContext]=\"{ i, column }\"></ng-container>\r\n </ng-template>\r\n </th>\r\n\r\n <td mat-cell\r\n *matCellDef=\"let element; let rowIndex = dataIndex\"\r\n [align]=\"column.styles?.alignment\"\r\n [ngClass]=\"[column.styles?.alignment ? 'td-'+column.styles?.alignment : '']\"\r\n (click)=\"onRowClick(element); column?.rowCellTemplateClick ? column!.rowCellTemplateClick?.() : ''\"\r\n >\r\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\"\r\n [appearance]=\"'line'\"\r\n *ngIf=\"loading; else value\"></ui-skeleton>\r\n <ng-template #value>\r\n <div class=\"row-value\">\r\n <ng-container [ngTemplateOutlet]=\"expandButton\" [ngTemplateOutletContext]=\"{ index: i, element }\"></ng-container>\r\n\r\n @if (column?.type) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn: column}\"></ng-container>\r\n } @else {\r\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\r\n <ng-container\r\n *ngTemplateOutlet=\"column.rowCellTemplate; context: { $implicit: element, rowIndex }\"></ng-container>\r\n </ng-container>\r\n <ng-template #configData>\r\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\"\r\n [style.font-size]=\"column.fontSize ?? '14px'\">{{ element | dataPropertyGetter: column.key }}</span>\r\n </ng-template>\r\n }\r\n </div>\r\n </ng-template>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\">\r\n <div class=\"element-detail\" *ngIf=\"dataSourceDetail.data.length\"\r\n [@expandDetail]=\"element === elementDetail ? 'expanded' : 'collapsed'\">\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSourceDetail\"\r\n [ngClass]=\"{ 'hide-borders': element === tableData[tableData.length - 1] }\"\r\n >\r\n <ng-container *ngFor=\"let tableColumn of tableDetailColumns.columnDefs\"\r\n [matColumnDef]=\"tableColumn.title ?? ''\">\r\n <th mat-header-cell *matHeaderCellDef=\"let element\" arrowPosition=\"after\"\r\n [ngStyle]=\"{width: tableColumn.styles?.width}\"\r\n [ngClass]=\"tableColumn.styles?.alignment ? 'th-'+tableColumn.styles?.alignment : ''\">\r\n {{ tableColumn.title | uppercase }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element\" (click)=\"onDetailRowClick(element)\"\r\n [align]=\"tableColumn.styles?.alignment\"\r\n [ngClass]=\"tableColumn.styles?.alignment ? 'td-'+tableColumn.styles?.alignment : ''\"\r\n [ngStyle]=\"{width: tableColumn.styles?.width }\">\r\n <ng-container *ngTemplateOutlet=\"tableDataTpl; context: {element, tableColumn}\"></ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columnsDetailToDisplay\"></tr>\r\n <tr mat-row *matRowDef=\"let rowDetail; columns: columnsDetailToDisplay;\"></tr>\r\n </table>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-template #tableDataTpl let-element=\"element\" let-tableColumn=\"tableColumn\">\r\n <div class=\"align-wrapper\">\r\n <ng-container [ngSwitch]=\"tableColumn.type\">\r\n <ng-container *ngSwitchCase=\"DataType.FIELD\">\r\n {{ element | dataPropertyGetter: tableColumn.key }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"DataType.FUNCTION\">\r\n {{ tableColumn.function?.(element) }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"DataType.RENDERER\">\r\n <ng-template\r\n [dynamicComponent]=\"[tableColumn.renderer, element] | memoizeFunc : callRenderer\">\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ element | dataPropertyGetter: tableColumn.key }}\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: stickyHeader\" [class.is-title-present]=\"tableConfig.title\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\r\n [ngClass]=\"{'expanded-row': elementDetail === row, 'row-clickable': tableDetails, 'selected': row?.selected, 'last-row': row === tableData[tableData.length - 1] && !elementDetail }\"\r\n (click)=\"toggleRow(row)\">\r\n </tr>\r\n <ng-container *ngIf=\"tableDetails && tableDetailColumns?.columnDefs?.length\">\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\"></tr>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"tableConfig.noDataRowTpl\">\r\n <tr *matNoDataRow>\r\n <ng-container *ngTemplateOutlet=\"tableConfig.noDataRowTpl\"></ng-container>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n\r\n <ui-paginator\r\n *ngIf=\"!tableConfig?.hidePagination && tableConfig?.pagination\"\r\n [disabled]=\"loading\"\r\n [applicationTheme]=\"applicationTheme !== 'classic' ? 'light' : 'classic'\"\r\n [pageSize]=\"tableConfig.pagination?.itemsPerPage ?? 25\"\r\n [length]=\"tableConfig.pagination?.totalItems ?? 0\"\r\n [currentPage]=\"tableConfig.pagination?.currentPage ?? 0\"\r\n [pageSizeOptions]=\"tableConfig.pagination?.itemsPerPageOptions ?? [10, 25, 50]\"\r\n (paginatorChange)=\"onPaginatorChange($event)\"\r\n ></ui-paginator>\r\n</div>\r\n\r\n<ng-template #expandButton let-i=\"index\" let-element=\"element\">\r\n <ui-button\r\n [applicationTheme]=\"applicationTheme\"\r\n *ngIf=\"!i && tableDetails\"\r\n variant=\"icon-button\"\r\n [ngClass]=\"{ opened: elementDetail && element == elementDetail }\"\r\n [iconName]=\"elementDetail && element == elementDetail ? 'Arrow-chevron-up-in-line' : 'Arrow-chevron-down-in-line'\"\r\n ></ui-button>\r\n</ng-template>\r\n\r\n<ng-template #columnHeader let-column=\"column\" let-i=\"i\">\r\n <div class=\"header-section\">\r\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\r\n class=\"column-title\">{{ column.title | sentencecase }}\r\n </span>\r\n <ui-icon *ngIf=\"column?.showTooltip\" [name]=\"'Help-in-line'\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n [matTooltip]=\"(column?.showTooltip ? (column?.tooltip ? column.tooltip : column.title ) : '') || ''\"\r\n ></ui-icon>\r\n </div>\r\n</ng-template>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PaginatorComponent } from './paginator.component';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\n@NgModule({\r\n declarations: [PaginatorComponent],\r\n imports: [CommonModule, MatPaginatorModule],\r\n exports: [PaginatorComponent],\r\n})\r\nexport class PaginatorComponentModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TableComponent } from './table.component';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { SkeletonComponent } from '../skeleton/skeleton.component';\r\nimport { PaginatorComponentModule } from '../paginator/paginator.component.module';\r\nimport { EllipseTextDirective } from '../../directives/ellipse-text.directive';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { SentenceCasePipe } from './sentence-case.pipe';\r\nimport { DataPropertyGetterPipe } from '../../pipes/data-property-getter';\r\nimport { DynamicComponentDirective } from '../../directives/dynamic-component.directive';\r\nimport { MemoizeFuncPipe } from '../../pipes/memoize-func.pipe';\r\n\r\n@NgModule({\r\n declarations: [TableComponent, SentenceCasePipe],\r\n imports: [\r\n CommonModule,\r\n MatTableModule,\r\n MatTooltipModule,\r\n SkeletonComponent,\r\n PaginatorComponentModule,\r\n ButtonComponentModule,\r\n MatSortModule,\r\n IconComponentModule,\r\n EllipseTextDirective,\r\n DynamicComponentDirective,\r\n DataPropertyGetterPipe,\r\n MemoizeFuncPipe,\r\n ],\r\n exports: [TableComponent],\r\n})\r\nexport class TableComponentModule {}\r\n","import { CommonModule, DecimalPipe } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Inject,\r\n input,\r\n Input,\r\n Optional,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormsModule,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n Validator,\r\n} from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\r\nimport { DigitsOnlyDirective } from '../../directives/digits-only.directive';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { SliderValue, SliderVariant } from './slider.model';\r\n\r\n@Component({\r\n selector: 'ui-slider',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SliderComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => SliderComponent),\r\n multi: true,\r\n },\r\n provideNgxMask(),\r\n DecimalPipe,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n MatSliderModule,\r\n FormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n IconComponentModule,\r\n UiTranslatePipe,\r\n DigitsOnlyDirective,\r\n NgxMaskDirective,\r\n ],\r\n})\r\nexport class SliderComponent implements Validator {\r\n /**\r\n * The maximum value of the slider.\r\n *\r\n * @type {number}\r\n * @default 100\r\n */\r\n @Input() max = 100;\r\n\r\n /**\r\n * The minimum value of the slider.\r\n *\r\n * @type {number}\r\n * @default 0\r\n */\r\n @Input() min = 0;\r\n\r\n /**\r\n * A flag indicating whether the slider displays values as percentages.\r\n *\r\n * @type {boolean}\r\n * @default true\r\n */\r\n @Input() percentage = false;\r\n\r\n /**\r\n * A flag indicating whether the slider is disabled.\r\n *\r\n * @type {boolean}\r\n * @default true\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * The starting value of the slider.\r\n *\r\n * @type {number}\r\n * @default 0\r\n */\r\n @Input() sliderStart = 0;\r\n\r\n /**\r\n * The ending value of the slider.\r\n *\r\n * @type {number}\r\n * @default 100\r\n */\r\n @Input() sliderEnd = 100;\r\n\r\n /**\r\n * The label for the slider.\r\n *\r\n * @type {string}\r\n * @default ''\r\n */\r\n @Input() label = '';\r\n\r\n /**\r\n * Show slider inputs.\r\n *\r\n * @type {boolean}\r\n * @default true\r\n */\r\n @Input() showInputs = true;\r\n\r\n /**\r\n * Step number.\r\n *\r\n * @type {number}\r\n * @default 1\r\n */\r\n @Input() step = 1;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof SliderComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n *\r\n * Defines the variant slider\r\n *\r\n * @type {SliderVariant}\r\n * @memberof SliderComponent\r\n */\r\n @Input() variant: SliderVariant = 'range';\r\n\r\n useDecimal = input<boolean>(false);\r\n\r\n minLabel = input<string>();\r\n\r\n maxLabel = input<string>();\r\n\r\n inputWidth = input(80);\r\n\r\n @Output() sliderValueChange = new EventEmitter<SliderValue>();\r\n\r\n cdr = inject(ChangeDetectorRef);\r\n decimalPipe = inject(DecimalPipe);\r\n private control?: AbstractControl;\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n this.cdr.markForCheck();\r\n }\r\n this.formatLabel = this.formatLabel.bind(this);\r\n }\r\n\r\n private value: SliderValue = { start: 0, end: 100 };\r\n protected translationContext = 'SLIDER.';\r\n protected touchedControlName = '';\r\n\r\n onChange: (value: SliderValue) => void = () => {};\r\n onTouch: () => void = () => {};\r\n\r\n registerOnChange(fn: (value: SliderValue) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n writeValue(value: SliderValue): void {\r\n this.value = value;\r\n this.sliderEnd = value.end;\r\n this.cdr.markForCheck();\r\n // Update sliderStart in a separate detection cycle to ensure proper rendering o mat-slider\r\n setTimeout(() => {\r\n this.sliderStart = value.start;\r\n this.cdr.markForCheck();\r\n if (this.control) {\r\n this.control.updateValueAndValidity();\r\n }\r\n });\r\n }\r\n\r\n protected onValueChange(ev?: number): void {\r\n const value: SliderValue = { start: +this.sliderStart, end: +this.sliderEnd };\r\n\r\n if (ev) {\r\n value.start = ev;\r\n value.end = 0;\r\n }\r\n\r\n this.value = value;\r\n this.onChange(value);\r\n this.sliderValueChange.emit(value);\r\n this.cdr.markForCheck();\r\n this.onTouch();\r\n }\r\n\r\n protected onInputBlur(inputName: string): void {\r\n this.touchedControlName = inputName;\r\n const value: SliderValue = { start: +this.sliderStart, end: +this.sliderEnd };\r\n\r\n if (this.isValueChanged(value)) {\r\n this.onValueChange();\r\n }\r\n }\r\n\r\n protected onInputFocus(): void {\r\n this.touchedControlName = '';\r\n this.cdr.markForCheck();\r\n }\r\n\r\n private isValueChanged(value: SliderValue): boolean {\r\n return this.value.start !== value.start || this.value.end !== value.end;\r\n }\r\n\r\n get hasError(): boolean {\r\n return (\r\n this.max < +this.sliderEnd ||\r\n this.min > +this.sliderStart ||\r\n this.min > +this.sliderEnd ||\r\n this.max < +this.sliderStart ||\r\n +this.sliderEnd < +this.sliderStart\r\n );\r\n }\r\n\r\n get isBasicSlider(): boolean {\r\n return this.variant === 'basic';\r\n }\r\n\r\n formatLabel(value: number): string {\r\n return this.useDecimal() ? this.decimalPipe.transform(value, '1.0-0') || value.toString() : value.toString();\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n this.control = control;\r\n return this.hasError && this.touchedControlName ? { invalidSlider: true } : null;\r\n }\r\n}\r\n","<ng-container>\r\n <div\r\n class=\"slider-container\"\r\n [attr.theme]=\"applicationTheme\"\r\n [ngClass]=\"{ disabled: disabled, error: hasError && touchedControlName }\"\r\n >\r\n @if (label) {\r\n <div class=\"slider-label\">{{ label }}</div>\r\n }\r\n\r\n <div class=\"slider\">\r\n @if (!isBasicSlider) {\r\n <div class=\"min-value\">\r\n <span>\r\n @if (useDecimal()) {\r\n {{ min | number }}\r\n } @else {\r\n {{ min }}\r\n }\r\n @if (percentage) {\r\n %\r\n }\r\n </span>\r\n </div>\r\n }\r\n <mat-slider\r\n [disableRipple]=\"applicationTheme !== 'classic'\"\r\n #sliderElement\r\n discrete\r\n [disabled]=\"disabled\"\r\n [max]=\"max\"\r\n [min]=\"min\"\r\n [step]=\"step\"\r\n (mouseenter)=\"sliderElement.discrete = true\"\r\n (mouseleave)=\"sliderElement.discrete = false\"\r\n [displayWith]=\"formatLabel\"\r\n >\r\n @if (isBasicSlider) {\r\n <input [disabled]=\"disabled\" (valueChange)=\"onValueChange($event)\" [(ngModel)]=\"sliderStart\" matSliderThumb />\r\n } @else {\r\n <input [disabled]=\"disabled\" (valueChange)=\"onValueChange()\" [(ngModel)]=\"sliderStart\" matSliderStartThumb />\r\n <input [disabled]=\"disabled\" (valueChange)=\"onValueChange()\" [(ngModel)]=\"sliderEnd\" matSliderEndThumb />\r\n }\r\n </mat-slider>\r\n @if (!isBasicSlider) {\r\n <div class=\"max-value\">\r\n <span>\r\n @if (useDecimal()) {\r\n {{ max | number }}\r\n } @else {\r\n {{ max }}\r\n }\r\n @if (percentage) {\r\n %\r\n }\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (showInputs && !this.isBasicSlider) {\r\n <div class=\"slider-input\">\r\n <mat-form-field [appearance]=\"'outline'\" [ngStyle]=\"{ width: inputWidth() + 'px' }\">\r\n @if (minLabel()) {\r\n <mat-label>\r\n {{ minLabel() }}\r\n @if (percentage) {\r\n <span>%</span>\r\n }\r\n </mat-label>\r\n } @else {\r\n <mat-label>\r\n {{ 'COMMON.MIN' | uiTranslate | async }}\r\n @if (percentage) {\r\n <span>%</span>\r\n }\r\n </mat-label>\r\n }\r\n @if (useDecimal()) {\r\n <input\r\n matInput\r\n [type]=\"'text'\"\r\n [(ngModel)]=\"sliderStart\"\r\n [disabled]=\"disabled\"\r\n (focus)=\"onInputFocus()\"\r\n (blur)=\"onInputBlur('start')\"\r\n (keydown.enter)=\"onInputBlur('start')\"\r\n mask=\"separator.2\"\r\n thousandSeparator=\",\"\r\n />\r\n } @else {\r\n <input\r\n matInput\r\n [type]=\"'number'\"\r\n [(ngModel)]=\"sliderStart\"\r\n [disabled]=\"disabled\"\r\n (focus)=\"onInputFocus()\"\r\n (blur)=\"onInputBlur('start')\"\r\n (keydown.enter)=\"onInputBlur('start')\"\r\n [allowOnlyDigits]=\"true\"\r\n digitsOnly\r\n />\r\n }\r\n </mat-form-field>\r\n <mat-form-field [appearance]=\"'outline'\" [ngStyle]=\"{ width: inputWidth() + 'px' }\">\r\n @if (maxLabel()) {\r\n <mat-label>\r\n {{ maxLabel() }}\r\n @if (percentage) {\r\n <span>%</span>\r\n }\r\n </mat-label>\r\n } @else {\r\n <mat-label>\r\n {{ 'COMMON.MAX' | uiTranslate | async }}\r\n @if (percentage) {\r\n <span>%</span>\r\n }\r\n </mat-label>\r\n }\r\n @if (useDecimal()) {\r\n <input\r\n matInput\r\n [disabled]=\"disabled\"\r\n [type]=\"'text'\"\r\n [(ngModel)]=\"sliderEnd\"\r\n (focus)=\"onInputFocus()\"\r\n (blur)=\"onInputBlur('end')\"\r\n (keydown.enter)=\"onInputBlur('end')\"\r\n data-testid=\"slider.input-end\"\r\n mask=\"separator.2\"\r\n thousandSeparator=\",\"\r\n />\r\n } @else {\r\n <input\r\n matInput\r\n [disabled]=\"disabled\"\r\n [type]=\"'number'\"\r\n [(ngModel)]=\"sliderEnd\"\r\n (focus)=\"onInputFocus()\"\r\n (blur)=\"onInputBlur('end')\"\r\n (keydown.enter)=\"onInputBlur('end')\"\r\n [allowOnlyDigits]=\"true\"\r\n digitsOnly\r\n data-testid=\"slider.input-end\"\r\n />\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n\r\n @if (hasError && touchedControlName) {\r\n <mat-error class=\"slider-errors\">\r\n @if (touchedControlName === 'start' && sliderStart > sliderEnd) {\r\n <div class=\"validation-error\">\r\n <ui-icon [name]=\"'Info'\"></ui-icon>\r\n <span>{{\r\n translationContext + 'MIN_MORE_THAN_MAX' | uiTranslate: { min: sliderStart, max: sliderEnd } | async\r\n }}</span>\r\n </div>\r\n }\r\n @if (touchedControlName === 'end' && sliderStart > sliderEnd) {\r\n <div class=\"validation-error\">\r\n <ui-icon [name]=\"'Info'\"></ui-icon>\r\n <span>{{\r\n translationContext + 'MAX_LESS_THAN_MIN' | uiTranslate: { min: sliderStart, max: sliderEnd } | async\r\n }}</span>\r\n </div>\r\n }\r\n @if (sliderStart < min) {\r\n <div class=\"validation-error\">\r\n <ui-icon [name]=\"'Info'\"></ui-icon>\r\n <span>{{ 'COMMON.MIN' | uiTranslate | async }} {{ min }}</span>\r\n </div>\r\n }\r\n @if (sliderEnd > max) {\r\n <div class=\"validation-error\">\r\n <ui-icon [name]=\"'Info'\"></ui-icon>\r\n <span>{{ 'COMMON.MAX' | uiTranslate | async }} {{ max }}</span>\r\n </div>\r\n }\r\n </mat-error>\r\n }\r\n </div>\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { SliderComponent } from './slider.component';\r\n\r\n@NgModule({\r\n imports: [SliderComponent],\r\n exports: [SliderComponent],\r\n})\r\nexport class SliderComponentModule {}\r\n","import { Component, Inject, Input, Optional } from '@angular/core';\r\nimport { SegmentedBar, SegmentedBarVariant, SegmentedBarWithPercentage } from './segmented-bar.model';\r\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\r\n\r\n@Component({\r\n selector: 'ui-segmented-bar',\r\n templateUrl: './segmented-bar.component.html',\r\n styleUrls: ['./segmented-bar.component.scss'],\r\n})\r\nexport class SegmentedBarComponent {\r\n /**\r\n * The width of the segmented bar. Defaults to '100%'.\r\n * You can use '100%' or '100px' for this field. 100 is just an example\r\n * @default '100%'\r\n * @type {string}\r\n * @memberof SegmentedBarComponent\r\n */\r\n @Input() width = '100%';\r\n\r\n /**\r\n * The size variant of the segmented bar. Can be 'small' or 'large'.\r\n * Defaults to 'large'.\r\n * @default 'large'\r\n * @type {SegmentedBarVariant}\r\n * @memberof SegmentedBarComponent\r\n */\r\n @Input() size: SegmentedBarVariant = 'large';\r\n\r\n /**\r\n * The segments to be displayed in the segmented bar.\r\n * @required true\r\n * @type {SegmentedBar}\r\n * @memberof SegmentedBarComponent\r\n */\r\n @Input({ required: true }) set segments(segments: SegmentedBar[]) {\r\n this.segmentList = this.calculatePercentages(segments);\r\n }\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof SegmentedBarComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof SegmentedBarComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {boolean}\r\n * @memberof SegmentedBarComponent\r\n */\r\n @Input() ariaRequired = false;\r\n\r\n /**\r\n * Groups the tooltips into one template\r\n *\r\n * @type {boolean}\r\n * @memberof SegmentedBarComponent\r\n */\r\n @Input() tooltipStats = false;\r\n\r\n segmentList: SegmentedBarWithPercentage[] = [];\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n calculatePercentages(segments: SegmentedBar[]): SegmentedBarWithPercentage[] {\r\n const total = segments.reduce((sum, segment) => sum + segment.value, 0);\r\n return segments.map(segment => {\r\n let percentage = (segment.value / total) * 100;\r\n let percentageLabel = '';\r\n\r\n if (percentage === 0) {\r\n percentageLabel = '0%';\r\n } else if (percentage > 0 && percentage < 1) {\r\n percentageLabel = '>1%';\r\n } else {\r\n percentageLabel = `${Math.ceil(percentage)}%`;\r\n }\r\n\r\n return { ...segment, percentage: percentageLabel };\r\n });\r\n }\r\n}\r\n","<div\r\n class=\"segmented-bar-container\"\r\n [attr.theme]=\"applicationTheme\"\r\n [ngClass]=\"'segment-size-' + size\"\r\n [style.width]=\"width\"\r\n [uiTooltipTemplate]=\"segmentedStats\"\r\n [showTooltip]=\"tooltipStats\"\r\n>\r\n <ng-container *ngFor=\"let segment of segmentList\">\r\n <div\r\n class=\"segmented-bar\"\r\n *ngIf=\"segment.value\"\r\n [ngClass]=\"segment.color\"\r\n [ngStyle]=\"{ flex: segment.value }\"\r\n [matTooltip]=\"!tooltipStats ? segment.tooltip ?? '' : ''\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-required]=\"ariaRequired\"\r\n >\r\n <ui-icon *ngIf=\"segment.icon\" [applicationTheme]=\"applicationTheme\" [name]=\"segment.icon\"></ui-icon>\r\n <span>{{ segment.value }}</span>\r\n </div>\r\n </ng-container>\r\n</div>\r\n<ng-template #segmentedStats>\r\n <div class=\"stats-container\">\r\n <div class=\"name-column\">\r\n @for (segment of segmentList; track segment.value) {\r\n <div class=\"segment\">\r\n <div [class]=\"'point ' + segment.color\"></div>\r\n <span [class]=\"'label ' + segment.color\">{{ segment.tooltip }}</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"value-column\">\r\n @for (segment of segmentList; track segment.value) {\r\n <div class=\"segment\">\r\n <span>{{ segment.value }}</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"percentage-column\">\r\n @for (segment of segmentList; track segment.value) {\r\n <div class=\"segment\">\r\n <span>{{ segment.percentage }}</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #segmentedStats>\r\n <div class=\"stats-container\">\r\n <div class=\"name-column\">\r\n @for (segment of segmentList; track segment.value) {\r\n <div class=\"segment\">\r\n <div [class]=\"'point ' + segment.color\"></div>\r\n <span [class]=\"'label ' + segment.color\">{{ segment.tooltip }}</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"value-column\">\r\n @for (segment of segmentList; track segment.value) {\r\n <div class=\"segment\">\r\n <span>{{ segment.value }}</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"percentage-column\">\r\n @for (segment of segmentList; track segment.value) {\r\n <div class=\"segment\">\r\n <span>{{ segment.percentage }}</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\r\nimport { SegmentedBarComponent } from './segmented-bar.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { IconComponentModule } from \"../icon/icon.component.module\";\r\nimport { TooltipTemplateDirective } from \"../tooltip/tooltip-template.directive\";\r\nimport { TooltipComponentModule } from \"../tooltip/tooltip.component.module\";\r\n\r\n@NgModule({\r\n declarations: [SegmentedBarComponent],\r\n imports: [CommonModule, MatTooltipModule, MatInputModule, IconComponentModule, TooltipComponentModule, TooltipTemplateDirective],\r\n exports: [SegmentedBarComponent],\r\n})\r\nexport class SegmentedBarComponentModule {}\r\n","import { booleanAttribute, Component, EventEmitter, HostBinding, Inject, Input, Optional, Output } from '@angular/core';\r\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\r\nimport { Observable } from 'rxjs';\r\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\r\n\r\n@Component({\r\n selector: 'ui-page-header',\r\n templateUrl: './page-header.component.html',\r\n styleUrls: ['./page-header.component.scss'],\r\n})\r\nexport class PageHeaderComponent {\r\n /**\r\n * Flag to determine whether the \"Back\" button should be displayed.\r\n * @default true\r\n * @memberof PageHeaderComponent\r\n */\r\n @Input({ transform: booleanAttribute }) showBackButton = true;\r\n\r\n /**\r\n * Back button tooltip for mobile variation\r\n * @property tooltip\r\n * @memberof PageHeaderComponent\r\n */\r\n @Input() tooltip = 'COMMON.BACK';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof PageHeaderComponent\r\n */\r\n @HostBinding('attr.theme')\r\n @Input()\r\n applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Event triggered when the \"Back\" button is clicked.\r\n * @memberof PageHeaderComponent\r\n */\r\n @Output() back = new EventEmitter<void>();\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n protected onBack(): void {\r\n this.back.emit();\r\n }\r\n}\r\n","<ng-container>\r\n <div class=\"page-header-container\">\r\n <div class=\"page-header-content\">\r\n @if (!(isMobile$ | async)) {\r\n @if (showBackButton) {\r\n <ui-button\r\n [applicationTheme]=\"applicationTheme\"\r\n [tooltip]=\"(('COMMON.BACK') | uiTranslate | async)!\"\r\n (click)=\"onBack()\"\r\n [ariaLabel]=\"(('COMMON.BACK') | uiTranslate | async)!\"\r\n [variant]=\"'ghost'\"\r\n [justIcon]=\"true\"\r\n [iconName]=\"applicationTheme === 'classic' ? 'Arrow_left' : 'Arrow-chevron-left-in-line'\"\r\n ></ui-button>\r\n }\r\n }\r\n @else {\r\n <ui-button\r\n [applicationTheme]=\"applicationTheme\" class=\"mobile-back-btn\" [tooltip]=\"(('COMMON.BACK') | uiTranslate | async)!\"\r\n [variant]=\"'icon-button'\"\r\n [ariaLabel]=\"(('COMMON.BACK') | uiTranslate | async)!\"\r\n (click)=\"onBack()\"\r\n [justIcon]=\"true\"\r\n [iconName]=\"applicationTheme === 'classic' ? 'Arrow_left' : 'Arrow-chevron-left-in-line'\"\r\n ></ui-button>\r\n }\r\n\r\n <div class=\"main-content\" [ngClass]=\"{ 'remove-margin': !showBackButton }\">\r\n <ng-content select=\"[content]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"right-side\">\r\n <ng-content select=\"[right-side]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PageHeaderComponent } from './page-header.component';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [PageHeaderComponent],\r\n imports: [CommonModule, ButtonComponentModule, UiTranslatePipe],\r\n exports: [PageHeaderComponent],\r\n})\r\nexport class PageHeaderModule {}\r\n","import { Component, HostBinding, Inject, Input, Optional } from '@angular/core';\r\nimport { DividerSize } from './divider.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-divider',\r\n templateUrl: './divider.component.html',\r\n styleUrls: ['./divider.component.scss'],\r\n})\r\nexport class DividerComponent {\r\n /**\r\n * Divider size\r\n *\r\n * @type {DividerSize}\r\n * @memberof DividerComponent\r\n */\r\n @Input() size: DividerSize = 'large';\r\n\r\n /**\r\n * Determines whether the checkbox color.\r\n * Default: Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof DividerComponent\r\n */\r\n @HostBinding('style.--companyColor')\r\n @Input()\r\n companyColor: string | null = '#46A997';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof DividerComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Text content in the center of the divider\r\n *\r\n * @type {string}\r\n * @memberof DividerComponent\r\n */\r\n @Input() label = '';\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n}\r\n","<div class=\"ui-divider-wrapper\">\r\n <ng-container *ngIf=\"!label; else withLabel\">\r\n <mat-divider aria-hidden=\"true\" [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\r\n </ng-container>\r\n\r\n <ng-template #withLabel>\r\n <div class=\"container\">\r\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\r\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\r\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DividerComponent } from './divider.component';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\n\r\n@NgModule({\r\n declarations: [DividerComponent],\r\n exports: [DividerComponent],\r\n imports: [CommonModule, MatDividerModule],\r\n})\r\nexport class DividerComponentModule {}\r\n","import {\r\n booleanAttribute,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n Optional,\r\n Output,\r\n signal,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Tab, TabsType } from './tabs.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { IS_MOBILE_TOKEN } from '../../providers/is-mobile';\r\nimport { Observable } from 'rxjs';\r\nimport { MatTab, MatTabChangeEvent, MatTabGroup } from '@angular/material/tabs';\r\nimport { ENTER, hasModifierKey, SPACE } from '@angular/cdk/keycodes';\r\n\r\n@Component({\r\n selector: 'ui-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.scss'],\r\n})\r\nexport class TabsComponent {\r\n /**\r\n * Color of the Tabs.\r\n * Defaults to Test Gorilla primary color.\r\n *\r\n * @type {string}\r\n * @memberof TabsComponent\r\n */\r\n @HostBinding('style.--color')\r\n @Input()\r\n companyColor: string | null = '#46A997';\r\n /**\r\n * Type the Tabs.\r\n * Defaults underlined.\r\n *\r\n * @type {TabsType}\r\n * @memberof TabsComponent\r\n */\r\n @Input() type: TabsType = 'underlined';\r\n\r\n /**\r\n * Animation duration when switching tabs\r\n *\r\n * @type {number}\r\n * @memberof TabsComponent\r\n */\r\n @Input() animationDuration = 300;\r\n\r\n /**\r\n * Sets the padding for content and header\r\n *\r\n * @type {number}\r\n * @memberof TabsComponent\r\n */\r\n @HostBinding('style.--header-content-padding')\r\n @Input({ transform: (value: number): string => value + 'px' })\r\n headerContentPadding = '32px';\r\n\r\n /**\r\n * Sets the dynamic height of the tab\r\n * @type {boolean}\r\n * @memberof TabsComponent\r\n */\r\n @Input({ transform: booleanAttribute }) dynamicHeight = true;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof TabsComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n @Output() selectedTabIndex = new EventEmitter<number>();\r\n @Output() selectedTab = new EventEmitter<Tab>();\r\n\r\n @ViewChild('tabGroup', { static: true }) tabGroup: MatTabGroup;\r\n\r\n protected tabs: Tab[] = [];\r\n readonly tabIndex = signal(0);\r\n protected tabIndexMap: Record<string, number> = {};\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n const tabHeader = (this.tabGroup as any)._tabHeader;\r\n tabHeader._handleKeydown = async (event: KeyboardEvent) => {\r\n if (hasModifierKey(event)) {\r\n return;\r\n }\r\n switch (event.keyCode) {\r\n case ENTER:\r\n case SPACE:\r\n const tabLabel = (event.target as HTMLElement).innerText;\r\n const currentTab = this.tabs[this.tabIndex()];\r\n const nextTab = this.tabs.find(tab => tab.tabLabel === tabLabel);\r\n\r\n if (!nextTab) {\r\n return;\r\n }\r\n\r\n const canLeave = (await currentTab.canLeave?.({ currentTab, nextTab })) ?? true;\r\n if (currentTab.tabName !== nextTab.tabName && canLeave) {\r\n const nextTabIndex = this.tabIndexMap[nextTab.tabName];\r\n tabHeader.focusIndex = nextTabIndex;\r\n this.tabGroup.selectedIndex = nextTabIndex;\r\n }\r\n break;\r\n default:\r\n tabHeader._keyManager.onKeydown(event);\r\n }\r\n };\r\n\r\n (this.tabGroup as any)._handleClick = async (tab: MatTab, tabHeader: any, index: number) => {\r\n const currentIndex = this.tabGroup.selectedIndex;\r\n if (tab.disabled || currentIndex === undefined || index === currentIndex) {\r\n return;\r\n }\r\n const currentTab = this.tabs[this.tabIndex()];\r\n const nextTab = this.tabs[index];\r\n const canLeave = (await currentTab.canLeave?.({ currentTab, nextTab })) ?? true;\r\n if (this.tabGroup.selectedIndex != index && canLeave) {\r\n tabHeader.focusIndex = index;\r\n this.tabGroup.selectedIndex = index;\r\n }\r\n };\r\n });\r\n }\r\n\r\n addTab(tab: Tab): void {\r\n this.tabs.push(tab);\r\n this.tabs.forEach((v, index) => (this.tabIndexMap[v.tabName] = index));\r\n }\r\n\r\n onTabChange(ev: MatTabChangeEvent): void {\r\n const selectedTab = this.tabs[ev.index];\r\n this.tabIndex.set(this.tabIndexMap[selectedTab.tabName]);\r\n this.selectedTabIndex.emit(ev.index);\r\n this.selectedTab.emit(selectedTab);\r\n }\r\n\r\n selectTab(tabName: string): void {\r\n const index = this.tabIndexMap[tabName];\r\n if (index !== undefined) {\r\n this.tabIndex.set(index);\r\n this.selectedTabIndex.emit(index);\r\n this.selectedTab.emit(this.tabs[index]);\r\n }\r\n }\r\n\r\n indexOf(tabName: string): number {\r\n return this.tabIndexMap[tabName] ?? -1;\r\n }\r\n\r\n trackByTabName(index: number, tab: Tab): string {\r\n return tab.tabName;\r\n }\r\n\r\n removeTab(tabName: string): void {\r\n const index = this.tabIndexMap[tabName];\r\n if (index !== undefined) {\r\n this.tabs.splice(index, 1);\r\n delete this.tabIndexMap[tabName];\r\n this.tabs.forEach((v, index) => (this.tabIndexMap[v.tabName] = index));\r\n }\r\n }\r\n updateTab(tabName: string, tab: Partial<Omit<Tab, 'tabName'>>): void {\r\n const index = this.tabIndexMap[tabName];\r\n if (index !== undefined) {\r\n this.tabs[index] = { ...this.tabs[index], ...tab };\r\n }\r\n }\r\n}\r\n","<mat-tab-group\r\n #tabGroup\r\n headerPosition=\"above\"\r\n class=\"tabs-container\"\r\n [ngClass]=\"'tabs-type-' + ((isMobile$ | async) ? 'underlined' : type)\"\r\n [attr.theme]=\"applicationTheme\"\r\n [dynamicHeight]=\"dynamicHeight\"\r\n [selectedIndex]=\"tabIndex()\"\r\n [animationDuration]=\"animationDuration\"\r\n (selectedTabChange)=\"onTabChange($event)\"\r\n role=\"tablist\"\r\n>\r\n <mat-tab\r\n *ngFor=\"let tab of tabs; trackBy: trackByTabName;let i = index\"\r\n [disabled]=\"tab.disabled ?? false\"\r\n [attr.aria-label]=\"tab?.ariaLabel\"\r\n >\r\n <ng-template mat-tab-label>\r\n <a\r\n data-test-role=\"tab-link\"\r\n [attr.data-testid]=\"tab.tabName\"\r\n class=\"tab-name\"\r\n [href]=\"tab?.linkUrl ? tab.linkUrl : '#'\"\r\n (click)=\"$event.preventDefault()\"\r\n [attr.aria-selected]=\"i === tabIndex()\"\r\n [attr.aria-label]=\"tab.tabLabel + (i === tabIndex() ? ', ' + ('TABS.SELECTED' | uiTranslate | async) : '')\"\r\n role=\"tab\"\r\n >\r\n <ui-icon [size]=\"'24'\" [tabindex]=\"1\" class=\"left-icon\" [name]=\"tab.iconLeft!\" *ngIf=\"tab?.iconLeft\"></ui-icon>\r\n <span class=\"label\">{{ tab.tabLabel }}</span>\r\n <ui-icon\r\n [size]=\"'24'\"\r\n class=\"right-icon\"\r\n [name]=\"tab.iconRight!\"\r\n *ngIf=\"tab?.iconRight\"\r\n ></ui-icon>\r\n </a>\r\n </ng-template>\r\n <div\r\n role=\"tabpanel\"\r\n [attr.id]=\"'tabpanel-' + i\"\r\n [attr.aria-labelledby]=\"'tab-' + i\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"tab.contentTemplateRef\"></ng-container>\r\n </div>\r\n </mat-tab>\r\n</mat-tab-group>\r\n","import { booleanAttribute, DestroyRef, Directive, effect, inject, input, OnInit, TemplateRef } from '@angular/core';\r\nimport { IconName } from '../icon/icon.model';\r\nimport { TabsComponent } from './tabs.component';\r\nimport { Tab } from './tabs.model';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: 'ng-template[uiTab]',\r\n})\r\nexport class TabDirective implements OnInit {\r\n tabLabel = input.required<string>();\r\n tabName = input.required<string>();\r\n iconLeft = input<IconName>();\r\n iconRight = input<IconName>();\r\n disabled = input<boolean, string>(false, { transform: booleanAttribute });\r\n canLeave = input<(ctx?: { currentTab: Tab; nextTab: Tab }) => boolean | Promise<boolean>>();\r\n linkUrl = input<string>();\r\n\r\n private tabsComponent = inject(TabsComponent);\r\n private template = inject(TemplateRef);\r\n\r\n private syncProps = effect(() => {\r\n this.tabsComponent.updateTab(this.tabName(), {\r\n tabLabel: this.tabLabel(),\r\n iconLeft: this.iconLeft(),\r\n iconRight: this.iconRight(),\r\n disabled: this.disabled(),\r\n canLeave: this.canLeave(),\r\n linkUrl: this.linkUrl(),\r\n });\r\n });\r\n\r\n private cleanup = inject(DestroyRef).onDestroy(() => {\r\n this.tabsComponent.removeTab(this.tabName());\r\n });\r\n\r\n ngOnInit(): void {\r\n this.addTab();\r\n }\r\n\r\n private addTab(): void {\r\n this.tabsComponent.addTab({\r\n tabLabel: this.tabLabel(),\r\n tabName: this.tabName(),\r\n iconLeft: this.iconLeft(),\r\n iconRight: this.iconRight(),\r\n disabled: this.disabled(),\r\n contentTemplateRef: this.template,\r\n canLeave: this.canLeave(),\r\n linkUrl: this.linkUrl(),\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TabsComponent } from './tabs.component';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { TabDirective } from './tab.directive';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [TabsComponent],\r\n imports: [TabDirective, CommonModule, MatTabsModule, IconComponentModule, UiTranslatePipe],\r\n exports: [TabsComponent, TabDirective],\r\n})\r\nexport class TabsComponentModule {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnInit,\r\n Optional,\r\n Output,\r\n QueryList,\r\n signal,\r\n ViewChild,\r\n ViewChildren,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { IconName } from '../icon/icon.model';\r\nimport { OverflowMenuButtonModify, OverflowMenuButtonsType } from './overflow-menu.model';\r\nimport { ApplicationTheme } from \"../../models/application-theme.model\";\r\nimport { MatMenu, MatMenuTrigger } from \"@angular/material/menu\";\r\nimport { FocusMonitor } from \"@angular/cdk/a11y\";\r\n\r\n@Component({\r\n selector: 'ui-overflow-menu',\r\n templateUrl: './overflow-menu.component.html',\r\n styleUrls: ['./overflow-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n\r\n})\r\nexport class OverflowMenuComponent implements OnInit {\r\n /**\r\n * Menu buttons\r\n *\r\n * @type {OverflowMenuButtonsType[]}\r\n * @memberof OverflowMenuComponent\r\n */\r\n @Input() buttons: OverflowMenuButtonsType[];\r\n\r\n /**\r\n * Menu icon trigger\r\n *\r\n * @memberof OverflowMenuComponent\r\n */\r\n @Input() iconTrigger: IconName = 'Menu-ellipsis';\r\n\r\n /**\r\n * Label menu\r\n *\r\n * @memberof OverflowMenuComponent\r\n */\r\n @Input() menuLabel = '';\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof OverflowMenuComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * A string representing the ARIA label for accessibility.\r\n * This label is used to provide an accessible name for the input element.\r\n * @type {string}\r\n * @memberof OverflowMenuComponent\r\n */\r\n @Input() ariaLabel: string;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {boolean}\r\n * @memberof OverflowMenuComponent\r\n */\r\n @Input() ariaRequired = false;\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input for description.\r\n * @type {text}\r\n * @memberof OverflowMenuComponent\r\n */\r\n @Input() describedby = '';\r\n\r\n @Output() selectItem: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output() menuOpened = new EventEmitter<void>();\r\n\r\n @Output() menuClosed = new EventEmitter<void>();\r\n\r\n @ViewChildren(MatMenu) matmenus: QueryList<MatMenu>\r\n @ViewChildren(MatMenuTrigger) matTrigger: QueryList<MatMenuTrigger>\r\n @ViewChild('buttonElement') buttonElement: any;\r\n\r\n menuItems: string[] = []\r\n submenus: Array<OverflowMenuButtonModify[]> = []\r\n\r\n isMenuRendered = signal(false);\r\n isMenuOpened = signal(false);\r\n isFocused = signal(false);\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private focusMonitor: FocusMonitor,\r\n private ngZone: NgZone,\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.createSubmenus(this.buttons, \"s0\", 1)\r\n this.reindex()\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.isMenuRendered.set(true);\r\n\r\n setTimeout(() => {\r\n this.focusMonitor.monitor(this.buttonElement).subscribe(origin => this.ngZone.run(() => {\r\n if (origin === 'keyboard') {\r\n this.isFocused.set(true);\r\n } else {\r\n if (!this.isMenuOpened()) {\r\n this.isFocused.set(false);\r\n }\r\n }\r\n }));\r\n }, 300);\r\n }\r\n\r\n onSelectItem(event: Event, value: string) {\r\n if (!!value) {\r\n this.selectItem.emit(value);\r\n }\r\n }\r\n\r\n onMenuOpened(): void {\r\n this.menuOpened.emit();\r\n this.isMenuOpened.set(true);\r\n\r\n if (this.isFocused()) {\r\n setTimeout(() => {\r\n this.matmenus.first._allItems.first.focus('keyboard');\r\n }, 300)\r\n }\r\n }\r\n\r\n onMenuClosed(): void {\r\n this.isMenuOpened.set(false);\r\n this.menuClosed.emit();\r\n }\r\n\r\n onButtonFocus(button: OverflowMenuButtonModify) {\r\n button.isFocused = true;\r\n }\r\n\r\n onButtonBlur(button: OverflowMenuButtonModify) {\r\n button.isFocused = false;\r\n }\r\n\r\n onButtonClick(button: OverflowMenuButtonModify, $event: Event) {\r\n if (button.disabled) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n } else {\r\n this.onSelectItem($event, button.value);\r\n }\r\n }\r\n\r\n getMenu(index: any) {\r\n return index >= 0 && this.matmenus ? this.matmenus.find((x, i) => i == index)! : null\r\n }\r\n\r\n private reindex() {\r\n this.submenus.forEach((menu: OverflowMenuButtonsType[]) => {\r\n menu.forEach((item: OverflowMenuButtonsType, index: number) => {\r\n if (item.subMenu !== -1)\r\n item.subMenu = this.menuItems.indexOf(item.action + '')\r\n })\r\n })\r\n }\r\n\r\n private createSubmenus(menu: OverflowMenuButtonsType[], prefix: string, count: number): void {\r\n this.menuItems.push(prefix);\r\n this.submenus.push(\r\n menu.map((item: OverflowMenuButtonsType, index: number) => {\r\n return (\r\n {\r\n label: item.label,\r\n icon: item.icon,\r\n isDestructive: item.isDestructive,\r\n value: item.value,\r\n disabled: item.disabled,\r\n btnTemplate: item.btnTemplate,\r\n subMenu: item.subMenu ? 0 : -1,\r\n action: item.action ? item.action : prefix+index\r\n }\r\n )\r\n })\r\n );\r\n\r\n menu.forEach((item: OverflowMenuButtonsType, index: number) => {\r\n if (item.subMenu) {\r\n this.createSubmenus((item as { subMenu: OverflowMenuButtonsType[] }).subMenu, prefix + index, count + 1);\r\n }\r\n })\r\n }\r\n\r\n onSubmenuOpened(): void {\r\n this.isMenuOpened.set(!this.isMenuOpened);\r\n if (this.isFocused()) {\r\n setTimeout(() => {\r\n this.matmenus.last._allItems.first.focus('keyboard');\r\n }, 300);\r\n }\r\n }\r\n}\r\n","<div class=\"overflow-menu-container\" [attr.theme]=\"applicationTheme\">\r\n\r\n <button\r\n #buttonElement\r\n mat-icon-button\r\n *ngIf=\"isMenuRendered()\"\r\n [matMenuTriggerFor]=\"matmenus.first\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-required]=\"ariaRequired\"\r\n [attr.aria-describedby]=\"'describedby'\"\r\n [attr.aria-haspopup]=\"true\"\r\n [attr.aria-expanded]=\"isMenuOpened()\"\r\n (menuOpened)=\"onMenuOpened()\"\r\n (menuClosed)=\"onMenuClosed()\"\r\n class=\"overflow-menu-opener\"\r\n [matTooltip]=\"menuLabel\"\r\n >\r\n <span [id]=\"'describedby'\" [style.display]=\"'none'\">{{ describedby }}</span>\r\n <ui-icon\r\n [name]=\"iconTrigger\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [size]=\"'24'\"\r\n [color]=\"'rebrand-black'\"\r\n ></ui-icon>\r\n </button>\r\n\r\n @for (menu of submenus; track menu) {\r\n <mat-menu #matMenu class=\"overflow-menu\" [overlapTrigger]=\"false\" backdropClass=\"overflow-menu-backdrop\">\r\n <ng-container *ngFor=\"let button of menu; index as id\">\r\n <ng-container\r\n *ngIf=\"button.btnTemplate; else uiButton\"\r\n [ngTemplateOutlet]=\"button.btnTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: button }\"\r\n ></ng-container>\r\n\r\n <ng-template #uiButton>\r\n <button\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"getMenu(button.subMenu)\"\r\n (menuOpened)=\"onSubmenuOpened()\"\r\n (focus)=\"onButtonFocus(button);\"\r\n (blur)=\"onButtonBlur(button)\"\r\n [ngClass]=\"{ 'is-destructive': button.isDestructive, disabled: button.disabled }\"\r\n [disableRipple]=\"true\"\r\n (click)=\"onButtonClick(button, $event)\"\r\n [matTooltip]=\"button.isTextEllipsed ? button.label : ''\"\r\n [attr.aria-labelledby]=\"'labelledby-' + button.label + id\"\r\n [attr.aria-describedby]=\"'describedby-' + button.label + id\"\r\n [attr.aria-label]=\"button.ariaLabel || null\"\r\n role=\"menuitem\"\r\n matTooltipPosition=\"right\"\r\n >\r\n <span\r\n [id]=\"'describedby-' + button.label + id\"\r\n [style.display]=\"'none'\"\r\n >\r\n {{ button.disabled ? ('MENU.MENUITEM_DISABLED' | uiTranslate | async) + ' ' + (button.describedby || '') : button.describedby }}\r\n </span>\r\n <ui-icon\r\n [name]=\"button.icon\"\r\n [filled]=\"button.disabled ? false : !!button.isFocused\"\r\n [applicationTheme]=\"applicationTheme\"\r\n [size]=\"'24'\"\r\n [color]=\"button.isDestructive ? 'red' : button.disabled ? 'dark' : 'rebrand-black'\"\r\n ></ui-icon>\r\n <span\r\n [id]=\"'labelledby-' + button.label + id\"\r\n class=\"label\"\r\n uiEllipseText\r\n [refresh]=\"isMenuOpened()\"\r\n [maxDiffPixels]=\"1\"\r\n [isMultiline]=\"true\"\r\n (onChangeTextState)=\"button.isTextEllipsed = $event\"\r\n >{{ button.label }}</span>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-content select=\"[menu-content]\"></ng-content>\r\n\r\n </mat-menu>\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 { ButtonComponentModule } from '../button/button.component.module';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { OverflowMenuComponent } from './overflow-menu.component';\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { EllipseTextDirective } from \"../../directives/ellipse-text.directive\";\r\nimport { UiTranslatePipe } from \"../../pipes/ui-translate.pipe\";\r\n\r\n@NgModule({\r\n declarations: [OverflowMenuComponent],\r\n imports: [CommonModule, ButtonComponentModule, IconComponentModule, MatMenuModule, MatButtonModule, MatTooltipModule, EllipseTextDirective, UiTranslatePipe],\r\n exports: [OverflowMenuComponent],\r\n})\r\nexport class OverflowMenuComponentModule {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Inject,\r\n Input,\r\n Optional,\r\n Output\r\n} from '@angular/core';\r\nimport { SegmentedButton } from './segmented-button.model';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\n\r\n@Component({\r\n selector: 'ui-segmented-button',\r\n templateUrl: './segmented-button.component.html',\r\n styleUrls: ['./segmented-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SegmentedButtonComponent),\r\n multi: true,\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SegmentedButtonComponent implements ControlValueAccessor {\r\n /**\r\n * Input property to set the buttons for the segmented button.\r\n * @type SegmentedButton\r\n * @memberof SegmentedButtonComponent\r\n */\r\n @Input({ required: true }) buttonConfig: SegmentedButton[];\r\n\r\n /**\r\n * Whether the component is disabled.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof SegmentedButtonComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Indicator of the Segmented Button width\r\n *\r\n * @memberof SegmentedButtonComponent\r\n */\r\n @Input() fullWidth = false;\r\n\r\n /**\r\n * Selected button\r\n *\r\n * @memberof SegmentedButtonComponent\r\n */\r\n @Input() set value(v: any) {\r\n this._value = v;\r\n this.onChange(v);\r\n }\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof SegmentedButtonComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n @Output() buttonSelected = new EventEmitter<any>();\r\n\r\n protected _value: any;\r\n\r\n get value(): any {\r\n return this._value;\r\n }\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n onChange = (v: any) => {};\r\n onTouch = () => {};\r\n\r\n writeValue(obj: any): void {\r\n this.value = obj;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n manualChangeValue({ value }: any) {\r\n this.value = value;\r\n this.buttonSelected.emit(value);\r\n }\r\n}\r\n","<mat-button-toggle-group\r\n class=\"segmented-button-container\"\r\n [attr.theme]=\"applicationTheme\"\r\n [ngClass]=\"{ disabled, 'full-width': fullWidth }\"\r\n [value]=\"value\"\r\n (change)=\"manualChangeValue($event)\"\r\n>\r\n <mat-button-toggle\r\n [disableRipple]=\"true\"\r\n *ngFor=\"let button of buttonConfig\"\r\n [value]=\"button.value\"\r\n [ngClass]=\"{ disabled: button.disabled }\"\r\n [matTooltip]=\"button.tooltip ?? ''\"\r\n >\r\n <ng-container *ngIf=\"button.template; else label\" [ngTemplateOutlet]=\"button.template\"></ng-container>\r\n <ng-template #label>{{ button.label }}</ng-template>\r\n </mat-button-toggle>\r\n</mat-button-toggle-group>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SegmentedButtonComponent } from './segmented-button.component';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n declarations: [SegmentedButtonComponent],\r\n exports: [SegmentedButtonComponent],\r\n imports: [CommonModule, MatButtonToggleModule, FormsModule, MatTooltipModule],\r\n})\r\nexport class SegmentedButtonComponentModule {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ui-password-criteria',\r\n templateUrl: './password.component.html',\r\n styleUrls: ['./password.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PasswordComponent),\r\n multi: true,\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PasswordComponent implements ControlValueAccessor {\r\n\r\n /**\r\n * Show criteria for password. Defaults true\r\n *\r\n * @type {boolean}\r\n * @memberof PasswordComponent\r\n */\r\n @Input() showCriteria = true;\r\n\r\n /**\r\n * Password is required or not\r\n *\r\n * @type {boolean}\r\n * @memberof PasswordComponent\r\n */\r\n @Input() required = false;\r\n\r\n @Output() passwordChange = new EventEmitter<string>();\r\n\r\n @Output() allCriteriaPassed = new EventEmitter<boolean>();\r\n\r\n @ViewChild('requiredCriteria') requiredCriteria: ElementRef<HTMLElement>;\r\n\r\n protected formControl = new FormControl('', Validators.required);\r\n protected criteriaPassed: { [key: string]: boolean } = {};\r\n protected showError: boolean;\r\n protected progressValue: number;\r\n protected criteria: { translateKey: string; key: string }[] = [\r\n { translateKey: 'PASSWORD.LOWERCASE', key: 'hasLowercase' },\r\n { translateKey: 'PASSWORD.UPPERCASE', key: 'hasUppercase' },\r\n { translateKey: 'PASSWORD.NUMBER', key: 'hasNumber' },\r\n { translateKey: 'PASSWORD.SPECIAL_CHARACTER', key: 'hasSpecialChar' },\r\n { translateKey: 'PASSWORD.CHARACTERS', key: 'hasMinLength' },\r\n ];\r\n\r\n constructor(\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n this.formControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\r\n this.checkCriteria();\r\n });\r\n }\r\n\r\n checkCriteria(): void {\r\n const password = this.formControl.value ?? '';\r\n this.criteriaPassed = {\r\n hasLowercase: /^(?=.*?[a-z])/.test(password),\r\n hasUppercase: /^(?=.*?[A-Z])/.test(password),\r\n hasNumber: /^(?=.*?[0-9])/.test(password),\r\n hasSpecialChar: /^(?=.*?[\" !#$%&'()*+,-./:;<=>?@[\\]^_`{|}~])/.test(password),\r\n hasMinLength: password.length >= 12,\r\n };\r\n\r\n const passedCount = this.countPassed();\r\n this.progressValue = Math.min(Math.max(passedCount * (100 / Object.keys(this.criteriaPassed).length), 1), 100);\r\n this.passwordChange.emit(password);\r\n this.allCriteriaPassed.emit(passedCount === Object.keys(this.criteriaPassed).length);\r\n this.onChange(password);\r\n }\r\n\r\n countPassed(): number {\r\n let count = 0;\r\n for (const key in this.criteriaPassed) {\r\n if (this.criteriaPassed.hasOwnProperty(key) && this.criteriaPassed[key]) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n }\r\n onChange = (v: any) => {};\r\n onTouch = () => {};\r\n\r\n writeValue(obj: any): void {\r\n this.formControl.setValue(obj);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n get allRequirementsMet(): boolean {\r\n return this.countPassed() === Object.keys(this.criteriaPassed).length && !!this.countPassed();\r\n }\r\n}\r\n","<div class=\"password-criteria-container\">\r\n\r\n <ui-field [applicationTheme]=\"'dark'\"\r\n [formControl]=\"formControl\"\r\n [ariaLabel]=\"requiredCriteria?.nativeElement?.innerText ?? ''\"\r\n [type]=\"'password'\"\r\n [placeholder]=\"('PASSWORD.PASSWORD_PLACEHOLDER' | uiTranslate | async) + (required ? ' *' : '')\"\r\n (keydown.enter)=\"showError = true\"\r\n (focusout)=\"showError = true\"\r\n ></ui-field>\r\n\r\n <div class=\"criteria-container\" *ngIf=\"showCriteria\" #requiredCriteria>\r\n\r\n <div class=\"progress\">\r\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"'dark'\"></ui-progress-bar>\r\n </div>\r\n\r\n <span *ngIf=\"allRequirementsMet\" style=\"position: absolute; left: -9999px\" [attr.aria-live]=\"'polite'\">{{ 'FIELD.ALL_PASSWORD_REQ_PASSED' | uiTranslate | async }}</span>\r\n\r\n <div\r\n *ngFor=\"let criterion of criteria\"\r\n class=\"criterion\"\r\n [attr.aria-live]=\"!allRequirementsMet ? 'polite' : ''\"\r\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] && showError }\"\r\n >\r\n <ui-icon [size]=\"'24'\"\r\n [color]=\"'rebrand-black'\"\r\n [name]=\"!criteriaPassed[criterion.key] && showError ? 'Info-in-line' : 'Check-round-in-line'\"\r\n applicationTheme=\"dark\"\r\n ></ui-icon>\r\n <span>{{ criterion.translateKey | uiTranslate | async }}</span>\r\n <span style=\"position: absolute; left: -9999px\">{{ (criteriaPassed[criterion.key] ? ('COMMON.PASSED') : ('COMMON.FAILED')) | uiTranslate | async }}</span>\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 { PasswordComponent } from './password.component';\r\nimport { FieldComponentModule } from '../field/field.component.module';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [PasswordComponent],\r\n exports: [PasswordComponent],\r\n imports: [\r\n CommonModule,\r\n FieldComponentModule,\r\n ReactiveFormsModule,\r\n IconComponentModule,\r\n ProgressBarComponentModule,\r\n UiTranslatePipe,\r\n ],\r\n})\r\nexport class PasswordComponentModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'joinStrings' })\r\nexport class JoinStringsPipe implements PipeTransform {\r\n transform(value: string[], separator?: string): string {\r\n return value.filter(Boolean).join(separator ? separator : ' - ');\r\n }\r\n}\r\n","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DoCheck,\r\n ElementRef,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NgControl,\r\n UntypedFormBuilder,\r\n UntypedFormControl,\r\n UntypedFormGroup,\r\n} from '@angular/forms';\r\nimport { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { parsePhoneNumber } from 'libphonenumber-js';\r\nimport {\r\n BehaviorSubject,\r\n combineLatest,\r\n debounceTime,\r\n delay,\r\n filter,\r\n first,\r\n map,\r\n Observable,\r\n startWith,\r\n Subject,\r\n take,\r\n tap,\r\n} from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { UICountry } from './phone-input.model';\r\n\r\n@Component({\r\n selector: 'ui-phone-input',\r\n templateUrl: './phone-input.component.html',\r\n styleUrls: ['./phone-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,\r\n useValue: { overlayPanelClass: 'phone-number-autocomplete' },\r\n },\r\n ],\r\n})\r\nexport class PhoneInputComponent implements OnInit, OnDestroy, ControlValueAccessor, DoCheck {\r\n /**\r\n * Phone number\r\n *\r\n * @type {string}\r\n * @memberof PhoneInputComponent\r\n */\r\n @Input()\r\n set value(value: string) {\r\n this.initialValue = this.initialValue || value;\r\n try {\r\n const parsed = parsePhoneNumber(value);\r\n const formatted = parsed.formatInternational();\r\n this.selectedCountry = this.getCountryByAlpha2Code(parsed.country!) || this.selectedCountry;\r\n this.form.patchValue({ phone_number: formatted.replace(this.selectedCountry.callingCode, '') });\r\n } catch (err) {\r\n if (value?.length <= 4) {\r\n this.selectedCountry = this.getCountryByCallingCode(value) || this.selectedCountry;\r\n }\r\n this.form.patchValue({ phone_number: value?.replace(this.selectedCountry?.callingCode, '') });\r\n }\r\n this.stateChanges.next();\r\n }\r\n\r\n /**\r\n * Country list for select\r\n *\r\n * @type {UICountry[]}\r\n * @memberof PhoneInputComponent\r\n */\r\n @Input() set countryList(countryList: UICountry[]) {\r\n this.loadCountries$.next(countryList);\r\n this.selectedCountry = this.selectedCountry ?? countryList[0];\r\n }\r\n\r\n /**\r\n * Placeholder input\r\n *\r\n * @type {text}\r\n * @memberof PhoneInputComponent\r\n */\r\n @Input()\r\n set placeholder(value: string) {\r\n this.internalPlaceholder = value;\r\n this.stateChanges.next();\r\n }\r\n\r\n /**\r\n * Determines if input is disabled\r\n *\r\n * @type {boolean}\r\n * @memberof PhoneInputComponent\r\n */\r\n @HostBinding('attr.disabled')\r\n @Input()\r\n disabled: boolean;\r\n\r\n /**\r\n * Input is required or not\r\n *\r\n * @type {boolean}\r\n * @memberof PhoneInputComponent\r\n */\r\n @Input() required: boolean;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof PhoneInputComponent\r\n */\r\n @HostBinding('attr.theme')\r\n @Input()\r\n applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * Indicator of the phone input width\r\n * @property fullWidth\r\n * @type {boolean}\r\n * @memberof PhoneInputComponent\r\n */\r\n @Input() fullWidth = false;\r\n\r\n _errors: SafeHtml[];\r\n /**\r\n * Input field errors\r\n *\r\n * @type {string}\r\n * @memberof PhoneInputComponent\r\n */\r\n @Input() set errors(errors: string[]) {\r\n if (errors) {\r\n this._errors = errors?.filter(Boolean).map(error => this.sanitizer.bypassSecurityTrustHtml(error));\r\n this.errorsLength = this.setErrorsLength();\r\n }\r\n }\r\n\r\n /**\r\n * Hide in build errors for Reactive Forms\r\n *\r\n * @type {number}\r\n * @memberof PhoneInputComponent\r\n */\r\n @Input() hideBuiltInErrors = false;\r\n\r\n /**\r\n * Hide label in errors\r\n *\r\n * @type {number}\r\n * @memberof PhoneInputComponent\r\n */\r\n @Input() hideLabelInErrors = false;\r\n\r\n static nextId = 0;\r\n\r\n private countries = new BehaviorSubject<UICountry[]>([]);\r\n protected countries$ = this.countries.asObservable();\r\n form: UntypedFormGroup = this.fb.group({\r\n phone_number: new UntypedFormControl(),\r\n });\r\n protected controlType = 'phone-number';\r\n protected userAriaDescribedBy?: string;\r\n protected loadCountries$ = new BehaviorSubject<UICountry[]>([]);\r\n protected countryCode = new BehaviorSubject<string>('US');\r\n protected stateChanges = new Subject<void>();\r\n protected focused: boolean;\r\n protected selectFilterCtrl = new UntypedFormControl('');\r\n protected errorsLength: boolean;\r\n protected readonly countryFlagSrc = 'assets/svg-country-flags/';\r\n\r\n @ViewChild(MatInput, { read: ElementRef, static: true })\r\n public input: ElementRef<HTMLElement>;\r\n @ViewChild(MatSelect, { read: ElementRef, static: true })\r\n public select: ElementRef<HTMLElement>;\r\n\r\n @HostBinding()\r\n id = `phone-number${PhoneInputComponent.nextId++}`;\r\n\r\n @HostBinding('class.floated')\r\n get shouldLabelFloat(): boolean {\r\n return true;\r\n }\r\n\r\n @HostBinding('attr.aria-describedby') describedBy = '';\r\n\r\n get empty(): boolean {\r\n return !!this.form.value;\r\n }\r\n\r\n get errorState(): boolean {\r\n return this.errorMatcher.isErrorState(this.ngControl.control as UntypedFormControl, null);\r\n }\r\n\r\n get value(): string {\r\n return this.getNumberWithCountryCode();\r\n }\r\n\r\n get placeholder() {\r\n return this.internalPlaceholder;\r\n }\r\n\r\n private initialValue: string;\r\n private readonly DEFAULT_COUNTRY_CODE = 'US';\r\n private internalPlaceholder: string;\r\n protected selectedCountry: UICountry;\r\n private unsubscribeAll$ = new Subject<void>();\r\n\r\n constructor(\r\n @Optional() @Self() public ngControl: NgControl,\r\n private errorMatcher: ErrorStateMatcher,\r\n private fb: UntypedFormBuilder,\r\n private focusMonitor: FocusMonitor,\r\n private ref: ChangeDetectorRef,\r\n private sanitizer: DomSanitizer,\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n /**\r\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\r\n * to display validation errors that might happen (e.g. required)\r\n */\r\n ngDoCheck(): void {\r\n if (this.ngControl?.touched || this.ngControl?.errors) {\r\n this.ref.markForCheck();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadCountries();\r\n this.preSelectCountry();\r\n this.subscribeToFocusEvents();\r\n }\r\n\r\n setErrorsLength(): boolean {\r\n if (!!this._errors) {\r\n return this._errors.filter(err => !!err).length > 0;\r\n }\r\n return false;\r\n }\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n this.userAriaDescribedBy = ids.join(' ');\r\n }\r\n\r\n onChange: (value: string) => void;\r\n onTouch: () => void;\r\n\r\n writeValue(phoneNumber: string): void {\r\n if (phoneNumber) {\r\n this.value = phoneNumber;\r\n }\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.form.disable();\r\n } else {\r\n this.form.enable();\r\n }\r\n this.disabled = isDisabled;\r\n this.stateChanges.next();\r\n this.ref.markForCheck();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.focusMonitor.stopMonitoring(this.input);\r\n this.focusMonitor.stopMonitoring(this.select);\r\n this.stateChanges.complete();\r\n this.unsubscribeAll$.next();\r\n this.unsubscribeAll$.complete();\r\n }\r\n\r\n onOptionsSelected(value: UICountry) {\r\n this.setCountry(value);\r\n }\r\n\r\n onInput(value: string) {\r\n this.value = (this.selectedCountry?.callingCode ?? '') + value;\r\n this.onChange(this.value);\r\n }\r\n\r\n filteredCountryTrackByMethod(index: number, el: UICountry): string {\r\n return el.alpha2Code;\r\n }\r\n\r\n private getNumberWithCountryCode() {\r\n const nationalNumber = this.form.value?.phone_number as string;\r\n return nationalNumber ? (this.selectedCountry?.callingCode ?? '') + nationalNumber : '';\r\n }\r\n\r\n private subscribeToFocusEvents() {\r\n const selectAndInputFocus$ = combineLatest([\r\n this.focusMonitor.monitor(this.select),\r\n this.focusMonitor.monitor(this.input),\r\n ]).pipe(takeUntil(this.unsubscribeAll$), debounceTime(10));\r\n\r\n selectAndInputFocus$.subscribe(([selectFocus, inputFocus]) => {\r\n this.focused = !!(selectFocus || inputFocus);\r\n this.stateChanges.next();\r\n });\r\n\r\n selectAndInputFocus$.pipe(take(1)).subscribe(() => {\r\n this.onTouch();\r\n });\r\n }\r\n\r\n private preSelectCountry() {\r\n this.setDisabledState(true);\r\n combineLatest([\r\n this.countries$.pipe(\r\n filter(countries => countries.length > 0),\r\n first()\r\n ),\r\n this.countryCode,\r\n ])\r\n .pipe(\r\n map(([countries, selectedCountry]) => {\r\n if (!this.initialValue) {\r\n const country =\r\n this.getCountryByAlpha2Code(selectedCountry) || this.getCountryByAlpha2Code(this.DEFAULT_COUNTRY_CODE);\r\n this.setCountry(country as UICountry);\r\n } else {\r\n this.value = this.initialValue;\r\n }\r\n\r\n this.setDisabledState(false);\r\n this.ref.markForCheck();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private setCountry(country: UICountry | null): void {\r\n if (country) {\r\n this.selectedCountry = country;\r\n }\r\n this.value = this.getNumberWithCountryCode();\r\n }\r\n\r\n private getCountryByAlpha2Code(alpha2Code: string) {\r\n return this.countries.value.find(country => country.alpha2Code === alpha2Code);\r\n }\r\n\r\n private getCountryByCallingCode(callingCode: string) {\r\n return this.countries.value.find(country => country.callingCode === callingCode);\r\n }\r\n\r\n private loadCountries(): void {\r\n const searchText$: Observable<string> = this.selectFilterCtrl.valueChanges.pipe(debounceTime(100), startWith(''));\r\n\r\n combineLatest([this.loadCountries$, searchText$])\r\n .pipe(\r\n takeUntil(this.unsubscribeAll$),\r\n tap(([countries, searchText]) => {\r\n const searchTextLowerCase = searchText.toLowerCase();\r\n const filteredCountries = countries\r\n .filter(\r\n option =>\r\n option.name.toLowerCase().includes(searchTextLowerCase) ||\r\n option.alpha2Code.toLowerCase().includes(searchTextLowerCase) ||\r\n option.callingCode.toLowerCase().includes(searchTextLowerCase)\r\n )\r\n .sort((optionA, optionB) => (optionB.name.startsWith(searchText) ? 1 : -1));\r\n this.countries.next(filteredCountries);\r\n }),\r\n delay(1),\r\n tap(() => {\r\n const countryFound = this.getCountryByAlpha2Code(this.selectedCountry?.alpha2Code);\r\n this.selectedCountry = countryFound || this.selectedCountry;\r\n this.ref.markForCheck();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n disableClick(ev: Event) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n trackByFn = (index: number, value: any) => value.changingThisBreaksApplicationSecurity;\r\n}\r\n","<mat-form-field\r\n [formGroup]=\"form\"\r\n appearance=\"outline\"\r\n [color]=\"(errorsLength || (ngControl?.errors && ngControl?.touched )) ? 'warn' : 'accent'\"\r\n [ngClass]=\"{ disabled: form.disabled || disabled, 'full-width': fullWidth }\"\r\n>\r\n <mat-label>{{ 'COMMON.PHONE_NUMBER' | uiTranslate | async }} <span *ngIf=\"required\">*</span></mat-label>\r\n\r\n <div matPrefix class=\"country\">\r\n <button class=\"selected-flag\" matPrefix *ngIf=\"selectedCountry\">\r\n <img [height]=\"20\" [width]=\"24\" [attr.src]=\"countryFlagSrc + selectedCountry?.alpha2Code?.toLowerCase() + '.svg'\"\r\n [alt]=\"'Country flag ' + selectedCountry?.alpha2Code?.toLowerCase()\">\r\n </button>\r\n <mat-select\r\n #select\r\n (selectionChange)=\"onOptionsSelected($event.value)\"\r\n [value]=\"selectedCountry\"\r\n [disableOptionCentering]=\"true\"\r\n [panelClass]=\"'phone-number-select' + ' ' + applicationTheme\"\r\n [ngClass]=\"{ opened: select.panelOpen }\"\r\n >\r\n <mat-select-trigger>{{ selectedCountry?.callingCode }}</mat-select-trigger>\r\n <mat-option>\r\n <ngx-mat-select-search\r\n [formControl]=\"selectFilterCtrl\"\r\n ngDefaultControl\r\n placeholderLabel=\"\"\r\n noEntriesFoundLabel=\"\"\r\n >\r\n <ui-icon ngxMatSelectSearchClear size=\"24\" [name]=\"'Close-in-line'\"></ui-icon>\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngFor=\"let country of countries$ | async; trackBy: filteredCountryTrackByMethod\" [value]=\"country\">\r\n <div class=\"country-option\">\r\n <img [height]=\"20\" [width]=\"24\" [attr.src]=\"countryFlagSrc + country?.alpha2Code?.toLowerCase()! + '.svg'\"\r\n [alt]=\"'Country flag ' + country?.alpha2Code?.toLowerCase()!\">\r\n <small>{{ $any([country?.name, '(' + country?.callingCode + ')']) | joinStrings : ' ' }}</small>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n <input\r\n (input)=\"onInput(form.get('phone_number')!.value)\"\r\n formControlName=\"phone_number\"\r\n (click)=\"disableClick($event)\"\r\n [ngStyle]=\"{ opacity: disabled ? 0.5 : 1 }\"\r\n [required]=\"required\"\r\n matInput\r\n type=\"text\"\r\n />\r\n\r\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\r\n <ng-container *ngIf=\"errorsLength\">\r\n <div class=\"errors\" *ngFor=\"let error of _errors; trackBy: trackByFn\">\r\n <ui-icon [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\r\n <span [innerHTML]=\"error\"></span>\r\n </div>\r\n </ng-container>\r\n\r\n <ui-validation-error *ngIf=\"ngControl && !hideBuiltInErrors\" [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : ('COMMON.PHONE_NUMBER' | uiTranslate | async)\"></ui-validation-error>\r\n\r\n </mat-hint>\r\n</mat-form-field>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PhoneInputComponent } from './phone-input.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { JoinStringsPipe } from './join-strings.pipe';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { SpinnerComponentModule } from '../spinner/spinner.module';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\r\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\r\n\r\n@NgModule({\r\n declarations: [PhoneInputComponent, JoinStringsPipe],\r\n exports: [PhoneInputComponent],\r\n imports: [\r\n CommonModule,\r\n MatProgressSpinnerModule,\r\n ReactiveFormsModule,\r\n MatSelectModule,\r\n MatIconModule,\r\n MatInputModule,\r\n NgxMatSelectSearchModule,\r\n IconComponentModule,\r\n SpinnerComponentModule,\r\n UiTranslatePipe,\r\n ValidationErrorModule,\r\n HasValidationErrorPipe,\r\n ],\r\n})\r\nexport class PhoneInputComponentModule {}\r\n","export enum Color {\r\n // Teal colors\r\n TGO_TEAL_60B = '#1C443C',\r\n TGO_TEAL_30B = '#31766A',\r\n TGO_TEAL_DEFAULT = '#46A997',\r\n TGO_TEAL_30W = '#7EC3B6',\r\n TGO_TEAL_60W = '#B5DDD5',\r\n TGO_TEAL_SECONDARY = '#CBD6CB',\r\n TGO_TEAL_90W = '#ECF6F5',\r\n\r\n // Petrol colors\r\n TGO_PETROL_60B = '#102930',\r\n TGO_PETROL_30B = '#1B4754',\r\n TGO_PETROL_DEFAULT = '#276678',\r\n TGO_PETROL_30W = '#6894A0',\r\n TGO_PETROL_60W = '#A9C2C9',\r\n TGO_PETROL_SECONDARY = '#C8D7DE',\r\n TGO_PETROL_90W = '#E9F0F1',\r\n\r\n // Error colors\r\n TGO_ERROR_60B = '#513131',\r\n TGO_ERROR_30B = '#8E5655',\r\n TGO_ERROR_60W = '#E3C3C6',\r\n TGO_ERROR_SECONDARY = '#F0DAD9',\r\n TGO_ERROR_DEFAULT = '#CB7B7A',\r\n\r\n // Warning colors\r\n TGO_WARNING_SECONDARY = '#F0D6BB',\r\n TGO_WARNING_DEFAULT = '#CCA45F',\r\n\r\n // Black colors - grayscale\r\n TGO_BLACK = '#000000',\r\n TGO_DARK = '#888888',\r\n TGO_MEDIUM = '#E0E0E0',\r\n TGO_GREY = '#EDEDED',\r\n TGO_LIGHT = '#F6F6F6',\r\n TGO_WHITE = '#FFFFFF',\r\n\r\n // Brand colors\r\n BRAND_60 = '#A90686',\r\n BRAND_50 = '#D410AA',\r\n BRAND_40 = '#FF54DA',\r\n BRAND_30 = '#FFB3EE',\r\n BRAND_20 = '#FFE6FA',\r\n BRAND_10 = '#FFF2FC',\r\n\r\n // Grayscale colors\r\n GRAYSCALE_50 = '#666666',\r\n GRAYSCALE_40 = '#919191',\r\n GRAYSCALE_30 = '#D3D3D3',\r\n GRAYSCALE_20 = '#E9E9E9',\r\n GRAYSCALE_10 = '#F4F4F4',\r\n\r\n // Additional colors\r\n BLACK = '#242424',\r\n\r\n // Accent colors\r\n ACCENT_20 = '#FFF5ED',\r\n ACCENT_10 = '#FFFAF6',\r\n\r\n // Informative colors\r\n INFORMATIVE_50 = '#1A47AA',\r\n INFORMATIVE_40 = '#0165FC',\r\n INFORMATIVE_30 = '#277CFD',\r\n INFORMATIVE_20 = '#99C1FE',\r\n INFORMATIVE_10 = '#D9E8FF',\r\n\r\n // Success colors\r\n SUCCESS_50 = '#3C9A13',\r\n SUCCESS_40 = '#56C71A',\r\n SUCCESS_30 = '#80D63E',\r\n SUCCESS_20 = '#AAE47A',\r\n SUCCESS_10 = '#D4F2C3',\r\n\r\n // Error additional colors\r\n ERROR_50 = '#E02800',\r\n ERROR_40 = '#FF3003',\r\n ERROR_30 = '#FF6E4F',\r\n ERROR_20 = '#FFAC9A',\r\n ERROR_10 = '#FFEAE6',\r\n\r\n // Warning additional colors\r\n WARNING_50 = '#D07D00',\r\n WARNING_40 = '#FF9A03',\r\n WARNING_30 = '#FFC268',\r\n WARNING_20 = '#FFE1B3',\r\n WARNING_10 = '#FFF5E6',\r\n}\r\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { IconName } from '../icon/icon.model';\r\n\r\n@Component({\r\n selector: 'ui-password-strength',\r\n templateUrl: './password-strength.component.html',\r\n styleUrls: ['./password-strength.component.scss'],\r\n})\r\nexport class PasswordStrengthComponent {\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof PasswordStrengthComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * The password that needs to be checked\r\n * @property password\r\n * @type {string}\r\n * @memberof PasswordStrengthComponent\r\n */\r\n @Input() set password(value: string) {\r\n this._password = value;\r\n this.checkCriteria(this._password);\r\n }\r\n\r\n /**\r\n * Event that outputs validation check result\r\n * @property validationCheck\r\n * @type {boolean}\r\n * @memberof PasswordStrengthComponent\r\n */\r\n @Output() validationCheck = new EventEmitter<boolean>();\r\n\r\n protected progressValue: number;\r\n protected criteriaPassed: { [key: string]: boolean } = {};\r\n private _password = '';\r\n protected criteria: { translateKey: string; key: string }[] = [\r\n { translateKey: 'PASSWORD.LOWERCASE', key: 'hasLowercase' },\r\n { translateKey: 'PASSWORD.UPPERCASE', key: 'hasUppercase' },\r\n { translateKey: 'PASSWORD.NUMBER', key: 'hasNumber' },\r\n { translateKey: 'PASSWORD.SPECIAL_CHARACTER', key: 'hasSpecialChar' },\r\n { translateKey: 'PASSWORD.CHARACTERS', key: 'hasMinLength' },\r\n ];\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n ) {\r\n if (this.defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n checkCriteria(password: string): void {\r\n this.criteriaPassed = {\r\n hasLowercase: /^(?=.*?[a-z])/.test(password),\r\n hasUppercase: /^(?=.*?[A-Z])/.test(password),\r\n hasNumber: /^(?=.*?[0-9])/.test(password),\r\n hasSpecialChar: /^(?=.*?[\" !#$%&'()*+,-./:;<=>?@[\\]^_`{|}~])/.test(password),\r\n hasMinLength: password.length >= 12,\r\n };\r\n\r\n const passedCount = this.countPassed();\r\n this.progressValue = Math.min(Math.max(passedCount * (100 / Object.keys(this.criteriaPassed).length), 1), 100);\r\n this.validationCheck.emit(passedCount === Object.keys(this.criteriaPassed).length);\r\n }\r\n\r\n private countPassed(): number {\r\n let count = 0;\r\n for (const key in this.criteriaPassed) {\r\n if (this.criteriaPassed.hasOwnProperty(key) && this.criteriaPassed[key]) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n }\r\n\r\n get infoIcon(): IconName {\r\n return this.applicationTheme === 'classic' ? 'Info' : 'Info-in-line';\r\n }\r\n\r\n get checkIcon(): IconName {\r\n return this.applicationTheme === 'classic' ? 'Round-check' : 'Check-round-in-line';\r\n }\r\n}\r\n","<div class=\"criteria-container\">\r\n\r\n <div class=\"progress\">\r\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let criterion of criteria\"\r\n class=\"criterion\"\r\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] }\"\r\n >\r\n <ui-icon [size]=\"'24'\"\r\n [color]=\"'rebrand-black'\"\r\n [name]=\"!criteriaPassed[criterion.key] ? infoIcon : checkIcon\"\r\n [applicationTheme]=\"applicationTheme\"\r\n ></ui-icon>\r\n <span>{{ criterion.translateKey | uiTranslate | async }}</span>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PasswordStrengthComponent } from './password-strength.component';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\n\r\n@NgModule({\r\n declarations: [PasswordStrengthComponent],\r\n imports: [CommonModule, IconComponentModule, ProgressBarComponentModule, UiTranslatePipe],\r\n exports: [PasswordStrengthComponent],\r\n})\r\nexport class PasswordStrengthComponentModule {}\r\n","import {\r\n booleanAttribute,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormBuilder,\r\n FormControl,\r\n NgControl,\r\n ValidatorFn,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { MultiInputValue } from './multi-input.model';\r\n\r\n@Component({\r\n selector: 'ui-multi-input',\r\n templateUrl: './multi-input.component.html',\r\n styleUrl: './multi-input.component.scss',\r\n})\r\nexport class MultiInputComponent implements ControlValueAccessor, OnInit {\r\n /**\r\n *\r\n * @description List of items to be displayed in the dropdown list\r\n * @type {Record<string, string | null | number>[]}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input({ required: true }) itemsList: Record<string, string | null | number>[] = [];\r\n\r\n /**\r\n *\r\n * @description The field to be displayed in the dropdown\r\n * @type {string}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input({ required: true }) itemTextField = '';\r\n\r\n /**\r\n *\r\n * @description The value to be displayed in the droddown\r\n * @type {string}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input({ required: true }) itemValueField = '';\r\n\r\n /**\r\n *\r\n * @description The Value of the multi input\r\n * @type {MultiInputValue}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input() set value(v: MultiInputValue) {\r\n this._value = v;\r\n this.addDropdownControl();\r\n this.multiInputForm.patchValue(v);\r\n }\r\n\r\n /**\r\n *\r\n * @description Disables the multi input\r\n * @type {boolean}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input({ transform: booleanAttribute }) disabled = false;\r\n\r\n /**\r\n *\r\n * @description Defines if the multi input is required\r\n * @type {boolean}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input({ transform: booleanAttribute }) required = false;\r\n\r\n /**\r\n *\r\n * @description Defines the label of the multi input\r\n * @type {string}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input() label = '';\r\n\r\n /**\r\n *\r\n * @description Defines the placeholder of the multi input\r\n * @type {string}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input() placeholder = '';\r\n\r\n /**\r\n *\r\n * @description Allow decimal values in the multi input\r\n * @type {boolean}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input({ transform: booleanAttribute }) allowDecimal = true;\r\n\r\n /**\r\n *\r\n * @description Allow negative values in the multi input\r\n * @type {boolean}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input({ transform: booleanAttribute }) allowNegative = true;\r\n\r\n /**\r\n *\r\n * @description The theme of the application\r\n * @type {ApplicationTheme}\r\n * @memberof MultiInputComponent\r\n */\r\n @HostBinding('attr.theme')\r\n @Input()\r\n applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n *\r\n * @description The errors of the multi input\r\n * @type {string[]}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input() errors: string[] = [];\r\n\r\n /**\r\n *\r\n * @description Hide built in errors for Reactive Forms\r\n * @type {boolean}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input({ transform: booleanAttribute }) hideBuiltInErrors = false;\r\n\r\n /**\r\n *\r\n * @description Hide label in errors\r\n * @type {boolean}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input({ transform: booleanAttribute }) hideLabelInErrors = false;\r\n\r\n /**\r\n *\r\n * @description The maximum characters allowed in the multi input\r\n * @type {number}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input() maxCharacters = 0;\r\n\r\n /**\r\n *\r\n * @description The validators to apply to input field\r\n * @type {Validators[]}\r\n * @memberof MultiInputComponent\r\n */\r\n @Input() validators: ValidatorFn[] = [];\r\n\r\n /**\r\n *\r\n * @description The width of the multi input\r\n * @type {boolean}\r\n * @memberof MultiInputComponent\r\n */\r\n @HostBinding('class.full-width')\r\n @Input()\r\n fullWidth: boolean = false;\r\n\r\n @Output() valueChange = new EventEmitter<MultiInputValue>();\r\n\r\n @HostBinding() class = 'ui-multi-input';\r\n\r\n /**\r\n * @ignore\r\n */\r\n onChange = (_: any): void => {};\r\n\r\n /**\r\n * @ignore\r\n */\r\n onTouch = (): void => {};\r\n\r\n private _value: MultiInputValue | undefined;\r\n protected showError = false;\r\n\r\n protected readonly multiInputForm = this.fb.group<MultiInputValue>({\r\n value: null,\r\n });\r\n\r\n constructor(\r\n @Optional() @Self() protected ngControl: NgControl,\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private readonly fb: FormBuilder\r\n ) {\r\n if (this.ngControl) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n if (this.defaultAppTheme) {\r\n this.applicationTheme = this.defaultAppTheme;\r\n }\r\n\r\n this.multiInputForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(formValue => {\r\n this.valueChanged(formValue as MultiInputValue);\r\n this.checkFormErrors();\r\n\r\n if (!(formValue as any).value && !(formValue as any)[this.itemValueField]) {\r\n this.showError = true;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addDropdownControl();\r\n this.addValidation();\r\n\r\n if (this.ngControl && this.hasRequiredValidator) {\r\n this.inputControl?.addValidators(Validators.required);\r\n this.dropdownControl?.addValidators(Validators.required);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['disabled']) {\r\n this.updateDisableState(this.disabled);\r\n }\r\n }\r\n\r\n writeValue(value: MultiInputValue): void {\r\n this.value = value;\r\n this.addDropdownControl();\r\n this.multiInputForm.patchValue(value);\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.updateDisableState(isDisabled);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n protected valueChanged(value: MultiInputValue): void {\r\n this.valueChange.emit(value);\r\n this.onChange(value);\r\n }\r\n\r\n get value(): MultiInputValue | undefined {\r\n return this._value;\r\n }\r\n\r\n protected get hasRequiredValidator(): boolean {\r\n return !!this.ngControl.control?.hasValidator(Validators.required);\r\n }\r\n\r\n protected get dropdownControl(): AbstractControl<string | null> | null {\r\n return this.multiInputForm.get(this.itemValueField);\r\n }\r\n\r\n protected get inputControl(): AbstractControl<number | null> | null {\r\n return this.multiInputForm.get('value') as any;\r\n }\r\n\r\n protected checkFormErrors(): void {\r\n const hasErrors = this.inputControl?.errors || this.dropdownControl?.errors;\r\n if (this.ngControl) {\r\n this.ngControl.control?.setErrors(\r\n !!hasErrors ? { ...this.inputControl?.errors, ...this.dropdownControl?.errors } : null\r\n );\r\n }\r\n this.showError = !!hasErrors;\r\n }\r\n\r\n protected markAsTouched(): void {\r\n if (\r\n this.ngControl &&\r\n ((this.inputControl?.touched && this.dropdownControl?.touched) ||\r\n (!this.inputControl?.value && !this.dropdownControl?.value))\r\n ) {\r\n this.ngControl.control?.markAsTouched();\r\n }\r\n }\r\n\r\n protected addDropdownControl(): void {\r\n if (!this.multiInputForm.value[this.itemValueField]) {\r\n this.multiInputForm.addControl(this.itemValueField, new FormControl(null), { emitEvent: false });\r\n this.updateDisableState(this.disabled);\r\n }\r\n }\r\n\r\n protected get controlHasError(): boolean {\r\n return this.ngControl\r\n ? (this.showError && !!this.ngControl.control?.touched) ||\r\n (!this.inputControl?.valid && !!this.inputControl?.touched) ||\r\n (!this.dropdownControl?.valid && !!this.dropdownControl?.touched)\r\n : this.showError ||\r\n !!this.errors.length ||\r\n (!this.inputControl?.valid && !!this.inputControl?.touched) ||\r\n (!this.dropdownControl?.valid && !!this.dropdownControl?.touched);\r\n }\r\n\r\n protected getValueLength(): number {\r\n return this.inputControl?.value?.toString().length || 0;\r\n }\r\n\r\n private addValidation(): void {\r\n if (this.maxCharacters) {\r\n this.inputControl?.addValidators(Validators.maxLength(this.maxCharacters));\r\n }\r\n if (this.validators?.length) {\r\n this.inputControl?.addValidators(this.validators);\r\n }\r\n }\r\n\r\n private updateDisableState(state: boolean): void {\r\n if (state) {\r\n this.multiInputForm.disable({ emitEvent: false });\r\n } else {\r\n this.multiInputForm.enable({ emitEvent: false });\r\n }\r\n }\r\n}\r\n","<div [formGroup]=\"multiInputForm\">\r\n <div class=\"controls-wrapper\">\r\n <ui-dropdown\r\n [hasError]=\"controlHasError\"\r\n [formControlName]=\"itemValueField\"\r\n [valueList]=\"itemsList\"\r\n [textField]=\"itemTextField\"\r\n [valueField]=\"itemValueField\"\r\n [showBottomContent]=\"false\"\r\n [allowClear]=\"false\"\r\n (closed)=\"markAsTouched(); checkFormErrors()\"\r\n ></ui-dropdown>\r\n\r\n <ui-field\r\n [hasError]=\"controlHasError\"\r\n [formControlName]=\"'value'\"\r\n [label]=\"label\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [hideBuiltInErrors]=\"true\"\r\n [showBottomContent]=\"false\"\r\n [allowOnlyDigits]=\"true\"\r\n [fullWidth]=\"fullWidth\"\r\n (focusout)=\"markAsTouched(); checkFormErrors()\"\r\n ></ui-field>\r\n </div>\r\n\r\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters && !errors?.length\">{{ getValueLength() }} / {{ maxCharacters }}</mat-hint>\r\n\r\n @if (errors?.length || (ngControl?.errors | hasValidationError)) {\r\n <mat-hint class=\"error\">\r\n @for (error of errors; track error) {\r\n <ui-icon\r\n [applicationTheme]=\"applicationTheme\"\r\n [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"\r\n ></ui-icon>{{ error }}\r\n }\r\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors) {\r\n <ui-validation-error\r\n [touchedOn]=\"!controlHasError\"\r\n [ngControl]=\"ngControl\"\r\n [label]=\"hideLabelInErrors ? null : label\"\r\n ></ui-validation-error>\r\n }\r\n </mat-hint>\r\n }\r\n\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MultiInputComponent } from './multi-input.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { DividerComponentModule } from '../divider/divider.component.module';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { DropdownComponentModule } from '../dropdown/dropdown.component.module';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { DigitsOnlyDirective } from '../../directives/digits-only.directive';\r\nimport { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';\r\nimport { ValidationErrorModule } from '../validation-error/validation-error.module';\r\nimport { FieldComponentModule } from '../field/field.component.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [MultiInputComponent],\r\n imports: [\r\n CommonModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n DividerComponentModule,\r\n IconComponentModule,\r\n DropdownComponentModule,\r\n ReactiveFormsModule,\r\n DigitsOnlyDirective,\r\n HasValidationErrorPipe,\r\n ValidationErrorModule,\r\n FieldComponentModule,\r\n ],\r\n exports: [MultiInputComponent],\r\n})\r\nexport class MultiInputComponentModule { }\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport type SidePanelPosition = 'left' | 'right';\r\n\r\nexport enum SidePanelAnimationState {\r\n Open = 'open',\r\n Closed = 'closed',\r\n ClosedRight = 'closedRight',\r\n ClosedLeft = 'closedLeft',\r\n}\r\n\r\nexport class SidePanelConfig {\r\n title: string;\r\n position: SidePanelPosition;\r\n showBackButton: boolean;\r\n}\r\n\r\nexport const defaultSidePanelConfig: SidePanelConfig = {\r\n position: 'right',\r\n showBackButton: false,\r\n title: '',\r\n};\r\n\r\nexport const SIDE_PANEL_CONFIG = new InjectionToken<SidePanelConfig>('SIDE_PANEL_CONFIG', {\r\n providedIn: 'root',\r\n factory: () => defaultSidePanelConfig,\r\n});\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { SidePanelAnimationState } from './side-panel.model';\r\n\r\nexport const sidePanelAnimationDuration = 150;\r\n\r\nexport const sidePanelAnimation = [\r\n trigger('slideInOut', [\r\n state(`${SidePanelAnimationState.Open}`, style({ transform: 'translateX(0)' })),\r\n state(`${SidePanelAnimationState.ClosedRight}`, style({ transform: 'translateX(100%)' })),\r\n state(`${SidePanelAnimationState.ClosedLeft}`, style({ transform: 'translateX(-100%)' })),\r\n transition(`${SidePanelAnimationState.Open} <=> ${SidePanelAnimationState.ClosedRight}`, [\r\n animate(`${sidePanelAnimationDuration}ms ease-in-out`),\r\n ]),\r\n transition(`${SidePanelAnimationState.Open} <=> ${SidePanelAnimationState.ClosedLeft}`, [\r\n animate(`${sidePanelAnimationDuration}ms ease-in-out`),\r\n ]),\r\n ]),\r\n];\r\n\r\nexport const backdropAnimation = [\r\n trigger('fadeInOut', [\r\n state(`${SidePanelAnimationState.Open}`, style({ opacity: 0.25 })),\r\n state(`${SidePanelAnimationState.Closed}`, style({ opacity: 0 })),\r\n transition(`${SidePanelAnimationState.Open} <=> ${SidePanelAnimationState.Closed}`, [\r\n animate(`${sidePanelAnimationDuration}ms ease-in-out`),\r\n ]),\r\n ]),\r\n];\r\n","import {\r\n ApplicationRef,\r\n ComponentRef,\r\n createComponent,\r\n EmbeddedViewRef,\r\n EnvironmentInjector,\r\n inject,\r\n Injectable,\r\n Injector,\r\n TemplateRef,\r\n Type,\r\n} from '@angular/core';\r\nimport { SidePanelComponent } from './side-panel.component';\r\nimport { SIDE_PANEL_CONFIG, SidePanelConfig, SidePanelPosition } from './side-panel.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SidePanelService {\r\n private SidePanelComponentRef?: ComponentRef<SidePanelComponent>;\r\n private contentComponentRef?: ComponentRef<any>;\r\n private embeddedViewRef?: EmbeddedViewRef<any>;\r\n private defaultSidePanelConfig: SidePanelConfig = inject(SIDE_PANEL_CONFIG);\r\n private injector = inject(EnvironmentInjector);\r\n private appRef = inject(ApplicationRef);\r\n\r\n constructor() {}\r\n\r\n open(content: Type<any> | TemplateRef<any>, config: Partial<SidePanelConfig>): void {\r\n const panelConfig: SidePanelConfig = { ...this.defaultSidePanelConfig, ...config };\r\n\r\n if (!this.SidePanelComponentRef) {\r\n const injector = this.createSidePanelInjector(panelConfig);\r\n const SidePanelComponentRef = this.createSidePanelComponent(panelConfig.position, injector);\r\n this.SidePanelComponentRef = SidePanelComponentRef;\r\n }\r\n\r\n if (content instanceof TemplateRef) {\r\n this.loadTemplate(content);\r\n } else {\r\n this.loadComponent(content);\r\n }\r\n\r\n this.SidePanelComponentRef.instance.open();\r\n }\r\n\r\n destroyComponent(): void {\r\n if (this.SidePanelComponentRef) {\r\n this.appRef.detachView(this.SidePanelComponentRef.hostView);\r\n this.SidePanelComponentRef.destroy();\r\n this.SidePanelComponentRef = undefined;\r\n }\r\n\r\n if (this.contentComponentRef) {\r\n this.contentComponentRef.destroy();\r\n this.contentComponentRef = undefined;\r\n }\r\n }\r\n\r\n private createSidePanelInjector(config: SidePanelConfig): Injector {\r\n return Injector.create({\r\n providers: [{ provide: SidePanelConfig, useValue: config }]\r\n });\r\n }\r\n\r\n private createSidePanelComponent(position: SidePanelPosition, injector: Injector): ComponentRef<SidePanelComponent> {\r\n const sidePanelComponentRef = createComponent(SidePanelComponent, {\r\n environmentInjector: this.injector,\r\n elementInjector: injector,\r\n });\r\n\r\n this.appRef.attachView(sidePanelComponentRef.hostView);\r\n\r\n const sidePanelEl = (sidePanelComponentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n sidePanelEl.querySelector('.side-panel')?.classList.add(position);\r\n\r\n document.body.appendChild(sidePanelEl);\r\n\r\n return sidePanelComponentRef;\r\n }\r\n\r\n private loadComponent(component: Type<any>): void {\r\n const viewContainerRef = this.SidePanelComponentRef?.instance.sidePanelContainer;\r\n if (viewContainerRef) {\r\n viewContainerRef().clear();\r\n this.contentComponentRef = viewContainerRef().createComponent(component);\r\n }\r\n }\r\n\r\n private loadTemplate(template: TemplateRef<any>): void {\r\n const viewContainerRef = this.SidePanelComponentRef?.instance.sidePanelContainer;\r\n if (viewContainerRef) {\r\n viewContainerRef().clear();\r\n this.embeddedViewRef = viewContainerRef().createEmbeddedView(template);\r\n }\r\n }\r\n}\r\n","import { AsyncPipe } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n ElementRef,\r\n inject,\r\n signal,\r\n viewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { LanguageService } from '../../utils/localization/language.service';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { TooltipComponentModule } from '../tooltip/tooltip.component.module';\r\nimport { backdropAnimation, sidePanelAnimation, sidePanelAnimationDuration } from './side-panel.animations';\r\nimport { SidePanelAnimationState, SidePanelConfig, SidePanelPosition } from './side-panel.model';\r\nimport { SidePanelService } from './side-panel.service';\r\n\r\n@Component({\r\n selector: 'ui-side-panel',\r\n templateUrl: './side-panel.component.html',\r\n styleUrls: ['./side-panel.component.scss'],\r\n animations: [sidePanelAnimation, backdropAnimation],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [TooltipComponentModule, ButtonComponentModule, UiTranslatePipe, AsyncPipe],\r\n})\r\nexport class SidePanelComponent {\r\n title = '';\r\n showBackButton = false;\r\n sidePanelPosition = signal<SidePanelPosition>('right');\r\n\r\n sidePanelContainer = viewChild.required('sidePanelContainer', { read: ViewContainerRef });\r\n sidePanel = viewChild.required<ElementRef<HTMLDivElement>>('sidePanel');\r\n backdrop = viewChild.required<ElementRef<HTMLDivElement>>('sidePanelBackdrop');\r\n language = LanguageService.defaultLanguage;\r\n isOpen = signal<boolean>(false);\r\n\r\n animation = computed(() => {\r\n if (this.isOpen()) {\r\n return SidePanelAnimationState.Open;\r\n }\r\n\r\n return this.sidePanelPosition() === 'left'\r\n ? SidePanelAnimationState.ClosedLeft\r\n : SidePanelAnimationState.ClosedRight;\r\n });\r\n\r\n private sidePanelService = inject(SidePanelService);\r\n private sidePanelConfig = inject(SidePanelConfig);\r\n\r\n constructor() {\r\n const { position, showBackButton, title } = this.sidePanelConfig;\r\n this.sidePanelPosition.set(position);\r\n this.showBackButton = showBackButton;\r\n this.title = title;\r\n }\r\n\r\n open(): void {\r\n setTimeout(() => {\r\n this.isOpen.set(true);\r\n });\r\n }\r\n\r\n close(): void {\r\n this.isOpen.set(false);\r\n setTimeout(() => {\r\n this.sidePanelService.destroyComponent();\r\n }, sidePanelAnimationDuration);\r\n }\r\n}\r\n","<div class=\"side-panel-backdrop\" #sidePanelBackdrop (click)=\"close()\" [@fadeInOut]=\"isOpen() ? 'open' : 'closed'\"></div>\r\n<div class=\"side-panel\" #sidePanel [@slideInOut]=\"animation()\">\r\n <div class=\"side-panel-header\">\r\n <div class=\"side-panel-title-container\">\r\n @if (showBackButton) {\r\n <ui-button\r\n class=\"side-panel-action\"\r\n [variant]=\"'icon-button'\"\r\n [iconName]=\"'Arrow-chevron-left-filled'\"\r\n (click)=\"close()\"\r\n [tooltip]=\"(('COMMON.BACK') | uiTranslate | async)!\"\r\n size=\"medium\"\r\n ></ui-button>\r\n }\r\n <span class=\"side-panel-title\">{{ title }}</span>\r\n </div>\r\n\r\n <ui-button\r\n class=\"side-panel-action\"\r\n [variant]=\"'icon-button'\"\r\n [iconName]=\"'Close'\"\r\n [tooltip]=\"(('COMMON.CLOSE') | uiTranslate | async)!\"\r\n (click)=\"close()\"\r\n size=\"medium\"\r\n ></ui-button>\r\n </div>\r\n\r\n <div class=\"side-panel-content\">\r\n <ng-container #sidePanelContainer></ng-container>\r\n </div>\r\n</div>\r\n","export type SpiderChartSize = 'large' | 'small';\r\n// These are the sizes of the canvas, not the chart itself. It includes 40px of padding on all sides.\r\nexport const SmallSpiderChartSize: number = 200;\r\nexport const LargeSpiderChartSize: number = 280;\r\nexport type SpiderChartData = {\r\n labels: string[];\r\n labelDescription: string[];\r\n plotData: [PlotData, PlotData] | [PlotData]; // Current implementation supports max 2 datasets.\r\n};\r\nexport type PlotData = {\r\n databaseLabel: string;\r\n data: number[];\r\n};\r\n","import { Component, ElementRef, Input, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { LargeSpiderChartSize, SmallSpiderChartSize, SpiderChartData, SpiderChartSize } from './spider-chart.model';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { Chart, ChartData, ChartOptions } from 'chart.js';\r\nimport { Color } from '../../models/colors.model';\r\nimport { BaseChartDirective } from 'ng2-charts';\r\n\r\n@Component({\r\n selector: 'ui-spider-chart',\r\n templateUrl: './spider-chart.component.html',\r\n styleUrls: ['./spider-chart.component.scss'],\r\n})\r\nexport class SpiderChartComponent implements OnInit {\r\n /**\r\n * The size of the spider chart.\r\n * @type {SpiderChartSize}\r\n * @memberof SpiderChartComponent\r\n */\r\n @Input() size: SpiderChartSize = 'large';\r\n\r\n /**\r\n * The data to be used for the spider chart.\r\n * @type {SpiderChartData}\r\n * @memberof SpiderChartComponent\r\n */\r\n @Input() spiderChartData: SpiderChartData;\r\n\r\n /**\r\n * The step size for the spider chart.\r\n * @type {number}\r\n * @memberof SpiderChartComponent\r\n */\r\n @Input() stepSize: number = 20;\r\n\r\n /**\r\n * The aria label for the spider chart.\r\n * @type {string}\r\n * @memberof SpiderChartComponent\r\n */\r\n @Input() ariaLabel: string = 'Radar chart. Press tab to navigate through the chart.';\r\n\r\n /**\r\n * Whether the spider chart is loading.\r\n * @type {boolean}\r\n * @memberof SpiderChartComponent\r\n */\r\n @Input() loading: boolean = false;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof SpinnerComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n @ViewChild(BaseChartDirective) chart: BaseChartDirective;\r\n @ViewChildren('labelContainer') labelContainers: QueryList<ElementRef>;\r\n @ViewChildren('fakeDataPoints') fakeDataPoints: QueryList<ElementRef>;\r\n @ViewChildren('fakeDataPointsSecondary') fakeDataPointsSecondary: QueryList<ElementRef>;\r\n @ViewChildren('legendItem') legendItems: QueryList<ElementRef>;\r\n\r\n radarChartData: ChartData<'radar'> = {\r\n labels: [],\r\n datasets: [],\r\n };\r\n radarChartOptions: ChartOptions<'radar'>;\r\n labelPositions: { [key: string]: { x: number; y: number } } = {};\r\n labelPositionsVisible: boolean = false;\r\n focusedLabelIndex: number = 0;\r\n focusedFakeDataPointIndex: number = 0;\r\n loadingChartData: ChartData<'radar'> = {\r\n labels: [1, 2, 3, 4, 5, 6],\r\n datasets: [],\r\n };\r\n loadingChartOptions: ChartOptions<'radar'> = {\r\n responsive: true,\r\n layout: {\r\n padding: {\r\n left: 40,\r\n right: 40,\r\n top: 40,\r\n bottom: 40,\r\n },\r\n },\r\n scales: {\r\n r: {\r\n angleLines: {\r\n display: true,\r\n color: Color.GRAYSCALE_30,\r\n },\r\n grid: {\r\n color: () => Color.GRAYSCALE_30,\r\n },\r\n pointLabels: {\r\n display: false,\r\n },\r\n suggestedMin: 0,\r\n suggestedMax: 100,\r\n ticks: {\r\n stepSize: this.stepSize,\r\n display: false,\r\n },\r\n },\r\n },\r\n };\r\n protected readonly translationContext = 'CHARTS.SPIDER.';\r\n\r\n ngOnInit(): void {\r\n if (!this.loading) {\r\n this.handleInputErrors();\r\n this.setChartData();\r\n this.setChartOptions();\r\n }\r\n }\r\n\r\n private handleInputErrors() {\r\n if (!this.spiderChartData.labels || this.spiderChartData.labels.length === 0) {\r\n throw new Error('The \"labels\" input is required and cannot be empty.');\r\n }\r\n if (!this.spiderChartData.labelDescription || this.spiderChartData.labelDescription.length === 0) {\r\n throw new Error('The \"labelDescription\" input is required and cannot be empty.');\r\n }\r\n if (\r\n this.spiderChartData.labelDescription &&\r\n this.spiderChartData.labelDescription.length !== this.spiderChartData.labels.length\r\n ) {\r\n throw new Error('The \"labelDescription\" input must have the same length as \"labels\".');\r\n }\r\n if (!this.spiderChartData.plotData[0].databaseLabel) {\r\n throw new Error('The \"plotData.databaseLabel\" input is required.');\r\n }\r\n if (!this.spiderChartData.plotData[0].data || this.spiderChartData.plotData[0].data.length === 0) {\r\n throw new Error('The \"plotData.data\" input is required and cannot be empty.');\r\n }\r\n if (this.spiderChartData.plotData[0].data.length !== this.spiderChartData.labels.length) {\r\n throw new Error('The \"plotData.data\" input must have the same length as \"labels\".');\r\n }\r\n if (\r\n this.spiderChartData.plotData.length === 2 &&\r\n this.spiderChartData.labels.length > 0 &&\r\n this.spiderChartData.plotData[1].data &&\r\n this.spiderChartData.plotData[1].data.length !== this.spiderChartData.labels.length\r\n ) {\r\n throw new Error('The \"plotData.data\" input must have the same length as \"labels\".');\r\n }\r\n }\r\n\r\n private setChartData() {\r\n const datasets = [];\r\n datasets.push({\r\n label: this.spiderChartData.plotData[0].databaseLabel,\r\n data: this.spiderChartData.plotData[0].data,\r\n fill: true,\r\n backgroundColor: 'rgba(212, 16, 170, 0.2)',\r\n borderColor: Color.BRAND_50,\r\n pointBackgroundColor: Color.BRAND_50,\r\n pointBorderColor: Color.TGO_WHITE,\r\n pointHoverBackgroundColor: Color.TGO_WHITE,\r\n pointHoverBorderColor: Color.BRAND_50,\r\n });\r\n if (this.spiderChartData.plotData.length === 2) {\r\n datasets.push({\r\n label: this.spiderChartData.plotData[1].databaseLabel,\r\n data: this.spiderChartData.plotData[1].data,\r\n fill: false,\r\n borderColor: Color.BLACK,\r\n borderDash: [5, 5],\r\n borderWidth: 1,\r\n pointBackgroundColor: Color.BLACK,\r\n pointBorderColor: Color.TGO_WHITE,\r\n pointHoverBackgroundColor: Color.TGO_WHITE,\r\n pointHoverBorderColor: Color.BLACK,\r\n });\r\n }\r\n this.radarChartData = {\r\n labels: this.spiderChartData.labels,\r\n datasets: datasets,\r\n };\r\n }\r\n\r\n private setChartOptions() {\r\n this.radarChartOptions = {\r\n responsive: true,\r\n elements: {\r\n line: {\r\n borderWidth: 3,\r\n },\r\n },\r\n layout: {\r\n padding: {\r\n left: 40,\r\n right: 40,\r\n top: 40,\r\n bottom: 40,\r\n },\r\n },\r\n scales: {\r\n r: {\r\n angleLines: {\r\n display: true,\r\n color: Color.BLACK,\r\n },\r\n grid: {\r\n color: context => {\r\n if (context.tick.value === 100) {\r\n return Color.BLACK;\r\n }\r\n return Color.GRAYSCALE_30;\r\n },\r\n },\r\n pointLabels: {\r\n color: 'black',\r\n font: {\r\n family: 'Arial',\r\n size: 14,\r\n },\r\n display: false,\r\n },\r\n suggestedMin: 0,\r\n suggestedMax: 100,\r\n ticks: {\r\n stepSize: this.stepSize,\r\n display: false,\r\n },\r\n },\r\n },\r\n plugins: {\r\n legend: {\r\n display: false,\r\n },\r\n },\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.chart?.chart && !this.loading) {\r\n this.logCornerCoordinates(this.chart.chart);\r\n }\r\n }\r\n\r\n private logCornerCoordinates(chart: Chart) {\r\n const scale = chart.scales['r'] as any;\r\n const canvasWidth = this.size === 'large' ? LargeSpiderChartSize : SmallSpiderChartSize;\r\n const canvasHeight = this.size === 'large' ? LargeSpiderChartSize : SmallSpiderChartSize;\r\n\r\n // Loop through the labels and calculate the percentage coordinates\r\n this.spiderChartData.labels.forEach((label, index) => {\r\n const position = scale.getPointPositionForValue(index, scale.max);\r\n\r\n // Calculate percentage values relative to the canvas size\r\n const xPercent = (position.x / canvasWidth) * 100;\r\n const yPercent = ((canvasHeight - position.y) / canvasHeight) * 100; // Inverting the Y-axis\r\n\r\n this.labelPositions[label] = { x: Number(xPercent.toFixed(2)), y: Number(yPercent.toFixed(2)) };\r\n });\r\n this.labelPositionsVisible = true;\r\n }\r\n\r\n getCenteredLabelBottomPosition(label: string, height: number) {\r\n const position = this.labelPositions[label];\r\n const padding = 7;\r\n if (position.x > 50 || position.x < 50) {\r\n return `calc(${position.y}% - ${height / 2}px)`;\r\n } else if (position.y < 50) {\r\n return `calc(${position.y}% - ${height}px - ${padding}px)`;\r\n } else {\r\n return `calc(${position.y}% + ${padding}px)`;\r\n }\r\n }\r\n\r\n getCenteredLabelLeftPosition(label: string, width: number) {\r\n const position = this.labelPositions[label];\r\n const padding = 15;\r\n if (position.x === 50) {\r\n return `calc(${position.x}% - ${width / 2}px)`;\r\n } else if (position.x < 50) {\r\n return `calc(${position.x}% - ${width}px - ${padding}px)`;\r\n } else {\r\n return `calc(${position.x}% + ${padding}px)`;\r\n }\r\n }\r\n\r\n onLabelKeyDown(event: KeyboardEvent, index: number) {\r\n if (event.key === 'ArrowRight' || event.key === 'ArrowDown') {\r\n this.focusNextLabel(index);\r\n } else if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') {\r\n this.focusPreviousLabel(index);\r\n }\r\n }\r\n\r\n private focusNextLabel(index: number) {\r\n const nextIndex = index + 1;\r\n if (nextIndex < this.labelContainers.length) {\r\n this.labelContainers.get(nextIndex)?.nativeElement.focus();\r\n } else {\r\n this.labelContainers.first?.nativeElement.focus();\r\n }\r\n this.focusedLabelIndex = nextIndex;\r\n }\r\n\r\n private focusPreviousLabel(index: number) {\r\n const previousIndex = index - 1;\r\n if (previousIndex >= 0) {\r\n this.labelContainers.get(previousIndex)?.nativeElement.focus();\r\n } else {\r\n this.labelContainers.last?.nativeElement.focus();\r\n }\r\n this.focusedLabelIndex = previousIndex;\r\n }\r\n\r\n onLegendItemKeyDown(event: KeyboardEvent, index: number) {\r\n if (event.key === 'Enter') {\r\n this.toggleDatasetVisibility(index);\r\n } else if (event.key === 'ArrowRight' || event.key === 'ArrowDown') {\r\n this.focusNextLegendItem(index);\r\n } else if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') {\r\n this.focusPreviousLegendItem(index);\r\n }\r\n }\r\n\r\n private focusNextLegendItem(index: number) {\r\n const nextIndex = index + 1;\r\n if (nextIndex < this.legendItems.length) {\r\n this.legendItems.get(nextIndex)?.nativeElement.focus();\r\n } else {\r\n this.legendItems.first?.nativeElement.focus();\r\n }\r\n }\r\n\r\n private focusPreviousLegendItem(index: number) {\r\n const previousIndex = index - 1;\r\n if (previousIndex >= 0) {\r\n this.legendItems.get(previousIndex)?.nativeElement.focus();\r\n } else {\r\n this.legendItems.last?.nativeElement.focus();\r\n }\r\n }\r\n\r\n onFakeDataPointsKeyDown(event: KeyboardEvent, index: number, isSecondary: boolean = false) {\r\n if (event.key === 'ArrowRight' || event.key === 'ArrowDown') {\r\n this.focusNextFakeDataPoint(index, isSecondary);\r\n this.showTooltipForDataPoint(index + 1 > this.spiderChartData.labels.length ? 0 : index + 1, isSecondary);\r\n } else if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') {\r\n this.focusPreviousFakeDataPoint(index, isSecondary);\r\n this.showTooltipForDataPoint(index - 1 < 0 ? this.spiderChartData.labels.length - 1 : index - 1, isSecondary);\r\n } else if (event.key === 'Tab') {\r\n this.resetActiveElement();\r\n }\r\n }\r\n\r\n private focusNextFakeDataPoint(index: number, isSecondary: boolean = false) {\r\n const nextIndex = index + 1;\r\n if (nextIndex < this.fakeDataPoints.length) {\r\n const fakeDataPoints = isSecondary ? this.fakeDataPointsSecondary : this.fakeDataPoints;\r\n fakeDataPoints.get(nextIndex)?.nativeElement.focus();\r\n } else {\r\n const fakeDataPoints = isSecondary ? this.fakeDataPointsSecondary : this.fakeDataPoints;\r\n fakeDataPoints.first?.nativeElement.focus();\r\n }\r\n if (!isSecondary) {\r\n this.focusedFakeDataPointIndex = nextIndex;\r\n }\r\n }\r\n\r\n private focusPreviousFakeDataPoint(index: number, isSecondary: boolean = false) {\r\n const previousIndex = index - 1;\r\n if (previousIndex >= 0) {\r\n const fakeDataPoints = isSecondary ? this.fakeDataPointsSecondary : this.fakeDataPoints;\r\n fakeDataPoints.get(previousIndex)?.nativeElement.focus();\r\n } else {\r\n const fakeDataPoints = isSecondary ? this.fakeDataPointsSecondary : this.fakeDataPoints;\r\n fakeDataPoints.last?.nativeElement.focus();\r\n }\r\n if (!isSecondary) {\r\n this.focusedFakeDataPointIndex = previousIndex;\r\n }\r\n }\r\n\r\n showTooltipForDataPoint(index: number, isSecondary: boolean = false) {\r\n const chartInstance = this.chart?.chart;\r\n if (!chartInstance) return;\r\n const activeElement = [{ datasetIndex: isSecondary ? 1 : 0, index }];\r\n const meta = chartInstance.getDatasetMeta(isSecondary ? 1 : 0);\r\n const dataPoint = meta.data[index];\r\n const eventPosition = {\r\n x: dataPoint.x,\r\n y: dataPoint.y,\r\n };\r\n if (!isSecondary) {\r\n this.focusedFakeDataPointIndex = index;\r\n }\r\n\r\n chartInstance.tooltip?.setActiveElements(activeElement, eventPosition);\r\n\r\n chartInstance.update();\r\n }\r\n\r\n private resetActiveElement() {\r\n const chartInstance = this.chart?.chart;\r\n if (!chartInstance) return;\r\n\r\n // Clear the active elements to hide the tooltip\r\n chartInstance.tooltip?.setActiveElements([], { x: 0, y: 0 });\r\n\r\n chartInstance.update();\r\n }\r\n\r\n toggleDatasetVisibility(datasetIndex: number) {\r\n const chartInstance = this.chart?.chart;\r\n if (!chartInstance) return;\r\n\r\n const dataset = chartInstance.data.datasets[datasetIndex];\r\n dataset.hidden = !dataset.hidden;\r\n chartInstance.update();\r\n }\r\n\r\n isDatasetVisible(datasetIndex: number) {\r\n const chartInstance = this.chart?.chart;\r\n if (!chartInstance) return;\r\n return !chartInstance.data.datasets[datasetIndex].hidden;\r\n }\r\n\r\n getFirstLine(label: string): string {\r\n const words = label.split(' ');\r\n let firstLine = '';\r\n for (const word of words) {\r\n if ((firstLine + word).length <= 20) {\r\n firstLine += (firstLine ? ' ' : '') + word;\r\n } else {\r\n break;\r\n }\r\n }\r\n return firstLine;\r\n }\r\n\r\n getSecondLine(label: string): string {\r\n const firstLine = this.getFirstLine(label);\r\n return label.substring(firstLine.length).trim();\r\n }\r\n}\r\n","<div class=\"spider-chart-container\"\r\n tabindex=\"0\"\r\n [attr.aria-label]=\"ariaLabel\">\r\n <div class=\"spacing-container\"\r\n [ngClass]=\"{'small-spacing': radarChartData.labels && radarChartData.labels.length % 2 === 1 && !loading}\">\r\n <div class=\"chart-container\"\r\n [style.width]=\"size === 'large' ? '280px' : '200px'\"\r\n [style.height]=\"size === 'large' ? '280px' : '200px'\">\r\n @if (!loading) {\r\n <canvas\r\n baseChart\r\n [data]=\"radarChartData\"\r\n [options]=\"radarChartOptions\"\r\n type=\"radar\"\r\n class=\"chart\"\r\n >\r\n </canvas>\r\n } @else {\r\n <canvas\r\n baseChart\r\n [data]=\"loadingChartData\"\r\n [options]=\"loadingChartOptions\"\r\n type=\"radar\"\r\n class=\"chart\"\r\n >\r\n </canvas>\r\n <ui-spinner></ui-spinner>\r\n }\r\n\r\n @if (labelPositionsVisible) {\r\n <div class=\"overlay-container\">\r\n @for (label of spiderChartData.labels; track label) {\r\n <div class=\"label-container\" #labelContainer\r\n [matTooltip]=\"spiderChartData.labelDescription[$index]\"\r\n [tabindex]=\"$index === 0 ? '0' : '-1'\"\r\n (keydown)=\"onLabelKeyDown($event, $index)\"\r\n [attr.aria-label]=\"spiderChartData.labelDescription[$index]\"\r\n [style.left]=\"getCenteredLabelLeftPosition(label, labelContainer.offsetWidth)\"\r\n [style.bottom]=\"getCenteredLabelBottomPosition(label, labelContainer.offsetHeight)\">\r\n @if (!(label.length > 20 && size === 'large' && spiderChartData.labels.length < 9)) {\r\n <div class=\"label\" [style.max-width]=\"size === 'large' ? '135px' : '100px'\">\r\n {{ label }}\r\n </div>\r\n } @else {\r\n <div>\r\n <div class=\"label\" [style.max-width]=\"size === 'large' ? '135px' : '100px'\">{{ label | memoizeFunc : getFirstLine }}</div>\r\n <div class=\"label\" [style.max-width]=\"size === 'large' ? '135px' : '100px'\">{{ label | memoizeFunc : getSecondLine : this }}</div>\r\n </div>\r\n }\r\n <span class=\"value\">{{ spiderChartData.plotData[0].data[$index] }}</span>\r\n </div>\r\n <span class=\"fake-data-points\" #fakeDataPoints\r\n [tabindex]=\"focusedLabelIndex === $index ? '0' : '-1'\"\r\n (focus)=\"$index === focusedLabelIndex ? showTooltipForDataPoint($index) : null\"\r\n (keydown)=\"onFakeDataPointsKeyDown($event, $index)\">\r\n </span>\r\n @if (radarChartData.datasets.length > 1) {\r\n <span class=\"fake-data-points-secondary\" #fakeDataPointsSecondary\r\n [tabindex]=\"focusedFakeDataPointIndex === $index ? '0' : '-1'\"\r\n (focus)=\"$index === focusedFakeDataPointIndex ? showTooltipForDataPoint($index, true) : null\"\r\n (keydown)=\"onFakeDataPointsKeyDown($event, $index, true)\">\r\n </span>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if (radarChartData.datasets.length > 0) {\r\n <div class=\"legend-container\">\r\n @for (dataset of radarChartData.datasets; track dataset.label) {\r\n <div class=\"legend-item\"\r\n (click)=\"toggleDatasetVisibility($index)\"\r\n [tabindex]=\"$index === 0 ? '0' : '-1'\"\r\n role=\"button\"\r\n [attr.aria-pressed]=\"isDatasetVisible($index) ? false : true\"\r\n [attr.aria-label]=\"isDatasetVisible($index) ?\r\n ((translationContext + 'DATASET_VISIBLE') | uiTranslate : { dataset: dataset.label } | async) :\r\n ((translationContext + 'DATASET_HIDDEN') | uiTranslate : { dataset: dataset.label } | async)\"\r\n (keydown)=\"onLegendItemKeyDown($event, $index)\"\r\n #legendItem>\r\n <span class=\"legend-line\" [ngClass]=\"{'solid-line': $index === 0, 'dashed-line': $index === 1}\"></span>\r\n <span class=\"legend-label\" [style.text-decoration]=\"isDatasetVisible($index) ? 'none' : 'line-through'\">\r\n {{ dataset.label }}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { SpiderChartComponent } from './spider-chart.component';\r\nimport { NgChartsModule } from 'ng2-charts';\r\nimport { Chart, registerables } from 'chart.js';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { CommonModule, NgClass } from '@angular/common';\r\nimport { SpinnerComponentModule } from '../spinner/spinner.module';\r\nimport { MemoizeFuncPipe } from '../../pipes/memoize-func.pipe';\r\n\r\nChart.register(...registerables);\r\n\r\n@NgModule({\r\n declarations: [SpiderChartComponent],\r\n exports: [SpiderChartComponent],\r\n imports: [\r\n NgClass,\r\n UiTranslatePipe,\r\n NgChartsModule,\r\n MatTooltipModule,\r\n UiTranslatePipe,\r\n MemoizeFuncPipe,\r\n SpinnerComponentModule,\r\n CommonModule,\r\n ],\r\n})\r\nexport class SpiderChartComponentModule {}\r\n","import { AsyncPipe } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Inject,\r\n ModelSignal,\r\n Optional,\r\n computed,\r\n input,\r\n model,\r\n output,\r\n} from '@angular/core';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { IKeyboardEvent } from '../../models/keyboard-events.model';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { Language } from '../../utils/localization/language.model';\r\nimport { LanguageService } from '../../utils/localization/language.service';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { DividerComponentModule } from '../divider/divider.component.module';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\r\nimport { RadioButtonComponentModule } from '../radio-button/radio-button.component.module';\r\nimport type { ChecklistItem } from './checklist.model';\r\n\r\n@Component({\r\n selector: 'ui-checklist',\r\n standalone: true,\r\n imports: [\r\n ProgressBarComponentModule,\r\n RadioButtonComponentModule,\r\n IconComponentModule,\r\n ButtonComponentModule,\r\n DividerComponentModule,\r\n UiTranslatePipe,\r\n AsyncPipe,\r\n ],\r\n templateUrl: './checklist.component.html',\r\n styleUrl: './checklist.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChecklistComponent {\r\n /**\r\n * Label for the checklist\r\n * @type {string}\r\n * @memberof ChecklistComponent\r\n */\r\n label = input('');\r\n\r\n /**\r\n * Items for the checklist\r\n * @type {ModelSignal<ChecklistItem[]>}\r\n * @memberof ChecklistComponent\r\n */\r\n items = model<ChecklistItem[]>([]);\r\n\r\n /**\r\n * Application theme\r\n * @type {ApplicationTheme}\r\n * @memberof ChecklistComponent\r\n */\r\n applicationTheme = input<ApplicationTheme | undefined>(undefined);\r\n readonly theme = computed(() => this.applicationTheme() ?? this.defaultAppTheme);\r\n\r\n /**\r\n * Confirm button label\r\n * @type {string}\r\n * @memberof ChecklistComponent\r\n */\r\n footerButtonLabel = input<string | undefined>(undefined);\r\n\r\n /**\r\n * A string representing the ARIA requirement for accessibility.\r\n * This attribute is used to indicate whether an input field is required for form submission.\r\n * @type {string}\r\n * @memberof ChecklistComponent\r\n */\r\n ariaLabel = input<string | undefined>(undefined);\r\n\r\n /**\r\n * The language to be used\r\n * @property language\r\n * @type {Language}\r\n * @memberof ChecklistComponent\r\n */\r\n language = input(LanguageService.defaultLanguage);\r\n\r\n /**\r\n * A boolean property that determines whether the checklist items should be automatically checked.\r\n *\r\n * @type {boolean}\r\n */\r\n autocheck = input(true);\r\n\r\n /**\r\n * Event emitter that triggers when the footer button is clicked.\r\n * Emits a void event.\r\n */\r\n footerButtonClicked = output<void>();\r\n\r\n /**\r\n * An output event emitter that signifies the completion of a task or process.\r\n * This event does not carry any payload.\r\n */\r\n readonly completed = output<void>();\r\n\r\n /**\r\n * Represents the currently selected item in the checklist.\r\n * This is an instance of the `ChecklistItem` supports two-way binding.\r\n */\r\n selectedItem = model<ChecklistItem>();\r\n\r\n readonly currentIndex = computed(() => {\r\n const items = this.items();\r\n const selectedItem = this.selectedItem();\r\n return selectedItem ? items.indexOf(selectedItem) : -1;\r\n });\r\n\r\n protected progress = computed(() => {\r\n const items = this.items();\r\n const total = items.length;\r\n const checked = items.filter(item => item.checked).length;\r\n const progressValue = Number(((checked / total) * 100).toFixed(0));\r\n if (progressValue === 100) {\r\n this.completed.emit();\r\n }\r\n return progressValue;\r\n });\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\r\n ) {}\r\n\r\n selectItem(item: ChecklistItem) {\r\n if ((item.checked || item.disabled || this.selectedItem() === item) && !item.reselect) {\r\n return;\r\n }\r\n if (this.autocheck()) {\r\n item.checked = item?.reselect ? !item.checked : true;\r\n this.items.set([...this.items()]);\r\n }\r\n this.selectedItem.set(item);\r\n }\r\n\r\n keydownHandler($event: KeyboardEvent, item: ChecklistItem) {\r\n if (IKeyboardEvent.SPACE === $event.key || IKeyboardEvent.ENTER === $event.key) {\r\n $event.preventDefault();\r\n this.selectItem(item);\r\n }\r\n }\r\n\r\n next() {\r\n const currentIndex = this.currentIndex();\r\n if (currentIndex < this.items().length - 1) {\r\n this.selectItem(this.items()[currentIndex + 1]);\r\n }\r\n }\r\n\r\n prev() {\r\n const currentIndex = this.currentIndex();\r\n if (currentIndex > 0) {\r\n this.selectItem(this.items()[currentIndex - 1]);\r\n }\r\n }\r\n\r\n footerButtonClick(event: Event) {\r\n event.preventDefault();\r\n this.footerButtonClicked.emit();\r\n }\r\n}\r\n","@if (label()) {\r\n<h4 [attr.aria-label]=\"ariaLabel() ?? label()\">{{ label() }}</h4>\r\n}\r\n\r\n<ui-progress-bar [showPercentage]=\"true\" [progress]=\"progress()\"></ui-progress-bar>\r\n\r\n<div style=\"position: absolute; left: -9999px\" [attr.aria-live]=\"'polite'\">\r\n {{ 'COMMON.PROGRESS' | uiTranslate: { progress: progress() } | async }}\r\n</div>\r\n\r\n<ui-divider size=\"small\" companyColor=\"#d3d3d3\"> </ui-divider>\r\n\r\n<div class=\"checklist-container\" data-testid=\"checklist-container\">\r\n @for (item of items(); track (item.value+item.checked); let i = $index) {\r\n <div\r\n data-testid=\"checklist-item\"\r\n class=\"checklist-item\"\r\n [class.disabled]=\"item.disabled\"\r\n [class.checked]=\"item.checked\"\r\n [class.active]=\"item === selectedItem() && !autocheck()\"\r\n [attr.aria-labelledby]=\"'item-' + item.value\"\r\n [tabindex]=\"item?.disabled ? -1 : 0\"\r\n (click)=\"selectItem(item)\"\r\n (keydown)=\"keydownHandler($event, item)\"\r\n >\r\n <div class=\"content\">\r\n <ui-icon\r\n [name]=\"item.checked ? 'Check-in-line' : 'Circle-in-line'\"\r\n [filled]=\"item.checked\"\r\n class=\"checked\"\r\n [applicationTheme]=\"theme()\"\r\n [size]=\"'16'\"\r\n [color]=\"item.checked ? 'white' : item.disabled ? '#919191' : 'dark'\"\r\n ></ui-icon>\r\n <span [id]=\"'item-' + item.value\" class=\"label\">{{ item.label }}</span>\r\n </div>\r\n\r\n @if (item.hasLink && !item.disabled) {\r\n <div class=\"navigation\">\r\n <ui-icon\r\n [tabindex]=\"-1\"\r\n class=\"link\"\r\n [name]=\"'Arrow-chevron-right-filled'\"\r\n [applicationTheme]=\"theme()\"\r\n [size]=\"'24'\"\r\n color=\"rebrand-black\"\r\n ></ui-icon>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n@if (footerButtonLabel()) {\r\n<div class=\"action-btn\">\r\n <ui-button\r\n data-testid=\"checklist-footer-button\"\r\n [label]=\"footerButtonLabel()!\"\r\n [variant]=\"'link'\"\r\n [companyColor]=\"'#000'\"\r\n (buttonClickEvent)=\"footerButtonClick($event)\"\r\n ></ui-button>\r\n</div>\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DividerComponentModule } from \"../divider/divider.component.module\";\r\nimport { EllipseTextDirective } from \"../../directives/ellipse-text.directive\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\n\r\n@Component({\r\n selector: 'ui-media-card',\r\n standalone: true,\r\n imports: [\r\n DividerComponentModule,\r\n ButtonComponentModule,\r\n EllipseTextDirective,\r\n MatTooltipModule\r\n ],\r\n templateUrl: './media-card.component.html',\r\n styleUrl: './media-card.component.scss'\r\n})\r\nexport class MediaCardComponent {\r\n /**\r\n * The title of the card\r\n * @type {string}\r\n * @memberof MediaCardComponent\r\n */\r\n @Input({ required: true }) title: string;\r\n /**\r\n * The description of the card\r\n * @type {string}\r\n * @memberof MediaCardComponent\r\n */\r\n @Input({ required: true }) description: string;\r\n /**\r\n * The image of the card\r\n * @type {string}\r\n * @memberof MediaCardComponent\r\n */\r\n @Input({ required: true }) image: string;\r\n /**\r\n * The label of the button\r\n * @type {string}\r\n * @memberof MediaCardComponent\r\n */\r\n @Input({ required: true }) buttonLabel = '';\r\n @Output() buttonClick = new EventEmitter<void>();\r\n protected showTitleTooltip = false;\r\n}\r\n","<img [attr.src]=\"image\" alt=\"card image\">\r\n\r\n<div class=\"media-card-content\">\r\n <div class=\"media-card-title\" [isMultiline]=\"true\" [matTooltip]=\"showTitleTooltip ? title : ''\" uiEllipseText (onChangeTextState)=\"showTitleTooltip = $event\">\r\n {{ title }}\r\n </div>\r\n\r\n <div class=\"media-card-description\">\r\n {{ description }}\r\n </div>\r\n</div>\r\n\r\n<ui-divider [size]=\"'small'\"></ui-divider>\r\n\r\n<div class=\"media-card-action\">\r\n <ui-button [variant]=\"'ghost'\" [label]=\"buttonLabel\" (buttonClickEvent)=\"buttonClick.emit()\"></ui-button>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { Chart, ChartData, ChartOptions, TooltipOptions } from 'chart.js';\r\nimport { Color } from '../../models/colors.model';\r\nimport { _DeepPartialObject } from 'chart.js/dist/types/utils';\r\nimport gaussian from 'gaussian';\r\n\r\nenum PercentileThreshold {\r\n LOWEST = 20,\r\n LOWER = 40,\r\n AVERAGE = 60,\r\n HIGHER = 80,\r\n HIGHEST = 100,\r\n}\r\n\r\n@Component({\r\n selector: 'ui-gaussian-chart',\r\n templateUrl: './gaussian-chart.component.html',\r\n styleUrls: ['./gaussian-chart.component.scss'],\r\n})\r\nexport class GaussianChartComponent implements OnInit {\r\n /**\r\n * The candidate score to be displayed on the chart.\r\n * @type {number}\r\n * @memberof GaussianChartComponent\r\n */\r\n @Input() score!: number;\r\n\r\n /**\r\n * The best candidate score to be displayed on the chart.\r\n * @type {number}\r\n * @memberof GaussianChartComponent\r\n */\r\n @Input() bestCandidateScore!: number;\r\n\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof SpinnerComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n readonly minXValue = -3;\r\n readonly maxXValue = 3;\r\n readonly minYValue = 0;\r\n readonly stepSize = 0.1;\r\n readonly pointsToSkip = 2;\r\n readonly actualMinXvalue = this.minXValue + this.pointsToSkip * this.stepSize;\r\n readonly actualMaxXvalue = this.maxXValue - this.pointsToSkip * this.stepSize;\r\n readonly normalContainerPadding = 50; //in px\r\n readonly bestScoreThreshold = 92;\r\n readonly bestScoreSpacingRight = '4px';\r\n readonly bestScoreSpacingLeft = '-39px';\r\n\r\n PercentileThreshold = PercentileThreshold;\r\n chart: Chart;\r\n gaussianDistribution: gaussian.Gaussian;\r\n activeBucket: PercentileThreshold;\r\n overlayXValue: number;\r\n overlayYValue: number;\r\n overlayXBestScoreValue: number;\r\n overlayYBestScoreValue: number;\r\n maxYValue: number;\r\n\r\n gaussianChartData: ChartData<'line'> = {\r\n labels: [],\r\n datasets: [],\r\n };\r\n gaussianChartOptions: ChartOptions<'line'>;\r\n protected readonly translationContext = 'CHARTS.GAUSSIAN_CHART.';\r\n\r\n ngOnInit(): void {\r\n if (this.score === undefined || this.score === null) {\r\n throw new Error('Input \"score\" is required for GaussianChartComponent.');\r\n }\r\n if (this.bestCandidateScore === undefined || this.bestCandidateScore === null) {\r\n throw new Error('Input \"bestCandidateScore\" is required for GaussianChartComponent.');\r\n }\r\n this.setActiveBucket();\r\n this.gaussianDistribution = gaussian(0, 1);\r\n this.maxYValue = this.gaussianDistribution.pdf(0);\r\n this.setOverlayValues();\r\n this.setOverlayValuesForBestScore();\r\n this.setChartData();\r\n this.setChartOptions();\r\n }\r\n\r\n private setChartData() {\r\n const xValues: number[] = [];\r\n const yValues: number[] = [];\r\n const labels = this.generateLabels(this.minXValue, this.maxXValue, this.stepSize);\r\n\r\n for (let x = this.minXValue; x < this.maxXValue + this.stepSize; x = Number((x + this.stepSize).toFixed(2))) {\r\n xValues.push(x);\r\n yValues.push(this.gaussianDistribution.pdf(x));\r\n }\r\n\r\n this.gaussianChartData = {\r\n labels,\r\n datasets: this.generateDataset(yValues),\r\n };\r\n }\r\n\r\n private setChartOptions() {\r\n this.gaussianChartOptions = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scales: this.getScale(),\r\n plugins: {\r\n // To be used only for dev purpose\r\n // tooltip: this.getTooltip(),\r\n // Comment the below line if you enable the call for tooltip\r\n tooltip: {\r\n enabled: false,\r\n },\r\n legend: {\r\n display: false,\r\n },\r\n },\r\n };\r\n }\r\n\r\n private getTooltip(): _DeepPartialObject<TooltipOptions<'line'>> {\r\n return {\r\n intersect: false,\r\n mode: 'nearest',\r\n displayColors: false,\r\n callbacks: {\r\n label: tooltipItem => {\r\n const value = (this.gaussianDistribution.cdf(parseFloat(tooltipItem.label)) * 100).toFixed(2);\r\n return `${value}%`;\r\n },\r\n title: () => '', // Disable the default title\r\n },\r\n };\r\n }\r\n\r\n private getScale(): {\r\n x: { display: boolean; grid: { display: boolean } };\r\n y: { display: boolean; grid: { display: boolean } };\r\n } {\r\n return {\r\n x: {\r\n display: false,\r\n grid: {\r\n display: false, // Disable grid lines for x-axis\r\n },\r\n },\r\n y: {\r\n display: false,\r\n grid: {\r\n display: false, // Disable grid lines for y-axis\r\n },\r\n },\r\n };\r\n }\r\n\r\n private generateDataset(\r\n yValues: number[]\r\n ): { data: any[]; label: string; borderColor: Color; borderWidth: number; pointRadius: number; fill: boolean }[] {\r\n return [\r\n {\r\n data: [...yValues.slice(0, this.pointsToSkip), ...Array(yValues.length - this.pointsToSkip).fill(null)],\r\n label: '',\r\n borderColor: this.activeBucket === PercentileThreshold.LOWEST ? Color.ACCENT_20 : Color.TGO_WHITE,\r\n borderWidth: 2,\r\n pointRadius: 0,\r\n fill: false,\r\n },\r\n {\r\n data: [\r\n ...Array(this.pointsToSkip).fill(null),\r\n ...yValues.slice(this.pointsToSkip, yValues.length - this.pointsToSkip),\r\n ...Array(this.pointsToSkip).fill(null),\r\n ],\r\n label: '',\r\n borderColor: Color.BLACK,\r\n borderWidth: 2,\r\n pointRadius: 0,\r\n fill: false,\r\n },\r\n {\r\n data: [\r\n ...Array(yValues.length - this.pointsToSkip).fill(null),\r\n ...yValues.slice(yValues.length - this.pointsToSkip, yValues.length),\r\n ],\r\n label: '',\r\n borderColor: this.activeBucket === PercentileThreshold.HIGHEST ? Color.ACCENT_20 : Color.TGO_WHITE,\r\n borderWidth: 2,\r\n pointRadius: 0,\r\n fill: false,\r\n },\r\n ];\r\n }\r\n\r\n private generateLabels(min: number, max: number, step: number): string[] {\r\n const labels = [];\r\n for (let x = min; x < max + step; x = Number((x + step).toFixed(2))) {\r\n labels.push(x.toFixed(1));\r\n }\r\n return labels;\r\n }\r\n\r\n private setActiveBucket(): void {\r\n if (this.score < PercentileThreshold.LOWEST) {\r\n this.activeBucket = PercentileThreshold.LOWEST;\r\n } else if (this.score >= PercentileThreshold.LOWEST && this.score < PercentileThreshold.LOWER) {\r\n this.activeBucket = PercentileThreshold.LOWER;\r\n } else if (this.score >= PercentileThreshold.LOWER && this.score < PercentileThreshold.AVERAGE) {\r\n this.activeBucket = PercentileThreshold.AVERAGE;\r\n } else if (this.score >= PercentileThreshold.AVERAGE && this.score < PercentileThreshold.HIGHER) {\r\n this.activeBucket = PercentileThreshold.HIGHER;\r\n } else if (this.score >= PercentileThreshold.HIGHER) {\r\n this.activeBucket = PercentileThreshold.HIGHEST;\r\n }\r\n }\r\n\r\n // For more context: https://testgorilla.atlassian.net/wiki/spaces/SR/pages/1813905736/Percentiles+curve+FE+implementation\r\n private setOverlayValues(): void {\r\n const { overlayXValue, overlayYValue } = this.calculateOverlayValues(this.score);\r\n this.overlayXValue = overlayXValue;\r\n this.overlayYValue = overlayYValue;\r\n }\r\n\r\n private setOverlayValuesForBestScore(): void {\r\n const { overlayXValue, overlayYValue } = this.calculateOverlayValues(this.bestCandidateScore);\r\n this.overlayXBestScoreValue = overlayXValue;\r\n this.overlayYBestScoreValue = overlayYValue;\r\n }\r\n\r\n private calculateOverlayValues(score: number): { overlayXValue: number; overlayYValue: number } {\r\n const xValue = this.mapRange(score, 0, 100, this.minXValue, this.maxXValue);\r\n const yValue = this.gaussianDistribution.pdf(xValue);\r\n let overlayXValue = score;\r\n let overlayYValue = this.mapRange(yValue, this.minYValue, this.maxYValue, 0, 100);\r\n\r\n if (xValue <= this.actualMinXvalue || xValue >= this.actualMaxXvalue) {\r\n const xValueExtreme = xValue <= this.actualMinXvalue ? this.actualMinXvalue : this.actualMaxXvalue;\r\n const yValueExtreme = this.gaussianDistribution.pdf(xValueExtreme);\r\n overlayXValue = this.mapRange(xValueExtreme, this.minXValue, this.maxXValue, 0, 100);\r\n overlayYValue = this.mapRange(yValueExtreme, this.minYValue, this.maxYValue, 0, 100);\r\n }\r\n\r\n return { overlayXValue, overlayYValue };\r\n }\r\n\r\n private mapRange(value: number, inMin: number, inMax: number, outMin: number, outMax: number): number {\r\n return ((value - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin;\r\n }\r\n\r\n getCalcPosition([percentage, pixels, operation = 'add']: [number, number, 'add' | 'subtract']): string {\r\n const operator = operation === 'add' ? '+' : '-';\r\n return `calc(${percentage}% ${operator} ${pixels}px)`;\r\n }\r\n\r\n getBestScoreContentPosition(bestScore: number): string {\r\n return bestScore < this.bestScoreThreshold ? this.bestScoreSpacingRight : this.bestScoreSpacingLeft;\r\n }\r\n\r\n getScoreTranslationKey(score: number): string {\r\n if (score < PercentileThreshold.LOWEST) {\r\n return 'PERCENTILE_LABEL_TYPES.WELL_BELOW_AVERAGE';\r\n } else if (score >= PercentileThreshold.LOWEST && score < PercentileThreshold.LOWER) {\r\n return 'PERCENTILE_LABEL_TYPES.BELOW_AVERAGE';\r\n } else if (score >= PercentileThreshold.LOWER && score < PercentileThreshold.AVERAGE) {\r\n return 'PERCENTILE_LABEL_TYPES.AVERAGE';\r\n } else if (score >= PercentileThreshold.AVERAGE && score < PercentileThreshold.HIGHER) {\r\n return 'PERCENTILE_LABEL_TYPES.ABOVE_AVERAGE';\r\n } else {\r\n return 'PERCENTILE_LABEL_TYPES.WELL_ABOVE_AVERAGE';\r\n }\r\n }\r\n}\r\n","<div class=\"chart-section\" *ngIf=\"score\"\r\n [attr.aria-label]=\"(translationContext + 'ARIA_LABEL') | uiTranslate :\r\n { score: score,\r\n activeBucket: getScoreTranslationKey(score) | uiTranslate | async,\r\n bestCandidateScore: bestCandidateScore,\r\n activeBucketBestScore: getScoreTranslationKey(bestCandidateScore) | uiTranslate | async\r\n } | async\"\r\n tabindex=\"0\">\r\n <div class=\"chart-range-wrapper\">\r\n <div class=\"normal-chart-container\">\r\n <div class=\"normal-chart\">\r\n <canvas baseChart\r\n [data]=\"gaussianChartData\"\r\n [options]=\"gaussianChartOptions\"\r\n type=\"line\"\r\n class=\"chart\"\r\n >\r\n </canvas>\r\n <div class=\"overlay-icon\"\r\n [style.bottom]=\"[overlayYValue, 3, 'subtract'] | memoizeFunc : getCalcPosition\"\r\n [style.left]=\"[overlayXValue, 20, 'subtract'] | memoizeFunc : getCalcPosition\">\r\n <div class=\"drop-icon\">\r\n <ui-icon name=\"Pin-marker\" size=\"40\"></ui-icon>\r\n <span class=\"curve-score\">{{score}}</span>\r\n </div>\r\n </div>\r\n <div class=\"best-score\"\r\n [style.height]=\"[100 - overlayYBestScoreValue, normalContainerPadding, 'add'] | memoizeFunc : getCalcPosition\"\r\n [style.bottom]=\"overlayYBestScoreValue + '%'\"\r\n [style.left]=\"overlayXBestScoreValue + '%'\">\r\n <div class=\"best-score-content\"\r\n [style.left]=\"bestCandidateScore | memoizeFunc : getBestScoreContentPosition : this\">\r\n <ui-icon name=\"Trophy\"></ui-icon>\r\n {{bestCandidateScore}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"overlay\">\r\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.LOWEST\">\r\n <div class=\"column-item\" [class.text-bold]=\"activeBucket === PercentileThreshold.LOWEST\"\r\n [matTooltip]=\"((translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWEST_TOOLTIP') | uiTranslate | async) || ''\">\r\n {{(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWEST') | uiTranslate | async}}\r\n </div>\r\n </div>\r\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.LOWER\">\r\n <div class=\"column-item\" [class.text-bold]=\"activeBucket === PercentileThreshold.LOWER\"\r\n [matTooltip]=\"((translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWER_TOOLTIP') | uiTranslate | async) || ''\">\r\n {{(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWER') | uiTranslate | async}}\r\n </div>\r\n </div>\r\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.AVERAGE\">\r\n <div class=\"column-item\" [class.text-bold]=\"activeBucket === PercentileThreshold.AVERAGE\"\r\n [matTooltip]=\"((translationContext + 'PERCENTAGE_BUCKETS_GRAPH.AVERAGE_TOOLTIP') | uiTranslate | async) || ''\">\r\n {{(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.AVERAGE') | uiTranslate | async}}\r\n </div>\r\n </div>\r\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.HIGHER\">\r\n <div class=\"column-item\" [class.text-bold]=\"activeBucket === PercentileThreshold.HIGHER\"\r\n [matTooltip]=\"((translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHER_TOOLTIP') | uiTranslate | async) || ''\">\r\n {{(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHER') | uiTranslate | async}}\r\n </div>\r\n </div>\r\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.HIGHEST\">\r\n <div class=\"column-item\" [class.text-bold]=\"activeBucket === PercentileThreshold.HIGHEST\"\r\n [matTooltip]=\"((translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHEST_TOOLTIP') | uiTranslate | async) || ''\">\r\n {{(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHEST') | uiTranslate | async}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"range\">\r\n <div>1</div>\r\n <div>20</div>\r\n <div>40</div>\r\n <div>60</div>\r\n <div>80</div>\r\n <div>99</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"legend-container mt-16\">\r\n <div class=\"legend\">\r\n <ui-icon name=\"Dot\"></ui-icon>\r\n {{(translationContext + 'CANDIDATE_SCORE') | uiTranslate | async}}\r\n </div>\r\n <div class=\"legend\">\r\n <ui-icon name=\"Trophy\"></ui-icon>\r\n {{(translationContext + 'HIGHEST_SCORE') | uiTranslate | async}}\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { GaussianChartComponent } from './gaussian-chart.component';\r\nimport { NgChartsModule } from 'ng2-charts';\r\nimport { Chart, registerables } from 'chart.js';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { CommonModule, NgClass } from '@angular/common';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\nimport { MemoizeFuncPipe } from '../../pipes/memoize-func.pipe';\r\n\r\nChart.register(...registerables);\r\n\r\n@NgModule({\r\n declarations: [GaussianChartComponent],\r\n exports: [GaussianChartComponent],\r\n imports: [\r\n NgClass,\r\n UiTranslatePipe,\r\n NgChartsModule,\r\n MatTooltipModule,\r\n CommonModule,\r\n IconComponentModule,\r\n MemoizeFuncPipe,\r\n ],\r\n})\r\nexport class GaussianChartComponentModule {}\r\n","import { ChangeDetectionStrategy, Component, Inject, Input, OnInit, Optional } from '@angular/core';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport {\r\n SkillAreaData,\r\n SkillAreaGroup,\r\n SkillAreaGroupTypes,\r\n SkillAreaSpiderChartData,\r\n} from '../../models/universal-skills-report.model';\r\nimport { UniversalSkillsService } from '../../services/universal-skills.service';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { forkJoin, take } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ui-universal-skills-spider-charts',\r\n templateUrl: './universal-skills-spider-charts.component.html',\r\n styleUrls: ['./universal-skills-spider-charts.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniversalSkillsSpiderChartsComponent implements OnInit {\r\n /**\r\n * Defines the application theme\r\n * @property applicationTheme\r\n * @type {ApplicationTheme}\r\n * @memberof UniversalSkillsSpiderChartsComponent\r\n */\r\n @Input() applicationTheme: ApplicationTheme = 'light';\r\n\r\n /**\r\n * The list of items to be used\r\n * @property items\r\n * @type {SkillAreaData[]}\r\n * @memberof UniversalSkillsReportComponent\r\n */\r\n @Input() skillAreaDataList: SkillAreaData[];\r\n\r\n /**\r\n * Defines if the component is loading\r\n * @property loading\r\n * @type {boolean}\r\n * @memberof UniversalSkillsSpiderChartsComponent\r\n */\r\n @Input() loading: boolean = false;\r\n\r\n /**\r\n * Defines the size of the spider chart\r\n * @property size\r\n * @type {'small' | 'large'}\r\n * @memberof UniversalSkillsSpiderChartsComponent\r\n */\r\n @Input() size: 'small' | 'large' = 'large';\r\n\r\n readonly translationContext = 'UNIVERSAL_SKILLS_REPORT.';\r\n\r\n skillAreaGroupMap: Record<SkillAreaGroupTypes, SkillAreaGroup>;\r\n skillAreaSpiderChartData: SkillAreaSpiderChartData[] = [];\r\n\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private universalSkillsService: UniversalSkillsService,\r\n private uiTranslatePipe: UiTranslatePipe\r\n ) {\r\n if (defaultAppTheme) {\r\n this.applicationTheme = defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.universalSkillsService.initializeSkillAreaGroupMap();\r\n this.universalSkillsService.prepareSkillAreaGroupMap(this.skillAreaDataList);\r\n this.skillAreaGroupMap = this.universalSkillsService.getSkillAreaGroupMap();\r\n this.prepareSpiderChartData();\r\n }\r\n\r\n prepareSpiderChartData(): void {\r\n this.skillAreaSpiderChartData = [];\r\n Object.values(this.skillAreaGroupMap).forEach(skillAreaGroup => {\r\n const labelObservables = skillAreaGroup.skillAreaList.map(skillArea =>\r\n this.uiTranslatePipe.transform(`${this.translationContext}SKILL_AREA_TYPES.${skillArea.skillAreaName}.TITLE`)\r\n );\r\n\r\n const labelDescriptionObservables = skillAreaGroup.skillAreaList.map(skillArea =>\r\n this.uiTranslatePipe.transform(\r\n `${this.translationContext}SKILL_AREA_TYPES.${skillArea.skillAreaName}.DESCRIPTION`\r\n )\r\n );\r\n\r\n const allObservables = [...labelObservables, ...labelDescriptionObservables];\r\n const translations: string[] = [];\r\n allObservables.forEach(observable => {\r\n observable.pipe(take(1)).subscribe(translation => {\r\n translations.push(translation);\r\n });\r\n });\r\n const labels = translations.slice(0, labelObservables.length);\r\n const labelDescriptions = translations.slice(labelObservables.length);\r\n\r\n this.skillAreaSpiderChartData.push({\r\n title: skillAreaGroup.title,\r\n description: skillAreaGroup.description,\r\n spiderChartData: {\r\n labels: labels,\r\n labelDescription: labelDescriptions,\r\n plotData:\r\n skillAreaGroup.skillAreaList?.[0]?.poolPercentileScoring !== undefined\r\n ? [\r\n {\r\n data: skillAreaGroup.skillAreaList.map(skillArea => skillArea.percentileScoring),\r\n databaseLabel: \"This candidate's score\",\r\n },\r\n {\r\n data: skillAreaGroup.skillAreaList.map(skillArea => skillArea.poolPercentileScoring ?? 0),\r\n databaseLabel: 'Average score of all candidates',\r\n },\r\n ]\r\n : [\r\n {\r\n data: skillAreaGroup.skillAreaList.map(skillArea => skillArea.percentileScoring),\r\n databaseLabel: \"This candidate's score\",\r\n },\r\n ],\r\n },\r\n });\r\n });\r\n }\r\n}\r\n","@for (spiderChartData of skillAreaSpiderChartData; track spiderChartData) {\r\n <ui-accordion class=\"universal-skills-spider-charts\" [label]=\"(spiderChartData.title | uiTranslate | async) || ''\" variant=\"filter\">\r\n <ui-spider-chart [spiderChartData]=\"spiderChartData.spiderChartData\" [loading]=\"loading\" [size]=\"size\"></ui-spider-chart>\r\n </ui-accordion>\r\n @if ($index < skillAreaSpiderChartData.length - 1) {\r\n <ui-divider class=\"universal-skills-spider-charts-divider\" size=\"small\"></ui-divider>\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, KeyValuePipe } from '@angular/common';\r\nimport { UniversalSkillsSpiderChartsComponent } from './universal-skills-spider-charts.component';\r\nimport { AccordionComponentModule } from '../accordion/accordion.component.module';\r\nimport { BadgeComponentModule } from '../badge/badge.component.module';\r\nimport { ProgressBarComponentModule } from '../progress-bar/progress-bar.component.module';\r\nimport { MemoizeFuncPipe } from '../../pipes/memoize-func.pipe';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { OrdinalSuffixPipe } from '../../pipes/ui-ordinal-suffix.pipe';\r\nimport { SpiderChartComponentModule } from '../spider-chart/spider-chart.module';\r\nimport { DividerComponentModule } from '../divider/divider.component.module';\r\n\r\n@NgModule({\r\n declarations: [UniversalSkillsSpiderChartsComponent],\r\n imports: [\r\n CommonModule,\r\n AccordionComponentModule,\r\n BadgeComponentModule,\r\n ProgressBarComponentModule,\r\n SpiderChartComponentModule,\r\n DividerComponentModule,\r\n MemoizeFuncPipe,\r\n UiTranslatePipe,\r\n OrdinalSuffixPipe,\r\n KeyValuePipe,\r\n ],\r\n providers: [UiTranslatePipe],\r\n exports: [UniversalSkillsSpiderChartsComponent],\r\n})\r\nexport class UniversalSkillsSpiderChartsComponentModule {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n computed,\r\n EventEmitter,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n Optional,\r\n Output,\r\n QueryList,\r\n signal,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { ApplicationTheme } from '../../models/application-theme.model';\r\nimport { FilterButtonOption } from './filter-button.model';\r\nimport { IconName } from '../icon/icon.model';\r\nimport { ButtonIconPosition } from '../button/button.model';\r\nimport { FocusKeyManager } from '@angular/cdk/a11y';\r\nimport { IKeyboardEvent } from '../../models/keyboard-events.model';\r\n\r\n@Component({\r\n selector: 'ui-filter-button',\r\n templateUrl: './filter-button.component.html',\r\n styleUrls: ['./filter-button.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FilterButtonComponent implements OnChanges {\r\n @HostBinding() class = 'ui-filter-button';\r\n\r\n /**\r\n * The button label when no value is selected.\r\n *\r\n * @type {string}\r\n * @memberof FilterButtonComponent\r\n */\r\n @Input() label = '';\r\n\r\n /**\r\n * Optional message to display on the overflow bottom.\r\n *\r\n * @type {string}\r\n * @memberof FilterButtonComponent\r\n */\r\n @Input() message? = '';\r\n\r\n /**\r\n * List of selected values.\r\n *\r\n * @type {string[]}\r\n * @memberof FilterButtonComponent\r\n */\r\n @Input() value: string[] = [];\r\n\r\n /**\r\n * Whether the component is disabled.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof FilterButtonComponent\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * List of options.\r\n *\r\n * @type {OptionType}\r\n * @memberof FilterButtonComponent\r\n */\r\n @Input() options: FilterButtonOption[] = [];\r\n\r\n /**\r\n * Whether the user should be allowed to clear the values.\r\n * Default: true.\r\n *\r\n * @type {boolean}\r\n * @memberof FilterButtonComponent\r\n */\r\n @Input() allowClear = true;\r\n\r\n /**\r\n * Whether the user should be allowed to select single or multiple values.\r\n * Default: false.\r\n *\r\n * @type {boolean}\r\n * @memberof FilterButtonComponent\r\n */\r\n @Input() singleSelection? = false;\r\n\r\n /**\r\n * The icon name to display.\r\n *\r\n * @type {string}\r\n * @memberof FilterButtonComponent\r\n *\r\n **/\r\n\r\n @Input() iconName?: IconName;\r\n\r\n /**\r\n * The position of the icon.\r\n * Default: 'right'.\r\n *\r\n * @type {ButtonIconPosition}\r\n * @memberof FilterButtonComponent\r\n */\r\n @Input() iconPosition?: ButtonIconPosition = 'right';\r\n\r\n /**\r\n * Emits the list of selected values when the selection changes.\r\n *\r\n * @type {EventEmitter<string[]>}\r\n * @memberof FilterButtonComponent\r\n */\r\n @Output() changed = new EventEmitter<string[]>();\r\n /**\r\n *\r\n * Defines the application theme\r\n *\r\n * @type {ApplicationTheme}\r\n * @memberof FilterButtonComponent\r\n */\r\n @HostBinding('attr.theme')\r\n @Input()\r\n applicationTheme: ApplicationTheme = 'light';\r\n\r\n @ViewChild('overlayContainer') overlayContainer: any;\r\n @ViewChildren('filterOption') filterOptions: QueryList<any>;\r\n\r\n isOpen = signal<boolean>(false);\r\n displayedLabel = signal<string>('');\r\n tooltip = signal<string>('');\r\n search = signal<string>('');\r\n showTooltip: { [key: string]: boolean } = {};\r\n displayedOptions = computed(() => {\r\n let lastSectionTitle: string;\r\n return this.options\r\n .map(option => {\r\n lastSectionTitle = option.sectionTitle || lastSectionTitle;\r\n return { ...option, sectionTitle: lastSectionTitle };\r\n })\r\n .filter(option => option.label.toLowerCase().includes(this.search().toLowerCase()));\r\n });\r\n readonly MIN_OPTIONS_LENGTH_FOR_SEARCH = 8;\r\n protected keyManager: FocusKeyManager<HTMLElement>;\r\n protected translationContext = 'FILTER_BUTTON.';\r\n constructor(\r\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\r\n private readonly cdr: ChangeDetectorRef\r\n ) {\r\n if (this.defaultAppTheme) {\r\n this.applicationTheme = this.defaultAppTheme;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // eslint-disable-next-line dot-notation\r\n if (changes['value']) {\r\n this.updateLabel();\r\n }\r\n }\r\n\r\n clearValue(): void {\r\n this.value = [];\r\n this.updateLabel();\r\n this.changed.emit(this.value);\r\n }\r\n\r\n outsideClick() {\r\n window.setTimeout(() => {\r\n this.isOpen.set(false);\r\n });\r\n }\r\n\r\n toggle(): void {\r\n this.isOpen.set(!this.isOpen());\r\n if (this.isOpen()) {\r\n this.keyManager = new FocusKeyManager(this.filterOptions).withWrap();\r\n this.keyManager.setActiveItem(0);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n isSelected(value?: string) {\r\n return this.value?.includes(value || '');\r\n }\r\n\r\n optionChanged(selected: boolean, option: FilterButtonOption) {\r\n this.value = this.value || [];\r\n if (this.singleSelection) {\r\n this.value = selected ? [option.value] : [];\r\n } else {\r\n if (selected) {\r\n this.value.push(option.value);\r\n } else {\r\n this.value.splice(this.value.indexOf(option.value), 1);\r\n }\r\n }\r\n this.changed.emit(this.value);\r\n this.updateLabel();\r\n }\r\n\r\n keyDownHandler(ev: any) {\r\n if (ev.key === IKeyboardEvent.ARROW_DOWN) {\r\n ev.preventDefault();\r\n this.keyManager.setNextItemActive();\r\n } else if (ev.key === IKeyboardEvent.ARROW_UP) {\r\n ev.preventDefault();\r\n this.keyManager.setPreviousItemActive();\r\n } else if (ev.key === IKeyboardEvent.ESCAPE) {\r\n this.isOpen.set(false);\r\n }\r\n }\r\n\r\n onLabelEllipsisChange(isEllipsis: boolean, value: string): void {\r\n this.showTooltip[value] = isEllipsis;\r\n }\r\n\r\n private updateLabel() {\r\n this.value = this.value || [];\r\n let displayedLabel = '';\r\n let tooltip = '';\r\n const sortedLabels = this.options.filter(option => this.value.includes(option.value)).map(item => item?.label || '');\r\n\r\n if (sortedLabels.length > 0) {\r\n displayedLabel = this.options.find(option => option.value === this.value[0])?.label || '';\r\n tooltip = `${this.label}${sortedLabels.map(value => `\\n • ${value}`).join('')}`;\r\n }\r\n\r\n if (this.value.length > 1) {\r\n displayedLabel += ` (+${this.value.length - 1})`;\r\n }\r\n this.displayedLabel.set(displayedLabel);\r\n this.tooltip.set(tooltip);\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n","<ng-container>\r\n <ui-button\r\n [matTooltip]=\"tooltip()\"\r\n [matTooltipClass]=\"'tooltip-multi-line'\"\r\n [matTooltipPosition]=\"'above'\"\r\n class=\"ui-filter-button-trigger\"\r\n [class.button-opened]=\"isOpen()\"\r\n [variant]=\"value.length || isOpen() ? 'secondary' : 'ghost'\"\r\n [label]=\"displayedLabel() || label\"\r\n [disabled]=\"disabled || options.length === 0\"\r\n (click)=\"toggle()\"\r\n type=\"button\"\r\n size=\"small\"\r\n [role]=\"'combobox'\"\r\n [tooltip]=\"value.length ? ' ': ''\"\r\n [attr.aria-expanded]=\"isOpen()\"\r\n [iconName]=\"iconName || (isOpen() ? 'Arrow-chevron-up-filled' : 'Arrow-chevron-down-filled')\"\r\n [iconPosition]=\"iconPosition\"\r\n [applicationTheme]=\"applicationTheme\"\r\n cdkOverlayOrigin\r\n #trigger=\"cdkOverlayOrigin\"\r\n ></ui-button>\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n (overlayOutsideClick)=\"outsideClick()\"\r\n >\r\n <div style=\"position: absolute; left: -9999px\" [attr.aria-live]=\"'polite'\">\r\n {{ displayedOptions()[keyManager.activeItemIndex ?? 0].label }}\r\n {{\r\n translationContext + 'ACTIVE_ITEM'\r\n | uiTranslate: { active: (keyManager.activeItemIndex ?? 0) + 1, total: filterOptions.length }\r\n | async\r\n }}\r\n </div>\r\n <div style=\"position: absolute; left: -9999px\" [attr.aria-live]=\"'polite'\">\r\n {{ displayedOptions()[keyManager.activeItemIndex ?? 0].label }}\r\n {{\r\n (value.includes(displayedOptions()[keyManager.activeItemIndex ?? 0].value)\r\n ? translationContext + 'SELECTED'\r\n : translationContext + 'DESELECTED'\r\n )\r\n | uiTranslate\r\n | async\r\n }}\r\n </div>\r\n <div class=\"ui-filter-button\" #overlayContainer>\r\n <div class=\"ui-filter-button-header\" *ngIf=\"options.length > MIN_OPTIONS_LENGTH_FOR_SEARCH\">\r\n <ui-field\r\n type=\"search\"\r\n [showBottomContent]=\"false\"\r\n [ngModel]=\"search()\"\r\n (ngModelChange)=\"search.set($event)\"\r\n [applicationTheme]=\"applicationTheme\"\r\n ></ui-field>\r\n </div>\r\n <div class=\"ui-filter-button-list\" #list (keydown)=\"keyDownHandler($event)\">\r\n <div *ngFor=\"let section of displayedOptions(); index as i\">\r\n <div\r\n *ngIf=\"section.sectionTitle && section.sectionTitle !== displayedOptions()[i - 1]?.sectionTitle\"\r\n class=\"section-title\"\r\n >\r\n {{ section.sectionTitle }}\r\n </div>\r\n <div\r\n class=\"item\"\r\n [class.item-selected]=\"isSelected(section.value)\"\r\n (click)=\"optionChanged(!isSelected(section.value), section)\"\r\n >\r\n <ui-radio-button\r\n (click)=\"$event.stopPropagation()\"\r\n *ngIf=\"singleSelection\"\r\n [tabIndex]=\"i === 0 ? 0 : -1\"\r\n [selected]=\"isSelected(section.value)\"\r\n (changeRadio)=\"optionChanged($event.optionChecked, section)\"\r\n [applicationTheme]=\"applicationTheme\"\r\n #filterOption\r\n >\r\n </ui-radio-button>\r\n <ui-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n [class.with-label-number]=\"section.labelNumber !== undefined\"\r\n *ngIf=\"!singleSelection\"\r\n [tabIndex]=\"i === 0 ? 0 : -1\"\r\n [checked]=\"isSelected(section.value)\"\r\n (changed)=\"optionChanged($event, section)\"\r\n [applicationTheme]=\"applicationTheme\"\r\n #filterOption\r\n ></ui-checkbox>\r\n <ui-icon *ngIf=\"section.icon\" [applicationTheme]=\"applicationTheme\" [name]=\"section.icon\"></ui-icon>\r\n <span\r\n #tooltip=\"matTooltip\"\r\n class=\"item-label\"\r\n uiEllipseText\r\n (onChangeTextState)=\"onLabelEllipsisChange($event, section.value)\"\r\n [matTooltip]=\"showTooltip[section.value] ? section.label : ''\"\r\n [matTooltipClass]=\"applicationTheme\"\r\n >\r\n {{ section.label }}\r\n </span>\r\n <span class=\"item-number\" *ngIf=\"section.labelNumber !== undefined\">({{ section.labelNumber }})</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ui-filter-button-footer\" *ngIf=\"allowClear || message\">\r\n <ui-button\r\n *ngIf=\"allowClear\"\r\n variant=\"text\"\r\n size=\"small\"\r\n [label]=\"('COMMON.RESET' | uiTranslate | async)!\"\r\n (click)=\"clearValue()\"\r\n [applicationTheme]=\"applicationTheme\"\r\n (keydown.escape)=\"toggle()\"\r\n ></ui-button>\r\n <div class=\"ui-filter-button-footer-message\">\r\n {{ message }}\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ng-container>\r\n","import { EllipseTextDirective } from './../../directives/ellipse-text.directive';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { FilterButtonComponent } from './filter-button.component';\r\nimport { ButtonComponentModule } from '../button/button.component.module';\r\nimport { CheckboxComponentModule } from '../checkbox/checkbox.component.module';\r\nimport { RadioButtonComponentModule } from '../radio-button/radio-button.component.module';\r\nimport { FieldComponentModule } from '../field/field.component.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { UiTranslatePipe } from '../../pipes/ui-translate.pipe';\r\nimport { IconComponentModule } from '../icon/icon.component.module';\r\n\r\n@NgModule({\r\n declarations: [FilterButtonComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatTooltipModule,\r\n OverlayModule,\r\n UiTranslatePipe,\r\n ButtonComponentModule,\r\n IconComponentModule,\r\n CheckboxComponentModule,\r\n FieldComponentModule,\r\n EllipseTextDirective,\r\n RadioButtonComponentModule,\r\n ],\r\n exports: [FilterButtonComponent],\r\n})\r\nexport class FilterButtonComponentModule {}\r\n","/* eslint-disable */\r\n\r\n/* Components */\r\n// Universal skills report\r\nexport * from './components/universal-skills-report/universal-skills-report.component';\r\nexport * from './components/universal-skills-report/universal-skills-report.component.module';\r\nexport * from './models/universal-skills-report.model';\r\n// Alert Banner\r\nexport * from './components/alert-banner/alert-banner.component';\r\nexport * from './components/alert-banner/alert-banner.component.module';\r\n// Button\r\nexport * from './components/button/button.component';\r\nexport * from './components/button/button.component.module';\r\nexport * from './components/button/button.model';\r\n// Card\r\nexport * from './components/card/card.component';\r\nexport * from './components/card/card.component.module';\r\nexport * from './components/card/card.model';\r\n// Checkbox\r\nexport * from './components/checkbox/checkbox.component';\r\nexport * from './components/checkbox/checkbox.component.module';\r\n// Dialog\r\nexport * from './components/dialog/dialog.component';\r\nexport * from './components/dialog/dialog.component.module';\r\nexport * from './components/dialog/dialog.service';\r\nexport * from './components/dialog/dialog.model';\r\n// Elevation shadow\r\nexport * from './components/elevation-shadow/elevation-shadow.component';\r\nexport * from './components/elevation-shadow/elevation-shadow.component.module';\r\nexport * from './components/elevation-shadow/elevation-shadow.constant';\r\n// Field\r\nexport * from './components/field/field.component';\r\nexport * from './components/field/field.component.module';\r\nexport * from './components/field/field.model';\r\n// File upload\r\nexport * from './components/file-upload/file-upload.component';\r\nexport * from './components/file-upload/file-upload.component.module';\r\n// Icon\r\nexport * from './components/icon/icon.component';\r\nexport * from './components/icon/icon.component.module';\r\nexport * from './components/icon/icon.model';\r\n// Icon + label\r\nexport * from './components/icon-label/icon-label.component';\r\nexport * from './components/icon-label/icon-label.component.module';\r\n// Logo\r\nexport * from './components/logo/logo.component';\r\nexport * from './components/logo/logo.component.module';\r\nexport * from './components/logo/logo.model';\r\n// Navbar\r\nexport * from './components/navbar/navbar.component';\r\nexport * from './components/navbar/navbar.component.module';\r\nexport * from './components/navbar/navbar.model';\r\n// Deprecated Paginator\r\nexport * from './components/deprecated-paginator/deprecated-paginator.component';\r\nexport * from './components/deprecated-paginator/deprecated-paginator.component.module';\r\n// Progress bar\r\nexport * from './components/progress-bar/progress-bar.component';\r\nexport * from './components/progress-bar/progress-bar.component.module';\r\n// Radio button\r\nexport * from './components/radio-button/radio-button.component';\r\nexport * from './components/radio-button/radio-button.component.module';\r\n// Snackbar\r\nexport * from './components/snackbar/snackbar.component';\r\nexport * from './components/snackbar/snackbar.component.module';\r\nexport * from './components/snackbar/snackbar.model';\r\nexport * from './components/snackbar/snackbar.service';\r\n// Data Property Getter Pipe\r\nexport * from './pipes/data-property-getter';\r\n// Tag\r\nexport * from './components/tag/tag.component';\r\nexport * from './components/tag/tag.component.module';\r\nexport * from './components/tag/tag.model';\r\n// Tooltip\r\nexport * from './components/tooltip/tooltip.component';\r\nexport * from './components/tooltip/tooltip.component.module';\r\nexport * from './components/tooltip/tooltip.model';\r\n// Dropdown\r\nexport * from './components/dropdown/dropdown.component';\r\nexport * from './components/dropdown/dropdown.component.module';\r\nexport * from './components/dropdown/dropdown.model';\r\n// Spinner\r\nexport * from './components/spinner/spinner.component';\r\nexport * from './components/spinner/spinner.model';\r\nexport * from './components/spinner/spinner.module';\r\n// Confirm Dialog\r\nexport * from './components/confirm-dialog/confirm-dialog.component';\r\nexport * from './components/confirm-dialog/confirm-dialog.component.module';\r\n// Datepicker\r\nexport * from './components/datepicker/datepicker.component';\r\nexport * from './components/datepicker/datepicker.component.module';\r\n// Rating\r\nexport * from './components/rating/rating.component';\r\nexport * from './components/rating/rating.component.module';\r\n// Scale\r\nexport * from './components/scale/scale.component';\r\nexport * from './components/scale/scale.component.module';\r\n// Tag\r\nexport * from './components/tag/tag.component';\r\nexport * from './components/tag/tag.component.module';\r\n// Toggle\r\nexport * from './components/toggle/toggle.component';\r\nexport * from './components/toggle/toggle.component.module';\r\n// Avatar\r\nexport * from './components/avatar/avatar.component';\r\nexport * from './components/avatar/avatar.component.module';\r\nexport * from './components/avatar/avatar.model';\r\n// Stepper\r\nexport * from './components/stepper/stepper.component';\r\nexport * from './components/stepper/stepper.component.module';\r\n// Step\r\nexport * from './components/step/step.component';\r\nexport * from './components/step/step.component.module';\r\n// Input Autocomplete\r\nexport * from './components/autocomplete/autocomplete.component';\r\nexport * from './components/autocomplete/autocomplete.component.module';\r\nexport * from './components/autocomplete/autocomplete.model';\r\n// Badge\r\nexport * from './components/badge/badge.component';\r\nexport * from './components/badge/badge.component.module';\r\nexport * from './components/badge/badge.model';\r\n// Radial Progress\r\nexport * from './components/radial-progress/radial-progress.component';\r\nexport * from './components/radial-progress/radial-progress.component.module';\r\nexport * from './components/radial-progress/radial-progress.model';\r\n// Empty State\r\nexport * from './components/empty-state/empty-state.component';\r\nexport * from './components/empty-state/empty-state.component.module';\r\nexport * from './components/empty-state/empty-state.model';\r\n// Table\r\nexport * from './components/table/table.component';\r\nexport * from './components/table/table.component.module';\r\nexport * from './components/table/table.model';\r\n// Paginator\r\nexport * from './components/paginator/paginator.component';\r\nexport * from './components/paginator/paginator.component.module';\r\n// Skeleton\r\nexport * from './components/skeleton/skeleton.component';\r\n// Side Sheet\r\nexport * from './components/side-sheet/side-sheet.component';\r\nexport * from './components/side-sheet/side-sheet.component.module';\r\nexport * from './components/side-sheet/side-sheet.model';\r\nexport * from './components/side-sheet/side-sheet.service';\r\n// Slider\r\nexport * from './components/slider/slider.component';\r\nexport * from './components/slider/slider.component.module';\r\nexport * from './components/slider/slider.model';\r\n// Segmented Bar\r\nexport * from './components/segmented-bar/segmented-bar.component';\r\nexport * from './components/segmented-bar/segmented-bar.component.module';\r\nexport * from './components/segmented-bar/segmented-bar.model';\r\n// Page Header\r\nexport * from './components/page-header/page-header.component';\r\nexport * from './components/page-header/page-header.component.module';\r\n// Accordion\r\nexport * from './components/accordion/accordion.component';\r\nexport * from './components/accordion/accordion.component.module';\r\nexport * from './components/accordion/accordion.model';\r\n// Divider\r\nexport * from './components/divider/divider.component';\r\nexport * from './components/divider/divider.component.module';\r\nexport * from './components/divider/divider.model';\r\n// Tabs\r\nexport * from './components/tabs/tab.directive';\r\nexport * from './components/tabs/tabs.component';\r\nexport * from './components/tabs/tabs.component.module';\r\nexport * from './components/tabs/tabs.model';\r\n// Language\r\nexport * from './utils/localization/language.model';\r\nexport * from './utils/localization/language.service';\r\n//Overflow Menu\r\nexport * from './components/overflow-menu/overflow-menu.component';\r\nexport * from './components/overflow-menu/overflow-menu.component.module';\r\n//Application Theme\r\nexport * from './models/application-theme.model';\r\n// Segmented Button\r\nexport * from './components/segmented-button/segmented-button.component';\r\nexport * from './components/segmented-button/segmented-button.component.module';\r\nexport * from './components/segmented-button/segmented-button.model';\r\n// Password Criteria\r\nexport * from './components/password-criteria/password.component';\r\nexport * from './components/password-criteria/password.component.module';\r\n// Phone Input\r\nexport * from './components/phone-input/phone-input.component';\r\nexport * from './components/phone-input/phone-input.component.module';\r\nexport * from './components/phone-input/phone-input.model';\r\n// Colors\r\nexport * from './models/colors.model';\r\n// Password Strength\r\nexport * from './components/password-strength/password-strength.component';\r\nexport * from './components/password-strength/password-strength.component.module';\r\n// Icons service\r\nexport * from './services/icons.service';\r\n// Is Mobile Token\r\nexport * from './providers/is-mobile';\r\n// Multi input\r\nexport * from './components/multi-input/multi-input.component';\r\nexport * from './components/multi-input/multi-input.component.module';\r\nexport * from './components/multi-input/multi-input.model';\r\n// Validation Error\r\nexport * from './components/validation-error/validation-error.component';\r\nexport * from './components/validation-error/validation-error.module';\r\n// Side panel\r\nexport * from './components/side-panel/side-panel.component';\r\nexport * from './components/side-panel/side-panel.model';\r\nexport * from './components/side-panel/side-panel.service';\r\n// Spider Chart\r\nexport * from './components/spider-chart/spider-chart.component';\r\nexport * from './components/spider-chart/spider-chart.module';\r\nexport * from './components/spider-chart/spider-chart.model';\r\n// Checklist\r\nexport * from './components/checklist/checklist.component';\r\nexport * from './components/checklist/checklist.model';\r\n// Media card\r\nexport * from './components/media-card/media-card.component';\r\n// Gaussian Chart\r\nexport * from './components/gaussian-chart/gaussian-chart.component';\r\nexport * from './components/gaussian-chart/gaussian-chart.module';\r\n// Universal Skills Spider Charts\r\nexport * from './components/universal-skills-spider-charts/universal-skills-spider-charts.component';\r\nexport * from './components/universal-skills-spider-charts/universal-skills-spider-charts.component.module';\r\nexport * from './services/universal-skills.service';\r\n// Memoize\r\nexport * from './pipes/memoize-func.pipe';\r\n// Filter Button\r\nexport * from './components/filter-button/filter-button.component';\r\nexport * from './components/filter-button/filter-button.component.module';\r\nexport * from './components/filter-button/filter-button.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.IconsService","i4","i1","i2.IconComponent","daDk","itIt","jaJp","nbNo","plPl","ptBr","svSe","i1.LanguageService","i2","i3.UiTranslatePipe","i1.UniversalSkillsService","i3.AccordionComponent","i4.BadgeComponent","i5.ProgressBarComponent","i6.MemoizeFuncPipe","i7.UiTranslatePipe","i8.OrdinalSuffixPipe","i3.IconComponent","i5","i6.BadgeComponent","i7.EllipseTextDirective","i8.UiTranslatePipe","i3.ButtonComponent","i4.IconComponent","i5.UiTranslatePipe","i3","i6.ValidationErrorComponent","i8","i9.HasValidationErrorPipe","i4.UiTranslatePipe","i6","i7","i9.IconComponent","i10.ButtonComponent","i11.ValidationErrorComponent","i12.DigitsOnlyDirective","i13.UiTranslatePipe","i14.HasValidationErrorPipe","i3.ProgressBarComponent","i4.DragDropDirective","i1.IconComponent","i5.NameInitialsPipe","i1.AvatarComponent","i2.ButtonComponent","i1.SideSheetService","i6.LogoComponent","i2.SideSheetService","i8.LogoComponent","i10.AvatarComponent","i11.SideSheetComponent","i12.ButtonComponent","i13.MobileNavbarSideSheetComponent","i14.BadgeComponent","i15.UiTranslatePipe","i5.EllipseTextDirective","i4.ButtonComponent","i5.IconComponent","i3.TooltipTemplateDirective","i4.EllipseTextDirective","i6.ButtonComponent","i9.ValidationErrorComponent","i10.UiTranslatePipe","i11.HasValidationErrorPipe","i2.UiTranslatePipe","i3.DialogComponent","i3.DatepickerService","i7.IconComponent","i9.NoDateFormatDirective","i10.ValidationErrorComponent","i11.UiTranslatePipe","i12.HasValidationErrorPipe","i2.HalfStarPipe","i3.EllipseTextDirective","i5.SpinnerComponent","i4.StepComponent","i5.RadialProgressComponent","i6.StepLineElementDirective","i9.TagComponent","i10.IconComponent","i13.PreventInputDirective","i14.SpinnerComponent","i15.SelectTextDirective","i16.UiTranslatePipe","i17.HasValidationErrorPipe","i18.TransformItemPipe","i19.IncludesPipe","i4.SkeletonComponent","i5.PaginatorComponent","i8.IconComponent","i9.EllipseTextDirective","i10.DynamicComponentDirective","i11.DataPropertyGetterPipe","i12.MemoizeFuncPipe","i13.SentenceCasePipe","i6.IconComponent","i4.TooltipTemplateDirective","i2.FieldComponent","i6.UiTranslatePipe","i12.UiTranslatePipe","i13.HasValidationErrorPipe","i14.JoinStringsPipe","i5.DropdownComponent","i7.FieldComponent","i8.HasValidationErrorPipe","i1.ButtonComponent","i4.SpinnerComponent","i4.DividerComponent","i4.SpiderChartComponent","i5.DividerComponent","i5.ButtonComponent","i7.CheckboxComponent","i8.FieldComponent","i10.RadioButtonComponent"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|