@testgorilla/tgo-ui 4.2.4 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/accordion/accordion.component.d.ts +2 -2
- package/components/accordion/accordion.component.module.d.ts +2 -2
- package/components/accordion/index.d.ts +5 -0
- package/components/accordion/public-api.d.ts +4 -0
- package/components/ai-feedback/ai-feedback.module.d.ts +2 -2
- package/components/ai-feedback/index.d.ts +5 -0
- package/components/ai-feedback/public-api.d.ts +4 -0
- package/components/alert-banner/alert-banner.component.d.ts +3 -3
- package/components/alert-banner/alert-banner.component.module.d.ts +3 -3
- package/components/alert-banner/index.d.ts +5 -0
- package/components/alert-banner/public-api.d.ts +4 -0
- package/components/autocomplete/autocomplete.component.d.ts +2 -2
- package/components/autocomplete/autocomplete.component.module.d.ts +9 -10
- package/components/autocomplete/index.d.ts +5 -0
- package/components/autocomplete/public-api.d.ts +4 -0
- package/components/avatar/avatar.component.d.ts +2 -2
- package/components/avatar/avatar.component.module.d.ts +4 -4
- package/components/avatar/avatar.model.d.ts +1 -1
- package/components/avatar/index.d.ts +5 -0
- package/components/avatar/public-api.d.ts +4 -0
- package/components/badge/badge.component.d.ts +2 -2
- package/components/badge/badge.component.module.d.ts +1 -1
- package/components/badge/index.d.ts +5 -0
- package/components/badge/public-api.d.ts +4 -0
- package/components/breadcrumb/breadcrumb.component.d.ts +2 -2
- package/components/breadcrumb/breadcrumb.component.module.d.ts +8 -9
- package/components/breadcrumb/index.d.ts +5 -0
- package/components/breadcrumb/public-api.d.ts +4 -0
- package/components/button/button.component.d.ts +2 -2
- package/components/button/button.component.module.d.ts +4 -5
- package/components/button/button.model.d.ts +1 -1
- package/components/button/index.d.ts +5 -0
- package/components/button/public-api.d.ts +5 -0
- package/components/card/card.component.d.ts +2 -2
- package/components/card/card.component.module.d.ts +1 -1
- package/components/card/index.d.ts +5 -0
- package/components/card/public-api.d.ts +4 -0
- package/components/checkbox/checkbox.component.d.ts +2 -2
- package/components/checkbox/checkbox.component.module.d.ts +6 -8
- package/components/checkbox/index.d.ts +5 -0
- package/components/checkbox/public-api.d.ts +4 -0
- package/components/checklist/checklist.component.d.ts +1 -2
- package/components/checklist/index.d.ts +5 -0
- package/components/checklist/public-api.d.ts +3 -0
- package/{utils → components/core}/alert-bars.utils.d.ts +1 -2
- package/components/core/application-theme.model.d.ts +7 -0
- package/components/core/color-contrast.d.ts +28 -0
- package/components/core/index.d.ts +5 -0
- package/components/core/link-target.model.d.ts +1 -0
- package/components/core/public-api.d.ts +25 -0
- package/components/core/select-text.directive.d.ts +19 -0
- package/{pipes → components/core}/truncate.pipe.d.ts +1 -1
- package/{pipes → components/core}/ui-translate.pipe.d.ts +1 -1
- package/components/datepicker/datepicker.component.d.ts +1 -1
- package/components/datepicker/datepicker.component.module.d.ts +4 -5
- package/components/datepicker/index.d.ts +5 -0
- package/components/datepicker/public-api.d.ts +6 -0
- package/components/{confirm-dialog → dialog/confirm-dialog}/confirm-dialog.component.d.ts +4 -4
- package/components/{confirm-dialog → dialog/confirm-dialog}/confirm-dialog.component.module.d.ts +3 -3
- package/components/{confirm-dialog → dialog/confirm-dialog}/confirm-dialog.model.d.ts +3 -3
- package/components/dialog/dialog-custom/dialog-custom.component.d.ts +22 -0
- package/components/dialog/dialog-custom/dialog-custom.component.module.d.ts +10 -0
- package/components/dialog/dialog.component.d.ts +4 -4
- package/components/dialog/dialog.component.module.d.ts +2 -2
- package/components/dialog/dialog.model.d.ts +1 -1
- package/components/dialog/dialog.service.d.ts +1 -1
- package/components/dialog/index.d.ts +5 -0
- package/components/dialog/public-api.d.ts +10 -0
- package/components/divider/divider.component.d.ts +1 -1
- package/components/divider/index.d.ts +5 -0
- package/components/divider/public-api.d.ts +4 -0
- package/components/donut-chart/donut-chart.component.d.ts +1 -1
- package/components/donut-chart/index.d.ts +5 -0
- package/components/donut-chart/public-api.d.ts +3 -0
- package/components/dropdown/dropdown.component.d.ts +2 -2
- package/components/dropdown/dropdown.component.module.d.ts +5 -6
- package/components/dropdown/index.d.ts +5 -0
- package/components/dropdown/public-api.d.ts +4 -0
- package/components/elevation-shadow/elevation-shadow.component.d.ts +1 -1
- package/components/elevation-shadow/index.d.ts +5 -0
- package/components/elevation-shadow/public-api.d.ts +3 -0
- package/components/empty-state/empty-state.component.d.ts +4 -4
- package/components/empty-state/empty-state.component.module.d.ts +3 -3
- package/components/empty-state/index.d.ts +5 -0
- package/components/empty-state/public-api.d.ts +4 -0
- package/components/field/field.component.d.ts +4 -4
- package/components/field/field.component.module.d.ts +6 -8
- package/components/field/index.d.ts +5 -0
- package/components/field/public-api.d.ts +4 -0
- package/components/file-upload/file-upload.component.d.ts +1 -2
- package/components/file-upload/file-upload.component.module.d.ts +4 -4
- package/components/file-upload/index.d.ts +5 -0
- package/components/file-upload/public-api.d.ts +3 -0
- package/components/filter-button/filter-button.component.d.ts +3 -3
- package/components/filter-button/filter-button.component.module.d.ts +7 -8
- package/components/filter-button/filter-button.model.d.ts +1 -1
- package/components/filter-button/index.d.ts +5 -0
- package/components/filter-button/public-api.d.ts +4 -0
- package/components/gaussian-chart/gaussian-chart.component.d.ts +1 -1
- package/components/gaussian-chart/gaussian-chart.module.d.ts +3 -4
- package/components/gaussian-chart/index.d.ts +5 -0
- package/components/gaussian-chart/public-api.d.ts +2 -0
- package/components/icon/icon.component.d.ts +2 -2
- package/components/icon/index.d.ts +5 -0
- package/components/icon/public-api.d.ts +6 -0
- package/components/icon-label/icon-label.component.d.ts +2 -2
- package/components/icon-label/icon-label.component.module.d.ts +1 -1
- package/components/icon-label/index.d.ts +5 -0
- package/components/icon-label/public-api.d.ts +2 -0
- package/components/inline-field/index.d.ts +5 -0
- package/components/inline-field/inline-field.component.d.ts +5 -5
- package/components/inline-field/inline-field.component.module.d.ts +3 -3
- package/components/inline-field/inline-field.model.d.ts +1 -1
- package/components/inline-field/public-api.d.ts +4 -0
- package/components/logo/index.d.ts +5 -0
- package/components/logo/logo.component.d.ts +1 -1
- package/components/logo/public-api.d.ts +4 -0
- package/components/media-card/index.d.ts +5 -0
- package/components/media-card/public-api.d.ts +1 -0
- package/components/media-dialog/index.d.ts +5 -0
- package/components/media-dialog/public-api.d.ts +2 -0
- package/components/multi-input/index.d.ts +5 -0
- package/components/multi-input/multi-input.component.module.d.ts +7 -8
- package/components/multi-input/public-api.d.ts +5 -0
- package/components/navbar/index.d.ts +5 -0
- package/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.d.ts +2 -2
- package/components/navbar/navbar.component.d.ts +4 -4
- package/components/navbar/navbar.component.module.d.ts +7 -7
- package/components/navbar/navbar.model.d.ts +2 -2
- package/components/navbar/public-api.d.ts +5 -0
- package/components/overflow-menu/index.d.ts +5 -0
- package/components/overflow-menu/overflow-menu.component.d.ts +3 -3
- package/components/overflow-menu/overflow-menu.component.module.d.ts +4 -5
- package/components/overflow-menu/overflow-menu.model.d.ts +1 -1
- package/components/overflow-menu/public-api.d.ts +4 -0
- package/components/page-header/index.d.ts +5 -0
- package/components/page-header/page-header.component.d.ts +1 -1
- package/components/page-header/page-header.component.module.d.ts +2 -2
- package/components/page-header/public-api.d.ts +3 -0
- package/components/paginator/index.d.ts +5 -0
- package/components/paginator/paginator.component.d.ts +1 -1
- package/components/paginator/public-api.d.ts +3 -0
- package/components/password-criteria/index.d.ts +5 -0
- package/components/password-criteria/password.component.module.d.ts +4 -4
- package/components/password-criteria/public-api.d.ts +3 -0
- package/components/password-strength/index.d.ts +5 -0
- package/components/password-strength/password-strength.component.d.ts +2 -2
- package/components/password-strength/password-strength.component.module.d.ts +3 -3
- package/components/password-strength/public-api.d.ts +3 -0
- package/components/phone-input/index.d.ts +5 -0
- package/components/phone-input/phone-input.component.d.ts +1 -1
- package/components/phone-input/phone-input.component.module.d.ts +5 -6
- package/components/phone-input/public-api.d.ts +5 -0
- package/components/progress-bar/index.d.ts +5 -0
- package/components/progress-bar/progress-bar.component.d.ts +1 -1
- package/components/progress-bar/progress-bar.component.module.d.ts +1 -1
- package/components/progress-bar/public-api.d.ts +3 -0
- package/components/prompt/index.d.ts +5 -0
- package/components/prompt/prompt.component.d.ts +2 -2
- package/components/prompt/prompt.module.d.ts +8 -8
- package/components/prompt/public-api.d.ts +4 -0
- package/components/radial-progress/index.d.ts +5 -0
- package/components/radial-progress/public-api.d.ts +4 -0
- package/components/radial-progress/radial-progress.component.d.ts +2 -2
- package/components/radial-progress/radial-progress.component.module.d.ts +1 -1
- package/components/radio-button/index.d.ts +5 -0
- package/components/radio-button/public-api.d.ts +4 -0
- package/components/radio-button/radio-button.component.d.ts +2 -2
- package/components/radio-button/radio-button.component.module.d.ts +2 -2
- package/components/rating/index.d.ts +5 -0
- package/components/rating/public-api.d.ts +3 -0
- package/components/rating/rating.component.d.ts +1 -1
- package/components/scale/index.d.ts +5 -0
- package/components/scale/public-api.d.ts +3 -0
- package/components/scale/scale.component.d.ts +1 -1
- package/components/scale-table/index.d.ts +5 -0
- package/components/scale-table/public-api.d.ts +3 -0
- package/components/scale-table/scale-table.component.d.ts +1 -1
- package/components/segmented-bar/index.d.ts +5 -0
- package/components/segmented-bar/public-api.d.ts +4 -0
- package/components/segmented-bar/segmented-bar.component.d.ts +1 -1
- package/components/segmented-bar/segmented-bar.component.module.d.ts +2 -2
- package/components/segmented-bar/segmented-bar.model.d.ts +1 -1
- package/components/segmented-button/index.d.ts +5 -0
- package/components/segmented-button/public-api.d.ts +4 -0
- package/components/segmented-button/segmented-button.component.d.ts +1 -1
- package/components/selectable-card/index.d.ts +5 -0
- package/components/selectable-card/public-api.d.ts +2 -0
- package/components/selectable-card/selectable-card.component.d.ts +1 -1
- package/components/selectable-card/selectable-card.component.module.d.ts +2 -2
- package/components/side-panel/index.d.ts +5 -0
- package/components/side-panel/public-api.d.ts +5 -0
- package/components/side-panel/side-panel.component.d.ts +1 -1
- package/components/side-sheet/index.d.ts +5 -0
- package/components/side-sheet/public-api.d.ts +4 -0
- package/components/side-sheet/side-sheet.component.d.ts +1 -1
- package/components/side-sheet/side-sheet.component.module.d.ts +4 -4
- package/components/skeleton/index.d.ts +5 -0
- package/components/skeleton/public-api.d.ts +3 -0
- package/components/skeleton/skeleton.component.d.ts +2 -2
- package/components/slider/index.d.ts +5 -0
- package/components/slider/public-api.d.ts +4 -0
- package/components/slider/slider.component.d.ts +1 -1
- package/components/snackbar/index.d.ts +5 -0
- package/components/snackbar/public-api.d.ts +5 -0
- package/components/snackbar/snackbar.component.d.ts +4 -4
- package/components/snackbar/snackbar.component.module.d.ts +3 -3
- package/components/snackbar/snackbar.service.d.ts +1 -1
- package/components/spider-chart/index.d.ts +5 -0
- package/components/spider-chart/public-api.d.ts +3 -0
- package/components/spider-chart/spider-chart.component.d.ts +1 -1
- package/components/spider-chart/spider-chart.module.d.ts +3 -4
- package/components/spinner/index.d.ts +5 -0
- package/components/spinner/public-api.d.ts +4 -0
- package/components/spinner/spinner.component.d.ts +2 -2
- package/components/spinner/spinner.module.d.ts +2 -2
- package/components/stepper/index.d.ts +5 -0
- package/components/stepper/public-api.d.ts +7 -0
- package/{directives → components/stepper}/step-line-element.directive.d.ts +1 -1
- package/components/{step → stepper}/step.component.d.ts +4 -4
- package/components/{step → stepper}/step.component.module.d.ts +2 -2
- package/components/stepper/stepper.component.d.ts +1 -1
- package/components/stepper/stepper.component.module.d.ts +5 -5
- package/components/stepper/stepper.model.d.ts +1 -1
- package/components/table/index.d.ts +5 -0
- package/components/table/public-api.d.ts +6 -0
- package/components/table/table.component.d.ts +1 -1
- package/components/table/table.component.module.d.ts +6 -9
- package/{utils → components/table}/table.utils.d.ts +1 -1
- package/components/tabs/index.d.ts +5 -0
- package/components/tabs/public-api.d.ts +5 -0
- package/components/tabs/tab.directive.d.ts +1 -1
- package/components/tabs/tabs.component.d.ts +1 -1
- package/components/tabs/tabs.component.module.d.ts +3 -3
- package/components/tabs/tabs.model.d.ts +1 -1
- package/components/tag/index.d.ts +5 -0
- package/components/tag/public-api.d.ts +4 -0
- package/components/tag/tag.component.d.ts +2 -2
- package/components/tag/tag.component.module.d.ts +3 -3
- package/components/toggle/index.d.ts +5 -0
- package/components/toggle/public-api.d.ts +3 -0
- package/components/toggle/toggle.component.d.ts +1 -1
- package/components/toggle/toggle.component.module.d.ts +4 -5
- package/components/tooltip/index.d.ts +5 -0
- package/components/tooltip/public-api.d.ts +5 -0
- package/components/tooltip/tooltip.component.d.ts +1 -1
- package/components/tooltip/tooltip.component.module.d.ts +2 -3
- package/components/universal-skills/index.d.ts +5 -0
- package/components/universal-skills/public-api.d.ts +6 -0
- package/components/{universal-skills-spider-charts → universal-skills/spider-charts}/universal-skills-spider-charts.component.d.ts +4 -4
- package/components/{universal-skills-spider-charts → universal-skills/spider-charts}/universal-skills-spider-charts.component.module.d.ts +7 -9
- package/components/{universal-skills-report → universal-skills}/universal-skills-report.component.d.ts +4 -4
- package/components/{universal-skills-report → universal-skills}/universal-skills-report.component.module.d.ts +5 -7
- package/{models → components/universal-skills}/universal-skills-report.model.d.ts +1 -1
- package/{services → components/universal-skills}/universal-skills.service.d.ts +1 -1
- package/components/validation-error/index.d.ts +5 -0
- package/components/validation-error/public-api.d.ts +3 -0
- package/components/validation-error/validation-error.component.d.ts +1 -1
- package/components/validation-error/validation-error.module.d.ts +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +179 -0
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +59 -0
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +222 -0
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +1045 -0
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +173 -0
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +180 -0
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +250 -0
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs +635 -0
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs +164 -0
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +402 -0
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +162 -0
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs +11243 -0
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +512 -0
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +481 -0
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +88 -0
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +146 -0
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +434 -0
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +75 -0
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +326 -0
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs +639 -0
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +402 -0
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +314 -0
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +297 -0
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +98 -0
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +1496 -0
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +367 -0
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +218 -0
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +54 -0
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +82 -0
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +343 -0
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +358 -0
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +279 -0
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +94 -0
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +110 -0
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +153 -0
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +118 -0
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +428 -0
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +128 -0
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +252 -0
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +152 -0
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +373 -0
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +150 -0
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +68 -0
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +158 -0
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +137 -0
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +128 -0
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +81 -0
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +231 -0
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +180 -0
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +81 -0
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +274 -0
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +299 -0
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +490 -0
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +108 -0
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +507 -0
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs +394 -0
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +304 -0
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +239 -0
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +216 -0
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +272 -0
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +381 -0
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +79 -0
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui.mjs +118 -27024
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/package.json +249 -1
- package/public-api.d.ts +75 -183
- package/components/ai-caveat/ai-caveat.component.d.ts +0 -36
- package/components/ai-caveat/ai-caveat.component.module.d.ts +0 -10
- package/models/application-theme.model.d.ts +0 -1
- package/projects/tgo-canopy-ui/assets/i18n/da-dk.json +0 -820
- package/projects/tgo-canopy-ui/assets/i18n/de.json +0 -820
- package/projects/tgo-canopy-ui/assets/i18n/en.json +0 -830
- package/projects/tgo-canopy-ui/assets/i18n/es.json +0 -820
- package/projects/tgo-canopy-ui/assets/i18n/fr.json +0 -820
- package/projects/tgo-canopy-ui/assets/i18n/it-it.json +0 -820
- package/projects/tgo-canopy-ui/assets/i18n/ja-jp.json +0 -820
- package/projects/tgo-canopy-ui/assets/i18n/nb-no.json +0 -820
- package/projects/tgo-canopy-ui/assets/i18n/nl.json +0 -820
- package/projects/tgo-canopy-ui/assets/i18n/pl-pl.json +0 -820
- package/projects/tgo-canopy-ui/assets/i18n/pt-br.json +0 -820
- package/projects/tgo-canopy-ui/assets/i18n/sv-se.json +0 -820
- /package/{directives → components/autocomplete}/select-text.directive.d.ts +0 -0
- /package/{pipes → components/avatar}/name-initials.pipe.d.ts +0 -0
- /package/{utils → components/button}/color-contrast.d.ts +0 -0
- /package/{utils → components/core}/alert-bar.model.d.ts +0 -0
- /package/{utils → components/core}/autocomplete-utils.d.ts +0 -0
- /package/{models → components/core}/checkbox.model.d.ts +0 -0
- /package/{models → components/core}/colors.model.d.ts +0 -0
- /package/{pipes/data-property-getter.d.ts → components/core/data-property-getter.pipe.d.ts} +0 -0
- /package/{directives → components/core}/digits-only.directive.d.ts +0 -0
- /package/{directives → components/core}/dynamic-component.directive.d.ts +0 -0
- /package/{directives → components/core}/ellipse-text.directive.d.ts +0 -0
- /package/{pipes → components/core}/has-validation-error.pipe.d.ts +0 -0
- /package/{utils → components/core}/hex-to-rgb.d.ts +0 -0
- /package/{providers → components/core}/is-large-tablet.d.ts +0 -0
- /package/{providers → components/core}/is-mobile.d.ts +0 -0
- /package/{models → components/core}/keyboard-events.model.d.ts +0 -0
- /package/{utils/localization → components/core}/language.model.d.ts +0 -0
- /package/{utils/localization → components/core}/language.service.d.ts +0 -0
- /package/{pipes → components/core}/memoize-func.pipe.d.ts +0 -0
- /package/{models → components/core}/screen-breakpoints.model.d.ts +0 -0
- /package/{pipes → components/core}/ui-ordinal-suffix.pipe.d.ts +0 -0
- /package/{directives → components/file-upload}/drag-drop.directive.d.ts +0 -0
- /package/{services → components/icon}/icons.service.d.ts +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Output, Input, Optional, Inject, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/material/paginator';
|
|
4
|
+
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
|
|
7
|
+
class PaginatorComponent {
|
|
8
|
+
constructor(defaultAppTheme) {
|
|
9
|
+
this.defaultAppTheme = defaultAppTheme;
|
|
10
|
+
/**
|
|
11
|
+
* Paginator size options
|
|
12
|
+
*
|
|
13
|
+
* @type {number[]}
|
|
14
|
+
* @memberof PaginatorComponent
|
|
15
|
+
*/
|
|
16
|
+
this.pageSizeOptions = [10, 25, 50];
|
|
17
|
+
/**
|
|
18
|
+
* Data length
|
|
19
|
+
*
|
|
20
|
+
* @type {number}
|
|
21
|
+
* @memberof PaginatorComponent
|
|
22
|
+
*/
|
|
23
|
+
this.length = 0;
|
|
24
|
+
/**
|
|
25
|
+
* Page size
|
|
26
|
+
*
|
|
27
|
+
* @type {number}
|
|
28
|
+
* @memberof PaginatorComponent
|
|
29
|
+
*/
|
|
30
|
+
this.pageSize = 25;
|
|
31
|
+
/**
|
|
32
|
+
* Disabled
|
|
33
|
+
*
|
|
34
|
+
* @type {boolean}
|
|
35
|
+
* @memberOf PaginatorComponent
|
|
36
|
+
*/
|
|
37
|
+
this.disabled = false;
|
|
38
|
+
/**
|
|
39
|
+
*
|
|
40
|
+
* Defines the application theme
|
|
41
|
+
*
|
|
42
|
+
* @type {ApplicationTheme}
|
|
43
|
+
* @memberof PaginatorComponent
|
|
44
|
+
*/
|
|
45
|
+
this.applicationTheme = 'light';
|
|
46
|
+
/**
|
|
47
|
+
*
|
|
48
|
+
* Defines the current page
|
|
49
|
+
* @default 0
|
|
50
|
+
*
|
|
51
|
+
* @type {number}
|
|
52
|
+
* @memberof PaginatorComponent
|
|
53
|
+
*/
|
|
54
|
+
this.currentPage = 0;
|
|
55
|
+
this.paginatorChange = new EventEmitter();
|
|
56
|
+
this.selectConfig = { panelClass: 'ui-dropdown-list' };
|
|
57
|
+
if (defaultAppTheme) {
|
|
58
|
+
this.applicationTheme = defaultAppTheme;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
onPaginatorChange(paginator) {
|
|
62
|
+
this.paginatorChange.emit(paginator);
|
|
63
|
+
}
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PaginatorComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: PaginatorComponent, isStandalone: false, selector: "ui-paginator", inputs: { pageSizeOptions: "pageSizeOptions", length: "length", pageSize: "pageSize", disabled: "disabled", applicationTheme: "applicationTheme", currentPage: "currentPage" }, outputs: { paginatorChange: "paginatorChange" }, ngImport: i0, template: "<mat-paginator\n [disabled]=\"disabled\"\n [length]=\"length\"\n [pageIndex]=\"currentPage ? currentPage : 0\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [attr.theme]=\"applicationTheme\"\n [selectConfig]=\"selectConfig\"\n [color]=\"'accent'\"\n (page)=\"onPaginatorChange($event)\"\n></mat-paginator>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.flex-center,::ng-deep .mat-mdc-paginator .mat-mdc-select-arrow-wrapper,::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions button{display:flex;justify-content:center;align-items:center}::ng-deep .mat-mdc-paginator{border-radius:0 0 8px 8px}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions{height:40px!important;margin-left:16px!important}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions .mat-mdc-paginator-range-label{margin:0 16px 0 0}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions button{width:40px!important;padding:0}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions button.mat-mdc-button-disabled svg{fill:#919191!important}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions button svg{height:24px!important;width:24px!important}::ng-deep .mat-mdc-paginator .mat-mdc-select-arrow-wrapper{width:24px}::ng-deep .mat-mdc-paginator .mat-mdc-form-field-infix{padding:4px 0!important;min-height:28px!important}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-page-size-select{width:64px}::ng-deep .mat-mdc-paginator .mat-mdc-text-field-wrapper{height:32px!important;padding:0 8px;width:64px}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-outer-container{border-radius:0 0 8px 8px;font-weight:400;font-size:14px;padding:8px 24px;line-height:20px;color:#000}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-outer-container .mat-mdc-paginator-container{padding:0}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-outer-container .mat-mdc-paginator-container .mat-mdc-select-value-text{font-size:14px}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-outer-container .mat-mdc-paginator-container .mat-mdc-paginator-range-actions{height:100%}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-outer-container .mat-mdc-paginator-container .mat-mdc-paginator-range-actions button{height:100%;width:70px;border-radius:0}::ng-deep .mat-mdc-paginator[theme=dark] .mdc-icon-button__ripple,::ng-deep .mat-mdc-paginator[theme=light] .mdc-icon-button__ripple{display:none}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button,::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button{border-radius:50%!important}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button:focus.cdk-focused,::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button:focus.cdk-focused{padding:1px;border:1px dashed #888888;outline:0}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button:active,::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button:active{transform:scale(.98)}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button .mat-mdc-button-touch-target,::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button .mat-mdc-button-touch-target{width:40px;height:40px}::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button{color:#242424!important}::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button svg{fill:#242424}::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button:hover{background-color:#e9e9e9}::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button:focus.cdk-focused{border-color:#666}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button{color:#fff!important}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button svg{fill:#fff!important}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button:hover{background-color:#666}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button:focus.cdk-focused{border-color:#e9e9e9}\n"], dependencies: [{ kind: "component", type: i1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }] }); }
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PaginatorComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'ui-paginator', standalone: false, template: "<mat-paginator\n [disabled]=\"disabled\"\n [length]=\"length\"\n [pageIndex]=\"currentPage ? currentPage : 0\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [attr.theme]=\"applicationTheme\"\n [selectConfig]=\"selectConfig\"\n [color]=\"'accent'\"\n (page)=\"onPaginatorChange($event)\"\n></mat-paginator>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.flex-center,::ng-deep .mat-mdc-paginator .mat-mdc-select-arrow-wrapper,::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions button{display:flex;justify-content:center;align-items:center}::ng-deep .mat-mdc-paginator{border-radius:0 0 8px 8px}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions{height:40px!important;margin-left:16px!important}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions .mat-mdc-paginator-range-label{margin:0 16px 0 0}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions button{width:40px!important;padding:0}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions button.mat-mdc-button-disabled svg{fill:#919191!important}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-range-actions button svg{height:24px!important;width:24px!important}::ng-deep .mat-mdc-paginator .mat-mdc-select-arrow-wrapper{width:24px}::ng-deep .mat-mdc-paginator .mat-mdc-form-field-infix{padding:4px 0!important;min-height:28px!important}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-page-size-select{width:64px}::ng-deep .mat-mdc-paginator .mat-mdc-text-field-wrapper{height:32px!important;padding:0 8px;width:64px}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-outer-container{border-radius:0 0 8px 8px;font-weight:400;font-size:14px;padding:8px 24px;line-height:20px;color:#000}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-outer-container .mat-mdc-paginator-container{padding:0}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-outer-container .mat-mdc-paginator-container .mat-mdc-select-value-text{font-size:14px}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-outer-container .mat-mdc-paginator-container .mat-mdc-paginator-range-actions{height:100%}::ng-deep .mat-mdc-paginator .mat-mdc-paginator-outer-container .mat-mdc-paginator-container .mat-mdc-paginator-range-actions button{height:100%;width:70px;border-radius:0}::ng-deep .mat-mdc-paginator[theme=dark] .mdc-icon-button__ripple,::ng-deep .mat-mdc-paginator[theme=light] .mdc-icon-button__ripple{display:none}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button,::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button{border-radius:50%!important}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button:focus.cdk-focused,::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button:focus.cdk-focused{padding:1px;border:1px dashed #888888;outline:0}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button:active,::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button:active{transform:scale(.98)}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button .mat-mdc-button-touch-target,::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button .mat-mdc-button-touch-target{width:40px;height:40px}::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button{color:#242424!important}::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button svg{fill:#242424}::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button:hover{background-color:#e9e9e9}::ng-deep .mat-mdc-paginator[theme=light] .mat-mdc-paginator-range-actions .mdc-icon-button:focus.cdk-focused{border-color:#666}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button{color:#fff!important}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button svg{fill:#fff!important}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button:hover{background-color:#666}::ng-deep .mat-mdc-paginator[theme=dark] .mat-mdc-paginator-range-actions .mdc-icon-button:focus.cdk-focused{border-color:#e9e9e9}\n"] }]
|
|
70
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
71
|
+
type: Optional
|
|
72
|
+
}, {
|
|
73
|
+
type: Inject,
|
|
74
|
+
args: ['CANOPYUI_DEFAULT_APPLICATION_THEME']
|
|
75
|
+
}] }], propDecorators: { pageSizeOptions: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], length: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], pageSize: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], disabled: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], applicationTheme: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], currentPage: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], paginatorChange: [{
|
|
88
|
+
type: Output
|
|
89
|
+
}] } });
|
|
90
|
+
|
|
91
|
+
class PaginatorComponentModule {
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PaginatorComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
93
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: PaginatorComponentModule, declarations: [PaginatorComponent], imports: [CommonModule, MatPaginatorModule], exports: [PaginatorComponent] }); }
|
|
94
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PaginatorComponentModule, imports: [CommonModule, MatPaginatorModule] }); }
|
|
95
|
+
}
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PaginatorComponentModule, decorators: [{
|
|
97
|
+
type: NgModule,
|
|
98
|
+
args: [{
|
|
99
|
+
declarations: [PaginatorComponent],
|
|
100
|
+
imports: [CommonModule, MatPaginatorModule],
|
|
101
|
+
exports: [PaginatorComponent],
|
|
102
|
+
}]
|
|
103
|
+
}] });
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Generated bundle index. Do not edit.
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
export { PaginatorComponent, PaginatorComponentModule };
|
|
110
|
+
//# sourceMappingURL=testgorilla-tgo-ui-components-paginator.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-paginator.mjs","sources":["../../../components/paginator/paginator.component.ts","../../../components/paginator/paginator.component.html","../../../components/paginator/paginator.component.module.ts","../../../components/paginator/testgorilla-tgo-ui-components-paginator.ts"],"sourcesContent":["import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { MatPaginatorSelectConfig, PageEvent } from '@angular/material/paginator';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\n\n@Component({\n selector: 'ui-paginator',\n templateUrl: './paginator.component.html',\n styleUrls: ['./paginator.component.scss'],\n standalone: false\n})\nexport class PaginatorComponent {\n /**\n * Paginator size options\n *\n * @type {number[]}\n * @memberof PaginatorComponent\n */\n @Input() pageSizeOptions = [10, 25, 50];\n\n /**\n * Data length\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() length = 0;\n\n /**\n * Page size\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() pageSize = 25;\n\n /**\n * Disabled\n *\n * @type {boolean}\n * @memberOf PaginatorComponent\n */\n @Input() disabled = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof PaginatorComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the current page\n * @default 0\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() currentPage = 0;\n\n @Output() paginatorChange: EventEmitter<PageEvent> = new EventEmitter<PageEvent>();\n\n selectConfig: MatPaginatorSelectConfig = { panelClass: 'ui-dropdown-list' };\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n onPaginatorChange(paginator: PageEvent) {\n this.paginatorChange.emit(paginator);\n }\n}\n","<mat-paginator\n [disabled]=\"disabled\"\n [length]=\"length\"\n [pageIndex]=\"currentPage ? currentPage : 0\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [attr.theme]=\"applicationTheme\"\n [selectConfig]=\"selectConfig\"\n [color]=\"'accent'\"\n (page)=\"onPaginatorChange($event)\"\n></mat-paginator>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PaginatorComponent } from './paginator.component';\nimport { MatPaginatorModule } from '@angular/material/paginator';\n\n@NgModule({\n declarations: [PaginatorComponent],\n imports: [CommonModule, MatPaginatorModule],\n exports: [PaginatorComponent],\n})\nexport class PaginatorComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, forwardRef, ViewChild, Output, Input, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i3 from '@angular/forms';
|
|
4
|
+
import { FormControl, Validators, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
+
import * as i1 from '@angular/common';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import * as i2 from '@testgorilla/tgo-ui/components/field';
|
|
9
|
+
import { FieldComponentModule } from '@testgorilla/tgo-ui/components/field';
|
|
10
|
+
import * as i4 from '@testgorilla/tgo-ui/components/icon';
|
|
11
|
+
import { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';
|
|
12
|
+
import * as i5 from '@testgorilla/tgo-ui/components/progress-bar';
|
|
13
|
+
import { ProgressBarComponentModule } from '@testgorilla/tgo-ui/components/progress-bar';
|
|
14
|
+
import * as i6 from '@testgorilla/tgo-ui/components/core';
|
|
15
|
+
import { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';
|
|
16
|
+
|
|
17
|
+
class PasswordComponent {
|
|
18
|
+
constructor(destroyRef) {
|
|
19
|
+
this.destroyRef = destroyRef;
|
|
20
|
+
/**
|
|
21
|
+
* Show criteria for password. Defaults true
|
|
22
|
+
*
|
|
23
|
+
* @type {boolean}
|
|
24
|
+
* @memberof PasswordComponent
|
|
25
|
+
*/
|
|
26
|
+
this.showCriteria = true;
|
|
27
|
+
/**
|
|
28
|
+
* Password is required or not
|
|
29
|
+
*
|
|
30
|
+
* @type {boolean}
|
|
31
|
+
* @memberof PasswordComponent
|
|
32
|
+
*/
|
|
33
|
+
this.required = false;
|
|
34
|
+
this.passwordChange = new EventEmitter();
|
|
35
|
+
this.allCriteriaPassed = new EventEmitter();
|
|
36
|
+
this.formControl = new FormControl('', Validators.required);
|
|
37
|
+
this.criteriaPassed = {};
|
|
38
|
+
this.criteria = [
|
|
39
|
+
{ translateKey: 'PASSWORD.LOWERCASE', key: 'hasLowercase' },
|
|
40
|
+
{ translateKey: 'PASSWORD.UPPERCASE', key: 'hasUppercase' },
|
|
41
|
+
{ translateKey: 'PASSWORD.NUMBER', key: 'hasNumber' },
|
|
42
|
+
{ translateKey: 'PASSWORD.SPECIAL_CHARACTER', key: 'hasSpecialChar' },
|
|
43
|
+
{ translateKey: 'PASSWORD.CHARACTERS', key: 'hasMinLength' },
|
|
44
|
+
];
|
|
45
|
+
this.onChange = (v) => { };
|
|
46
|
+
this.onTouch = () => { };
|
|
47
|
+
this.formControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
48
|
+
this.checkCriteria();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
checkCriteria() {
|
|
52
|
+
const password = this.formControl.value ?? '';
|
|
53
|
+
this.criteriaPassed = {
|
|
54
|
+
hasLowercase: /^(?=.*?[a-z])/.test(password),
|
|
55
|
+
hasUppercase: /^(?=.*?[A-Z])/.test(password),
|
|
56
|
+
hasNumber: /^(?=.*?[0-9])/.test(password),
|
|
57
|
+
hasSpecialChar: /^(?=.*?[" !#$%&'()*+,-./:;<=>?@[\]^_`{|}~])/.test(password),
|
|
58
|
+
hasMinLength: password.length >= 12,
|
|
59
|
+
};
|
|
60
|
+
const passedCount = this.countPassed();
|
|
61
|
+
this.progressValue = Math.min(Math.max(passedCount * (100 / Object.keys(this.criteriaPassed).length), 1), 100);
|
|
62
|
+
this.passwordChange.emit(password);
|
|
63
|
+
this.allCriteriaPassed.emit(passedCount === Object.keys(this.criteriaPassed).length);
|
|
64
|
+
this.onChange(password);
|
|
65
|
+
}
|
|
66
|
+
countPassed() {
|
|
67
|
+
let count = 0;
|
|
68
|
+
for (const key in this.criteriaPassed) {
|
|
69
|
+
if (this.criteriaPassed.hasOwnProperty(key) && this.criteriaPassed[key]) {
|
|
70
|
+
count++;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return count;
|
|
74
|
+
}
|
|
75
|
+
writeValue(obj) {
|
|
76
|
+
this.formControl.setValue(obj);
|
|
77
|
+
}
|
|
78
|
+
registerOnChange(fn) {
|
|
79
|
+
this.onChange = fn;
|
|
80
|
+
}
|
|
81
|
+
registerOnTouched(fn) {
|
|
82
|
+
this.onTouch = fn;
|
|
83
|
+
}
|
|
84
|
+
get allRequirementsMet() {
|
|
85
|
+
return this.countPassed() === Object.keys(this.criteriaPassed).length && !!this.countPassed();
|
|
86
|
+
}
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: PasswordComponent, isStandalone: false, selector: "ui-password-criteria", inputs: { showCriteria: "showCriteria", required: "required" }, outputs: { passwordChange: "passwordChange", allCriteriaPassed: "allCriteriaPassed" }, providers: [
|
|
89
|
+
{
|
|
90
|
+
provide: NG_VALUE_ACCESSOR,
|
|
91
|
+
useExisting: forwardRef(() => PasswordComponent),
|
|
92
|
+
multi: true,
|
|
93
|
+
},
|
|
94
|
+
], viewQueries: [{ propertyName: "requiredCriteria", first: true, predicate: ["requiredCriteria"], descendants: true }], ngImport: i0, template: "<div class=\"password-criteria-container\">\n\n <ui-field [applicationTheme]=\"'dark'\"\n [formControl]=\"formControl\"\n [ariaLabel]=\"requiredCriteria?.nativeElement?.innerText ?? ''\"\n [type]=\"'password'\"\n [placeholder]=\"('PASSWORD.PASSWORD_PLACEHOLDER' | uiTranslate | async) + (required ? ' *' : '')\"\n (keydown.enter)=\"showError = true\"\n (focusout)=\"showError = true\"\n ></ui-field>\n\n <div class=\"criteria-container\" *ngIf=\"showCriteria\" #requiredCriteria>\n\n <div class=\"progress\">\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"'dark'\"></ui-progress-bar>\n </div>\n\n <span *ngIf=\"allRequirementsMet\" style=\"position: absolute; left: -9999px\" [attr.aria-live]=\"'polite'\">{{ 'FIELD.ALL_PASSWORD_REQ_PASSED' | uiTranslate | async }}</span>\n\n <div\n *ngFor=\"let criterion of criteria\"\n class=\"criterion\"\n [attr.aria-live]=\"!allRequirementsMet ? 'polite' : ''\"\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] && showError }\"\n >\n <ui-icon [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n [name]=\"!criteriaPassed[criterion.key] && showError ? 'Info-in-line' : 'Check-round-in-line'\"\n applicationTheme=\"dark\"\n ></ui-icon>\n <span>{{ criterion.translateKey | uiTranslate | async }}</span>\n <span style=\"position: absolute; left: -9999px\">{{ (criteriaPassed[criterion.key] ? ('COMMON.PASSED') : ('COMMON.FAILED')) | uiTranslate | async }}</span>\n </div>\n </div>\n\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.password-criteria-container .criteria-container{margin-top:14px}.password-criteria-container .criteria-container .progress{margin-bottom:16px}.password-criteria-container .criteria-container .criterion{display:flex;flex-direction:row;align-items:center;gap:8px}.password-criteria-container .criteria-container .criterion ui-icon ::ng-deep svg{color:#e9e9e9}.password-criteria-container .criteria-container .criterion span{text-align:center;font-size:14px;line-height:23px;color:#242424}.password-criteria-container .criteria-container .criterion.passed ui-icon ::ng-deep svg{color:#242424}.password-criteria-container .criteria-container .criterion.passed span{color:#666;text-decoration:line-through}.password-criteria-container .criteria-container .criterion.error ui-icon ::ng-deep svg{color:#e02800}.password-criteria-container .criteria-container .criterion.error span{color:#e02800}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FieldComponent, selector: "ui-field", inputs: ["fullWidth", "fullHeight", "label", "labelHtml", "labelIcon", "fieldName", "placeholder", "id", "value", "badgeVariant", "errors", "disabled", "required", "readOnly", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "isAutocompleteOff", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hasTextAreaCounter", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "borderless", "autosizableTextarea", "isAIVariant", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i5.ProgressBarComponent, selector: "ui-progress-bar", inputs: ["companyColor", "progress", "mode", "buffer", "applicationTheme", "ariaLabel", "ariaDescribedBy", "showPercentage"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
95
|
+
}
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordComponent, decorators: [{
|
|
97
|
+
type: Component,
|
|
98
|
+
args: [{ selector: 'ui-password-criteria', providers: [
|
|
99
|
+
{
|
|
100
|
+
provide: NG_VALUE_ACCESSOR,
|
|
101
|
+
useExisting: forwardRef(() => PasswordComponent),
|
|
102
|
+
multi: true,
|
|
103
|
+
},
|
|
104
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"password-criteria-container\">\n\n <ui-field [applicationTheme]=\"'dark'\"\n [formControl]=\"formControl\"\n [ariaLabel]=\"requiredCriteria?.nativeElement?.innerText ?? ''\"\n [type]=\"'password'\"\n [placeholder]=\"('PASSWORD.PASSWORD_PLACEHOLDER' | uiTranslate | async) + (required ? ' *' : '')\"\n (keydown.enter)=\"showError = true\"\n (focusout)=\"showError = true\"\n ></ui-field>\n\n <div class=\"criteria-container\" *ngIf=\"showCriteria\" #requiredCriteria>\n\n <div class=\"progress\">\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"'dark'\"></ui-progress-bar>\n </div>\n\n <span *ngIf=\"allRequirementsMet\" style=\"position: absolute; left: -9999px\" [attr.aria-live]=\"'polite'\">{{ 'FIELD.ALL_PASSWORD_REQ_PASSED' | uiTranslate | async }}</span>\n\n <div\n *ngFor=\"let criterion of criteria\"\n class=\"criterion\"\n [attr.aria-live]=\"!allRequirementsMet ? 'polite' : ''\"\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] && showError }\"\n >\n <ui-icon [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n [name]=\"!criteriaPassed[criterion.key] && showError ? 'Info-in-line' : 'Check-round-in-line'\"\n applicationTheme=\"dark\"\n ></ui-icon>\n <span>{{ criterion.translateKey | uiTranslate | async }}</span>\n <span style=\"position: absolute; left: -9999px\">{{ (criteriaPassed[criterion.key] ? ('COMMON.PASSED') : ('COMMON.FAILED')) | uiTranslate | async }}</span>\n </div>\n </div>\n\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.password-criteria-container .criteria-container{margin-top:14px}.password-criteria-container .criteria-container .progress{margin-bottom:16px}.password-criteria-container .criteria-container .criterion{display:flex;flex-direction:row;align-items:center;gap:8px}.password-criteria-container .criteria-container .criterion ui-icon ::ng-deep svg{color:#e9e9e9}.password-criteria-container .criteria-container .criterion span{text-align:center;font-size:14px;line-height:23px;color:#242424}.password-criteria-container .criteria-container .criterion.passed ui-icon ::ng-deep svg{color:#242424}.password-criteria-container .criteria-container .criterion.passed span{color:#666;text-decoration:line-through}.password-criteria-container .criteria-container .criterion.error ui-icon ::ng-deep svg{color:#e02800}.password-criteria-container .criteria-container .criterion.error span{color:#e02800}\n"] }]
|
|
105
|
+
}], ctorParameters: () => [{ type: i0.DestroyRef }], propDecorators: { showCriteria: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], required: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], passwordChange: [{
|
|
110
|
+
type: Output
|
|
111
|
+
}], allCriteriaPassed: [{
|
|
112
|
+
type: Output
|
|
113
|
+
}], requiredCriteria: [{
|
|
114
|
+
type: ViewChild,
|
|
115
|
+
args: ['requiredCriteria']
|
|
116
|
+
}] } });
|
|
117
|
+
|
|
118
|
+
class PasswordComponentModule {
|
|
119
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
120
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: PasswordComponentModule, declarations: [PasswordComponent], imports: [CommonModule,
|
|
121
|
+
FieldComponentModule,
|
|
122
|
+
ReactiveFormsModule,
|
|
123
|
+
IconComponentModule,
|
|
124
|
+
ProgressBarComponentModule,
|
|
125
|
+
UiTranslatePipe], exports: [PasswordComponent] }); }
|
|
126
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordComponentModule, imports: [CommonModule,
|
|
127
|
+
FieldComponentModule,
|
|
128
|
+
ReactiveFormsModule,
|
|
129
|
+
IconComponentModule,
|
|
130
|
+
ProgressBarComponentModule] }); }
|
|
131
|
+
}
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordComponentModule, decorators: [{
|
|
133
|
+
type: NgModule,
|
|
134
|
+
args: [{
|
|
135
|
+
declarations: [PasswordComponent],
|
|
136
|
+
exports: [PasswordComponent],
|
|
137
|
+
imports: [
|
|
138
|
+
CommonModule,
|
|
139
|
+
FieldComponentModule,
|
|
140
|
+
ReactiveFormsModule,
|
|
141
|
+
IconComponentModule,
|
|
142
|
+
ProgressBarComponentModule,
|
|
143
|
+
UiTranslatePipe,
|
|
144
|
+
],
|
|
145
|
+
}]
|
|
146
|
+
}] });
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Generated bundle index. Do not edit.
|
|
150
|
+
*/
|
|
151
|
+
|
|
152
|
+
export { PasswordComponent, PasswordComponentModule };
|
|
153
|
+
//# sourceMappingURL=testgorilla-tgo-ui-components-password-criteria.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-password-criteria.mjs","sources":["../../../components/password-criteria/password.component.ts","../../../components/password-criteria/password.component.html","../../../components/password-criteria/password.component.module.ts","../../../components/password-criteria/testgorilla-tgo-ui-components-password-criteria.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'ui-password-criteria',\n templateUrl: './password.component.html',\n styleUrls: ['./password.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PasswordComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class PasswordComponent implements ControlValueAccessor {\n\n /**\n * Show criteria for password. Defaults true\n *\n * @type {boolean}\n * @memberof PasswordComponent\n */\n @Input() showCriteria = true;\n\n /**\n * Password is required or not\n *\n * @type {boolean}\n * @memberof PasswordComponent\n */\n @Input() required = false;\n\n @Output() passwordChange = new EventEmitter<string>();\n\n @Output() allCriteriaPassed = new EventEmitter<boolean>();\n\n @ViewChild('requiredCriteria') requiredCriteria: ElementRef<HTMLElement>;\n\n protected formControl = new FormControl('', Validators.required);\n protected criteriaPassed: { [key: string]: boolean } = {};\n protected showError: boolean;\n protected progressValue: number;\n protected criteria: { translateKey: string; key: string }[] = [\n { translateKey: 'PASSWORD.LOWERCASE', key: 'hasLowercase' },\n { translateKey: 'PASSWORD.UPPERCASE', key: 'hasUppercase' },\n { translateKey: 'PASSWORD.NUMBER', key: 'hasNumber' },\n { translateKey: 'PASSWORD.SPECIAL_CHARACTER', key: 'hasSpecialChar' },\n { translateKey: 'PASSWORD.CHARACTERS', key: 'hasMinLength' },\n ];\n\n constructor(\n private readonly destroyRef: DestroyRef,\n ) {\n this.formControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.checkCriteria();\n });\n }\n\n checkCriteria(): void {\n const password = this.formControl.value ?? '';\n this.criteriaPassed = {\n hasLowercase: /^(?=.*?[a-z])/.test(password),\n hasUppercase: /^(?=.*?[A-Z])/.test(password),\n hasNumber: /^(?=.*?[0-9])/.test(password),\n hasSpecialChar: /^(?=.*?[\" !#$%&'()*+,-./:;<=>?@[\\]^_`{|}~])/.test(password),\n hasMinLength: password.length >= 12,\n };\n\n const passedCount = this.countPassed();\n this.progressValue = Math.min(Math.max(passedCount * (100 / Object.keys(this.criteriaPassed).length), 1), 100);\n this.passwordChange.emit(password);\n this.allCriteriaPassed.emit(passedCount === Object.keys(this.criteriaPassed).length);\n this.onChange(password);\n }\n\n countPassed(): number {\n let count = 0;\n for (const key in this.criteriaPassed) {\n if (this.criteriaPassed.hasOwnProperty(key) && this.criteriaPassed[key]) {\n count++;\n }\n }\n return count;\n }\n onChange = (v: any) => {};\n onTouch = () => {};\n\n writeValue(obj: any): void {\n this.formControl.setValue(obj);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n get allRequirementsMet(): boolean {\n return this.countPassed() === Object.keys(this.criteriaPassed).length && !!this.countPassed();\n }\n}\n","<div class=\"password-criteria-container\">\n\n <ui-field [applicationTheme]=\"'dark'\"\n [formControl]=\"formControl\"\n [ariaLabel]=\"requiredCriteria?.nativeElement?.innerText ?? ''\"\n [type]=\"'password'\"\n [placeholder]=\"('PASSWORD.PASSWORD_PLACEHOLDER' | uiTranslate | async) + (required ? ' *' : '')\"\n (keydown.enter)=\"showError = true\"\n (focusout)=\"showError = true\"\n ></ui-field>\n\n <div class=\"criteria-container\" *ngIf=\"showCriteria\" #requiredCriteria>\n\n <div class=\"progress\">\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"'dark'\"></ui-progress-bar>\n </div>\n\n <span *ngIf=\"allRequirementsMet\" style=\"position: absolute; left: -9999px\" [attr.aria-live]=\"'polite'\">{{ 'FIELD.ALL_PASSWORD_REQ_PASSED' | uiTranslate | async }}</span>\n\n <div\n *ngFor=\"let criterion of criteria\"\n class=\"criterion\"\n [attr.aria-live]=\"!allRequirementsMet ? 'polite' : ''\"\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] && showError }\"\n >\n <ui-icon [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n [name]=\"!criteriaPassed[criterion.key] && showError ? 'Info-in-line' : 'Check-round-in-line'\"\n applicationTheme=\"dark\"\n ></ui-icon>\n <span>{{ criterion.translateKey | uiTranslate | async }}</span>\n <span style=\"position: absolute; left: -9999px\">{{ (criteriaPassed[criterion.key] ? ('COMMON.PASSED') : ('COMMON.FAILED')) | uiTranslate | async }}</span>\n </div>\n </div>\n\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PasswordComponent } from './password.component';\nimport { FieldComponentModule } from '@testgorilla/tgo-ui/components/field';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { ProgressBarComponentModule } from '@testgorilla/tgo-ui/components/progress-bar';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\n\n@NgModule({\n declarations: [PasswordComponent],\n exports: [PasswordComponent],\n imports: [\n CommonModule,\n FieldComponentModule,\n ReactiveFormsModule,\n IconComponentModule,\n ProgressBarComponentModule,\n UiTranslatePipe,\n ],\n})\nexport class PasswordComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;MA4Ba,iBAAiB,CAAA;AAoC5B,IAAA,WAAA,CACmB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU;AAnC7B;;;;;AAKG;QACM,IAAY,CAAA,YAAA,GAAG,IAAI;AAE5B;;;;;AAKG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK;AAEf,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAU;AAE3C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAW;QAI/C,IAAW,CAAA,WAAA,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;QACtD,IAAc,CAAA,cAAA,GAA+B,EAAE;AAG/C,QAAA,IAAA,CAAA,QAAQ,GAA4C;AAC5D,YAAA,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,cAAc,EAAE;AAC3D,YAAA,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,cAAc,EAAE;AAC3D,YAAA,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,EAAE,WAAW,EAAE;AACrD,YAAA,EAAE,YAAY,EAAE,4BAA4B,EAAE,GAAG,EAAE,gBAAgB,EAAE;AACrE,YAAA,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAAG,EAAE,cAAc,EAAE;SAC7D;AAoCD,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAG;AACzB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAG;AAhChB,QAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACrF,IAAI,CAAC,aAAa,EAAE;AACtB,SAAC,CAAC;;IAGJ,aAAa,GAAA;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC7C,IAAI,CAAC,cAAc,GAAG;AACpB,YAAA,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,YAAA,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,YAAA,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AACzC,YAAA,cAAc,EAAE,6CAA6C,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5E,YAAA,YAAY,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;SACpC;AAED,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;AAC9G,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;AACpF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;;IAGzB,WAAW,GAAA;QACT,IAAI,KAAK,GAAG,CAAC;AACb,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE;AACrC,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACvE,gBAAA,KAAK,EAAE;;;AAGX,QAAA,OAAO,KAAK;;AAKd,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;;AAGhC,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;AAGnB,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;;+GAtFpF,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAVf,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBL,8pDAoCA,EAAA,MAAA,EAAA,CAAA,g/FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDRa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGrB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,KAAK,EAAA,QAAA,EAAA,8pDAAA,EAAA,MAAA,EAAA,CAAA,g/FAAA,CAAA,EAAA;+EAUV,YAAY,EAAA,CAAA;sBAApB;gBAQQ,QAAQ,EAAA,CAAA;sBAAhB;gBAES,cAAc,EAAA,CAAA;sBAAvB;gBAES,iBAAiB,EAAA,CAAA;sBAA1B;gBAE8B,gBAAgB,EAAA,CAAA;sBAA9C,SAAS;uBAAC,kBAAkB;;;ME7BlB,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAvB,uBAAuB,EAAA,YAAA,EAAA,CAXnB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAG9B,YAAY;YACZ,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;YACnB,0BAA0B;AAC1B,YAAA,eAAe,aAPP,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAUhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YARhC,YAAY;YACZ,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;YACnB,0BAA0B,CAAA,EAAA,CAAA,CAAA;;4FAIjB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAZnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC5B,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,mBAAmB;wBACnB,mBAAmB;wBACnB,0BAA0B;wBAC1B,eAAe;AAChB,qBAAA;AACF,iBAAA;;;ACpBD;;AAEG;;;;"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Output, Input, Optional, Inject, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i2 from '@testgorilla/tgo-ui/components/icon';
|
|
6
|
+
import { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';
|
|
7
|
+
import * as i3 from '@testgorilla/tgo-ui/components/progress-bar';
|
|
8
|
+
import { ProgressBarComponentModule } from '@testgorilla/tgo-ui/components/progress-bar';
|
|
9
|
+
import * as i4 from '@testgorilla/tgo-ui/components/core';
|
|
10
|
+
import { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';
|
|
11
|
+
|
|
12
|
+
class PasswordStrengthComponent {
|
|
13
|
+
/**
|
|
14
|
+
* The password that needs to be checked
|
|
15
|
+
* @property password
|
|
16
|
+
* @type {string}
|
|
17
|
+
* @memberof PasswordStrengthComponent
|
|
18
|
+
*/
|
|
19
|
+
set password(value) {
|
|
20
|
+
this._password = value;
|
|
21
|
+
this.checkCriteria(this._password);
|
|
22
|
+
}
|
|
23
|
+
constructor(defaultAppTheme) {
|
|
24
|
+
this.defaultAppTheme = defaultAppTheme;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* Defines the application theme
|
|
28
|
+
*
|
|
29
|
+
* @type {ApplicationTheme}
|
|
30
|
+
* @memberof PasswordStrengthComponent
|
|
31
|
+
*/
|
|
32
|
+
this.applicationTheme = 'light';
|
|
33
|
+
/**
|
|
34
|
+
* Event that outputs validation check result
|
|
35
|
+
* @property validationCheck
|
|
36
|
+
* @type {boolean}
|
|
37
|
+
* @memberof PasswordStrengthComponent
|
|
38
|
+
*/
|
|
39
|
+
this.validationCheck = new EventEmitter();
|
|
40
|
+
this.criteriaPassed = {};
|
|
41
|
+
this._password = '';
|
|
42
|
+
this.criteria = [
|
|
43
|
+
{ translateKey: 'PASSWORD.LOWERCASE', key: 'hasLowercase' },
|
|
44
|
+
{ translateKey: 'PASSWORD.UPPERCASE', key: 'hasUppercase' },
|
|
45
|
+
{ translateKey: 'PASSWORD.NUMBER', key: 'hasNumber' },
|
|
46
|
+
{ translateKey: 'PASSWORD.SPECIAL_CHARACTER', key: 'hasSpecialChar' },
|
|
47
|
+
{ translateKey: 'PASSWORD.CHARACTERS', key: 'hasMinLength' },
|
|
48
|
+
];
|
|
49
|
+
if (this.defaultAppTheme) {
|
|
50
|
+
this.applicationTheme = defaultAppTheme;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
checkCriteria(password) {
|
|
54
|
+
this.criteriaPassed = {
|
|
55
|
+
hasLowercase: /^(?=.*?[a-z])/.test(password),
|
|
56
|
+
hasUppercase: /^(?=.*?[A-Z])/.test(password),
|
|
57
|
+
hasNumber: /^(?=.*?[0-9])/.test(password),
|
|
58
|
+
hasSpecialChar: /^(?=.*?[" !#$%&'()*+,-./:;<=>?@[\]^_`{|}~])/.test(password),
|
|
59
|
+
hasMinLength: password.length >= 12,
|
|
60
|
+
};
|
|
61
|
+
const passedCount = this.countPassed();
|
|
62
|
+
this.progressValue = Math.min(Math.max(passedCount * (100 / Object.keys(this.criteriaPassed).length), 1), 100);
|
|
63
|
+
this.validationCheck.emit(passedCount === Object.keys(this.criteriaPassed).length);
|
|
64
|
+
}
|
|
65
|
+
countPassed() {
|
|
66
|
+
let count = 0;
|
|
67
|
+
for (const key in this.criteriaPassed) {
|
|
68
|
+
if (this.criteriaPassed.hasOwnProperty(key) && this.criteriaPassed[key]) {
|
|
69
|
+
count++;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return count;
|
|
73
|
+
}
|
|
74
|
+
get infoIcon() {
|
|
75
|
+
return this.applicationTheme === 'classic' ? 'Info' : 'Info-in-line';
|
|
76
|
+
}
|
|
77
|
+
get checkIcon() {
|
|
78
|
+
return this.applicationTheme === 'classic' ? 'Round-check' : 'Check-round-in-line';
|
|
79
|
+
}
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordStrengthComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: PasswordStrengthComponent, isStandalone: false, selector: "ui-password-strength", inputs: { applicationTheme: "applicationTheme", password: "password" }, outputs: { validationCheck: "validationCheck" }, ngImport: i0, template: "<div class=\"criteria-container\">\n\n <div class=\"progress\">\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\n </div>\n\n <div\n *ngFor=\"let criterion of criteria\"\n class=\"criterion\"\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] }\"\n >\n <ui-icon [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n [name]=\"!criteriaPassed[criterion.key] ? infoIcon : checkIcon\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n <span>{{ criterion.translateKey | uiTranslate | async }}</span>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.criteria-container{margin-top:14px}.criteria-container .progress{margin-bottom:16px}.criteria-container .criterion{display:flex;flex-direction:row;align-items:center;gap:8px}.criteria-container .criterion ui-icon ::ng-deep svg{color:#e9e9e9}.criteria-container .criterion span{text-align:center;font-size:14px;line-height:23px;color:#242424}.criteria-container .criterion.passed ui-icon ::ng-deep svg{color:#242424}.criteria-container .criterion.passed span{color:#666;text-decoration:line-through}.criteria-container .criterion.error ui-icon ::ng-deep svg{color:#e02800}.criteria-container .criterion.error span{color:#e02800}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i3.ProgressBarComponent, selector: "ui-progress-bar", inputs: ["companyColor", "progress", "mode", "buffer", "applicationTheme", "ariaLabel", "ariaDescribedBy", "showPercentage"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.UiTranslatePipe, name: "uiTranslate" }] }); }
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordStrengthComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ selector: 'ui-password-strength', standalone: false, template: "<div class=\"criteria-container\">\n\n <div class=\"progress\">\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\n </div>\n\n <div\n *ngFor=\"let criterion of criteria\"\n class=\"criterion\"\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] }\"\n >\n <ui-icon [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n [name]=\"!criteriaPassed[criterion.key] ? infoIcon : checkIcon\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n <span>{{ criterion.translateKey | uiTranslate | async }}</span>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.criteria-container{margin-top:14px}.criteria-container .progress{margin-bottom:16px}.criteria-container .criterion{display:flex;flex-direction:row;align-items:center;gap:8px}.criteria-container .criterion ui-icon ::ng-deep svg{color:#e9e9e9}.criteria-container .criterion span{text-align:center;font-size:14px;line-height:23px;color:#242424}.criteria-container .criterion.passed ui-icon ::ng-deep svg{color:#242424}.criteria-container .criterion.passed span{color:#666;text-decoration:line-through}.criteria-container .criterion.error ui-icon ::ng-deep svg{color:#e02800}.criteria-container .criterion.error span{color:#e02800}\n"] }]
|
|
86
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
87
|
+
type: Optional
|
|
88
|
+
}, {
|
|
89
|
+
type: Inject,
|
|
90
|
+
args: ['CANOPYUI_DEFAULT_APPLICATION_THEME']
|
|
91
|
+
}] }], propDecorators: { applicationTheme: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], password: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], validationCheck: [{
|
|
96
|
+
type: Output
|
|
97
|
+
}] } });
|
|
98
|
+
|
|
99
|
+
class PasswordStrengthComponentModule {
|
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordStrengthComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
101
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: PasswordStrengthComponentModule, declarations: [PasswordStrengthComponent], imports: [CommonModule, IconComponentModule, ProgressBarComponentModule, UiTranslatePipe], exports: [PasswordStrengthComponent] }); }
|
|
102
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordStrengthComponentModule, imports: [CommonModule, IconComponentModule, ProgressBarComponentModule] }); }
|
|
103
|
+
}
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordStrengthComponentModule, decorators: [{
|
|
105
|
+
type: NgModule,
|
|
106
|
+
args: [{
|
|
107
|
+
declarations: [PasswordStrengthComponent],
|
|
108
|
+
imports: [CommonModule, IconComponentModule, ProgressBarComponentModule, UiTranslatePipe],
|
|
109
|
+
exports: [PasswordStrengthComponent],
|
|
110
|
+
}]
|
|
111
|
+
}] });
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Generated bundle index. Do not edit.
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
export { PasswordStrengthComponent, PasswordStrengthComponentModule };
|
|
118
|
+
//# sourceMappingURL=testgorilla-tgo-ui-components-password-strength.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-password-strength.mjs","sources":["../../../components/password-strength/password-strength.component.ts","../../../components/password-strength/password-strength.component.html","../../../components/password-strength/password-strength.component.module.ts","../../../components/password-strength/testgorilla-tgo-ui-components-password-strength.ts"],"sourcesContent":["import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { IconName } from '@testgorilla/tgo-ui/components/icon';\n\n@Component({\n selector: 'ui-password-strength',\n templateUrl: './password-strength.component.html',\n styleUrls: ['./password-strength.component.scss'],\n standalone: false\n})\nexport class PasswordStrengthComponent {\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof PasswordStrengthComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The password that needs to be checked\n * @property password\n * @type {string}\n * @memberof PasswordStrengthComponent\n */\n @Input() set password(value: string) {\n this._password = value;\n this.checkCriteria(this._password);\n }\n\n /**\n * Event that outputs validation check result\n * @property validationCheck\n * @type {boolean}\n * @memberof PasswordStrengthComponent\n */\n @Output() validationCheck = new EventEmitter<boolean>();\n\n protected progressValue: number;\n protected criteriaPassed: { [key: string]: boolean } = {};\n private _password = '';\n protected criteria: { translateKey: string; key: string }[] = [\n { translateKey: 'PASSWORD.LOWERCASE', key: 'hasLowercase' },\n { translateKey: 'PASSWORD.UPPERCASE', key: 'hasUppercase' },\n { translateKey: 'PASSWORD.NUMBER', key: 'hasNumber' },\n { translateKey: 'PASSWORD.SPECIAL_CHARACTER', key: 'hasSpecialChar' },\n { translateKey: 'PASSWORD.CHARACTERS', key: 'hasMinLength' },\n ];\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n ) {\n if (this.defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n checkCriteria(password: string): void {\n this.criteriaPassed = {\n hasLowercase: /^(?=.*?[a-z])/.test(password),\n hasUppercase: /^(?=.*?[A-Z])/.test(password),\n hasNumber: /^(?=.*?[0-9])/.test(password),\n hasSpecialChar: /^(?=.*?[\" !#$%&'()*+,-./:;<=>?@[\\]^_`{|}~])/.test(password),\n hasMinLength: password.length >= 12,\n };\n\n const passedCount = this.countPassed();\n this.progressValue = Math.min(Math.max(passedCount * (100 / Object.keys(this.criteriaPassed).length), 1), 100);\n this.validationCheck.emit(passedCount === Object.keys(this.criteriaPassed).length);\n }\n\n private countPassed(): number {\n let count = 0;\n for (const key in this.criteriaPassed) {\n if (this.criteriaPassed.hasOwnProperty(key) && this.criteriaPassed[key]) {\n count++;\n }\n }\n return count;\n }\n\n get infoIcon(): IconName {\n return this.applicationTheme === 'classic' ? 'Info' : 'Info-in-line';\n }\n\n get checkIcon(): IconName {\n return this.applicationTheme === 'classic' ? 'Round-check' : 'Check-round-in-line';\n }\n}\n","<div class=\"criteria-container\">\n\n <div class=\"progress\">\n <ui-progress-bar [progress]=\"progressValue === 1 ? 0 : progressValue\" [applicationTheme]=\"applicationTheme\"></ui-progress-bar>\n </div>\n\n <div\n *ngFor=\"let criterion of criteria\"\n class=\"criterion\"\n [ngClass]=\"{ 'passed': criteriaPassed[criterion.key], error: !criteriaPassed[criterion.key] }\"\n >\n <ui-icon [size]=\"'24'\"\n [color]=\"'rebrand-black'\"\n [name]=\"!criteriaPassed[criterion.key] ? infoIcon : checkIcon\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n <span>{{ criterion.translateKey | uiTranslate | async }}</span>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PasswordStrengthComponent } from './password-strength.component';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { ProgressBarComponentModule } from '@testgorilla/tgo-ui/components/progress-bar';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\n\n@NgModule({\n declarations: [PasswordStrengthComponent],\n imports: [CommonModule, IconComponentModule, ProgressBarComponentModule, UiTranslatePipe],\n exports: [PasswordStrengthComponent],\n})\nexport class PasswordStrengthComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|